LocalAi-开源 OpenAI 替代品
大约 3 分钟
LocalAi-开源 OpenAI 替代品
介绍
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
## 挂载
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加载模型
