继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

从零到本地大模型:开发者使用Docker构建模型运行器的指南

慕尼黑的夜晚无繁华
关注TA
已关注
手记 413
粉丝 61
获赞 320

使用Docker和LangChain,无需使用GPU,构建你自己的本地优先型的生成式AI栈。

Docker 架构图

为什么 本地 LLM 很重要?

大型语言模型(LLM)的崛起已经彻底改变了我们构建应用程序的方法。但要在本地部署它们呢?这对大多数开发者来说仍然是一件棘手的事。从模型格式到依赖地狱,再到硬件限制,甚至奇怪的命令行工具,即使是在笔记本上运行一个小LLM也仿佛在雷区中穿行。

Docker Model Runner改变了这一切——它将容器原生开发的强大能力带入本地AI流程,让你可以专注于开发,而不是与工具链搏斗。

开发者遇到的问题:

  • 格式太多:GGUF、PyTorch、ONNX、TF 等等
  • 依赖问题和混乱的构建脚本
  • 需要 GPU 或配置复杂的 CUDA
  • 实验时缺乏一致的本地 API

Docker Model Runner 如下解决这些问题:

  • 通过Docker镜像来标准化模型访问
  • 使用llama.cpp在后台运行以实现快速处理
  • 开箱即用地提供与OpenAI兼容的APIs
  • 直接与Docker Desktop无缝集成

🐳 Docker模型运行程序是什么?

它是一个轻量级的本地模型运行时环境,与Docker Desktop集成在一起。它允许你本地运行量化模型(GGUF格式),并通过熟悉的命令行界面(CLI)和OpenAI兼容的API来操作。它基于llama.cpp,设计为:

- 开发者友好: 几秒钟内就能拉取并运行模型
- 离线优先: 适合隐私和边缘设备场景
- 可组合: 可与LangChain、LlamaIndex等配合使用

主要特点:

  • localhost:11434 运行的 OpenAI 风格的 API
  • 无需 GPU,可以在配备 Apple Silicon 的 MacBook 上运行
  • 可通过命令行轻松切换模型
  • 与 Docker Desktop 集成

五分钟:上手

1. 开启模型运行器(Docker桌面)

在 Docker Desktop 中运行 model-runner

2. 创建你的第一个模型

docker model pull ai/smollm2:360M-Q4_K_M

3. 运行带提示词的模型

docker model run ai/smollm2:360M-Q4_K_M "解释多普勒效应,就像我在跟五岁的小朋友说话。"

4. 使用(开放的)API

curl http://localhost:11434/v1/completions \ -H "Content-Type: application/json" \ -d '{"model": "smollm2", "prompt": "你好,你是谁呀?", "max_tokens": 100}'

⚙️搭建您的本地生成式AI系统

这里有一个使用 Docker Model Runner 作为推理后端的简单架构。

- LangChain: 用于提示模板和链式操作
- Docker 模型运行:本地运行大型语言模型
- LlamaIndex: 用于文档索引和检索(RAG)
- React 前端: 清晰的聊天界面,便于与模型交互
- Docker Compose: 一键运行所有组件

docker-compose.yml 示例(请参见 GitHub 仓库中的示例):

    services:
      model-runner:
        image: ai/smollm2:360M-Q4_K_M
        ports:
          - "11434:11434"
      frontend:
        build: ./frontend
        ports:
          - "3000:3000"
        environment:
          - API_URL=http://localhost:11434

进入全屏 退出全屏

特色功能:

  • 离线运行
  • 模型热交换通过环境变量
  • 完全支持容器化

💡 小提示:添加一个前端聊天窗口

使用任何前端框架如React、Next.js或Vue来构建一个聊天界面,并通过REST API与本地模型通信。

一个简单的示例检索:

    fetch("http://localhost:11434/v1/completions", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ prompt: "Docker是什么?", model: "smollm2" })
    });

点击进入全屏 点击退出全屏

这为你提供了一个完全本地化的大型语言模型(LLM)体验,无需使用GPU或云API。

超酷的 高级用法

- RAG 管道: 结合 PDF 和本地向量搜索,同时运行模型运行器
- 多个模型: 运行 phi2、mistral 等独立的服务
- 模型比较: 使用 Compose 构建 A/B 测试界面工具
- Whisper.cpp 集成: 语音转文字容器插件功能(即将推出)
- 边缘 AI 部署: 在隔离系统或开发板上部署

愿景:目标所在

Docker Model Runner 可以成长为一个完整的生态系统。

  • ModelHub:可搜索和标记的模型库
  • 原生GenAI的Compose模板
  • Whisper + LLM混合运行器
  • 监控模型性能的仪表盘
  • 用于提示工程和测试的VSCode插件

作为开发者,我将这视为一个巨大的机会,可以降低进行AI实验的门槛,并帮助让容器原生AI让每个人都能接触。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP