DeepFabric: 고품질 대규모 합성 데이터셋 생성 도구

DeepFabric 소개

DeepFabric은 연구자와 개발자를 위한 합성 데이터셋 생성 도구로, 대규모 언어 모델(LLM)을 활용해 고품질의 데이터를 자동으로 생성하는 라이브러리입니다. 이 프로젝트는 기존 이름인 PromptWright에서 발전해 현재는 더 확장된 기능과 유연성을 제공하는 CLI 도구 및 SDK 형태로 배포되고 있습니다. 주요 활용 사례는 교사-학생 지식 증류(Teacher-Student Knowledge Distillation) 파이프라인 구축, AI 모델 및 에이전트 평가용 벤치마크 제작, 다양한 학문 및 연구 분야에서 필요한 학습 데이터 생성 등입니다.

DeepFabric의 핵심 혁신은 그래프(Graph) 및 트리(Tree) 기반 아키텍처를 활용한 데이터 생성 방식에 있습니다. 단순히 주제만을 랜덤하게 뽑아내는 것이 아니라, 구조화된 토픽 노드(Topic Node)를 생성 시드(Seed)로 활용하여 주제별 계층적 구성을 형성합니다. 이를 통해 연구자, 엔지니어, 실무자들이 모델 학습용 데이터셋, 도메인 특화 예제, 평가 벤치마크를 손쉽게 만들 수 있으며, 생성되는 데이터셋은 중복을 최소화하면서도 다양성과 도메인 특수성을 동시에 확보할 수 있습니다.

DeepFabric Demo

AI 모델의 학습 및 평가에는 다양한 형식의 데이터가 필요하지만, 현실적으로 고품질 데이터를 수집하는 일은 많은 비용과 시간이 소요됩니다. DeepFabric은 특히 모델 증류(distillation), 대화형 AI 평가(agent evaluation), 통계적 연구와 같은 영역에서 강력한 도구가 될 수 있습니다. 복잡한 데이터 준비 과정을 단순화하면서도, 풍부하고 맥락 있는 데이터를 얻을 수 있다는 점에서 주목할 만합니다. DeepFabric은 또한 오픈소스로 공개되어 누구나 쉽게 활용할 수 있다는 점에서 AI 커뮤니티에 큰 가치를 제공합니다.

기존에도 데이터 증강(data augmentation)이나 자동 생성 기법은 존재했습니다. 예를 들어 단순히 ChatGPT API를 호출해 프롬프트에서 데이터를 얻는 방식이나, Hugging Face의 데이터셋 생성 도구가 있습니다. 하지만 이들은 보통 단발성 샘플 생성에 그치는 경우가 많습니다. 하지만 많은 경우 단순한 문장 변형 수준에 그치거나, 특정 도메인에 과도하게 편중된 데이터가 생성되는 한계가 있었습니다.

Hugging Face의 datasets 같은 프로젝트는 데이터 공유와 관리에 초점을 맞췄다면, DeepFabric은 실제 주제 모델링을 기반으로 한 체계적인 데이터셋 생성을 통해 데이터 생성 과정 자체를 제어 가능한 구조적 방식으로 지원한다는 점에서 차별화됩니다. 특히 주제 간의 관계를 계층적 구조(트리) 또는 네트워크 구조(그래프)로 표현해, 데이터가 단순 나열이 아닌 도메인 전반을 포괄하는 지식 구조를 반영할 수 있습니다. 또한, OpenAI API나 Ollama 같은 다양한 모델 제공자를 혼합해 사용할 수 있다는 점에서, 단일 벤더 종속성을 피하고 상황에 맞는 최적의 조합을 구성할 수 있다는 강점이 있습니다.

DeepFabric의 주요 기능 및 아키텍처

  • 트리(Tree) 및 그래프(Graph) 기반 주제 생성: DeepFabric은 두 가지 방식의 주제 확장을 지원합니다:

    • 토픽 트리(Topic Tree): 계층적 구조를 통해 주제를 세분화하는 전통적 방식으로, 교육용 데이터셋이나 학습 경로 설계에 적합합니다.

    • 토픽 그래프(Topic Graph): DAG 기반 구조로, 서로 다른 주제들이 교차 연결될 수 있어 복잡한 도메인을 모델링할 때 유리합니다. 토픽 그래프는 현재 실험적인 기능으로 제공합니다.

  • Chain of Thought(CoT) 지원: DeepFabric은 단계적 추론이 필요한 데이터셋 생성을 지원합니다. 세 가지 형식이 제공됩니다:

    • 자연어 CoT(Free-Text CoT): GSM8K 스타일의 자유로운 서술형 추론 데이터

    • 구조화 CoT(Structured CoT): 대화 맥락과 명시적 추론 단계를 포함한 데이터

    • 하이브리드 CoT(Hybrid CoT): 자유 텍스트와 구조화를 혼합한 방식으로, 특정 포맷에 과적합되는 문제를 줄이는 데 효과적입니다.

  • 다양한 모델 및 제공자 지원: DeepFabric은 데이터 생성 단계에서 서로 다른 모델을 조합할 수 있습니다. 예를 들어, 트리 구조 생성을 위해 GPT-4와 같은 고성능 모델을 사용하고, 실제 대량 데이터 생성은 Mixtral 같은 경량 모델로 처리하는 식입니다. 이를 통해 성능과 비용을 균형 있게 관리할 수 있습니다.

  • Hugging Face Hub 연동: 생성된 데이터셋은 Hugging Face Hub로 바로 업로드할 수 있으며, 자동으로 데이터셋 카드가 생성됩니다. 이를 통해 공유와 재사용이 편리해지고, 협업 생태계와 쉽게 연결됩니다.

  • YAML 기반 설정 관리: DeepFabric은 다양한 옵션을 CLI로 직접 입력할 수 있지만, 권장되는 방식은 YAML 설정 파일을 활용하는 것입니다. 이를 통해 주제 트리 구성, 데이터 엔진 설정, 출력 포맷 지정 등을 일관되게 관리할 수 있습니다. 연구자가 반복 실험을 하거나 대규모 파이프라인을 구축할 때 특히 유용합니다.

  • 포맷터 및 확장성: 현재는 OpenAI의 instruct 포맷(JSONL)을 기본으로 하지만, Alpaca 같은 다른 포맷이나 사용자 정의 변환기를 추가할 수 있습니다. 이를 통해 다양한 학습 프레임워크와 손쉽게 연결할 수 있습니다.

DeepFabric의 향후 로드맵

DeepFabric은 앞으로 멀티턴 대화 데이터, 툴 호출(tool-calling) 데이터, Kaggle 연동 등 기능 확장을 계획하고 있습니다. 특히 연구자들이 원하는 특정 대화 패턴이나 학습 시나리오를 쉽게 반영할 수 있는 구조를 제공하는 것이 목표입니다. 또한, 완전한 익명화된 텔레메트리 수집을 통해 성능 및 안정성을 개선하고 있으며, 원하지 않는 경우 환경 변수로 쉽게 차단할 수 있습니다.

라이선스

DeepFabric 프로젝트는 Apache-2.0 License로 공개 및 배포되고 있습니다. 상업적 사용을 포함하여 자유롭게 활용할 수 있지만, 저작권 고지와 라이선스 사본을 유지해야 합니다.

:books: DeepFabric 문서 사이트

https://lukehinds.github.io/DeepFabric/

:github: DeepFabric 프로젝트 GitHub 저장소

https://github.com/lukehinds/deepfabric




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

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

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

1개의 좋아요