LFM2.5-1.2B-Instruct 模型在 Docker Ollama 上的部署、训练与 RAGFlow 集成指南

作者: Manus AI 日期: 2026年1月22日 工作语言: 简体中文


摘要

本文档旨在提供一个全面的技术指南,指导用户如何使用 DockerOllama 运行 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 的关键步骤概述:

  1. 安装 Unsloth: 在容器内,Unsloth 已经预装。
  2. 加载模型: 使用 Unsloth 的 FastLanguageModel.from_pretrained 方法加载 LFM2.5-1.2B-Instruct 模型。
  3. 数据准备: 准备您的训练数据集,并将其格式化为模型所需的输入格式(例如 ChatML 格式)。
  4. 配置 LoRA: 配置 LoRA (Low-Rank Adaptation) 参数,这是高效微调的关键。
  5. 训练: 使用 Hugging Face 的 TrainerSFTTrainer 开始训练。

代码示例(概念性):

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 容器内执行 curl http://host.docker.internal:11434/ 来测试连通性。

2. 在 RAGFlow 中添加 Ollama 模型提供商

登录 RAGFlow 的 Web 界面,按照以下步骤添加 Ollama 作为模型提供商:

  1. 导航到模型提供商设置: 点击右上角的头像或 Logo -> Model providers
  2. 添加 Ollama: 点击添加按钮,选择 Ollama
  3. 配置基本设置:
    • 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

3. 更新系统模型设置

添加模型提供商后,您需要将其设置为 RAGFlow 系统默认使用的模型:

  1. 导航到系统模型设置: 点击右上角的头像或 Logo -> Model providers -> System Model Settings
  2. 选择模型:
    • Chat model 下拉列表中,选择您刚刚添加的 lfm2.5-thinking:1.2b
    • Embedding model 下拉列表中,选择您配置的嵌入模型(例如 bge-m3)。

完成以上步骤后,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