ollama导入huggingface下载的大模型并量化

1. 导入GGUF 类型的模型

1.1 先在huggingface 下载需要ollama部署的大模型
1.2 编写modelfile

在ollama 里面输入

sh 复制代码
ollama show --modelfile <你有的模型名称>
eg:
ollama show --modelfile qwen2.5:latest

修改其中的from 路径为自己的模型下载路径

modelfile 复制代码
FROM /Users/lzx/AI/llm/lmstudio-community/Llama-3-Groq-8B-Tool-Use-GGUF
TEMPLATE """{{- if .Messages }}
{{- if or .System .Tools }}<|im_start|>system
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}

# Tools

You may call one or more functions to assist with the user query.

You are provided with function signatures within <tools></tools> XML tags:
<tools>
{{- range .Tools }}
{"type": "function", "function": {{ .Function }}}
{{- end }}
</tools>

For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
{{- end }}<|im_end|>
{{ end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq .Role "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{ else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Content }}{{ .Content }}
{{- else if .ToolCalls }}<tool_call>
{{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
{{ end }}</tool_call>
{{- end }}{{ if not $last }}<|im_end|>
{{ end }}
{{- else if eq .Role "tool" }}<|im_start|>user
<tool_response>
{{ .Content }}
</tool_response><|im_end|>
{{ end }}
{{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
{{ end }}
{{- end }}
{{- else }}
{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}"""
SYSTEM You are watt-tool-8B, a helpful assistant with tool calling capabilities.
复制代码
ollama create Llama-3-Groq-8B-Tool -f config.modelfile

执行创建就完成了

2.导入 safetensors 模型导入Ollama

2.1 先在huggingface 下载需要ollama部署的大模型
这里以llama-3为例子,下载所有的文件,或者使用git 拉代码库,需要git lfs
2.2 安装llama.cpp
git 复制代码
git clone https://github.com/ggerganov/llama.cpp.git
pip install -r requirements.txt
2.3 格式转换

在llama.cpp的安装目录下,执行

python 复制代码
python convert_hf_to_gguf.py "<你下载的模型路径>" --outtype f16 --verbose --outfile "<你要输出的文件位置>"
2.4 然后他就转换为GGUF格式了,就按GGUF格式的来就好啦

3.ollama量化

我发现ollama pull下来的模型大小比直接从huggingface下载下来的SAFE类型小很多,于是去ollama看了下大模型量化
git 复制代码
https://github.com/ollama/ollama/blob/b51e0f397ced70bbfa7f22e9b3c94953967cb8e5/ml/backend/ggml/ggml/src/ggml-quants.h#L17
这个里面是一些常见的量化支持,这里我们选择的是q4_K_M
执行创建命令的时候带上
sh 复制代码
ollama create --quantize q4_K_M <你要在ollama中显示的模型名称> -f Modelfile
相关推荐
阿杰学AI5 小时前
AI核心知识38——大语言模型之Alignment(简洁且通俗易懂版)
人工智能·安全·ai·语言模型·aigc·ai对齐·alignment
WebGoC开发者9 小时前
【备赛指导】佛山市青少年科技创新大赛暨佛山市青少年人工智能科创节 智趣AI竞技赛 流程详解
人工智能·经验分享·科技·ai·青少年科技竞赛
Altair澳汰尔10 小时前
成功案例丨仿真+AI技术为快消包装行业赋能提速:基于 AI 的轻量化设计节省数十亿美元
人工智能·ai·仿真·cae·消费品·hyperworks·轻量化设计
ShiMetaPi10 小时前
SAM(通用图像分割基础模型)丨基于BM1684X模型部署指南
人工智能·算法·ai·开源·bm1684x·算力盒子
阿部多瑞 ABU11 小时前
国内外大模型安全红队实测:角色越狱与分步诱导双路径可稳定绕过政治与技术防护
网络·安全·ai
Ledison712 小时前
AI相关学习
ai
霸王蟹12 小时前
Dify接入外部知识库-RAGFlow
ai·知识库·工作流·dify·rag·智能体
资深web全栈开发13 小时前
一文讲透 A2A 架构:Google 的 Agent-to-Agent 协议
ai·架构
yuezhilangniao14 小时前
避坑指南:让AI写出高质量可维护脚本的思路 流程和模板 - AI使用系列文章
人工智能·ai
冬-梦15 小时前
Claude-Flow
ai·swarm·multi agent·claude code·claude-flow·hive-mind