Onboard PaddleOCR with Amazon SageMaker Projects for MLOps to perform optical character recognition on identity documents PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Vgrajeni PaddleOCR s projekti Amazon SageMaker za MLOps za izvajanje optičnega prepoznavanja znakov na osebnih dokumentih

Optično prepoznavanje znakov (OCR) je naloga pretvorbe natisnjenega ali ročno napisanega besedila v strojno kodirano besedilo. OCR se pogosto uporablja v različnih scenarijih, kot sta elektronizacija dokumentov in preverjanje pristnosti. Ker lahko OCR močno zmanjša ročni napor pri registraciji ključnih informacij in služi kot vstopni korak za razumevanje velikih količin dokumentov, ima natančen sistem OCR ključno vlogo v dobi digitalne transformacije.

Odprtokodna skupnost in raziskovalci se osredotočajo na to, kako izboljšati natančnost OCR, enostavnost uporabe, integracijo z vnaprej usposobljenimi modeli, razširitev in prilagodljivost. Med številnimi predlaganimi okviri je PaddleOCR v zadnjem času pridobil vse večjo pozornost. Predlagani okvir se osredotoča na doseganje visoke natančnosti ob uravnoteženju računalniške učinkovitosti. Poleg tega je zaradi vnaprej usposobljenih modelov za kitajščino in angleščino priljubljen na trgu, ki temelji na kitajskem jeziku. Glej PaddleOCR GitHub repo Za več podrobnosti.

Pri AWS smo predlagali tudi integrirane storitve umetne inteligence, ki so pripravljene za uporabo brez strokovnega znanja o strojnem učenju (ML). Če želite iz dokumentov izvleči besedilo in strukturirane podatke, kot so tabele in obrazci, lahko uporabite Amazonovo besedilo. Uporablja tehnike ML za branje in obdelavo vseh vrst dokumentov, pri čemer natančno ekstrahira besedilo, rokopis, tabele in druge podatke brez ročnega napora.

Za podatkovne znanstvenike, ki želijo prilagodljivost pri uporabi odprtokodnega okvira za razvoj lastnega modela OCR, ponujamo tudi popolnoma upravljano storitev ML. Amazon SageMaker. SageMaker vam omogoča implementacijo najboljših praks MLOps v celotnem življenjskem ciklu ML in ponuja predloge in nabore orodij za zmanjšanje nediferenciranega težkega dela za uvedbo projektov ML v produkcijo.

V tej objavi se osredotočamo na razvoj prilagojenih modelov znotraj okvira PaddleOCR na SageMakerju. Sprehodimo se skozi življenjski cikel razvoja ML, da ponazorimo, kako vam lahko SageMaker pomaga zgraditi in usposobiti model ter na koncu uvesti model kot spletno storitev. Čeprav to rešitev ponazarjamo s PaddleOCR, splošna navodila veljajo za poljubna ogrodja, ki se uporabljajo v SageMakerju. Za spremljavo te objave nudimo tudi vzorčno kodo v GitHub repozitorij.

Ogrodje PaddleOCR

Kot splošno sprejeto ogrodje OCR vsebuje PaddleOCR zaznavanje obogatenega besedila, prepoznavanje besedila in algoritme od konca do konca. Izbere Differentiable Binarization (DB) in Convolutional Recurrent Neural Network (CRNN) kot osnovna modela zaznavanja in prepoznavanja ter predlaga vrsto modelov, imenovanih PP-OCR, za industrijske aplikacije po vrsti optimizacijskih strategij.

Model PP-OCR je namenjen splošnim scenarijem in tvori knjižnico modelov različnih jezikov. Sestavljen je iz treh delov: zaznavanje besedila, zaznavanje in popravljanje polja ter prepoznavanje besedila, prikazano na naslednji sliki na PaddleOCR uradno GitHub repozitorij. Lahko se sklicujete tudi na raziskovalno nalogo PP-OCR: praktičen izjemno lahek sistem OCR za več informacij.

Če smo natančnejši, je PaddleOCR sestavljen iz treh zaporednih nalog:

  • Zaznavanje besedila – Namen zaznavanja besedila je poiskati območje besedila na sliki. Takšne naloge lahko temeljijo na preprosti segmentacijski mreži.
  • Zaznavanje in popravljanje škatle – Vsako besedilno polje je treba preoblikovati v vodoravno pravokotno polje za kasnejše prepoznavanje besedila. Za to PaddleOCR predlaga usposabljanje klasifikatorja smeri besedila (naloga klasifikacije slik), da določi smer besedila.
  • Prepoznavanje besedila – Ko je besedilno polje zaznano, model prepoznavalnika besedila izvede sklepanje o vsakem besedilnem polju in izpiše rezultate glede na lokacijo besedilnega polja. PaddleOCR sprejme široko uporabljeno metodo CRNN.

PaddleOCR zagotavlja visokokakovostne vnaprej usposobljene modele, ki so primerljivi s komercialnimi učinki. Vnaprej usposobljeni model lahko uporabite za model zaznavanja, klasifikator smeri ali model za prepoznavanje ali pa natančno prilagodite in ponovno usposobite vsak posamezen model, da bo služil vašemu primeru uporabe. Da bi povečali učinkovitost in uspešnost zaznavanja tradicionalne kitajščine in angleščine, ponazarjamo, kako natančno prilagoditi model prepoznavanja besedila. Vnaprej usposobljen model, ki ga izberemo, je ch_ppocr_mobile_v2.0_rec_train, ki je lahek model, ki podpira kitajščino, angleščino in prepoznavanje številk. Sledi primer rezultata sklepanja z osebno izkaznico Hongkonga.

Onboard PaddleOCR with Amazon SageMaker Projects for MLOps to perform optical character recognition on identity documents PlatoBlockchain Data Intelligence. Vertical Search. Ai.

V naslednjih razdelkih si bomo ogledali, kako natančno prilagoditi predhodno usposobljen model s SageMakerjem.

Najboljše prakse MLOps s SageMakerjem

SageMaker je popolnoma upravljana storitev ML. S SageMakerjem lahko podatkovni znanstveniki in razvijalci hitro in preprosto zgradijo in učijo modele ML ter jih nato neposredno uvedejo v upravljano okolje, pripravljeno za proizvodnjo.

Mnogi podatkovni znanstveniki uporabljajo SageMaker za pospešitev življenjskega cikla strojnega učenja. V tem razdelku ponazarjamo, kako vam lahko SageMaker pomaga od eksperimentiranja do produkcije ML. Po standardnih korakih projekta ML, od eksperimentalne fraze (razvoj kode in poskusi) do operativne fraze (avtomatizacija delovnega toka gradnje modela in cevovodov za uvajanje), lahko SageMaker zagotovi učinkovitost v naslednjih korakih:

  1. Raziščite podatke in z njimi sestavite kodo ML Amazon SageMaker Studio zvezki.
  2. Usposobite in prilagodite model z učnim opravilom SageMaker.
  3. Razmestite model s končno točko SageMaker za serviranje modela.
  4. Orkestrirajte potek dela z Amazonski cevovodi SageMaker.

Naslednji diagram prikazuje to arhitekturo in potek dela.

Onboard PaddleOCR with Amazon SageMaker Projects for MLOps to perform optical character recognition on identity documents PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Pomembno je omeniti, da lahko SageMaker uporabljate na modularen način. Svojo kodo lahko na primer zgradite z lokalnim integriranim razvojnim okoljem (IDE) ter usposobite in uvedete svoj model na SageMakerju ali pa razvijete in usposobite svoj model v lastnih računalniških virih gruče ter uporabite cevovod SageMaker za orkestracijo delovnega toka in uvesti na končni točki SageMaker. To pomeni, da SageMaker ponuja odprto platformo za prilagajanje vašim zahtevam.

Oglejte si kodo v našem GitHub repozitorij in README za razumevanje strukture kode.

Zagotavljanje projekta SageMaker

Lahko uporabite Projekti Amazon SageMaker da začnete svoje potovanje. S projektom SageMaker lahko upravljate različice za svoje repozitorije Git, tako da lahko učinkoviteje sodelujete med ekipami, zagotovite doslednost kode in omogočite neprekinjeno integracijo in neprekinjeno dostavo (CI/CD). Čeprav so prenosni računalniki v pomoč pri gradnji modelov in eksperimentiranju, ko imate ekipo podatkovnih znanstvenikov in inženirjev ML, ki delajo na problemu ML, potrebujete bolj razširljiv način za ohranjanje doslednosti kode in strožji nadzor različic.

Projekti SageMaker ustvarijo vnaprej konfigurirano predlogo MLOps, ki vključuje bistvene komponente za poenostavitev integracije PaddleOCR:

  • Repozitorij kode za izdelavo slik vsebnika po meri za obdelavo, usposabljanje in sklepanje, integriran z orodji CI/CD. To nam omogoča, da konfiguriramo svojo sliko Docker po meri in jo potisnemo Registar elastičnih zabojnikov Amazon (Amazon ECR), da bo pripravljen za uporabo.
  • Cevovod SageMaker, ki določa korake za pripravo podatkov, usposabljanje, vrednotenje modela in registracijo modela. To nas pripravi, da bomo pripravljeni na MLO, ko gre projekt ML v proizvodnjo.
  • Drugi uporabni viri, kot je repozitorij Git za nadzor različic kode, skupina modelov, ki vsebuje različice modela, sprožilec za spremembo kode za cevovod gradnje modela in sprožilec na podlagi dogodkov za cevovod uvajanja modela.

Začetno kodo SageMaker lahko uporabite za ustvarjanje standardnih projektov SageMaker ali posebne predloge, ki jo je vaša organizacija ustvarila za člane ekipe. V tej objavi uporabljamo standard Predloga MLOps za gradnjo slike, gradnjo modela in uvajanje modela. Za več informacij o ustvarjanju projekta v Studiu glejte Ustvarite projekt MLOps z uporabo Amazon SageMaker Studio.

Raziščite podatke in ustvarite kodo ML s prenosniki SageMaker Studio

Prenosni računalniki SageMaker Studio so prenosni računalniki za sodelovanje, ki jih lahko hitro zaženete, saj vam ni treba predhodno nastaviti računalniških primerkov in shranjevanja datotek. Mnogi podatkovni znanstveniki raje uporabljajo ta spletni IDE za razvoj kode ML, hitro odpravljanje napak v knjižničnem API-ju in zagon stvari z majhnim vzorcem podatkov za potrditev skripta za usposabljanje.

V prenosnikih Studio lahko uporabite vnaprej izdelano okolje za običajna ogrodja, kot so TensorFlow, PyTorch, Pandas in Scikit-Learn. Odvisnosti lahko namestite v vnaprej zgrajeno jedro ali zgradite svojo obstojno sliko jedra. Za več informacij glejte Namestite zunanje knjižnice in jedra v Amazon SageMaker Studio. Prenosni računalniki Studio nudijo tudi okolje Python za sprožitev izobraževalnih opravil SageMaker, uvajanje ali druge storitve AWS. V naslednjih razdelkih ponazarjamo, kako uporabljati prenosne računalnike Studio kot okolje za sprožitev usposabljanja in uvajanja.

SageMaker ponuja zmogljiv IDE; je odprta platforma ML, kjer imajo podatkovni znanstveniki prilagodljivost pri uporabi svojega želenega razvojnega okolja. Za podatkovne znanstvenike, ki imajo raje lokalni IDE, kot je PyCharm ali Visual Studio Code, lahko uporabite lokalno okolje Python za razvoj kode ML in uporabite SageMaker za usposabljanje v upravljanem razširljivem okolju. Za več informacij glejte Zaženite svoje opravilo TensorFlow na Amazon SageMaker z IDE PyCharm. Ko imate trden model, lahko s SageMakerjem sprejmete najboljše prakse MLOps.

Trenutno ponuja tudi SageMaker Primerki zvezka SageMaker kot naša podedovana rešitev za okolje Jupyter Notebook. Imate prilagodljivost za zagon ukaza Docker build in uporabite lokalni način SageMaker za urjenje na primerku svojega prenosnika. Ponujamo tudi vzorčno kodo za PaddleOCR v našem repozitoriju kod: ./train_and_deploy/notebook.ipynb.

Zgradite sliko po meri s predlogo projekta SageMaker

SageMaker v veliki meri uporablja vsebnike Docker za opravila gradnje in izvajanja. S SageMakerjem lahko preprosto zaženete svoj vsebnik. Več tehničnih podrobnosti si oglejte na Uporabite svoje lastne algoritme za usposabljanje.

Vendar kot podatkovni znanstvenik izdelava vsebnika morda ne bo enostavna. Projekti SageMaker zagotavljajo preprost način za upravljanje odvisnosti po meri prek cevovoda CI/CD za ustvarjanje slik. Ko uporabljate projekt SageMaker, lahko posodobite sliko usposabljanja s svojim vsebnikom po meri Dockerfile. Za navodila po korakih glejte Ustvarite projekte Amazon SageMaker s cevovodi CI/CD za ustvarjanje slik. S strukturo, ki je navedena v predlogi, lahko spremenite navedeno kodo v tem repozitoriju, da zgradite vsebnik za usposabljanje PaddleOCR.

Za to objavo prikazujemo preprostost gradnje slike po meri za obdelavo, usposabljanje in sklepanje. Repo GitHub vsebuje tri mape:

Ti projekti imajo podobno strukturo. Za primer vzemite sliko vsebnika za usposabljanje; the image-build-train/ repozitorij vsebuje naslednje datoteke:

  • Datoteka codebuild-buildspec.yml, ki se uporablja za konfiguracijo AWS CodeBuild tako da je mogoče zgraditi sliko in jo potisniti v Amazon ECR.
  • Datoteka Docker, uporabljena za gradnjo Dockerja, ki vsebuje vse odvisnosti in kodo za usposabljanje.
  • Vstopna točka train.py za skript za usposabljanje z vsemi hiperparametri (kot sta stopnja učenja in velikost serije), ki jih je mogoče konfigurirati kot argument. Ti argumenti so podani, ko začnete z učnim opravilom.
  • Odvisnosti.

Ko kodo potisnete v ustrezno skladišče, se sproži AWS CodePipeline da za vas sestavi vadbeno posodo. Slika vsebnika po meri je shranjena v repozitoriju Amazon ECR, kot je prikazano na prejšnji sliki. Podoben postopek je sprejet za generiranje sklepne slike.

Usposobite model s SDK za usposabljanje SageMaker

Ko je koda vašega algoritma potrjena in zapakirana v vsebnik, lahko uporabite učno opravilo SageMaker, da zagotovite upravljano okolje za usposabljanje modela. To okolje je efemerno, kar pomeni, da imate lahko ločene, varne računalniške vire (kot je GPU) ali porazdeljeno okolje z več GPE za izvajanje kode. Ko je usposabljanje končano, SageMaker shrani nastale artefakte modela v Preprosta storitev shranjevanja Amazon (Amazon S3), ki jo določite. Vsi dnevniški podatki in metapodatki ostajajo na Konzola za upravljanje AWS, Studio in amazoncloudwatch.

Usposabljanje vključuje več pomembnih informacij:

  • URL vedra S3, kjer ste shranili podatke o vadbi
  • URL vedra S3, kamor želite shraniti izhod opravila
  • Upravljani računalniški viri, za katere želite, da jih SageMaker uporablja za usposabljanje modela
  • Pot Amazon ECR, kjer je shranjen vsebnik za usposabljanje

Za več informacij o delovnih mestih za usposabljanje glejte Modeli vlakov. Primer kode za delovno mesto za usposabljanje je na voljo na eksperimenti-vlak-beležnica.ipynb.

SageMaker naredi hiperparametre v a CreateTrainingJob zahteva, ki je na voljo v vsebniku Docker v /opt/ml/input/config/hyperparameters.json Datoteka.

Uporabimo vsebnik za usposabljanje po meri kot vstopno točko in določimo okolje GPU za infrastrukturo. Vsi ustrezni hiperparametri so podrobno opisani kot parametri, kar nam omogoča, da sledimo vsaki posamezni konfiguraciji opravila in jih primerjamo s sledenjem eksperimenta.

Ker je proces podatkovne znanosti zelo usmerjen v raziskave, je običajno, da vzporedno poteka več poskusov. To zahteva pristop, ki sledi vsem različnim poskusom, različnim algoritmom in potencialno različnim poskusnim nizom podatkov in hiperparametrom. Amazon SageMaker Experiments vam omogoča organiziranje, sledenje, primerjavo in ocenjevanje vaših poskusov ML. To dokazujemo tudi v eksperimenti-vlak-beležnica.ipynb. Za več podrobnosti glejte Upravljajte strojno učenje z Amazon SageMaker Experiments.

Razmestite model za serviranje modela

Kar zadeva uvajanje, zlasti za strežbo modela v realnem času, se bo mnogim podatkovnim znanstvenikom morda zdelo težko brez pomoči operativnih skupin. SageMaker poenostavi uvajanje vašega usposobljenega modela v proizvodnjo s programom SDK SageMaker Python. Svoj model lahko uvedete v storitve gostovanja SageMaker in dobite končno točko za uporabo za sklepanje v realnem času.

V mnogih organizacijah podatkovni znanstveniki morda niso odgovorni za vzdrževanje infrastrukture končne točke. Vendar je preizkušanje vašega modela kot končne točke in zagotavljanje pravilnega vedenja napovedovanja res odgovornost podatkovnih znanstvenikov. Zato je SageMaker poenostavil naloge za uvajanje z dodajanjem nabora orodij in SDK za to.

Za primer uporabe v objavi želimo imeti interaktivne zmogljivosti z nizko zakasnitvijo v realnem času. Sklepanje v realnem času je idealen za to delovno obremenitev sklepanja. Vendar pa obstaja veliko možnosti, ki se prilagajajo vsaki specifični zahtevi. Za več informacij glejte Razmestite modele za sklepanje.

Za uvedbo slike po meri lahko podatkovni znanstveniki uporabijo SDK SageMaker, ki je prikazan na

eksperimenti-deploy-notebook.ipynb.

v create_model zahteva, definicija vsebnika vključuje ModelDataUrl parameter, ki identificira lokacijo Amazon S3, kjer so shranjeni artefakti modela. SageMaker uporablja te informacije, da določi, od kod kopirati artefakte modela. Artefakte kopira v /opt/ml/model imenik za uporabo z vašo sklepno kodo. The serve in predictor.py je vstopna točka za streženje z artefaktom modela, ki se naloži, ko začnete uvajanje. Za več informacij glejte Uporabite svojo lastno sklepno kodo s storitvami gostovanja.

Orkestrirajte svoj potek dela s SageMaker Pipelines

Zadnji korak je, da svojo kodo zavijete v delovne tokove ML od konca do konca in uporabite najboljše prakse MLOps. V SageMakerju delovno obremenitev za gradnjo modela, usmerjeni aciklični graf (DAG), upravljajo SageMaker Pipelines. Pipelines je popolnoma upravljana storitev, ki podpira orkestracijo in sledenje rodu podatkov. Poleg tega, ker je Pipelines integriran s SDK-jem SageMaker Python, lahko svoje cevovode ustvarite programsko z uporabo vmesnika Python na visoki ravni, ki smo ga uporabljali prej med korakom usposabljanja.

Nudimo primer kode cevovoda za ponazoritev izvajanja na cevovod.py.

Cevovod vključuje korak predprocesiranja za ustvarjanje nabora podatkov, korak usposabljanja, korak stanja in korak registracije modela. Na koncu vsakega cevovoda bodo podatkovni znanstveniki morda želeli registrirati svoj model za nadzor različic in uvesti najuspešnejšega. Register modelov SageMaker zagotavlja osrednje mesto za upravljanje različic modelov, katalogiziranje modelov in sprožitev samodejne uvedbe modela s statusom odobritve določenega modela. Za več podrobnosti glejte Registrirajte in uvedite modele z registrom modelov.

V sistemu ML avtomatizirana orkestracija poteka dela pomaga preprečiti poslabšanje zmogljivosti modela, z drugimi besedami, odmik modela. Zgodnje in proaktivno odkrivanje odstopanj podatkov vam omogoča, da sprejmete popravne ukrepe, kot so modeli preusposabljanja. Po odkritju odstopanj lahko sprožite cevovod SageMaker za ponovno usposabljanje nove različice modela. Sprožilec cevovoda je mogoče določiti tudi z Amazonski model monitorja SageMaker, ki nenehno spremlja kakovost modelov v proizvodnji. Z zmožnostjo zajemanja podatkov za beleženje informacij Model Monitor podpira spremljanje kakovosti podatkov in modela, pristranskost in spremljanje premikanja pripisovanja funkcij. Za več podrobnosti glejte Spremljajte modele za podatke in kakovost modela, pristranskost in razložljivost.

zaključek

V tej objavi smo prikazali, kako zagnati ogrodje PaddleOCR na SageMakerju za opravila OCR. Da bi podatkovnim znanstvenikom pomagali enostavno vključiti SageMaker, smo se sprehodili skozi življenjski cikel razvoja ML, od gradnje algoritmov do usposabljanja do gostovanja modela kot spletne storitve za sklepanje v realnem času. Za selitev poljubnega ogrodja na platformo SageMaker lahko uporabite kodo predloge, ki smo jo zagotovili. Preizkusite ga za svoj projekt ML in nam sporočite svoje zgodbe o uspehu.


O avtorjih

Onboard PaddleOCR with Amazon SageMaker Projects for MLOps to perform optical character recognition on identity documents PlatoBlockchain Data Intelligence. Vertical Search. Ai.Junyi (Jackie) LIU je višji aplikativni znanstvenik pri AWS. Ima dolgoletne delovne izkušnje na področju strojnega učenja. Ima bogate praktične izkušnje pri razvoju in implementaciji rešitev pri gradnji modelov strojnega učenja v algoritmih za napovedovanje dobavne verige, sistemih za priporočila oglaševanja, OCR in NLP področju.

Onboard PaddleOCR with Amazon SageMaker Projects for MLOps to perform optical character recognition on identity documents PlatoBlockchain Data Intelligence. Vertical Search. Ai.Yanwei Cui, PhD, je specialist za strojno učenje, arhitekt za rešitve pri AWS. Začel je z raziskavami strojnega učenja na IRISA (Raziskovalni inštitut za računalništvo in naključne sisteme) in ima več let izkušenj z gradnjo industrijskih aplikacij, ki jih poganja umetna inteligenca, na področju računalniškega vida, obdelave naravnega jezika in napovedovanja vedenja spletnih uporabnikov. Pri AWS deli strokovno znanje na področju in strankam pomaga sprostiti poslovne potenciale ter doseči uporabne rezultate s strojnim učenjem v velikem obsegu. Zunaj dela rad bere in potuje.

Onboard PaddleOCR with Amazon SageMaker Projects for MLOps to perform optical character recognition on identity documents PlatoBlockchain Data Intelligence. Vertical Search. Ai.Yi-An CHEN je razvijalka programske opreme pri Amazon Lab 126. Ima več kot 10 let izkušenj z razvojem izdelkov, ki temeljijo na strojnem učenju, v različnih disciplinah, vključno s personalizacijo, obdelavo naravnega jezika in računalniškim vidom. Izven službe rada teče in kolesari.

Časovni žig:

Več od Strojno učenje AWS