Dataset schemas for fast and iterative data curation in LangSmith

LangSmith 中用于快速迭代数据整理的数据集模式

在 LangSmith 中定义并灵活管理数据集模式。根据定义的模式验证示例,并在 LangSmith UI 中轻松更新模式。

4 分钟阅读

在传统的机器学习和数据科学中,您首先可能要做的事情是考虑数据。在考虑训练和评估模型之前,您需要构建数据集(即训练/验证/测试集)。只有在完成这些步骤之后,您才能将模型集成到您的应用程序中以查看其性能。

借助生成式人工智能,您可以轻松开始使用通用 LLM,从而快速开发原型并将其插入到您的应用程序中。但是,这并不意味着您可以跳过数据收集和验证的初始步骤。

在构建 LLM 应用程序时,常见的构建模式是

  • 首先启动并运行原型并将其插入到您的应用程序中
  • 然后构建用于评估目的的数据集,以跟踪您的进度并确保您不会引入任何回归
  • 然后使用该数据集来改进底层模型(通过少样本提示或微调)

因此,数据仍然非常重要 - 但您思考 LLM 应用程序数据的方式有所不同。以下是我们在构建 LLM 应用程序时注意到的一些变化

  • 数据集的初始版本通常要小得多 - 有时只有 5-10 个数据点
  • 数据集快速发展 - 无论是在行数还是模式方面
  • 通常更频繁地将单个数据点添加到数据集中,通常是因为在生产中看到性能不佳的点

这些变化意味着,对于管理 LLM 应用程序数据集的最佳开发者体验具有不同的功能点和考虑因素。为了解决这个问题,我们在 LangSmith 中添加了数据集模式的概念 - 它与其他 LangSmith 功能交互,以简化数据整理和管理。

使用灵活的数据集模式快速迭代

在 LangSmith 中,您现在可以为数据集定义模式,所有添加的新数据点都将根据此模式进行验证。虽然这看起来很简单,但由于以下几个原因,这非常有用。

首先,让您的数据遵循定义的模式使其更易于使用和消费。您通常希望以相同的方式使用数据集中的所有数据点(无论是用于评估还是作为少样本示例)。如果它们具有不同的模式,那么您用于处理或格式化数据的代码可能会中断。

在迭代构建数据集时,定义模式也至关重要。虽然您可能在一次性整理数据集时记住模式,但在稍后添加新数据点时很容易忘记细节。这使得模式一致性在迭代数据集构建中格外重要。

与此同时,模式支持的灵活性也是必要的,尤其是在 LLM 应用程序中,理想的模式在开发开始时可能并不明确。您可能不了解模式的任何部分。您可能只知道输入子集的模式,或者根本没有模式。LangSmith 数据集模式支持所有这些,允许您定义没有任何模式或部分模式的数据集。

能够修改数据集模式非常重要,因为理想的模式可能会随着时间的推移而演变(同样,由于数据集整理的迭代性质)。LangSmith 允许您轻松更新模式,显示不再符合所需模式的数据点队列,这些数据点可以在 UI 中修复。这使您的数据集保持一致和最新。

要深入了解如何使用数据集模式的技术细节,请查看此处的开发者文档 here

0:00
/0:39

通过模式验证、版本控制和注释增强数据集

数据集模式增强了现有的 LangSmith 功能,这些功能可帮助您管理 LLM 应用程序的数据集。

当从生产日志向数据集添加数据时,现在将在您尝试时验证模式,如果模式不符合规范,LangSmith 会提出有用的错误消息。生产日志通常包含额外的信息或不同的键,这可能会导致数据集变得混乱 - 因此,这种自动验证有助于保持数据集的整洁。

如果您更新模式,您将需要进行版本控制以保留历史上下文。LangSmith 本地支持数据集的版本控制;有关如何创建数据集新版本的信息,请参阅文档

通常,有专门的主题 matter 专家(技术和非技术人员)负责审查数据。对于这些用户来说,查看数据并将其添加到现有数据集应该尽可能容易。我们已在 LangSmith 中添加了注释队列,它为用户提供了简化的流程来查看运行并附加反馈。

未来的更新将基于 LangSmith 中的这些功能,继续改善为您的 LLM 应用程序开发数据集的体验。例如,如果已知模式,则更容易生成额外的合成示例并改进数据集的用例 - 不仅用于测试,还用于微调和少样本提示,以提高 LLM 应用程序的性能。

结论

整理数据集对于构建传统的 ML 和 LLM 应用程序都非常重要。然而,对于 LLM 应用程序,数据集整理的完成方式和数据的使用方式有所不同。LangSmith 提供了一整套用于管理 LLM 数据集的工具。定义数据集模式的能力确保了一致性,因此您可以灵活地利用数据并在向数据集添加新示例时更快地迭代。


要深入了解,请查看我们的 文档 ,了解有关数据集模式的信息。您可以立即试用 LangSmith ,进行强大的实验和评估,并支持提示版本控制、调试和人工注释 — 这样您就可以在构建 LLM 应用程序时获得生产可观测性。