No history yet

大模型底层与选型

模型架构的权衡

选择大模型就像为项目挑选数据库。不存在唯一的“最佳”选择,只有“最适合”的选择。GPT-4 系列、Claude 3.5 Sonnet 和 Llama 3 代表了当今市场上的三种主要思路:平衡的行业标杆、专注长文本与安全的专家,以及开放灵活的开源力量。

GPT-4o 是 OpenAI 的旗舰模型,以其强大的逻辑推理能力和稳定的指令遵循能力著称。在需要复杂思考、多步骤任务分解的场景下,它通常是首选。它在代码生成和函数调用(Function Calling)等开发者工具链上集成得也最为成熟。

Anthropic 的 Claude 3.5 Sonnet 则在处理超长上下文方面独树一帜。当你的应用需要模型“阅读”并理解数万甚至数十万字的文档时,Claude 的“大海捞针”能力(在长文本中精准提取信息)表现尤为出色。同时,它经过“宪法 AI”训练,在生成安全、无害内容方面有更强的保证,适合对品牌声誉敏感的企业。

Meta 的 Llama 3 是开源社区的明星。它最大的优势在于灵活性和私有化部署。你可以下载模型权重,在自己的服务器上运行,完全掌控数据隐私。这对于金融、医疗等数据高度敏感的行业至关重要。同时,Llama 3 的生态系统庞大,拥有从 8B 到 70B 等多种参数规模,开发者可以根据自己的硬件和成本预算进行选择。

特性GPT-4oClaude 3.5 SonnetLlama 3 (70B)
核心优势综合推理、代码、函数调用超长上下文处理、安全性开源、可私有化部署
应用场景复杂 Agent、代码生成文档分析、法律合同审查数据敏感应用、学术研究
生态系统成熟、API 优先快速发展庞大、社区驱动
数据隐私依赖服务商政策依赖服务商政策完全可控(私有部署)

从开发者视角看,这些差异直接影响 API 的设计和应用的实现。例如,选择 Llama 3 意味着你需要自己处理模型托管、扩缩容等运维工作,而使用 GPT 或 Claude 的 API 则将这些复杂性外包给了云服务商。

长上下文窗口的真相

模型厂商不断宣传百万级别的上下文窗口,但这并不意味着你可以简单地将所有信息塞进去然后高枕无忧。实践中,超长上下文存在两个核心痛点:成本和“迷失在中间”。

首先,Token 的计费方式意味着上下文越长,成本越高,响应延迟也越大。其次,研究和实践都表明,模型在处理长文本时,对开头和结尾部分的信息记忆最清晰,而对中间部分的信息容易“遗忘”。这就是所谓的“迷失在中间” (Lost in the Middle) 效应。

对于需要精准利用大量知识的应用,单纯依赖长上下文窗口并非最佳策略。这正是检索增强生成(RAG)发挥作用的地方。RAG 将知识库外部化,在响应用户请求时,先从数据库中检索最相关的几段信息,然后将这些信息连同用户问题一起注入到模型的短上下文中。这样既保证了知识的准确性,又有效控制了成本和延迟。

一个典型的 RAG 流程是:

  1. 用户提出问题。
  2. 系统将问题转化为向量,在向量数据库中搜索最相似的知识片段。
  3. 将检索到的片段和原始问题组合成一个新的提示(Prompt)。
  4. 将该提示发送给模型,生成最终答案。

这种架构对模型基座提出了明确要求:它必须具备强大的指令遵循能力,能够忠实地基于你提供的信息进行回答,而不是自由发挥。

结构化输出与指令遵循

在企业应用中,我们很少直接使用模型的聊天式回复。更常见的是要求模型输出特定格式的数据,例如 JSON,以便程序能直接解析和处理。这就是“结构化输出”能力,而 JSON Mode 则是其最典型的实现。

当你在 API 请求中启用 JSON Mode 时,模型会保证其输出是语法正确的 JSON 对象。这极大地简化了后端开发,避免了繁琐的字符串解析和错误处理。但需要注意的是,JSON Mode 只保证格式正确,不保证内容符合你的预期。你依然需要在 Prompt 中清晰地定义你想要的 JSON 结构(Schema)。

不同模型在这方面的表现有所差异。GPT-4o 和 Claude 3.5 在遵循复杂 JSON Schema 和嵌套结构方面通常更可靠。Llama 3 等开源模型也支持 JSON Mode,但在处理极端复杂的指令时,可能需要更精细的 Prompt 工程来保证输出质量。

函数调用(Function Calling)是结构化输出的延伸。它允许你在 Prompt 中定义一组工具(函数),模型可以“决定”调用哪个工具,并生成包含函数名和参数的 JSON 对象。例如,你可以定义一个 get_weather(city: string) 的函数,当用户问“北京今天天气怎么样?”时,模型不会直接回答,而是输出一个 JSON:

{
  "tool_calls": [
    {
      "function": {
        "name": "get_weather",
        "arguments": "{\"city\": \"北京\"}"
      }
    }
  ]
}

你的应用程序接收到这个 JSON 后,执行本地的 get_weather 函数,然后将查询结果再返回给模型,让它生成最终的自然语言回答。这一机制是构建能与外部世界交互的 AI Agent 的核心。

成本、速度与参数调优

在选择模型时,我们必须在成本、速度和质量之间找到平衡。这通常体现在两个关键指标上:每 Token 的价格($/Token)和每秒生成 Token 的速度(Tokens/Sec)。

  • $/Token:这是模型的直接使用成本。输入(Prompt)和输出(Completion)的定价通常不同,你需要根据应用场景估算 token 消耗。
  • Tokens/Sec:这决定了用户感受到的延迟。对于实时交互应用(如在线客服),这个指标至关重要。

一个常见的误区是只关注最强大的模型。但很多时候,一个更小、更快的模型完全能胜任任务。例如,使用 GPT-4o 进行简单的文本分类可能是一种浪费,而一个更便宜的模型如 GPT-4o mini 或 Llama 3 8B 可能会以更低的成本和延迟完成同样的工作。

除了选择模型,我们还可以通过调整采样参数来深度优化输出。最重要的两个参数是 temperaturetop_p

  • Temperature (温度, 0-2): 控制输出的随机性。值越高,输出越随机、越有创造性;值越低,输出越确定、越保守。对于需要事实准确性的任务,建议使用低 temperature(如 0.2)。对于创意写作,可以尝试更高的值(如 0.8)。

  • Top-p (核心采样, 0-1): 控制模型在生成下一个词时考虑的候选词范围。top_p = 0.9 意味着模型只从累积概率达到 90% 的最可能词汇中选择。它是一种比 temperature 更精细的随机性控制方法。通常建议只调整其中一个参数,而不是同时调整两者。

精细地调整这些参数,可以在不更换模型的情况下,显著提升特定任务的输出质量。

企业级选型矩阵:

  • 追求最高逻辑推理能力? -> GPT-4o
  • 处理海量文档或法律文件? -> Claude 3.5 Sonnet
  • 数据隐私是第一要务? -> 私有化部署 Llama 3
  • 需要高性价比的通用任务? -> GPT-4o mini 或中等规模的开源模型

在真实业务中,模型选型是一个动态调整的过程。你可以从一个强大的模型开始验证想法,然后在性能和成本达到平衡时,逐步切换到更具性价比的方案。

Quiz Questions 1/5

一家处理高度敏感客户数据的金融公司希望构建一个内部问答机器人,并且必须在自己的服务器上部署模型以确保完全的数据隐私。在这种情况下,以下哪个模型系列是最佳选择?

Quiz Questions 2/5

当一个大型语言模型在处理非常长的文档时,它对文档开头和结尾部分的信息记忆最清晰,而对中间部分的信息容易“遗忘”。这种现象被称为:

理解这些核心概念是构建高效、可靠的 AI 应用的第一步。它们决定了你的应用将如何思考、如何与外部系统交互,以及最终的用户体验和运营成本。