【背景概述】
在大模型(Large Language Model,简称LLM)本地使用后,本文将继续从企业AI落地的角度,介绍如何构建企业或者个人的自有专属模型,企业拥有自有模型后,就可以按照企业定位在更细化的领域内做模型微调等开发。上一篇介绍本地部署及使用,详见
一、为何要创建自有模型?
在DeepSeek推出后,大模型的发展更加迅速,通过自定义的大模型,每个企业可以在不同领域深耕发展,会有如下一些优势:
1、灵活性和适应性。根据具体需求进行设计和调整,确保模型能够精确地反映业务需求和场景。
2、优化性能和降低成本。有针对性地进行数据训练、性能优化,提高模型的执行效率和准确性。同时,结合自有系统技术架构,减少对接开发成本,另外,根据需要减少不必要的计算和存储开销,降低整体系统的成本。
3、数据质量与技术积累。更好地使用自有数据,增强数据容错。在大模型的自定义过程中,会逐步积累相关的技术经验,而不是一味地使用外部的模型,能够做到知其所以然。
二、Modelfile配置
1、Modelfile是什么?
Modelfile是ollama用于描述如何加载和运行模型的配置文件。是不是有点眼熟?它与dockerfile类似,理解上是一样的。ollama的Modelfile通常使用yaml格式,通过Modelfile,可以定义模型参数等配置。
那首先我们可以看下上一篇安装的DeepSeek-R1模型的配置是什么?使用如下命令即可。
ollama show deepseek-r1:7b
ollama show deepseek-r1:7b > modelfile // 导出文件命令
从展示的内容,可以看出其中主要包含了基础模型、参数设置、许可证等信息,其实这也是自定义模型的主要元素。
2、创建Modelfile
下面我们通过创建一个名为“小天”的“购物助手”,来揭开自定义模型的魔法面纱。
touch shopping-modelfile // 创建modelfile文件
vi shopping-modelfile // 编辑文件
注:标准名字是modelfile,实际上文件名及后缀随意即可。
配置如下:
FROM deepseek-r1:7b
PARAMETER temperature 0.7
SYSTEM """你是购物助手,名字叫小天,性格热情开朗,喜欢逛街,分享购物心得。你会用中文回答问题。"""
关键部分说明:
(1)FROM
FROM:指定要使用的基础模型或预训练模型。
注:除了使用基础模型,还可以基于本地下载的模型的实体文件。可以是ollama的models文件夹里面的文件,也可以是huggingface上的gguf文件。(便于基于Ollama仓库中没有的模型实现自定义模型)。命令类似如下。
FROM /xxx/xxx.gguf
(2)PARAMETER temperature
PARAMETER表示设置参数。temperature是一个控制生成文本多样性的参数,在生成模型中,会影响生成文本的随机性。
temperature的值范围通常是0到1,或者更高:
-
低值(如0.1-0.3):生成的文本更为保守,重复性较高,文本的可预测性较强。
-
中等值(如0.7):生成的文本既有一定的随机性,又能够保持连贯性和一致性。
-
高值(如 1.0 或更高):生成的文本更加多变和创新,但可能会更不连贯或有更多不符合上下文的内容。
(3)SYSTEM
SYSTEM表示为模型设置一个系统消息,可以理解为设置系统角色,帮助模型理解具体任务或行为。
当然Modelfile中可以设置的参数不只是这三个,还有top_k(采样,限制候选词数量)、stop(停止词设置)等参数,待后续深入使用时,再详细介绍。
3、创建自定义模型(小天购物助手)
ollama create shopping-model -f shopping-modelfile
// 带tag版本号
ollama create shopping-model:7b -f shopping-modelfile
查看模型:
自此模型创建成功了。
三、自定义模型运行
在这里直接使用命令运行(也可以使用chatbox),输入如下命令:
ollama run shopping-model
在闪烁的光标地方,输入“你是谁?”
可以看到有思考过程,回复的结果是:“你好!我是小天,一个热衷于分享购物经验的助手。很高兴能为你提供帮助!”
一个简易的自定义模型就完成了!赶快去试试吧!
若想删除自定义模型,可以通过如下命令删除。
ollama rm shopping-model:latest
ollama rm shopping-model:7b