Skip to content

LLM 全景与发展脉络:能力边界与适用边界

本文聚焦工程视角,尽量把“概念与落地”打通。 注:本文为“1 月份重点篇”,提供更完整叙述与代码片段,后续月份将逐步补充案例。

🎯 文章目标

  • 从发展脉络梳理 LLM 的“能与不能”
  • 澄清常见误区:长上下文、万能 Agent、评测高分即好用等
  • 给出工程落地的场景边界与决策清单

📚 背景/前置

  • 基本范式:预训练 → 微调/指令对齐(SFT/RLHF/DPO 等)→ 推理与调用
  • 供应侧:开源(Llama、Qwen、GLM、Mistral 等)与商用(OpenAI、Google、Anthropic 等)
  • 需求侧:检索问答、结构化抽取、总结改写、代码助手、Agent 工具链等

🔧 核心内容

1) 发展脉络与能力边界

  • 预训练决定“知识+语言能力上限”,但对特定业务“可执行性”仍需对齐
  • 指令对齐提升“遵循与格式化输出”,但不保证事实真确性
  • 长上下文扩展了“输入容量”,但信息检索/定位仍非模型强项,RAG 往往更稳
  • 多模态拓展能力边界(图像/语音/视频),但评估与成本更加复杂

2) 适用与不适用的边界

  • 适用:
    • 非结构化文本处理(摘要、改写、归纳)、泛化性强的对话/写作
    • 需要语义理解与一定推理但容错可控的场景
  • 谨慎/不适用:
    • 强一致性/强正确性(结算、财务、权限)、硬实时/极低延迟(毫秒级)
    • 有严格“可解释性/审计”要求且提示难以完全约束的流程

3) 典型工程决策清单

  • 知识处理优先 RAG:把变动知识放在外部,降低模型“参数规模依赖”
  • 任务分层与路由:稳态需求走模板化+小模型;难题用大模型兜底
  • 输出结构化:JSON Schema/正则/类型校验,上下游可执行
  • 观测与治理:埋点、日志、失败样本归档,持续回放与改进

💡 实战示例:最小可行对话/函数调用

以“天气查询”为例,演示函数调用与输出约束(Node.js,OpenAI 兼容接口):

javascript
import OpenAI from 'openai'
const client = new OpenAI({ baseURL: process.env.OPENAI_API_BASE, apiKey: process.env.OPENAI_API_KEY })

const tools = [
  {
    type: 'function',
    function: {
      name: 'getWeather',
      description: '查询城市天气',
      parameters: {
        type: 'object',
        properties: { city: { type: 'string' } },
        required: ['city']
      }
    }
  }
]

const messages = [
  { role: 'system', content: '你是实事求是的助手,只输出事实,不编造。' },
  { role: 'user', content: '明天杭州是否会下雨?' }
]

const resp = await client.chat.completions.create({ model: 'qwen2.5-7b-instruct', messages, tools })
const call = resp.choices[0].message.tool_calls?.[0]
if (call?.function?.name === 'getWeather') {
  const args = JSON.parse(call.function.arguments)
  const real = await getWeather(args.city) // 你的真实实现
  const follow = await client.chat.completions.create({
    model: 'qwen2.5-7b-instruct',
    messages: [
      ...messages,
      resp.choices[0].message,
      { role: 'tool', name: 'getWeather', content: JSON.stringify(real) }
    ]
  })
  console.log(follow.choices[0].message.content)
}

要点:

  • 工具调用让“事实获取”外置,降低幻觉/时效性问题
  • 使用 system 提示设定风格与边界;输出尽量结构化

📊 对比/取舍(速查)

  • 开源 vs 商用:本地可控 vs 更新快/能力强;综合看“成本+时延+可靠性”
  • 长上下文 vs RAG:窗口大不等于准确率高;多数知识型场景优先 RAG
  • 小模型+路由 vs 大模型一把梭:多数业务先“小而稳”,再引入大模型兜底

🧪 踩坑与经验

  • “全能 Agent”幻觉:复杂任务要拆分为可观测的步骤,工具链显式编排
  • 输出不稳定:用模板/JSON Schema/函数参数来约束
  • 链路无观测:日志埋点、失败样本归档、Prompt/模型版本化管理

📎 参考与延伸

  • RLHF/DPO 等对齐方法综述
  • vLLM/TGI/LMDeploy 等推理引擎对比
  • RAG 基础与评估方法

💭 总结

  • LLM 的“边界”来自模型能力、知识时效性与工程可控性
  • 以 RAG、路由、结构化输出、观测治理为抓手,稳步推进落地