# Reader-LM : HTML을 마크다운으로 변환하는 작은 언어 모델

> Clean Markdown view of GeekNews topic #16744. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16744](https://news.hada.io/topic?id=16744)
- GeekNews Markdown: [https://news.hada.io/topic/16744.md](https://news.hada.io/topic/16744.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-09-13T10:31:02+09:00
- Updated: 2024-09-13T10:31:02+09:00
- Original source: [jina.ai](https://jina.ai/news/reader-lm-small-language-models-for-cleaning-and-converting-html-to-markdown/)
- Points: 17
- Comments: 2

## Summary

Jina AI가 출시한 Reader-LM은 웹페이지를 마크다운으로 변환하는 소형 언어 모델입니다. HTML을 마크다운으로 변환하는 작업은 생각보다 쉽지 않아, position-aware하고 context 기반 추론이 필요하기 때문에 큰 파라미터 크기가 요구됩니다. Reader-LM은 웹 데이터 추출과 정제를 위해 설계되어, 긴 문맥을 지원하며 효율적인 변환을 제공합니다.

## Topic Body

- Jina AI는 2024년 4월에 웹페이지 URL을 LLM에 친화적인 마크다운으로 변환하는 API인 Jina Reader를 출시함   
- Jina Reader는 Chrome 브라우저로 웹페이지 소스를 가져와 Readability 패키지로 메인 콘텐츠를 추출하고, regex와 Turndown 라이브러리를 사용해 정리된 HTML을 마크다운으로 변환함  
- 하지만 Readability 필터가 잘못된 콘텐츠를 제거하거나 Turndown이 특정 HTML을 마크다운으로 변환하는데 어려움을 겪는 등 개선할 점이 있었음  
- 이에 Jina AI는 소형 언어 모델(SLM)을 사용해 HTML을 마크다운으로 end-to-end로 변환하는 방법을 고민하게 됨  
  
### Reader-LM의 특징   
- HTML을 마크다운으로 변환하는 작업은 LLM 일반 작업보다 창의적이거나 복잡하지 않고, 주로 입력에서 출력으로 선택적 복사(selective-copy)가 필요함  
- 따라서 더 적은 transformer block이 필요한 shallow한 모델 아키텍처가 가능함  
- 하지만 실제 HTML은 노이즈가 많고 토큰 길이가 길기 때문에, 256K 토큰까지 지원하는 긴 문맥(long-context) 지원이 필요함  
- Jina AI는 이를 위해 "shallow-but-wide"한 SLM인 reader-lm-0.5b와 reader-lm-1.5b를 발표함. 이들은 494M, 1.54B 개의 파라미터를 가지고 있음  
  
### Reader-LM 사용 방법  
- Google Colab에서 reader-lm을 체험해볼 수 있음. Hacker News 웹사이트를 마크다운으로 변환하는 과정을 보여주는 노트북이 제공됨  
- 상용 환경에서는 고성능 GPU를 사용하는 것이 권장됨. T4보다는 RTX 3090/4090 수준이 적합함  
- Reader-LM은 곧 Azure Marketplace와 AWS SageMaker에서도 제공될 예정임  
- 상용 라이선스는 CC BY-NC 4.0이며, 상용 사용에 대해서는 Jina AI에 문의할 것  
  
### Reader-LM 벤치마크 결과   
- GPT-4o, Gemini, LLaMA 등 여러 LLM과 비교 평가를 진행함  
- ROUGE-L, Token Error Rate(TER), Word Error Rate(WER) 등의 메트릭을 사용함  
- reader-lm-1.5b가 ROUGE-L 0.72, WER 1.87로 가장 우수한 성능을 보임   
- 실제 출력 마크다운을 시각적으로 검사해보면, reader-lm-1.5b가 헤더 추출, 메인 콘텐츠 추출, 구조 보존, 마크다운 문법 사용 등 모든 측면에서 우수함  
  
### Reader-LM 학습 과정  
- Jina Reader API로 HTML과 마크다운 쌍을 만들어 학습 데이터로 사용함. 합성 HTML도 일부 추가함  
- 65M부터 3B 파라미터까지 다양한 크기의 모델을 실험함  
- 2단계 학습 과정을 거침. 1단계에서는 짧고 간단한 HTML을 32K 토큰 시퀀스로 학습하고, 2단계에서는 128K 토큰까지 확장해 학습함   
- 반복과 루프에 빠지는 퇴화(degeneration) 문제를 해결하기 위해 대조 탐색(contrastive search)과 반복 정지 기준을 적용함  
- OOM 문제를 해결하기 위해 chunk-wise model forwarding을 구현하고 데이터 패킹 구현을 개선함  
- 인코더 전용 모델로 문제를 해결하는 것도 시도해봤으나, 토큰 분류 작업으로 취급하기에는 어려움이 있었음  
  
### 결론  
- Reader-LM은 웹 데이터 추출과 정제를 위해 설계된 새로운 SLM임   
- HTML을 마크다운으로 변환하는 작업은 생각보다 쉽지 않음. position-aware하고 context 기반 추론이 필요하기 때문에 큰 파라미터 크기가 요구됨  
- SLM을 처음부터 학습시키는 것은 매우 어려운 일임. 사전학습된 모델에서 시작하는 것이 훨씬 효율적임  
- 앞으로 문맥 길이 확장, 디코딩 속도 향상, 입력에서의 명령어 지원 등 개선의 여지가 많이 남아있음

## Comments



### Comment 33687

- Author: ragingwind
- Created: 2025-01-21T15:02:27+09:00
- Points: 1

이런거 만들고 싶어요.

### Comment 28890

- Author: xguru
- Created: 2024-09-13T10:32:01+09:00
- Points: 1

[Jina AI Reader - URL을 LLM 친화적인 입력으로 바꿔주는 도구](https://news.hada.io/topic?id=14498)  
  
이거 잘 쓰고 있는데, 더 작게 만들어서 브라우저에 내장해주면 좋겠다는 생각이 드는군요 ㅎ
