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 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)