一、引言
今天开始写大语言模型推理服务框架的第三篇——LocalAI,前两篇见
这个框架相比于前两篇,如果服务器没办法科学上网,学习和使用难度都要上一个台阶,花了几个小时踩了几个坑,将排坑后的内容分享给大家,如果大家觉得有用的话,希望获得您的关注、收藏、点赞及评论。
二、排坑后的Local-AI安装教程
1.docker安装及curl测试
# 拉取LocalAI项目 git clone https://github.com/mudler/LocalAI # 从hf-mirror.com镜像站下载luna-ai-llama2模型,存储在models目录中 wget https://hf-mirror.com/TheBloke/Luna-AI-Llama2-Uncensored-GGUF/resolve/main/luna-ai-llama2-uncensored.Q4_0.gguf -O models/luna-ai-llama2 #wget https://huggingface.co/TheBloke/Luna-AI-Llama2-Uncensored-GGUF/resolve/main/luna-ai-llama2-uncensored.Q4_0.gguf -O models/luna-ai-llama2 # 将提示词模版中的getting_started.tmpl复制到models目录并和模型文件同名+.tmpl后缀 cp -rf prompt-templates/getting_started.tmpl models/luna-ai-llama2.tmpl # docker拉取并启动aio-gpu镜像 # 指定--models-path为/models # 将宿主机/xxx/LocalAI/models与container内的models目录进行关联,方便在宿主机修改文件 docker run -tid --name local-ai -p 16080:8080 --gpus all -v /xxx/LocalAI/models:/models localai/localai:latest-aio-gpu-nvidia-cuda-12 --models-path /models # 查看当前服务下的模型列表 curl http://宿主机ip:16080/v1/models # 返回:{"object":"list","data":[{"id":"luna-ai-llama2","object":"model"}]} # 测试模型是否启动 curl http://宿主机ip:16080/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "luna-ai-llama2","messages": [{"role": "user", "content": "who are you?"}],"temperature": 0.9}' # 返回:{"created":1715329633,"object":"chat.completion","id":"e24ccbb9-3908-4e92-b25a-f5861c2582ce","model":"luna-ai-llama2","choices":[{"index":0,"finish_reason":"stop","message":{"role":"assistant","content":"I am a 28-year-old software developer living in New York City.\u003c/s\u003e"}}],"usage":{"prompt_tokens":10,"completion_tokens":19,"total_tokens":29}}
几个注意的点:
- 如果服务器在境内且不能科学上网,需要将huggingface.co替换为hf-mirror.com,hf-mirror.com是huggingface.co的镜像站,完全复刻huggingface.co
- 镜像选择localai/localai:latest-aio-gpu-nvidia-cuda-12,aio(all-in-one)镜像内集成了文生文、文生图、图生文、语音转文本、文本转语音等模型,目标是方便使用多种模型,但其实每次使用都要现从huggingface.co上拉取,境内服务器苦不堪言
- 模型下载好,就可以用curl使用了,采用OpenAI兼容的API,这个还是不错的
2.解决AIO镜像无法从hf拉取模型的问题
进入到models目录,yaml是aio集成模型的配置文件
打开修改镜像地址:将download_files内uri路径中的huggingface.co替换为hf-mirror.com
如果不是https开头的uri,比如b3d7d7ab5e9969a1408e28d5d7cd22f7.yaml
可以将uri替换为https开头的路径,直接到hf-mirror搜索到对应的模型,将模型路径中的blog/main改成resolve/main即为模型的下载路径
三、Local-AI前端
登陆"宿主机ip:port",比如123.123.123.123:16080,16080是docker启动时设置的。
1.Home
2.Models
进入到Models可以搜索需要的模型并且安装(搜了些国内的,很优先,更新没那么及时。
3.API
进入到API界面,列出了API调用说明,以OpenAI兼容API的形式对外提供。
四、总结
本文列出了排坑后的Local-AI安装教程,及Local-AI前端,个人感觉,比如很友好,特别是对境内服务器开发者,建议还是看前两篇文章,选择Xinference和Ollama吧。如果仍然感兴趣,可以登陆项目github以及查看文档进一步学习。
感谢各位阅读,花了几个小时踩坑,又花了一段时间写博客,结论就是Local-AI目前不是最好的选择,我帮大家躺过坑了。期待大家的关注、点赞、收藏和评论。
如果还有时间,期待您再看看我的其他文章: