distilabel: AI를 활용한 합성 데이터 생성 및 피드백 도구
소개
Distilabel은 AI 엔지니어들이 고품질의 출력을 요구하며 전체 데이터 소유권과 전반적인 효율성을 원할 때 사용하는 합성 데이터 및 AI 피드백 프레임워크입니다. 이 도구는 데이터 합성과 AI 피드백을 제공함으로써 모델 학습과 데이터 품질 관리를 한 차원 높일 수 있게 도와줍니다.
Distilabel은 예측 모델이나 생성 모델을 개발하는 AI 엔지니어들을 위한 데이터 합성 및 피드백 툴입니다. 이 프레임워크는 데이터의 질을 중심으로 문제를 해결하고, 비용은 줄이면서 데이터의 품질을 최대화하는 데 중점을 둡니다. 또한, 사용자가 자신의 데이터와 모델에 대한 완전한 소유권을 가질 수 있도록 지원합니다.
주요 기능
-
데이터 품질 향상: Distilabel은 데이터의 질을 높임으로써 AI 모델의 출력 품질을 향상시키는 데 도움을 줍니다.
-
데이터 및 모델 소유권 통제: 사용자가 자신의 LLM을 미세 조정할 수 있도록 데이터 소유권을 제공합니다.
-
연구 및 LLM 반복 효율성 향상: 최신 연구와 뛰어난 확장성 및 고장 허용성을 갖춘 데이터를 합성하고 평가할 수 있습니다.
Distilabel 프레임워크는 다양한 기계 학습 모델과 API 통합을 지원하여, 사용자가 손쉽게 데이터셋을 생성하고 AI 모델을 미세조정할 수 있도록 합니다. 다음은 Distilabel이 지원하는 주요 옵션들입니다:
- AnthropicLLM: Anthropic API를 통해 사용 가능한 모델을 활용할 수 있습니다.
- CohereLLM: Cohere에서 제공하는 모델을 사용할 수 있습니다.
- Argilla: 생성된 데이터셋을 Argilla로 내보낼 수 있습니다.
- InferenceEndpointsLLM: Hugging Face Inference Endpoints를 사용하여 모델을 활용할 수 있습니다.
- TransformersLLM: transformers 패키지에서 제공하는 모델을 사용할 수 있습니다.
- LiteLLM: OpenAI 포맷을 사용하여 LiteLLM을 통해 다양한 LLM을 호출할 수 있습니다.
- LlamaCppLLM: llama-cpp-python 바인딩을 통해
llama.cpp
를 사용할 수 있습니다. - MistralAILLM: Mistral AI API를 통해 제공되는 모델을 사용할 수 있습니다.
- OllamaLLM: Ollama의 모델을 활용할 수 있습니다.
- OpenAILLM: OpenAI API를 통해 제공되는 모델을 사용하거나, OpenAI 기반의 다른 통합 옵션을 활용할 수 있습니다.
- VertexAILLM: Google Vertex AI의 독점 모델을 사용할 수 있습니다.
- vLLM: vllm 서빙 엔진을 사용할 수 있습니다.
사용 방법
설치 방법
Python 3.8 이상에서 다음과 같이 pip를 사용하여 Distilabel을 설치할 수 있습니다:
pip install distilabel --upgrade
예시 코드
Distilabel은 OpenAI, Google Vertex AI, Cohere 등 다양한 LLM 통합 옵션을 지원합니다. 다음은 간단한 텍스트 생성 파이프라인을 구축하는 예시입니다:
from distilabel.llms import OpenAILLM
from distilabel.pipeline import Pipeline
from distilabel.steps import LoadHubDataset, TextGeneration
with Pipeline(name="simple-text-generation-pipeline") as pipeline:
load_dataset = LoadHubDataset(name="load_dataset", output_mappings={"prompt": "instruction"})
generate_with_openai = TextGeneration(name="generate_with_gpt35", llm=OpenAILLM(model="gpt-3.5-turbo"))
load_dataset.connect(generate_with_openai)
if __name__ == "__main__":
pipeline.run({
"load_dataset": {"repo_id": "instruction-dataset-mini", "split": "test"},
"generate_with_gpt35": {"llm": {"generation_kwargs": {"temperature": 0.7, "max_new_tokens": 512}}}
})
라이선스
더 읽어보기
공식 문서 사이트
GitHub 저장소
https://github.com/argilla-io/distilabel
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~