Document AI Çalışma Alanı - Eğitim

1. Giriş

Document AI, belgeler ve e-postalar gibi yapılandırılmamış verileri alıp bu verileri anlamayı, analiz etmeyi ve kullanmayı kolaylaştıran bir belge anlama çözümüdür.

Document AI Workbench üzerinden yeniden eğitme özelliğini kullanarak, Özel Belge Türleri için ek etiketli örnekler sağlayıp yeni bir model sürümü oluşturarak daha yüksek belge işleme doğruluğu elde edebilirsiniz.

Bu laboratuvarda, Fatura Ayrıştırıcı işlemcisi oluşturacak, işlemciyi yeniden eğitme için yapılandıracak, örnek belgeleri etiketleyecek ve işlemciyi yeniden eğiteceksiniz.

Bu laboratuvarda kullanılan belge veri kümesi, kurgusal bir boru şirketine ait rastgele oluşturulmuş faturalardan oluşur.

Ön koşullar

Bu codelab, diğer Document AI codelab'lerinde sunulan içeriklere dayanmaktadır.

Devam etmeden önce aşağıdaki Codelab'leri tamamlamanız önerilir.

Neler öğreneceksiniz?

  • Fatura Ayrıştırıcı işlemcisi için ek eğitim yapılandırma
  • Ek açıklama aracını kullanarak Document AI eğitim verilerini etiketleyin.
  • Yeni bir model sürümü eğitin.
  • Yeni model sürümünün doğruluğunu değerlendirin.

Gerekenler

2. Hazırlanma

Bu codelab'de, Giriş Codelab'inde listelenen Document AI kurulum adımlarını tamamladığınız varsayılır.

Lütfen devam etmeden önce aşağıdaki adımları tamamlayın:

3. İşleyici oluşturma

Bu laboratuvarda kullanmak üzere öncelikle bir Fatura Ayrıştırıcı işlemcisi oluşturmanız gerekir.

  1. Konsolda Document AI'a Genel Bakış sayfasına gidin.

docai-uptraining-codelab-01

  1. İşleyici Oluştur'u tıklayın, Özel'e gidin (veya arama çubuğuna "Fatura Ayrıştırıcı" yazın) ve Fatura Ayrıştırıcı'yı seçin.

docai-uptraining-codelab-02

  1. codelab-invoice-uptraining adını verin (veya hatırlayacağınız başka bir ad) ve listede size en yakın bölgeyi seçin.

docai-uptraining-codelab-03

  1. İşlemcinizi oluşturmak için Oluştur'u tıklayın. Ardından İşlemciye Genel Bakış sayfasını görürsünüz.

docai-uptraining-codelab-04

4. Veri kümesi oluşturma

İşlemcimizi eğitmek için, işlemcinin çıkarmak istediğimiz öğeleri tanımlamasına yardımcı olacak eğitim ve test verileri içeren bir veri kümesi oluşturmamız gerekir.

Veri kümesini depolamak için Cloud Storage'da yeni bir paket oluşturmanız gerekir. Not: Bu, belgelerinizin şu anda depolandığı paketle aynı olmamalıdır.

  1. Cloud Shell'i açıp paket oluşturmak için aşağıdaki komutları çalıştırın. Alternatif olarak, Cloud Console'da yeni bir paket oluşturun. Bu paket adını kaydedin, daha sonra ihtiyacınız olacak.
export PROJECT_ID=$(gcloud config get-value project)

gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
  1. Veri kümesi sekmesine gidip Veri kümesi oluştur'u tıklayın.

docai-uptraining-codelab-05

  1. Birinci adımda oluşturduğunuz paketin adını Hedef yolu alanına yapıştırın. (gs:// dahil edilmez)

docai-uptraining-codelab-06

  1. Veri kümesinin oluşturulmasını bekleyin. Ardından, Veri kümesi yönetimi sayfasına yönlendirilirsiniz.

docai-uptraining-codelab-07

5. Test dokümanı içe aktarma

Şimdi örnek bir fatura PDF'sini veri kümemize aktaralım.

  1. Belgeleri İçe Aktar'ı tıklayın.

docai-uptraining-codelab-08

  1. Bu laboratuvarda kullanabileceğiniz örnek bir PDF'miz var. Aşağıdaki bağlantıyı kopyalayıp Kaynak Yolu kutusuna yapıştırın. Şimdilik "Veri dağıtımı"nı "Atanmamış" olarak bırakın. İçe aktar'ı tıklayın.
cloud-samples-data/documentai/codelabs/uptraining/pdfs

docai-uptraining-codelab-09

  1. Belgenin içe aktarılmasını bekleyin. Testlerimde bu işlem 1 dakikadan kısa sürdü.

docai-uptraining-codelab-10

  1. İçe aktarma işlemi tamamlandığında dokümanı Veri kümesi yönetimi kullanıcı arayüzünde görürsünüz. Etiketleme konsoluna girmek için bu seçeneği tıklayın.

docai-uptraining-codelab-11

6. Test Dokümanını Etiketleme

Ardından, çıkarmak istediğimiz varlıklar için metin öğelerini ve etiketleri belirleyeceğiz. Bu etiketler, modelimizi bu belirli belge yapısını ayrıştıracak ve doğru türleri tanımlayacak şekilde eğitmek için kullanılır.

  1. Şu anda etiketleme konsolunda olmanız gerekir. Bu konsol aşağıdaki gibi görünür.

docai-uptraining-codelab-12

  1. "Metin Seç" aracını tıklayın, ardından "McWilliam Piping International Piping Company" metnini vurgulayın ve supplier_name etiketini atayın. Etiket adlarını aramak için metin filtresini kullanabilirsiniz.

docai-uptraining-codelab-13

  1. "14368 Pipeline Ave Chino, CA 91710" metnini vurgulayın ve supplier_address etiketini atayın.

docai-uptraining-codelab-14

  1. "10001" metnini vurgulayın ve invoice_id etiketini atayın.

docai-uptraining-codelab-15

  1. "2020-01-02" metnini vurgulayın ve due_date etiketini atayın.

docai-uptraining-codelab-16

  1. "Sınırlayıcı Kutu" aracına geçin. "Knuckle Couplers" (Mafsal Bağlantıları) metnini vurgulayın ve line_item/description etiketini atayın.

docai-uptraining-codelab-17

  1. "9" metnini vurgulayın ve line_item/quantity etiketini atayın.

docai-uptraining-codelab-18

  1. "74,43" metnini vurgulayın ve line_item/unit_price etiketini atayın.

docai-uptraining-codelab-19

  1. "669,87" metnini vurgulayın ve line_item/amount etiketini atayın.

docai-uptraining-codelab-20

  1. Sonraki iki satır öğesi için önceki 4 adımı tekrarlayın. Tamamlandığında şu şekilde görünmelidir.

docai-uptraining-codelab-21

  1. "Ara Toplam"ın yanındaki "1.419,57" metnini vurgulayın ve net_amount etiketini atayın.

docai-uptraining-codelab-22

  1. "113,57" metnini (verginin yanında) vurgulayın ve total_tax_amount etiketini atayın.

docai-uptraining-codelab-23

  1. "1.533,14" metnini (Toplam'ın yanında) vurgulayın ve total_amount etiketini atayın.

docai-uptraining-codelab-24

  1. "$" karakterlerinden birini vurgulayın ve currency etiketini atayın.

docai-uptraining-codelab-25

  1. Etiketlenen belge tamamlandığında aşağıdaki gibi görünmelidir. Belgedeki sınırlayıcı kutuyu veya sol taraftaki menüde etiket adını/değerini tıklayarak bu etiketlerde düzenleme yapabilirsiniz. Etiketleme işlemini tamamladığınızda Kaydet'i tıklayın.

docai-uptraining-codelab-26

  1. Etiketlerin ve değerlerin tam listesini aşağıda bulabilirsiniz.

Etiket Adı

Metin

supplier_name

McWilliam Piping International Piping Company

supplier_address

14368 Pipeline Ave Chino, CA 91710

invoice_id

10001

due_date

2020-01-02

line_item/description

Knuckle Couplers

line_item/quantity

9

line_item/unit_price

74,43

line_item/amount

669,87

line_item/description

PVC Boru 12 İnç

line_item/quantity

7

line_item/unit_price

15,90

line_item/amount

111,30

line_item/description

Bakır Boru

line_item/quantity

7

line_item/unit_price

91,20 ₺

line_item/amount

638,40

net_amount

1.419,57

total_tax_amount

113,57

total_amount

1.533,14

currency

$

7. Belgeyi Eğitim Setine Atama

Şimdi Veri kümesi yönetim konsoluna geri dönmüş olmanız gerekir. Etiketli ve etiketsiz doküman sayısının yanı sıra etkin etiket sayısının da değiştiğini fark edin.

docai-uptraining-codelab-27

  1. Bu belgeyi "Eğitim" veya "Test" kümesine atamamız gerekiyor. Belgeyi tıklayın.

docai-uptraining-codelab-28

  1. Sete ata'yı, ardından Eğitim'i tıklayın.

docai-uptraining-codelab-29

  1. Veri dağılımı sayılarının değiştiğini fark edin.

docai-uptraining-codelab-30

8. Önceden Etiketlenmiş Verileri İçe Aktarma

Document AI Uptraining için hem eğitim hem de test kümelerinde en az 10 belge ve her kümede her etiketten 10 örnek bulunması gerekir.

En iyi performansı elde etmek için her sette en az 50 belge ve her etiketten 50 örnek olması önerilir. Daha fazla eğitim verisi genellikle daha yüksek doğruluk anlamına gelir.

100 dokümanı manuel olarak etiketlemek uzun zaman alacağından bu laboratuvar için içe aktarabileceğiniz önceden etiketlenmiş dokümanlar hazırladık.

Önceden etiketlenmiş doküman dosyalarını Document.json biçiminde içe aktarabilirsiniz. Bunlar, bir işlemci çağrılıp Human in the Loop (HITL) kullanılarak doğruluğu onaylanan sonuçlar olabilir.

  1. Belgeleri İçe Aktar'ı tıklayın.

docai-uptraining-codelab-30

  1. Aşağıdaki Cloud Storage yolunu kopyalayıp yapıştırın ve Eğitim kümesine atayın.
cloud-samples-data/documentai/codelabs/uptraining/training
  1. Başka bir grup ekle'yi tıklayın. Ardından aşağıdaki Cloud Storage yolunu kopyalayıp yapıştırın ve Test (Test) kümesine atayın.
cloud-samples-data/documentai/codelabs/uptraining/test

docai-uptraining-codelab-31

  1. İçe aktar'ı tıklayın ve belgelerin içe aktarılmasını bekleyin. İşlenecek daha fazla belge olduğundan bu işlem, son seferkinden daha uzun sürer. Testlerimde bu işlem yaklaşık 6 dakika sürdü. Bu sayfadan ayrılıp daha sonra geri dönebilirsiniz.

docai-uptraining-codelab-32

  1. İşlem tamamlandığında belgeleri Veri kümesi yönetimi sayfasında görürsünüz.

docai-uptraining-codelab-33

9. Etiketleri Düzenle

Bu örnek için kullandığımız örnek dokümanlar, Fatura Ayrıştırıcı tarafından desteklenen tüm etiketleri içermez. Eğitimden önce kullanmadığımız etiketleri etkin değil olarak işaretlememiz gerekir. Uptraining'den önce özel etiket eklemek için de benzer adımları uygulayabilirsiniz.

  1. Sol alt köşedeki Etiketleri Yönet'i tıklayın.

docai-uptraining-codelab-33

  1. Etiket Yönetimi konsoluna yönlendirilirsiniz.

docai-uptraining-codelab-34

  1. YALNIZCA aşağıdaki etiketleri Etkin olarak işaretlemek için onay kutularını ve Devre dışı bırak/Etkinleştir düğmelerini kullanın.
    • currency
    • due_date
    • invoice_id
    • line_item/amount
    • line_item/description
    • line_item/quantity
    • line_item/unit_price
    • net_amount
    • supplier_address
    • supplier_name
    • total_amount
    • total_tax_amount
  2. Tamamlandığında konsol aşağıdaki gibi görünmelidir. İşlemi tamamladığınızda Kaydet'i tıklayın.

docai-uptraining-codelab-35

  1. Veri kümesi yönetim konsoluna dönmek için geri okunu tıklayın. 0 örneğe sahip etiketlerin Etkin değil olarak işaretlendiğini unutmayın.

docai-uptraining-codelab-36

10. İsteğe bağlı: Yeni içe aktarılan dokümanları otomatik olarak etiketleme

Mevcut bir dağıtılmış işlemci sürümüne sahip bir işlemci için etiketlenmemiş belgeleri içe aktarırken etiketleme konusunda zaman kazanmak için otomatik etiketlemeyi kullanabilirsiniz.

  1. Eğit sayfasında Belgeleri İçe Aktar'ı tıklayın.
  2. Aşağıdaki yolunu kopyalayıp yapıştırın. Bu dizinde 5 etiketlenmemiş fatura PDF'si var. Veri bölme açılır listesinden Eğitim'i seçin.
    cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
    
  3. Otomatik etiketleme bölümünde Otomatik etiketlemeyle içe aktar onay kutusunu işaretleyin.
  4. Dokümanları etiketlemek için mevcut bir işlemci sürümü seçin.
  • Örneğin: pretrained-invoice-v1.3-2022-07-15
  1. İçe aktar'ı tıklayın ve belgelerin içe aktarılmasını bekleyin. Bu sayfadan ayrılıp daha sonra geri dönebilirsiniz.
  • İşlem tamamlandığında dokümanlar, Otomatik etiketli bölümündeki Eğit sayfasında görünür.
  1. Otomatik olarak etiketlenmiş belgeleri, etiketlenmiş olarak işaretlemeden eğitim veya test için kullanamazsınız. Otomatik etiketli belgeleri görüntülemek için Otomatik etiketli bölümüne gidin.
  2. Etiketleme konsoluna girmek için ilk belgeyi seçin.
  3. Etiketlerin, sınırlayıcı kutuların ve değerlerin doğru olduğundan emin olun. Atlanan değerleri etiketleyin.
  4. İşiniz bittiğinde Etiketlendi olarak işaretle'yi seçin.
  5. Otomatik etiketlenen her belge için etiket doğrulama işlemini tekrarlayın, ardından verileri eğitim için kullanmak üzere Eğit sayfasına dönün.

11. Modeli Eğitme

Artık Fatura Ayrıştırıcı'mızı eğitmeye başlayabiliriz.

  1. Yeni Sürümü Eğit'i tıklayın.

docai-uptraining-codelab-36

  1. Sürümünüze codelab-uptraining-test-1 gibi hatırlayacağınız bir ad verin. Temel sürüm, bu yeni sürümün oluşturulacağı model sürümüdür. Yeni bir işlemci kullanıyorsanız tek seçenek Google Pretrained Next with Uptraining olmalıdır.

docai-uptraining-codelab-37

  1. (İsteğe bağlı) Veri kümenizdeki etiketlerle ilgili metrikleri görmek için Etiket İstatistiklerini Görüntüle'yi de seçebilirsiniz.

docai-uptraining-codelab-38

  1. Uptraining sürecini başlatmak için Eğitimi Başlat'ı tıklayın. Veri kümesi yönetimi sayfasına yönlendirilirsiniz. Eğitim durumunu sağ tarafta görebilirsiniz. Eğitimin tamamlanması birkaç saat sürer. Bu sayfadan ayrılıp daha sonra geri dönebilirsiniz.

docai-uptraining-codelab-39

  1. Sürüm adını tıkladığınızda, sürüm kimliğini ve eğitim işinin mevcut durumunu gösteren Sürümleri Yönet sayfasına yönlendirilirsiniz.

docai-uptraining-codelab-40

12. Yeni model sürümünü test etme

Eğitim işi tamamlandıktan sonra (testlerimde yaklaşık 1 saat sürdü) yeni model sürümünü test edebilir ve tahminler için kullanmaya başlayabilirsiniz.

  1. Sürümleri Yönet sayfasına gidin. Burada mevcut durumu ve F1 puanını görebilirsiniz.

docai-uptraining-codelab-41

  1. Bu model sürümünün kullanılabilmesi için önce dağıtılması gerekir. Sağ taraftaki dikey noktaları tıklayın ve Sürümü Dağıt'ı seçin.

docai-uptraining-codelab-42

  1. Sürümün dağıtılmasını bekleyin ve pop-up pencereden Dağıt'ı seçin. Bu işlemin tamamlanması birkaç dakika sürer. Bu sürüm dağıtıldıktan sonra Varsayılan Sürüm olarak da ayarlayabilirsiniz.

docai-uptraining-codelab-43

  1. Dağıtım tamamlandıktan sonra Değerlendir sekmesine gidin. Ardından, Sürüm açılır listesini tıklayın ve yeni oluşturduğumuz sürümü seçin.

docai-uptraining-codelab-44

  1. Bu sayfada, F1 puanı, hassasiyet ve geri çağırma gibi değerlendirme metriklerini hem tam belge hem de tek tek etiketler için görüntüleyebilirsiniz. Bu metrikler hakkında daha fazla bilgiyi AutoML belgelerinde bulabilirsiniz.
  2. Aşağıda bağlantısı verilen PDF dosyasını indirin. Bu, eğitim veya test kümesine dahil edilmemiş bir örnek dokümandır.

  1. Upload Test Document'ı (Test Belgesi Yükle) tıklayın ve PDF dosyasını seçin.

docai-uptraining-codelab-45

  1. Ayıklanan öğeler aşağıdaki gibi görünmelidir.

docai-uptraining-codelab-46

13. Sonuç

Tebrikler, Fatura Ayrıştırıcı'yı eğitmek için Document AI'ı başarıyla kullandınız. Artık bu işlemciyi, faturaları ayrıştırmak için diğer tüm Özel İşlemciler gibi kullanabilirsiniz.

İşleme yanıtının nasıl ele alınacağını incelemek için Specialized Processors Codelab'e bakabilirsiniz.

Temizleme

Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız:

  • Cloud Console'da Kaynakları yönetin sayfasına gidin.
  • Proje listesinde projenizi seçin ve Sil'i tıklayın.
  • İletişim kutusunda proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.

Kaynaklar

Lisans

Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.