Bagikan melalui


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

Diagram memperlihatkan contoh alur kerja.

Biasanya, proses pengembangan yang akan Anda gunakan dengan Azure OpenAI On Your Data adalah:

  1. 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.

  2. 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.

  3. Inferensi: Setelah aplikasi Anda disebarkan di lingkungan pilihan Anda, aplikasi akan mengirim perintah ke Azure OpenAI, yang akan melakukan beberapa langkah sebelum mengembalikan respons:

    1. Pembuatan niat: Layanan akan menentukan niat permintaan pengguna untuk menentukan respons yang tepat.

    2. 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.

    3. Filtrasi dan reranking: Hasil pencarian dari langkah pengambilan ditingkatkan dengan memberi peringkat dan memfilter data untuk menyempurnakan relevansi.

    4. 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.

Diagram layanan pengindeksan vektor.

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.

Cuplikan layar memperlihatkan tombol penyebaran model 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.

Cuplikan layar memperlihatkan opsi pesan sistem di Azure OpenAI Studio.

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.

  1. Jika tool_choice adalah none, alat diabaikan, dan hanya sumber data yang digunakan untuk menghasilkan jawaban.
  2. Jika tidak, jika tool_choice tidak ditentukan, atau ditentukan sebagai auto 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:

  1. 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.

  2. 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.

  3. 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 jika inScope=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).

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.

Langkah berikutnya