天天看點

LocalAI - 相容OpenAI API的本地大模型技術棧

作者:新缸中之腦

LocalAI 是一個用于本地推理的 與OpenAI API 規範相容的REST API, 它允許使用消費級硬體在本地或本地運作模型,支援llama.cpp、alpaca.cpp、gpt4all.cpp、rwkv.cpp、whisper.cpp、vicuna、koala、gpt4all-j、cerebras 等大模型。

LocalAI - 相容OpenAI API的本地大模型技術棧
推薦:用 NSDT設計器 快速搭建可程式設計3D場景。
  • OpenAI 替代性REST API
  • 支援多種模型
  • 第一次加載後,它會将模型加載到記憶體中以進行更快的推理
  • 支援提示模闆
  • 使用 C++ 綁定來實作更快的推理和更好的性能。

LocalAI 是一個社群驅動的項目,專注于讓任何人都能通路 AI。 它最初是由 SpectroCloud OSS 辦公室的 mudler 建立的。

LocalAI 使用 C++ 綁定來優化速度。 它基于用于音頻轉錄的 llama.cpp、gpt4all、rwkv.cpp、ggml、whisper.cpp 和用于嵌入的 bert.cpp。

1、LocalAI工作原理

LocalAI - 相容OpenAI API的本地大模型技術棧

2、LocalAI模型相容性

LocalAI與 llama.cpp 支援的模型相容,還支援 GPT4ALL-J 和帶有 ggml 的 cerebras-GPT。LocalAI還應該與 StableLM 和 GPTNeoX ggml 模型相容,但我們尚未測試過。

模型相容性清單如下:

LocalAI - 相容OpenAI API的本地大模型技術棧

3、LocalAI使用方法

LocalAI 預設作為容器鏡像出現。 可以在此處檢視帶有相應标簽的所有可用鏡像。

運作 LocalAI 的最簡單方法是使用 docker-compose:

git clone https://github.com/go-skynet/LocalAI

cd LocalAI

# (optional) Checkout a specific LocalAI tag
# git checkout -b build <TAG>

# copy your models to models/
cp your-model.bin models/

# (optional) Edit the .env file to set things like context size and threads
# vim .env

# start with docker-compose
docker-compose up -d --build

# Now API is accessible at localhost:8080
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"your-model.bin","object":"model"}]}

curl http://localhost:8080/v1/completions -H "Content-Type: application/json" -d '{
     "model": "your-model.bin",            
     "prompt": "A long time ago in a galaxy far, far away",
     "temperature": 0.7
   }'           

下面是使用 GPT4ALL-J 模型的示例:

# Clone LocalAI
git clone https://github.com/go-skynet/LocalAI

cd LocalAI

# (optional) Checkout a specific LocalAI tag
# git checkout -b build <TAG>

# Download gpt4all-j to models/
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j

# Use a template from the examples
cp -rf prompt-templates/ggml-gpt4all-j.tmpl models/

# (optional) Edit the .env file to set things like context size and threads
# vim .env

# start with docker-compose
docker-compose up -d --build

# Now API is accessible at localhost:8080
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"ggml-gpt4all-j","object":"model"}]}

curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
     "model": "ggml-gpt4all-j",
     "messages": [{"role": "user", "content": "How are you?"}],
     "temperature": 0.9 
   }'

# {"model":"ggml-gpt4all-j","choices":[{"message":{"role":"assistant","content":"I'm doing well, thanks. How about you?"}}]}           

原文連結:http://www.bimant.com/blog/localai/

繼續閱讀