๐Ÿ“„FinePDFs: Hugging Face๊ฐ€ ๊ณต๊ฐœํ•œ 3T ๊ทœ๋ชจ์˜ ๊ณต๊ฐœ PDF ๋ฐ์ดํ„ฐ์…‹

:page_facing_up:FinePDFs ์†Œ๊ฐœ

์ตœ๊ทผ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ์…‹ ํ™•๋ณด๊ฐ€ ์ ์  ์–ด๋ ค์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ํŽ˜์ด์ง€ ๊ธฐ๋ฐ˜์˜ HTML ๋ฐ์ดํ„ฐ๋Š” ์ด๋ฏธ ์ˆ˜์ง‘ ๊ฐ€๋Šฅํ•œ ์–‘์ด ํ•œ๊ณ„์— ๋‹ค๋‹ค๋ฅธ ์ƒํ™ฉ์—์„œ, ์ƒˆ๋กœ์šด ๋Œ€์•ˆ์œผ๋กœ ๋– ์˜ค๋ฅธ ๊ฒƒ์ด ๋ฐ”๋กœ PDF์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ PDF๋Š” ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜๊ณ , ํ…์ŠคํŠธ ์ถ”์ถœ ๊ณผ์ •์—์„œ ๋งŽ์€ ๋น„์šฉ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์ถ• ๋Œ€์ƒ์œผ๋กœ ํฌ๊ฒŒ ์ฃผ๋ชฉ๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ Hugging Face๋Š” :page_facing_up:FinePDFs๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์…‹์„ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. :page_facing_up:FinePDFs๋Š” ์•ฝ 3์กฐ ํ† ํฐ(3 trillion tokens), 4์–ต 7,500๋งŒ ๊ฐœ์˜ PDF ๋ฌธ์„œ(475 million documents), ๊ทธ๋ฆฌ๊ณ  1,733๊ฐœ์˜ ์–ธ์–ด(1,733 languages) ๋ฅผ ํฌํ•จํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹์ž…๋‹ˆ๋‹ค. ์ด๋Š” HTML ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ์…‹๊ณผ ๋น„๊ตํ•ด๋„ ๋’ค์ง€์ง€ ์•Š๋Š” ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ, HTML ๋ฐ์ดํ„ฐ์™€ ํ˜ผํ•ฉํ–ˆ์„ ๋•Œ๋Š” ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜๋Š” ๊ฒƒ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฒ•๋ฅ , ํ•™์ˆ , ๋งค๋‰ด์–ผ ๋“ฑ PDF์—์„œ ์ฃผ๋กœ ๋ฐœ๊ฒฌ๋˜๋Š” ๊ณ ํ’ˆ์งˆ ๋„๋ฉ”์ธ ์ง€์‹์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ์—ฐ๊ตฌ์ž์™€ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋งค์šฐ ๊ฐ€์น˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

:page_facing_up:FinePDFs๋Š” 2013๋…„๋ถ€ํ„ฐ 2025๋…„๊นŒ์ง€์˜ CommonCrawl ์Šค๋ƒ…์ƒท์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜์ง‘๋˜์—ˆ๊ณ , Hugging Face์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ datatrove๋ฅผ ํ™œ์šฉํ•ด ์ •์ œ ๋ฐ ์ค‘๋ณต ์ œ๊ฑฐ ๊ณผ์ •์„ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ 3.65TB ๊ทœ๋ชจ์˜ ๊ณ ํ’ˆ์งˆ ํ…์ŠคํŠธ ์ฝ”ํผ์Šค(Corpus, ๋ง๋ญ‰์น˜)๋กœ ๊ฐ€๊ณต๋˜์—ˆ์œผ๋ฉฐ, LLM ์‚ฌ์ „ ํ•™์Šต์— ์ตœ์ ํ™”๋œ ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

:page_facing_up:FinePDFs๋Š” HTML ์œ„์ฃผ์˜ ๋ฐ์ดํ„ฐ์…‹์ธ SmolLM-3 Web๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ๋„ ๋น„์Šทํ•œ ์ˆ˜์ค€์˜ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ผํ•ฉํ•˜๋ฉด, ๋ชจ๋ธ ์„ฑ๋Šฅ์ด ๋”์šฑ ํฌ๊ฒŒ ๊ฐœ์„ ๋˜๋Š” ๊ฒƒ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Hugging Face ํŒ€์€ ์ „์ฒด ํ•™์Šต ๋ฐ์ดํ„ฐ์—์„œ PDF ๋ฐ์ดํ„ฐ ๋น„์ค‘์„ 25% ์ดํ•˜๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ๊ณผ์ ์ด๋ผ๊ณ  ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ :page_facing_up:FinePDFs์˜ ๋ฌธ์„œ๋Š” ํ‰๊ท  ๊ธธ์ด๊ฐ€ ๊ธธ๊ณ , 10๋งŒ ์ž ์ด์ƒ์˜ ์ดˆ์žฅ๋ฌธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์…‹๋ณด๋‹ค ๋งŽ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธด ๋ฌธ๋งฅ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ตœ์‹  LLM ์—ฐ๊ตฌ์— ํŠนํžˆ ์œ ์šฉํ•œ ํŠน์„ฑ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ FinePDFs๋Š” ๋‹จ์ˆœํ•œ ๋Œ€์ฒด์žฌ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ธฐ์กด HTML ๋ฐ์ดํ„ฐ์…‹์„ ๋ณด์™„ํ•˜๊ณ  ํ™•์žฅํ•˜๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

:page_facing_up:FinePDFs ๋ฐ์ดํ„ฐ์…‹์˜ ์ฃผ์š” ํŠน์ง•

๋ฐ์ดํ„ฐ์…‹์— ํฌํ•จ๋œ ์–ธ์–ด ๋ฐ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ

  • ์ด 1,733๊ฐœ ์–ธ์–ด-์Šคํฌ๋ฆฝํŠธ ์กฐํ•ฉ ์„ ํฌํ•จ

  • 978๊ฐœ ์–ธ์–ด๊ฐ€ 100๋งŒ ํ† ํฐ ์ด์ƒ, 66๊ฐœ ์–ธ์–ด๊ฐ€ 10์–ต ํ† ํฐ ์ด์ƒ ํ™•๋ณด

  • ์˜์–ด(eng_Latn) ๋ฐ์ดํ„ฐ๋Š” ์•ฝ 1.71TB, ์ผ๋ณธ์–ด(jpn_Jpan) ๋ฐ์ดํ„ฐ๋Š” ์•ฝ 142GB

  • ํ•œ๊ตญ์–ด(kor_Hang) ๋ฐ์ดํ„ฐ๋„ ์•ฝ 12์–ต ํ† ํฐ(14.3GB) ํฌํ•จ

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ

:page_facing_up:FinePDFs๋Š” ๋‹จ์ˆœํžˆ PDF๋ฅผ ๊ธ์–ด์˜จ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‹ค์–‘ํ•œ ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๊ณ ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ๋กœ ๊ฐ€๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

  1. PDF+์ž˜๋ฆผ(truncation) ์‹๋ณ„: CommonCrawl์— ์ €์žฅ๋œ ์†์ƒ๋˜๊ฑฐ๋‚˜ ์ž˜๋ฆฐ PDF ํƒ์ง€

  2. ์ž˜๋ฆฐ PDF ์žฌ์ˆ˜์ง‘(hydration): ์ธํ„ฐ๋„ท์—์„œ ์›๋ณธ PDF ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œ

  3. OCR ํ•„์š”์„ฑ ํƒ์ง€ ๋ฐ ์ถ”์ถœ: ๋””์ง€ํ„ธ PDF๋Š” ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ถ”์ถœ, ์Šค์บ”๋ณธ์€ GPU ๊ธฐ๋ฐ˜ OCR ์‚ฌ์šฉ

  4. ํ…์ŠคํŠธ ํ›„์ฒ˜๋ฆฌ: ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ์ œ๊ฑฐ, ํ—ค๋”/ํ‘ธํ„ฐ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์‚ญ์ œ, ์ธ์ฝ”๋”ฉ ์˜ค๋ฅ˜ ์ˆ˜์ •

  5. ์–ธ์–ด ์‹๋ณ„(GlotLID ํ™œ์šฉ): ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์–ธ์–ด ๊ฐ์ง€ ํ›„ ๋ฌธ์„œ ์ˆ˜์ค€์—์„œ ํ‰๊ท  ์ฒ˜๋ฆฌ

  6. ์ •ํ™•ํ•œ ์ค‘๋ณต ์ œ๊ฑฐ: MinHash์™€ exact deduplication ๋ณ‘ํ–‰

  7. ์˜์–ด ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง: ๊ด‘๊ณ , ์ŠคํŒธ PDF ์ œ๊ฑฐ

  8. PII(Personable Identifiable Information; ๊ฐœ์ธ ์‹๋ณ„ ์ •๋ณด) ์ต๋ช…ํ™”: ์ด๋ฉ”์ผ, IP ์ฃผ์†Œ ์ž๋™ ์น˜ํ™˜

๋ฐ์ดํ„ฐ ํ™œ์šฉ ์˜ˆ์‹œ

:page_facing_up:FinePDFs๋Š” Hugging Face์˜ datasets, huggingface_hub, ๊ทธ๋ฆฌ๊ณ  datatrove ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Python์—์„œ ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐฉ์‹์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

from datasets import load_dataset

# ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
dataset = load_dataset("HuggingFaceFW/finepdfs", name="kor_Hang", split="train", streaming=True)
for doc in dataset:
    print(doc["text"])
    break

:page_facing_up:FinePDFs ๋ฐ์ดํ„ฐ์…‹์˜ ์„ฑ๋Šฅ ํ‰๊ฐ€

:page_facing_up:FinePDFs๋Š” SQuAD 2.0, ARC, HellaSwag, MMLU, GSM8K, DROP, CommonsenseQA ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฒค์น˜๋งˆํฌ์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์œผ๋ฉฐ, HTML ๋ฐ์ดํ„ฐ์™€ ํ˜ผํ•ฉ ์‹œ ํ™•์‹คํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๊ธด ๋ฌธ๋งฅ ์ดํ•ด์™€ ํ‘œ ์ฒ˜๋ฆฌ(Table QA)์™€ ๊ฐ™์€ ์˜์—ญ์—์„œ ๊ธฐ์กด ๋ฐ์ดํ„ฐ์…‹๋ณด๋‹ค ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ค‘๊ตญ์–ด, ํ”„๋ž‘์Šค์–ด, ์•„๋ž์–ด, ๋Ÿฌ์‹œ์•„์–ด์™€ ๊ฐ™์€ ์ฃผ์š” ์–ธ์–ด์— ๋Œ€ํ•ด์„œ๋„ ์‹คํ—˜์ด ์ง„ํ–‰๋˜์–ด, ๋‹ค๊ตญ์–ด ๋ชจ๋ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์—๋„ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Œ์ด ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌํšŒ์  ์˜ํ–ฅ๊ณผ ํ•œ๊ณ„

:page_facing_up:FinePDFs๋Š” ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ค‘์š”ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์— ๊ณต๊ฐœ๋œ ๊ฐ•๋ ฅํ•œ LLM๋“ค์ด ํ•™์Šตํ•œ ๋ฐ์ดํ„ฐ์…‹์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„๊ณต๊ฐœ์˜€์œผ๋‚˜, :page_facing_up:FinePDFs๋Š” ํˆฌ๋ช…ํ•œ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ํ†ตํ•ด ๋ˆ„๊ตฌ๋‚˜ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฒ•๋ฅ , ๊ณผํ•™, ๊ต์œก๊ณผ ๊ฐ™์€ ์ „๋ฌธ์ ์ธ ๋„๋ฉ”์ธ์˜ ์ง€์‹์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ํ•™์ˆ  ์—ฐ๊ตฌ์ž์™€ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ PDF ์ถ”์ถœ ํŠน์„ฑ์ƒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•œ๊ณ„๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค:

  • Docling ๊ธฐ๋ฐ˜ ์ถ”์ถœ: ์ด๋ฏธ์ง€ ์† ํ…์ŠคํŠธ, ๋ณต์žกํ•œ ์ˆ˜์‹, ์ฝ”๋“œ ๋ธ”๋ก ๋“ฑ์ด ๋ˆ„๋ฝ๋  ์ˆ˜ ์žˆ์Œ

  • OCR ๊ธฐ๋ฐ˜ ์ถ”์ถœ(RolmOCR): ์ธ์‹ ์˜ค๋ฅ˜, ํ™˜๊ฐ(hallucination), ์ผ๋ถ€ ํŽ˜์ด์ง€ ๋ˆ„๋ฝ ๊ฐ€๋Šฅ์„ฑ

  • ํŽธํ–ฅ(Bias): ์›น์—์„œ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ์ด๋ฏ€๋กœ, ์ผ๋ถ€ ๋ฌธ์„œ์— ๋…์„ฑ(Toxic) ์ฝ˜ํ…์ธ ๋‚˜ ์‚ฌํšŒ์  ํŽธํ–ฅ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Œ

๋ผ์ด์„ ์Šค

:page_facing_up:FinePDFs ํ”„๋กœ์ ํŠธ๋Š” Open Data Commons Attribution License (ODC-By) v1.0์œผ๋กœ ๊ณต๊ฐœ ๋ฐ ๋ฐฐํฌ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, CommonCrawl ์ด์šฉ ์•ฝ๊ด€์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ƒ์—…์  ์ด์šฉ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋ฐ˜๋“œ์‹œ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

:hugs: :page_facing_up:FinePDFs ๋ฐ์ดํ„ฐ์…‹




์ด ๊ธ€์€ GPT ๋ชจ๋ธ๋กœ ์ •๋ฆฌํ•œ ๊ธ€์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ๊ฒƒ์œผ๋กœ, ์›๋ฌธ์˜ ๋‚ด์šฉ ๋˜๋Š” ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ์ •๋ฆฌ๋œ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ์žˆ๋Š” ๋‚ด์šฉ์ด์‹œ๋ผ๋ฉด ์›๋ฌธ๋„ ํ•จ๊ป˜ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”! ์ฝ์œผ์‹œ๋ฉด์„œ ์–ด์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๋‚ด์šฉ์„ ๋ฐœ๊ฒฌํ•˜์‹œ๋ฉด ๋ง๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๊ธฐ๋ฅผ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. :hugs:

:pytorch:ํŒŒ์ดํ† ์น˜ ํ•œ๊ตญ ์‚ฌ์šฉ์ž ๋ชจ์ž„:south_korea:์ด ์ •๋ฆฌํ•œ ์ด ๊ธ€์ด ์œ ์šฉํ•˜์…จ๋‚˜์š”? ํšŒ์›์œผ๋กœ ๊ฐ€์ž…ํ•˜์‹œ๋ฉด ์ฃผ์š” ๊ธ€๋“ค์„ ์ด๋ฉ”์ผ:love_letter:๋กœ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค! (๊ธฐ๋ณธ์€ Weekly์ง€๋งŒ Daily๋กœ ๋ณ€๊ฒฝ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.)

:wrapped_gift: ์•„๋ž˜:down_right_arrow:์ชฝ์— ์ข‹์•„์š”:+1:๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๋ฉด ์ƒˆ๋กœ์šด ์†Œ์‹๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š”๋ฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค~ :star_struck: