간소화된 LLM 워크플로를 위한 IBM Data Prep Kit 소개
대규모 언어 모델(LLMs)은 의료, 리테일, 전자상거래 산업 전반에서 널리 도입되어 전체 매출에서 수십억 달러를 창출하고 있습니다. 이러한 LLM의 성공 뒤에 있는 핵심 요소는 이들이 학습하는 데이터입니다. 이러한 모델의 일반 지능은 사용되는 데이터의 양, 품질, 다양성에 달려 있으므로, 효율적인 전처리를 보장하는 것이 매우 중요해집니다.
최근 Zilliz가 주최한 NYC Unstructured Data Meetup에서 IBM Research의 시니어 엔지니어인 Santosh Borse는 LLM 워크플로를 위한 데이터 준비 프로세스를 간소화하기 위해 그들이 만든 오픈 소스 Data Prep Kit (DPK)에 대해 이야기했습니다. 그는 데이터 품질과 관련해 직면한 과제, 이를 해결한 방법, 그리고 오픈 소스 DPK를 구현하기 위한 파이프라인에 대해 논의했습니다.
이 블로그에서는 그의 핵심 내용을 요약하고, 의미 기반 검색 및 Retrieval Augmented Generation (RAG)과 같은 애플리케이션을 위해 DPK를 Milvus와 어떻게 더 통합할 수 있는지 살펴봅니다.
데이터는 새로운 석유입니다!
“데이터는 새로운 석유다”—이 말은 LLM의 성장에 적절하게 적용될 수 있습니다. 석유가 경제를 움직이는 것처럼, 데이터는 LLM 성공의 원천입니다.
다음은 OpenAI의 GPT 모델과 같은 많은 LLM이 LLM 학습을 위한 데이터를 추출하는 데 활용해 온 데이터 소스 목록입니다.
Common Crawl: 거의 2,500억 개의 웹페이지에 해당하는 페타바이트 규모의 데이터를 포함한 방대한 데이터 소스입니다. 또한 사용 가능한 많은 다른 데이터셋의 상위 집합이기도 합니다. 이 데이터는 범용 언어 모델의 기반 소스로 활용됩니다.
처리된 데이터셋: C4, The Pile, Red Pajama, Wikipedia는 특정 작업에 맞게 선별된 고품질 데이터를 제공합니다.
도메인별 데이터: 도메인별 데이터는 더 구체적인 사용 사례를 해결하는 데 활용될 수 있습니다. 예로는 문학 분석을 위한 BookCorpus, 수학 문제 해결을 위한 MathQA, 코딩 관련 작업을 위한 StarCoder가 있습니다.
HuggingFace: 210K개 이상의 데이터셋을 보유하고 있어 파인튜닝 작업을 위한 맞춤화를 가능하게 합니다.
자체 데이터: LLM은 보통 회사 데이터와 오픈 소스 데이터를 조합하여 학습됩니다.
데이터 품질이 핵심입니다!
데이터 품질을 보장하는 것은 최적의 LLM 성능을 얻기 위한 가장 중요한 단계입니다. 학습 데이터를 처리할 때 고려해야 할 주요 측면은 다음과 같습니다.
다양성—데이터는 모델 일반화를 위해 학습할 충분한 정보가 있도록 다양한 정보를 포함하고 여러 출처에서 나와야 합니다.
언어적 패턴—LLM이 언어와 도메인 전반에서 더 잘 일반화될 수 있도록 데이터에는 다양한 언어적 패턴이 존재해야 합니다.
과적합 vs. 과소적합—어떤 뉴스가 인터넷의 100개가 넘는 페이지에 나타난다면, 모델은 그 모든 페이지로 학습되어 해당 특정 데이터에 과적합하게 됩니다. 반대로 다른 뉴스에 대해서는 과소적합될 수 있습니다. 따라서 둘 사이의 균형을 유지해야 합니다.
편향—성별 또는 문화적 고정관념과 같은 학습 데이터의 편향은 LLM에서 해로운 출력을 전파할 수 있습니다. 따라서 편향 완화는 중요한 전처리 단계입니다.
개인 정보—개인의 프라이버시와 보안을 보호하기 위해 개인 정보는 인코딩하거나 제거해야 합니다.
나쁜 데이터—유해한 콘텐츠(학대, 욕설 또는 혐오 발언)를 포함한 데이터는 모델 출력의 윤리적 및 전문적 기준을 유지하기 위해 제거해야 합니다.
| 나쁜 데이터 | 좋은 데이터 |
|---|---|
| 중복됨 | 고유하고 명확함 |
| 오타 및 맞춤법 오류 | 정확하고 오류 없음 |
| 일관성 없음 | 일관성 있음 |
| 환각 | 검증됨 |
| 유해함 | 안전하고 보안됨 |
| … | … |
표: 좋은 데이터 vs 나쁜 데이터
데이터의 품질이 계속 낮은 상태로 남아 있으면 LLM을 효과적으로 학습하는 데 필요한 계산 비용과 시간이 증가합니다.
데이터 정제
데이터 정제는 LLM 데이터 전처리를 위한 또 다른 필수 단계입니다. 이는 학습 데이터에 불일치, 부정확성 또는 관련 없는 정보가 없도록 보장합니다. 아래는 데이터 정제를 위한 주요 단계 중 일부입니다.
그림- 데이터 정제 예시 .png
그림: 데이터 정제 예시
중복 제거—중복된 데이터셋 항목은 학습 결과를 왜곡하여 비효율적인 리소스 활용과 과적합으로 이어질 수 있습니다.
품질 필터—일관성 없는 데이터(예: 같은 문장 내 두 언어)를 제거하고, 누락된 값을 대체하며, 형식을 정규화하고, 원치 않는 패턴이나 텍스트를 제거하며, 데이터를 더욱 정제하기 위한 필터입니다.
콘텐츠 필터—유해하거나 편향된 데이터는 특정 유해 단어를 모든 사람에게 더 포용적인 조정되고 윤리적인 단어로 대체하여 필터링됩니다.
개인정보 감소—개인 식별 정보(PII)는 개인 또는 조직 데이터의 개인정보를 보호하기 위해 특정 키워드로 인코딩됩니다.
규칙 기반 정제—오타, 불필요한 문장 부호, 서식 문제 등과 관련된 오류를 제거하기 위해 특정 규칙이 설정됩니다.
IBM Granite 모델을 위한 Data Prep Kit 및 데이터 여정
데이터 품질의 주요 문제와 데이터 정제를 통한 처리에 대해 이야기한 후, Santosh Borse는 아래에 표시된 자체 IBM Granite 모델을 위한 데이터 처리 여정에 대해 이야기했습니다. 그는 또한 아래에 언급된 것처럼 일부 전처리 단계 이후 데이터 양(최종적으로 학습용 2.5조 토큰)에 대한 흥미로운 통계도 언급합니다. 원시 데이터의 70% 이상은 쓸모가 없으며, 이는 데이터 전처리와 정제가 중요한 단계임을 의미합니다.
Data Prep Kit (DPK)는 LLM 기반 애플리케이션을 구축하는 개발자를 위해 비정형 데이터 준비를 간소화하도록 설계된 IBM Research의 오픈 소스 툴킷입니다. 이는 파인튜닝, 인스트럭션 튜닝, 검색 증강 생성(RAG)과 같은 사용 사례에 맞춰져 있으며, 다양한 데이터 처리 과제를 관리하기 위한 모듈식 및 확장 가능한 솔루션을 제공합니다. DPK는 Granite 오픈 소스 LLM 모델을 위한 사전 학습 데이터셋을 생성하는 데 유용하고 효과적이었습니다.
DPK 워크플로
Data Prep Kit (DPK)는 코드 및 언어 데이터를 위해 설계된 재사용 가능한 변환(모듈)을 통해 데이터 준비를 단순화합니다. 또한 이미지, 음성 및 멀티모달 데이터로 지원을 확장하는 것도 구상하고 있습니다. DPK는 개발자가 기본 프레임워크나 런타임에 대한 깊은 지식 없이도 데이터 처리를 빠르게 시작할 수 있도록 하는 고수준 API를 제공합니다.
그림- Data Prep Kit 워크플로.png
그림: Data Prep Kit 워크플로
워크플로는 입력 파일(HTML, PDF 또는 코드 등)을 표준화된 Parquet 형식으로 변환하여 일관된 데이터 스키마를 보장하는 것으로 시작됩니다. DPK의 핵심에는 사용자가 사전 정의된 변환 또는 사용자 지정 변환을 적용하고, 여러 변환을 연결하여 데이터를 체계적으로 처리할 수 있게 해주는 강력한 데이터 처리 라이브러리가 포함되어 있습니다. 예를 들어, 텍스트 데이터는 정확한 중복 제거를 거친 다음 문서 품질 분석 및 토큰화 또는 문서 청킹 및 임베딩 생성과 같은 단계로 진행될 수 있습니다.
결과로 생성된 문서 임베딩은 모델 파인튜닝, RAG 파이프라인 구현 또는 instruct-tuning과 같은 고급 애플리케이션에 활용될 수 있습니다. 데이터 준비 프로세스를 자동화하고 표준화함으로써 DPK는 개발자가 AI 모델을 구축하고 개선하는 데 집중할 수 있도록 지원하며, 노트북에서 클러스터 기반 환경까지 손쉽게 확장할 수 있게 해줍니다.
DPK는 또한 사용자가 특정 요구 사항에 맞게 사용자 지정 변환을 만들고 추가할 수 있도록 합니다. 시작하는 방법은 다음과 같습니다:
RAG를 위한 DPK와 Milvus 통합
원시 데이터가 DPK를 통과한 후 결과물은 텍스트 임베딩이며, 이는 Milvus와 같은 벡터 데이터베이스와 추가로 통합되어 흥미로운 LLM 애플리케이션을 만들 수 있습니다. DPK와 Milvus를 통합한 RAG 파이프라인 예시를 살펴보겠습니다.
검색 증강 생성(RAG)은 검색 및 생성 방법을 결합하여 LLM 출력의 정확성, 관련성 및 사실적 근거를 향상시키는 고급 기술입니다. 이는 두 가지 핵심 구성 요소로 이루어져 있습니다: 외부 데이터로 채워진 Milvus와 같은 벡터 데이터베이스에서 관련 문맥 정보를 가져오는 검색기와, 이 문맥을 사용하여 정확하고 의미 있는 응답을 생성하는 생성기입니다.
아래는 Milvus와 DPK로 구축된 RAG 파이프라인입니다. Milvus는 이 파이프라인에서 검색기 역할을 하며, 대규모 외부 데이터를 효율적으로 관리하고 쿼리합니다. DPK는 데이터를 전처리하여 Milvus에 저장되기 전에 깨끗하고 일관되며 고품질이 되도록 보장합니다. LLM은 생성기로서, 사용자 요구에 맞춘 정확하고 문맥을 인식한 응답을 생성합니다.
Figure- Overall Workflow of Data Prep Kit with Milvus for RAG.png
그림: RAG를 위한 Milvus와 Data Prep Kit의 전체 워크플로(출처)
문서 정리 - 이 단계는 마크업 제거, 정확한 및 퍼지 중복 제거 수행 등 모든 데이터 전처리 기능을 수행합니다.
청크로 분할 - 다양한 청킹 전략을 사용하여 문서를 관리 가능한 청크 또는 세그먼트로 분할합니다. 문서는 페이지, 단락 또는 섹션으로 분할될 수 있습니다. 적절한 청킹 전략은 처리되는 문서 유형에 따라 달라집니다.
벡터화/생성 임베딩 - 얻어진 청크는 그런 다음 embedding models를 사용해 벡터화됩니다. 이 단계는 텍스트를 검색 가능하게 만들기 위한 것입니다.
데이터를 Milvus 벡터 데이터베이스에 저장 - Milvus는 인코딩된 모든 임베딩을 저장하고 유사도 검색을 위해 준비합니다.
질문 벡터화 - 사용자가 질문을 입력하면, 동일한 임베딩 모델을 사용해 벡터화됩니다.
벡터 검색 - 인코딩된 쿼리가 벡터 유사도 검색을 위해 Milvus로 전송됩니다.
관련 문서 검색 - Milvus는 쿼리와 가장 관련성이 높은 top-K 문서를 반환합니다.
새 프롬프트 구성: 검색된 문서와 원래 쿼리가 결합되어 LLM을 위한 새 프롬프트를 구성합니다.
LLM이 답변 출력— 마지막으로, LLM은 자신의 지식과 Milvus 벡터 데이터베이스에서 검색된 컨텍스트 정보를 사용해 더 정확한 답변을 생성합니다.
위 워크플로의 전체 구현을 확인하려면 이 튜토리얼을 확인하세요.
결론
IBM의 오픈 소스 Data Prep Kit (DPK)는 데이터의 독성, 과적합, 편향과 같은 일반적인 문제를 해결함으로써 LLM 워크플로를 위한 데이터 전처리를 단순화합니다. 20개 이상의 모듈식 변환을 통해 DPK는 중복 제거, 필터링, 개인정보 보호와 같은 필수 작업을 간소화합니다. DPK 파이프라인은 PDF나 HTML과 같은 원시 입력을 전처리하고 이를 Parquet과 같은 구조화된 형식으로 변환하는 것으로 시작합니다. 품질 검사, 데이터 정제, 임베딩 생성이 이 단계 뒤에 이어집니다. 이러한 임베딩은 Milvus와 같은 벡터 데이터베이스에 저장되어 파인튜닝 및 Retrieval-Augmented Generation (RAG)과 같은 애플리케이션을 지원할 수 있습니다.
이 블로그는 또한 Milvus를 DPK와 통합하면 컨텍스트상 관련 있는 문서를 검색하고 신뢰할 수 있는 사실 기반 응답으로 LLM 출력을 향상할 수 있음을 보여주었습니다.
관련 리소스
계속 읽기

Top 10 Context Engineering Techniques You Should Know for Production RAG
A practical guide to context engineering for production LLM systems, covering RAG, context processing, memory, agents, and multimodal context.

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

DeepSeek Always Busy? Deploy It Locally with Milvus in Just 10 Minutes—No More Waiting!
Learn how to set up DeepSeek-R1 on your local machine using Ollama, AnythingLLM, and Milvus in just 10 minutes. Bypass busy servers and enhance AI responses with custom data.


