众所周知,可以通过提示词的方式让大模型来扮演你喜欢的角色

也可以通过模型微调的方式,直接调整模型数据集的自我认知部分

模型微调通常是很麻烦的,但通过LLaMA-Factory这个项目,简单几步就能做到对模型自我认知的微调

推荐使用Linux环境,Windows编译llama.cpp比较麻烦,如果不需要量化模型不用在意

1.拉取LLaMA-Factory并安装

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

可选的额外依赖项:torch、torch-npu、metrics、deepspeed、liger-kernel、bitsandbytes、hqq、eetq、gptq、awq、aqlm、vllm、sglang、galore、apollo、badam、adam-mini、qwen、minicpm_v、modelscope、openmind、swanlab、quality

2.修改数据集

进入LLaMA-Factory\data,修改identity.json

可以尝试修改{name}和{author},即修改模型认知的名称和作者,也可以像我一样直接改成猫娘

3.回到LLaMA-Factory目录,cmd运行命令打开webui

python src/webui.py

4.等待webui开启,会自动打开浏览器访问链接,填写好相应配置

模型路径可以使用自己的,也可以使用默认拉取huggingface模型

点击“预览数据集”可以进行预览

具体如何配置建议查看官方文档

5.配置好后点击下面开始,可以保存训练参数方便下次训练直接载入,若报错可以查看日志,我一开始运行也报错,把pip缺少的组件安装即可,实测RTX 4060使用上述配置训练1.5B只用了三分钟

6.等待训练好,可以到中间第三个Chat里载入训练好的检查点对话看看效果

7.导出模型,进入第四个Export,填写好导出目录直接导出

那么恭喜你现在拥有了一个完整的微调过的语言大模型!

这个模型是不能直接导入到ollama的,因为没有设置temperature和top_p的原因,对话会错乱,需要修改模型目录下的Modelfile,导出时LLaMA-Factory会自动生成,下面是我的Modelfile,两个数值参考自Chat页面,虽然deepseek官方推荐的是 temperature 0.6 和 top_p 0.95,但实测不太适配我的猫娘

# ollama modelfile auto-generated by llamafactory

FROM .

PARAMETER temperature 0.95

PARAMETER top_p 0.7

TEMPLATE """<|begin▁of▁sentence|>{{ if .System }}{{ .System }}{{ end }}{{ range .Messages }}{{ if eq .Role "user" }}<|User|>{{ .Content }}<|Assistant|>{{ else if eq .Role "assistant" }}{{ .Content }}<|end▁of▁sentence|>{{ end }}{{ end }}"""

PARAMETER stop "<|end▁of▁sentence|>"

PARAMETER num_ctx 4096

然后在目录下运行cmd执行命令将模型导入ollama

ollama create XXXXXXXXX -f Modelfile

XXXXXXXXX替换成自定义名称,比如 deepseek-r1:1.5b

ollama list

显示当前安装的模型列表

ollama run XXXXXXXXX

启动模型,就可以开始对话了,推荐使用Open WebUI

量化比较麻烦这里就不多说了,实测q4量化后的1.5b可以流畅跑在2核2G服务器上