我的电脑显存最近越来越捉襟见肘,所以自己就想看能不能通过对ollama的优化节省出来一部分显存。本文主要以llama3:8b为例,通过设置决定模型加载进gpu的层数来优化推理效率。
ollama run llama3:8b
>>> /set parameter num_gpu 5
Set parameter 'num_gpu' to '5'
查看日志server.log文件可以看到加载模型GPU的层数从31层变为了5层。
这个方法主要是通过修改现有模型的配置文件,得到新的 modelfile
,从而使用 modelfile
来创建一个数据集何参数相同的模型,
查看llama3:8b模型配置文件
ollama show llama3:8b --modelfile
配置文件信息如下:
# Modelfile generated by "ollama show"
# To build a new Modelfile based on this, replace FROM with:
# FROM llama3:8b
FROM E:\ollama\blobs\sha256-00e1317cbf74d901080d7100f57580ba8dd8de57203072dc6f668324ba545f29
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 num_keep 24
PARAMETER stop <|start_header_id|>
PARAMETER stop <|end_header_id|>
PARAMETER stop <|eot_id|>
创建模型配置文件 mymodel.modefile
,将获取的配置文件加入参数 PARAMETER num_gpu 5
,该参数表名指定加载进gpu的模型层数
# Modelfile generated by "ollama show"
# To build a new Modelfile based on this, replace FROM with:
FROM llama3:8b
# 添加参数
PARAMETER num_gpu 5
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 num_keep 24
PARAMETER stop <|start_header_id|>
PARAMETER stop <|end_header_id|>
PARAMETER stop <|eot_id|>
利用新建的模型配置文件创建模型命令为:
ollama create mymodel -f mymodel.modefile
创建成功后可利用ollama list查看创建的模型
ollama run mymodel
运行模型,然后查看日志server.log文件可以看到加载模型GPU的层数变为了5层。
powered by kaifamiao