在之前的文章中,我们已经得到了经过我们微调的大语言模型,不管是在本地部署使用或者是用OpenWebUI界面部署在服务器上达到和chatGPT界面类似的效果,使用Ollama部署一定是最好的选择。以下均为在Ubuntu系统(Linux)上的测试。
如果需要在Windows上部署可以查看Ollama的官方文档:
https://github.com/ollama/ollama
一、安装Ollama
Linux安装Ollama命令行:
curl -fsSL https://ollama.com/install.sh | sh
安装不了你可以直接进入网页:https://ollama.com/install.sh,直接看到代码,复制下来创建install.sh放进去用sh install.sh 跑一下应该也行。
尝试跑一个开源模型测试一下是否成功运行,模型会自动下载开源大模型Ollama支持十几个不同参数量常用的开源大语言模型,这一步可以忽略:
ollama run llama3.1
在对话框输入/help查看对话可用指令,输入/bye退出对话模式。
二、准备工作
首先我们要新建一个文件夹创建.modelfile文件并将模型文件也放入其中,两者最好名字相同避免混乱。
├── MyModel/
├── testmodel.gguf
└── testmodel.modelfile
接下来我们编辑.modeldile文件,以我创建的testmodel.modelfile文件为例,在Linux上我建议使用vim,打开文件夹输入:
FROM testmodel.gguf
#设置temperature为1,[更高的数值回答更加发散,更低的数值回答更加保守]
PARAMETER temperature 0.7
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>"""
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"
#设置tokens限制
PARAMETER num_ctx 4096
PARAMETER repeat_penalty 1.5
PARAMETER repeat_last_n 1024
#设置系统级别的提示词
SYSTEM 现在你是xxxx有限公司矿建领域的个人助理,我是一个矿山建设领域的工程师,你要帮我解决我的专业性问题。
MESSAGE user 你好
MESSAGE assistant 我在,我是xxxx有限公司的矿建电子个人助理,请问有什么我可以帮助您的嘛?
MESSAGE user 人工地层冻结主要采用机械式压缩机制冷技术吗?
MESSAGE assistant 是的,人工地层冻结主要采用机械式压缩机制冷技术。
MESSAGE user 解释人工地层冻结的主要制冷方法。
这是我个人认为比较重要的几个参数,如果想知道全部参数,可以去modelfile官方文档看一下(ollama/docs/modelfile.md at main · ollama/ollama · GitHub),有空我也可以去翻译一下,接下来我将介绍我列出这几个参数的作用,大概率够用:
1.导入模型
FROM testmodel.gguf
这是必须的而且一定放第一行,其他没有都可以,这个必须要有。
2.关于回答是否发散
PARAMETER temperature 0.7
越大的数值回答约有创造性,默认0.8。
3.关于回答方式
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>"""
这个参数会让模型像chatGPT一样 “引入-分点-总结” 的方式进行回答。
4.设置停止回答
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"
遇到什么情况就停止回答,比如重复说话了,或者怎么怎么地的,库库放进去就完了。
5.防止回答重复
PARAMETER num_ctx 4096
PARAMETER repeat_penalty 1.5
PARAMETER repeat_last_n 1024
num_ctx参数是限制回答的token数量
repeat_penalty参数设置惩罚重复的强度。较高的值(例如,1.5)将对重复进行更严厉的惩罚,而较低的值(例如,0.9)将更宽松。 (默认值:1.1)
repeat_last_n参数设置模型回溯多远以防止重复。 (默认值:64,0 = 禁用,-1 = num_ctx)
6.设置系统级别提示词
SYSTEM 现在你是xxxx有限公司矿建领域的个人助理,我是一个矿山建设领域的工程师,你要帮我解决我的专业性问题。
MESSAGE user 你好
MESSAGE assistant 我在,我是xxxx有限公司的矿建电子个人助理,请问有什么我可以帮助您的嘛?
MESSAGE user 人工地层冻结主要采用机械式压缩机制冷技术吗?
MESSAGE assistant 是的,人工地层冻结主要采用机械式压缩机制冷技术。
MESSAGE user 解释人工地层冻结的主要制冷方法。
根据自己需要设置,模型会按照类似的方式回答你的问题。
三、加载模型
在我们之前创建的MyModel文件夹下终端输入
ollama create mymodelname -f ./testmodel.modelfile
mymodelname是你的模型名称,你可以随意设置
运行你的模型
ollama run mymodelname
下次有空翻译翻译官方文档,还有一些有趣的开源程序分享,我还有很多表情包~