Bagikan melalui


Pengambilan-Augmented Generation dengan Kecerdasan Dokumen Azure AI

Konten ini berlaku untuk: tanda centang v4.0 (pratinjau)

Pendahuluan

Retrieval-Augmented Generation (RAG) adalah pola desain yang menggabungkan Model Bahasa Besar (LLM) yang telah dilatih sebelumnya seperti ChatGPT dengan sistem pengambilan data eksternal untuk menghasilkan respons yang ditingkatkan yang menggabungkan data baru di luar data pelatihan asli. Menambahkan sistem pengambilan informasi ke aplikasi Anda memungkinkan Anda untuk mengobrol dengan dokumen Anda, menghasilkan konten yang menawan, dan mengakses kekuatan model Azure OpenAI untuk data Anda. Anda juga memiliki kontrol lebih besar atas data yang digunakan oleh LLM saat merumuskan respons.

Model Tata Letak Kecerdasan Dokumen adalah API analisis dokumen berbasis pembelajaran mesin tingkat lanjut. Model Tata Letak menawarkan solusi komprehensif untuk ekstraksi konten tingkat lanjut dan kemampuan analisis struktur dokumen. Dengan model Tata Letak, Anda dapat dengan mudah mengekstrak teks dan elemen struktural untuk membagi isi teks besar menjadi potongan yang lebih kecil dan bermakna berdasarkan konten semantik daripada pemisahan semena-mena. Informasi yang diekstrak dapat dengan mudah dihasilkan ke format Markdown, memungkinkan Anda untuk menentukan strategi penggugusan semantik Anda berdasarkan blok penyusun yang disediakan.

Cuplikan layar yang menggambarkan pemotongan semantik dengan RAG menggunakan Kecerdasan Dokumen Azure AI.

Potongan semantik

Kalimat panjang menantang untuk aplikasi pemrosesan bahasa alami (NLP). Terutama ketika terdiri dari beberapa klausa, kata benda kompleks atau frasa kata kerja, klausa relatif, dan pengelompokan kurung. Sama seperti manusia, sistem NLP juga perlu berhasil melacak semua dependensi yang disajikan. Tujuan dari potongan semantik adalah untuk menemukan fragmen semantik koheren dari representasi kalimat. Fragmen ini kemudian dapat diproses secara independen dan dikombinasikan ulang sebagai representasi semantik tanpa kehilangan informasi, interpretasi, atau relevansi semantik. Arti teks yang melekat digunakan sebagai panduan untuk proses penggugusan.

Strategi potongan data teks memainkan peran kunci dalam mengoptimalkan respons dan performa RAG. Berukuran tetap dan semantik adalah dua metode penggugusan yang berbeda:

  • Potongan berukuran tetap. Sebagian besar strategi potongan yang digunakan dalam RAG saat ini didasarkan pada segmen teks berukuran tetap yang dikenal sebagai gugus. Potongan berukuran tetap cepat, mudah, dan efektif dengan teks yang tidak memiliki struktur semantik yang kuat seperti log dan data. Namun tidak disarankan untuk teks yang memerlukan pemahaman semantik dan konteks yang tepat. Sifat ukuran tetap jendela dapat mengakibatkan pemisahan kata, kalimat, atau paragraf yang menghambat pemahaman dan mengganggu alur informasi dan pemahaman.

  • Potongan semantik. Metode ini membagi teks menjadi potongan berdasarkan pemahaman semantik. Batas pembagian difokuskan pada subjek kalimat dan menggunakan sumber daya komputasi yang signifikan secara algoritma kompleks. Namun, ia memiliki keuntungan berbeda untuk mempertahankan konsistensi semantik dalam setiap gugus. Ini berguna untuk ringkasan teks, analisis sentimen, dan tugas klasifikasi dokumen.

Pemotongan semantik dengan model Tata Letak Kecerdasan Dokumen

Markdown adalah bahasa markup terstruktur dan diformat dan input populer untuk mengaktifkan penggugusan semantik di RAG (Retrieval-Augmented Generation). Anda dapat menggunakan konten Markdown dari model Tata Letak untuk memisahkan dokumen berdasarkan batas paragraf, membuat gugus tertentu untuk tabel, dan menyempurnakan strategi penggugusan Anda untuk meningkatkan kualitas respons yang dihasilkan.

Manfaat menggunakan model Tata Letak

  • Pemrosesan yang disederhanakan. Anda dapat mengurai berbagai jenis dokumen, seperti PDF digital dan dipindai, gambar, file office (docx, xlsx, pptx), dan HTML, hanya dengan satu panggilan API.

  • Skalabilitas dan kualitas AI. Model Tata Letak sangat dapat diskalakan dalam Optical Character Recognition (OCR), ekstraksi tabel, dan analisis struktur dokumen. Ini mendukung 309 bahasa cetak dan 12 bahasa tulisan tangan, lebih lanjut memastikan hasil berkualitas tinggi yang didorong oleh kemampuan AI.

  • Kompatibilitas model bahasa besar (LLM). Output berformat Markdown model Tata Letak ramah LLM dan memfasilitasi integrasi yang mulus ke dalam alur kerja Anda. Anda dapat mengubah tabel apa pun dalam dokumen menjadi format Markdown dan menghindari upaya ekstensif mengurai dokumen untuk pemahaman LLM yang lebih besar.

Gambar teks diproses dengan Document Intelligence Studio dan output ke MarkDown menggunakan model Tata Letak

Cuplikan layar artikel koran yang diproses oleh model Tata Letak dan dihasilkan ke Markdown.

Gambar tabel diproses dengan Document Intelligence Studio menggunakan model Tata Letak

Cuplikan layar tabel yang diproses oleh model Tata Letak dan dihasilkan ke Markdown.

Memulai

Model Tata Letak Kecerdasan Dokumen 2024-07-31-preview dan 2023-10-31-preview mendukung opsi pengembangan berikut:

Siap untuk memulai?

Studio Kecerdasan Dokumen

Anda dapat mengikuti mulai cepat Document Intelligence Studio untuk memulai. Selanjutnya, Anda dapat mengintegrasikan fitur Kecerdasan Dokumen dengan aplikasi Anda sendiri menggunakan kode sampel yang disediakan.

  • Mulailah dengan model Tata Letak. Anda perlu memilih opsi Analisis berikut untuk menggunakan RAG di studio:

    **Required**

    • Jalankan rentang analisis → Dokumen saat ini.
    • Rentang halaman → Semua halaman.
    • Gaya format output → Markdown.

    **Optional**

    • Anda juga dapat memilih parameter deteksi opsional yang relevan.
  • Pilih Simpan.

    Cuplikan layar jendela dialog Analisis opsi dengan opsi yang diperlukan RAG di studio Kecerdasan Dokumen.

  • Pilih tombol Jalankan analisis untuk melihat output.

    Cuplikan layar tombol Jalankan Analisis di Studio Kecerdasan Dokumen.

SDK atau REST API

  • Anda dapat mengikuti mulai cepat Kecerdasan Dokumen untuk SDK bahasa pemrograman atau REST API pilihan Anda. Gunakan model Tata Letak untuk mengekstrak konten dan struktur dari dokumen Anda.

  • Anda juga dapat memeriksa repositori GitHub untuk sampel kode dan tips untuk menganalisis dokumen dalam format output markdown.

Membangun obrolan dokumen dengan potongan semantik

  • Azure OpenAI pada data Memungkinkan Anda menjalankan obrolan yang didukung di dokumen Anda. Azure OpenAI pada data Anda menerapkan model Tata Letak Kecerdasan Dokumen untuk mengekstrak dan mengurai data dokumen dengan memotong teks panjang berdasarkan tabel dan paragraf. Anda juga dapat menyesuaikan strategi penggugusan menggunakan skrip sampel Azure OpenAI yang terletak di repositori GitHub kami.

  • Azure AI Document Intelligence sekarang terintegrasi dengan LangChain sebagai salah satu pemuat dokumennya. Anda dapat menggunakannya untuk memuat data dan output dengan mudah ke format Markdown. Untuk informasi selengkapnya, lihat kode sampel kami yang memperlihatkan demo sederhana untuk pola RAG dengan Azure AI Document Intelligence sebagai pemuat dokumen dan Azure Search sebagai retriever di LangChain.

  • Sampel obrolan dengan kode akselerator solusi data Anda menunjukkan sampel pola RAG garis besar end-to-end. Ini menggunakan Azure AI Search sebagai retriever dan Azure AI Document Intelligence untuk pemuatan dokumen dan pemotongan semantik.

Gunakan huruf besar

Jika Anda mencari bagian tertentu dalam dokumen, Anda dapat menggunakan potongan semantik untuk membagi dokumen menjadi potongan yang lebih kecil berdasarkan header bagian yang membantu Anda menemukan bagian yang Anda cari dengan cepat dan mudah:


# Using SDK targeting 2024-02-29-preview or 2023-10-31-preview, make sure your resource is in one of these regions: East US, West US2, West Europe
# pip install azure-ai-documentintelligence==1.0.0b1
# pip install langchain langchain-community azure-ai-documentintelligence

from azure.ai.documentintelligence import DocumentIntelligenceClient

endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/"
key = "<api_key>"

from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader
from langchain.text_splitter import MarkdownHeaderTextSplitter

# Initiate Azure AI Document Intelligence to load the document. You can either specify file_path or url_path to load the document.
loader = AzureAIDocumentIntelligenceLoader(file_path="<path to your file>", api_key = key, api_endpoint = endpoint, api_model="prebuilt-layout")
docs = loader.load()

# Split the document into chunks base on markdown headers.
headers_to_split_on = [
    ("#", "Header 1"),
    ("##", "Header 2"),
    ("###", "Header 3"),
]
text_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on)

docs_string = docs[0].page_content
splits = text_splitter.split_text(docs_string)
splits

Langkah berikutnya