Kalbant apie „ilgąjį kontekstą turinčią dirbtinį intelektą“, visi tvirtina, kad jį turi – kol nepateiki detalizuoto klausimo apie 47 puslapį. Tada staiga atmintis tampa kaip su galvos trauma sergančio auksinės žuvelės. DeepSeek‑OCR atsiduria vidury šios sumaišties su paprasta, bet tvirta teze: suspausk svarbiausią informaciją, išlaikyk struktūrą ir nebešvaistyk tokenų kaip 2023-iaisiais. Pažadas nėra „geresnis OCR“. Tai OCR, gerbiantis dokumento išdėstymą ir neapkraunantis tavo konteksto lango šiukšlėmis.
Ir taip, tai būtent tai, ką dauguma vadinamųjų ilgą kontekstą palaikančių sprendimų daro neteisingai. Jie į modelį tiesiog krauna žalią tekstą ir tuo baigia. Dienos pabaigoje gauni tik haliucinacijas.
Pažiūrėkime, kaip integruoti DeepSeek‑OCR į tikrą ilgą konteksto grandinę – tokią, kuri iš tiesų keičiasi, taupo skaičiavimo resursus ir nesugriūna, kai PDF faile yra lentelių, paantraščių ar, dieve, teisinių priedų.
Kodėl DeepSeek‑OCR yra kitoks (ir naudingas)
- Išdėstymas yra duomenys: ilgi dokumentai nėra tik tekstas, tai erdviniai argumentai. Antraštės, stulpeliai, lentelės, paveikslėlių antraštės – visa tai turi prasmę. DeepSeek‑OCR siekia išlaikyti tą struktūrą kaip svarbiausią elementą, kas būtent ir leidžia ilgakontekstiniams modeliams orientuotis šimtuose puslapių neprarandant esmės.
- Spaudimas be lobotomijos: tikslas – ne sutalpinti viską į 8K tokenų langą, o išlaikyti signalą – tankų, struktūruotą, lengvai naviguojamą – ir sumažinti likusį triukšmą.
- Jis gerai dera su kitais žingsniais: RAG, santraukų kūrimu, ilgakontekstiniais transformatoriais ar net agentais. Kuo geresnis tavo OCR sluoksnis, tuo mažiau tavo paieškos ir samprotavimo sluoksniai turi gailėtis dėl klaidų.
Ką kuriate: ilgakontekstė grandinė su stuburu
Įsivaizduok grandinę kaip penkis etapus, kiekvienas gerai atliekantis savo darbą:
- 1. Priėmimas ir normalizacija
- Įvesties tipai: PDF failai (gimę skaitmeniniu būdu arba nuskaityti), vaizdai, TIFF nuskaitymų formatai, netvarkingi office eksportai.
- Paruošimas: pašalinti pasvyrimą, triukšmą, prireikus binarizuoti, nuosekliai skaidyti puslapius. Išlaikyti puslapio metaduomenis – puslapio numerius, šaltinio failą, skyriaus ankerius.
- Išvesties tikslas: vaizdai ar puslapio drobės numatomais formatais (PNG arba JPEG) su stabilia DPI.
- Paleisti DeepSeek‑OCR kiekvienam puslapiui, kad išgauti:
- Teksto fragmentai su ribinėmis dėžutėmis (x, y, plotis, aukštis)
- Bloko tipai: antraštės, pastraipos, sąrašai, lentelės, paveikslai, paantraštės
- Skaitymo tvarka ir hierarchinė struktūra (dokumentų medis)
- Išlaikyti tiek žalią tekstą, tiek išdėstymo ypatybes. Jei galima eksportuoti tokenų lygio žemėlapį – išsaugoti. Lentelės turi būti struktūrizuotos (CSV/HTML) ir susietos su koordinates turinčiais žemėlapiais.
- 3. Layout-algoritmu grindžiamas suspaudimas
- Gudrybė: suspausti pagal bloko svarbą, o ne tiesiog apkarpyti tokenus.
- Heuristikos, kurios iš tikrųjų veikia:
- Antraštės ir skyriaus santraukos: išlaikyti žodžiu žodį.
- Pastraipos: pasirinkti sakinius naudojant lengvą rangiravimo modelį (BM25/ColBERT stiliaus ar mažą vietinį kodavėją).
- Lentelės: išsaugoti antraštes ir kintamiausias (top-k) eiles, skaitines stulpelių reikšmes palikti nepakitusias; pilną lentelę laikyti atskirai.
- Paveikslų antraštės ir paantraštės: išlaikyti; mažai tokenų, daug prasmės.
- Sugeneruoti du artefaktus:
- Kompaktišką, išdėstymą gerbiantį naratyvinį kontekstą: 10–20% originalių tokenų, nuoseklų ir lengvai naršomą.
- Papildomą indeksą: nuorodos iš suspaustų fragmentų į pilnos kokybės blokus.
- 4. Paieška ir maršrutizavimas (RAG kaip suaugusiųjų požiūris)
- Tankūs vektoriai semantinei paieškai sakiniuose/pastraipose.
- Retas indeksas (BM25) tiksliam paieškos vykdymui – kodams, citatoms, identifikatoriams.
- Lentelių specifinis indeksas: eilutės ir langelio įterpimai skaitiniams užklausimams.
- Raktažodžių užpildytos užklausos → pirmiausia retas indeksas, paskui persvarstymas naudojant tankų.
- Analitiniai arba 'kodėl' klausimai → pirmiausia tankus indeksas, persvarstyti su retomis nuorodomis.
- Lentelių/matematikos užklausos → tiesiogiai į lentelių indeksą su eilutės/stulpelio kilme.
- 5. Ilgakontekstinis samprotavimas
- Ilgakontekstis LLM holistiniams prašymams (politikos dokumentai, RFP, moksliniai straipsniai).
- Žingsnis po žingsnio, įrankius naudojantis agentas daugiažingsniams užduotims: paieška → analizė → patikrinimas → citavimas.
- Niekada nešviesk viso kompaktiško naratyvo vienu metu į modelį. Sudėk kontekstą „laiku“: aukščiausio prioriteto skyriai pagal intenciją, aktualios lentelės ir artimos pastraipos. Sujunk su kelrodžiais (skyriaus pavadinimai, puslapio nuorodos, paveikslų ID).
Išėjimas: atsakymai su įrodymais. Kiekvienas teiginys susietas su bloko ID, puslapio numeriu ir koordinačių diapazonu, kurį galima pažymėti originaliame PDF. Tai sukuriama pasitikėjimo.
Praktinis planas: nuo žalių PDF iki ilgo konteksto atsakymų
1 etapas: dokumentų priėmimas
- Patikrinti failą: jei apsaugotas slaptažodžiu arba sugadintas – greitai atmesti.
- Paversti į puslapio vaizdus fiksuotu DPI (300 – tinka, 200 – greitesniam darbui).
- Išlaikyti puslapių hash’us, kad būtų galima talpinti OCR rezultatus.
2 etapas: DeepSeek‑OCR paleidimas
- Grupuoti puslapius GPU prieigos optimizavimui.
- Ištraukti blokus ir skaitymo tvarką. Normalizuoti koordinates į vieningą puslapio erdvę.
- JSON: bloku sąrašas su tipu, tekstu, ribinėmis dėžutėmis, puslapiu.
- Lentelės kaip CSV/HTML su ribinių dėžučių žemėlapiu kiekvienam langeliui.
- Pasirinktinė Markdown versija su išdėstymo užuominomis (## antraštėms, :::table lentelėms ir pan.).
3 etapas: po OCR valymas
- Sujungti pertrūkiais suskeltus žodžius.
- Išspręsti stulpelius: jei puslapyje yra du stulpeliai, užtikrinti, kad skaitymo tvarka atitiktų stulpelių eilę.
- Nustatyti antraštes pagal šriftų dydį/ar stilių, jei jų nėra; sukurti turinio lentelės struktūrą.
- Pašalinti pasikartojančias antraštes/poraštes (dažna nuskaitytuose sutarčių dokumentuose).
4 etapas: suspaudimas išlaikant struktūrą
- Pastraipas skaidyti į sakinius. Įvertinti sakinius pagal pigų rangiravimo modelį, treniruotą tavo srityje.
- Išlaikyti aukšto įvertinimo sakinius; visada palikti pirmą sakinį po kiekvienos antraštės.
- Lentelės: išlaikyti antraštės eilių + top-k kintamiausių eilių su nuoroda į pilną lentelę.
- Gauti kompaktinį naratyvą ir indeksą, susiejantį kiekvieną išlaikytą sakinį su originalu.
5 etapas: indeksavimas
- Tankūs įterpimai sakiniams (jei reikia, naudoti stiprų daugiakalbį modelį).
- Retas indeksas pilnam korpusui (pavadinimai, antraštės, kodai, citatos, identifikatoriai, vienetai).
- Lentelių įterpimai eilutėse ir langeliuose; įrašyti skaitines statistikas (min, max, vidurkis) greitai filtravimui.
- Saugoti kilmę: doc_id, puslapis, ribinė dėžutė, bloko ID.
6 etapas: užklausų maršrutizavimas ir paieška
- Klasifikuoti užklausos tikslą: paieška, analizė, lentelių skaičiavimai, palyginimai.
- Vykdyti atitinkamą paieškos receptą:
- Paieška: retas → tankus persvarstymas.
- Analizė: tankus → kaimyniniai skyriai.
- Lentelių skaičiavimai: lentelių indeksas + eilučių filtrai; pridėti gretimą tekstą kontekstui.
- 3–6 rasti fragmentai (su antraštėmis ir puslapio nuorodomis)
- Jei reikia, 1–2 mažos lentelės ar apskaičiuoti statistiniai duomenys
- Laikyti prašymų ilgį modelio ribose. Ilgas kontekstas nėra begalinis.
7 etapas: atsakymų sintezė su citatomis
- Prašyti struktūruoto atsakymo: suskirstyto į skyrius su įterptomis citatomis, pvz., [Doc §2.3, p. 47, tbl A].
- Sudėtingiems teiginiams paleisti patikros etapą: pakartotinai ieškoti tikslių fragmentų, užduoti taikytą klausimą, suderinti prieštaravimus.
- Grąžinti atsakymą su kilmės žymekliu, kurį vartotojai gali atidaryti.
Veikimo pastabos, taupančios tikrus pinigus
- Nenaudok GPU YOLO principu: OCR yra alternatyviai I/O ir GPU ribotas. Grupėk pagal puslapių skaičių ir normalizuok vaizdų dydžius, kad maksimaliai išnaudotum branduolių pakartotinį naudojimą.
- Labai talpink: jei šaltinio dokumentas nesikeitė, neperdirbk OCR. Turinio hashas skaičiuojamas pagal puslapio bitmatą, o ne failą.
- Lentelės – landminos: jos padidina tokenų skaičių ir mažina kokybę. Ištraukti jas tvarkingai ir nelaikyti bendrame kontekste, nebent klausimas tiesiogiai to reikalauja.
- Fragmentavimas nėra dogma: fragmentuoti pagal išdėstymą (antraštės, pastraipos), o ne pagal tokenų ilgį. Tokenų ilgis fragmentuojant pakenkia argumentų struktūrai.
- Tikrinti prieš santraukinimą: nesantraukinti dviprasmiškų fragmentų, kol paieška neapriboja konteksto; kitaip suspausi klaidingą turinį.
Klaidų tvarkymas: neįžymūs, bet svarbūs dalykai
- Sugedę PDF: bandyti atkurti rasterizaciją. Jei nepavyksta – grąžinti diagnostikos artefaktą. Tyli klaida geriau nei joks atsakymas.
- Prasta kokybė nuskaitymai (faksų kokybės): bandyti triukšmo pašalinimą / kontrasto padidinimą; jei pasitikėjimas krenta žemiau ribos, pažymėti žmogiškam peržiūrėjimui. Pripažinti nežinojimą.
- Ne lotyniški raštai: įsitikinti, kad OCR modelis palaiko tavo rašto sistemą; jei ne – nukreipti į specializuotą OCR variantą.
- Lentelės, kurios atrodo kaip menas: jei lentelės aptikimas nepavyksta, nepriekaištauk; traktuok kaip paveikslą su antrašte ir grąžink žinutę „reikia rankinės ekstrakcijos“.
Duomenų modelis: laikyk žemėlapį kartu su teritorija
- plotis/aukštis, dpi, hash
- tipas: antraštė/pastraipa/sąrašas/lentelė/paveikslas/paantraštė
- tekstą (pasirinktinai), ribinė dėžutė, tvarka, stiliaus užuominos
- eilutės, stulpeliai, langelių tekstai, langelių ribinės dėžutės, antraščių žymos
- doc_id, puslapis, bloko_id, poslinkiai, ribinė dėžutė
Saugumas ir atitiktis
- Nesiųsk jautrių PDF į trečiųjų šalių API, jei tavo politika to neleidžia. Jei būtina, šifruok duomenų perdavimo ir saugojimo metu.
- Jei įmanoma, raudonuok asmeninę informaciją OCR žingsnyje – ribinių dėžučių raudonumas yra stipresnis už vėlesnį simbolių maskavimą.
- Registruok paieškas ir atsakymų generavimą be turinio įrašymo, jei tai draudžiama. Laikyk hash’us ir ID, ne žalią tekstą.
Ilgakontekstinių modelių pasirinkimai (be perdėto šurmulio)
- Jei dažniausiai klausimai yra „kur tai sakoma X“, prioritetą teik paieškai ir citavimui, o ne konteksto ilgiui. Trumpas, tikslus kontekstas geriau nei 1 milijono tokenų haliucinacija.
- Jei tavo dokumentai yra naratyviniai (tyrimai, ataskaitos), ilgakontekstiai modeliai padeda, bet tik vadovaujant skyrių struktūrai.
- Lentelėmis apkrauti darbų srautai reikalauja „dvigalvio“ sprendimo: kalbos modelio prozei, lengvo programos sprendimo aritmetikai ir filtravimui.
Versijavimas ir pasislinkimas
- OCR gerėja; dokumentai keičiasi; įterpimai kinta. Vesk versijas:
- OCR variklio versija ir konfigūracija
- Kai keičiasi bet kuri versija, atlik inkrementinį perskaičiavimą. Laikyk seną ir naują versijas, kol neįrodyta ekvivalencija.
Programuotojo integracijos eskizas
- Darbuotojas 1: priėmimas → puslapių renderinimas → eilės sudėjimas.
- Darbuotojas 2 (GPU): DeepSeek‑OCR kiekvienam puslapiui → struktūruotas JSON → lentelės.
- Darbuotojas 3: valymas + išdėstymo medis → suspaudimas.
- Darbuotojas 4: indekso kūrimas (tankus + retas + lentelės) → publikavimas.
- Servisas: užklausų maršrutizavimas → paieška → prašymų sudarymas → LLM → patikrinimas → atsakymas.
- Saugykla: objektų saugykla puslapių vaizdams ir papildomiems failams; DB blokams ir kilmei; vektoriniai ir reti indeksai.
Žodis apie įrankius, kurie nesukuria chaoso
Mažiausiai blizgantis, bet esminis komponentas yra kokybiškas OCR, gerbiantis išdėstymą, indeksas, galintis pasakyti „nežinau“, ir prašymų generatorius, kuris vengia persistengimo. Tai užduotis. Jei nori tai įdiegti praktiniame darbe – pvz., santraukinant sutartis, peržiūrint 300 puslapių RFI ar auditui SOP, Sider.AI veikia kaip klijai tarp OCR, paieškos ir ilgakontekstinių prašymų. Naudok jį kaip griežtą vadovą, o ne stebuklininką. Jis koordinuoja: priėmimo užduotis, fragmentavimo politikas, modelių pasirinkimą ir „patikrink prieš patikėdamas“ ciklą. Jis atsiperka, kai reikia išplečiamų užduočių komandose ir rezultatų pakartojamumo. „Spąstai“, į kuriuos pasikliusite iki penktadienio
- Per didelis suspaudimas: per daug iškratai ir atsakymai praranda niuansus. Stebėk atsakymo ilgį/apimtį; pridėk atsarginį variantą iškviesti visą bloką, kai pasitikėjimas sumažėja.
- Per didelė paieška: į prašymą įtrauki 60 fragmentų ir peržengi konteksto ribas. Ribok ir link įvesti šalia esančius skyrius (kaimyniniai skyriai – auksas).
- Lentelių iliuzijos: modelis įtikinamai cituoja skaičių, bet iš netinkamos eilutės. Visada pateik lentelės fragmentus su eilutės raktu prašyme.
- Dvigubi puslapiai: nuskaitymo darbo srautai dažnai kartoja. Hask puslapius; pašalink dublikatus puslapių lygyje prieš mokant už OCR.
- Kryžminės nuorodos ir paantraštės: jos neša teisines svarbias pastabas. Niekada neatmesk paantraščių politikos/teisės dokumentuose; laikyk jas kontekste su mažai tokenų.
Kokybės metrikos, kurios meluoti nemoka
- Top-k citavimo tikslumas: ar cituotas blokas iš tiesų palaiko teiginį?
- Lentelės langelio tikslumas: teisingų langelių nuorodų procentas skaitiniuose atsakymuose.
- Suspaudimo tikslumas: ROUGE/LFQA stiliaus sutapimų matuoklis tarp suspausto naratyvo ir originalo pagal skyrių.
- Užklausos latencija apkrovos sąlygomis: P95 end-to-end, ne tik LLM laikas.
- Žmogiškas pasitikėjimo rodiklis: ar vartotojai priima ar atmeta atsakymus iš pirmo žvilgsnio? Tai vienintelė metrika, prognozuojanti priėmimą.
Minimalus veikiantis pavyzdys (koncepcinis)
- Įvestis: 180 puslapių pirkimų specifikacija su priedais ir penkiomis sudėtingomis lentelėmis.
- Paleidi DeepSeek‑OCR; jis išmeta struktūruotus blokus su dėžutėmis ir patikimu TOC.
- Suspaudimas išlaiko visas antraštes, pirmuosius sakinius ir svarbias lentelių eiles. Papildomas indeksas nukreipia atgal į visus išlaikytus fragmentus.
- Vartotojas klausia: „Kurioje skiltyje nustatomas elektros komponentų garantijos terminas?“
- Maršrutizatorius pasirenka retą → tankų paiešką.
- Paieška grąžina du skyrius ir vieną priedą.
- Prašyme pateikiamos antraštės ir pastraipos su įterptomis citatomis.
- Modelis atsako: „Skiltis 4.2.1, p. 67: ‚Elektros komponentams suteikiama ne mažesnė kaip 36 mėnesių garantija…‘“ su nuoroda, kuri paryškina tikslų tekstą.
- Vartotojas klausia: „Koks bendras galios biudžetas lentynose?“
- Maršrutizatorius pasirenka lentelių indeksą. Jis ištraukia tinkamas eilutes, sumuoja du stulpelius paprastu įrankiu ir cituoja lentelę B‑3 su eilučių raktais. Nėra haliucinacijos atliekant skaičiavimus.
Kodėl šis metodas veikia, kai kiti ne
Nes OCR, paiešką ir samprotavimą traktuoja kaip atskirus darbus su sutartimi tarp jų. DeepSeek‑OCR suteikia struktūrą; suspaudimas išlaiko prasmę; paieška suranda tinkamus įrodymus; ilgakontekstis modelis sujungia visa tai, neužpildydamas nereikšmingu turiniu. Pramonės standartas – mesti viską į didesnį langą ir melstis. Maldos nėra strategija.
Jei skubate, skubėkite paskutinę minutę
- Lentelių ištraukimas: jei čia skubėsite, visi tolesni etapai paveldės chaosą.
- Kilmės žymėjimas: vartotojai atleidžia lėtumą ar net retas klaidas; bet neatleidžia atsakymų, kurių negali patikrinti.
- Talpinimas ir hashas: debesijos sąskaita atleis, jei atliksi tinkamai.
Dialektinis klausimas: ar tikrai reikia ilgakonteksto?
Kartais ilgasis kontekstas yra įrankis netinkamai paieškai. Jei klausimai siauri ir tikslūs, investuok geresnį indeksavimą ir mažesnius kontekstus. Ilgasis kontekstas spindi, jei reikia sintetinti skyrius – politikos išimtys, kryžminės nuorodos, literatūros apžvalgos. Kitaip mokėsi už dėmesį, kurio nereikia.
Jei tikrai reikia „perskaityti viską“ supratimo? Neprašyk modelio laikyti visko atmintyje. Sadalink procesą: santrauka → paieška → pagrįstinimas. Net žmonės taip daro.
Apibendrinimas: atnešk įrodymus arba nedramstyk
DeepSeek‑OCR integravimas į ilgakonteksto grandinę nėra apie didesnių langų dievinimą. Tai apie dokumentų kaip erdvinių argumentų pagarbą, skoningo suspaudimo panaudojimą, tikslingą paiešką ir atsakymų pateikimą su įrodymais. Padaryk tai, ir tavo grandinė nustos apsimesti, kad prisimena 47 puslapį – ji tai įrodys.
Sider.AI, jei naudojamas apgalvotai, padaro tai praktiška: koordinuoja etapus, palaiko nuoširdžius prašymus ir užtikrina discipliną, kurios ilgakonteksto darbai išties reikalauja. Jei atrodo neįspūdingai – gerai. Įspūdinga yra galimybė gauti atsakymus, kuriais gali pasitikėti. DUK
K1: Koks greičiausias būdas integruoti DeepSeek‑OCR į ilgakonteksto grandinę?
Traktuok OCR kaip GPU paslaugą su griežtu talpinimu, tada suspausk pagal išdėstymą (antraštės, pastraipos, lentelės) prieš paiešką. Pridėk hibridinį indeksą (tankus + retas + lentelės) ir rink kontekstą „laiku“, o ne įkišk visą dokumentą vienu metu.
K2: Ar man tikrai reikia ilgakonteksto modelių, jei naudoju DeepSeek‑OCR?
Ne visada. Jei klausimai tikslūs, geresnė paieška ir citatos geriau nei didelis kontekstas. Ilgakontekstis atsiperka, kai reikia sintetinti skyrius, ne kai ieškai vieno punkto 67 puslapyje.
K3: Kaip tvarkytis su lentelėmis, kad nepadidėtų tokenų skaičius?
Ištrauk lenteles struktūruotai, išlaikyk antraštes ir kelias aukštos informacijos eiles, pilną lentelę laikyk atskirai. Lentelių klausimus nukreip į lentelių indeksą ir į prašymą įtrauk tik būtinus langelius.
K4: Kokios metrikos įrodo, kad grandinė veikia?
Sek citavimo tikslumą, lentelės langelio preciziškumą, suspaudimo tikslumą pagal skyrius ir P95 latenciją visam procesui. Labiausiai svarbus – žmogiškas pasitikėjimo balas: ar vartotojai priima atsakymą be papildomos patikros?
K5: Kur šiame kontekste telpa Sider.AI?
Kaip koordinacijos sluoksnis: planuoja OCR, taiko fragmentavimo ir paieškos politiką, palaiko disciplinuotus prašymus. Įsivaizduok kaip statybų vadovą, o ne stebuklininką – tas, kas užtikrina, kad visi komponentai pasirodytų laiku ir su įrodymais.