开发喵星球

Ollama显存优化

Ollama显存优化

我的电脑显存最近越来越捉襟见肘,所以自己就想看能不能通过对ollama的优化节省出来一部分显存。本文主要以llama3:8b为例,通过设置决定模型加载进gpu的层数来优化推理效率。

交互模式指定

ollama run llama3:8b
>>> /set parameter num_gpu 5
Set parameter 'num_gpu' to '5'

查看日志server.log文件可以看到加载模型GPU的层数从31层变为了5层。

image-20240705151339539

修改模型配置文件

这个方法主要是通过修改现有模型的配置文件,得到新的 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查看创建的模型

image-20240705151529737

查看修改结果

ollama run mymodel 运行模型,然后查看日志server.log文件可以看到加载模型GPU的层数变为了5层。

image-20240705151602078

   
分类:玩技术 作者:荡荡, 浩浩 发表于:2024-07-05 15:17:48 阅读量:257
<<   >>


powered by kaifamiao