使用大型语言模型生成结构化数据 - 超越基础

主要观点:将非结构化数据转换为结构化数据是 AI 的核心用例之一,OpenAI APIs 中有三种常用方法,包括 JSON 模式、工具调用和结构化输出,同时介绍了增加准确性、速度和降低成本的多种策略。

关键信息:

  • 三种方法:JSON 模式需在提示中包含 JSON 形状的指令;工具调用需指示 LLM 调用遵循特定 JSONSchema 的工具;结构化输出是 JSON 模式的进化,有冷启动成本。
  • 增加准确性:丰富模式,为每个字段提供描述和推理;注意字段顺序;使用 multipass 模式和选举,通过多数投票选择最频繁的值;在处理歧义案例时很有用。
  • 增加速度:使用并行处理,将模式拆分为多个独立的子模式并并行生成 JSON,然后合并;但要注意子模式的独立性和依赖关系。
  • 降低成本:在 Anthropic APIs 和 Google Gemini 中可用的提示缓存可降低成本和延迟;使用更便宜和更小的模型,但需要进行评估和验证。

重要细节:

  • 在 OpenAI 的严格模式中,并非所有 JSONSchema 都受支持,可创建详细模式并逐步验证输出。
  • 并行处理的示例代码展示了如何使用ai库生成多个 JSON 并合并。
  • 提示缓存在不同提供商中的特点不同,包括成本降低、延迟降低、缓存寿命、最小可缓存令牌等方面。
  • 较小的 OSS 模型如 Microsoft 的 Phi-3 结合[Outlines]可与较大模型竞争。
阅读 10
0 条评论