- Vào tháng 4 năm 2024, Jina AI đã ra mắt Jina Reader, một API chuyển đổi URL trang web thành Markdown thân thiện với LLM
- Jina Reader lấy mã nguồn trang web bằng trình duyệt Chrome, trích xuất nội dung chính bằng gói Readability, rồi dùng regex và thư viện Turndown để chuyển HTML đã được làm sạch sang Markdown
- Tuy nhiên vẫn còn những điểm cần cải thiện, chẳng hạn bộ lọc Readability có thể loại bỏ nhầm nội dung hoặc Turndown gặp khó khăn khi chuyển một số HTML nhất định sang Markdown
- Vì vậy, Jina AI bắt đầu tìm cách dùng mô hình ngôn ngữ nhỏ (SLM) để chuyển đổi HTML sang Markdown theo kiểu end-to-end
Đặc điểm của Reader-LM
- Tác vụ chuyển HTML sang Markdown không sáng tạo hay phức tạp như các tác vụ LLM tổng quát, mà chủ yếu cần selective-copy từ đầu vào sang đầu ra
- Vì thế có thể dùng kiến trúc mô hình nông hơn, cần ít khối transformer hơn
- Tuy nhiên HTML thực tế có rất nhiều nhiễu và độ dài token lớn, nên cần hỗ trợ ngữ cảnh dài (long-context) lên tới 256K token
- Để phục vụ mục tiêu này, Jina AI công bố hai SLM "shallow-but-wide" là reader-lm-0.5b và reader-lm-1.5b. Chúng có lần lượt 494M và 1.54B tham số
Cách sử dụng Reader-LM
- Có thể trải nghiệm reader-lm trên Google Colab. Một notebook minh họa quá trình chuyển trang web Hacker News sang Markdown cũng được cung cấp
- Trong môi trường thương mại, nên dùng GPU hiệu năng cao. Mức RTX 3090/4090 sẽ phù hợp hơn T4
- Reader-LM cũng sẽ sớm có mặt trên Azure Marketplace và AWS SageMaker
- Giấy phép thương mại là CC BY-NC 4.0; nếu muốn sử dụng cho mục đích thương mại, hãy liên hệ Jina AI
Kết quả benchmark của Reader-LM
- Đã tiến hành đánh giá so sánh với nhiều LLM như GPT-4o, Gemini và LLaMA
- Các chỉ số sử dụng gồm ROUGE-L, Token Error Rate (TER), Word Error Rate (WER)
- reader-lm-1.5b cho hiệu năng tốt nhất với ROUGE-L 0.72 và WER 1.87
- Khi kiểm tra trực quan đầu ra Markdown thực tế, reader-lm-1.5b cũng vượt trội ở mọi khía cạnh như trích xuất tiêu đề, trích xuất nội dung chính, bảo toàn cấu trúc và sử dụng cú pháp Markdown
Quá trình huấn luyện Reader-LM
- Jina Reader API được dùng để tạo các cặp HTML và Markdown làm dữ liệu huấn luyện. Một phần HTML tổng hợp cũng được bổ sung
- Đã thử nghiệm nhiều kích thước mô hình, từ 65M đến 3B tham số
- Quá trình huấn luyện gồm 2 giai đoạn. Giai đoạn 1 huấn luyện với HTML ngắn và đơn giản bằng chuỗi 32K token, còn giai đoạn 2 mở rộng lên tới 128K token
- Để giải quyết vấn đề thoái hóa (degeneration) như lặp và rơi vào vòng lặp, nhóm đã áp dụng contrastive search và tiêu chí dừng lặp
- Để xử lý vấn đề OOM, nhóm triển khai chunk-wise model forwarding và cải thiện cách triển khai data packing
- Nhóm cũng đã thử giải quyết bài toán bằng mô hình chỉ có encoder, nhưng gặp khó khăn khi xem đây là một bài toán phân loại token
Kết luận
- Reader-LM là một SLM mới được thiết kế cho việc trích xuất và làm sạch dữ liệu web
- Việc chuyển HTML sang Markdown khó hơn tưởng tượng. Do cần suy luận dựa trên ngữ cảnh và nhận biết vị trí, mô hình cần số lượng tham số lớn
- Huấn luyện SLM từ đầu là việc rất khó. Bắt đầu từ mô hình đã được tiền huấn luyện sẽ hiệu quả hơn nhiều
- Trong tương lai vẫn còn nhiều dư địa cải thiện như mở rộng độ dài ngữ cảnh, tăng tốc độ giải mã và hỗ trợ chỉ thị ngay trong đầu vào
2 bình luận
Tôi cũng muốn làm kiểu này.
Jina AI Reader - Công cụ biến URL thành đầu vào thân thiện với LLM
Tôi đang dùng cái này khá tốt, nên cũng nghĩ rằng sẽ tuyệt nếu nó được làm nhỏ hơn nữa để tích hợp sẵn vào trình duyệt haha