Hub documentation

Argilla

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Argilla

Argilla๋Š” ํ”„๋กœ์ ํŠธ์— ๊ณ ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ์…‹์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ•˜๋Š” AI ์—”์ง€๋‹ˆ์–ด์™€ ๋„๋ฉ”์ธ ์ „๋ฌธ๊ฐ€๋ฅผ ์œ„ํ•œ ํ˜‘์—… ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

image

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 dataset๋Š” improved OpenHermes model์„ fine-tuneํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ์…‹์€ Argilla์˜ human curation๊ณผ distilabel์˜ AI feedback์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ตฌ์ถ•๋˜์—ˆ์œผ๋ฉฐ, Intel Orca dataset์˜ ๊ฐœ์„ ๋œ ๋ฒ„์ „์œผ๋กœ, ์›๋ณธ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ fine-tune๋œ ๋ชจ๋ธ๋ณด๋‹ค ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์‚ฌ์šฉ ์‚ฌ๋ก€

๋ ˆ๋“œ ํฌ๋กœ์Šค, Loris.ai, Prolific์™€ ๊ฐ™์€ ํšŒ์‚ฌ์˜ AI ํŒ€์€ Argilla๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AI ํ”„๋กœ์ ํŠธ์˜ ํ’ˆ์งˆ๊ณผ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ AI ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฏธํŠธ์—…์—์„œ ๊ฒฝํ—˜์„ ๊ณต์œ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • AI for good: ์ ์‹ญ์ž์‚ฌ ๋ฐœํ‘œ๋Š” ์šฐํฌ๋ผ์ด๋‚˜ ์œ„๊ธฐ ๋‚œ๋ฏผ์œผ๋กœ๋ถ€ํ„ฐ ์ ‘์ˆ˜๋œ ์š”์ฒญ์„ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์žฌ๋ถ„๋ฐฐํ•˜์—ฌ ์ ์‹ญ์ž์‚ฌ์˜ ์ง€์› ํ”„๋กœ์„ธ์Šค๋ฅผ ํšจ์œจํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ ์‹ญ์ž์‚ฌ ๋ถ„์•ผ ์ „๋ฌธ๊ฐ€์™€ AI ํŒ€์ด ์–ด๋–ป๊ฒŒ ํ˜‘์—…ํ–ˆ๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๊ณ ๊ฐ ์ง€์›: Loris ๋ฏธํŠธ์—…์—์„œ AI ํŒ€์ด ๋น„์ง€๋„ ๋ฐ few-shot contrastive learning์„ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์ˆ˜์˜ ๋‹ค์ค‘ ๋ ˆ์ด๋ธ” ๋ถ„๋ฅ˜๊ธฐ์— ๋Œ€ํ•ด ๋น ๋ฅด๊ฒŒ ๊ฒ€์ฆํ•˜๊ณ  ๋ ˆ์ด๋ธ”์ด ๋ถ™์€ ์ƒ˜ํ”Œ์„ ํ™•๋ณดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹œ์—ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฐ๊ตฌ ์—ฐ๊ตฌ: Prolific์˜ ์‡ผ์ผ€์ด์Šค์—์„œ ์šฐ๋ฆฌ ํ”Œ๋žซํผ๊ณผ์˜ ํ†ตํ•ฉ์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž์‹ ์˜ ์ฃผ์„ ์ž‘์—… ์ธ๋ ฅ์—๊ฒŒ ๋Šฅ๋™์ ์œผ๋กœ ๋ฐฐ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Prolific์€ ์—ฐ๊ตฌ ์—ฐ๊ตฌ๋ฅผ ์œ„ํ•œ ๊ณ ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์กฐ๊ฑด

๋จผ์ € Hugging Face ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค:

hf auth login

argilla>=2.0.0์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”:

pip install -U argilla

๋งˆ์ง€๋ง‰์œผ๋กœ, Argilla ์„œ๋ฒ„์™€ UI๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” Hugging Face Hub์—์„œ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ์…‹ ๋ฐ ๋ ˆ์ฝ”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Hugging Face Hub๋กœ ๋ฐ์ดํ„ฐ์…‹์„ ๊ฐ€์ ธ์˜ค๊ณ  ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Argilla์—์„œ๋Š” ๋ฐ์ดํ„ฐ์…‹์˜ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ/๋‚ด๋ณด๋‚ด๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • rg.Settings์— ์ •์˜๋œ ๋ฐ์ดํ„ฐ์…‹์˜ ์ „์ฒด ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ์ž‘์—…์„ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๋‚˜์ค‘์— Argilla์—์„œ ๋ณต์›ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Metadata, Vectors, Suggestions, Responses๋ฅผ ํฌํ•จํ•œ ๋ฐ์ดํ„ฐ์…‹์— ์ €์žฅ๋œ ๋ ˆ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. Argilla ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ์…‹์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Argilla ๋ฐ์ดํ„ฐ์…‹์„ Hugging Face Hub์— ์—…๋กœ๋“œ

Argilla์—์„œ Hugging Face Hub๋กœ ๋ฐ์ดํ„ฐ์…‹์„ pushํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ์…‹์„ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. rg.Dataset.to_hub ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Hugging Face Hub๋กœ ๋ฐ์ดํ„ฐ์…‹์„ pushํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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๋กœ ๋ฐ์ดํ„ฐ์…‹์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์…‹๊ณผ ๊ทธ ๊ตฌ์„ฑ์„ ๋ณต์›ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. 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 ๋ฐ์ดํ„ฐ์…‹์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ ˆ์ฝ”๋“œ ์œ ๋ฌด

์œ„ ์˜ˆ์ œ๋Š” ํ—ˆ๋ธŒ์—์„œ ๋ฐ์ดํ„ฐ์…‹์˜ 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)

๐Ÿ“š ๋ฆฌ์†Œ์Šค

Update on GitHub