[go: up one dir, main page]

Skip to main content

评估 AI 模型

使用 GitHub Models 中的评估程序和评分指标测试和比较 AI 模型输出。

概述

GitHub Models 提供了一个简单的评估工作流,可帮助开发人员比较大型语言模型 (LLM)、优化提示并在 GitHub 平台中制定数据驱动决策。 可以使用 GitHub Models,通过结构化评估工具,分析性能、准确性和成本,以此来试验新功能或验证模型更改。

提示

可使用 gh models eval 命令直接从命令行执行评估。 该功能采用与 UI 相同的评估程序:字符串匹配、相似度比对、自定义 LLM-as-a-judge 评估程序等,因此你可以在本地或 CI 环境中测试 .prompt.yml 文件。

GitHub Models 的用例

模型行为可能会因提示、输入或配置的不同而异。 GitHub Models 可帮助:

  • 跨实际用例测试和比较多个 LLM。
  • 优化提示短语、温度和其他参数。
  • 使用结构化的可重复指标评估模型输出。
  • 将 AI 开发集成到开发工作流中。

示例方案

设想这样一个应用方案:你正在构建一个功能,用于汇总客户通过支持票证提交的反馈。 这些汇总结果将用于生成内部报表和票证,因此输出的数据需要清晰、相关且简洁。

要进行的操作:

  • 试验不同的模型和提示配置。
  • 基于质量、一致性和效率,评估出性能最优的配置。
  • 将配置保存到存储库,以便重复使用及在协作中使用。

在操场中进行提示测试

若要详细了解如何在 GitHub Models 中创建和管理提示,请参阅在操场中测试提示

通过使用操场,可以并排比较模型、调整其参数和测试提示变体。

在此步骤中,要配置一个模型来生成客户支持反馈摘要。 将定义系统提示,使用示例输入对其进行测试,并对其进行优化,以确保输出简洁且相关。

定义系统提示

基于当前目标,定义模型行为。 在本例中,目标是总结客户反馈。 **** 在“Parameters”下,输入以下系统提示:

You are a helpful assistant that summarizes support ticket responses into concise summaries.

将其余设置保留为默认值。

系统提示的屏幕截图。 突出显示了系统提示输入。

编写用户提示

**** 设置模型后,在“Prompt”对话框中输入以下客户反馈:

The app crashes every time I try to upload a PDF from my phone. It works on desktop but not on mobile.

模型可能会生成如下所示的响应:

The user experiences consistent app crashes when attempting to upload a PDF from their phone. Uploading PDFs works normally on desktop. They request an investigation into the issue.

在提示中使用变量

注意

此功能目前为 公共预览版,可能会更改。

此时,配置会生成清晰简洁的摘要。 ******** 在“Parameters”设置底部,单击“Create prompt.yml file”以打开“Prompt”视图。 将自动预填充系统提示内容。

在“User prompt”字段中,输入提示,其中包括用双花括号括起的一个或多个变量占位符****。 例如:

Travel or shopping assistants using {{city}}, {{intent}}, and {{budget}} to tailor recommendations.

提示中列出的每个变量都将在比较模式下显示为参数。 运行评估时,系统会提示你为每个变量提供值。 这样就可以不同的输入重复使用提示,而无需修改提示内容。

或者,可以在 .prompt.yml 文件系统或用户提示中添加变量,以便将来自动执行使用多个变量进行计算的过程。 请参阅“Storing prompts in GitHub repositories”。

添加测试输入

**** 在“Prompts”视图顶部,选择“Compare”以切换“Comparisons”视图。 通过此视图,可跨多个提示或模型运行结构化比较,并应用评估程序来度量性能。

比较切换的屏幕截图。 突出显示了比较切换。

在“Comparisons”视图中,表中的每一行表示一个测试用例,其中包含特定的输入和预期输出。 每一列提供不同的提示配置,用于通过评估程序比较各种不同模型或提示样式的性能。

**** 单击“Add rows”以输入测试数据。 输入值模拟真实支持消息,预期输出值代表模型应返回的理想摘要。 下表提供用于评估的示例测试输入及其相应的预期输出。

Input预期输出
1我每次尝试从手机中上传 PDF 时,应用都会崩溃。 它可以在桌面上正常使用,但在移动设备上不运行。用户报告称该移动应用在用户每次上传 PDF 时都会崩溃,而桌面版可正常运行,不发生问题。
2两天前我联系了支持人员,但一直未收到回复。 我需要相关帮助以尽快恢复我的帐户。用户在等待支持响应,并迫切需要帮助以恢复帐户。
3请添加深色模式。 它在夜晚难以使用。 长时间使用后我的眼睛受到损伤。用户在夜间使用时眼睛疲劳,请求获取深色模式。

调整模型参数

在表格右侧,单击 以添加新的提示配置。

在新提示配置中,可使用可用的参数设置来更新模型并微调其行为。 这些设置控制模型如何生成文本,包括其长度、随机性和重复性。

配置模型

从“Model”下拉列表中,选择“PHI-4”以创建不同的配置以用于比较。

可调整以下参数来影响模型输出:

  • 最大标记数****:设置模型可返回的最大标记数。 值越大,允许的输出越长。
  • 温度****:控制响应的随机性。 较低值 (0.2–0.4) 生成更聚焦、更具确定性的输出。 较高值 (0.8–1.0) 引入更多的变化和创造性。
  • 最可能****:通过从最有可能出现的下一个词的集合中进行选择,来控制输出的多样性。 值越低,变化程度越低,与降低温度类似。
  • 出现惩罚****:抑制模型引入新主题。 值越高,应用的惩罚越强。 值 0 通常适合用于摘要。
  • 频率惩罚****:减少重复单词的可能性。 值越高,应用的惩罚越强。 取值在 0 到 0.5 之间有助于让摘要保持清晰且无冗余信息。
  • 停止字符****:指定一个或多个字符串,当模型生成的文本中出现这些字符串时,将截断模型的响应。 使用此选项可防止输出过长或强制实施格式规则。

下表提供了一个参数配置,用于在模型比较期间生成简洁摘要。

参数Reason
最大标记数128使响应保持简短并贴合主题
温度0.3确保输出具有确定性和重点
Top P1.0允许使用完整词汇库,但保持选择受引导
出现惩罚0无惩罚 - 摘要不需要主题变化
频率惩罚0.3减少紧凑摘要中的重复表述
停止(可选)在需要在关键字或符号之后结束输出时使用

应用参数后,可以添加更多列,并行比较更多模型或提示配置。

评估输出

配置提示后,运行结构化评估,使用实际数据和可重复指标比较模型输出。

借助模型评估,可了解不同模型和提示配置在应用各实际输入值后的性能。 在“Prompt”视图中,可并行向多个模型应用评估程序,并查看相似度、相关性及有据性等指标。

有以下评估程序可用:

  • 相似度****:度量模型的输出与预期响应或参考响应的匹配程度。 如果要确认模型会返回与已知结果一致且准确的响应,这会非常有用。 分数范围为 0 到 1,值越高,表示相似性越高。
  • 相关性****:指响应对问题的有效解答程度。 它仅基于给定信息评估响应的准确性、完整性和直接相关性。 分数范围为 0 到 1,值越高,表示与输入的意向更一致。
  • 有据性****:度量响应与所提供上下文的契合程度,其仅基于上下文评估响应的相关性、准确性和完整性。 它评估答案不引入无关或错误信息、全面回答问题的程度。 分数范围为 0 到 1,值越高,表示准确性越高。
  • 自定义提示****:可用于为一个 LLM 定义自己的评估条件,以评估另一个 LLM 的输出。 这样便可支持根据自己的标准对模型输出进行评分。 可以选择“通过/失败”式或评分式两种评估方式,这使得它非常适用于标准指标无法涵盖测试期望的场景。

**** 准备好评估时,单击“Run”,生成并比较所有不同提示配置的输出。 运行完成后,GitHub Models 会显示每个提示配置的输出,以及评估程序分数。

评估程序运行后数据集的屏幕截图。

测试用例:PDF 上传崩溃

输入The app crashes every time I try to upload a PDF from my phone. It works on desktop but not on mobile.

下表显示每个模型的输出及其评估程序分数:

型号输出
GPT-4.1用户报告称从移动设备中上传 PDF 时应用崩溃,但在桌面版中可正常上传。
DeepSeek-R1 好的了解,用户尝试从手机中上传 PDF 时遇到问题,应用会崩溃。 它可以在桌面上正常使用,但在移动设备上不行。 让我来详细分析。 首先,主要问题是应用崩溃,特别是从移动设备中上传 PDF 时。 桌面版可正常上传的事实表明,这个问题特定于移动设备。 潜在原因可能与移动应用版本、手机 OS、移动设备上的文件大小限制或移动设备上某些 PDF 格式的兼容性问题相关。 我需要确保摘要中提到从移动设备上传 PDF 时发生崩溃,同时注明在桌面版中可正常上传,并且
Phi-4应用在尝试从移动设备中上传 PDF 时发生崩溃,但在桌面版上可正常上传。
型号相似度相关性有据性输入标记输出标记延迟
GPT-4.1100%50%100%6120918ms
DeepSeek-R150%50%75%521282285ms
Phi-475%100%100%61661117ms

利用评估者评分来深入评估和比较不同响应,而不仅仅是停留在表面措辞上。

相似度

评估每个模型的输出与预期摘要的接近程度。 下表显示了每个模型的相关性分数。

型号相似度分数
GPT-4.1100%
DeepSeek-R150%
Phi-475%

尽管所有模型都包含了输入中的关键信息,但 DeepSeek-R1 的相似度得分显著较低,这是由于其内部论述过于冗长,偏离了预期的简洁摘要格式。 相比之下,GPT-4.1 的响应在措辞和结构上与参考输出完全匹配。

相关性

评估各个模型在多大程度上捕捉到了输入的核心意向。 下表显示了每个模型的相关性分数。

型号相关性分数
GPT-4.150%
DeepSeek-R150%
Phi-4100%

三个模型都识别到从移动设备中上传 PDF 期间应用崩溃的关键问题。 Phi-4 因更全面地反映了用户的观点而获得了更高的相关性分数。 DeepSeek-R1 因引入了原始输入中未提及的推测性技术原因而失分。

有据性

评估每个模型的输出是否忠实于输入内容,且未引入不支持的信息。 下表显示了每个模型的相关性分数。

型号有据性分数
GPT-4.1100%
DeepSeek-R175%
Phi-4100%

尽管 DeepSeek-R1 添加了内部评论,但它并未引入虚构的事实。 其最终摘要句子正确反映了原始输入。

测试用例:深色模式请求

输入Please add dark mode. It's very hard to use at night. My eyes hurt after prolonged use.

下表显示每个模型的输出及其评估程序分数:

型号输出
GPT-4.1用户因在夜间使用该应用时感到不适和眼睛疲劳,请求添加深色模式功能。
DeepSeek-R1 好的,用户希望添加深色模式,因为在夜间使用存在困难,他们的眼睛会疲劳。我需要作一个简明的总结。先明确主要请求:增加深色模式。然后说明原因:在夜间长时间使用眼睛会疲劳。用一句话表述。可将其表述为“请求实现深色模式,以减少夜间使用时眼睛疲劳的情况”。这概括了关键点,无任何多余细节。检查是否符合字符数限制。符合,看上去不错。 摘要:请求实现深色模式,以减少夜间长时间使用时导致的眼睛疲劳。
Phi-4客户要求添加深色模式功能,以减少夜间使用该产品时眼睛疲劳的情况。
型号相似度相关性有据性输入标记输出令牌延迟
GPT-4.1100%75%100%57181286ms
DeepSeek-R150%0%25%491281946ms
Phi-4100%75%100%5820899ms

相似度

评估每个模型的输出与预期摘要的接近程度。 下表显示了每个模型的相关性分数。

型号相似度分数
GPT-4.1100%
DeepSeek-R150%
Phi-4100%

尽管所有模型都包含了输入中的关键信息,但 DeepSeek-R1 的相似度得分再次显著较低,这是由于其内部论述过于冗长。

相关性

评估各个模型在多大程度上捕捉到了输入的核心意向。 下表显示了每个模型的相关性分数。

型号相关性分数
GPT-4.175%
DeepSeek-R10%
Phi-475%

GPT-4.1 和 Phi-4 都准确捕捉到了用户请求的主要意向:即需要深色模式来减轻夜间使用时的眼睛疲劳,并提高夜间使用的可用性。 DeepSeek-R1 在相关性方面得了 0%,原因是其冗长的内部论述分散了人们对实际输出的注意力。

有据性

评估每个模型的输出是否忠实于输入内容,且未引入不支持的信息。 下表显示了每个模型的相关性分数。

型号有据性分数
GPT-4.1100%
DeepSeek-R125%
Phi-4100%

DeepSeek-R1 因冗长的 <think> 部分而得分较低,该部分包含了原始输入中未出现的推测性推理。

保存配置

完成评估后,最后一步是选择在具体用例方面表现最优的模型。 在上述示例中, Phi-4 和 GPT-4.1 在所有评估程序方面都表现出了强劲且一致的结果。 DeepSeek-R1 得分较低,原因是其推理过于冗长,且输出内容不够聚焦。

**** 选择首选模型和提示配置后,向提示文件添加描述性名称,然后单击“Commit changes”。 这会将模型、提示、参数设置和关联的数据集保存为存储库中的可重用配置文件。

提交更改按钮屏幕截图。 突出显示了“提交更改”按钮。

提交提示配置,可以方便地在不同的模型设置中重复使用、协同利用和进行迭代。 这样可以更轻松地重新运行评估并跟踪一段时间内提示配置的性能。

其他阅读材料