Hub documentation
Argilla
Argilla
Argillaは、プロジェクト用に高品質なデータセットを構築する必要があるAIエンジニアやドメインエキスパートのためのコラボレーションツールです。
Argillaは、従来のNLP(テキスト分類、NERなど)、LLM(RAG、好みチューニングなど)、マルチモーダルモデル(テキストから画像生成など)など、幅広いAIプロジェクトにおける人間のフィードバック収集に使用できます。Argillaのプログラムによるアプローチにより、継続的な評価とモデル改善のためのワークフローを構築できます。Argillaの目標は、適切なデータとモデルを迅速に反復することにより、データ作業が成果に結びつくことを保証することです。
Argillaで人々はどのようなものを作っていますか?
コミュニティはArgillaを使用して、素晴らしいオープンソースのデータセットとモデルを作成しています。
オープンソースのデータセットとモデル
Argillaはオープンソースにもいくつかのモデルとデータセットを提供しました。
- Cleaned UltraFeedback datasetは、NotusおよびNotuxモデルのファインチューニングに使用されました。元のUltraFeedbackデータセットは、Argilla UIのフィルターを使用して、元のデータ生成コード内のバグを発見・報告するためにキュレーションされました。このデータキュレーションプロセスに基づき、ArgillaはUltraFeedbackデータセットのこの新しいバージョンを作成し、Notusをファインチューニングしました。その結果、複数のベンチマークでZephyrを上回るパフォーマンスを達成しました。
- distilabeled Intel Orca DPO データセットは、改善された OpenHermes モデルのファインチューニングに使用されました。このデータセットは、Argilla による人間のキュレーションと distilabel からの AI フィードバックを組み合わせることで構築され、Intel Orca データセットの改善版となり、元のデータセットでファインチューニングされたモデルを上回る性能を発揮しました。
使用例
赤十字、Loris.ai、Prolificなどの企業のAIチームは、Argillaを使用してAIプロジェクトの品質と効率を向上させています。彼らは、私たちのAIコミュニティミートアップでその経験を共有しました。
- AI for good: 赤十字社のプレゼンテーションは、ウクライナ危機の難民からのリクエストを分類し、リダイレクトすることで、赤十字社の支援プロセスを効率化した、赤十字社のドメイン専門家とAIチームの協働の取り組みを紹介しています。
- カスタマーサポート: Loris ミーティングでは、AI チームが教師なし学習と少ショット対比学習をどのように活用しているかが紹介されました。これにより、大量のマルチラベル分類器に対して、ラベル付きサンプルを迅速に検証・取得できるようになっています。
- 研究調査: Prolificのショーケースは、当プラットフォームとの統合を発表しました。彼らはこれを活用して、アノテーション作業員の間でデータ収集プロジェクトを能動的に分配しています。これにより、Prolificは研究調査向けの高品質なデータを迅速かつ効率的に収集できるようになりました。
前提条件
まず、Hugging Face アカウントでログインします:
hf auth login
argilla>=2.0.0がインストールされていることを確認してください:
pip install -U argilla
最後に、ArgillaサーバーとUIをデプロイする必要があります。これはHugging Face Hub上で簡単に実行できます。
データセットとレコードのインポートとエクスポート
このガイドでは、Hugging Face Hub へのデータセットのインポートとエクスポートの方法を示します。
Argillaでは、データセットの2つの主要コンポーネントをインポート/エクスポートできます。
rg.Settingsで定義されるデータセットの完全な設定です。Argilla でフィードバックタスクを共有したり、後で復元したりする場合に便利です。Metadata、Vectors、Suggestions、Responsesを含む、データセットに保存されているレコードです。Argillaの外でデータセットのレコードを使用したい場合に便利です。
Argilla データセットを Hugging Face Hub にプッシュする
ArgillaからHugging Face Hubにデータセットをプッシュできます。これは、コミュニティとデータセットを共有したい場合や、バージョン管理を行いたい場合に便利です。rg.Dataset.to_hubメソッドを使用して、データセットをHugging Face Hubにプッシュできます。
import argilla as rg
client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
dataset = client.datasets(name="my_dataset")
dataset.to_hub(repo_id="<repo_id>")レコードの有無にかかわらず
上記の例では、データセットのSettingsとレコードをハブにプッシュします。データセットの設定のみをプッシュしたい場合は、with_recordsパラメータをFalseに設定できます。これは、特定のデータセットテンプレートに関心がある場合や、データセットの設定および/またはレコードに変更を加えたい場合に便利です。
dataset.to_hub(repo_id="<repo_id>", with_records=False)Hugging Face HubからArgillaデータセットを取得する
Hugging Face HubからArgillaにデータセットを取得できます。これは、データセットとその設定を復元したい場合に便利です。Hugging Face Hubからデータセットを取得するには、rg.Dataset.from_hubメソッドを使用します。
import argilla as rg
client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
dataset = rg.Dataset.from_hub(repo_id="<repo_id>")rg.Dataset.from_hub メソッドは、データセットのリポジトリから設定とレコードを読み込みます。レコードのみを読み込みたい場合は、datasets.Dataset オブジェクトを rg.Dataset.log メソッドに渡すことができます。これにより、独自のデータセットを設定し、既存の Hub データセットを再利用できます。
レコードの有無にかかわらず
上記の例では、ハブからデータセットのSettingsとレコードを取得します。データセットの設定のみを取得したい場合は、with_recordsパラメータをFalseに設定できます。これは、特定のデータセットテンプレートに関心がある場合や、データセットの設定および/またはレコードに変更を加えたい場合に便利です。
dataset = rg.Dataset.from_hub(repo_id="<repo_id>", with_records=False)データセットの構成を使用すると、データセットに変更を加えることができます。例えば、別のタスクに合わせてデータセットの設定を調整できます。
dataset.settings.questions = [rg.TextQuestion(name="answer")]その後、datasetsパッケージのload_datasetメソッドを使用してデータセットのレコードを記録し、そのデータセットをrg.Dataset.logメソッドに渡すことができます。
hf_dataset = load_dataset("<repo_id>")
dataset.log(hf_dataset)