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
相关推荐
虾条_花吹雪3 小时前
Using Spring for Apache Pulsar:Transactions
ai·spring pulsar
虾条_花吹雪4 小时前
Using Spring for Apache Pulsar:Message Production
java·ai·中间件
PengShuaiD56 小时前
什么是RAG(Retrieval-Augmented Generation)?一文读懂检索增强生成
人工智能·ai·rag
天使day6 小时前
Cursor的使用
java·开发语言·ai
小眼睛FPGA6 小时前
【RK3568+PG2L50H开发板实验例程】FPGA部分 | 以太网传输实验例程
科技·单片机·嵌入式硬件·ai·fpga开发·fpga
贾全9 小时前
零基础完全理解视觉语言模型(VLM):从理论到代码实践
人工智能·ai·语言模型·自然语言处理·vlm
落樱弥城13 小时前
Function CAll和MCP
ai·llm
武子康13 小时前
AI炼丹日志-30-新发布【1T 万亿】参数量大模型!Kimi‑K2开源大模型解读与实践
人工智能·gpt·ai·语言模型·chatgpt·架构·开源
贾全14 小时前
从LLM到VLM:视觉语言模型的核心技术与Python实现
人工智能·python·ai·机器人·视觉语言模型·vlm