1. Giriş
Document AI; belgeler ve e-postalar gibi yapılandırılmamış verileri alarak verilerin anlaşılmasını, analiz edilmesini ve kullanılmasını kolaylaştıran bir belge anlama çözümüdür.
Document AI Workbench üzerinden yukarı eğitim sayesinde, Özel Belge Türleri için ek etiketli örnekler sağlayıp yeni bir model sürümü oluşturarak daha yüksek doküman işleme doğruluğu elde edebilirsiniz.
Bu laboratuvarda bir Fatura Ayrıştırıcı işlemcisi oluşturacak, yukarı eğitim için işlemciyi yapılandıracak, örnek dokümanları etiketleyecek ve işlemciyi eğiteceksiniz.
Bu laboratuvarda kullanılan belge veri kümesi, hayali bir borulama şirketi için rastgele oluşturulan faturalardan oluşur.
Ön koşullar
Bu codelab'de, diğer Document AI Codelab'lerinde sunulan içerikler temel alınır.
Devam etmeden önce aşağıdaki Codelab'leri tamamlamanız önerilir.
- Document AI (Python) ile Optik Karakter Tanıma (OCR)
- Document AI ile Form Ayrıştırma (Python)
- Document AI (Python) kullanan Özel İşlemciler
- Document AI işlemcilerini Python ile yönetme
- Document AI: Döngüdeki İnsan
Neler öğreneceksiniz?
- Fatura Ayrıştırıcı işleyen için Uptraining'i 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. Kurulum
Bu codelab'de, Tanıtım Codelab'de listelenen Document AI Kurulum adımlarını tamamladığınız varsayılır.
Devam etmeden önce lütfen aşağıdaki adımları tamamlayın:
3. İşlemci Oluşturma
Bu laboratuvarda kullanmak için önce bir Fatura Ayrıştırıcı işlemcisi oluşturmanız gerekir.
- Konsolda Document AI Overview (Document AI'a Genel Bakış) sayfasına gidin.
- İşleyen Oluştur'u tıklayın, Uzman'a gidin (veya arama çubuğuna "Fatura Ayrıştırıcı" yazın) ve Fatura Ayrıştırıcı'yı seçin.
- Hedefe
codelab-invoice-uptraining
adını (veya hatırlayacağınız başka bir ad) verin ve listeden en yakın bölgeyi seçin.
- İşleyicinizi oluşturmak için Oluştur'u tıklayın. İşlemciye Genel Bakış sayfasını görüyor olmanız gerekir.
4. Veri Kümesi Oluştur
Veri işleyeni eğitmek için, ayıklamak istediğimiz varlıkları tespit etmesine yardımcı olacak eğitim ve test verilerini 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 paket, dokümanlarınızın şu anda depolandığı paketle aynı olmamalıdır.
- Cloud Shell'i açın ve paket oluşturmak için aşağıdaki komutları çalıştırın. Alternatif olarak Cloud Console'da yeni bir paket oluşturabilirsiniz. Daha sonra ihtiyacınız olacak bu paket adını kaydedin.
export PROJECT_ID=$(gcloud config get-value project)
gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
- Veri Kümesi sekmesine gidin ve Veri Kümesi Oluştur'u tıklayın
- Birinci adımda oluşturduğunuz paketteki paket adını Hedef Yol alanına yapıştırın. (
gs://
eklemeyin)
- Veri kümesinin oluşturulmasını bekleyin. Oluşturulduğunda, veri kümesi yönetimi sayfasına yönlendirilir.
5. Test Dokümanı İçe Aktar
Şimdi örnek bir fatura PDF'sini veri kümemize aktaralım.
- Dokümanları İç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. "Verileri bölme"den ayrılın "Atanmamış" olarak . Import'u (İçe aktar) tıklayın.
cloud-samples-data/documentai/codelabs/uptraining/pdfs
- Dokümanın içe aktarılmasını bekleyin. Bu işlem, testlerimde 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 simgeyi tıklayın.
6. Test Dokümanını Etiketle
Ardından, ayıklamak istediğimiz varlıklar için metin öğelerini ve etiketleri belirleyeceğiz. Bu etiketler, bu belirli belge yapısını ayrıştıracak ve doğru türleri tanımlayacak şekilde modelimizi eğitmek için kullanılacaktır.
- Şimdi etiketleme konsolunda aşağıdakine benzer bir görünümde olmanız gerekir.
- "Metni seç"i tıklayın Araç, ardından "McWilliam Piping International Piping Company" metnini vurgula ve
supplier_name
etiketini atayın. Etiket adlarını aramak için metin filtresini kullanabilirsiniz.
- "14368 Pipeline Ave Chino, CA 91710" metnini vurgula ve
supplier_address
etiketini atayın.
- "10001" metnini vurgula ve
invoice_id
etiketini atayın.
- "02.01.2020" metnini vurgula ve
due_date
etiketini atayın.
- "Sınırlayıcı Kutu"ya geç aracını kullanın. "Knuckle Coupler" metnini vurgula ve
line_item/description
etiketini atayın.
- "9" metnini vurgula ve
line_item/quantity
etiketini atayın.
- "74.43" metnini vurgula ve
line_item/unit_price
etiketini atayın.
- "669.87" metnini vurgula ve
line_item/amount
etiketini atayın.
- Sonraki iki satır öğesi için önceki 4 adımı tekrarlayın. İşlem tamamlandığında aşağıdaki gibi görünecektir.
- "1,419.57" metnini vurgula (Alt toplam'ın yanında) tıklayın ve
net_amount
etiketini atayın.
- "113.57" metnini vurgula (Vergi ifadesinin yanında) ve
total_tax_amount
etiketini atayın.
- "1,533.14" metnini vurgula (Toplam'ın yanında) ve
total_amount
etiketini atayın.
- "$" işaretlerinden birini vurgulayın karakterlerini girin ve
currency
etiketini atayın.
- Tamamlandığında etiketlenen belge şu şekilde görünmelidir. Dokümandaki sınırlayıcı kutuyu veya sol taraftaki menüde etiket adını/değerini tıklayarak bu etiketlerde ayarlamalar yapabileceğinizi unutmayın. Etiketleme işlemini tamamladığınızda Kaydet'i tıklayın.
- Etiketlerin ve değerlerin tam listesini burada bulabilirsiniz
Etiket Adı | Metin |
| McWilliam Piping Uluslararası Boru Şirketi |
| 14368 Pipeline Ave Chino, CA 91710 |
| 10001 |
| 2020-01-02 |
| Mafsallı Kuplajlar |
| 9 |
| 74,43 |
| 669,87 |
| 12 İnç PVC Boru |
| 7 |
| 15,90 |
| 111,30 |
| Bakır Boru |
| 7 |
| 91,20 |
| 638,40 |
| 1.419,57 |
| 113,57 |
| 1.533,14 |
| $ |
7. Eğitim Setine Doküman Ata
Ş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ğine dikkat edin.
- Bu belgeyi "Eğitim" veya "Test" yapın ayarlandı. Dokümanı tıklayın.
- Assignment to Set'i (Küme Ata), ardından Eğitim'i tıklayın.
- Veri Bölme sayılarının değiştiğini fark edeceksiniz.
8. Önceden Etiketlenmiş Verileri İçe Aktar
Document AI Uptraining, hem eğitim hem de test kümelerinde en az 10 belgenin yanı sıra her kümede her etiketin 10 örneği gerektirir.
En iyi performans için her etiketten en az 50 örnek olacak şekilde, her grupta en az 50 dokümanın olması önerilir. Daha fazla eğitim verisi, genellikle daha yüksek doğruluk anlamına gelir.
100 dokümanı manuel olarak etiketlemek uzun sürer. Bu nedenle, bu laboratuvar için içe aktarabileceğiniz önceden etiketlenmiş bazı dokümanlarımız mevcuttur.
Önceden etiketlenmiş doküman dosyalarını Document.json
biçiminde içe aktarabilirsiniz. Bunlar, bir işleyenin çağrılması ve Human in the Loop (HITL) (Döngüdeki İnsan İnsanı) aracını kullanarak doğruluğun doğrulanmasıyla sağlanabilir.
- Dokümanları İçe Aktar'ı tıklayın.
- Aşağıdaki Cloud Storage yolunu kopyalayıp yapıştırın ve Eğitim grubuna atayın.
cloud-samples-data/documentai/codelabs/uptraining/training
- Başka Bir Paket Ekle'yi tıklayın. Ardından aşağıdaki Cloud Storage yolunu Kopyalayın/Yapıştırın ve Test grubuna atayın.
cloud-samples-data/documentai/codelabs/uptraining/test
- İçe Aktar'ı tıklayın ve dokümanların içe aktarılmasını bekleyin. İşlenecek daha fazla belge olduğu için bu işlem geçen zamandan daha uzun sürecek. Yaptığım testlerde bu işlem yaklaşık 6 dakika sürdü. Bu sayfadan ayrılıp daha sonra geri dönebilirsiniz.
- İşlem tamamlandığında dokümanları Veri Kümesi yönetimi sayfasında görebilirsiniz.
9. Etiketleri Düzenle
Bu örnek için kullandığımız örnek belgeler, Fatura Ayrıştırıcı tarafından desteklenen her etiketi içermiyor. Eğitimden önce, kullanmadığımız etiketleri "etkin değil" olarak işaretlememiz gerekecek. Ayrıca, Uptraining'ten önce özel bir etiket eklemek için benzer adımları uygulayabilirsiniz.
- Sol alt köşedeki Etiketleri Yönet'i tıklayın.
- Artık Etiket Yönetimi konsolundasınız.
- 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
- Tamamlandığında Console aşağıdaki gibi görünecektir. İşiniz bittiğinde Kaydet'i tıklayın.
- Veri kümesi yönetim konsoluna dönmek için Geri okunu tıklayın. 0 örneği içeren etiketlerin Etkin değil olarak işaretlendiğine dikkat edin.
10. İsteğe bağlı: Yeni içe aktarılan dokümanları otomatik olarak etiketleme
Dağıtılmış bir işlemci sürümüne sahip bir işlemci için etiketlenmemiş dokümanları içe aktarırken, etiketlemede zaman kazanmak üzere Otomatik etiketleme özelliğini kullanabilirsiniz.
- Tren sayfasında Dokümanları İçe Aktar'ı tıklayın.
- Aşağıdaki yolunu kopyalayıp yapıştırın. Bu dizin 5 etiketsiz fatura PDF'si içerir. 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 seçin.
- Dokümanları etiketlemek için mevcut bir işlemci sürümünü seçin.
- Örneğin:
pretrained-invoice-v1.3-2022-07-15
- İçe Aktar'ı tıklayın ve dokümanların içe aktarılmasını bekleyin. Bu sayfadan ayrılıp daha sonra geri dönebilirsiniz.
- İşlem tamamlandığında belgeler, Eğitim sayfasındaki Otomatik etiketlenmiş bölümünde görünür.
- Otomatik olarak etiketlenen belgeleri, etiketli olarak işaretlemeden eğitim veya test amacıyla kullanamazsınız. Otomatik olarak etiketlenmiş dokümanları görüntülemek için Otomatik etiketli bölümüne gidin.
- Etiketleme konsoluna gireceğiniz ilk dokümanı seçin.
- Etiketleri, sınırlayıcı kutuları ve değerleri kontrol ederek doğru olduklarından emin olun. Dahil edilmeyen tüm değerleri etiketleyin.
- İşlemi tamamladığınızda Etiketli olarak işaretle'yi seçin.
- Otomatik olarak etiketlenen her belge için etiket doğrulamasını tekrarlayın, ardından verileri eğitimde kullanmak üzere Eğitim sayfasına dönün.
11. Modele Yükseltin
Şimdi Fatura Ayrıştırıcımızı eğitmeye hazırız.
- Yeni Sürümü Eğit'i tıklayın
- Kullandığınız sürüme kolay akılda kalacak bir ad verin (ör.
codelab-uptraining-test-1
). Temel sürüm, bu yeni sürümün temel alacağı model sürümüdür. Yeni bir işlemci kullanıyorsanız tek seçenek Ek Eğitim ile Google Önceden Eğitilmiş Sonraki 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 (Eğitim) sürecini başlatmak için Start Training'i (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ıklarsanız Sürümleri Yönet sayfasına yönlendirilirsiniz. Burada, Sürüm Kimliği ve Eğitim İşi'nin mevcut durumu gösterilir.
12. Yeni Model Sürümünü Test Etme
Eğitim İşi tamamlandıktan sonra (testlerim yaklaşık 1 saat sürdü), artık 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ü kullanılabilmesi için dağıtmamız gerekiyor. Sağ taraftaki dikey noktaları tıklayın ve Sürümü Dağıt'ı seçin.
- Sürümün dağıtılmasını beklerken pop-up pencerede Dağıt'ı seçin. Bu işlemin tamamlanması birkaç dakika sürer. Dağıtımdan sonra bu sürümü Varsayılan Sürüm olarak ayarlayabilirsiniz.
- Dağıtım tamamlandıktan sonra Değerlendir sekmesine gidin. Ardından Sürüm açılır menüsünü tıklayın ve yeni oluşturulan sürümümüzü seçin.
- Bu sayfada tüm dokümanın yanı sıra tek tek etiketler için F1 puanı, Hassasiyet ve Geri Çağırma gibi değerlendirme metriklerini görüntüleyebilirsiniz. Bu metrikler hakkında daha fazla bilgiye AutoML Belgeleri'nden ulaşabilirsiniz.
- Aşağıda bağlantısı verilen PDF dosyasını indirin. Bu, Eğitim veya Test kümesine dahil edilmeyen örnek bir belgedir.
- Test Dokümanı Yükle'yi tıklayıp PDF dosyasını seçin.
- Çıkarılan varlıklar aşağıdakine benzer bir görünümde olacaktır.
13. Sonuç
Tebrikler, Fatura Ayrıştırıcı'yı geliştirmek için Document AI'ı başarıyla kullandınız. Artık bu işlemciyi, herhangi bir Uzman İşleyen gibi faturaları ayrıştırmak için kullanabilirsiniz.
İşleme yanıtının nasıl ele alınacağını incelemek için Uzman İşleyenler Codelab'e bakabilirsiniz.
Temizleme
Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini önlemek amacıyla:
- Cloud Console'da Kaynakları yönetin sayfasına gidin.
- Proje listesinden projenizi seçin ve ardından Sil'i tıklayın.
- İletişim kutusuna proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.
Kaynaklar
- Document AI Workbench Belgeleri
- Belgelerin Geleceği - YouTube Oynatma Listesi
- 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.