Unlimited OCR — Model parsing dokumen panjang one-shot dari Baidu
(github.com/baidu)- Model OCR E2E berbasis DeepSeek OCR yang mengganti seluruh attention pada decoder, sehingga dapat mentranskripsi dokumen puluhan halaman dalam satu kali forward pass
- Intinya adalah Reference Sliding Window Attention (R-SWA), yang menjaga KV cache tetap konstan meski panjang decoding bertambah, sehingga kenaikan biaya memori dan komputasi dapat dicegah
- Meniru working memory manusia saat menyalin buku, dengan melupakan keluaran yang jauh secara halus dan hanya merujuk ke konteks yang berdekatan
- Di OmniDocBench v1.5 meraih 93%, unggul 6% dibanding DeepSeek OCR, dan di v1.6 mencapai 93.92% untuk meraih SOTA end-to-end
- R-SWA adalah mekanisme attention parsing umum yang dapat diterapkan bukan hanya pada OCR, tetapi juga pada tugas panjang berbasis referensi seperti ASR dan terjemahan
Latar belakang dan definisi masalah
- Manusia dapat mengerjakan tugas panjang seperti mentranskripsi ratusan halaman atau menerjemahkan audio berjam-jam tanpa penurunan efisiensi, tetapi model OCR yang ada bahkan tidak mampu mem-parsing 10 halaman dalam satu forward pass
- Model saat ini memproses per halaman dengan cara for-loop, dan menginisialisasi ulang memori di setiap langkah
- Pendekatan ini hanyalah jalan memutar rekayasa yang memecah proses panjang yang konsisten menjadi tugas-tugas jangka pendek yang terisolasi, bukan kemajuan menuju kecerdasan berorientasi AGI
- Jika memakai LLM sebagai decoder, kinerja meningkat karena memanfaatkan prior bahasa, tetapi semakin panjang output, KV cache yang terakumulasi akan memperbesar konsumsi memori dan secara bertahap memperlambat kecepatan generasi
- Perilaku transkripsi manusia bukan full attention standar maupun linear attention
- Manusia tidak menelusuri ulang seluruh teks yang sudah ditulis, melainkan hanya merujuk ke konteks yang berdekatan untuk menjaga arah
- Token visual/referensi tidak mengalami pembaruan state secara rekursif — jika diperbarui, fitur visual akan makin kabur secara bertahap sehingga akurasi pengenalan menurun
Reference Sliding Window Attention (R-SWA)
- Setiap token dapat mengakses semua token referensi (token visual + prompt), sementara attention output dibatasi hanya pada n token sebelumnya (default 128)
- Dengan ini, setiap token tetap memahami keseluruhan gambar sambil secara mandiri melacak progres OCR melalui transisi state di dalam jendela geser kausal
- Saat inferensi, KV cache dijaga tetap konstan untuk mengurangi tekanan memori dan menekan biaya komputasi
- Attention dibatasi ke jendela dua segmen berukuran m+n
- m adalah jendela prefix yang mencakup token visual dan prompt, bersifat tetap selama satu inferensi dan hanya bergantung pada jumlah halaman serta resolusi, tidak pada panjang decoding
- n adalah jendela untuk area decode, dengan ukuran tetap yang bergeser secara kausal
-
Manajemen KV cache
- Baseline DeepSeek OCR memakai MHA standar sehingga ukuran KV cache bertambah tanpa batas menjadi Lm + T
- R-SWA mempertahankan seluruh cache prefix Lm, tetapi untuk hasil generasi hanya menyimpan n token terbaru, sehingga ukuran cache menjadi Lm + min(n,T) ≤ Lm + n sebagai batas konstan
- Jika panjang output cukup besar, rasio cache ρ(T) akan konvergen ke 0 → pertumbuhan linear dipangkas menjadi konstan
-
Analisis kernel
- Dalam pengukuran kernel Flash Attention v3, MHA standar pada DeepSeek OCR menunjukkan latensi yang meningkat di setiap langkah decoding, sedangkan Unlimited OCR menjaga durasi tetap berkat R-SWA
- Pada DeepSeek OCR, ketika panjang KV cache melewati batas alignment tertentu, efisiensi transfer data turun tajam dan memunculkan spike; hal ini tidak terjadi pada R-SWA
- Memori GPU saat inferensi juga meningkat linear pada model asli, sedangkan Unlimited OCR tetap stabil — kestabilan komputasi dan memori secara bersamaan inilah yang memungkinkan parsing dokumen panjang
Arsitektur model
- Menggunakan DeepSeek OCR sebagai baseline, dengan gabungan DeepEncoder dan decoder MoE (total 3B, parameter aktif 500M)
- MHA lama diganti dengan R-SWA, dan parsing dokumen panjang diwujudkan dengan menambahkan buffer KV output berkapasitas tetap n ke cache KV referensi tetap m
- KV cache diimplementasikan sebagai antrean berkapasitas m+n; setiap kali token baru dihasilkan, KV token ke-(m+1) dikeluarkan untuk menjamin biaya dan memori tidak bertambah
-
DeepEncoder
- Mengaskadekan SAM-ViT dan CLIP-ViT, lalu menerapkan kompresi token 16x di bridge — bagian awal memproses token gambar asli dengan window attention, sedangkan global attention hanya untuk token terkompresi
- Menjaga activation tetap rendah saat mengenkode gambar resolusi tinggi untuk menghemat memori GPU, dan mengompresi gambar PDF 1024×1024 menjadi hanya 256 token
- Mengadopsi dua mode: "Base" untuk multipage (1024×1024) dan "Gundam" untuk halaman tunggal (resolusi dinamis)
- Token visual dikodekan sekali dan tetap statis sepanjang proses, tanpa mengalami transisi state bersama output
Pengaturan pelatihan
- Dilatih dengan sekitar 2 juta data OCR dokumen, dengan rasio halaman tunggal vs multipage 9:1
- PDF satu halaman dianotasi menggunakan Paddle OCR, lalu koordinat dan isi setiap blok digabung untuk membentuk ground truth, dengan koordinat dinormalisasi ke rentang 0–1000
- Data multipage disintesis dengan menggabungkan halaman tunggal, sekitar 200 ribu sampel (2–50 halaman) memakai pemisah
<page>, lalu dipacking ke dalam urutan 32K token penuh
- Tambahan pelatihan 4.000 langkah dari checkpoint DeepSeek OCR, global batch 256, urutan maksimum 32K, menggunakan 8×16 A800 GPU
- Selama pelatihan, DeepEncoder dibekukan dan hanya parameter LLM yang dilatih
- Berbasis framework AdamW optimizer, cosine annealing scheduler, learning rate awal 1e-4, DeepEP(EP=4), dan Megatron-LM
- Untuk inferensi, manajemen KV cache untuk R-SWA diimplementasikan di library Transformers, dengan dukungan optimasi pada engine SGLang — kedua framework berjalan dengan TPS dan memori GPU yang konstan
Hasil evaluasi
- Benchmark utama adalah OmniDocBench(v1.5/v1.6), yang mengevaluasi kemampuan parsing multidimensi seperti teks, rumus, struktur tabel, dan urutan baca
- v1.6 adalah versi terbaru dengan tambahan 296 gambar uji dibanding v1.5, sedangkan v1.5 menyediakan perbandingan dengan model klasik termasuk DeepSeek OCR
- Juga dibangun test set internal untuk evaluasi OCR dokumen panjang, membagi novel, dokumen, dan makalah ke kategori 2/5/10/20/40+ halaman (masing-masing lebih dari 10 buku per kategori)
-
Kinerja utama
- Hanya dengan tambahan pelatihan 2M data, model mencapai SOTA end-to-end; di v1.5 jarak edit teks turun 0.035, dan TEDS tabel naik 5.96%
- Metrik gabungan v1.6 mencapai 93.92% untuk SOTA end-to-end — membuktikan bahwa mengganti seluruh attention standar dengan R-SWA lebar 128 tetap efektif dan tanpa kehilangan kualitas
- Inferensi sangat efisien dengan 0.5B parameter aktif MoE; di mode "Base" mencapai 5580 TPS (peningkatan kecepatan 12.7% dibanding 4951 TPS pada DeepSeek OCR)
-
Analisis subkategori
- Menunjukkan peningkatan yang konsisten di semua metrik dibanding DeepSeek OCR, setara peningkatan tingkat "free lunch"
- Dibanding DeepSeek OCR 2, unggul pada 7 dari 9 kategori untuk jarak edit teks dan urutan baca
- Tidak kalah bahkan pada layout kompleks seperti PPT, surat kabar, majalah, dan catatan
-
Parsing dokumen panjang
- Dengan R-SWA, puluhan hingga ratusan halaman dapat diprefill dalam satu pass, lalu diparsing terus-menerus dari halaman pertama hingga akhir sambil menjaga KV cache tetap tetap sehingga latensi output stabil
- Tetap tangguh bahkan saat 20 halaman dimasukkan sekaligus, dan pada 40+ halaman mempertahankan jarak edit di bawah 0.11 serta Distinct-35 97%
- Error repetisi berasal dari kesulitan mode multipage "Base" (1024×1024) dalam membedakan teks kecil, bukan karena R-SWA kehilangan arah
Analisis efisiensi
- Perbandingan TPS output dalam kondisi konkurensi ideal (panjang prefill tetap 10)
- Pada 256 token, kecepatan inferensi kedua model hampir sama
- Saat panjang output bertambah, TPS DeepSeek OCR terus menurun, dan pada 6.000 token tertinggal 35% dari Unlimited OCR
- Ini menegaskan kembali bahwa kecepatan generasi yang konsisten adalah kebutuhan inti untuk tugas OCR dokumen panjang
Keterbatasan dan tugas ke depan
- Dengan panjang konteks yang terbatas (misalnya 32K), parsing yang benar-benar tak terbatas belum dimungkinkan karena ada batas panjang prefill — meskipun rasio kompresi DeepEncoder tinggi, prefill tetap memanjang seiring akumulasi halaman
- Dalam jangka pendek, direncanakan pelatihan model berkonteks lebih panjang seperti 128K untuk mendukung prefill lebih banyak halaman
- Dalam jangka panjang, tujuannya adalah membangun prefill pool, melatih model agar otomatis mengambil chunk KV prefill untuk meniru efek manusia membalik halaman, sehingga dapat mencapai OCR yang benar-benar tak terbatas
- Ada rencana menerapkan R-SWA ke tugas berbasis referensi lain seperti ASR dan terjemahan
- Model tersedia di Hugging Face dan ModelScope, dan makalahnya dipublikasikan di arXiv
1 komentar
Komentar Hacker News
Cukup menarik. Dari yang saya pahami, sepertinya para peneliti menemukan semacam rekayasa arsitektur yang mencegah AI terus menumpuk memori saat membaca dokumen panjang
Biasanya, ketika AI mentranskripsikan PDF 100 halaman, ia berusaha mengingat semua kata yang sudah dibaca, dan memori jangka pendek ini, yaitu cache KV, bertambah linear sebagai O(N) sehingga VRAM habis atau mentok batas. Karena itu, pengembang akhirnya membuat kode kasar yang memecah PDF per halaman untuk diproses lalu menggabungkannya lagi
Unlimited OCR membagi fokus menjadi dua jalur dengan Reference Sliding Window Attention (R-SWA). Satu adalah referensi global yang melihat gambar dokumen asli secara utuh, dan yang lain adalah generasi lokal yang membatasi memori teks buatan model sendiri ke jendela geser sempit seperti 128 kata terakhir. Ini tampaknya cukup menarik untuk AI lokal, dan saya penasaran apa yang akan dibuat dan dikembangkan komunitas
Sebaliknya, fakta yang sangat rinci seperti apa yang dimakan pagi ini mungkin berguna sekarang, tetapi dalam jangka panjang tidak terlalu berarti selain kecenderungan umum. Untuk merekonstruksi percakapan, kita perlu menemukan keseimbangan yang tepat tanpa menarik semua yang sudah dibahas sejauh ini, jadi pendekatan ini tampaknya layak ditelaah lebih lanjut
Baru-baru ini saya membeli tablet untuk partitur, terutama untuk menggantikan kumpulan jazz Real Book saat jam session. Hasil scan dengan kamera ponsel lumayan oke, tetapi ukurannya tetap dan banyak noda visual.
Akan bagus kalau bisa langsung transpose untuk instrumen Bb atau Eb, tetapi karena itu hasil scan, tentu saja tidak mungkin. Setelah menelusuri kondisi optical music recognition, saya sampai pada kesimpulan bahwa musik hampir merupakan wilayah yang belum tergarap dari sudut pandang AI. Optical music recognition cukup buruk, dan pemahaman AI terhadap teori musik juga buruk dalam ranah melihat partitur nyata. LLM lumayan bagus dalam penjelasan teks tentang konsep teori yang kemungkinan besar masuk ke pelatihan dari teks online.
Masalahnya tampaknya adalah masih kurangnya format digital yang benar-benar dapat mengodekan titik-titik di atas kertas yang dibaca para musisi. Notasi musik cukup kaya. MIDI dibuat terutama untuk memuat aspek yang dibutuhkan untuk playback atau performa, jadi tidak memuat semua yang diperlukan untuk pemahaman simbolik. MusicXML tampak paling dekat dengan format digital yang memuat informasi yang diinginkan musisi, tetapi kurang ada korpus pelatihan yang bagus yang menghubungkan representasi MusicXML dengan gambar partitur atau audio. Tampaknya karena MusicXML saja tidak cukup memuat informasi yang dibutuhkan untuk tata letak partitur.
Alat seperti MuseScore harus melacak banyak informasi tata letak yang tidak bisa direpresentasikan dengan MusicXML. Format LilyPond kurang bertele-tele dibanding MusicXML dan memuat sedikit lebih banyak informasi yang berguna bagi pembuat partitur, tetapi kebanyakan orang tidak membuat partitur dengan LilyPond. Tambahan lagi, kondisi font jazz di LilyPond mengecewakan. Dalam konteks jazz, saya tidak suka melihat partitur yang terasa “bergaya klasik”. Setiap kali melihat peningkatan incremental yang tampak cukup bagus pada OCR, saya jadi teringat betapa mengenaskannya OMR.
verovio dapat mengukir ke format SVG sambil mempertahankan sebanyak mungkin informasi dari partitur MEI asli, sehingga metadata yang cukup untuk membuat dataset deteksi nyata bagi model deep learning bisa diekstrak. Ada juga skrip hack kasar untuk membuat dataset COCO dari sekumpulan partitur yang diukir dengan verovio: https://github.com/kwon-young/music/blob/main/svg2pl.py
Dataset partitur sintetis yang dibuat di sini juga sudah dipublikasikan: https://www.kaggle.com/datasets/kwonyoungchoi/trompa-coco/da... Siapa pun yang ingin mencoba melatih detektor di atasnya dipersilakan. Alasan OMR dibiarkan terbengkalai seperti ini adalah karena kebanyakan orang sangat meremehkan tingkat kesulitan pekerjaan ini. Ini adalah tugas khusus yang mencampurkan bentuk yang sangat beragam dan tata bahasa grafis yang sangat kompleks.
Dalam prosesnya, jadi terasa sangat jelas, sampai menyakitkan, bahwa musik tidak pernah dianggap sebagai bagian penting dalam dataset pelatihan AI mana pun. Belakangan kemampuan Opus 4.8 untuk memahami dan menjelaskan teori musik cukup mengagumkan, tetapi kalau diminta menyalin partitur atau melakukan OCR/OMR, ia dengan percaya diri menghasilkan versi MusicXML/LilyPond setara “2 + 2 = kuda”. Saya berharap ranah yang diabaikan ini ikut tersapu gelombang AI yang makin besar, tetapi untuk saat ini ia masih diremehkan secara tidak adil.
Tentu saja ini tidak memberi semua informasi tambahan yang dibutuhkan untuk engraving atau representasi musik secara keseluruhan, tetapi ada dataset riset seperti https://github.com/smashub/choco. Untuk pekerjaan analisis, saya juga pernah memakai dataset https://github.com/MarkGotham/When-in-Rome, tetapi ini juga tidak 100% cocok dengan yang dicari. Untuk mengganti jazz standard di tablet dan kebutuhan transpose, Anda mungkin akan menyukai aplikasi “iReal Pro”. Untuk use case itu, aplikasinya cukup bagus dibanding scan kamera.
Menulis “Terima kasih kepada model dan ide berharga dari Deepseek-OCR, Deepseek-OCR-2, dan PaddleOCR” adalah sikap yang berkelas.
Sebagai referensi, “Unlimited OCR Works” adalah parodi dari Unlimited Blade Works dari Fate/stay night. Dalam karya aslinya, Unlimited Blade Works adalah sihir dengan konsep menyalin senjata buatan orang lain.
Makalahnya ada di https://arxiv.org/abs/2606.23050
Sebagai catatan, saya juga melakukan OCR lokal untuk kebutuhan RAG kecil atas kutipan yang saya baca di buku, dan saya juga membagi input menjadi chunk untuk menghemat RAM, jadi menarik bahwa pendekatan yang alami seperti ini juga berhasil pada model streaming.
Ini terlihat lebih menjanjikan daripada yang baru saja dirilis Mistral. Kebetulan? Rasanya tidak.
Pendekatan ini juga tampaknya bisa dipakai dalam beberapa kombinasi untuk generasi gambar. Sepertinya memungkinkan untuk mulai menggambar ke alat seperti Illustrator/Inkscape atau ke SVG setelah membaca atau melihat gambar, lalu mengisi bagian yang hilang nanti.
Saya penasaran bagaimana ini dibandingkan dengan infinty parser 2, yang tampaknya mengungguli alat OCR lain: https://huggingface.co/datasets/allenai/olmOCR-bench
Kalau mau adil, memang tidak ada benchmark OCR dengan satu pemenang mutlak, dan alat ini juga belum muncul di mana pun.
Mungkin aku terdengar seperti orang yang tidak paham dunia nyata, tetapi apa sebenarnya alasan perusahaan merilis perangkat lunak yang sangat bagus sebagai open source?
Kalau Baidu atau Google, bukankah seharusnya mereka menyimpannya sendiri agar pesaing tidak bisa meniru dan mereka bisa mengekstrak nilainya?
Perusahaan mendapat reputasi, dan itu membantu funnel rekrutmen. Kadang ini juga bisa menjadi langkah strategis untuk mengguncang pesaing, seperti ketika Meta merilis Ollama
Setiap upaya OCR dengan AI yang pernah kucoba selalu tercampur hasil halusinasi, jadi sulit dipakai di produksi. Aku penasaran apakah ini juga punya masalah seperti itu
Contoh sederhananya, kata-kata yang seharusnya tetap dalam bahasa lain malah otomatis diterjemahkan ke bahasa Inggris sehingga merusak hasilnya
Dalam transkripsi, yang diinginkan hampir selalu adalah hasil yang pasti benar, atau penanda yang jelas bahwa teksnya memang tidak bisa dibaca. Menebak dari konteks memang bisa, tetapi pada OCR tertentu kita perlu tahu apakah tebakan itu didasarkan pada sesuatu selain fakta bahwa huruf-huruf tersusun berurutan membentuk kata
Misalnya, pada dokumen sensus di familysearch.com, seorang penyalin “mengoreksi” nama menjadi Joseph, padahal huruf yang benar-benar tertulis di dokumen tulisan tangan itu adalah Josepth, dan itu memang varian ejaan lokal. Di dokumen lain, penulis menyingkat “Joh”, dan kemungkinan penyalin manusialah yang mengubahnya menjadi John; itu memang tebakan yang paling masuk akal, tetapi sebenarnya salah. Kadang penting untuk tahu bahwa itu hanyalah tebakan, dan kadang yang dibutuhkan hanyalah tebakan terbaik
Jika menggunakan seluruh dokumen kecuali halaman atau paragraf yang sedang diuji, kita bisa menghindari regenerasi frasa yang diuji secara mentah dari artefak gambar. Setelah rekonstruksi, lakukan perbandingan optik untuk mencocokkan karakter yang tidak selaras, lalu cari kesalahan dan ulangi prosesnya. Mahal, tetapi bisa menjamin pengenalan 100%
Output-nya mempertahankan kanji/hiragana dan bahasa Inggris di tempat yang memang diperlukan, dan tidak mencoba menerjemahkannya. Kecepatannya sekitar 200 halaman per jam
Aku tidak tahu bagaimana kabar Reducto. Sekitar 12–15 bulan lalu, itu terlihat cukup menjanjikan