Persiapan

Azure AI services
Pencarian Azure AI
Azure OpenAI Service
Azure Machine Learning

Fase pertama pengembangan dan eksperimen Retrieval-Augmented Generation (RAG) adalah fase persiapan. Selama fase ini, Anda terlebih dahulu menentukan domain bisnis untuk solusi Anda. Setelah domain ditentukan, Anda memulai proses paralel untuk melakukan analisis dokumen, mengumpulkan dokumen, dan mengumpulkan pertanyaan sampel yang berkaitan dengan domain. Langkah-langkah dilakukan secara paralel karena saling terkait. Analisis dokumen membantu Anda menentukan dokumen pengujian dan kueri pengujian apa yang harus Anda kumpulkan. Mereka saling terkait lebih lanjut bahwa pertanyaan harus dapat dijawab oleh konten dalam dokumen dan dokumen harus menjawab pertanyaan yang relevan.

Artikel ini adalah bagian dari beberapa seri. Baca pengantar.

Menentukan domain solusi

Langkah pertama dalam proses ini adalah menentukan dengan jelas persyaratan bisnis untuk solusi atau kasus penggunaan. Persyaratan ini membantu menentukan pertanyaan seperti apa yang ingin ditangani solusi dan data sumber atau dokumen apa yang membantu mengatasi pertanyaan tersebut. Di tahap selanjutnya, domain solusi membantu menginformasikan strategi model penyematan Anda.

Analisis dokumen

Tujuan analisis dokumen adalah untuk mengumpulkan informasi yang cukup tentang korpus dokumen Anda untuk membantu Anda memahami:

  • Berbagai klasifikasi dokumen - Misalnya, apakah Anda memiliki spesifikasi produk, laporan triwulanan, kontrak asuransi mobil, kontrak asuransi kesehatan, dan sebagainya.
  • Jenis dokumen yang berbeda - Misalnya, apakah Anda memiliki PDF, file Markdown, file HTML, file DOCX, dan sebagainya.
  • Batasan keamanan - Misalnya, apakah dokumen dapat diakses secara publik atau tidak, atau apakah memerlukan autentikasi dan otorisasi untuk mengaksesnya
  • Struktur dokumen - Misalnya, panjang dokumen, hentian topik, dan apakah dokumen memiliki gambar atau data tabular yang relevan secara kontekstual

Bagian berikut membahas bagaimana informasi ini membantu menginformasikan strategi pemuatan dan penggugusan Anda.

Klasifikasi dokumen

Anda perlu memahami berbagai klasifikasi dokumen untuk membantu Anda menentukan jumlah dokumen pengujian yang Anda butuhkan. Bagian analisis ini harus memberi tahu Anda tidak hanya klasifikasi tingkat tinggi seperti asuransi atau keuangan, tetapi juga subkelas, seperti asuransi kesehatan vs. dokumen asuransi mobil. Anda juga ingin memahami apakah subkelas memiliki struktur atau konten yang berbeda.

Tujuannya adalah untuk memahami semua varian dokumen yang berbeda yang Anda miliki. Pemahaman ini membantu Anda menentukan jumlah dan perincian dokumen pengujian yang Anda butuhkan. Anda tidak ingin lebih atau kurang merepresentasikan klasifikasi dokumen tertentu dalam eksperimen Anda.

Jenis dokumen

Memahami berbagai format file di korpus Membantu Anda menentukan jumlah dan perincian dokumen pengujian. Misalnya, jika Anda memiliki jenis dokumen PDF dan Office Open XML untuk laporan triwulanan, Anda memerlukan dokumen pengujian untuk setiap jenis dokumen. Memahami jenis dokumen juga membantu Anda memahami persyaratan teknis untuk memuat dan memotong dokumen Anda, seperti pustaka tertentu yang cocok untuk memproses format file tersebut.

Batasan keamanan

Memahami batasan keamanan sangat penting untuk menentukan strategi pemuatan dan potongan Anda. Misalnya, Anda perlu mengidentifikasi apakah beberapa atau semua dokumen Anda memerlukan autentikasi, otorisasi, atau visibilitas jaringan. Jika dokumen berada dalam perimeter yang aman, pastikan kode Anda dapat mengaksesnya, atau menerapkan proses untuk mereplikasi dokumen dengan aman ke lokasi yang dapat diakses untuk kode pemrosesan Anda.

Ketahuilah bahwa dokumen terkadang mereferensikan multimedia seperti gambar atau audio yang penting untuk konteks dokumen. Media tersebut mungkin juga tunduk pada kontrol akses serupa seperti dokumen itu sendiri. Jika media tersebut memerlukan autentikasi atau garis pandang jaringan, Anda perlu memastikan kode Anda dapat mengakses media, atau Anda memiliki proses sebelumnya yang memiliki akses yang dapat mereplikasi konten tersebut.

Jika beban kerja Anda mengharuskan pengguna yang berbeda hanya memiliki akses ke segmen dokumen atau dokumen yang berbeda, pastikan Anda memahami bagaimana Anda akan mempertahankan izin akses tersebut dalam solusi penggugusan Anda.

Struktur dokumen

Anda perlu memahami struktur dokumen, termasuk bagaimana dokumen ditata dan jenis konten dalam dokumen. Memahami struktur dan konten dokumen Anda membantu Anda membuat penentuan berikut:

  • Apakah dokumen memerlukan pra-pemrosesan untuk membersihkan kebisingan, mengekstrak media, memformat ulang, atau mengabaikan item anotasi
  • Apa dalam dokumen yang ingin Anda abaikan atau kecualikan
  • Apa dalam dokumen yang ingin Anda ambil
  • Bagaimana Anda ingin memotong dokumen
  • Cara Anda ingin menangani gambar, tabel, bagan, dan media tersemat lainnya

Berikut ini adalah beberapa pertanyaan terkategori yang dapat Anda gunakan untuk membantu Anda membuat beberapa penentuan ini.

Pertanyaan tentang item umum yang dapat Anda pertimbangkan untuk mengabaikan

Beberapa elemen struktural mungkin tidak menambahkan arti ke dokumen dan dapat diabaikan dengan aman saat memotong. Dalam beberapa situasi, elemen-elemen ini dapat menambahkan konteks yang berharga dan membantu kueri relevansi ke indeks Anda, tetapi tidak semua. Berikut ini adalah beberapa pertanyaan tentang fitur dokumen umum yang perlu Anda evaluasi untuk melihat apakah fitur tersebut menambahkan relevansi atau harus diabaikan.

  • Apakah dokumen berisi daftar isi?
  • Apakah ada header dan footer?
  • Apakah ada hak cipta atau penafian?
  • Apakah ada catatan kaki atau catatan akhir?
  • Apakah ada marka air?
  • Apakah ada anotasi atau komentar?

Pertanyaan yang membantu menginformasikan strategi pra-pemrosesan dan pemotongan

Pertanyaan berikut tentang struktur dokumen memberi Anda wawasan yang membantu Anda memahami apakah Anda perlu melakukan praproses dokumen untuk mempermudah pemrosesan dan membantu menginformasikan strategi penggugusan Anda.

  • Apakah ada data multikolom atau paragraf multikolom? Anda tidak ingin mengurai konten multi-kolom seolah-olah itu adalah satu kolom.
  • Bagaimana dokumen terstruktur? Misalnya, file HTML terkadang menggunakan tabel untuk tata letaknya yang perlu dibedakan dari data tabular yang disematkan.
  • Berapa banyak paragraf yang ada? Berapa lama paragrafnya? Apakah paragraf panjangnya kira-kira sama?
  • Bahasa, varian bahasa, atau dialek apa yang ada dalam dokumen?
  • Apakah dokumen berisi karakter Unicode?
  • Bagaimana angka diformat? Apakah mereka menggunakan koma atau desimal? Apakah mereka konsisten?
  • Apa dalam dokumen yang seragam dan apa yang tidak seragam?
  • Apakah ada struktur header di mana makna semantik dapat diekstraksi?
  • Apakah ada poin atau indentasi yang bermakna?

Pertanyaan mengenai gambar

Memahami gambar dalam dokumen membantu Anda menentukan strategi pemrosesan gambar. Anda perlu memahami informasi seperti apa jenis gambar yang Anda miliki, apakah gambar tersebut memiliki resolusi yang memadai untuk diproses, dan apakah gambar berisi semua informasi yang diperlukan. Pertanyaan berikut membantu Anda memahami persyaratan pemrosesan gambar Anda.

  • Apakah dokumen berisi gambar?
  • Resolusi apa gambarnya?
  • Apakah ada teks yang disematkan dalam gambar?
  • Apakah ada gambar abstrak yang tidak menambah nilai? Misalnya, ikon mungkin tidak menambahkan nilai semantik apa pun. Menambahkan deskripsi untuk gambar mungkin benar-benar merugikan, karena visual ikon umumnya tidak ada hubungannya dengan konten dokumen.
  • Apa hubungan antara gambar dan teks di sekitarnya? Tentukan apakah gambar memiliki konten yang berdiri sendiri atau apakah ada konteks di sekitar gambar yang harus Anda gunakan saat meneruskannya ke model bahasa besar untuk mendapatkan representasi tekstual. Keterangan adalah contoh teks di sekitarnya yang mungkin memiliki konteks berharga yang tidak disertakan dalam gambar.
  • Apakah ada representasi tekstual yang kaya dari gambar, seperti deskripsi aksesibilitas?

Pertanyaan tentang tabel, bagan, dan konten kaya lainnya

Memahami informasi apa yang dienkapsulasi dalam tabel, bagan, dan media lainnya membantu Anda memahami apa dan bagaimana Anda ingin memprosesnya. Pertanyaan berikut membantu Anda memahami tabel, bagan, dan persyaratan pemrosesan media lainnya.

  • Apakah dokumen memiliki bagan dengan angka?
  • Apakah dokumen berisi tabel?
    • Apakah tabel kompleks (tabel berlapis) atau tidak lengkap?
    • Apakah ada keterangan untuk tabel?
    • Berapa panjang tabel? Tabel panjang mungkin memerlukan header berulang dalam gugus.
  • Apakah ada jenis media tersemat lainnya seperti video atau audio?
  • Apakah ada persamaan matematika/notasi ilmiah dalam dokumen?

Mengumpulkan dokumen pengujian perwakilan

Dalam langkah ini, Anda mengumpulkan dokumen yang merupakan representasi terbaik dari dokumen yang Anda gunakan dalam solusi produksi Anda. Dokumen harus membahas kasus penggunaan yang ditentukan dan dapat menjawab pertanyaan yang dikumpulkan dalam fase paralel pengumpulan pertanyaan.

Pertimbangan

Pertimbangkan area ini saat mengevaluasi dokumen pengujian perwakilan potensial:

  • Pertinence - Dokumen harus memenuhi persyaratan bisnis aplikasi percakapan. Misalnya, jika Anda membangun bot obrolan yang ditugaskan untuk membantu pelanggan melakukan operasi perbankan, dokumen harus sesuai dengan persyaratan tersebut, seperti dokumen yang menunjukkan cara membuka atau menutup rekening bank. Dokumen harus dapat mengatasi pertanyaan pengujian yang dikumpulkan dalam langkah paralel. Jika dokumen tidak memiliki informasi yang relevan dengan pertanyaan, dokumen tidak dapat menghasilkan respons yang valid.
  • Representatif - Dokumen harus mewakili berbagai jenis dokumen yang digunakan solusi Anda. Misalnya, dokumen asuransi mobil berbeda dengan asuransi kesehatan atau dokumen asuransi jiwa. Misalkan kasus penggunaan memerlukan solusi untuk mendukung ketiga jenis, dan Anda hanya memiliki dua dokumen asuransi mobil. Solusi Anda akan berkinerja buruk untuk asuransi kesehatan dan jiwa. Anda harus memiliki setidaknya 2 untuk setiap variasi.
  • Kualitas dokumen fisik - Dokumen harus dalam bentuk yang dapat digunakan. Gambar yang dipindai, misalnya, mungkin tidak memungkinkan Anda mengekstrak informasi yang dapat digunakan.
  • Kualitas konten dokumen - Dokumen harus memiliki kualitas konten yang tinggi. Seharusnya tidak ada kesalahan ejaan atau kesalahan tata bahasa. Model bahasa besar tidak berkinerja baik jika Anda memberinya konten berkualitas buruk.

Faktor keberhasilan dalam langkah ini adalah secara kualitatif yakin bahwa Anda memiliki representasi dokumen pengujian yang baik untuk domain tertentu Anda.

Menguji panduan dokumen

  • Lebih suka dokumen nyata daripada sintetis. Dokumen nyata harus melalui proses pembersihan untuk menghapus informasi identitas pribadi (PII).
  • Untuk memastikan Anda menangani semua jenis skenario, termasuk skenario yang diprediksi di masa mendatang, pertimbangkan untuk secara selektif menambah dokumen Anda dengan data sintetis.
    • Jika Anda harus menggunakan data sintetis, lakukan yang terbaik untuk membuatnya sedekat mungkin dengan data nyata.
  • Pastikan bahwa dokumen dapat mengatasi pertanyaan yang sedang dikumpulkan.
  • Anda harus memiliki setidaknya dua dokumen untuk setiap varian dokumen.
  • Anda dapat menggunakan model bahasa besar atau alat lain untuk membantu mengevaluasi kualitas dokumen.

Mengumpulkan kueri pengujian

Dalam langkah ini, Anda mengumpulkan kueri pengujian yang Anda gunakan untuk mengevaluasi potongan, solusi pencarian, dan rekayasa prompt Anda. Anda melakukan ini di lockstep dengan mengumpulkan dokumen perwakilan, karena Anda tidak hanya mengumpulkan kueri, Anda juga mengumpulkan cara dokumen perwakilan mengatasi kueri. Memiliki kedua kueri sampel, dikombinasikan dengan bagian dokumen sampel yang membahas kueri tersebut, memungkinkan Anda mengevaluasi setiap tahap solusi RAG saat Anda bereksperimen dengan strategi dan pendekatan yang berbeda.

Mengumpulkan output kueri pengujian

Output fase ini mencakup konten dari langkah Kumpulkan kueri pengujian perwakilan, dan langkah Kumpulkan dokumen pengujian perwakilan. Output adalah koleksi yang berisi data berikut:

  • Kueri - Pertanyaan, mewakili permintaan potensial pengguna yang sah.
  • Konteks - Kumpulan semua teks aktual dalam dokumen yang membahas kueri. Untuk setiap bit konteks, Anda harus menyertakan halaman dan teks aktual.
  • Jawaban - Respons yang valid terhadap kueri. Responsnya adalah konten langsung dari dokumen atau mungkin diulang dari satu atau beberapa bagian konteks.

Membuat kueri sintetis

Seringkali menantang bagi pakar subjek (UKM) untuk domain tertentu untuk menyusun daftar pertanyaan komprehensif untuk kasus penggunaan. Salah satu solusi untuk tantangan ini adalah menghasilkan pertanyaan sintetis dari dokumen pengujian perwakilan yang dikumpulkan. Berikut ini adalah pendekatan dunia nyata untuk menghasilkan pertanyaan sintetis dari dokumen perwakilan:

  1. Memotong dokumen - Memecah dokumen menjadi potongan. Langkah penggugusan ini tidak menggunakan strategi penggugusan untuk solusi Anda secara keseluruhan. Ini adalah langkah satu kali yang Anda gunakan untuk menghasilkan kueri sintetis. Penggugusan dapat dilakukan secara manual jika jumlah dokumen masuk akal.

  2. Hasilkan kueri per gugus - Untuk setiap gugus, hasilkan kueri secara manual atau menggunakan model bahasa besar. Saat menggunakan model bahasa besar, kita umumnya mulai dengan menghasilkan dua kueri per potongan. Model bahasa besar juga dapat digunakan untuk membuat jawabannya. Contoh berikut menunjukkan perintah yang menghasilkan pertanyaan dan jawaban untuk gugus.

    Please read the following CONTEXT and generate two question and answer json objects in an array based on the CONTEXT provided. The questions should require deep reading comprehension, logical inference, deduction, and connecting ideas across the text. Avoid simplistic retrieval or pattern matching questions. Instead, focus on questions that test the ability to reason about the text in complex ways, draw subtle conclusions, and combine multiple pieces of information to arrive at an answer. Ensure that the questions are relevant, specific, and cover the key points of the CONTEXT.  Provide concise answers to each question, directly quoting the text from provided context. Provide the array output in strict JSON format as shown in output format. Ensure that the generated JSON is 100 percent structurally correct, with proper nesting, comma placement, and quotation marks. There should not be any comma after last element in the array.
    
    Output format:
    [
      {
        "question": "Question 1",
        "answer": "Answer 1"
      },
      {
        "question": "Question 2",
        "answer": "Answer 2"
      }
    ]
    
    CONTEXT:
    
  3. Verifikasi output - Verifikasi bahwa pertanyaan berkaitan dengan kasus penggunaan dan jawabannya membahas pertanyaan. Verifikasi ini harus dilakukan oleh UKM.

Kueri tanpa alamat

Penting untuk mengumpulkan kueri yang tidak ditangani dokumen, bersama dengan kueri yang ditangani. Ketika Anda menguji solusi, terutama ketika Anda menguji model bahasa besar, Anda perlu menentukan bagaimana solusi harus merespons kueri yang tidak memiliki konteks yang memadai untuk dijawab. Pendekatan untuk menanggapi kueri yang tidak dapat Anda atasi meliputi:

  • Menanggapi bahwa Anda tidak tahu
  • Menanggapi bahwa Anda tidak tahu dan memberikan tautan tempat pengguna mungkin menemukan informasi selengkapnya

Mengumpulkan kueri pengujian untuk media yang disematkan

Seperti teks, Anda harus mengumpulkan beragam pertanyaan yang melibatkan penggunaan media yang disematkan untuk menghasilkan jawaban yang sangat relevan. Jika Anda memiliki gambar dengan grafik, tabel, cuplikan layar, pastikan Anda memiliki pertanyaan yang mencakup semua kasus penggunaan. Jika Anda menentukan di bagian gambar dari bagian analisis dokumen yang teks sebelum atau sesudah gambar diperlukan untuk menjawab beberapa pertanyaan, pastikan Anda memiliki pertanyaan tersebut dalam kueri pengujian Anda.

Mengumpulkan panduan kueri pengujian

  • Tentukan apakah ada sistem yang berisi pertanyaan pelanggan nyata yang dapat Anda gunakan. Misalnya, jika Anda membangun bot obrolan untuk menjawab pertanyaan pelanggan, Anda mungkin dapat menggunakan pertanyaan pelanggan dari staf dukungan, FAQ, atau sistem tiket Anda.
  • Pelanggan atau UKM untuk kasus penggunaan harus bertindak sebagai gerbang kualitas untuk menentukan apakah dokumen yang dikumpulkan, kueri pengujian terkait, dan jawaban atas kueri dari dokumen komprehensif, representatif, dan benar.
  • Meninjau isi pertanyaan dan jawaban harus dilakukan secara berkala untuk memastikan bahwa mereka terus secara akurat mencerminkan dokumen sumber.

Langkah berikutnya