LangSmith 提供了用于管理和使用您的数据集的工具。此页面描述了数据集操作,包括:
您还将学习如何将实验中过滤的痕迹导出回数据集,以进行进一步分析和迭代。
数据集版本控制
在 LangSmith 中,数据集是版本化的。这意味着每次您在数据集中添加、更新或删除示例时,都会创建数据集的新版本。
创建数据集的新版本
每次您在数据集中添加、更新或删除示例时,都会创建数据集的新版本。这使您能够跟踪数据集随时间的变化,并了解数据集的演变过程。 默认情况下,版本由更改的时间戳定义。当您在“示例”选项卡中单击数据集的特定版本(按时间戳)时,您将找到该时间点数据集的状态。
请注意,在查看数据集的旧版本时,示例是只读的。您还将看到此版本数据集与最新版本数据集之间的操作。默认情况下,“示例”选项卡显示数据集的最新版本,“测试”选项卡显示所有版本的实验。
在“测试”选项卡中,您将找到在不同版本的数据集上运行的测试结果。 
标记版本
您还可以标记数据集的版本,为其提供更具可读性的名称,这对于标记数据历史中的重要里程碑非常有用。 例如,您可以将数据集的版本标记为“prod”,并使用它来针对您的 LLM 管道运行测试。 您可以通过在“示例”选项卡中单击“+ 标记此版本”来在 UI 中标记数据集的版本。
您还可以使用 SDK 标记数据集的版本。以下是使用 Python SDK 标记数据集版本的示例:from langsmith import Client
from datetime import datetime
client = Client()
initial_time = datetime(2024, 1, 1, 0, 0, 0) # The timestamp of the version you want to tag
# You can tag a specific dataset version with a semantic name, like "prod"
client.update_dataset_tag(
dataset_name=toxic_dataset_name, as_of=initial_time, tag="prod"
)
要对特定标记版本的数据集进行评估,请参阅在特定数据集版本上评估部分。
评估特定数据集版本
使用 list_examples
您可以使用 evaluate / aevaluate 传入可迭代的示例以评估特定版本的数据集。使用 list_examples / listExamples 通过 as_of / asOf 从特定版本标签获取示例,并将其传递给 data 参数。
from langsmith import Client
ls_client = Client()
# Assumes actual outputs have a 'class' key.
# Assumes example outputs have a 'label' key.
def correct(outputs: dict, reference_outputs: dict) -> bool:
return outputs["class"] == reference_outputs["label"]
results = ls_client.evaluate(
lambda inputs: {"class": "Not toxic"},
# Pass in filtered data here:
data=ls_client.list_examples(
dataset_name="Toxic Queries",
as_of="latest", # specify version here
),
evaluators=[correct],
)
了解有关如何在以编程方式创建和管理数据集页面上获取数据集视图的更多信息。
评估数据集的拆分/过滤视图
评估数据集的过滤视图
您可以使用 list_examples / listExamples 方法从数据集中获取示例子集进行评估。 一个常见的S工作流程是获取具有特定元数据键值对的示例。from langsmith import evaluate
results = evaluate(
lambda inputs: label_text(inputs["text"]),
data=client.list_examples(dataset_name=dataset_name, metadata={"desired_key": "desired_value"}),
evaluators=[correct_label],
experiment_prefix="Toxic Queries",
)
有关更多过滤功能,请参阅此操作指南。
评估数据集拆分
您可以使用 list_examples / listExamples 方法对数据集的一个或多个拆分进行评估。 splits 参数接受您要评估的拆分列表。
from langsmith import evaluate
results = evaluate(
lambda inputs: label_text(inputs["text"]),
data=client.list_examples(dataset_name=dataset_name, splits=["test", "training"]),
evaluators=[correct_label],
experiment_prefix="Toxic Queries",
)
有关获取数据集视图的更多详细信息,请参阅获取数据集指南。
共享数据集
公开共享数据集
公开共享数据集将使数据集示例、实验和相关运行以及此数据集上的反馈可供任何拥有链接的人访问,即使他们没有 LangSmith 帐户。请确保您没有共享敏感信息。此功能仅在 LangSmith 的云托管版本中可用。
从“数据集和实验”选项卡中,选择一个数据集,单击 ⋮(页面右上角),单击“共享数据集”。这将打开一个对话框,您可以在其中复制数据集的链接。 
取消共享数据集
-
通过单击任何公开共享数据集右上角的“公开”,然后在对话框中单击“取消共享”来取消共享。
-
通过单击“设置”->“共享 URL”或此链接,导航到组织的公开共享数据集列表,然后单击要取消共享的数据集旁边的“取消共享”。
导出数据集
您可以从 LangSmith UI 将 LangSmith 数据集导出为 CSV、JSONL 或OpenAI 的微调格式。 从“数据集和实验”选项卡中,选择一个数据集,单击 ⋮(页面右上角),单击“下载数据集”。 
将实验中的过滤痕迹导出到数据集
在 LangSmith 中运行离线评估后,您可能希望将符合某些评估标准的痕迹导出到数据集中。
查看实验痕迹
为此,首先单击实验名称旁边的箭头。这将引导您进入一个包含实验生成的痕迹的项目。
从那里,您可以根据评估标准过滤痕迹。在此示例中,我们正在过滤所有准确性得分大于 0.5 的痕迹。
在项目上应用过滤器后,我们可以多选要添加到数据集的运行,然后单击“添加到数据集”。 