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.
- Document AI ile Optik Karakter Tanıma (OCR) (Python)
- Document AI ile Form Ayrıştırma (Python)
- Document AI ile Özel İşlemciler (Python)
- Python ile Document AI işlemcilerini yönetme
- Document AI: İnsan Destekli Yapay Zeka
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.
- Konsolda Document AI'a Genel Bakış sayfasına gidin.

- İş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.

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

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

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.
- 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"
- Veri kümesi sekmesine gidip Veri kümesi oluştur'u tıklayın.

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

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

5. Test dokümanı içe aktarma
Şimdi örnek bir fatura PDF'sini veri kümemize aktaralım.
- Belgeleri İçe Aktar'ı tıklayın.

- 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

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

- İç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.

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.
- Şu anda etiketleme konsolunda olmanız gerekir. Bu konsol aşağıdaki gibi görünür.

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

- "14368 Pipeline Ave Chino, CA 91710" metnini vurgulayın ve
supplier_addressetiketini atayın.

- "10001" metnini vurgulayın ve
invoice_idetiketini atayın.

- "2020-01-02" metnini vurgulayın ve
due_dateetiketini atayın.

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

- "9" metnini vurgulayın ve
line_item/quantityetiketini atayın.

- "74,43" metnini vurgulayın ve
line_item/unit_priceetiketini atayın.

- "669,87" metnini vurgulayın ve
line_item/amountetiketini atayın.

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

- "Ara Toplam"ın yanındaki "1.419,57" metnini vurgulayın ve
net_amountetiketini atayın.

- "113,57" metnini (verginin yanında) vurgulayın ve
total_tax_amountetiketini atayın.

- "1.533,14" metnini (Toplam'ın yanında) vurgulayın ve
total_amountetiketini atayın.

- "$" karakterlerinden birini vurgulayın ve
currencyetiketini atayın.

- 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.

- Etiketlerin ve değerlerin tam listesini aşağıda bulabilirsiniz.
Etiket Adı | Metin |
| McWilliam Piping International Piping Company |
| 14368 Pipeline Ave Chino, CA 91710 |
| 10001 |
| 2020-01-02 |
| Knuckle Couplers |
| 9 |
| 74,43 |
| 669,87 |
| PVC Boru 12 İnç |
| 7 |
| 15,90 |
| 111,30 |
| Bakır Boru |
| 7 |
| 91,20 ₺ |
| 638,40 |
| 1.419,57 |
| 113,57 |
| 1.533,14 |
| $ |
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.

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

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

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

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.
- Belgeleri İçe Aktar'ı tıklayın.

- 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
- 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

- İç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.

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

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.
- Sol alt köşedeki Etiketleri Yönet'i tıklayın.

- Etiket Yönetimi konsoluna yönlendirilirsiniz.

- 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.
currencydue_dateinvoice_idline_item/amountline_item/descriptionline_item/quantityline_item/unit_pricenet_amountsupplier_addresssupplier_nametotal_amounttotal_tax_amount
- Tamamlandığında konsol aşağıdaki gibi görünmelidir. İşlemi tamamladığınızda Kaydet'i tıklayın.

- 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.

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.
- Eğit sayfasında Belgeleri İçe Aktar'ı tıklayın.
- 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 - Otomatik etiketleme bölümünde Otomatik etiketlemeyle içe aktar onay kutusunu işaretleyin.
- Dokümanları etiketlemek için mevcut bir işlemci sürümü seçin.
- Örneğin:
pretrained-invoice-v1.3-2022-07-15
- İç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.
- 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.
- Etiketleme konsoluna girmek için ilk belgeyi seçin.
- Etiketlerin, sınırlayıcı kutuların ve değerlerin doğru olduğundan emin olun. Atlanan değerleri etiketleyin.
- İşiniz bittiğinde Etiketlendi olarak işaretle'yi seçin.
- 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.
- Yeni Sürümü Eğit'i tıklayın.

- Sürümünüze
codelab-uptraining-test-1gibi 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.

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

- 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.

- 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.

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.
- Sürümleri Yönet sayfasına gidin. Burada mevcut durumu ve F1 puanını görebilirsiniz.

- 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.

- 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.

- 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.

- 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.
- 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.
- Upload Test Document'ı (Test Belgesi Yükle) tıklayın ve PDF dosyasını seçin.

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

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
- Document AI Workbench Belgeleri
- The Future of Documents - YouTube Playlist
- Document AI Belgeleri
- Document AI Python İstemci Kitaplığı
- Document AI örnekleri
Lisans
Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.