섹션별 상세
데이터셋 구축 과정에서 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 서비스를 활용하여 실제 모델 학습을 진행했습니다. 비용 효율성을 위해 여러 인스턴스를 테스트하며 최적의 환경을 구축했습니다.
용어 해설
- 토큰화(Tokenization)
- — 텍스트 데이터를 모델이 이해할 수 있는 숫자 단위인 토큰으로 변환하는 과정입니다. LLM 학습의 필수 전처리 단계로, 모델의 어휘 사전과 직결됩니다.
- 섀넌 엔트로피(Shannon Entropy)
- — 데이터의 정보 밀도나 무작위성을 측정하는 지표입니다. 이 글에서는 텍스트가 자연어인지 혹은 노이즈가 섞인 데이터인지 판별하는 품질 필터링 기준으로 사용되었습니다.
- 압축률(Compression Ratio)
- — 데이터를 압축했을 때 원본 대비 크기 비율입니다. 텍스트의 반복성이나 구조적 특징을 파악하여, OCR 오류가 많거나 의미 없는 텍스트를 걸러내는 지표로 활용되었습니다.
- 기반 학습(Base Training)
- — 모델이 방대한 텍스트 데이터를 통해 다음 토큰을 예측하도록 학습하는 사전 학습 단계입니다. 모델의 언어 이해 능력과 지식 베이스를 형성하는 가장 비용이 많이 드는 과정입니다.
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 06. 11.수집 2026. 06. 11.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.