news 2026/9/9 16:17:12

如何将Llama factory的训练结果导入Ollama中进行部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何将Llama factory的训练结果导入Ollama中进行部署

🚀 LlamaFactory 模型导入 Ollama 的步骤

整个过程主要分为两大部分:转换模型格式导入 Ollama

第一步:将 LlamaFactory 训练结果转换为 GGUF 格式

LlamaFactory 导出的模型权重通常是Hugging Face 格式(包含safetensors或 PyTorch 的.bin文件以及配置)。您需要使用llama.cpp提供的工具将其转换为 GGUF 格式。

1. 准备llama.cpp环境

  • 首先,您需要克隆并编译llama.cpp仓库。
gitclone https://github.com/ggerganov/llama.cppcdllama.cppmake

2. 转换模型

  • 进入llama.cpp目录后,使用convert.pyconvert_hf_to_gguf.py脚本来执行转换。
  • 如果是全量微调(Full Fine-Tuning)合并了 LoRA 权重后的模型
# 假设您的模型路径是 /path/to/your/lf_modelpython3 convert.py /path/to/your/lf_model --outfile /path/to/output/model.gguf
  • 如果是 LoRA 适配器(Adapter)
    您需要先将 LoRA 权重与基础模型合并,再进行 GGUF 转换。LlamaFactory 通常提供了一键合并的脚本或功能。如果您在 LlamaFactory 训练时选择了保存合并后的模型,请使用合并后的模型路径进行转换。

3. 进行量化(可选但推荐)

  • GGUF 格式支持量化,可以大幅减小模型大小和显存/内存占用。您可以使用quantize工具对生成的 GGUF 文件进行量化(例如,转换为Q4_K_M格式)。
./quantize /path/to/output/model.gguf /path/to/output/model-quantized.gguf Q4_K_M
  • 推荐的量化方法包括:Q4_K_M,Q5_K_M,Q8_0等。

第二步:在 Ollama 中导入 GGUF 模型

一旦您获得了 GGUF 格式的模型文件(例如my-finetune-model.gguf),就可以通过创建一个Modelfile将其导入 Ollama。

1. 创建 Modelfile

  • 在一个新的文件夹中创建一个名为Modelfile的文件(注意:没有扩展名)。这个文件告诉 Ollama 如何加载和运行您的模型。
# Modelfile 的内容示例 FROM /path/to/your/my-finetune-model.gguf # 可选:定义模型在聊天中的行为,例如系统提示(System Prompt) # system """ # 你是一个乐于助人的 AI 助手,由 LlamaFactory 微调。 # """ # 更多可选参数,如温度、上下文大小等 # PARAMETER temperature 0.8 # PARAMETER num_ctx 4096 # 可选:定义提示模板,取决于您的模型微调时使用的格式 # TEMPLATE """{{ .Prompt }}"""

提示:FROM后的路径必须是您的 GGUF 文件的完整路径相对路径。如果您不知道如何编写提示模板,可以参考 LlamaFactory 训练时使用的原始模型模板。

2. 导入模型到 Ollama

  • 在包含Modelfile的目录下打开终端,运行ollama create命令来创建模型。
ollama create<您想给模型起的名字,例如 my-lf-model>-f Modelfile
  • 导入过程会比较快,因为它只是将 GGUF 文件注册到 Ollama 中。

3. 运行您的新模型

  • 导入成功后,您就可以运行它进行测试了。
ollama run<您给模型起的名字>

💡 总结流程

步骤动作工具结果
1. 转换将 Hugging Face 格式的模型转换为 GGUF 格式。llama.cppconvert.py生成.gguf文件
2. 量化(可选) 对 GGUF 文件进行量化。llama.cppquantize生成更小的.gguf文件
3. 定义创建一个Modelfile,指定 GGUF 文件路径及运行参数。文本编辑器Modelfile文件
4. 导入使用ollama create命令将模型注册到 Ollama。ollamaCLI成功部署的模型
5. 运行使用ollama run命令运行测试。ollamaCLI模型开始运行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 22:49:43

Java计算机毕设之基于springboot的影院购票管理系统的设计与实现基于SpringBoot的影院票务管理平台的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/9/8 18:20:44

類型系統如何助力編譯器超越手寫組合語言:從100% CPU利用率談起

類型系統如何助力編譯器超越手寫組合語言&#xff1a;從100% CPU利用率談起 引言&#xff1a;性能之爭的範式轉移 在計算機科學的早期歷史中&#xff0c;一條普遍接受的真理是&#xff1a;手寫組合語言程式碼總是比編譯器生成的程式碼更快。這種觀念源於編譯器的局限性——早…

作者头像 李华
网站建设 2026/9/9 7:39:36

请求合并的3种新技巧,眼前一亮!

将相似或重复请求在上游系统中合并后发往下游系统&#xff0c;可以大大降低下游系统的负载&#xff0c;提升系统整体吞吐率。文章介绍了 hystrix collapser、ConcurrentHashMultiset、自实现BatchCollapser 三种请求合并技术&#xff0c;并通过其具体实现对比各自适用的场景。前…

作者头像 李华
网站建设 2026/9/10 4:58:16

jdk1.8 是如何解决死循环问题的?

首先先看看 hashmap 在 jdk1.8 下扩容的核心方法在 JDK 1.8 的 HashMap 源码中&#xff0c;已经找不到 transfer 这个方法了。JDK 1.8 将扩容逻辑全部整合到了 resize() 方法中。而且&#xff0c;为了配合新的“尾插法”和“位运算”优化&#xff0c;这段代码的逻辑发生了翻天覆…

作者头像 李华
网站建设 2026/9/9 8:10:01

CPU RAM(内存) 是什么?一篇文章搞定入门!

先来看两张图大致了解一下基本结构&#xff1a;CPU我们先来看看一条程序是如何执行的&#xff1f;CPU 执行程序的过程如下&#xff1a;第⼀步&#xff0c;CPU 读取「程序计数器」的值&#xff0c;这个值是指令的内存地址&#xff0c;然后 CPU 的「控制单元」操作「地址总线」指…

作者头像 李华
网站建设 2026/9/9 3:34:05

vivado hls如何实现recursive fuction递归函数

一、HLS编译 IR中间表示&#xff08;Intermediate Representation, IR&#xff09;是编译器在将源代码转换为目标代码过程中使用的一种中间形式的程序表示; hls compiler核心是datapath compiler&#xff0c;这个是核心&#xff0c;属于back-end后端部分&#xff0c;这部分是不…

作者头像 李华