Skip to content

数据集 使您能够使用一致的数据随时间进行可重复的评估。数据集由示例组成,这些示例存储输入、输出以及可选的参考输出。

本页概述了在 LangSmith UI创建管理数据集的各种方法。

创建数据集并添加示例

以下部分解释了在 LangSmith 中创建数据集并向其添加示例的不同方法。根据您的工作流程,您可以手动整理示例、从追踪中自动捕获、导入文件,甚至生成合成数据:

从追踪项目手动添加

构建数据集的常见模式是将应用程序中值得注意的追踪(traces)转换为数据集示例。此方法要求您已配置 LangSmith 追踪

有两种方法可以将追踪项目中的数据手动添加到数据集。导航到 追踪项目 并选择一个项目。

  1. 从运行(runs)表中多选运行。在 运行 选项卡上,多选运行。在页面底部,点击 添加到数据集

运行表,其中选择了一个运行,页面底部可见“添加到数据集”按钮。

  1. 运行 选项卡上,从表中选择一个运行。在单个运行详情页面上,选择右上角的 添加到 -> 数据集

添加到数据集

当您从运行详情页面选择一个数据集时,将弹出一个模态框,告知您是否应用了任何转换或模式验证是否失败。例如,下面的截图显示了一个使用转换来优化收集 LLM 运行的数据集。

确认

然后,您可以在将运行添加到数据集之前选择性地编辑它。

从追踪项目自动添加

您可以使用运行规则根据特定条件自动将追踪添加到数据集。例如,您可以添加所有标记了特定用例或具有低反馈分数的追踪。

从标注队列中的示例添加

标注队列可以可选地配置一个默认数据集,但您可以使用屏幕底部的数据集切换器将运行添加到任何数据集。选择正确的数据集后,点击 添加到数据集 或按热键 D 将其添加到数据集中。

您在标注队列中对运行所做的任何修改都将延续到数据集中,并且与运行关联的所有元数据也将被复制。

从标注队列添加到数据集

请注意,您还可以使用自动化规则设置规则,将满足特定条件的运行添加到标注队列。

从提示词游乐场添加

提示词游乐场 页面上,选择 设置评估,如果您要开始一个新数据集,请点击 +新建,或从现有数据集中选择。

对于具有嵌套键的数据集,不支持在游乐场中内联创建。要添加/编辑具有嵌套键的示例,您必须从数据集页面编辑

要编辑示例:

  • 使用 +行 向数据集添加新示例
  • 使用表格右侧的 下拉菜单删除示例
  • 如果您要创建无参考(reference-free)数据集,请使用列中的 x 按钮删除“参考输出”列。注意:此操作不可逆。

在游乐场中创建数据集

从 CSV 或 JSONL 文件导入数据集

数据集与实验 页面上,点击 +新建数据集,然后从 CSV 或 JSONL 文件导入现有数据集。

从数据集与实验页面创建新数据集

  1. 从左侧菜单导航到 数据集与实验 页面。
  2. 点击 + 新建数据集
  3. 新建数据集 页面上,选择 从头创建 选项卡。
  4. 为数据集添加名称和描述。
  5. (可选)创建数据集模式以验证您的数据集。
  6. 点击 创建,这将创建一个空数据集。
  7. 要内联添加示例,请在数据集页面上,转到 示例 选项卡。点击 + 示例
  8. 以 JSON 格式定义示例并点击 提交。有关数据集拆分的更多详细信息,请参阅创建和管理数据集拆分

添加由 LLM 创建的合成示例

如果您已有现有示例并在数据集上定义了模式,当您点击 + 示例 时,会有一个 添加 AI 生成示例 的选项。这将使用 LLM 创建合成示例。

生成示例 中,执行以下操作:

  1. 点击窗格右上角的 API 密钥,将您的 OpenAI API 密钥设置为工作区密钥。如果您的工作区已设置了 OpenAI API 密钥,可以跳过此步骤。
  2. 选择 少样本示例:切换 自动手动 参考示例。您可以从数据集中手动选择这些示例,或使用自动选择选项。
  3. 输入要生成的合成示例数量。
  4. 点击 生成
AI 生成示例配置窗口。包含手动和自动选择以及要生成的示例数量选项。AI 生成示例配置窗口。包含手动和自动选择以及要生成的示例数量选项。
  1. 示例将出现在 选择生成的示例 页面上。选择要添加到数据集中的示例,并可在最终确定前进行编辑。点击 保存示例
  2. 每个示例都将根据您指定的数据集模式进行验证,并在源元数据中标记为 synthetic
选择生成的示例页面,包含选中的生成示例和保存示例按钮。选择生成的示例页面,包含选中的生成示例和保存示例按钮。

管理数据集

创建数据集模式

LangSmith 数据集存储任意的 JSON 对象。我们建议(但不要求)您为数据集定义一个模式,以确保它们符合特定的 JSON 模式。数据集模式使用标准的 JSON 模式 定义,并添加了一些预构建类型,使常见原语(如消息和工具)的类型定义更加容易。

模式中的某些字段具有 + 转换 选项。转换是预处理步骤,如果启用,会在您将示例添加到数据集时更新它们。例如,转换为 OpenAI 消息 转换会将类似消息的对象(如 LangChain 消息)转换为 OpenAI 消息格式。

有关可用转换的完整列表,请参阅我们的参考文档

如果您计划从 LangChain ChatModels 或使用 LangSmith OpenAI 包装器 的 OpenAI 调用中收集生产追踪到您的数据集,我们提供了一个预构建的聊天模型模式,可将消息和工具转换为行业标准的 OpenAI 格式,以便下游与任何模型一起用于测试。您还可以自定义模板设置以匹配您的用例。

有关更多信息,请参阅数据集转换参考

创建和管理数据集拆分

数据集拆分是数据集的划分,可用于对数据进行分段。例如,在机器学习工作流程中,通常将数据集拆分为训练集、验证集和测试集。这对于防止过拟合很有用——即模型在训练数据上表现良好,但在未见数据上表现不佳。在评估工作流程中,当您有一个包含多个类别的数据集,并且您可能希望分别评估这些类别时,这样做会很有用;或者如果您正在测试一个新用例,将来可能希望将其包含在数据集中,但目前希望保持独立。请注意,通过元数据也可以手动实现相同的效果——但我们期望拆分用于更高级别的数据集组织,将其划分为单独的组进行评估,而元数据则更多地用于存储示例的信息,如标签和来源信息。

在机器学习中,最佳实践是保持拆分独立(每个示例恰好属于一个拆分)。然而,在 LangSmith 中,我们允许您为同一个示例选择多个拆分,因为这对于某些评估工作流程是有意义的——例如,如果一个示例属于您可能希望评估应用程序的多个类别。

要在应用程序中创建和管理拆分,您可以在数据集中选择一些示例,然后点击“添加到拆分”。从弹出的菜单中,您可以为所选示例选择或取消选择拆分,或创建新拆分。

添加到拆分

编辑示例元数据

您可以通过点击示例,然后点击弹出窗口右上角的“编辑”来向示例添加元数据。在此页面上,您可以更新/删除现有元数据,或添加新元数据。您可以使用此功能存储有关示例的信息,例如标签或版本信息,然后在分析实验结果时按元数据分组,或在 SDK 中调用 list_examples按元数据筛选

添加元数据

筛选示例

您可以按拆分、元数据键/值筛选示例,或对示例执行全文搜索。这些筛选选项位于示例表格的左上角。

  • 按拆分筛选:选择拆分 > 选择要筛选的拆分
  • 按元数据筛选:筛选器 > 从下拉菜单中选择“元数据” > 选择要筛选的元数据键和值
  • 全文搜索:筛选器 > 从下拉菜单中选择“全文” > 输入您的搜索条件

您可以添加多个筛选器,只有满足所有筛选器的示例才会显示在表格中。

应用于示例的筛选器

LangChain 中文文档