Melatih dan mengevaluasi

Document AI memungkinkan Anda melatih versi pemroses baru menggunakan data pelatihan Anda sendiri dan mengevaluasi kualitas versi pemroses terhadap data pengujian Anda sendiri.

Hal ini berguna saat Anda ingin menggunakan pemroses kustom. Ada pemroses Document AI untuk jenis dokumen Anda, tetapi Anda dapat melatih ulang versi kustomnya untuk memenuhi kebutuhan Anda.

Pelatihan dan evaluasi biasanya dilakukan secara bersamaan untuk melakukan iterasi ke versi pemroses yang dapat digunakan dan berkualitas tinggi.

Document AI

Document AI memungkinkan Anda membuat ekstraktor kustom sendiri, yang mengekstrak entity dari dokumen dengan jenis tertentu, misalnya, item dalam menu atau nama dan informasi kontak dari resume.

Tidak seperti pemroses lainnya, pemroses kustom tidak dilengkapi dengan versi pemroses pretrained sehingga tidak dapat memproses dokumen apa pun hingga Anda melatih versi dari awal.

Untuk mulai menggunakan Document AI, lihat Mem-build prosesor kustom Anda sendiri.

Melatih ulang pemroses

Anda dapat meng-uptrain versi pemroses baru untuk meningkatkan akurasi data, mengekstrak kolom kustom tambahan dari dokumen, dan menambahkan dukungan untuk bahasa baru.

Pelatihan peningkatan berfungsi dengan menerapkan pemelajaran transfer pada versi pemroses pretrained Google dan umumnya memerlukan lebih sedikit data daripada pelatihan dari awal.

Untuk memulai, lihat Meningkatkan pelatihan pemroses terlatih.

Prosesor yang didukung

Tidak semua pemroses khusus mendukung pelatihan. Ini adalah prosesor yang mendukung pelatihan.

Pertimbangan dan rekomendasi data

Kualitas dan jumlah data Anda menentukan kualitas pelatihan, peningkatan pelatihan, dan evaluasi.

Mendapatkan serangkaian dokumen representatif di dunia nyata dan memberikan label berkualitas tinggi yang memadai sering kali merupakan bagian dari proses yang paling memakan waktu dan banyak menggunakan resource.

Jumlah dokumen

Jika semua dokumen Anda memiliki format yang serupa (misalnya, formulir tetap dengan variasi yang sangat rendah), maka lebih sedikit dokumen yang diperlukan untuk mencapai akurasi. Makin tinggi variasinya, makin banyak dokumen yang diperlukan.

Diagram berikut memberikan perkiraan kasar jumlah dokumen yang diperlukan agar Pengekstrak Dokumen Kustom dapat mencapai skor kualitas tertentu.

Variasi rendah Variasi tinggi
processor-training-and-evaluation-overview-1 processor-training-and-evaluation-overview-2

Pelabelan data

Pertimbangkan opsi untuk memberi label pada dokumen dan pastikan Anda memiliki cukup resource untuk menganotasi dokumen dalam set data.

Melatih model

Pemroses ekstraktor kustom dapat menggunakan berbagai jenis model bergantung pada kasus penggunaan tertentu dan data pelatihan yang tersedia.

  • Model kustom: model yang menggunakan data pelatihan berlabel.
    • Berbasis template: dokumen dengan tata letak tetap.
    • Berbasis model: dokumen dengan beberapa variasi tata letak.
  • Model AI generatif: berdasarkan model dasar terlatih yang memerlukan pelatihan tambahan minimal.

Tabel berikut mengilustrasikan kasus penggunaan yang sesuai dengan setiap jenis model.

Model kustom AI Generatif
Berbasis template Berbasis model
Variasi tata letak Tidak ada Rendah hingga sedang Tinggi
Jumlah teks bentuk bebas (misalnya, paragraf dalam kontrak) Rendah Rendah Tinggi
Jumlah data pelatihan yang diperlukan Rendah Tinggi Rendah
Akurasi dengan data pelatihan terbatas Lebih tinggi Lebih rendah Lebih tinggi

Pelajari cara Menyesuaikan pemroses dengan deskripsi properti.

Kapan harus menggunakan pemroses lain

Berikut adalah beberapa contoh saat Anda mungkin ingin mempertimbangkan opsi selain Document AI Document AI Workbench, atau menyesuaikan alur kerja Anda.

  • Format input berbasis teks tertentu (.txt, .html, .docx, .md, dan sebagainya) tidak didukung oleh Document AI Document AI Workbench. Pertimbangkan penawaran pemrosesan bahasa bawaan atau kustom lainnya di Google Cloud, seperti Cloud Natural Language API.
  • Skema Pengekstrak Dokumen Kustom mendukung hingga 150 label entitas. Jika logika bisnis Anda memerlukan lebih dari 150 entity dalam definisi skema, pertimbangkan untuk melatih beberapa pemroses, yang masing-masing menargetkan subset entity.

Cara melatih pemroses

Dengan asumsi bahwa Anda telah membuat pemroses yang mendukung pelatihan atau pelatihan ulang dan memberi label pada set data, Anda dapat melatih versi pemroses baru dari awal. Atau, Anda dapat melakukan pelatihan ulang versi prosesor baru berdasarkan versi yang sudah ada.

Melatih versi pemroses

UI Web

  1. Di konsol Google Cloud, buka tab Pelatihan di pemroses Anda.

    Buka Galeri Prosesor

  2. Klik Edit Skema untuk membuka halaman Kelola Label. Verifikasi label pemroses.

    Label yang diaktifkan pada saat pelatihan menentukan entity yang diekstrak oleh versi prosesor baru Anda. Jika label tidak aktif dalam skema, versi pemroses tidak mengekstrak label tersebut, meskipun dokumen diberi label.

  3. Pada tab Train, klik View Label Stats dan verifikasi set pengujian dan pelatihan Anda. Dokumen yang berlabel otomatis, tidak berlabel, atau tidak ditetapkan dikecualikan dari pelatihan dan evaluasi.

  4. Klik Train new version.

    Nama Versi menentukan kolom name dari processorVersion.

    processor-training-and-evaluation-overview-3

  5. Klik Start training dan tunggu hingga versi prosesor baru Anda dilatih dan dievaluasi.

    Anda dapat memantau progres pelatihan di tab Kelola Versi:

    processor-training-and-evaluation-overview-4

  6. Klik tab Evaluate & Test untuk melihat seberapa baik performa versi prosesor baru Anda pada set pengujian. Untuk mengetahui informasi selengkapnya, lihat Mengevaluasi versi prosesor.

Python

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Document AI.

Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


from typing import Optional

from google.api_core.client_options import ClientOptions
from google.cloud import documentai  # type: ignore

# TODO(developer): Uncomment these variables before running the sample.
# project_id = 'YOUR_PROJECT_ID'
# location = 'YOUR_PROCESSOR_LOCATION' # Format is 'us' or 'eu'
# processor_id = 'YOUR_PROCESSOR_ID'
# processor_version_display_name = 'new-processor-version'
# train_data_uri = 'gs://bucket/directory/' # (Optional)
# test_data_uri = 'gs://bucket/directory/' # (Optional)


def train_processor_version_sample(
    project_id: str,
    location: str,
    processor_id: str,
    processor_version_display_name: str,
    train_data_uri: Optional[str] = None,
    test_data_uri: Optional[str] = None,
) -> None:
    # You must set the api_endpoint if you use a location other than 'us', e.g.:
    opts = ClientOptions(api_endpoint=f"{location}-documentai.googleapis.com")

    client = documentai.DocumentProcessorServiceClient(client_options=opts)

    # The full resource name of the processor
    # e.g. `projects/{project_id}/locations/{location}/processors/{processor_id}
    parent = client.processor_path(project_id, location, processor_id)

    processor_version = documentai.ProcessorVersion(
        display_name=processor_version_display_name
    )

    # If train/test data is not supplied, the default sets in the Cloud Console will be used
    input_data = documentai.TrainProcessorVersionRequest.InputData(
        training_documents=documentai.BatchDocumentsInputConfig(
            gcs_prefix=documentai.GcsPrefix(gcs_uri_prefix=train_data_uri)
        ),
        test_documents=documentai.BatchDocumentsInputConfig(
            gcs_prefix=documentai.GcsPrefix(gcs_uri_prefix=test_data_uri)
        ),
    )

    request = documentai.TrainProcessorVersionRequest(
        parent=parent, processor_version=processor_version, input_data=input_data
    )

    operation = client.train_processor_version(request=request)
    # Print operation details
    print(operation.operation.name)
    # Wait for operation to complete
    response = documentai.TrainProcessorVersionResponse(operation.result())

    metadata = documentai.TrainProcessorVersionMetadata(operation.metadata)

    print(f"New Processor Version:{response.processor_version}")
    print(f"Training Set Validation: {metadata.training_dataset_validation}")
    print(f"Test Set Validation: {metadata.test_dataset_validation}")

Men-deploy dan menggunakan versi pemroses

Anda dapat men-deploy dan mengelola versi prosesor seperti versi prosesor lainnya. Untuk mengetahui informasi selengkapnya, lihat Mengelola versi pemroses.

Setelah di-deploy, Anda dapat Mengirim permintaan pemrosesan ke pemroses kustom.

Menonaktifkan atau menghapus pemroses

Jika tidak ingin lagi menggunakan prosesor, Anda dapat menonaktifkan atau menghapusnya. Jika menonaktifkan prosesor, Anda dapat mengaktifkannya kembali. Jika menghapus pemroses, Anda tidak dapat memulihkannya.

  1. Di panel Document AI di sebelah kiri, klik Pemroses saya.

  2. Klik titik vertikal di sebelah kanan nama prosesor. Klik Nonaktifkan prosesor atau Hapus prosesor.

Untuk mengetahui informasi selengkapnya, lihat Mengelola versi pemroses.

Enkripsi data pelatihan

Data pelatihan Document AI disimpan di Cloud Storage dan dapat mengenkripsi dengan Kunci enkripsi yang dikelola pelanggan jika diperlukan.

Penghapusan data pelatihan

Setelah tugas pelatihan Document AI selesai, semua data pelatihan yang disimpan di Cloud Storage akan berakhir masa berlakunya setelah periode retensi dua hari. Aktivitas penghapusan data berikutnya akan mengikuti proses yang dijelaskan dalam Penghapusan data di Google Cloud.

Harga

Tidak ada biaya untuk pelatihan atau pelatihan lanjutan. Anda membayar untuk hosting dan prediksi. Untuk mengetahui informasi selengkapnya, lihat Harga Document AI.