本文编写于 553 天前,最后修改于 553 天前,其中某些信息可能已经过时。

10分钟部署本地大语言模型

书到用时方恨少

最近在拼命写开题报告,作为一个学术渣子,实在是得用上21世纪最强的帮手GPT来辅助阅读和写作,然而事实上,当你使用的足够多的时候,chatgpt会让你升级pro版,kimiAI也会让你做任务才能解锁使用,还是有一些限制,于是想到了本地部署模型LLaMA(large language Model AI)。

这种事情原先是不太可能的,毕竟人家的机房都有N个集群,多少张英伟达的计算卡备着。但谁知,上网一搜还真有本地部署的教程,meta也早就把llama开源了,本着要什么自行车的原则,我跟着廖雪峰的教程试了试,结果还真的部署出来了,居然还能用的很不错,反应很快。我本地可是普普通通的3060卡,于是想着记录一下,以后换了电脑也能用。

注意,本教程需要使用一些特殊的网络环境,没有真的是寸步难行啊

教程

我的本地部署教程和网上的在某些地方有区别,比如不用docker,比如不用open webui这个ui,一个原因是docker在windows下非要用虚拟环境windows subsystem linux(wsl)太烦了,然后docker镜像访问又困难,open webui这个更是被国内镜像删掉,根本用不了,本着不折腾的原则,我们就不用这个ui,而是换用nextchat这个已经成功多端pwa适配的工具来实现网页交互。

安装ollama

这是个能离线跑本地大模型的工具,从Ollama官网下载,运行,点击安装Ollama命令行,然后在命令行测试Ollama是否已正常运行:

$ ollama -v
ollama version is 0.3.13

下载大语言模型

廖雪峰老师没用ollama里面的模型,上了抱抱脸下了中文的大语言模型,我这里直接给上我下载的8B参数的大模型链接https://huggingface.co/shenzhi-wang/Llama3.1-8B-Chinese-Chat/tree/main/gguf我们选择一个GGUF格式的模型,GGUF格式是llama.cpp团队搞的一种模型存储格式,一个模型就是一个文件,方便下载

如果你想用别的大模型,在HuggingFace的model找到llama3,设置Languages为Chinese,可以看到若干基于LLaMa3的中文模型

点击Files,可以看到若干GGUF文件,其中,q越大说明模型质量越高,同时文件也更大,我这边心疼流量就选了个小的,直接点击下载按钮,把这个模型文件下载到本地。

导入模型

首先下载到本地的模型文件不能直接导入到Ollama,需要编写一个配置文件,随便起个名字,如config.txt,配置文件内容如下:

FROM "/Users/liaoxuefeng/llm/llama3-8b-cn-q6/Llama3-8B-Chinese-Chat.q6_k.GGUF"

TEMPLATE """{{- if .System }}
<|im_start|>system {{ .System }}<|im_end|>
{{- end }}
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""

SYSTEM """"""

PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>

我直接照搬廖雪峰老师的教程了,这边的第一行要改成下载好的模型的地址,需要修改为实际路径,后面的模板内容是网上复制的,无需改动。

然后,命令行里使用以下命令导入模型:

$ ollama create llama3-cn -f ./config.txt

llama3-cn是我们给模型起的名字,成功导入后可以用list命令查看:

$ ollama list
NAME              ID            SIZE    MODIFIED
llama3-cn:latest  f3fa01629cab  6.6 GB  2 minutes ago

可以下载多个模型,给每个模型写一个配置文件(仅需修改路径),导入时起不同的名字,我们就可以用Ollama方便地运行各种模型。

运行模型

使用Ollama的run命令可以直接运行模型。我们输入命令ollama run llama3-cn

出现>>>提示符时就可以输入问题与模型交互。输入/exit退出。

你也可以通过API来访问,命令行可以试着输入

curl -X POST http://localhost:11434/api/generate -d "{\"model\": \"llama3-cn\", \"prompt\": \"good morning\"}"

搭建Web环境

到这一步其实已经可以成功使用了。之后廖雪峰要我们下载webui,这里我们不下载了,因为windows环境下搞不定,直接换一个最简单的nextchat客户端

点击release里面,点击show all assets,就可以看到多端的nextchat文件了,还可以在线使用,完全没问题。

下载安装,或者在线打开后,设置一下大模型就能用了,在设置里选择模型服务商,可以看到主流的大模型基本都支持,我们本地部署的llama3也是提供了API接口的,和openai的完全通用,你可以点击文档来查看接口详情,把接口地址改为http://localhost:11434,然后自定义模型名称改为我们刚才设置的llama3-cn,保存后,本地就可以完美使用大模型了,没有任何限制,非常牛啊,是不是10分钟就搞定了呢?

参考资料

  1. 廖雪峰本地快速部署大模型
  2. Ollama API-github
  3. Hugging Face llama3.1-8B-chinece
  4. NextChat-webui