Skip to main content

在 UI 中创建和管理数据集

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

推荐阅读

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

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

创建一个数据集并添加示例

从跟踪项目手动

构建数据集的一个常见模式是将应用程序中的显著轨迹转换为数据集示例。这种方法要求您已配置LangSmith 追踪功能

提示

构建数据集的一种强大技术是筛选出最有趣的轨迹(例如那些被标记为收到用户负面反馈的轨迹),并将它们添加到数据集中。 有关如何筛选轨迹的提示,请参阅 筛选轨迹 指南。

有兩種方式可以手動將追蹤專案的資料新增至資料集。

  1. 从运行表中进行多选运行:

Multi-select runs

  1. 导航到运行详情页面,然后点击右上角的Add to -> Dataset

Add to dataset

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

然后,您可以选择性地编辑该运行记录,再将其添加到数据集中。

自动从跟踪项目

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

来自标注队列中的示例

提示

如果您依赖领域专家构建有意义的数据集,请使用 标注队列 为审查人员提供简化的查看视图。人类审查人员可以在将跟踪记录添加到数据集之前,选择性地修改输入/输出/参考输出。

标注队列可以可选地配置默认数据集,不过您也可以通过屏幕底部的数据集切换器将运行添加到任何数据集中。选择正确的数据集后,点击添加到数据集或按下热键D即可将该运行添加进去。

您对抗性队列中运行的任何修改都将保留到数据集中,与该运行关联的所有元数据也将被复制。

注意,您也可以使用 自动化规则 设置规则,将符合特定标准的运行添加到注释队列中。

来自提示词游乐场

提示词游乐场 页面,选择 设置评估,如果您正在创建新数据集则点击 +新建,或从现有数据集中进行选择。

注意

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

要编辑示例:

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

Create a dataset in the playground

从 CSV 或 JSONL 文件导入数据集

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

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

数据集与实验页面,点击+新建数据集,然后选择创建空数据集。您可以选择创建一个数据集模式来验证您的数据集。

然后通过转到示例选项卡并点击+ 示例来添加内联示例。这将允许您在JSON中定义内联示例。

通过数据集 UI 添加由 LLM 创建的合成示例

如果您在数据集上定义了模式,当您点击+ Example时,您将看到一个选项可以Generate examples。这将使用大型语言模型(LLM)来创建合成示例。

你必须完成以下任务:

  1. 选择少样本示例: 选择一组示例以指导大语言模型(LLM)的生成。您可以从数据集中手动选择这些示例,或使用自动选择选项。
  2. 指定示例数量: 输入您想要生成的合成示例的数量。
  3. 配置 API 密钥 : 确保您的 OpenAI API 密钥已输入到“API Key" }Generate Synthetic Examples

点击“生成”后,示例将显示在页面上。您可以选择要添加到数据集中的示例,并在最终确定之前编辑它们。 每个示例都将根据您的指定数据集架构进行验证,并在源元数据中标记为“合成”。 Generate Synthetic Examples

管理数据集

创建数据集模式

LangSmith 数据集存储任意 JSON 对象。我们推荐(但不强制要求)为您的数据集定义一个模式,以确保它们符合特定的 JSON Schema。数据集模式使用标准的 JSON Schema 定义,并额外添加了一些 预构建类型,使输入消息和工具等常见基本类型更加便捷。

您的架构中的某些字段包含 + Transformations 选项。 转换是预处理步骤,如果启用,将在您向数据集添加示例时更新这些示例。 例如,convert to OpenAI messages 转换会将类消息对象(如 LangChain 消息)转换为 OpenAI 消息格式。

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

注意

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

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

创建和管理数据集划分

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

在机器学习中,最佳实践是保持您的数据划分相互独立(每个示例仅属于一个划分)。 然而,我们允许您在 LangSmith 中为同一示例选择多个划分,因为这在某些评估工作流中是合理的——例如,如果一个示例同时属于多个类别,而您可能希望在这些类别上评估您的应用程序。

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

Add to Split

编辑示例元数据

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

Add Metadata

筛选示例

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

  • 按分割筛选: 选择分割 > 选择一个分割以进行筛选
  • 按元数据筛选: 筛选 > 从下拉菜单中选择“元数据”> 选择要筛选的元数据键和值
  • 全文搜索: 过滤器 > 从下拉菜单中选择“全文” > 输入您的搜索条件

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

Filters Applied to Examples


此页面有帮助吗?


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