Salt la conținut
Nyshporka Conectare

Nyshporka 0.24.0: modele noi pentru manuscrisele din secolele XVIII–XIX

v0.24.0

Versiunea 0.24.0 actualizează toate cele trei modele de recunoaștere a textului scris de mână. În registrele metrice din secolul al XVIII-lea, numele de familie ajunge în înregistrarea corectă de șase ori mai des decât în versiunea anterioară. În cursiva de cancelarie poloneză sunt cu 38% mai puține caractere greșite, iar cuvintele citite fără nicio greșeală sunt de 1,6 ori mai multe. Viteza de prelucrare a unui dosar pe o singură placă Tesla V100 practic nu s-a schimbat, iar în modul cloud, pe două astfel de plăci, a crescut cu aproximativ 70%.

Ce s-a schimbat

  • Pysar (alfabet chirilic, modelul principal) — versiunea 19. Antrenat cu adnotări manuale suplimentare ale registrelor metrice din sec. XVIII.
  • Diak-Litopyseț (alfabet chirilic, al doilea model) — o nouă generație a lui Diak pe baza deschisă PP-OCRv6.
  • Skryba PPv3 (alfabet latin: cursivă poloneză și latină) — un model nou pe aceeași bază, antrenat pe 28 de scrisuri de mână.

Noul motor kraken 7.1

Modelele noi sunt construite pe o altă arhitectură (PP-OCRv6), iar ea funcționează corect doar pe kraken 7.1. De aceea această actualizare este mai mare decât de obicei: după nysh update trebuie actualizat și motorul de citire însuși (nysh htr install).

Kraken din Nyshporka are corecturi proprii: șase corecturi de viteză, verificate pe noua versiune, mențin prelucrarea unui dosar pe o placă Tesla V100 la nivelul anterior, iar alfabetul latin pe aceeași placă se citește aproape de două ori mai repede. Împărțirea paginilor în rânduri, calculată de versiunea veche, este citită de cea nouă fără recalculare.

Calitatea recunoașterii

Versiunea anterioară și cea nouă au fost comparate pe aceleași pagini, pe același calculator, cu recunoaștere repetată de la zero.

Material și măsură Înainte Acum
Registre metrice din sec. XVIII (ЦДІАК f. 224, 657 de înregistrări): numele de familie în înregistrarea corectă, peste coincidența întâmplătoare 0,038 0,231
La fel, prenumele 0,142 0,317
Acte notariale poloneze (ДАВіО f. 792, rânduri din afara antrenării): proporția caracterelor greșite 20,9% 12,9%
La fel: cuvinte citite fără nicio greșeală 27,4% 45,0%
Protocolul Adunării Nobiliare din Podolia, 1802 (scris din afara antrenării): proporția caracterelor greșite 32,5% 26,5%
Registre metrice din sec. XIX (2808 nume de familie dintr-un set de referință): găsite 54,9% 55,2%
Căutarea unui neam anume pe 72 de pagini de registre metrice din sec. XIX: pagini găsite de ambele modele împreună 65 64

„Peste coincidența întâmplătoare” — proporția înregistrărilor în care numele de familie din registrul manual a fost găsit în aceeași înregistrare a textului recunoscut, după scăderea coincidențelor pe care le-ar da o pagină aleatorie. Referința — regestele manuale ale cercetătoarei, întocmite independent de recunoaștere.

În cărțile din secolul al XIX-lea calitatea s-a păstrat la nivelul anterior. Al doilea model, Diak-Litopyseț, confundă mai rar numele căutat cu un nume asemănător al unei familii vecine: pe paginile de control, astfel de erori sunt una față de patru.

Viteză și cost

Mod Înainte Acum
Dosar complet pe o placă Tesla V100 (271 de pagini, toate etapele, un singur proces) 1871 s 1918 s
Alfabet latin: recunoașterea unei pagini, Tesla V100 1,86 s 0,99 s
Cloud, calculator cu două plăci Tesla V100 (16 GB): pagini pe oră, chirilic, dosar de 606 pag. ≈ 4600 ≈ 8000
Cloud, același calculator (închiriere $0,244/oră): costul a o mie de pagini, chirilic ≈ $0,05 ≈ $0,03

Noile modele chirilice sunt mai mari, dar cea mai lungă etapă a prelucrării unei pagini — determinarea rândurilor — nu s-a schimbat, așa că un dosar complet pe o placă Tesla V100 se prelucrează practic cu aceeași viteză (+2,5%). În modul cloud, noua versiune încape pe placă cu de două ori mai multe procese paralele. Pentru dosarele cu scriere mixtă, chirilică și latină, unde lucrează toate cele trei modele, pe același calculator cu două plăci Tesla V100 (16 GB) viteza este de aproximativ 5000 de pagini pe oră.

Fără placă video

Procesor Intel Core i7-9750H (6 nuclee), pagină densă (~128 de rânduri), secunde pe pagină:

Mod Înainte Acum
Chirilic, două modele ≈ 46 ≈ 57 (+24%)
Chirilic, un singur model (--one-voice) ≈ 42 ≈ 42
Alfabet latin ≈ 18 ≈ 29 (+60%)
Dosar de 600 de pagini în chirilică, două modele ≈ 7,7 ore ≈ 9,5 ore

Încetinirea privește doar procesorul: pe placa Tesla V100, dimpotrivă, alfabetul latin se citește aproape de două ori mai repede. Un dosar mare se citește mai repede în cloud (nysh cloud go).

Pe ce s-a antrenat

  • Adnotarea manuală a rândurilor din registrele metrice ale sec. XVIII (ЦДІАК f. 224 și alte dosare).
  • Pentru alfabetul latin — 28 de scrisuri de mână: registre notariale ДАВіО f. 792, registre grodale ale Voievodatului Kiev (ЦДІАК f. 2), protocoalele Adunării Nobiliare din Podolia (ДАХмО f. 230), liste de suflete ale decanatului Chechelnyk (ДАК f. 312), registre metrice ale bisericii romano-catolice (f. 685), precum și un corpus deschis de acte notariale olandeze din sec. XIX.
  • Baza noilor modele — PP-OCRv6 medium (Benjamin Kiessling, Inria; Zenodo, DOI 10.5281/zenodo.21788410), licența Apache-2.0.

Limitări

  • În registrele metrice din a doua jumătate a sec. XIX, Pysar v19 găsește numele de familie cu aproximativ 1 punct procentual mai rar decât versiunea anterioară.
  • Unele teste sunt mici (143 de rânduri în alfabet latin; o singură pagină din protocolul din 1802), așa că diferențele de 1–2 puncte pe ele nu sunt semnificative. Schimbările principale (de șase ori la numele din sec. XVIII, cu 38% mai puține erori în alfabetul latin) depășesc cu mult această marjă de eroare.
  • Pentru dosarele mici (până la 100 de pagini), viteza în cloud pe calculatorul cu două plăci Tesla V100 este mai mică, în jur de 2000 de pagini pe oră, din cauza timpului de pornire pentru fiecare dosar.

Alte schimbări ale versiunii

Mai puțin spațiu pe disc

Biblioteca torch nu se mai instalează de două ori — lângă aplicație și în motorul de citire. Acum ea este doar în motor; pe Linux asta eliberează câțiva gigabytes.

Cloud

  • Un lot de dosare se pregătește în câteva minute. Pentru a alege calculatorul, Nyshporka estimează câte rânduri are o pagină a unui dosar necitit. Acum, pentru un lot, această estimare se ia din dosarele deja citite din același inventar — 0,3 s în loc de ~85 s pe dosar. Un lot de 25 de registre metrice din același inventar stătea înainte la această estimare 35 de minute din 50 de minute de pregătire.
  • Segmentarea gata făcută nu se mai calculează a doua oară. Completarea unui dosar, reluarea după o întrerupere sau un model nou în același folder preiau segmentarea citirii anterioare.
  • Se vede ce dosare nu au plecat. Rezultatul lotului afișează „vor pleca N din M dosare” și motivul pentru fiecare dosar care a rămas pe dinafară.

Descărcare

  • O descărcare întreruptă continuă de unde s-a oprit, nu începe de la zero.
  • La limitarea frecvenței cererilor (429), Nyshporka așteaptă exact cât cere serverul.
  • Fișierul de pe Wikimedia Commons este verificat cu suma de control SHA-1.

Supriaha

  • Dacă un dosar se află în Supriaha în mai multe pachete, Nyshporka îl ia pe cel citit de cele mai noi modele de lucru; dacă nu există — de cele anterioare; dintre cele egale — pe cel mai recent.
  • Genuri noi de fișe: registru metric complet și incomplet, cercetări premaritale, publicații de referință (calendare de adrese, cărți memoriale), dosare judiciare, dosare de stare (nobilime, cărți genealogice), vizitații canonice, inventare de moșii, recensăminte, foi de serviciu.
  • O singură refuzare a conexiunii cu spațiul de stocare nu mai este considerată blocare: Nyshporka încearcă din nou.
  • Dacă în folder se află doar o parte din imaginile dosarului, împachetarea cere să indicați numărul de imagini ale dosarului întreg. Înainte, fișa putea arăta o acoperire de peste 100%.

Întrebări și răspunsuri

De ce să lansăm modele noi, dacă textul vechi este bun?

Textul vechi este bun, totul este în regulă cu el. Modelele noi apar pentru că un text mai precis face căutarea mai ieftină și mai precisă.

Agentul care caută un neam în textele citite trebuie să examineze candidații și să-i elimine pe cei falși. Cu cât sunt mai multe erori în text, cu atât mai mult context trebuie analizat și eliminat. Un model mai precis dă mai puțini candidați falși: agentul găsește mai repede locul căutat, consumă mai puțini tokeni și scapă mai rar ceva.

Și acum scăpăm puțin, dar fiecare model nou micșorează această proporție. Modele noi vor apărea și pe viitor.

Au valoare dosarele și contribuțiile citite cu modelele vechi?

Da. Căutarea funcționează pe textul oricăruia dintre modele: rapoartele zilnice de căutare a neamului pe care le analizăm dau descoperiri și în dosarele citite cu versiunile anterioare. Fiecare descoperire se verifică cu ochiul pe imagine, așa că precizia modelului influențează cât de multă muncă e până la descoperire, nu dacă ne putem încrede în ea.

De aceea contribuțiile dumneavoastră în Supriaha sunt necesare chiar acum, cu modelele care există. Citim dosarele în continuare cu modelele disponibile; când vor apărea altele mai noi, se poate reciti partea în care merită efortul.

Munca făcută nu se pierde nici la recitire: împărțirea paginilor în rânduri — cea mai lungă parte a citirii — se ia din cache, iar modelele noi citesc aceleași rânduri.

Trebuie acum recitite toate dosarele citite?

Nu. Tot ce a fost citit rămâne în căutare și nu se învechește.

Recitirea e necesară doar acolo unde doriți efectul maxim al căutării cu costuri mai mici: registrele metrice din sec. XVIII, dosarele latine și mixte, precum și dosarele în care căutarea neamului nu a găsit nimic. În cărțile din sec. XIX calitatea este aproape aceeași (55,2% față de 54,9% nume găsite), așa că nu e nevoie să le recitiți de dragul modelelor noi.

Recitirea este mai ieftină decât prima citire: împărțirea gata făcută a paginilor în rânduri se ia din cache. Pe o placă Tesla V100 ea ocupă cea mai mare parte a timpului unei pagini (5,5 s din 8,9 s), așa că recitirea este de aproximativ două–trei ori mai rapidă. Este suficient să rulați din nou nysh read pentru dosar — modelele noi vor fi preluate singure; în cloud, nysh cloud go ia automat împărțirea gata făcută.

Pot rămâne la modelele vechi?

Da. Ponderile vechi rămân pe disc: cât timp cele noi nu sunt descărcate (nysh models get), Nyshporka citește cu ele, iar imediat ce apar cele noi, le ia pe cele mai noi de lucru. Orice dosar poate fi citit cu un model numit explicit: nysh read <справа> --model pysar_cyr_v17.pt.

După actualizarea Nyshporka însăși trebuie actualizat motorul de citire (nysh htr install): fără asta citirea nu pornește. Modelele vechi funcționează pe motorul actualizat ca și înainte.

Ce text ia Nyshporka din Supriaha?

Dacă un dosar se află în Supriaha în mai multe pachete, Nyshporka îl ia pe cel citit de cele mai noi modele de lucru; dacă nu există — de cele anterioare; dintre cele egale — pe cel mai recent. La fel pentru un singur dosar și pentru un fond sau inventar întreg. Lângă fiecare dosar din catalog se vede cu ce modele a fost citit. Dosarul primit vine cu toate citirile sale (vocile), iar căutarea se face în toate.

Dacă dosarul a fost deja luat, iar în catalog a apărut un pachet al aceluiași dosar, citit de modele mai noi, îl puteți înlocui cu comanda nysh share pull … --force.

Pentru cei care actualizează de la versiuni anterioare lui 0.22: mutarea evidenței dosarelor

Dacă actualizați de la o versiune mai veche decât 0.22, actualizarea include mutarea evidenței dosarelor pe chei noi. Acesta este singurul pas care vă schimbă datele, de aceea merită făcut cu atenție.

Cheia fiecărui dosar conține acum întotdeauna inventarul: REPO/фонд/опис/справа, de exemplu DAHMO/315/1/8433. Dacă inventarul este necunoscut, în locul lui stă _. Înainte, inventarul intra în cheie doar la o parte din fonduri, iar două cărți cu același număr în inventare diferite (de exemplu, ДАДнО 193-1-213 și 193-3-213) aveau aceeași cheie.

Se mută: depozitul de pagini, legăturile citirilor, verdictele dosarelor și rândurilor, jurnalul de căutare, fișele Supriaha, coada de dosare și profilurile de verificare.

Ordinea pașilor

  1. Opriți celelalte sesiuni și procesele de fundal care scriu în evidență. Cât timp ele funcționează, mutarea nu va începe.
  2. Consultați planul: nysh cases rekey. El arată ce se va redenumi, ce se va contopi și ce nu se va putea muta.
  3. Verificați contopirile. Dacă un dosar avea verdicte sub două chei vechi, va fi valabil cel mai recent, iar celălalt se va păstra alături ca înlocuit.
  4. Efectuați mutarea: nysh cases rekey --apply. Înainte de modificări se creează o arhivă în data/cases/rekey/<час>/; o eroare la mijloc readuce spațiul de lucru în starea anterioară.
  5. La dosarele cu inventar necunoscut (_), completați inventarul în pașaport (nysh case <тека> --shifra "…") și repetați nysh cases rekey --apply.

Ce e bine de știut

  • Înainte de mutare, citirea și căutarea funcționează, dar scrierea în evidență refuză, cu o indicație despre ce comandă trebuie rulată.
  • Revenirea — nysh cases rekey --rollback. Dacă după mutare evidența s-a schimbat deja, revenirea refuză și afișează lista fișierelor modificate; --rollback --force — doar în cunoștință de cauză.
  • Cheile vechi din note și mesaje duc în continuare la dosarul lor prin harta mutărilor (data/cases/key_moves.json).

Cum actualizați

După nysh update sunt necesare două comenzi: nysh htr install (actualizează motorul de citire pe loc) și nysh models get (ponderi noi, aproximativ 225 MB). Nyshporka citește singură cu cele mai noi modele de lucru, dacă acestea sunt pe disc; dacă nu au fost încă descărcate — cu cele anterioare. Nu trebuie comutat nimic manual.

Cum s-a făcut comparația

Ambele versiuni au prelucrat aceleași 271 de pagini pe același calculator închiriat cu o placă Tesla V100, fără procese străine; fiecare pagină a fost recunoscută de la zero. Viteza în cloud a fost măsurată separat pe un calculator cu două plăci V100, pe un dosar de 606 pagini. Paginile folosite pentru antrenarea modelelor au fost excluse din comparație. Măsurătorile pe procesor — pe Intel Core i7-9750H, trei pagini dense din ДАК 312-1-27.

Alte actualizări