生成式AI (GenAI) 应用正以前所未有的速度涌现。即使是经验丰富的机器学习专家,在面对 GenAI 领域时,也需要一套清晰的方法论来确保项目成功。本文基于实战经验,总结了构建卓越 GenAI 应用的五大黄金法则,涵盖了从问题定义指标衡量合成数据LLM 评估迭代开发的关键环节,旨在帮助开发者在快速发展的 GenAI 领域构建真正有价值的应用。

法则一:精准的问题定义是成功之基

在机器学习领域,问题定义的重要性毋庸置疑,但在 GenAI 领域,由于生成模型的不可控性,精准定义变得更为关键。模糊不清的需求会导致模型产生各种各样的结果,难以达到预期目标。

例如,当我们需要利用 GenAI 创建一个客户支持助手时,如果只是简单地要求助手“表现得令人愉快”,这在实际操作中会带来很大的歧义。“令人愉快”究竟意味着什么?是讲笑话?是友好地问候?是使用表情符号?还是在对话中加入鼓励性短语?

唯一的答案只能由产品团队和业务团队给出。他们需要深入了解用户体验,并将其转化为具体的、可操作的规则。这类似于传统软件工程中的产品规格定义,但“智能”系统的规格定义要困难得多,需要不断迭代和学习。

Galileo 提供的入门视频展示了在代码助手和通用智能体领域中如何进行评估,为我们提供了很好的参考。此外,Google Cloud 提供的 GenAI KPI 指标(https://cloud.google.com/transform/gen-ai-kpis-measuring-ai-success-deep-dive)能够帮助我们衡量 AI 成功的深度。例如,一家公司可以通过衡量代码助手对员工生产力的影响,来评估其 GenAI 应用的价值。更有甚者,有公司利用 AI 来优化乐事薯片的口味,这些案例都强调了清晰的问题定义的重要性。

只有当我们对 GenAI 产品的外观和功能有清晰的认识后,ML 团队才能开始着手实施离线指标。因此,务必将需求定义清楚,这将大大提升后续开发效率与产品质量。

法则二:量化指标体系驱动精准迭代

有了清晰的问题定义,下一步就是建立一套全面的指标衡量体系。为每个定义的标准建立相应的指标,可以有效评估项目是否成功。这些指标通常是离线指标,需要在代表性的数据集上进行测量。

由于难以采用传统指标来衡量语义相似性,因此通常会使用大型语言模型(LLM)作为裁判 (LLM as a Judge)。LLM 在这方面的表现几乎与人工审查员一样出色。Ragas 提供了一个很好的起点,它可以在几分钟内实现文本比较和基于规则的评分。Google Cloud 也提供了许多现成的 LLMaJ 指标,例如 Verbosity(冗余度)和 Safety(安全性)等等。此外,诸如 BLANC 这样的新指标也开始出现,它们专注于摘要的有效性。

以客户支持聊天机器人为例,为了衡量其语气的“亲切度”,我们可以定义以下标准:

  • 始终以问候语开始。
  • 称呼对方的名字。
  • 在对话结束时表达感谢。
  • 能够通过表达同情来处理愤怒的用户。
  • 禁止使用表情符号。

基于这些标准,我们可以构建一系列“LLM as a judge”工具,来评估聊天机器人的回复是否符合要求。例如,对于“始终以问候语开始”这一标准,我们可以使用 Ragas Rubric,并定义以下等级:

  • 0 级:智能体没有向用户问好,直接回答问题。
  • 1 级:智能体说了“你好”,但在回答之前没有添加安慰元素。
  • 2 级:智能体说了“你好”,并在回答问题之前添加了一句安慰的话。

通过建立完善的指标体系,我们就能准确评估 AI 智能体是否能够有效地服务用户,从而实现有针对性的优化。

法则三:巧用合成数据,解决数据稀缺难题

在衡量 AI 智能体在定义的指标上的表现时,我们需要大量的数据。但对于新产品来说,通常面临数据稀缺的问题。合成数据的出现,为我们提供了一个有效的解决方案。

生成式 AI 的一项重大突破在于,我们可以生成自己的数据集。虽然为每个项目定制合成数据的生成过程或多或少有些不同,但其核心思想是相同的:使用 LLM 生成数据样本,然后使用这些样本来测试 AI 智能体。

最简单的方法是让 LLM 生成数据集中的一行数据,然后重复使用该样本来测试 AI 智能体。虽然这听起来有些疯狂——尤其是在使用同一个 LLM 来创建问题和回答问题时——但它实际上是一个很好的基准。

但是,一旦我们超越了这个基本版本,事情就会变得更加复杂。目前,有很多研究都集中在这些主题上。例如,AgentClinic 可以将 QA 数据集转换为会话数据集,YourBench 可以生成更多的数据集。此外,还有一些数据集试图从最初并非为此目的设计的数据集中创建用于 LLM 微调的 LLM 轨迹。TxAgent 创建一个引导式 LLM 轨迹,用于稍后微调 LLM 以用于其特定用例。

在这一步骤上,我们需要投入大量的时间。这些不同的方法可以使我们的应用程序具有足够的优势,能够收集真实的用户数据。

例如,我们可以使用 LLM 生成各种用户查询,并模拟用户在不同场景下的反应。然后,我们可以使用这些合成数据来训练和评估我们的客户支持助手,从而提高其在真实场景中的表现。

法则四:专家级LLM评估,确保判断质量

在传统的机器学习中,我们通常认为指标的定义是完美的,无需审查精度或召回率的定义。但是,对于基于提示的 LLM 裁判来说,我们不能保证指标的计算结果完全符合我们的预期。

因此,有必要考察 LLMaJ 与领域专家评审之间的一致性。以下是一些可能需要在 LLMaJ 实现中修复的问题:

  • 非确定性:在相同的数据上运行两次可能会给出不同的等级。
  • 自恋偏见:LLM 可能会偏爱自己生成的答案。
  • 多多益善:LLM 裁判倾向于选择更冗长的文本,而不是更简洁的文本。
  • 不够精细的评估分数:LLM 在做出高层次决策时是可靠的裁判。但是,随着评分等级变得更加精细,LLM 更有可能给出任意分数。
  • 位置偏见:当使用 LLM 裁判进行成对比较时,它可能具有首选位置。

所有这些因素都可能导致裁判偏离领域专家的选择。将这种差距作为健全性检查来衡量是有用的,但也可以像调整普通 AI 智能体一样调整此裁判。

例如,我们可以让领域专家对 LLM 裁判的结果进行审查,并根据专家的反馈来调整 LLM 裁判的提示和参数,以提高其判断的准确性。

一旦我们达到人类和 LLM 之间的一定程度的相关性,我们就可以成功地自动化我们的领域专家,并运行稳健的实验来改进我们的 AI 智能体。

法则五:从简单开始,逐步迭代AI智能体

在完成了问题定义指标衡量合成数据LLM 评估的准备工作后,我们终于可以开始改进 AI 智能体了。这里的建议很简单:从简单开始,并随着评估流程的改进而添加组件。

最基本的做法通常是提示工程,即使用最先进的 LLM 提供商之一。例如,GPT-4.1 配合能够精确描述要执行的任务的正确提示就是一个很好的基准。

然后,我们可以考虑添加 RAG(检索增强生成),它将根据分配给智能体的任务提供上下文信息。例如,如果用户查询的是特定产品的规格,RAG 可以从产品数据库中检索相关信息,并将其提供给 LLM,以便生成更准确的回复。

从那里,我们可以开始朝着更智能的方向发展:首先,根据上下文进行工具调用,最后,真正让智能体执行不确定数量的任务。

例如,一个客户支持助手可以调用一个支付工具来处理退款,或者调用一个日程安排工具来安排服务预约。

至关重要的是,如果没有良好的评估,无论我们的系统多么复杂,如果没有数据集和一套清晰的指标来衡量其质量,它们的价值都无法得到证明。

有了一个好的数据集和指标基础,我们就可以使用像 DSPy 或 Optuna 这样的框架来解锁对提示和智能体的自动优化。

总结:精益求精,打造卓越的GenAI应用

在构建 GenAI 应用之前,我们需要做好充分的准备。由于这个领域是新兴的,因此很容易在没有建立正确的基础的情况下进行大量的手动调整。只有深入理解问题定义、建立全面的指标衡量体系、巧妙运用合成数据、确保 LLM 评估的准确性,并遵循迭代开发的原则,才能打造真正有价值的 GenAI 应用。