Azure OpenAI Pada data Anda
Gunakan artikel ini untuk mempelajari tentang Azure OpenAI On Your Data, yang memudahkan pengembang untuk menyambungkan, menyerap, dan membumikan data perusahaan mereka untuk membuat salinan yang dipersonalisasi (pratinjau) dengan cepat. Ini meningkatkan pemahaman pengguna, mempercepat penyelesaian tugas, meningkatkan efisiensi operasional, dan membantu pengambilan keputusan.
Apa itu Azure OpenAI Pada Data Anda
Azure OpenAI On Your Data memungkinkan Anda menjalankan model AI tingkat lanjut seperti GPT-35-Turbo dan GPT-4 pada data perusahaan Anda sendiri tanpa perlu melatih atau menyempurnakan model. Anda dapat mengobrol di atas dan menganalisis data Anda dengan akurasi yang lebih besar. Anda dapat menentukan sumber untuk mendukung respons berdasarkan informasi terbaru yang tersedia di sumber data yang Anda tentukan. Anda dapat mengakses Azure OpenAI On Your Data menggunakan REST API, melalui SDK atau antarmuka berbasis web di Azure OpenAI Studio. Anda juga dapat membuat aplikasi web yang terhubung ke data Anda untuk mengaktifkan solusi obrolan yang ditingkatkan atau menyebarkannya langsung sebagai salinan di Copilot Studio (pratinjau).
Mengembangkan dengan Azure OpenAI On Your Data
Biasanya, proses pengembangan yang akan Anda gunakan dengan Azure OpenAI On Your Data adalah:
Penyerapan: Unggah file menggunakan Azure OpenAI Studio atau API penyerapan. Ini memungkinkan data Anda dipecah, dipotong, dan disematkan ke dalam instans Azure AI Search yang dapat digunakan oleh model Azure Open AI. Jika Anda memiliki sumber data yang didukung, Anda juga dapat menyambungkannya secara langsung.
Kembangkan: Setelah mencoba Azure OpenAI On Your Data, mulai kembangkan aplikasi Anda menggunakan REST API dan SDK yang tersedia, yang tersedia dalam beberapa bahasa. Ini akan membuat permintaan dan niat pencarian untuk diteruskan ke layanan Azure OpenAI.
Inferensi: Setelah aplikasi Anda disebarkan di lingkungan pilihan Anda, aplikasi akan mengirim perintah ke Azure OpenAI, yang akan melakukan beberapa langkah sebelum mengembalikan respons:
Pembuatan niat: Layanan akan menentukan niat permintaan pengguna untuk menentukan respons yang tepat.
Pengambilan: Layanan mengambil potongan data yang tersedia yang relevan dari sumber data yang terhubung dengan mengkuerinya. Misalnya dengan menggunakan pencarian semantik atau vektor. Parameter seperti keketatan dan jumlah dokumen yang akan diretreif digunakan untuk memengaruhi pengambilan.
Filtrasi dan reranking: Hasil pencarian dari langkah pengambilan ditingkatkan dengan memberi peringkat dan memfilter data untuk menyempurnakan relevansi.
Pembuatan respons: Data yang dihasilkan dikirimkan bersama dengan informasi lain seperti pesan sistem ke Model Bahasa Besar (LLM) dan respons dikirim kembali ke aplikasi.
Untuk memulai, sambungkan sumber data Anda menggunakan Azure OpenAI Studio dan mulai mengajukan pertanyaan dan mengobrol pada data Anda.
Kontrol akses berbasis Peran Azure (Azure RBAC) untuk menambahkan sumber data
Untuk menggunakan Azure OpenAI On Your Data sepenuhnya, Anda perlu mengatur satu atau beberapa peran Azure RBAC. Lihat Menggunakan Azure OpenAI On Your Data dengan aman untuk informasi selengkapnya.
Format data dan jenis file
Azure OpenAI On Your Data mendukung jenis file berikut:
.txt
.md
.html
.docx
.pptx
.pdf
Ada batas pengunggahan, dan ada beberapa peringatan tentang struktur dokumen dan bagaimana hal itu dapat memengaruhi kualitas respons dari model:
Jika Anda mengonversi data dari format yang tidak didukung menjadi format yang didukung, optimalkan kualitas respons model dengan memastikan konversi:
- Tidak menyebabkan kehilangan data yang signifikan.
- Tidak menambahkan kebisingan tak terduga ke data Anda.
Jika file Anda memiliki pemformatan khusus, seperti tabel dan kolom, atau poin-poin, siapkan data Anda dengan skrip persiapan data yang tersedia di GitHub.
Untuk dokumen dan himpunan data dengan teks panjang, Anda harus menggunakan skrip persiapan data yang tersedia. Skrip memotong data sehingga respons model menjadi lebih akurat. Skrip ini juga mendukung file dan gambar PDF yang dipindai.
Sumber data yang didukung
Anda perlu menyambungkan ke sumber data untuk mengunggah data Anda. Saat Anda ingin menggunakan data untuk mengobrol dengan model Azure OpenAI, data Anda dipotong dalam indeks pencarian sehingga data yang relevan dapat ditemukan berdasarkan kueri pengguna.
Database Vektor Terintegrasi di Azure Cosmos DB berbasis vCore untuk MongoDB secara asli mendukung integrasi dengan Azure OpenAI On Your Data.
Untuk beberapa sumber data seperti mengunggah file dari komputer lokal Anda (pratinjau) atau data yang terkandung dalam akun penyimpanan blob (pratinjau), Azure AI Search digunakan. Saat Anda memilih sumber data berikut, data Anda diserap ke dalam indeks Pencarian Azure AI.
Data yang diserap melalui Azure AI Search | Deskripsi |
---|---|
Pencarian Azure AI | Gunakan indeks Pencarian Azure AI yang sudah ada dengan Azure OpenAI On Your Data. |
Unggah file (pratinjau) | Unggah file dari komputer lokal Anda untuk disimpan dalam database Azure Blob Storage, dan diserap ke Dalam Azure AI Search. |
URL/Alamat web (pratinjau) | Konten web dari URL disimpan di Azure Blob Storage. |
Azure Blob Storage (pratinjau) | Unggah file dari Azure Blob Storage untuk diserap ke dalam indeks Pencarian Azure AI. |
- Pencarian Azure AI
- Database Vektor di Azure Cosmos DB untuk MongoDB
- Azure Blob Storage (pratinjau)
- Unggah file (pratinjau)
- URL/Alamat web (pratinjau)
- Elasticsearch (pratinjau)
Anda mungkin ingin mempertimbangkan untuk menggunakan indeks Pencarian Azure AI saat Anda ingin:
- Sesuaikan proses pembuatan indeks.
- Gunakan kembali indeks yang dibuat sebelumnya dengan menyerap data dari sumber data lain.
Catatan
- Untuk menggunakan indeks yang ada, indeks harus memiliki setidaknya satu bidang yang dapat dicari.
- Atur opsi CORS Allow Origin Type ke
all
dan opsi Asal yang diizinkan ke*
.
Jenis pencarian
Azure OpenAI On Your Data menyediakan jenis pencarian berikut yang bisa Anda gunakan saat menambahkan sumber data Anda.
Pencarian vektor menggunakan model penyematan Ada, tersedia di wilayah yang dipilih
Untuk mengaktifkan pencarian vektor, Anda memerlukan model penyematan yang sudah ada yang disebarkan di sumber daya Azure OpenAI Anda. Pilih penyebaran penyematan Anda saat menyambungkan data Anda, lalu pilih salah satu jenis pencarian vektor di bawah Manajemen data. Jika Anda menggunakan Azure AI Search sebagai sumber data, pastikan Anda memiliki kolom vektor dalam indeks.
Jika Anda menggunakan indeks Anda sendiri, Anda bisa mengkustomisasi pemetaan bidang saat menambahkan sumber data untuk menentukan bidang yang akan dipetakan saat menjawab pertanyaan. Untuk mengkustomisasi pemetaan bidang, pilih Gunakan pemetaan bidang kustom pada halaman Sumber Data saat menambahkan sumber data Anda.
Penting
- Pencarian semantik tunduk pada harga tambahan. Anda perlu memilih SKU Dasar atau lebih tinggi untuk mengaktifkan pencarian semantik atau pencarian vektor. Lihat perbedaan tingkat harga dan batas layanan untuk informasi selengkapnya.
- Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa sumber data berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, dan Arab.
Opsi pencarian | Jenis pengambilan | Harga tambahan? | Keuntungan |
---|---|---|---|
Kata Kunci | Pencarian kata kunci | Tidak ada harga tambahan. | Melakukan penguraian dan pencocokan kueri yang cepat dan fleksibel melalui bidang yang dapat dicari, menggunakan istilah atau frasa dalam bahasa apa pun yang didukung, dengan atau tanpa operator. |
Semantik | Pencarian semantik | Harga tambahan untuk penggunaan pencarian semantik. | Meningkatkan presisi dan relevansi hasil pencarian dengan menggunakan reranker (dengan model AI) untuk memahami arti semantik istilah dan dokumen kueri yang dikembalikan oleh peringkat pencarian awal |
Vektor | Pencarian vektor | Harga tambahan pada akun Azure OpenAI Anda dari memanggil model penyematan. | Memungkinkan Anda menemukan dokumen yang mirip dengan input kueri tertentu berdasarkan penyematan vektor konten. |
hibrid (vektor + kata kunci) | Pencarian vektor hibrida dan pencarian kata kunci | Harga tambahan pada akun Azure OpenAI Anda dari memanggil model penyematan. | Melakukan pencarian kesamaan atas bidang vektor menggunakan penyematan vektor, sekaligus mendukung penguraian kueri fleksibel dan pencarian teks lengkap di atas bidang alfanumerik menggunakan kueri istilah. |
hybrid (vektor + kata kunci) + semantik | Hibrida pencarian vektor, pencarian semantik, dan pencarian kata kunci. | Harga tambahan pada akun Azure OpenAI Anda agar tidak memanggil model penyematan, dan harga tambahan untuk penggunaan pencarian semantik. | Menggunakan penyematan vektor, pemahaman bahasa, dan penguraian kueri fleksibel untuk menciptakan pengalaman pencarian yang kaya dan aplikasi AI generatif yang dapat menangani skenario pengambilan informasi yang kompleks dan beragam. |
Pencarian cerdas
Azure OpenAI On Your Data memiliki pencarian cerdas yang diaktifkan untuk data Anda. Pencarian semantik diaktifkan secara default jika Anda memiliki pencarian semantik dan pencarian kata kunci. Jika Anda memiliki model penyematan, pencarian cerdas default ke pencarian hibrid + semantik.
Kontrol akses tingkat dokumen
Catatan
Kontrol akses tingkat dokumen didukung saat Anda memilih Pencarian Azure AI sebagai sumber data Anda.
Azure OpenAI On Your Data memungkinkan Anda membatasi dokumen yang dapat digunakan sebagai respons untuk pengguna yang berbeda dengan filter keamanan Azure AI Search. Saat Anda mengaktifkan akses tingkat dokumen, hasil pencarian yang dikembalikan dari Azure AI Search dan digunakan untuk menghasilkan respons dipangkas berdasarkan keanggotaan grup Microsoft Entra pengguna. Anda hanya dapat mengaktifkan akses tingkat dokumen pada indeks Pencarian Azure AI yang ada Lihat Menggunakan Azure OpenAI On Your Data dengan aman untuk informasi selengkapnya.
Pemetaan bidang indeks
Jika Anda menggunakan indeks Anda sendiri, Anda akan diminta di Azure OpenAI Studio untuk menentukan bidang mana yang ingin Anda petakan untuk menjawab pertanyaan saat menambahkan sumber data Anda. Anda dapat menyediakan beberapa bidang untuk data Konten, dan harus menyertakan semua bidang yang memiliki teks yang berkaitan dengan kasus penggunaan Anda.
Dalam contoh ini, bidang yang dipetakan ke Data konten dan Judul memberikan informasi kepada model untuk menjawab pertanyaan. Judul juga digunakan untuk judul teks kutipan. Bidang yang dipetakan ke Nama file menghasilkan nama kutipan dalam respons.
Memetakan bidang ini dengan benar membantu memastikan model memiliki respons dan kualitas kutipan yang lebih baik. Anda juga dapat mengonfigurasinya di API menggunakan fieldsMapping
parameter .
Filter pencarian (API)
Jika Anda ingin menerapkan kriteria berbasis nilai tambahan untuk eksekusi kueri, Anda dapat menyiapkan filter pencarian menggunakan filter
parameter di REST API.
Bagaimana data diserap ke dalam pencarian Azure AI
Pada September 2024, API penyerapan beralih ke vektorisasi terintegrasi. Pembaruan ini tidak mengubah kontrak API yang ada. Vektorisasi terintegrasi, penawaran baru Azure AI Search, menggunakan keterampilan bawaan untuk memotong dan menyematkan data input. Layanan penyerapan Azure OpenAI On Your Data tidak lagi menggunakan keterampilan kustom. Setelah migrasi ke vektorisasi terintegrasi, proses penyerapan telah mengalami beberapa modifikasi dan akibatnya hanya aset berikut yang dibuat:
{job-id}-index
{job-id}-indexer
, jika jadwal per jam atau harian ditentukan, jika tidak, pengindeks dibersihkan di akhir proses penyerapan.{job-id}-datasource
Kontainer gugus tidak lagi tersedia, karena fungsionalitas ini sekarang dikelola secara inheren oleh Azure AI Search.
Koneksi data
Anda perlu memilih bagaimana Anda ingin mengautentikasi koneksi dari Azure OpenAI, Azure AI Search, dan penyimpanan blob Azure. Anda dapat memilih Identitas terkelola yang ditetapkan Sistem atau kunci API. Dengan memilih kunci API sebagai jenis autentikasi, sistem akan secara otomatis mengisi kunci API bagi Anda untuk terhubung dengan sumber daya Azure AI Search, Azure OpenAI, dan Azure Blob Storage Anda. Dengan memilih Identitas terkelola yang ditetapkan sistem, autentikasi akan didasarkan pada penetapan peran yang Anda miliki. Identitas terkelola yang ditetapkan sistem dipilih secara default untuk keamanan.
Setelah Anda memilih tombol berikutnya , itu akan secara otomatis memvalidasi penyiapan Anda untuk menggunakan metode autentikasi yang dipilih. Jika Anda mengalami kesalahan, lihat artikel penetapan peran untuk memperbarui penyiapan Anda.
Setelah Anda memperbaiki penyiapan, pilih berikutnya lagi untuk memvalidasi dan melanjutkan. Pengguna API juga dapat mengonfigurasi autentikasi dengan identitas terkelola dan kunci API yang ditetapkan.
Menyebarkan ke salinan (pratinjau), aplikasi Teams (pratinjau), atau aplikasi web
Setelah menyambungkan Azure OpenAI ke data, Anda dapat menyebarkannya menggunakan tombol Sebarkan ke di Azure OpenAI Studio.
Ini memberi Anda beberapa opsi untuk menyebarkan solusi Anda.
Anda dapat menyebarkan ke salinan di Copilot Studio (pratinjau) langsung dari Azure OpenAI Studio, memungkinkan Anda menghadirkan pengalaman percakapan ke berbagai saluran seperti: Microsoft Teams, situs web, Dynamics 365, dan saluran Azure Bot Service lainnya. Penyewa yang digunakan dalam layanan Azure OpenAI dan Copilot Studio (pratinjau) harus sama. Untuk informasi selengkapnya, lihat Menggunakan koneksi ke Azure OpenAI On Your Data.
Catatan
Menyebarkan ke salinan di Copilot Studio (pratinjau) hanya tersedia di wilayah AS.
Menggunakan Azure OpenAI Pada Data Anda dengan aman
Anda dapat menggunakan Azure OpenAI On Your Data dengan aman dengan melindungi data dan sumber daya dengan kontrol akses berbasis peran ID Microsoft Entra, jaringan virtual, dan titik akhir privat. Anda juga dapat membatasi dokumen yang dapat digunakan sebagai respons untuk pengguna yang berbeda dengan filter keamanan Azure AI Search. Lihat Menggunakan Azure OpenAI Pada Data Anda dengan aman.
Praktik terbaik
Gunakan bagian berikut untuk mempelajari cara meningkatkan kualitas respons yang diberikan oleh model.
Parameter penyerapan
Saat data Anda diserap ke Azure AI Search, Anda dapat mengubah pengaturan tambahan berikut di studio atau API penyerapan.
Ukuran potongan (pratinjau)
Azure OpenAI On Your Data memproses dokumen Anda dengan membaginya menjadi gugus sebelum menyerapnya. Ukuran gugus adalah ukuran maksimum dalam hal jumlah token dari gugus apa pun dalam indeks pencarian. Ukuran potongan dan jumlah dokumen yang diambil bersama-sama mengontrol berapa banyak informasi (token) yang disertakan dalam perintah yang dikirim ke model. Secara umum, ukuran gugus yang dikalikan dengan jumlah dokumen yang diambil adalah jumlah total token yang dikirim ke model.
Mengatur ukuran gugus untuk kasus penggunaan Anda
Ukuran gugus default adalah 1.024 token. Namun, mengingat keunikan data Anda, Anda mungkin menemukan ukuran gugus yang berbeda (seperti 256, 512, atau 1.536 token) lebih efektif.
Menyesuaikan ukuran gugus dapat meningkatkan performa chatbot Anda. Saat menemukan ukuran gugus optimal memerlukan beberapa percobaan dan kesalahan, mulailah dengan mempertimbangkan sifat himpunan data Anda. Ukuran gugus yang lebih kecil umumnya lebih baik untuk himpunan data dengan fakta langsung dan konteks yang lebih sedikit, sementara ukuran gugus yang lebih besar mungkin bermanfaat untuk informasi yang lebih kontekstual, meskipun dapat memengaruhi performa pengambilan.
Ukuran gugus kecil seperti 256 menghasilkan gugus yang lebih terperinci. Ukuran ini juga berarti model akan menggunakan lebih sedikit token untuk menghasilkan outputnya (kecuali jumlah dokumen yang diambil sangat tinggi), berpotensi lebih murah. Potongan yang lebih kecil juga berarti model tidak perlu memproses dan menginterpretasikan bagian teks yang panjang, mengurangi kebisingan dan gangguan. Granularitas dan fokus ini namun menimbulkan masalah potensial. Informasi penting mungkin tidak berada di antara potongan yang diambil teratas, terutama jika jumlah dokumen yang diambil diatur ke nilai rendah seperti 3.
Tip
Perlu diingat bahwa mengubah ukuran gugus mengharuskan dokumen Anda diserap kembali, sehingga berguna untuk terlebih dahulu menyesuaikan parameter runtime seperti keketatan dan jumlah dokumen yang diambil. Pertimbangkan untuk mengubah ukuran gugus jika Anda masih belum mendapatkan hasil yang diinginkan:
- Jika Anda mengalami sejumlah besar respons seperti "Saya tidak tahu" untuk pertanyaan dengan jawaban yang seharusnya ada di dokumen Anda, pertimbangkan untuk mengurangi ukuran gugus menjadi 256 atau 512 untuk meningkatkan granularitas.
- Jika chatbot memberikan beberapa detail yang benar tetapi kehilangan yang lain, yang menjadi jelas dalam kutipan, meningkatkan ukuran gugus menjadi 1.536 mungkin membantu menangkap informasi yang lebih kontekstual.
Parameter runtime
Anda dapat mengubah pengaturan tambahan berikut di bagian Parameter data di Azure OpenAI Studio dan API. Anda tidak perlu menyerap ulang data saat memperbarui parameter ini.
Nama Parameter | Deskripsi |
---|---|
Membatasi respons ke data Anda | Bendera ini mengonfigurasi pendekatan chatbot untuk menangani kueri yang tidak terkait dengan sumber data atau ketika dokumen pencarian tidak mencukupi untuk jawaban lengkap. Ketika pengaturan ini dinonaktifkan, model melengkapi responsnya dengan pengetahuannya sendiri selain dokumen Anda. Saat pengaturan ini diaktifkan, model mencoba hanya mengandalkan dokumen Anda untuk respons. Ini adalah inScope parameter dalam API, dan diatur ke true secara default. |
Dokumen yang diambil | Parameter ini adalah bilangan bulat yang dapat diatur ke 3, 5, 10, atau 20, dan mengontrol jumlah gugus dokumen yang disediakan untuk model bahasa besar untuk merumuskan respons akhir. Secara default, ini diatur ke 5. Proses pencarian bisa berisik dan terkadang, karena pemotongan, informasi yang relevan mungkin tersebar di beberapa gugus dalam indeks pencarian. Memilih nomor top-K, seperti 5, memastikan bahwa model dapat mengekstrak informasi yang relevan, meskipun batasan pencarian dan potongan yang melekat. Namun, meningkatkan jumlah terlalu tinggi berpotensi mengalihkan perhatian model. Selain itu, jumlah maksimum dokumen yang dapat digunakan secara efektif tergantung pada versi model, karena masing-masing memiliki ukuran konteks dan kapasitas yang berbeda untuk menangani dokumen. Jika Anda menemukan bahwa respons tidak memiliki konteks penting, coba tingkatkan parameter ini. Ini adalah topNDocuments parameter dalam API, dan 5 secara default. |
Keketatan | Menentukan agresivitas sistem dalam memfilter dokumen pencarian berdasarkan skor kesamaannya. Sistem meminta Azure Search atau penyimpanan dokumen lainnya, lalu memutuskan dokumen mana yang akan disediakan untuk model bahasa besar seperti ChatGPT. Memfilter dokumen yang tidak relevan dapat secara signifikan meningkatkan performa chatbot end-to-end. Beberapa dokumen dikecualikan dari hasil top-K jika memiliki skor kesamaan rendah sebelum meneruskannya ke model. Ini dikendalikan oleh nilai bilangan bulat mulai dari 1 hingga 5. Mengatur nilai ini ke 1 berarti sistem akan memfilter dokumen secara minimal berdasarkan kesamaan pencarian dengan kueri pengguna. Sebaliknya, pengaturan 5 menunjukkan bahwa sistem akan secara agresif memfilter dokumen, menerapkan ambang kesamaan yang sangat tinggi. Jika Anda menemukan bahwa chatbot menghilangkan informasi yang relevan, turunkan keketatan filter (atur nilai lebih dekat ke 1) untuk menyertakan lebih banyak dokumen. Sebaliknya, jika dokumen yang tidak relevan mengalihkan respons, tingkatkan ambang batas (atur nilai lebih dekat ke 5). Ini adalah strictness parameter dalam API, dan diatur ke 3 secara default. |
Referensi yang tidak dicita-citakan
Dimungkinkan bagi model untuk kembali "TYPE":"UNCITED_REFERENCE"
alih-alih "TYPE":CONTENT
di API untuk dokumen yang diambil dari sumber data, tetapi tidak termasuk dalam kutipan. Ini dapat berguna untuk penelusuran kesalahan, dan Anda dapat mengontrol perilaku ini dengan memodifikasi parameter runtime dokumen yang ketat dan diambil yang dijelaskan di atas.
Pesan sistem
Anda dapat menentukan pesan sistem untuk mengarahkan balasan model saat menggunakan Azure OpenAI On Your Data. Pesan ini memungkinkan Anda untuk menyesuaikan balasan Anda di atas pola pembuatan tambahan pengambilan (RAG) yang digunakan Azure OpenAI On Your Data. Pesan sistem digunakan selain permintaan dasar internal untuk memberikan pengalaman. Untuk mendukung hal ini, kami memotong pesan sistem setelah sejumlah token tertentu untuk memastikan model dapat menjawab pertanyaan menggunakan data Anda. Jika Anda mendefinisikan perilaku tambahan di atas pengalaman default, pastikan bahwa permintaan sistem Anda terperinci dan menjelaskan penyesuaian yang diharapkan.
Setelah memilih tambahkan himpunan data, Anda dapat menggunakan bagian Pesan sistem di Azure OpenAI Studio, atau role_information
parameter di API.
Pola penggunaan potensial
Menentukan peran
Anda dapat menentukan peran yang Anda inginkan untuk asisten Anda. Misalnya, jika Anda membangun bot dukungan, Anda dapat menambahkan "Anda adalah asisten dukungan insiden ahli yang membantu pengguna menyelesaikan masalah baru."
Tentukan jenis data yang diambil
Anda juga dapat menambahkan sifat data yang Anda berikan kepada asisten.
- Tentukan topik atau cakupan himpunan data Anda, seperti "laporan keuangan," "makalah akademis," atau "laporan insiden." Misalnya, untuk dukungan teknis, Anda dapat menambahkan "Anda menjawab kueri menggunakan informasi dari insiden serupa dalam dokumen yang diambil."
- Jika data Anda memiliki karakteristik tertentu, Anda dapat menambahkan detail ini ke pesan sistem. Misalnya, jika dokumen Anda dalam bahasa Jepang, Anda dapat menambahkan "Anda mengambil dokumen Jepang dan Anda harus membacanya dengan hati-hati dalam bahasa Jepang dan menjawab dalam bahasa Jepang."
- Jika dokumen Anda menyertakan data terstruktur seperti tabel dari laporan keuangan, Anda juga dapat menambahkan fakta ini ke dalam prompt sistem. Misalnya, jika data Anda memiliki tabel, Anda dapat menambahkan "Anda diberi data dalam bentuk tabel yang berkaitan dengan hasil keuangan dan Anda harus membaca tabel baris demi baris untuk melakukan perhitungan untuk menjawab pertanyaan pengguna."
Tentukan gaya output
Anda juga dapat mengubah output model dengan menentukan pesan sistem. Misalnya, jika Anda ingin memastikan bahwa jawaban asisten dalam bahasa Prancis, Anda dapat menambahkan perintah seperti "Anda adalah asisten AI yang membantu pengguna yang memahami informasi temukan bahasa Prancis. Pertanyaan pengguna dapat dalam bahasa Inggris atau Prancis. Silakan baca dokumen yang diambil dengan hati-hati dan jawab dalam bahasa Prancis. Harap terjemahkan pengetahuan dari dokumen ke bahasa Prancis untuk memastikan semua jawaban dalam bahasa Prancis."
Menegaskan kembali perilaku kritis
Azure OpenAI On Your Data berfungsi dengan mengirim instruksi ke model bahasa besar dalam bentuk perintah untuk menjawab kueri pengguna menggunakan data Anda. Jika ada perilaku tertentu yang penting bagi aplikasi, Anda dapat mengulangi perilaku dalam pesan sistem untuk meningkatkan akurasinya. Misalnya, untuk memandu model hanya menjawab dari dokumen, Anda dapat menambahkan "Harap jawab menggunakan dokumen yang diambil saja, dan tanpa menggunakan pengetahuan Anda. Harap hasilkan kutipan ke dokumen yang diambil untuk setiap klaim dalam jawaban Anda. Jika pertanyaan pengguna tidak dapat dijawab menggunakan dokumen yang diambil, jelaskan alasan di balik mengapa dokumen relevan dengan kueri pengguna. Bagaimanapun, jangan menjawab menggunakan pengetahuan Anda sendiri."
Trik Rekayasa Prompt
Ada banyak trik dalam rekayasa prompt yang dapat Anda coba untuk meningkatkan output. Salah satu contohnya adalah permintaan rantai pemikiran di mana Anda dapat menambahkan "Mari kita pikirkan langkah demi langkah tentang informasi dalam dokumen yang diambil untuk menjawab kueri pengguna. Ekstrak pengetahuan yang relevan ke kueri pengguna dari dokumen langkah demi langkah dan bentuk jawaban dari informasi yang diekstrak dari dokumen yang relevan."
Catatan
Pesan sistem digunakan untuk memodifikasi bagaimana asisten GPT merespons pertanyaan pengguna berdasarkan dokumentasi yang diambil. Ini tidak memengaruhi proses pengambilan. Jika Anda ingin memberikan instruksi untuk proses pengambilan, lebih baik menyertakannya dalam pertanyaan. Pesan sistem hanya panduan. Model mungkin tidak mematuhi setiap instruksi yang ditentukan karena telah prima dengan perilaku tertentu seperti objektivitas, dan menghindari pernyataan kontroversial. Perilaku tak terduga mungkin terjadi jika pesan sistem bertentangan dengan perilaku ini.
Respons maksimum
Tetapkan batas jumlah token per respons model. Batas atas untuk Azure OpenAI On Your Data adalah 1500. Ini setara dengan mengatur max_tokens
parameter di API.
Membatasi respons ke data Anda
Opsi ini mendorong model untuk merespons menggunakan data Anda saja, dan dipilih secara default. Jika Anda membatalkan pilihan opsi ini, model mungkin lebih mudah menerapkan pengetahuan internalnya untuk merespons. Tentukan pilihan yang benar berdasarkan kasus dan skenario penggunaan Anda.
Berinteraksi dengan model
Gunakan praktik berikut untuk hasil terbaik saat mengobrol dengan model.
Riwayat percakapan
- Sebelum memulai percakapan baru (atau mengajukan pertanyaan yang tidak terkait dengan percakapan sebelumnya), hapus riwayat obrolan.
- Mendapatkan respons yang berbeda untuk pertanyaan yang sama antara giliran percakapan pertama dan giliran berikutnya dapat diharapkan karena riwayat percakapan mengubah status model saat ini. Jika Anda menerima jawaban yang salah, laporkan sebagai bug berkualitas.
Respons model
Jika Anda tidak puas dengan respons model untuk pertanyaan tertentu, coba buat pertanyaan yang lebih spesifik atau lebih umum untuk melihat bagaimana model merespons, dan memperbaiki pertanyaan Anda.
Permintaan rantai pemikiran telah terbukti efektif dalam mendapatkan model untuk menghasilkan output yang diinginkan untuk pertanyaan/tugas yang kompleks.
Panjang pertanyaan
Hindari mengajukan pertanyaan panjang dan memecahnya menjadi beberapa pertanyaan jika memungkinkan. Model GPT memiliki batasan jumlah token yang dapat mereka terima. Batas token dihitung terhadap: pertanyaan pengguna, pesan sistem, dokumen pencarian (gugus) yang diambil, perintah internal, riwayat percakapan (jika ada), dan respons. Jika pertanyaan melebihi batas token, pertanyaan akan dipotong.
Dukungan multibahasa
Saat ini, pencarian kata kunci dan pencarian semantik di Kueri dukungan Azure OpenAI On Your Data berada dalam bahasa yang sama dengan data dalam indeks. Misalnya, jika data Anda dalam bahasa Jepang, kueri input juga harus dalam bahasa Jepang. Untuk pengambilan dokumen lintas bahasa, sebaiknya buat indeks dengan pencarian Vektor diaktifkan.
Untuk membantu meningkatkan kualitas pengambilan informasi dan respons model, sebaiknya aktifkan pencarian semantik untuk bahasa berikut: Inggris, Prancis, Spanyol, Portugis, Italia, Jerman, Cina(Zh), Jepang, Korea, Rusia, Arab
Sebaiknya gunakan pesan sistem untuk menginformasikan model bahwa data Anda dalam bahasa lain. Contohnya:
*"*Anda adalah asisten AI yang dirancang untuk membantu pengguna mengekstrak informasi dari dokumen Jepang yang diambil. Harap cermati dokumen Jepang dengan hati-hati sebelum merumuskan respons. Kueri pengguna akan dalam bahasa Jepang, dan Anda harus merespons juga dalam bahasa Jepang."
Jika Anda memiliki dokumen dalam beberapa bahasa, sebaiknya buat indeks baru untuk setiap bahasa dan sambungkan secara terpisah ke Azure OpenAI.
Data streaming
Anda dapat mengirim permintaan streaming menggunakan stream
parameter , memungkinkan data dikirim dan diterima secara bertahap, tanpa menunggu seluruh respons API. Hal ini dapat meningkatkan performa dan pengalaman pengguna, terutama untuk data besar atau dinamis.
{
"stream": true,
"dataSources": [
{
"type": "AzureCognitiveSearch",
"parameters": {
"endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
"key": "'$AZURE_AI_SEARCH_API_KEY'",
"indexName": "'$AZURE_AI_SEARCH_INDEX'"
}
}
],
"messages": [
{
"role": "user",
"content": "What are the differences between Azure Machine Learning and Azure AI services?"
}
]
}
Riwayat percakapan untuk hasil yang lebih baik
Saat Anda mengobrol dengan model, memberikan riwayat obrolan akan membantu model mengembalikan hasil berkualitas lebih tinggi. Anda tidak perlu menyertakan context
properti pesan asisten dalam permintaan API Anda untuk kualitas respons yang lebih baik. Lihat dokumentasi referensi API untuk contohnya.
Pemanggilan Fungsi
Beberapa model Azure OpenAI memungkinkan Anda menentukan alat dan parameter tool_choice untuk mengaktifkan panggilan fungsi. Anda dapat menyiapkan panggilan fungsi melalui REST API /chat/completions
. Jika sumber tools
data dan berada dalam permintaan, kebijakan berikut diterapkan.
- Jika
tool_choice
adalahnone
, alat diabaikan, dan hanya sumber data yang digunakan untuk menghasilkan jawaban. - Jika tidak, jika
tool_choice
tidak ditentukan, atau ditentukan sebagaiauto
atau objek, sumber data diabaikan, dan respons akan berisi nama fungsi yang dipilih dan argumen, jika ada. Bahkan jika model memutuskan tidak ada fungsi yang dipilih, sumber data masih diabaikan.
Jika kebijakan di atas tidak memenuhi kebutuhan Anda, pertimbangkan opsi lain, misalnya: alur prompt atau Assistants API.
Estimasi penggunaan token untuk Azure OpenAI On Your Data
Azure OpenAI On Your Data Retrieval Augmented Generation (RAG) adalah layanan yang memanfaatkan layanan pencarian (seperti Azure AI Search) dan pembuatan (model Azure OpenAI) untuk memungkinkan pengguna mendapatkan jawaban atas pertanyaan mereka berdasarkan data yang disediakan.
Sebagai bagian dari alur RAG ini, ada tiga langkah pada tingkat tinggi:
Format ulang kueri pengguna ke dalam daftar niat pencarian. Ini dilakukan dengan melakukan panggilan ke model dengan perintah yang mencakup instruksi, pertanyaan pengguna, dan riwayat percakapan. Mari kita sebut ini permintaan niat.
Untuk setiap niat, beberapa gugus dokumen diambil dari layanan pencarian. Setelah memfilter potongan yang tidak relevan berdasarkan ambang batas keketatan yang ditentukan pengguna dan reranking/agregasi gugus berdasarkan logika internal, jumlah gugus dokumen yang ditentukan pengguna dipilih.
Potongan dokumen ini, bersama dengan pertanyaan pengguna, riwayat percakapan, informasi peran, dan instruksi dikirim ke model untuk menghasilkan respons model akhir. Mari kita sebut ini perintah generasi.
Secara total, ada dua panggilan yang dilakukan ke model:
Untuk memproses niat: Perkiraan token untuk permintaan niat mencakup pertanyaan pengguna, riwayat percakapan, dan instruksi yang dikirim ke model untuk pembuatan niat.
Untuk menghasilkan respons: Perkiraan token untuk perintah pembuatan mencakup pertanyaan pengguna, riwayat percakapan, daftar gugus dokumen yang diambil, informasi peran, dan instruksi yang dikirimkan untuk dibuat.
Model yang menghasilkan token output (niat dan respons) perlu diperhitungkan untuk estimasi token total. Menjumlahkan keempat kolom di bawah ini memberikan total token rata-rata yang digunakan untuk menghasilkan respons.
Model | Jumlah token prompt pembuatan | Jumlah token permintaan niat | Jumlah token respons | Jumlah token niat |
---|---|---|---|---|
gpt-35-turbo-16k | 4297 | 1366 | 111 | 25 |
gpt-4-0613 | 3997 | 1385 | 118 | 18 |
gpt-4-1106-preview | 4538 | 811 | 119 | 27 |
gpt-35-turbo-1106 | 4854 | 1372 | 110 | 26 |
Angka di atas didasarkan pada pengujian pada himpunan data dengan:
- Percakapan 191
- 250 pertanyaan
- 10 token rata-rata per pertanyaan
- Rata-rata 4 giliran percakapan per percakapan
Dan parameter berikut.
Pengaturan | Nilai |
---|---|
Jumlah dokumen yang diambil | 5 |
Keketatan | 3 |
Ukuran potongan | 1024 |
Membatasi respons terhadap data yang diserap? | Benar |
Perkiraan ini akan bervariasi berdasarkan nilai yang ditetapkan untuk parameter di atas. Misalnya, jika jumlah dokumen yang diambil diatur ke 10 dan keketatan diatur ke 1, jumlah token akan naik. Jika respons yang dikembalikan tidak terbatas pada data yang diserap, ada lebih sedikit instruksi yang diberikan untuk model dan jumlah token akan turun.
Perkiraan juga tergantung pada sifat dokumen dan pertanyaan yang diajukan. Misalnya, jika pertanyaan terbuka, responsnya kemungkinan akan lebih lama. Demikian pula, pesan sistem yang lebih panjang akan berkontribusi pada permintaan yang lebih panjang yang mengonsumsi lebih banyak token, dan jika riwayat percakapan panjang, perintah akan lebih lama.
Model | Token maks untuk pesan sistem |
---|---|
GPT-35-0301 | 400 |
GPT-35-0613-16K | 1000 |
GPT-4-0613-8K | 400 |
GPT-4-0613-32K | 2000 |
GPT-35-turbo-0125 | 2000 |
GPT-4-turbo-0409 | 4000 |
GPT-4o | 4000 |
GPT-4o-mini | 4000 |
Tabel di atas menunjukkan jumlah maksimum token yang dapat digunakan untuk pesan sistem. Untuk melihat token maksimum untuk respons model, lihat artikel model. Selain itu, berikut ini juga mengonsumsi token:
Permintaan meta: jika Anda membatasi respons dari model ke konten data grounding (
inScope=True
di API), jumlah maksimum token lebih tinggi. Jika tidak (misalnya jikainScope=False
) maksimum lebih rendah. Jumlah ini bervariasi tergantung pada panjang token pertanyaan pengguna dan riwayat percakapan. Perkiraan ini mencakup permintaan dasar dan permintaan penulisan ulang kueri untuk pengambilan.Pertanyaan dan riwayat pengguna: Variabel tetapi dibatasi pada 2.000 token.
Dokumen yang diambil (gugus): Jumlah token yang digunakan oleh potongan dokumen yang diambil tergantung pada beberapa faktor. Batas atas untuk ini adalah jumlah potongan dokumen yang diambil dikalikan dengan ukuran gugus. Namun, token akan dipotong berdasarkan token yang tersedia untuk model tertentu yang digunakan setelah menghitung bidang lainnya.
20% dari token yang tersedia dicadangkan untuk respons model. Sisa 80% token yang tersedia termasuk perintah meta, riwayat pertanyaan dan percakapan pengguna, dan pesan sistem. Anggaran token yang tersisa digunakan oleh potongan dokumen yang diambil.
Untuk menghitung jumlah token yang digunakan oleh input Anda (seperti pertanyaan Anda, pesan sistem/informasi peran), gunakan sampel kode berikut.
import tiktoken
class TokenEstimator(object):
GPT2_TOKENIZER = tiktoken.get_encoding("gpt2")
def estimate_tokens(self, text: str) -> int:
return len(self.GPT2_TOKENIZER.encode(text))
token_output = TokenEstimator.estimate_tokens(input_text)
Pemecahan Masalah
Untuk memecahkan masalah operasi yang gagal, selalu cari kesalahan atau peringatan yang ditentukan baik dalam respons API atau Azure OpenAI Studio. Berikut adalah beberapa kesalahan dan peringatan umum:
Pekerjaan penyerapan yang gagal
Masalah Batasan Kuota
Indeks dengan nama X di layanan Y tidak dapat dibuat. Kuota indeks telah terlampaui untuk layanan ini. Anda harus menghapus indeks yang tidak digunakan terlebih dahulu, menambahkan penundaan antara permintaan pembuatan indeks, atau meningkatkan layanan untuk batas yang lebih tinggi.
Kuota pengindeks standar X telah terlampaui untuk layanan ini. Saat ini Anda memiliki pengindeks standar X. Anda harus menghapus pengindeks yang tidak digunakan terlebih dahulu, mengubah pengindeks 'executionMode', atau meningkatkan layanan untuk batas yang lebih tinggi.
Resolusi:
Tingkatkan ke tingkat harga yang lebih tinggi atau hapus aset yang tidak digunakan.
Masalah Batas Waktu Praproscesing
Tidak dapat menjalankan keterampilan karena permintaan API Web gagal
Tidak dapat menjalankan keterampilan karena respons keterampilan API Web tidak valid
Resolusi:
Uraikan dokumen input menjadi dokumen yang lebih kecil dan coba lagi.
Masalah izin
Permintaan ini tidak berwenang untuk melakukan operasi ini
Resolusi:
Ini berarti akun penyimpanan tidak dapat diakses dengan kredensial yang diberikan. Dalam hal ini, harap tinjau kredensial akun penyimpanan yang diteruskan ke API dan pastikan akun penyimpanan tidak disembunyikan di belakang titik akhir privat (jika titik akhir privat tidak dikonfigurasi untuk sumber daya ini).
Kesalahan 503 saat mengirim kueri dengan Azure AI Search
Setiap pesan pengguna dapat diterjemahkan ke beberapa kueri pencarian, yang semuanya dikirim ke sumber daya pencarian secara paralel. Ini dapat menghasilkan perilaku pembatasan ketika jumlah replika pencarian dan partisi rendah. Jumlah maksimum kueri per detik yang dapat didukung partisi tunggal dan replika tunggal mungkin tidak cukup. Dalam hal ini, pertimbangkan untuk meningkatkan replika dan partisi Anda, atau menambahkan logika tidur/coba lagi di aplikasi Anda. Lihat dokumentasi Pencarian Azure AI untuk informasi selengkapnya.
Ketersediaan regional dan dukungan model
Wilayah | gpt-35-turbo-16k (0613) |
gpt-35-turbo (1106) |
gpt-4-32k (0613) |
gpt-4 (1106-preview) |
gpt-4 (0125-preview) |
gpt-4 (0613) |
gpt-4o ** |
gpt-4 (turbo-2024-04-09) |
---|---|---|---|---|---|---|---|---|
Australia Timur | ✅ | ✅ | ✅ | ✅ | ✅ | |||
Kanada Timur | ✅ | ✅ | ✅ | ✅ | ✅ | |||
AS Timur | ✅ | ✅ | ✅ | |||||
AS Timur 2 | ✅ | ✅ | ✅ | ✅ | ||||
Prancis Tengah | ✅ | ✅ | ✅ | ✅ | ✅ | |||
Jepang Timur | ✅ | |||||||
AS Tengah Bagian Utara | ✅ | ✅ | ✅ | |||||
Norwegia Timur | ✅ | ✅ | ||||||
US Tengah Selatan | ✅ | ✅ | ||||||
India Selatan | ✅ | ✅ | ||||||
Swedia Tengah | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Swiss Utara | ✅ | ✅ | ✅ | |||||
UK Selatan | ✅ | ✅ | ✅ | ✅ | ||||
US Barat | ✅ | ✅ | ✅ |
**Ini adalah implementasi teks saja
Jika sumber daya Azure OpenAI Anda berada di wilayah lain, Anda tidak akan dapat menggunakan Azure OpenAI On Your Data.