LocalAI 是一个用于本地推理的 与OpenAI API 规范兼容的REST API, 它允许使用消费级硬件在本地或本地运行模型,支持llama.cpp、alpaca.cpp、gpt4all.cpp、rwkv.cpp、whisper.cpp、vicuna、koala、gpt4all-j、cerebras 等大模型。
推荐:用 NSDT设计器 快速搭建可编程3D场景。
LocalAI的主要特性包括:
- OpenAI 替代性REST API
- 支持多种模型
- 第一次加载后,它会将模型加载到内存中以进行更快的推理
- 支持提示模板
- 使用 C++ 绑定来实现更快的推理和更好的性能。
LocalAI 是一个社区驱动的项目,专注于让任何人都能访问 AI。 它最初是由 SpectroCloud OSS 办公室的 mudler 创建的。
LocalAI 使用 C++ 绑定来优化速度。 它基于用于音频转录的 llama.cpp、gpt4all、rwkv.cpp、ggml、whisper.cpp 和用于嵌入的 bert.cpp。
1、LocalAI工作原理
2、LocalAI模型兼容性
LocalAI与 llama.cpp 支持的模型兼容,还支持 GPT4ALL-J 和带有 ggml 的 cerebras-GPT。LocalAI还应该与 StableLM 和 GPTNeoX ggml 模型兼容,但我们尚未测试过。
模型兼容性列表如下:
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?"}}]}