跳至主要內容

LocalAi-开源 OpenAI 替代品

程序员李某某大约 3 分钟

LocalAi-开源 OpenAI 替代品

介绍

官网open in new window

官网部署open in new window

Dify相关部署open in new window

LocalAI 是一个本地推理框架,提供了 RESTFul API,与 OpenAI API 规范兼容。它允许你在消费级硬件上本地或者在自有服务器上运行 LLM(和其他模型),支持与 ggml 格式兼容的多种模型家族。不需要 GPU。 Dify 支持以本地部署的方式接入 LocalAI 部署的大型语言模型推理和 embedding 能力。

部署

git clone https://github.com/go-skynet/LocalAI
cd LocalAI/examples/langchain-chroma
## 下载模型
wget https://huggingface.co/skeskinen/ggml/resolve/main/all-MiniLM-L6-v2/ggml-model-q4_0.bin -O models/bert
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j

docker

docker run -it --name local-ai -p 8888:8080 -v D:\Documents\test\localai:/models localai/localai:latest

二进制部署

###### 下载二进制文件
## cuda11
wget https://github.com/mudler/LocalAI/releases/download/v2.12.3/local-ai-cuda11-Linux-x86_64

## cpu
https://github.com/mudler/LocalAI/releases/download/v2.12.3/local-ai-avx2-Linux-x86_64

###### 启动
## 文件授权
chmod +x local-ai-avx2-Linux-x86_64
## 执行 -- 会创建一个models文件夹
./local-ai-avx2-Linux-x86_64

报错

./local-ai-avx2-Linux-x86_64: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by ./local-ai-avx2-Linux-x86_64)
./local-ai-avx2-Linux-x86_64: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by ./local-ai-avx2-Linux-x86_64)

解决方案:

## 下载 glibc 源码
wget http://ftp.gnu.org/gnu/libc/glibc-2.32.tar.gz
tar -xvf glibc-2.32.tar.gz
cd glibc-2.32
## 创建构建目录并进入
mkdir build
cd build

## 配置构建(您可能需要指定不同的–prefix):
../configure --prefix=/usr/local
## 编译并测试(测试步骤非常重要,确保新的库不会破坏系统):
make -j$(nproc)
make check -j$(nproc)
## 安装新的GLIBC(十分危险,如果出错可能会导致系统不可用):
make install
## 测试新的GLIBC是否可用:
ldd --version

Docker 部署

## latest-aio-cpu 版
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest-aio-cpu
## 如果你有 Nvidia GPU:
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-aio-gpu-nvidia-cuda-12
## CPU启动不预配置模型
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest-cpu
## GPU启动不预配置模型
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-12
## CPU启动指定模型(比如:llava and phi-2)
docker run -ti -p 8080:8080 localai/localai:v2.19.2-ffmpeg-core llava phi-2

访问 http://localhost:8080open in new window

## 挂载
docker run -ti --name local-ai -p 8080:8080 \
-v /data/llm/models:/build/models \
localai/localai:latest-cpu

## master-aio-cpu测试
docker run -ti --name local-ai -p 8080:8080 \
-v /data/llm/models:/build/models \
localai/localai:master-aio-cpu 

docker run -ti --name local-ai -p 8080:8080 -v D:\Documents\test\localai\models:/build/models localai/localai:master-aio-cpu 


docker run -ti --name local-ai -p 8800:8080 --gpus all \
-v /data/llm:/build/models \
localai/localai:latest-gpu-nvidia-cuda-12

## 挂载
docker run -ti --name local-ai -p 8080:8080 \
-v /Users/liusisi/Documents/llm/models:/build/models \
localai/localai:latest-cpu

加载模型

## 通过互联网站点提供的模型配置文件下载
curl http://localhost:8888/models/apply -H "Content-Type: application/json" -d '{"url": "https://gitee.com/fly-llm/localai-run-llm/raw/master/model-gallery/qwen1.5-0.5b.yaml","name": "qwen1.5-0.5b-chat"}'
## 通过本地的模型配置文件下载
curl http://localhost:8080/models/apply -H "Content-Type: application/json" -d '{"url": "file:///build/models/qwen1.5-1.8b.yaml","name": "qwen1.5-1.8b-chat"}'
## 通过LocalAI的模型仓库下载
curl http://localhost:8080/models/apply -H "Content-Type:application/json" -d '{"id": "localai@rerankers"}'
## 查询模型安装任务的状态
curl http://localhost:8080/models/jobs/a6434e75-4b2e-11ef-a07b-0242ac120004

微调

1、准备数据集 2、准备环境安装依赖项 3、微调模型

accelerate launch -m axolotl.cli.train model.yml --load_in_8bit=False

4、合并lora与基础模型

python3 -m axolotl.cli.merge_lora model.yml --lora_model_dir="./qlora-out" --load_in_8bit=False  --load_in_4bit=False

5、转换模型为gguf格式

cd llama.cpp && python convert.py --outtype f16 /content/qlora-out/merged/pytorch_model-00001-of-00002.bin

6、模型进行4BIT量化

cd llama.cpp && ./quantize /content/qlora-out/merged/ggml-model-f16.gguf /content/custom-model-q4_0.bin q4_0

7、使用LocalAI加载模型

参考地址:https://localai.io/docs/advanced/fine-tuning/open in new window

上次编辑于:
贡献者: 李元昊