前言#
本文簡單記錄介紹一下 LocalAI。
LocalAI 支持自主托管和運行,與 OpenAI API 規範兼容,支持多種模型。
正文#
一、什麼是 LocalAI#
LocalAI 是一個本地 AI API,可以自主托管和運行模型,與 OpenAI API 規範兼容,支持多種模型。
二、LocalAI 功能#
LocalAI 有以下主要功能:
- 兼容 OpenAI 的 REST API 規範,可以作為本地推理的 OpenAI 替代方案;
- 支持多個模型系列,如llama.cpp, gpt4all, rwkv.cpp, ggml, whisper.cpp和bert.cpp;
- 加載一次後,將模型加載到內存中,以獲得更快的推斷速度;
- 支持 prompt templates,提供更多的填寫選項;
- 使用 C++ 綁定,以獲得更快的推斷速度。
下面是官方項目目前支持的模型列表:
三、部署 LocalAI#
可以使用 docker-compose 快速啟動 LocalAI,也可以通過構建本地鏡像來使用 LocalAI。LocalAI 的具體用法可以參考文檔Usage和examples中的使用案例。
以下是一段示例代碼:
# 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?"}}]}
四、總結#
LocalAI 可以將本地模型部署成 OpenAI API 的接口形式,可以很方便的集成到目前各種流行的應用當中,避免了個人數據上傳 OpenAI 或 Microsoft 等其他雲端模型,適合折騰的人部署。
缺點是需要本地硬件足夠支持運行這些語言模型。
最後#
參考文章:
聲明#
本文僅作為個人學習記錄。
本文與hblog保持同步。