为了演示方便,我这里选用参数较小的Qwen1.5-0.5B-Chat模型。
下载GGUF模型
访问huggingface下载qwen1_5-0_5b-chat-q5_k_m.gguf模型。
https://huggingface.co/Qwen/Qwen1.5-0.5B-Chat-GGUF/tree/main
注意:
- huggingface访问不到,可以选择国内的modelscope
- 选择q5_k_m模型,参考
https://blog.csdn.net/weixin_44455388/article/details/136500170?spm=1001.2014.3001.5501
创建Ollama Modelfile
1、创建一个名为 Modelfile 的文件,并使用 FROM 指令,填写的模型的本地文件路径。
FROM ./qwen1_5-0_5b-chat-q5_k_m.gguf
Modelfile文件中还可以添加系统提示词以及各项参数:
FROM ./qwen1_5-0_5b-chat-q5_k_m.gguf
# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1
# set the system message
SYSTEM """
你是AI助手小智,请根据用户的提问做出合适的回答。
"""
2、在Ollama中创建模型
ollama create qwen:0.5b -f Modelfile
3、运行模型
ollama run qwen:0.5b
经过测试,大模型回答总是答非所问,或者是没有任何回复,换了Qwen1.5-4B-Chat-GGUF同样是这样。
解决方法:
Modelfile中要按照一定的模板,参考下载的官方提供的14B模型的Modelfile:
设置自定义的0.5B的Modelfile:
FROM ./qwen1_5-0_5b-chat-q5_k_m.gguf
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"
优化之后的效果:
(base) [root@localhost my_model]# ollama run qwen:0.5b
>>> 你好
你好!有什么问题我可以帮助你解答吗?
>>> 你是谁
我是来自阿里云的大规模语言模型,我叫通义千问。
>>> Send a message (/? for help)