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

PaddleOCR la bord cu Amazon SageMaker Projects pentru MLOps pentru a realiza recunoașterea optică a caracterelor pe documentele de identitate

Recunoașterea optică a caracterelor (OCR) este sarcina de a converti textul tipărit sau scris de mână în text codificat de mașină. OCR a fost utilizat pe scară largă în diverse scenarii, cum ar fi electronizarea documentelor și autentificarea identității. Deoarece OCR poate reduce foarte mult efortul manual de înregistrare a informațiilor cheie și poate servi drept pas de intrare pentru înțelegerea unor volume mari de documente, un sistem OCR precis joacă un rol crucial în era transformării digitale.

Comunitatea open-source și cercetătorii se concentrează asupra modului de îmbunătățire a acurateței OCR, ușurința în utilizare, integrarea cu modele pre-instruite, extensia și flexibilitatea. Printre multe cadre propuse, PaddleOCR a câștigat o atenție din ce în ce mai mare recent. Cadrul propus se concentrează pe obținerea unei precizii ridicate în același timp echilibrând eficiența de calcul. În plus, modelele pre-instruite pentru chineză și engleză îl fac popular pe piața bazată pe limba chineză. Vezi PaddleOCR GitHub depozit pentru mai multe detalii.

La AWS, am propus, de asemenea, servicii integrate de inteligență artificială care sunt gata de utilizare fără expertiză în învățarea automată (ML). Pentru a extrage text și date structurate, cum ar fi tabele și formulare din documente, puteți utiliza Text Amazon. Utilizează tehnici ML pentru a citi și procesa orice tip de document, extragând cu acuratețe text, scris de mână, tabele și alte date fără efort manual.

Pentru oamenii de știință de date care doresc flexibilitatea de a utiliza un cadru open-source pentru a-ți dezvolta propriul model OCR, oferim, de asemenea, serviciul ML gestionat complet Amazon SageMaker. SageMaker vă permite să implementați cele mai bune practici MLOps pe parcursul ciclului de viață ML și oferă șabloane și seturi de instrumente pentru a reduce sarcinile grele nediferențiate pentru a pune proiecte ML în producție.

În această postare, ne concentrăm pe dezvoltarea modelelor personalizate în cadrul PaddleOCR pe SageMaker. Parcurgem ciclul de viață al dezvoltării ML pentru a ilustra modul în care SageMaker vă poate ajuta să construiți și să antrenați un model și, în cele din urmă, să implementați modelul ca serviciu web. Deși ilustrăm această soluție cu PaddleOCR, îndrumările generale sunt valabile pentru cadrele arbitrare care urmează să fie utilizate pe SageMaker. Pentru a însoți această postare, oferim și exemplu de cod în GitHub depozit.

Cadru PaddleOCR

Fiind un cadru OCR adoptat pe scară largă, PaddleOCR conține detectarea textului bogat, recunoașterea textului și algoritmi end-to-end. Alege binarizarea diferențială (DB) și Rețeaua neuronală recurentă convoluțională (CRNN) ca modele de bază de detectare și recunoaștere și propune o serie de modele, denumite PP-OCR, pentru aplicații industriale după o serie de strategii de optimizare.

Modelul PP-OCR vizează scenarii generale și formează o bibliotecă de modele de diferite limbi. Este alcătuit din trei părți: detectarea textului, detectarea și rectificarea casetei și recunoașterea textului, ilustrate în figura următoare pe PaddleOCR Depozitul oficial GitHub. De asemenea, puteți consulta lucrarea de cercetare PP-OCR: Un sistem OCR practic ultra ușor pentru mai multe informatii.

Pentru a fi mai specific, PaddleOCR constă din trei sarcini consecutive:

  • Detectarea textului – Scopul detectării textului este de a localiza zona de text din imagine. Astfel de sarcini se pot baza pe o simplă rețea de segmentare.
  • Detectarea și rectificarea cutiei – Fiecare casetă de text trebuie transformată într-o casetă dreptunghiulară orizontală pentru recunoașterea ulterioară a textului. Pentru a face acest lucru, PaddleOCR propune să antreneze un clasificator de direcție a textului (sarcină de clasificare a imaginii) pentru a determina direcția textului.
  • Recunoașterea textului – După ce este detectată caseta de text, modelul de recunoaștere a textului efectuează inferențe pe fiecare casetă de text și emite rezultatele în funcție de locația casetei de text. PaddleOCR adoptă metoda larg utilizată CRNN.

PaddleOCR oferă modele pre-antrenate de înaltă calitate, care sunt comparabile cu efectele comerciale. Puteți fie să utilizați modelul pregătit în prealabil pentru un model de detectare, un clasificator de direcție sau un model de recunoaștere, fie puteți regla fin și reantrenați fiecare model individual pentru a servi cazul dvs. de utilizare. Pentru a crește eficiența și eficacitatea detectării chinezei tradiționale și englezei, ilustrăm modul de ajustare a modelului de recunoaștere a textului. Modelul pre-antrenat pe care îl alegem este ch_ppocr_mobile_v2.0_rec_train, care este un model ușor, care acceptă chineză, engleză și recunoașterea numerelor. Următorul este un exemplu de rezultat de inferență folosind o carte de identitate din Hong Kong.

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

În secțiunile următoare, vom parcurge modul de reglare fină a modelului pre-antrenat folosind SageMaker.

Cele mai bune practici MLOps cu SageMaker

SageMaker este un serviciu ML gestionat complet. Cu SageMaker, oamenii de știință de date și dezvoltatorii pot construi și antrena rapid și ușor modele ML, apoi le pot implementa direct într-un mediu gestionat pregătit pentru producție.

Mulți oameni de știință de date folosesc SageMaker pentru a accelera ciclul de viață ML. În această secțiune, ilustrăm modul în care SageMaker vă poate ajuta de la experimentare până la producția ML. Urmând pașii standard ai unui proiect ML, de la fraza experimentală (dezvoltarea codului și experimentele), până la fraza operațională (automatizarea fluxului de lucru pentru construirea modelului și a conductelor de implementare), SageMaker poate aduce eficiență în următorii pași:

  1. Explorați datele și construiți codul ML cu Amazon SageMaker Studio notebook-uri.
  2. Antrenați și reglați modelul cu un job de instruire SageMaker.
  3. Implementați modelul cu un punct final SageMaker pentru difuzarea modelului.
  4. Orchestrați fluxul de lucru cu Pipelines Amazon SageMaker.

Următoarea diagramă ilustrează această arhitectură și flux de lucru.

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

Este important să rețineți că puteți utiliza SageMaker într-un mod modular. De exemplu, vă puteți construi codul cu un mediu de dezvoltare local integrat (IDE) și vă puteți antrena și implementa modelul pe SageMaker sau vă puteți dezvolta și antrena modelul în propriile surse de calcul în cluster și puteți utiliza o conductă SageMaker pentru orchestrarea fluxului de lucru și implementați pe un punct final SageMaker. Aceasta înseamnă că SageMaker oferă o platformă deschisă pentru a se adapta propriilor cerințe.

Vedeți codul în nostru GitHub depozit și README pentru a înțelege structura codului.

Furnizați un proiect SageMaker

Poți să folosești Proiecte Amazon SageMaker pentru a-ți începe călătoria. Cu un proiect SageMaker, puteți gestiona versiunile pentru depozitele dvs. Git, astfel încât să puteți colabora mai eficient între echipe, să asigurați consistența codului și să permiteți integrarea continuă și livrarea continuă (CI/CD). Deși notebook-urile sunt utile pentru construirea de modele și experimentare, atunci când aveți o echipă de cercetători de date și ingineri ML care lucrează la o problemă ML, aveți nevoie de o modalitate mai scalabilă de a menține consistența codului și de a avea un control mai strict al versiunilor.

Proiectele SageMaker creează un șablon MLOps preconfigurat, care include componentele esențiale pentru simplificarea integrării PaddleOCR:

  • Un depozit de cod pentru a construi imagini de container personalizate pentru procesare, instruire și inferență, integrat cu instrumente CI/CD. Acest lucru ne permite să ne configuram imaginea personalizată Docker și să împingem la Registrul Amazon de containere elastice (Amazon ECR) pentru a fi gata de utilizare.
  • O conductă SageMaker care definește pașii pentru pregătirea datelor, instruire, evaluarea modelului și înregistrarea modelului. Acest lucru ne pregătește să fim pregătiți pentru MLOps atunci când proiectul ML intră în producție.
  • Alte resurse utile, cum ar fi un depozit Git pentru controlul versiunii de cod, un grup de modele care conține versiuni de model, declanșator de modificare a codului pentru pipeline de construire a modelului și declanșator bazat pe evenimente pentru pipeline de implementare a modelului.

Puteți utiliza codul de bază SageMaker pentru a crea proiecte SageMaker standard sau un șablon specific pe care organizația dvs. l-a creat pentru membrii echipei. În această postare, folosim standardul Șablon MLOps pentru construirea de imagini, construirea modelului și implementarea modelului. Pentru mai multe informații despre crearea unui proiect în Studio, consultați Creați un proiect MLOps folosind Amazon SageMaker Studio.

Explorați datele și creați cod ML cu SageMaker Studio Notebooks

Notebook-urile SageMaker Studio sunt notebook-uri colaborative pe care le puteți lansa rapid, deoarece nu trebuie să configurați în prealabil instanțe de calcul și stocare de fișiere. Mulți oameni de știință de date preferă să folosească acest IDE bazat pe web pentru a dezvolta codul ML, pentru a depana rapid API-ul bibliotecii și pentru a face lucrurile să ruleze cu un eșantion mic de date pentru a valida scriptul de antrenament.

În notebook-urile Studio, puteți utiliza un mediu pre-construit pentru cadre obișnuite, cum ar fi TensorFlow, PyTorch, Pandas și Scikit-Learn. Puteți instala dependențele la nucleul pre-construit sau puteți construi propria imagine persistentă a nucleului. Pentru mai multe informații, consultați Instalați biblioteci și nuclee externe în Amazon SageMaker Studio. Notebook-urile Studio oferă, de asemenea, un mediu Python pentru a declanșa joburi de instruire, implementare sau alte servicii AWS SageMaker. În secțiunile următoare, ilustrăm cum să folosiți notebook-urile Studio ca mediu pentru a declanșa joburi de instruire și implementare.

SageMaker oferă un IDE puternic; este o platformă ML deschisă în care oamenii de știință de date au flexibilitatea de a folosi mediul lor de dezvoltare preferat. Pentru oamenii de știință de date care preferă un IDE local, cum ar fi PyCharm sau Visual Studio Code, puteți utiliza mediul local Python pentru a vă dezvolta codul ML și puteți utiliza SageMaker pentru antrenament într-un mediu scalabil gestionat. Pentru mai multe informații, vezi Rulați sarcina TensorFlow pe Amazon SageMaker cu un IDE PyCharm. După ce aveți un model solid, puteți adopta cele mai bune practici MLOps cu SageMaker.

În prezent, SageMaker oferă și Instanțele de notebook SageMaker ca soluție moștenită pentru mediul Jupyter Notebook. Aveți flexibilitatea de a rula comanda de compilare Docker și utilizați modul local SageMaker pentru a vă antrena pe instanța de notebook. De asemenea, oferim exemplu de cod pentru PaddleOCR în depozitul nostru de coduri: ./train_and_deploy/notebook.ipynb.

Creați o imagine personalizată cu un șablon de proiect SageMaker

SageMaker folosește pe scară largă containerele Docker pentru sarcini de build și runtime. Puteți rula cu ușurință propriul container cu SageMaker. Vezi mai multe detalii tehnice la Utilizați propriile algoritmi de antrenament.

Cu toate acestea, în calitate de cercetător de date, construirea unui container ar putea să nu fie simplă. Proiectele SageMaker vă oferă o modalitate simplă de a gestiona dependențele personalizate printr-o conductă CI/CD de creare de imagini. Când utilizați un proiect SageMaker, puteți face actualizări ale imaginii de antrenament cu containerul dvs. personalizat Dockerfile. Pentru instrucțiuni pas cu pas, consultați Creați proiecte Amazon SageMaker cu conducte CI/CD pentru crearea de imagini. Cu structura furnizată în șablon, puteți modifica codul furnizat în acest depozit pentru a construi un container de antrenament PaddleOCR.

Pentru această postare, arătăm simplitatea construirii unei imagini personalizate pentru procesare, instruire și inferență. Repo-ul GitHub conține trei foldere:

Aceste proiecte urmează o structură similară. Luați ca exemplu imaginea containerului de antrenament; cel image-build-train/ depozitul conține următoarele fișiere:

  • Fișierul codebuild-buildspec.yml, care este utilizat pentru configurare AWS CodeBuild astfel încât imaginea să poată fi construită și împinsă către Amazon ECR.
  • Fișierul Docker folosit pentru compilarea Docker, care conține toate dependențele și codul de antrenament.
  • Punctul de intrare train.py pentru scriptul de antrenament, cu toți hiperparametrii (cum ar fi rata de învățare și dimensiunea lotului) care pot fi configurați ca argument. Aceste argumente sunt specificate atunci când începeți jobul de antrenament.
  • Dependentele.

Când împingeți codul în depozitul corespunzător, acesta se declanșează AWS CodePipeline pentru a construi un container de antrenament pentru tine. Imaginea containerului personalizată este stocată într-un depozit Amazon ECR, așa cum este ilustrat în figura anterioară. O procedură similară este adoptată pentru generarea imaginii de inferență.

Antrenați modelul cu SDK-ul de antrenament SageMaker

După ce codul algoritmului este validat și împachetat într-un container, puteți utiliza un job de instruire SageMaker pentru a furniza un mediu gestionat pentru a antrena modelul. Acest mediu este efemer, ceea ce înseamnă că puteți avea resurse de calcul separate și sigure (cum ar fi GPU) sau un mediu distribuit cu mai multe GPU pentru a vă rula codul. Când antrenamentul este complet, SageMaker salvează artefactele modelului rezultate într-un Serviciul Amazon de stocare simplă (Amazon S3) locația pe care o specificați. Toate datele de jurnal și metadatele persistă pe Consola de administrare AWS, Studio și Amazon CloudWatch.

Jobul de formare include câteva informații importante:

  • Adresa URL a compartimentului S3 în care ați stocat datele de antrenament
  • Adresa URL a compartimentului S3 în care doriți să stocați rezultatul jobului
  • Resursele de calcul gestionate pe care doriți să le folosească SageMaker pentru formarea modelului
  • Calea Amazon ECR în care este stocat containerul de instruire

Pentru mai multe informații despre locuri de muncă de formare, consultați Modele de trenuri. Exemplul de cod pentru jobul de formare este disponibil la experimente-tren-notebook.ipynb.

SageMaker realizează hiperparametrii în a CreateTrainingJob cerere disponibilă în containerul Docker din /opt/ml/input/config/hyperparameters.json fișier.

Folosim containerul de antrenament personalizat ca punct de intrare și specificăm un mediu GPU pentru infrastructură. Toți hiperparametrii relevanți sunt detaliați ca parametri, ceea ce ne permite să urmărim fiecare configurație individuală a jobului și să le comparăm cu urmărirea experimentului.

Deoarece procesul științei datelor este foarte orientat spre cercetare, este obișnuit ca mai multe experimente să ruleze în paralel. Acest lucru necesită o abordare care ține evidența tuturor experimentelor diferite, a diferiților algoritmi și, potențial, a diferitelor seturi de date și hiperparametri încercați. Amazon SageMaker Experiments vă permite să organizați, urmăriți, comparați și evaluați experimentele ML. Demonstrăm acest lucru și în experimente-tren-notebook.ipynb. Pentru mai multe detalii, consultați Gestionați învățarea automată cu Amazon SageMaker Experiments.

Implementați modelul pentru difuzarea modelului

În ceea ce privește implementarea, în special pentru servirea modelelor în timp real, mulți oameni de știință de date le-ar putea fi greu să se descurce fără ajutorul echipelor de operare. SageMaker simplifică implementarea modelului dvs. antrenat în producție cu SageMaker Python SDK. Puteți implementa modelul dvs. în serviciile de găzduire SageMaker și puteți obține un punct final pe care să îl utilizați pentru inferențe în timp real.

În multe organizații, oamenii de știință de date ar putea să nu fie responsabili pentru întreținerea infrastructurii punctelor finale. Cu toate acestea, testarea modelului dvs. ca punct final și garantarea comportamentelor corecte de predicție este într-adevăr responsabilitatea cercetătorilor de date. Prin urmare, SageMaker a simplificat sarcinile de implementare adăugând un set de instrumente și SDK pentru aceasta.

Pentru cazul de utilizare din postare, dorim să avem capabilități în timp real, interactive, cu latență scăzută. Inferință în timp real este ideal pentru acest volum de lucru de inferență. Cu toate acestea, există multe opțiuni care se adaptează fiecărei cerințe specifice. Pentru mai multe informații, consultați Implementați modele pentru inferență.

Pentru a implementa imaginea personalizată, oamenii de știință de date pot folosi SDK-ul SageMaker, ilustrat la

experiments-deploy-notebook.ipynb.

În create_model cerere, definiția containerului include ModelDataUrl parametru, care identifică locația Amazon S3 în care sunt stocate artefactele modelului. SageMaker folosește aceste informații pentru a determina de unde să copieze artefactele modelului. Copiază artefactele pe /opt/ml/model director pentru utilizarea de către codul de inferență. The serve și predictor.py este punctul de intrare pentru servire, cu artefactul model care este încărcat atunci când începeți implementarea. Pentru mai multe informații, vezi Utilizați propriul cod de inferență cu serviciile de găzduire.

Orchestrați-vă fluxul de lucru cu SageMaker Pipelines

Ultimul pas este să împachetați codul ca fluxuri de lucru ML end-to-end și să aplicați cele mai bune practici MLOps. În SageMaker, volumul de lucru pentru construirea modelului, un grafic aciclic direcționat (DAG), este gestionat de SageMaker Pipelines. Pipelines este un serviciu complet gestionat care sprijină orchestrarea și urmărirea liniei de date. În plus, deoarece Pipelines este integrat cu SDK-ul SageMaker Python, vă puteți crea pipeline în mod programatic folosind o interfață Python de nivel înalt pe care am folosit-o anterior în timpul pasului de antrenament.

Oferim un exemplu de cod pipeline pentru a ilustra implementarea la conductă.py.

Conducta include un pas de preprocesare pentru generarea setului de date, pas de antrenament, pas de condiție și pas de înregistrare a modelului. La sfârșitul fiecărei rulări, oamenii de știință ar putea dori să-și înregistreze modelul pentru controalele versiunii și să îl implementeze pe cel mai performant. Registrul de modele SageMaker oferă un loc central pentru a gestiona versiunile de model, modelele de catalog și pentru a declanșa implementarea automată a modelului cu starea de aprobare a unui anumit model. Pentru mai multe detalii, consultați Înregistrați și implementați modele cu Model Registry.

Într-un sistem ML, orchestrarea automată a fluxului de lucru ajută la prevenirea degradării performanței modelului, cu alte cuvinte, deviația modelului. Detectarea timpurie și proactivă a abaterilor datelor vă permite să luați măsuri corective, cum ar fi modelele de reinstruire. Puteți declanșa conducta SageMaker pentru a reanaliza o nouă versiune a modelului după ce au fost detectate abateri. Declanșarea unei conducte poate fi determinată și de Monitor de model Amazon SageMaker, care monitorizează continuu calitatea modelelor aflate în producție. Cu capacitatea de captare a datelor de a înregistra informații, Model Monitor acceptă monitorizarea datelor și a calității modelului, părtinire și monitorizarea declinului atribuirii caracteristicilor. Pentru mai multe detalii, vezi Monitorizați modelele pentru calitatea datelor și a modelului, părtinire și explicabilitate.

Concluzie

În această postare, am ilustrat cum să rulăm cadrul PaddleOCR pe SageMaker pentru sarcini OCR. Pentru a ajuta oamenii de știință de date să se integreze cu ușurință la SageMaker, am parcurs ciclul de viață de dezvoltare ML, de la construirea de algoritmi, la instruire, până la găzduirea modelului ca serviciu web pentru inferență în timp real. Puteți utiliza codul șablon pe care l-am furnizat pentru a migra un cadru arbitrar pe platforma SageMaker. Încearcă-l pentru proiectul tău ML și spune-ne poveștile tale de succes.


Despre Autori

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 este cercetător senior aplicat la AWS. Are mulți ani de experiență de lucru în domeniul învățării automate. Are o bogată experiență practică în dezvoltarea și implementarea de soluții în construirea modelelor de învățare automată în algoritmi de predicție a lanțului de aprovizionare, sisteme de recomandare publicitară, zona OCR și NLP.

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, este arhitect de soluții specializat în învățare automată la AWS. A început cercetarea învățării automate la IRISA (Institutul de Cercetare în Știința Calculatoarelor și Sisteme Aleatoare) și are câțiva ani de experiență în construirea de aplicații industriale bazate pe inteligență artificială în viziunea computerizată, procesarea limbajului natural și predicția comportamentului utilizatorilor online. La AWS, el împărtășește expertiza domeniului și ajută clienții să deblocheze potențialul de afaceri și să genereze rezultate acționabile cu învățarea automată la scară. În afara serviciului, îi place să citească și să călătorească.

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 este dezvoltator de software la Amazon Lab 126. Are o experiență de peste 10 ani în dezvoltarea de produse bazate pe învățarea automată în diverse discipline, inclusiv personalizarea, procesarea limbajului natural și viziunea computerizată. În afara serviciului, îi place să alerge lung și să meargă cu bicicleta.

Timestamp-ul:

Mai mult de la Învățare automată AWS