Skip to main content

在 UI 中创建和管理数据集

数据集使您能够使用一致的数据随时间推移执行可重复的评估。数据集由示例组成,这些示例存储输入、输出和引用输出(可选)。

推荐阅读

有关数据集、评估和示例的更多信息,请阅读 评估和数据集.

本指南概述了在 LangSmith 的 UI 中创建和编辑数据集的各种方法。

创建数据集并添加示例

从跟踪项目中手动

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

提示

构建数据集的一种强大技术是筛选出最有趣的跟踪,例如被标记为用户反馈不佳的跟踪,并将它们添加到数据集中。 有关如何筛选跟踪的提示,请参阅筛选跟踪指南。

有两种方法可以手动将跟踪项目中的数据添加到数据集。

  1. 从 runs 表中选择多个运行:

多选运行

  1. 导航到运行详细信息页面,然后单击Add to -> Dataset在右上角:

添加到数据集

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

然后,您可以选择在将运行添加到数据集之前对其进行编辑。

从跟踪项目自动

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

From examples in an Annotation Queue (从注释队列中的示例)

提示

如果您依靠主题专家来构建有意义的数据集,请使用注释队列为审阅者提供简化的视图。人工审阅者可以选择在将追踪添加到数据集之前修改追踪的输入/输出/参考输出。

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

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

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

从 Prompt Playground

Prompt Playground 页面上,选择 Set up Evaluation,如果要启动新数据集,请单击 +New 或从现有数据集中进行选择。

注意

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

要编辑示例:

  • 使用 +Row 向数据集添加新示例
  • 使用表右侧的 下拉列表删除示例
  • 如果要创建无参考数据集,请使用列中的 x 按钮删除“Reference Output”列。注意:此作不可逆。

在 Playground 中创建数据集

从 CSV 或 JSONL 文件导入数据集

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

从数据集页面创建新数据集

数据集和实验页面上,点击 +新建数据集,然后点击创建一个空数据集。您可以选择创建数据集架构来验证数据集。

然后,要内联添加示例,请转到 Examples 选项卡,然后单击 + Example'。这将允许您在 JSON 内联中定义示例。

添加 LLM 通过 Datasets UI 创建的合成示例

如果您在数据集上定义了架构,则单击+ Example您将看到一个选项Generate examples.这将使用 LLM 创建合成示例。

您必须执行以下作:

  1. 选择少数样本示例:选择一组示例来指导 LLM 的生成。您可以从数据集中手动选择这些示例,也可以使用自动选择选项。
  2. 指定样本数量:输入要生成的合成样本数量。
  3. 配置 API 密钥:确保在“API 密钥”链接中输入您的 OpenAI API 密钥。生成合成示例

单击“生成”后,示例将出现在页面上。您可以选择要添加到数据集中的示例,并可选择在完成之前对其进行编辑。 每个示例都将根据您指定的数据集架构进行验证,并在源元数据中标记为“synthetic”。生成合成示例

管理数据集

创建数据集架构

LangSmith 数据集存储任意 JSON 对象。我们建议(但不是要求)您为数据集定义架构,以确保它们确认特定的 JSON 架构。数据集架构是使用标准 JSON 架构定义的,并添加了一些预构建类型,可以更轻松地键入常见基元(如消息和工具)。

架构中的某些字段具有+ Transformations选择。 转换是预处理步骤,如果启用,则会在将示例添加到数据集时更新示例。 例如,convert to OpenAI messagestransformation 会将类似消息的对象(如 LangChain 消息)转换为 OpenAI 消息格式。

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

注意

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

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

创建和管理数据集分割

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

在机器学习中,最佳做法是将分片分开(每个示例只属于一个分片)。 但是,我们允许您在 LangSmith 中为同一示例选择多个拆分,因为它对 某些评估工作流程 - 例如,如果一个示例属于您可能希望关注的多个类别 评估您的应用程序。

为了在应用程序中创建和管理拆分,您可以在数据集中选择一些示例,然后单击“Add to Split”。从结果的弹出菜单中, 您可以为所选示例选择和取消选择 Splits,或创建新的 Split。

Add to Split

编辑示例元数据

您可以通过单击示例,然后单击弹出窗口右上角的“Edit”来将元数据添加到您的示例。 在此页中,您可以更新/删除现有元数据或添加新元数据。您可以使用它来存储有关 您的示例(例如标记或版本信息),您可以在分析实验结果时对其进行分组,或者在调用list_examples在 SDK 中。

添加元数据

过滤器示例

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

  • Filter by split(按拆分筛选):Select split (选择拆分>选择要作为筛选依据的拆分
  • 按元数据筛选:筛选器 > 从下拉列表中选择“元数据”>选择要筛选的元数据键和值
  • 全文搜索:过滤器 > 从下拉列表中选择“全文” > 输入搜索条件

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

应用于示例的过滤器


这个页面有帮助吗?


您可以在 GitHub 上留下详细的反馈。