在 UI 中创建和管理数据集
数据集使您能够使用一致的数据进行可重复的评估。数据集由示例组成,示例存储输入、输出以及可选的参考输出。
有关数据集、评估和示例的更多信息,请阅读评估和数据集概念指南。
本指南概述了在 LangSmith UI 中创建和编辑数据集的各种方法。
创建数据集并添加示例
从追踪项目手动添加
构建数据集的常见模式是将应用程序中的重要追踪转换为数据集示例。此方法要求您已配置 LangSmith 的追踪。
构建数据集的一个强大技术是筛选出最有趣的追踪,例如被标记为用户反馈不佳的追踪,并将它们添加到数据集中。有关如何筛选追踪的提示,请参阅筛选追踪指南。
有两种方法可以手动将数据从追踪项目添加到数据集。
- 从运行表中多选运行
- 导航到运行详情页面,然后点击右上角的
添加到 -> 数据集
。
当您从运行详情页面选择数据集时,将弹出一个模态窗口,告知您是否应用了任何转换或是否验证失败。例如,下面的截图显示了一个正在使用转换来优化收集 LLM 运行的数据集。
然后,您可以选择在将运行添加到数据集之前编辑运行。
从追踪项目自动添加
您可以使用运行规则根据特定条件自动将追踪添加到数据集。例如,您可以添加所有被标记为特定用例或反馈分数较低的追踪。
从标注队列中的示例添加
如果您依赖领域专家来构建有意义的数据集,请使用标注队列为评审员提供精简的视图。人工评审员可以选择在将追踪添加到数据集之前修改其输入/输出/参考输出。
标注队列可以可选地配置默认数据集,但您可以通过屏幕底部的“数据集切换器”将运行添加到任何数据集。选择正确的数据集后,点击添加到数据集或按下热键D
将运行添加到其中。
您在标注队列中对运行所做的任何修改都将延续到数据集中,并且与运行关联的所有元数据也将被复制。
请注意,您还可以设置规则,使用自动化规则将符合特定条件的运行添加到标注队列中。
从提示操作台添加
在提示操作台页面上,选择设置评估,如果您要开始一个新数据集,点击+新建,或从现有数据集中选择。
在操作台中内联创建数据集不支持带有嵌套键的数据集。为了添加/编辑带有嵌套键的示例,您必须从数据集页面进行编辑。
要编辑示例
- 使用+行向数据集添加新示例
- 使用表右侧的⋮下拉菜单删除示例
- 如果您要创建无参考数据集,请使用列中的x按钮删除“参考输出”列。注意:此操作不可逆。
从 CSV 或 JSONL 文件导入数据集
在数据集与实验页面上,点击+新建数据集,然后导入现有数据集(CSV 或 JSONL 文件)。
从数据集页面创建新数据集
在数据集与实验页面上,点击+新建数据集,然后选择创建空数据集。您可以选择创建数据集架构来验证您的数据集。
然后要内联添加示例,请转到示例选项卡,然后点击+ 示例。这将允许您内联定义 JSON 格式的示例。
通过数据集 UI 添加由 LLM 创建的合成示例
如果您的数据集已定义了架构,当您点击+ 示例
时,您将看到一个选项生成示例
。这将使用 LLM 来创建合成示例。
您必须执行以下操作
- 选择少量样本示例:选择一组示例以指导 LLM 的生成。您可以从数据集中手动选择这些示例,也可以使用自动选择选项。
- 指定示例数量:输入您要生成的合成示例数量。
- 配置 API 密钥:确保您的 OpenAI API 密钥已在“API 密钥”链接处输入。
点击“生成”后,示例将显示在页面上。您可以选择要添加到数据集的示例,并可以选择在最终确定之前对其进行编辑。每个示例都将根据您指定的数据集架构进行验证,并在源元数据中标记为“合成”。
管理数据集
创建数据集架构
LangSmith 数据集存储任意 JSON 对象。我们建议(但不强制要求)您为数据集定义架构,以确保它们符合特定的 JSON 架构。数据集架构使用标准JSON 架构定义,并添加了一些预构建类型,这些类型使得对消息和工具等常见基本类型进行类型化更加容易。
您的架构中某些字段具有+ 转换
选项。转换是预处理步骤,如果启用,当您将示例添加到数据集时,它们会更新您的示例。例如,转换为 OpenAI 消息
转换将把消息类对象(如 LangChain 消息)转换为 OpenAI 消息格式。
有关可用转换的完整列表,请参阅我们的参考。
如果您计划在数据集中从 LangChain 聊天模型或使用 LangSmith OpenAI 封装器的 OpenAI 调用中收集生产追踪,我们提供了预构建的聊天模型架构,可将消息和工具转换为行业标准的 OpenAI 格式,以便在下游与任何模型一起用于测试。您还可以自定义模板设置以匹配您的用例。
请参阅数据集转换参考了解更多信息。
创建和管理数据集拆分
数据集拆分是数据集的划分,您可以使用它来分割数据。例如,在机器学习工作流中,将数据集拆分为训练集、验证集和测试集是很常见的。这有助于防止过拟合——模型在训练数据上表现良好,但在未见过的数据上表现不佳。在评估工作流中,当您有一个包含多个类别的数据集,并且您可能希望单独评估这些类别时,这可能很有用;或者如果您正在测试一个将来可能希望包含在数据集中的新用例,但目前希望将其分开。请注意,通过元数据也可以手动实现相同的效果——但我们期望拆分用于数据集的更高级别组织,以将其分成独立的组进行评估,而元数据将更多地用于存储有关示例的信息,如标签和其来源信息。
在机器学习中,最好将拆分保持独立(每个示例只属于一个拆分)。但是,我们允许您在 LangSmith 中为同一示例选择多个拆分,因为这对于某些评估工作流可能是有意义的——例如,如果一个示例属于您可能希望评估应用程序的多个类别。
要在应用程序中创建和管理拆分,您可以选择数据集中的一些示例,然后点击“添加到拆分”。从弹出的菜单中,您可以选择和取消选择所选示例的拆分,或创建新拆分。
编辑示例元数据
您可以通过点击示例,然后在弹出窗口的右上角点击“编辑”来添加元数据。在此页面上,您可以更新/删除现有元数据,或添加新元数据。您可以使用此功能存储有关示例的信息,例如标签或版本信息,然后您可以在分析实验结果时按元数据分组,或者在 SDK 中调用list_examples
时按元数据筛选。
筛选示例
您可以按拆分、元数据键/值或对示例执行全文搜索来筛选示例。这些筛选选项在示例表的左上方可用。
- 按拆分筛选:选择拆分 > 选择要筛选的拆分
- 按元数据筛选:筛选 > 从下拉菜单中选择“元数据” > 选择要筛选的元数据键和值
- 全文搜索:筛选 > 从下拉菜单中选择“全文” > 输入您的搜索条件
您可以添加多个筛选器,只有满足所有筛选条件的示例才会显示在表中。