跳到主要内容

模型专题

问题:MinerU 是什么

MinerU 是由 OpenDataLab(上海人工智能实验室)开源的高精度文档解析引擎,专门为 LLM / RAG / Agent 工作流设计。

核心功能:

  • PDF、DOCX、PPTX、XLSX、图片、网页 等复杂文档转换为结构化 Markdown / JSON
  • 支持 VLM + OCR 双引擎,覆盖 109 种语言
  • 自动去除页眉/页脚/页码,按人类阅读顺序输出
  • 公式 → LaTeX,表格 → HTML,支持扫描件、手写体、多栏布局、跨页表格合并
  • 支持纯 CPU / GPU / NPU 环境,兼容华为昇腾等 10+ 国产芯片

集成方式:

  • 提供 MCP Server(Cursor / Claude Desktop / Windsurf)
  • 原生集成 LangChain、LlamaIndex、Dify、FastGPT 等 RAG 框架
  • Python / Go / TypeScript SDK、CLI、REST API、Docker
  • 当前最新版本 3.1.x(2026年5月),已从 AGPLv3 切换到基于 Apache 2.0 的开源协议

本质上,MinerU 解决的是"非结构化文档 → LLM 可消费的结构化数据"这一关键链路问题。

问题:vLLM 是什么

vLLM 是一个高性能、高吞吐量的开源 LLM 推理和服务框架,最初由 UC Berkeley Sky Computing Lab 开发,现已成为 PyTorch Foundation 托管项目,社区驱动。

核心创新 — PagedAttention:

  • 受操作系统虚拟内存和分页机制启发,将 KV Cache 分页管理,消除显存碎片
  • 使 GPU 可以同时处理更多请求,吞吐量可达 HuggingFace Transformers 的 24 倍

关键特性:

  • 连续批处理:请求动态进出 batch,不等待完整序列结束
  • PagedAttention:高效管理注意力 KV 缓存内存
  • 多种量化:GPTQ、AWQ、INT4/INT8、FP8
  • 分布式推理:张量并行、流水线并行、数据并行、专家并行
  • 前缀缓存:共享前缀的请求复用 KV Cache
  • 推测解码:小模型打草稿,大模型验证
  • OpenAI 兼容 API,流式输出
  • 支持 NVIDIA / AMD / Intel / Google TPU / 华为昇腾等硬件

版本状态:

  • 2025 年已全面迁移至 V1 引擎(V0 代码已移除),架构更简洁、性能更高
  • vLLM Router(Rust 构建)已发布,提供智能负载均衡
  • 已实现 2.2k tok/s/H200 的大规模服务性能

vLLM 是目前业界部署最广泛的 LLM 推理框架之一,尤其擅长高并发场景。

问题:SGLang 是什么

SGLang(Structured Generation Language)是一个高性能的 LLM 和多模态模型推理服务框架,由 Stanford、UC Berkeley 和 LMSYS 联合研发,是全球增长速度最快的推理框架之一。

核心创新 — RadixAttention:

  • 使用基数树(Radix Tree)结构来索引和复用 KV Cache
  • 共享前缀的请求(如 RAG 中相同的系统提示词)直接跳过计算,仅处理差异部分
  • 在 RAG 场景下速度可达 vLLM 的 6 倍,DeepSeek-V3 推理速度业界第一(比 vLLM 快 3.1 倍)

关键特性:

  • 极快运行时:零开销 CPU 调度器、预填充-解码分离、连续批处理、分页注意力
  • 结构化生成:原生支持 JSON / 函数调用的约束解码,无需额外后处理
  • 广泛模型支持:Llama、Qwen、DeepSeek、GLM、GPT、Gemma 等语言模型 + 嵌入模型 + 扩散模型(WAN、Qwen-Image)
  • 广泛硬件支持:NVIDIA(GB200/B300/H100…)、AMD、Intel CPU、Google TPU、华为昇腾
  • RL 后训练支撑:被 AReaL、verl 等主流强化学习框架采用作为 rollout 后端
  • 已部署在全球 40 万+ GPU 上,日均处理万亿级 Token
  • 被 xAI、NVIDIA、美团、阿里云等采用

SGLang 通过声明式 DSL 让开发者用几行代码实现约束生成、多智能体协作,兼顾开发效率与运行性能。

问题:vLLM 和 SGLang 有什么区别

两者都是高性能 LLM 推理框架,核心区别在于KV Cache 管理策略设计侧重不同:

维度vLLMSGLang
核心创新PagedAttention(分页管理 KV Cache)RadixAttention(基数树索引复用)
共享前缀场景前缀缓存(Prefix Caching),固定粒度RadixTree 天然支持,任意粒度共享,RAG 场景可达 6x
结构化生成需外部约束库(如 Outlines、LiteLLM)配合原生 JSON Schema / 函数约束解码,零开销
生态成熟度业界最广泛,社区最大,硬件支持最全快速增长,已被 xAI、NVIDIA、美团、阿里云采用
模型覆盖面更广,对冷门模型和新硬件支持更快聚焦主流模型,追赶速度很快
DeepSeek-V3支持快 3.1 倍,目前业界最快
适用场景通用高并发服务,生产稳定优先RAG / 共享 Prompt 密集 / 结构化输出要求高的场景

选型建议:

  • 如果服务模型种类多、用户请求模式不固定、生产环境追求最长稳定运行时间,vLLM 更稳妥
  • 如果场景有大量共享前缀请求(RAG)、强依赖结构化输出(JSON Mode / Function Calling)、或主要跑 DeepSeek 系列,SGLang 优势明显
  • 两者可以共存:不同业务线用不同的推理框架,LiteLLM 统一路由,互不干扰
问题:在项目里 vLLM 和 SGLang 的部署形式是什么样的

vLLM 部署(国能智能评标平台):

我们实际部署的是 vLLM,整体架构是 vLLM + LiteLLM + Langfuse 三层堆叠

┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Agent 服务 │────▶│ LiteLLM │────▶│ vLLM 实例 │
│ (业务侧) │ │ (路由/降级) │ │ (推理引擎) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Langfuse │ │ 备用模型 │
│ (全链路追踪) │ │ (Fallback) │
└──────────────┘ └──────────────┘
  1. vLLM 层——负责模型推理。部署在单台 8×4090 服务器上,拉起多个 vLLM 实例,分别承载不同模型(如 Qwen 系做文本评审、Code 模型做评分代码生成)。每个实例暴露 OpenAI 兼容 API。
  2. LiteLLM 层——作为统一网关部署在容器中,配置了多个 model group:主模型指向 vLLM 实例,备用模型指向其他服务(如阿里云通义 API)。主模型失败自动 fallback,保证评审流程不中断。
  3. Langfuse 层——所有 LiteLLM 通过的请求上报到 Langfuse,记录每次调用的 Prompt、Completion、Latency、Token 用量,用于 bad case 回溯和成本分析。

SGLang 部署(参考架构,当前项目未使用):

如果切换或混用 SGLang,部署形式类似——SGLang 实例替代部分 vLLM 实例。典型方式:

┌──────────────┐ ┌──────────────┐ ┌────────────────┐
│ Agent 服务 │────▶│ LiteLLM │──┬─▶│ vLLM (通用) │
│ │ │ (路由调度) │ ├─▶│ SGLang (RAG类) │
└──────────────┘ └──────────────┘ │ └────────────────┘
│ (根据请求类型路由)
  • 路由策略:LiteLLM 配置两个 model group,Agent 服务根据任务类型选择路由——结构化生成、RAG 检索密集的任务走 SGLang,通用文本评审走 vLLM。
  • 共享 GPU 资源:在同一台 8×4090 上,按端口区分实例,由 LiteLLM 统一管理路由和负载均衡。
  • 关键考虑:SGLang 对 DeepSeek-V3 等 MoE 模型的推理效率更高,如果未来切换到这类模型,SGLang 是优先选型。

核心就是:推理框架可替换、上层无感知——无论底层是 vLLM 还是 SGLang,Agent 业务代码只需要面向 LiteLLM 的 OpenAI 兼容接口,框架切换对业务透明。

问题:LiteLLM 是什么

LiteLLM 是一个开源的 LLM 网关/代理(Gateway/Proxy)库,提供统一的 OpenAI 兼容接口来调用 100+ 种大语言模型(OpenAI、Anthropic、Vertex AI、Bedrock、vLLM、Ollama、HuggingFace 等)。

两种使用方式:

  1. SDK 模式 — 直接替代 OpenAI 客户端:

    from litellm import completion
    response = completion(model="gpt-3.5-turbo", messages=[...])
    # 模型名一换就切到别的提供商
  2. 代理服务器模式(LLM Gateway)— 自托管网关:

    litellm --model ollama/codellama # 启动代理,监听 http://0.0.0.0:4000
    • 任何 OpenAI 兼容客户端无需改代码即可接入
    • 支持虚拟密钥(按密钥/团队/用户做预算和用量追踪)
    • 负载均衡:同一模型的多个部署间路由,支持重试/回退
    • 集中式日志、缓存、护栏(Guardrails)、监控 UI
    • 支持 A2A 代理MCP 网关,一个端点管理 LLM + Agent + MCP 工具

典型场景:

  • 公司内部统一管理多个模型提供商的 API 密钥和成本
  • 在生产环境中做模型降级(主模型失败自动回退到备用模型)
  • 跨多个 vLLM/SGLang 部署做负载均衡

LiteLLM 定位是 LLM 基础设施的控制面,解决的是多模型管理和接入的碎片化问题。

提示词工程

问题:什么是
问题:提示词怎么优化

上下文工程

问题:什么是

上下文工程就是围绕 LLM context window 做的信息筛选、排序、压缩和结构化设计,目标是用最少 token 提供最高质量的输入,从而提升模型输出的稳定性和准确性。

问题:与提示词工程的区别

提示词工程关注的是“如何表达问题”,而上下文工程关注的是“如何构建输入信息”,后者是一个更接近 RAG 和系统设计层面的能力,本质是对 LLM 输入数据流的整体优化。