피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
Databricks가 Hugging Face Datasets에 from_spark() 함수를 추가해 Spark 데이터프레임을 직접 변환, 16GB 데이터셋 처리 시간 22분에서 12분으로 45% 단축
Databricks ❤️ Hugging Face: up to 40% faster training and tuning of Large Language Models
AI 요약
Context
Spark 데이터프레임의 데이터를 Hugging Face 모델 학습에 사용하려면 먼저 Parquet 파일로 디스크에 기록한 후 다시 로드해야 했다. 이 과정에서 데이터가 중복 저장되고 재실체화되어 불필요한 I/O와 메모리 오버헤드가 발생했다.
Technical Solution
- Hugging Face Datasets에
Dataset.from_spark()메서드 구현: Spark 데이터프레임을 직접 Hugging Face Dataset 객체로 변환 - Parquet 파일 중간 저장 단계 제거: Spark → Hugging Face 간 메모리 기반 직접 매핑
- Spark의 비용 효율성과 Hugging Face의 메모리 매핑·스마트 캐싱 최적화 기법 조합
- Delta 테이블 지원: Spark로 로드한 Delta 테이블도 동일하게 변환 가능
- 향후 스트리밍 지원 계획: Spark 스트리밍을 통한 추가 성능 개선 예정
Impact
- 16GB 데이터셋 처리 시간: 22분 → 12분 (약 45% 단축)
- 기존 방식(Parquet 경유): 처리 시간 22분
- 신규 방식(from_spark 직접 변환): 처리 시간 12분
Key Takeaway
대규모 데이터 변환이 필요한 머신러닝 파이프라인에서 전문화된 분산 처리 엔진(Spark)을 도메인별 모델 라이브러리(Hugging Face)와 직접 통합하면 중간 저장 오버헤드를 제거해 처리 시간과 비용을 동시에 절감할 수 있다.
실천 포인트
Apache Spark로 데이터 전처리를 수행하는 머신러닝 팀에서 Dataset.from_spark()를 사용하면 Parquet 저장 및 재로드 단계를 건너뛸 수 있어 처리 시간을 40% 이상 단축할 수 있다.