งานวิจัย · arXiv 2606.23050
Unlimited OCR Works
สรุปสามบรรทัด
- 🎯 ตัวถอดรหัส OCR ที่ใช้ LLM แบบมาตรฐานประสบปัญหา KV cache เติบโตเชิงเส้นและความเร็วลดลงในระหว่างการถอดข้อความเอกสารหลายหน้าที่ยาวมาก
- 🔧 ใช้ Reference Sliding Window Attention (R-SWA) ซึ่งโทเค็นที่กำลังถอดรหัสจะเข้าถึงโทเค็นคำนำหน้า/ภาพทั้งหมดแบบโกลบอล ขณะที่คงหน้าต่างเชิงสาเหตุขนาดคงที่สำหรับเอาต์พุตล่าสุดเท่านั้น ()
- 📈 ทำคะแนนรวมได้ 93.23% บน OmniDocBench v1.5 (+6.22% เมื่อเทียบกับ DeepSeek OCR) และรักษาความหน่วงในการสร้างข้อความให้คงที่ตลอดเอาต์พุตขนาดยาว
บทคัดย่อ
เมื่อเร็ว ๆ นี้ โมเดล OCR แบบ end-to-end ซึ่งมี DeepSeek OCR เป็นตัวแทน ได้ทำให้ OCR กลับมาเป็นที่สนใจอีกครั้ง มุมมองที่ได้รับการยอมรับอย่างกว้างขวางคือ การใช้โมเดลภาษาขนาดใหญ่ (LLM) เป็นตัวถอดรหัส (decoder) ช่วยให้โมเดลสามารถใช้ประโยชน์จากการแจกแจงแบบไพรออร์ของภาษา ส่งผลให้ประสิทธิภาพของ OCR ดีขึ้น อย่างไรก็ตาม ข้อเสียก็เห็นได้ชัดเจนเช่นกัน นั่นคือเมื่อลำดับเอาต์พุตยาวขึ้น KV cache ที่สะสมจะส่งผลให้การใช้หน่วยความจำเพิ่มสูงขึ้นและทำให้การสร้างข้อความช้าลงเรื่อย ๆ ซึ่งตรงกันข้ามอย่างสิ้นเชิงกับมนุษย์ที่ไม่มีการลดลงของประสิทธิภาพดังกล่าวในระหว่างงานคัดลอกขนาดยาว ในรายงานเชิงเทคนิคนี้ เราขอนำเสนอ Unlimited OCR โมเดลที่ออกแบบมาเพื่อจำลองหน่วยความจำขณะทำงานสำหรับการแจงส่วนของมนุษย์ โดยใช้ DeepSeek OCR เป็นเส้นฐาน เราแทนที่เลเยอร์แอตเทนชันทั้งหมดในตัวถอดรหัสด้วย Reference Sliding Window Attention (R-SWA) ที่เรานำเสนอ ซึ่งช่วยลดต้นทุนการคำนวณแอตเทนชันในขณะที่รักษา KV cache ให้คงที่ตลอดกระบวนการถอดรหัสทั้งหมด ด้วยการรวมอัตราการบีบอัดระดับสูงของตัวเข้ารหัสใน DeepSeek OCR เข้ากับการออกแบบ KV cache คงที่ของเรา Unlimited OCR สามารถถอดข้อความเอกสารหลายสิบหน้าได้ในการส่งต่อครั้งเดียว (single forward pass) ภายใต้ความยาวสูงสุดมาตรฐานที่ 32K ที่สำคัญยิ่งกว่านั้น R-SWA ยังเป็นกลไกแอตเทนชันสำหรับการแจงส่วนที่ใช้งานได้ทั่วไป ซึ่งนอกเหนือจาก OCR แล้ว ยังสามารถนำไปประยุกต์ใช้กับงานอย่าง ASR, การแปลภาษา ฯลฯ ได้เช่นเดียวกัน โค้ดและน้ำหนักของโมเดลเปิดให้ใช้งานแบบสาธารณะที่ http://github.com/baidu/Unlimited-OCR
บทคัดย่อต้นฉบับ (ภาษาอังกฤษ)
Recently, end-to-end OCR models, exemplified by DeepSeek OCR, have once again thrust OCR into the spotlight. A widely held view is that employing a large language model (LLM) as the decoder allows the model to leverage the prior distribution of language, leading to improved OCR performance. However, the downside is equally evident: as the output sequence lengthens, the accumulated KV cache drives up memory consumption and progressively slows down generation. This stands in stark contrast to humans, who exhibit no such decline in efficiency during long-horizon copying tasks. In this technical report, we propose Unlimited OCR, a model designed to emulate human parsing working memory. Taking DeepSeek OCR as the baseline, we replace all attention layers in the decoder with our proposed Reference Sliding Window Attention (R-SWA), which reduces attention computation costs while maintaining a constant KV cache throughout the entire decoding process. By combining the high compression rate of DeepSeek OCR's encoder with our constant KV cache design, Unlimited OCR can transcribe dozens of pages of documents in a single forward pass under a standard maximum length of 32K. More importantly, R-SWA is a general-purpose parsing attention mechanism - beyond OCR, it is equally applicable to tasks such as ASR, translation, etc. Codes and model weights are publicly available at http://github.com/baidu/Unlimited-OCR.
คู่มือการอ่าน
ปัญหาและแรงจูงใจ
มนุษย์สามารถคัดลอกเอกสารหลายร้อยหน้าหรือแปลเสียงยาวหลายชั่วโมงได้อย่างต่อเนื่องโดยที่ความเร็วไม่ลดลง โดยใช้หน่วยความจำขณะทำงาน (working memory) เพื่อติดตามบริบทเฉพาะที่ ในขณะที่ข้อมูลต้นฉบับยังคงเข้าถึงได้เสมอ ในทางกลับกัน โมเดลภาษาขนาดใหญ่หลายรูปแบบ (MLLMs) และระบบ OCR แบบหนาแน่นในปัจจุบันประสบปัญหากับการแจงส่วนในระยะยาว ระบบที่มีอยู่มักจะประมวลผลเอกสารหลายหน้าด้วยวิธี for-loop ทีละหน้า ซึ่งจะรีเซ็ตหน่วยความจำในทุกขั้นตอน จึงเป็นเพียงทางแก้ปัญหาเชิงวิศวกรรมมากกว่าการประมวลผลอย่างต่อเนื่องที่แท้จริง
เมื่อโมเดลแบบ end-to-end พยายามถอดรหัสลำดับขนาดยาว multi-head attention (MHA) แบบมาตรฐานจะสะสม key-value (KV) cache เพิ่มขึ้นเชิงเส้นตามความยาวเอาต์พุต สิ่งนี้ทำให้การใช้หน่วยความจำ GPU เพิ่มขึ้นเรื่อย ๆ และความหน่วงลดลง โมเดล linear attention ที่มีการอัปเดตแบบวนซ้ำ (recurrent updates) ก็ล้มเหลวเช่นกันเนื่องจากการอัปเดตสถานะแบบวนซ้ำจะค่อย ๆ ทำให้ฟีเจอร์อ้างอิงทางภาพเลือนรางลง
แนวคิดหลัก
- Reference Sliding Window Attention (R-SWA): โทเค็นที่ถูกสร้างขึ้นจะเข้าถึงโทเค็นอ้างอิงคำนำหน้าแบบสแตติกทั้งหมด (การแทนค่าภาพและคำสั่ง) แบบโกลบอล ในขณะที่เข้าถึงเฉพาะโทเค็นเอาต์พุตก่อนหน้า โทเค็นในระดับท้องถิ่น (ค่าเริ่มต้นคือ )
- KV Cache คงที่สำหรับการถอดรหัส: ด้วยการขับโทเค็นที่เก่ากว่า ออกจากบัฟเฟอร์การสร้างข้อความผ่านคิว FIFO ขนาดของแคชการถอดรหัสจึงถูกจำกัดขอบเขตบนไว้อย่างเข้มงวดที่ ทำให้มั่นใจได้ว่าความหน่วงต่อสเต็ปและการใช้หน่วยความจำ GPU จะคงที่
- คำนำหน้าทางภาพที่มีการบีบอัดสูง: เมื่อจับคู่กับ DeepEncoder จาก DeepSeek OCR (ซึ่งบีบอัดภาพขนาด ลงถึง เหลือเพียง 256 โทเค็น) เอกสารหลายสิบหน้าสามารถ prefill ได้ในการประมวลผลรอบเดียวโดยไม่เกินขีดจำกัดบริบทมาตรฐาน
วิธีการ
Unlimited OCR สร้างขึ้นบนฐานของ DeepSeek OCR โดยยังคง DeepEncoder ที่ถูกแช่แข็งไว้ (การต่อเรียงกันของ SAM-ViT และ CLIP-ViT) จับคู่กับตัวถอดรหัส LLM แบบ Mixture-of-Experts (MoE) ขนาด 3B พารามิเตอร์ (เปิดใช้งาน 500M พารามิเตอร์) เลเยอร์ MHA มาตรฐานทั้งหมดในตัวถอดรหัสจะถูกแทนที่ด้วย R-SWA
สูตรทางคณิตศาสตร์
สำหรับโทเค็นที่ถูกสร้างขึ้นที่ขั้นตอนการถอดรหัส เซตแอตเทนชันที่เข้าถึงได้ ประกอบด้วยสองส่วน:
โดยที่ คือส่วนคำนำหน้าแบบสแตติกที่มีความยาว และ คือ causal sliding window เหนือโทเค็นที่ถูกสร้างขึ้น:
ค่าน้ำหนักแอตเทนชัน จากโทเค็น ไปยังตำแหน่ง คือ:
การแทนค่าเอาต์พุตจะถูกรวบรวมจากเซตที่เข้าถึงได้:
การปรับขนาดของ KV Cache
ในขณะที่ MHA มาตรฐานจะขยายขนาดเชิงเส้นตามความยาวการถอดรหัส () R-SWA จะจำกัดความจุของแคชไว้:
เมื่อขั้นตอนการถอดรหัสครอบงำ ( และ ) อัตราส่วนแคชสัมพัทธ์จะเข้าใกล้ศูนย์:
ผลลัพธ์
- OmniDocBench v1.5: Unlimited OCR ได้รับคะแนนรวม 93.23% (เพิ่มขึ้นสัมบูรณ์ 6.22% เมื่อเทียบกับ DeepSeek OCR ที่ 87.01%) โดยลด Text Edit Distance จาก 0.073 เหลือ 0.038 และเพิ่มคะแนน Table TEDS จาก 84.97% เป็น 90.93%
- OmniDocBench v1.6: ทำคะแนนรวมได้ 93.92% ซึ่งเทียบเท่าหรือเหนือกว่าโมเดลแบบ end-to-end ในยุคปัจจุบันอย่าง Qianfan-OCR (93.90%) และ FireRed-OCR (93.26%)
- ความเร็วในการอนุมาน: ในการทดสอบบน OmniDocBench Unlimited OCR มีอัตราการประมวลผล 5,580 TPS เทียบกับ DeepSeek OCR ที่ทำได้ 4,951 TPS (เร็วขึ้น 12.7%) ภายใต้การทำงานพร้อมกันสูงสุดทางทฤษฎีที่ 6,144 โทเค็นที่สร้างขึ้น Unlimited OCR สามารถทำได้ถึง 7,847.71 TPS ในขณะที่ DeepSeek OCR ลดลงเหลือ 5,822.87 TPS (ช่องว่างประสิทธิภาพ 35%)
- OCR เอกสารหลายหน้าขนาดยาว: จากการประเมินบนหนังสือหลายหน้า Unlimited OCR ทำค่า Edit Distance ได้ 0.0362 ใน 2 หน้า, 0.0572 ใน 20 หน้า และ 0.1069 ใน 40+ หน้า (คงค่า Distinct-35 ไว้ได้ 96.90%)
ข้อจำกัดและคำถามปลายเปิด
- คอขวดของ Prefill: ปัจจุบันโมเดลยังคงถูกจำกัดโดยความยาวบริบทอินพุตสูงสุด (32K โทเค็น) แม้ว่า DeepEncoder จะบีบอัดเอกสารหนึ่งหน้าเหลือ 256 โทเค็น แต่เอกสารหลายร้อยหน้าก็ยังคงใช้หน่วยความจำ prefill เป็นจำนวนมาก
- คุณภาพลดลงเมื่อข้อความมีขนาดเล็ก: ในการตั้งค่าหลายหน้า การใช้โหมด Base ขนาด 1024×1024 ของ DeepEncoder ทำให้เกิดข้อผิดพลาดในการรู้จำฟอนต์ขนาดเล็กมากเนื่องจากข้อจำกัดด้านความละเอียด ไม่ใช่เพราะการสูญเสียหน้าต่างแอตเทนชัน
- พูล Prefill ภายนอก: งานในอนาคตจะสำรวจการเทรนบนบริบท 128K และการสร้างกลไกการดึง KV ของ prefill แบบไดนามิกอัตโนมัติซึ่งจำลองการเปิดพลิกหน้าเอกสาร
คำศัพท์สำคัญ
- Reference Sliding Window Attention (R-SWA)
- กลไกแอตเทนชันที่แต่ละโทเค็นในการถอดรหัสจะเข้าถึงโทเค็นคำนำหน้า/ภาพแบบสแตติกทั้งหมดในระดับโกลบอล และเข้าถึงโทเค็นที่ถูกสร้างขึ้น โทเค็นก่อนหน้าในระดับท้องถิ่น
- DeepEncoder
- ตัวเข้ารหัสภาพที่ต่อเรียงกันระหว่าง SAM-ViT และ CLIP-ViT ซึ่งมีอัตราการบีบอัดโทเค็นสูงถึง 16 เท่า โดยบีบอัดภาพขนาด 1024x1024 ให้เหลือเพียง 256 โทเค็นภาพ
- Constant KV Cache
- โครงสร้างแคชการถอดรหัสที่ถูกจำกัดไว้ไม่เกิน โทเค็น โดยใช้คิวการขับออกตามลำดับ FIFO ทำให้หน่วยความจำ GPU และความหน่วงต่อสเต็ปคงที่
- Long-horizon Parsing
- การถอดข้อความหรือแจงส่วนเอกสารหลายหน้าอย่างต่อเนื่อง (เช่น 20 ถึงมากกว่า 40 หน้า) ภายในการประมวลผลรอบเดียวโดยไม่หยุดชะงัก
- OmniDocBench
- เบঞ্চมาร์กการแจงส่วนเอกสารรอบด้านที่ประเมินระยะการแก้ไขข้อความ (edit distance), CDM ของสูตร, โครงสร้างตาราง (TEDS) และลำดับการอ่าน
- Flash Attention v3 Kernel Latency
- ระยะเวลาการทำงานของเคอร์เนลต่อสเต็ประหว่างการถอดรหัส ซึ่งจะเพิ่มขึ้นเชิงเส้นใน MHA แบบมาตรฐาน แต่จะคงที่เมื่อใช้ R-SWA
- Distinct-n
- เมทริกซ์ความหลากหลายที่นิยามโดยอัตราส่วนของ n-grams ที่ไม่ซ้ำกันต่อ n-grams ทั้งหมด ซึ่งใช้เพื่อวัดการเกิดภาพหลอนหรือการสร้างลูปข้อความซ้ำ ๆ
คำถามที่พบบ่อย
ความกว้างของ sliding window เริ่มต้น $n$ ใน Unlimited OCR คือเท่าใด?
หน้าต่างการถอดรหัสเชิงสาเหตุ มีค่าเริ่มต้นอยู่ที่ 128 โทเค็น ซึ่งเพียงพอต่อการติดตามความคืบหน้าและความต่อเนื่องภายในหน้าเอกสาร
R-SWA แตกต่างจาก Sliding Window Attention (SWA) แบบดั้งเดิมอย่างไร?
SWA แบบดั้งเดิมจะใช้หน้าต่างระดับท้องถิ่นครอบคลุมทุกโทเค็น ซึ่งจะทิ้งหรือค่อย ๆ เบลอโทเค็นอ้างอิงทางภาพ แต่ R-SWA จะรักษาโทเค็นภาพ/คำนำหน้าทั้งหมดให้สามารถเข้าถึงได้แบบโกลบอลโดยไม่มีการเปลี่ยนสถานะ ขณะที่จะเลื่อนหน้าต่างเฉพาะบนข้อความที่สร้างขึ้นเท่านั้น
มีพารามิเตอร์ที่ถูกเปิดใช้งานจำนวนเท่าใดในระหว่างการอนุมาน?
Unlimited OCR ใช้สถาปัตยกรรม MoE ที่มีพารามิเตอร์รวม 3B โดยเปิดใช้งานเพียง 500M พารามิเตอร์ในระหว่างการอนุมาน
เหตุใด DeepSeek OCR จึงช้าลงเมื่อความยาวเอาต์พุตเพิ่มขึ้น ในขณะที่ Unlimited OCR ไม่เป็นเช่นนั้น?
DeepSeek OCR พึ่งพา MHA แบบมาตรฐานซึ่งขนาดของ KV cache จะเติบโตตามความยาวของลำดับ ทำให้การคำนวณแอตเทนชันและโอเวอร์เฮดของหน่วยความจำเพิ่มขึ้น ในขณะที่ Unlimited OCR รักษา KV cache ให้คงที่อยู่ที่ จึงสามารถรักษาความหน่วงให้คงที่ในทุก ๆ สเต็ปได้
คำอธิบายในหน้านี้เขียนโดย AI จากงานวิจัยและอาจมีข้อผิดพลาด โปรดอ่านต้นฉบับเพื่อดูรายละเอียด