在选择合适的模型时,需要在准确性、延迟和成本之间找到平衡。首先应优先优化准确性,达到目标后再优化成本和延迟。本文提供了一个实用指南,帮助用户在不同模型之间做出明智的选择,并通过一个假新闻分类器的示例展示了如何应用这些原则。
-
准确性优先
- 设定明确的准确性目标,例如在客户服务场景中,90%的电话需要在首次交互中正确分类。
- 开发评估数据集,以衡量模型在这些目标下的表现。
- 使用最强大的模型(如 GPT-4o)来优化准确性,记录所有响应以便后续使用更小的模型进行蒸馏。
-
成本和延迟优化
- 一旦达到准确性目标,可以通过以下方法优化成本和延迟:
- 使用更小的模型(如 GPT-4o-mini)进行零样本或少样本测试,确保在较低成本和延迟下维持准确性。
- 使用蒸馏技术对更小的模型进行微调。
- 一旦达到准确性目标,可以通过以下方法优化成本和延迟:
-
实际示例
- 通过开发一个假新闻分类器,设定目标为90%的准确性、每千篇文章成本低于 $5、每篇文章处理时间少于2秒。
- 通过三次实验,最终使用微调的 GPT-4o-mini 达到了所有目标,成本仅为初始模型的2%。
-
结论
- 通过从 GPT-4o 切换到微调后的 GPT-4o-mini,性能相当但成本大幅降低。这一过程强调了先使用强大的模型达到准确性目标,然后再通过微调更小的模型来优化成本和延迟的策略。
如何选择合适的模型
选择合适的模型,无论是 GPT-4o 还是较小的 GPT-4o-mini,都需要在 准确性、延迟 和 成本 之间进行权衡。本指南为您提供关键原则,并通过一个实际例子帮助您做出明智的决策。
核心原则
选择模型的原则很简单:
- 首先优化准确性: 优化准确性,直到达到目标准确率。
- 其次优化成本和延迟: 在维持准确率的前提下,选择最便宜且最快的模型。
1. 首先关注准确性
首先为您的用例设定一个明确的准确性目标,确定达到“足够好”的准确率即可投入生产。可以通过以下方式实现:
-
设定明确的准确性目标: 明确您的目标准确率统计指标。
- 例如,90% 的客户服务电话需要在首次互动时得到正确分类。
-
开发评估数据集: 创建数据集,用以衡量模型的实际表现。
- 继续以上的例子,收集 100 个交互实例,记录用户的请求、LLM 的分类结果、正确的分类结果,以及分类是否正确。
-
使用最强大的模型进行优化: 从最强的模型入手,以确保达到目标准确率。记录所有响应,供后续更小的模型蒸馏使用。
- 使用检索增强生成 (retrieval-augmented generation) 来提高准确性。
- 使用微调 (fine-tuning) 来优化模型的一致性和行为。
在这个过程中,收集提示与生成对 (prompt and completion pairs),用于评估、少样本学习或微调。这一过程被称为 提示优化 (prompt baking),有助于未来生成高质量的示例。
想了解更多方法和工具,请查看我们的 准确性优化指南。
设定一个现实的准确性目标
通过评估模型决策的财务影响来设定一个合理的准确性目标。例如,在假新闻分类的场景中:
- 正确分类的新闻: 如果模型正确分类新闻,您可以节省人工审查成本——假设为 50 美元。
- 错误分类的新闻: 如果模型错误分类安全文章或漏掉假新闻,可能会触发审查流程或投诉,费用可能达到 300 美元。
在此新闻分类的例子中,需要 85.8% 的准确率才能覆盖成本,因此将目标设为 90% 或更高可以确保投资回报。通过这些计算,根据您具体的成本结构设定合理的准确率目标。
2. 优化成本和延迟
在考虑成本和延迟时,首先要确保模型能达到准确性目标,否则这些因素就没有意义了。一旦模型能满足您的需求,可以采用以下两种方法:
- 使用零样本或少样本的小模型进行比较: 替换为较小且更便宜的模型,测试其能否在降低成本和延迟的同时保持准确性。
- 模型蒸馏: 使用在准确性优化阶段收集的数据,微调更小的模型。
成本和延迟通常是相互关联的;减少 Tokens 和请求次数通常会加快处理速度。
优化策略包括:
- 减少请求次数: 限制完成任务所需的请求数量。
- 减少 Tokens 数量: 减少输入 Tokens 数量,并优化为更短的模型输出。
- 选择较小的模型: 选择在成本和延迟上更轻的模型,同时维持准确性。
更多内容,请参考我们的 延迟优化指南。
规则的例外
对于这些原则,有一些明确的例外情况。如果您的用例对成本或延迟极其敏感,请在开始测试前设定这些指标的阈值,然后排除超出这些阈值的模型。一旦设定了基准,这些指南将帮助您在限制范围内优化模型的准确性。
实际示例
为了演示这些原则,我们开发了一个假新闻分类器,并设定以下目标指标:
- 准确率: 达到 90% 的正确分类率
- 成本: 每 1,000 篇文章的费用少于 5 美元
- 延迟: 保持每篇文章的处理时间低于 2 秒
实验
我们进行了三次实验以达到目标:
- 零样本: 使用
GPT-4o
处理 1,000 条记录,但未达到准确率目标。 - 少样本学习: 添加了 5 个少样本示例,达到了准确率目标,但由于使用更多提示 Tokens 导致成本超标。
- 微调模型: 使用 1,000 个标记示例对
GPT-4o-mini
进行微调,达到了所有目标,延迟和准确性与前者相似,但成本大幅下降。
ID | 方法 | 准确率 | 准确率目标 | 成本 | 成本目标 | 平均延迟 | 延迟目标 |
---|---|---|---|---|---|---|---|
1 | gpt-4o 零样本 | 84.5% | $1.72 | < 1s | |||
2 | gpt-4o 少样本 (n=5) | 91.5% | ✓ | $11.92 | < 1s | ✓ | |
3 | gpt-4o-mini 微调 (1000 个示例) | 91.5% | ✓ | $0.21 | ✓ | < 1s | ✓ |
结论
通过从 gpt-4o
转向 gpt-4o-mini
并进行微调,我们在使用 1,000 个标记示例的情况下,以不到 2% 的成本达到了相同的性能。
这一过程非常重要——您通常无法立即进行微调,因为您不知道微调是否是您所需的优化工具,或是否拥有足够的标记示例。首先使用 gpt-4o
达到准确率目标,整理好一个优质的训练集,然后选择一个更小、更高效的模型并进行微调。