LFM2.5-1.2B-Instruct 模型在 Docker Ollama 上的部署、训练与 RAGFlow 集成指南
作者: Manus AI 日期: 2026年1月22日 工作语言: 简体中文
摘要
本文档旨在提供一个全面的技术指南,指导用户如何使用 Docker 和 Ollama 运行 LFM2.5-1.2B-Instruct 模型,如何利用 Unsloth 进行模型微调(训练),以及如何将该模型集成到 RAGFlow 平台中,以构建一个高效的本地检索增强生成(RAG)系统。LFM2.5-1.2B-Instruct 是 Liquid AI 推出的一款高性能、低内存占用的混合模型,非常适合在本地或边缘设备上部署 [1]。
一、使用 Docker Ollama 运行 LFM2.5-1.2B-Instruct
Ollama 是一个轻量级的框架,用于在本地运行大型语言模型(LLM)。通过 Docker 部署 Ollama 可以简化环境配置,并确保隔离性。
1. 部署 Ollama Docker 容器
首先,您需要确保系统已安装 Docker 和 NVIDIA Container Toolkit(如果需要 GPU 加速)。
使用以下命令运行 Ollama 容器,并将端口 11434 映射出来:
# 运行 Ollama 容器
# 如果需要 GPU 支持,请添加 --gpus all 参数
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama:/root/.ollama \
ollama/ollama
2. 拉取 LFM2.5-1.2B-Instruct 模型
LFM2.5-1.2B-Instruct 模型已被社区打包并上传到 Ollama 库中,通常以 lfm2.5-thinking:1.2b 或类似名称存在 [2]。
使用 docker exec 命令在运行中的 Ollama 容器内拉取模型:
# 在 Ollama 容器内拉取模型
docker exec -it ollama ollama pull lfm2.5-thinking:1.2b
3. 运行模型进行推理
模型拉取完成后,您可以通过 Ollama 的 API 或命令行进行推理测试:
# 在 Ollama 容器内运行模型进行交互式推理
docker exec -it ollama ollama run lfm2.5-thinking:1.2b
二、LFM2.5-1.2B-Instruct 模型的微调(训练)
虽然 Ollama 提供了运行模型的能力,但模型训练(微调)通常需要更专业的工具。Unsloth 是一个流行的库,它通过优化 PyTorch 代码,使 LLM 微调更快、更省内存,并且官方提供了对 LFM2.5 模型的支持 [3]。
1. 部署 Unsloth Docker 训练环境
Unsloth 官方提供了预配置的 Docker 镜像,其中包含了所有必要的依赖项(如 PyTorch、CUDA 等)。
前提条件: 必须安装 NVIDIA Container Toolkit 才能在 Docker 中使用 GPU 进行训练。
使用以下命令运行 Unsloth 容器,并映射一个本地目录用于存放训练数据和结果:
# 运行 Unsloth 容器,并映射本地目录
# 假设您的训练数据和脚本在本地的 ~/unsloth_data 目录下
docker run --gpus all -it --rm \
-p 8888:8888 \
-v ~/unsloth_data:/workspace \
unsloth/unsloth:latest
该命令会启动一个带有 Jupyter Lab 的容器,您可以通过浏览器访问 http://localhost:8888 来进入训练环境。
2. 使用 Unsloth 进行微调
在 Jupyter Lab 环境中,您可以创建一个 Python 脚本或 Notebook 来执行微调。以下是使用 Unsloth 微调 LFM2.5-1.2B-Instruct 的关键步骤概述:
- 安装 Unsloth: 在容器内,Unsloth 已经预装。
- 加载模型: 使用 Unsloth 的
FastLanguageModel.from_pretrained方法加载 LFM2.5-1.2B-Instruct 模型。 - 数据准备: 准备您的训练数据集,并将其格式化为模型所需的输入格式(例如 ChatML 格式)。
- 配置 LoRA: 配置 LoRA (Low-Rank Adaptation) 参数,这是高效微调的关键。
- 训练: 使用 Hugging Face 的
Trainer或SFTTrainer开始训练。
代码示例(概念性):
from unsloth import FastLanguageModel
import torch
# 1. 加载模型
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "LiquidAI/LFM2.5-1.2B-Instruct",
max_seq_length = 2048,
dtype = torch.bfloat16, # 推荐使用 bfloat16
load_in_4bit = True, # 启用 4-bit 量化以节省内存
)
# 2. 配置 LoRA
model = FastLanguageModel.get_peft_model(
model,
r = 16, # LoRA rank
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
lora_alpha = 16,
lora_dropout = 0.05,
bias = "none",
use_gradient_checkpointing = "unsloth",
random_state = 3407,
max_seq_length = 2048,
)
# 3. 训练 (使用 SFTTrainer)
# ... (省略数据加载和 Trainer 配置)
# trainer.train()
# 4. 保存模型
# model.save_pretrained_merged("lfm25_merged_model", tokenizer, save_method = "merged_16bit")
三、LFM2.5-1.2B-Instruct 与 RAGFlow 的集成
RAGFlow 是一个用于构建 RAG 系统的开源平台。它支持通过 API 连接本地部署的 LLM,包括 Ollama [4]。
1. 确保 Ollama 可访问性
RAGFlow 和 Ollama 通常都部署在 Docker 中。为了让 RAGFlow 容器能够访问 Ollama 容器,您需要使用特定的网络地址。
- 如果 RAGFlow 和 Ollama 在同一台宿主机上运行:
RAGFlow 容器内访问 Ollama 的地址应为
http://host.docker.internal:11434[4]。
您可以通过在 RAGFlow 容器内执行 curl http://host.docker.internal:11434/ 来测试连通性。
2. 在 RAGFlow 中添加 Ollama 模型提供商
登录 RAGFlow 的 Web 界面,按照以下步骤添加 Ollama 作为模型提供商:
- 导航到模型提供商设置: 点击右上角的头像或 Logo -> Model providers。
- 添加 Ollama: 点击添加按钮,选择 Ollama。
- 配置基本设置:
- Base URL: 填写 Ollama 的访问地址,例如
http://host.docker.internal:11434。 - 模型名称和类型:
- Chat Model: 填写您在 Ollama 中拉取的模型名称,例如
lfm2.5-thinking:1.2b,类型选择chat。 - Embedding Model: 如果您需要使用 Ollama 提供的嵌入模型(例如
bge-m3),则添加另一个 Ollama 提供商,模型名称填写bge-m3,类型选择embedding。
- Chat Model: 填写您在 Ollama 中拉取的模型名称,例如
- Base URL: 填写 Ollama 的访问地址,例如
3. 更新系统模型设置
添加模型提供商后,您需要将其设置为 RAGFlow 系统默认使用的模型:
- 导航到系统模型设置: 点击右上角的头像或 Logo -> Model providers -> System Model Settings。
- 选择模型:
- 在 Chat model 下拉列表中,选择您刚刚添加的
lfm2.5-thinking:1.2b。 - 在 Embedding model 下拉列表中,选择您配置的嵌入模型(例如
bge-m3)。
- 在 Chat model 下拉列表中,选择您刚刚添加的
完成以上步骤后,RAGFlow 就可以使用您本地部署的 LFM2.5-1.2B-Instruct 模型进行 RAG 任务了。
四、总结
| 任务 | 关键工具/技术 | 核心步骤 |
|---|---|---|
| 模型运行 | Docker, Ollama | 1. 运行 ollama/ollama 容器。 2. docker exec 拉取 lfm2.5-thinking:1.2b 模型。 |
| 模型训练 | Docker, Unsloth | 1. 运行 unsloth/unsloth:latest 容器(需 GPU)。 2. 在 Jupyter Lab 中使用 Unsloth 脚本进行 LoRA 微调。 |
| RAGFlow 集成 | RAGFlow, Ollama API | 1. 确保 Ollama 可通过 http://host.docker.internal:11434 访问。 2. 在 RAGFlow 界面中添加 Ollama 模型提供商并配置模型名称和 Base URL。 |
参考文献
[1] LiquidAI. LFM2.5-1.2B-Instruct. Hugging Face. URL: https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct [2] Ollama. lfm2.5-thinking:1.2b. Ollama Library. URL: https://ollama.com/library/lfm2.5-thinking:1.2b [3] Unsloth. Liquid LFM2.5: How To Run & Fine-tune. Unsloth Documentation. URL: https://unsloth.ai/docs/models/lfm2.5 [4] RAGFlow. Deploy local models. RAGFlow Documentation. URL: https://ragflow.io/docs/dev/deploy_local_llm