distilabel: AI를 활용한 합성 데이터 생성 및 피드백 프레임워크

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

라이선스

Apache 2.0

더 읽어보기

공식 문서 사이트

GitHub 저장소

https://github.com/argilla-io/distilabel




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: