이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.
핵심 요약
이 프로젝트는 1900년 이전의 영어 텍스트만을 사용하여 340M 파라미터 규모의 빈티지 LLM을 밑바닥부터 구축한 과정을 다룹니다. 데이터 수집부터 정제, 토큰화, 그리고 두 단계의 기반 학습(base-training) 파이프라인을 직접 설계하고 구현했습니다. 특히 ZLIB 압축률, 섀넌 엔트로피, 사용자 정의 품질 점수를 활용해 저품질 OCR 데이터를 효과적으로 필터링했습니다. 최종 모델은 Llama 아키텍처를 따르며, 클라우드 GPU 인프라를 활용해 약 9B 토큰으로 학습되었습니다.
섹션별 상세
데이터셋 구축 과정에서 Project Gutenberg와 Oxford Text Archive 등에서 수집한 텍스트를 1900년 이전 데이터로 한정하여 필터링했습니다. 수동으로 날짜를 확인할 수 없는 문서는 제외하여 역사적 정확성을 확보했습니다.
데이터 품질을 보장하기 위해 ZLIB 압축률, 섀넌 엔트로피, 그리고 문자 유형별 가중치를 적용한 사용자 정의 품질 점수를 도입했습니다. 이 필터링 과정을 통해 OCR 오류가 포함된 저품질 텍스트를 1% 미만으로 제거했습니다.
python
def compression_ratio(text) -> float:
raw = text.encode("utf-8")
compressed = zlib.compress(raw)
return len(compressed) / len(raw)텍스트의 압축률을 계산하여 데이터 품질을 평가하는 함수 예시
python
def char_entropy(text) -> float:
counts = Counter(text)
total = len(text)
entropy = 0.0
for count in counts.values():
p = count / total
entropy -= p * log2(p)
return entropy텍스트의 섀넌 엔트로피를 계산하여 언어적 무작위성을 측정하는 함수
python
def quality_score(text: str) -> float:
score = 0.0
for c in text:
if _LETTER_RE.match(c):
score += 2
elif _DIGIT_SPACE_RE.match(c):
score += 1
elif _PUNCT_RE.match(c):
score += 0.5
else:
score -= 0.5
return ((score / len(text)) - 0.75) * 100문자 구성 비율을 기반으로 OCR 오류가 많은 저품질 텍스트를 식별하는 사용자 정의 품질 점수 함수
데이터 저장 및 관리를 위해 LevelDB를 채택하여 1,200만 행 이상의 데이터를 효율적으로 처리했습니다. Qdrant나 Lance와 같은 다른 데이터베이스 솔루션들은 리소스 점유나 성능 문제로 인해 배제되었습니다.
학습은 두 단계로 나누어 진행되었으며, 첫 번째는 짧은 텍스트, 두 번째는 최대 10MB 크기의 긴 텍스트를 사용했습니다. 총 9B 토큰을 학습하여 Chinchilla Scaling Law에 따른 340M 파라미터 모델의 최적 학습량을 충족했습니다.


학습 인프라로 로컬 환경에서 데이터 전처리를 수행하고, Vast.ai와 같은 클라우드 GPU 서비스를 활용하여 실제 모델 학습을 진행했습니다. 비용 효율성을 위해 여러 인스턴스를 테스트하며 최적의 환경을 구축했습니다.
실무 Takeaway
- 데이터셋 구축 시 ZLIB 압축률과 섀넌 엔트로피를 활용한 다중 필터링은 저품질 OCR 텍스트를 제거하는 데 매우 효과적이다.
- LevelDB는 대규모 텍스트 데이터를 처리할 때 메모리 효율성과 안정성이 뛰어나며, 소비자용 하드웨어에서도 충분히 확장 가능하다.
- 340M 파라미터 규모의 소형 모델 학습 시에도 Chinchilla Scaling Law에 기반한 토큰 수 확보가 모델의 언어 구조 학습에 필수적이다.
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 06. 11.수집 2026. 06. 11.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.