Argilla
Argilla
Argilla는 프로젝트를 위한 고품질 데이터셋을 만들어야 하는 AI 엔지니어와 도메인 전문가를 위한 협업 도구예요. 사람 피드백 수집을 프로그램적으로 자동화하는 워크플로를 구축할 수 있고, Hub에 데이터셋을 push/pull하는 것도 쉽게 지원합니다.
출처: 문서
본문
Argilla는 프로젝트를 위한 고품질 데이터셋을 구축해야 하는 AI 엔지니어와 도메인 전문가를 위한 협업 도구입니다.
Argilla는 전통적인 NLP(텍스트 분류, NER 등), LLM(RAG, 선호도 튜닝 등), 멀티모달 모델(텍스트-이미지 등) 같은 다양한 AI 프로젝트를 위해 사람 피드백을 수집하는 데 사용될 수 있어요. Argilla의 프로그래밍적 접근 방식 덕분에 지속적인 평가와 모델 개선을 위한 워크플로를 구축할 수 있습니다. Argilla의 목표는 올바른 데이터와 모델을 빠르게 반복함으로써 데이터 작업이 성과를 내도록 하는 것입니다.
사람들이 Argilla로 무엇을 만들까? (What do people build with Argilla?)
커뮤니티는 Argilla를 사용해 멋진 오픈소스 데이터셋과 모델을 만들어요.
오픈소스 데이터셋과 모델 (Open-source datasets and models)
Argilla도 오픈소스에 모델과 데이터셋을 기여했습니다.
- Cleaned UltraFeedback 데이터셋 — Notus와 Notux 모델을 파인튜닝하는 데 사용됐어요. 원본 UltraFeedback 데이터셋은 Argilla UI 필터로 큐레이션되어 원본 데이터 생성 코드의 버그를 찾아 보고했습니다. Argilla는 이 데이터 큐레이션 과정을 바탕으로 이 새로운 버전의 UltraFeedback 데이터셋을 만들고 Notus를 파인튜닝했으며, 여러 벤치마크에서 Zephyr를 능가했습니다.
- distilabeled Intel Orca DPO 데이터셋 — 개선된 OpenHermes 모델을 파인튜닝하는 데 사용됐어요. 이 데이터셋은 Argilla에서의 인간 큐레이션과 distilabel의 AI 피드백을 결합해 만들어졌으며, 원본 Intel Orca 데이터셋의 개선 버전으로 원본으로 파인튜닝한 모델을 능가했습니다.
예시 사용 사례 (Examples Use cases)
Red Cross, Loris.ai, Prolific 같은 회사의 AI 팀은 Argilla를 사용해 AI 프로젝트의 품질과 효율을 높이고 있어요. 그들은 AI 커뮤니티 밋업에서 경험을 공유했습니다.
- AI for good: Red Cross 발표는 우크라이나 위기 난민의 요청을 분류하고 리다이렉트해 Red Cross의 지원 프로세스를 간소화하는 데 도메인 전문가와 AI 팀이 어떻게 협력했는지 보여줍니다.
- 고객 지원: Loris 밋업에서 그들의 AI 팀이 비지도·few-shot 대조 학습을 사용해 방대한 양의 멀티라벨 분류기에 대한 라벨링 샘플을 빠르게 검증하고 획득하는 방법을 보여줬습니다.
- 연구 조사: Prolific 쇼케이스는 우리 플랫폼과의 통합을 발표했습니다. 그들은 주석 작업 인력 간에 데이터 수집 프로젝트를 적극적으로 분배하는 데 이 플랫폼을 사용해요. 이를 통해 Prolific은 연구 조사를 위한 고품질 데이터를 빠르고 효율적으로 수집할 수 있습니다.
사전 요구사항 (Prerequisites)
먼저 Hugging Face 계정으로 로그인하세요:
hf auth login
argilla>=2.0.0이 설치되어 있는지 확인하세요:
pip install -U argilla
마지막으로 Argilla 서버와 UI를 배포해야 하며, 이는 Hugging Face Hub에서 쉽게 할 수 있습니다.
데이터셋과 레코드 가져오기·내보내기 (Importing and exporting datasets and records)
이 가이드는 데이터셋을 Hugging Face Hub로 가져오고 내보내는 방법을 보여줍니다.
Argilla에서는 데이터셋의 두 가지 주요 구성 요소를 가져오고/내보낼 수 있어요:
rg.Settings에 정의된 데이터셋의 완전한 구성. 피드백 태스크를 공유하거나 나중에 Argilla에서 복원하고 싶을 때 유용합니다.Metadata,Vectors,Suggestions,Responses를 포함한 데이터셋에 저장된 레코드. Argilla 밖에서 데이터셋 레코드를 사용하고 싶을 때 유용합니다.
Argilla 데이터셋을 Hugging Face Hub로 푸시하기 (Push an Argilla dataset to the 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>")
레코드 포함 여부 (With or without records)
위 예시는 데이터셋의 Settings와 레코드를 Hub로 푸시합니다. 데이터셋 구성만 푸시하고 싶다면 with_records 파라미터를 False로 설정할 수 있어요. 특정 데이터셋 템플릿에만 관심이 있거나 데이터셋 설정/레코드를 변경하고 싶을 때 유용합니다.
dataset.to_hub(repo_id="<repo_id>", with_records=False)
Hugging Face Hub에서 Argilla 데이터셋 가져오기 (Pull an Argilla dataset from the Hugging Face Hub)
Hugging Face Hub에서 Argilla로 데이터셋을 가져올 수 있어요. 데이터셋과 그 구성을 복원하고 싶을 때 유용합니다. rg.Dataset.from_hub 메서드를 사용해 Hugging Face 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 데이터셋을 재사용할 수 있습니다.
레코드 포함 여부 (With or without records)
위 예시는 데이터셋의 Settings와 레코드를 Hub에서 가져옵니다. 구성만 가져오고 싶다면 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)
📚 리소스 (Resources)
더 알아보기 (Learn more)
Argilla로 Hub 데이터셋을 push/pull 할 때는 rg.Dataset.to_hub와 rg.Dataset.from_hub를 기억하세요. with_records=False로 구성만 공유하거나, load_dataset + rg.Dataset.log 조합으로 기존 Hub 데이터셋을 재사용할 수도 있어요. Argilla 전체 문서와 import/export 가이드에서 더 자세한 내용을 확인할 수 있습니다.