BobMaster's Blog

生活的点滴-是热爱呀

使用LocalAI搭建自己的大语言模型和作图服务

随着ChatGPT被大规模的使用,现在各种大语言模型陆续涌现,几个月前我尝试了一下,发现比较笨,和Openai提供的服务完全没法比,就失去了兴趣。最近有人在issue区里提到matrix_chatgpt_bot的作图功能在使用LocalAI后端时无法正常工作。为了解决这个问题,我就顺带又测试了一些新的聊天和作图模型,被它们的发展速度震惊到了。

下面将介绍LocalAI的搭建,以及安装大语言模型(mistral)和作图模型(sdxl-turbo)的方法。

安装LocalAI

这里为了方便,我们采用docker部署相关服务。

假设我们的工作路径是~/localai,现在创建一个 compose.yaml 文件

services:
  api:
    image: quay.io/go-skynet/local-ai:latest
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"]
      interval: 1m
      timeout: 20m
      retries: 5
    ports:
      - 127.0.0.1:12345:8080
    environment:
      - DEBUG=true 
    volumes:
      - ./models:/build/models:cached
      - ./images:/tmp/generated/images

然后启动容器

docker compose up -d

由于镜像非常的大,下载和解压需要时间,请耐心等待容器运行起来。

安装大语言模型

这里我选用的是mistral模型,这也是我测试下来发现性能最接近gpt-3.5-turbo的模型。得益于LocalAI模块化的设计,开发者设计了一套模型仓库,里面提供了很多开箱即用的配置文件。因此我们只需要一条命令就能安装mistral模型。

curl http://localhost:12345/models/apply -H "Content-Type: application/json" -d '{     "id": "model-gallery@mistral"   }'

你可以查看容器的日志判断模型是否下载完毕

docker compose logs

下载好后,你会在models目录下看到模型以及相关的配置文件。

这里我用 mistral-ft-optimized-1218.Q5_K_S.gguf 替换了默认的 mistral-7b-openorca.Q6_K.gguf 模型,你只需要编辑 models/mistral.yaml 文件,修改parameters->model 配置 (也可以不做更改,使用默认的即可)

最后使用curl在终端里测试一下

curl http://localhost:12345/v1/chat/completions -H "Content-Type: application/json" -d '{
     "model": "mistral",
     "messages": [{"role": "user", "content": "你好呀?" }]
   }'

安装sdxl-turbo作图模型

该模型的优点是出图快,质量也还好。只需要一个步长(step)就能得到结果,在我的Intel 4核 N100 CPU上,大概20多秒就能出一张图。

在 models 目录下创建 stablediffusion.yaml 文件

name: stablediffusion
parameters:
  model: stabilityai/sdxl-turbo 
backend: diffusers
step: 1
cuda: false
# Force CPU usage - set to true for GPU
f16: false
diffusers:
  scheduler_type: euler_a
  cfg_scale: 1

然后重启容器

docker compose restart

接着使用下面的命令生成第一张图片,程序会在模型不存在时自动帮你下载

curl http://127.0.0.1:12345/v1/images/generations -H "Content-Type: application/json" -d '{
  "prompt": "face focus, cute, masterpiece, best quality, 1girl, green hair, sweater, looking at viewer, upper body, beanie, outdoors, night, turtleneck",
  "size": "512x512"
}'

耐心等待模型下载完毕,就会开始作图了。

到这里作图模型算是安装完了。

结语

本来我是想直接编译使用的,但被编译问题给整麻了,最后图省事用了docker,当然代价就是用空间换便利了,70多G的镜像!!!

希望上面的教程能够给那些想要使用LocalAI部署相关服务的朋友提供一些帮助。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


©BobMaster 2018~2024