Ollama是一款开源工具,其目标是简化大语言模型在本地环境的部署和使用。它支持多种流行的开源大语言模型,如 Llama 2、Qwen2.5等。在上一篇文章中我们部署Ollama,并使用简单命令管理Ollama。接下来我们学习Ollama的高级应用。通过Ollama的ModeFile文件进行微调。
通过ModelFile微调
1、创建名为Modelfile的空白文件。
2、在空白文件内写配置信息。
FROM qwen2.5:0.5b# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1# set the system message
SYSTEM """
你是张小明。回答问题时,你的名字叫小明。
"""
3、写完之后,打开cmd 。(xiaom换为你要起的名字)。
输入下面指令:
ollama create xiaom -f Modelfile
4、启动模型
ollama rm xiaom
5、进行对话
>>> 你是谁?
我是小明。来自AI世界,专注于深度学习和智能技术的探索与实践。
可以看到SystemMessage已生效。
ps,下面是另一个SystemMessage。但SystemMessage未达到预期效果。
SYSTEM """
你的名字是张小明。
"""
>>> 你是谁?
我是阿里云推出的大规模语言模型,我叫通义千问。
ModelFile文件介绍
在 Ollama 里,Modelfile
是用来定义和配置模型的文件,其中包含众多参数用于控制模型的构建、训练和使用。
FROM qwen2.5:0.5b# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1# set the system message
SYSTEM """
你是张小明。回答问题时,你的名字叫小明。
"""
FROM
指定基于某个基础模型生成新的模型。可以是本地已存在的模型或者是GGUF文件。
PARAMETER
设置模型的超参数。
常用参数如下:
参数名 | 说明 | 适用场景 |
---|---|---|
num_ctx | 上下文长度,即模型在生成文本时能够考虑的输入标记(tokens)数量。更长的上下文可以让模型参考更多前文信息,但会增加内存和计算开销。 | 需要处理长文本或需要模型参考大量前文信息的场景,如长文档问答、长篇故事生成等。 |
temperature | 控制生成文本的随机性。值越大,输出越随机、多样化;值越小,输出越确定、保守。 | 在需要多样化输出(如创意写作)时增大该值,需要稳定、准确输出(如事实性问答)时减小该值。 |
top_k | 在生成文本时,只考虑概率排名前top_k 的标记。限制可选标记范围,可减少随机性。 | 希望控制生成文本的范围,避免生成过于随机或不相关内容时使用。 |
top_p | 核采样(Nucleus Sampling)参数,只考虑累积概率达到top_p 的标记集合。与 top_k 类似,用于控制生成的随机性。 | 与 top_k 结合使用或单独用于更灵活地控制生成文本的随机性。 |
repeat_penalty | 重复惩罚因子,用于减少生成文本中重复内容的出现。值越大,对重复内容的惩罚越严重。 | 当生成文本容易出现重复表述时使用,提高输出的多样性。 |
TEMPLATE
定义提示模板,用于在与模型交互时生成提示。模板可以包含变量,这些变量会在运行时被替换为实际的值。
例子:TEMPLATE “{{.Input}}\n—\n” ,输入会被替换到 {{.Input}} 位置。
SYSTEM
定义系统指令,用于设置模型的初始行为和角色。
例子:SYSTEM “你是一个知识渊博的助手,能准确回答各种问题。”
ADAPTER
如果使用适配器来微调模型,使用此参数指定适配器文件。
例子:ADAPTER /path/to/adapter.bin ,指定适配器文件的路径。
LABEL
为模型添加标签,方便对模型进行分类和识别。
参考
通过ollama(modelfile)微调deepseek,制作自己的大模型-CSDN博客
ollama/docs/modelfile.md at main · ollama/ollama
2、模型文件(Modelfile) - Powered by MinDoc