使用Ollama配置本地微调的gguf模型文件

在之前的文章中,我们已经得到了经过我们微调的大语言模型,不管是在本地部署使用或者是用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

下次有空翻译翻译官方文档,还有一些有趣的开源程序分享,我还有很多表情包~

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值