Salah satu pola aplikasi yang paling berguna untuk beban kerja AI generatif adalah Retrieval Augmented Generation (RAG). Dalam pola RAG, kami menemukan potongan konten referensi yang terkait dengan perintah masukan dengan melakukan penelusuran kesamaan pada penyematan. Penyematan menangkap konten informasi dalam kumpulan teks, memungkinkan model pemrosesan bahasa alami (NLP) bekerja dengan bahasa dalam bentuk numerik. Penyematan hanyalah vektor bilangan floating point, jadi kita dapat menganalisisnya untuk membantu menjawab tiga pertanyaan penting: Apakah data referensi kita berubah seiring waktu? Apakah pertanyaan yang diajukan pengguna berubah seiring waktu? Dan yang terakhir, seberapa baik data referensi kita mencakup pertanyaan-pertanyaan yang diajukan?
Dalam postingan ini, Anda akan mempelajari beberapa pertimbangan untuk menyematkan analisis vektor dan mendeteksi sinyal penyematan penyimpangan. Karena penyematan merupakan sumber data penting untuk model NLP secara umum dan solusi AI generatif pada khususnya, kami memerlukan cara untuk mengukur apakah penyematan kami berubah seiring waktu (melayang). Dalam postingan ini, Anda akan melihat contoh melakukan deteksi penyimpangan pada penyematan vektor menggunakan teknik pengelompokan dengan model bahasa besar (LLMS) yang diterapkan dari Mulai Lompatan Amazon SageMaker. Anda juga akan dapat menjelajahi konsep-konsep ini melalui dua contoh yang disediakan, termasuk contoh aplikasi end-to-end atau, opsional, subset aplikasi.
Ikhtisar RAG
Grafik pola RAG memungkinkan Anda mengambil pengetahuan dari sumber eksternal, seperti dokumen PDF, artikel wiki, atau transkrip panggilan, dan kemudian menggunakan pengetahuan tersebut untuk menambah perintah instruksi yang dikirim ke LLM. Hal ini memungkinkan LLM untuk merujuk informasi yang lebih relevan saat menghasilkan respons. Misalnya, jika Anda bertanya kepada LLM cara membuat kue keping coklat, LLM dapat menyertakan informasi dari perpustakaan resep Anda sendiri. Dalam pola ini, teks resep diubah menjadi vektor penyematan menggunakan model penyematan, dan disimpan dalam database vektor. Pertanyaan yang masuk diubah menjadi penyematan, dan kemudian database vektor menjalankan pencarian kesamaan untuk menemukan konten terkait. Pertanyaan dan data referensi kemudian masuk ke prompt untuk LLM.
Mari kita lihat lebih dekat vektor penyematan yang dibuat dan cara melakukan analisis penyimpangan pada vektor tersebut.
Analisis penyematan vektor
Vektor yang disematkan adalah representasi numerik dari data kita sehingga analisis vektor ini dapat memberikan wawasan tentang data referensi kita yang nantinya dapat digunakan untuk mendeteksi potensi sinyal penyimpangan. Vektor yang tersemat merepresentasikan suatu item dalam ruang berdimensi n, yang n sering kali berukuran besar. Misalnya, model GPT-J 6B, yang digunakan dalam postingan ini, membuat vektor berukuran 4096. Untuk mengukur penyimpangan, asumsikan bahwa aplikasi kita menangkap vektor yang disematkan untuk data referensi dan perintah masuk.
Kita mulai dengan melakukan reduksi dimensi menggunakan Principal Component Analysis (PCA). PCA mencoba mengurangi jumlah dimensi sambil mempertahankan sebagian besar varians dalam data. Dalam kasus ini, kami mencoba mencari jumlah dimensi yang mempertahankan 95% varians, yang seharusnya mencakup apa pun yang berada dalam dua standar deviasi.
Kemudian kami menggunakan K-Means untuk mengidentifikasi sekumpulan pusat cluster. K-Means mencoba mengelompokkan titik-titik menjadi beberapa cluster sedemikian rupa sehingga setiap cluster relatif kompak dan cluster berada sejauh mungkin satu sama lain.
Kami menghitung informasi berikut berdasarkan keluaran pengelompokan yang ditunjukkan pada gambar berikut:
- Banyaknya dimensi pada PCA yang menjelaskan 95% varians
- Lokasi setiap pusat cluster, atau centroid
Selain itu, kami melihat proporsi (lebih tinggi atau lebih rendah) sampel di setiap cluster, seperti yang ditunjukkan pada gambar berikut.
Terakhir, kami menggunakan analisis ini untuk menghitung hal berikut:
- Kelembaman โ Inersia adalah jumlah kuadrat jarak ke pusat cluster, yang mengukur seberapa baik data dikelompokkan menggunakan K-Means.
- Skor Silhouette โ Skor siluet adalah ukuran validasi konsistensi dalam cluster, dan berkisar antara -1 hingga 1. Nilai yang mendekati 1 berarti titik-titik dalam suatu cluster dekat dengan titik-titik lain dalam cluster yang sama dan jauh dari titik-titik tersebut. titik cluster lainnya. Representasi visual dari skor siluet dapat dilihat pada gambar berikut.
Kami dapat mengambil informasi ini secara berkala untuk cuplikan penyematan untuk data referensi sumber dan perintahnya. Menangkap data ini memungkinkan kami menganalisis sinyal potensial dari penyematan penyimpangan.
Mendeteksi penyimpangan penyematan
Secara berkala, kita dapat membandingkan informasi pengelompokan melalui snapshot data, yang mencakup penyematan data referensi dan penyematan cepat. Pertama, kita dapat membandingkan jumlah dimensi yang diperlukan untuk menjelaskan 95% variasi dalam data penyematan, inersia, dan skor siluet dari tugas pengelompokan. Seperti yang dapat Anda lihat pada tabel berikut, dibandingkan dengan garis dasar, cuplikan penyematan terbaru memerlukan 39 dimensi lebih banyak untuk menjelaskan variansnya, yang menunjukkan bahwa data kami lebih tersebar. Inersianya meningkat, menunjukkan bahwa sampel secara agregat berada semakin jauh dari pusat clusternya. Selain itu, skor siluetnya telah menurun, yang menunjukkan bahwa cluster-clusternya tidak terdefinisi dengan baik. Untuk data cepat, hal ini mungkin menunjukkan bahwa jenis pertanyaan yang masuk ke sistem mencakup lebih banyak topik.
Selanjutnya, pada gambar berikut, kita dapat melihat bagaimana proporsi sampel di setiap cluster berubah seiring waktu. Hal ini dapat menunjukkan kepada kita apakah data referensi terbaru kita secara umum mirip dengan kumpulan sebelumnya, atau mencakup area baru.
Terakhir, kita dapat melihat apakah pusat cluster bergerak, yang akan menunjukkan penyimpangan informasi dalam cluster, seperti yang ditunjukkan pada tabel berikut.
Cakupan data referensi untuk pertanyaan yang masuk
Kami juga dapat mengevaluasi seberapa selaras data referensi kami dengan pertanyaan yang masuk. Untuk melakukan hal ini, kami menetapkan setiap penyematan prompt ke cluster data referensi. Kami menghitung jarak dari setiap prompt ke pusat terkait, dan melihat mean, median, dan deviasi standar dari jarak tersebut. Kami dapat menyimpan informasi tersebut dan melihat perubahannya seiring waktu.
Gambar berikut menunjukkan contoh analisis jarak antara penyematan cepat dan pusat data referensi dari waktu ke waktu.
Seperti yang Anda lihat, statistik jarak rata-rata, median, dan deviasi standar antara penyematan cepat dan pusat data referensi menurun antara garis dasar awal dan cuplikan terbaru. Meskipun nilai absolut dari jarak sulit untuk diinterpretasikan, kita dapat menggunakan tren untuk menentukan apakah tumpang tindih semantik antara data referensi dan pertanyaan masuk menjadi lebih baik atau lebih buruk dari waktu ke waktu.
Contoh aplikasi
Untuk mengumpulkan hasil eksperimen yang dibahas di bagian sebelumnya, kami membangun aplikasi sampel yang mengimplementasikan pola RAG menggunakan model penyematan dan pembuatan yang diterapkan melalui SageMaker JumpStart dan dihosting di Amazon SageMaker titik akhir waktu nyata.
Aplikasi ini memiliki tiga komponen inti:
- Kami menggunakan aliran interaktif, yang mencakup antarmuka pengguna untuk menangkap perintah, dikombinasikan dengan lapisan orkestrasi RAG, menggunakan LangChain.
- Alur pemrosesan data mengekstrak data dari dokumen PDF dan membuat penyematan yang disimpan di dalamnya Layanan Pencarian Terbuka Amazon. Kami juga menggunakan ini dalam komponen analisis penyimpangan penyematan akhir pada aplikasi.
- Embeddings ditangkap Layanan Penyimpanan Sederhana Amazon (Amazon S3) melalui Firehose Data Amazon Kinesis, dan kami menjalankan kombinasi Lem AWS mengekstrak, mengubah, dan memuat (ETL) pekerjaan dan notebook Jupyter untuk melakukan analisis penyematan.
Diagram berikut menggambarkan arsitektur end-to-end.
Kode sampel lengkap tersedia di GitHub. Kode yang diberikan tersedia dalam dua pola berbeda:
- Contoh aplikasi full-stack dengan frontend Streamlit โ Ini menyediakan aplikasi end-to-end, termasuk antarmuka pengguna menggunakan Streamlit untuk menangkap perintah, dikombinasikan dengan lapisan orkestrasi RAG, menggunakan LangChain yang berjalan di Layanan Kontainer Amazon Elastic (Amazon ECS) dengan Fargate AWS
- Aplikasi ujung belakang โ Bagi mereka yang tidak ingin menerapkan tumpukan aplikasi penuh, Anda dapat memilih untuk hanya menerapkan backend Kit Pengembangan AWS Cloud (AWS CDK), lalu gunakan notebook Jupyter yang disediakan untuk melakukan orkestrasi RAG menggunakan LangChain
Untuk membuat pola yang disediakan, ada beberapa prasyarat yang dirinci di bagian berikut, dimulai dengan penerapan model generatif dan penyematan teks, lalu beralih ke prasyarat tambahan.
Terapkan model melalui SageMaker JumpStart
Kedua pola tersebut mengasumsikan penerapan model embedding dan model generatif. Untuk ini, Anda akan menerapkan dua model dari SageMaker JumpStart. Model pertama, GPT-J 6B, digunakan sebagai model penyematan dan model kedua, Falcon-40b, digunakan untuk pembuatan teks.
Anda dapat menerapkan masing-masing model ini melalui SageMaker JumpStart dari Konsol Manajemen AWS, Studio Amazon SageMaker, atau secara terprogram. Untuk informasi lebih lanjut, lihat Cara menggunakan model pondasi JumpStart. Untuk menyederhanakan penerapan, Anda dapat menggunakan buku catatan yang disediakan berasal dari buku catatan yang dibuat secara otomatis oleh SageMaker JumpStart. Notebook ini mengambil model dari hub SageMaker JumpStart ML dan menyebarkannya ke dua titik akhir real-time SageMaker yang terpisah.
Contoh buku catatan juga memiliki bagian pembersihan. Jangan jalankan bagian itu dulu, karena akan menghapus endpoint yang baru saja di-deploy. Anda akan menyelesaikan pembersihan di akhir panduan.
Setelah mengonfirmasi keberhasilan penerapan titik akhir, Anda siap untuk menerapkan aplikasi sampel lengkap. Namun, jika Anda lebih tertarik untuk menjelajahi backend dan buku catatan analisis saja, Anda dapat menerapkannya secara opsional saja, yang akan dibahas di bagian berikutnya.
Opsi 1: Terapkan aplikasi backend saja
Pola ini memungkinkan Anda menyebarkan solusi backend saja dan berinteraksi dengan solusi menggunakan notebook Jupyter. Gunakan pola ini jika Anda tidak ingin membuat antarmuka frontend penuh.
Prasyarat
Anda harus memiliki prasyarat berikut:
- Titik akhir model SageMaker JumpStart disebarkan โ Terapkan model ke titik akhir real-time SageMaker menggunakan SageMaker JumpStart, seperti yang diuraikan sebelumnya
- Parameter penerapan โ Catat hal berikut:
- Nama titik akhir model teks โ Nama titik akhir model pembuatan teks yang diterapkan dengan SageMaker JumpStart
- Nama titik akhir model penyematan โ Nama titik akhir model penyematan yang diterapkan dengan SageMaker JumpStart
Terapkan sumber daya menggunakan AWS CDK
Gunakan parameter penerapan yang disebutkan di bagian sebelumnya untuk menerapkan tumpukan AWS CDK. Untuk informasi lebih lanjut tentang instalasi AWS CDK, lihat Memulai dengan AWS CDK.
Pastikan Docker diinstal dan berjalan di workstation yang akan digunakan untuk penerapan AWS CDK. Mengacu pada Dapatkan Docker untuk panduan tambahan.
Alternatifnya, Anda dapat memasukkan nilai konteks dalam file bernama cdk.context.json
dalam pattern1-rag/cdk
direktori dan jalankan cdk deploy BackendStack --exclusively
.
Penyebaran akan mencetak keluaran, beberapa di antaranya diperlukan untuk menjalankan notebook. Sebelum Anda dapat memulai tanya jawab, sematkan dokumen referensi, seperti yang ditunjukkan di bagian berikutnya.
Sematkan dokumen referensi
Untuk pendekatan RAG ini, dokumen referensi terlebih dahulu disematkan dengan model penyematan teks dan disimpan dalam database vektor. Dalam solusi ini, saluran penyerapan telah dibangun yang menerima dokumen PDF.
An Cloud komputasi elastis Amazon Mesin virtual (Amazon EC2) telah dibuat untuk penyerapan dokumen PDF dan Sistem File Amazon Elastis Sistem file (Amazon EFS) dipasang pada instans EC2 untuk menyimpan dokumen PDF. Sebuah Sinkronisasi Data AWS tugas dijalankan setiap jam untuk mengambil dokumen PDF yang ditemukan di jalur sistem file EFS dan mengunggahnya ke bucket S3 untuk memulai proses penyematan teks. Proses ini menyematkan dokumen referensi dan menyimpan penyematannya di Layanan OpenSearch. Ini juga menyimpan arsip penyematan ke bucket S3 melalui Kinesis Data Firehose untuk analisis nanti.
Untuk menyerap dokumen referensi, selesaikan langkah-langkah berikut:
- Ambil contoh ID instans EC2 yang telah dibuat (lihat output AWS CDK
JumpHostId
) dan sambungkan menggunakan session Manager, kemampuan Manajer Sistem AWS. Untuk petunjuk, lihat Hubungkan ke instans Linux Anda dengan AWS Systems Manager Session Manager. - Buka direktori
/mnt/efs/fs1
, yang merupakan tempat sistem file EFS dipasang, dan buat folder bernamaingest
: - Tambahkan dokumen PDF referensi Anda ke
ingest
direktori.
Tugas DataSync dikonfigurasi untuk mengunggah semua file yang ditemukan di direktori ini ke Amazon S3 untuk memulai proses penyematan.
Tugas DataSync berjalan pada jadwal per jam; Anda juga dapat memulai tugas secara manual untuk segera memulai proses penyematan pada dokumen PDF yang Anda tambahkan.
- Untuk memulai tugas, temukan ID tugas dari output AWS CDK
DataSyncTaskID
dan memulai tugas dengan default.
Setelah penyematan dibuat, Anda dapat memulai pertanyaan dan jawaban RAG melalui buku catatan Jupyter, seperti yang ditunjukkan di bagian berikutnya.
Tanya jawab menggunakan buku catatan Jupyter
Selesaikan langkah-langkah berikut:
- Ambil nama instans notebook SageMaker dari output AWS CDK
NotebookInstanceName
dan sambungkan ke JupyterLab dari konsol SageMaker. - Buka direktori
fmops/full-stack/pattern1-rag/notebooks/
. - Buka dan jalankan buku catatan
query-llm.ipynb
di instance notebook untuk melakukan tanya jawab menggunakan RAG.
Pastikan untuk menggunakan conda_python3
kernel untuk buku catatan.
Pola ini berguna untuk mengeksplorasi solusi backend tanpa perlu menyediakan prasyarat tambahan yang diperlukan untuk aplikasi full-stack. Bagian selanjutnya mencakup implementasi aplikasi full-stack, termasuk komponen frontend dan backend, untuk menyediakan antarmuka pengguna untuk berinteraksi dengan aplikasi AI generatif Anda.
Opsi 2: Terapkan aplikasi sampel tumpukan penuh dengan frontend Streamlit
Pola ini memungkinkan Anda menyebarkan solusi dengan antarmuka frontend pengguna untuk tanya jawab.
Prasyarat
Untuk menyebarkan aplikasi sampel, Anda harus memiliki prasyarat berikut:
- Titik akhir model SageMaker JumpStart disebarkan โ Terapkan model ke titik akhir real-time SageMaker Anda menggunakan SageMaker JumpStart, seperti yang diuraikan di bagian sebelumnya, menggunakan buku catatan yang disediakan.
- Zona yang dihosting Amazon Route 53 โ Buat Amazon Route 53 zona yang dihosting publik untuk digunakan untuk solusi ini. Anda juga dapat menggunakan zona yang dihosting publik Route 53 yang ada, seperti
example.com
. - Sertifikat AWS Certificate Manager โ Ketentuan an Manajer Sertifikat AWS (ACM) Sertifikat TLS untuk nama domain zona yang di-hosting Route 53 dan subdomainnya yang berlaku, seperti
example.com
dan*.example.com
untuk semua subdomain. Untuk instruksi, lihat Meminta sertifikat publik. Sertifikat ini digunakan untuk mengonfigurasi HTTPS Amazon CloudFront dan penyeimbang beban asal. - Parameter penerapan โ Catat hal berikut:
- Nama domain khusus aplikasi frontend โ Nama domain khusus yang digunakan untuk mengakses aplikasi sampel frontend. Nama domain yang diberikan digunakan untuk membuat catatan DNS Route 53 yang menunjuk ke distribusi CloudFront frontend; Misalnya,
app.example.com
. - Nama domain kustom asal penyeimbang beban โ Nama domain khusus yang digunakan untuk asal penyeimbang beban distribusi CloudFront. Nama domain yang diberikan digunakan untuk membuat catatan DNS Route 53 yang menunjuk ke penyeimbang beban asal; Misalnya,
app-lb.example.com
. - ID zona yang dihosting Route 53 โ ID zona yang dihosting Route 53 untuk menghosting nama domain khusus yang disediakan; Misalnya,
ZXXXXXXXXYYYYYYYYY
. - Nama zona yang dihosting Route 53 โ Nama zona yang dihosting Route 53 untuk menghosting nama domain khusus yang disediakan; Misalnya,
example.com
. - ARN sertifikat ACM โ ARN sertifikat ACM yang akan digunakan dengan domain kustom yang disediakan.
- Nama titik akhir model teks โ Nama titik akhir model pembuatan teks yang diterapkan dengan SageMaker JumpStart.
- Nama titik akhir model penyematan โ Nama titik akhir model penyematan yang diterapkan dengan SageMaker JumpStart.
- Nama domain khusus aplikasi frontend โ Nama domain khusus yang digunakan untuk mengakses aplikasi sampel frontend. Nama domain yang diberikan digunakan untuk membuat catatan DNS Route 53 yang menunjuk ke distribusi CloudFront frontend; Misalnya,
Terapkan sumber daya menggunakan AWS CDK
Gunakan parameter penerapan yang Anda catat dalam prasyarat untuk menerapkan tumpukan AWS CDK. Untuk informasi lebih lanjut, lihat Memulai dengan AWS CDK.
Pastikan Docker diinstal dan berjalan di workstation yang akan digunakan untuk penerapan AWS CDK.
Pada kode sebelumnya, -c mewakili nilai konteks, dalam bentuk prasyarat yang diperlukan, yang diberikan pada input. Alternatifnya, Anda dapat memasukkan nilai konteks dalam file bernama cdk.context.json
dalam pattern1-rag/cdk
direktori dan jalankan cdk deploy --all
.
Perhatikan bahwa kami menentukan Wilayah dalam file bin/cdk.ts
. Mengonfigurasi log akses ALB memerlukan Wilayah tertentu. Anda dapat mengubah Wilayah ini sebelum penerapan.
Penerapan akan mencetak URL untuk mengakses aplikasi Streamlit. Sebelum Anda dapat memulai tanya jawab, Anda perlu menyematkan dokumen referensi, seperti yang ditunjukkan di bagian berikutnya.
Sematkan dokumen referensi
Untuk pendekatan RAG, dokumen referensi pertama kali disematkan dengan model penyematan teks dan disimpan dalam database vektor. Dalam solusi ini, saluran penyerapan telah dibangun yang menerima dokumen PDF.
Seperti yang kita diskusikan di opsi penerapan pertama, contoh instans EC2 telah dibuat untuk penyerapan dokumen PDF dan sistem file EFS dipasang pada instans EC2 untuk menyimpan dokumen PDF. Tugas DataSync dijalankan setiap jam untuk mengambil dokumen PDF yang ditemukan di jalur sistem file EFS dan mengunggahnya ke bucket S3 untuk memulai proses penyematan teks. Proses ini menyematkan dokumen referensi dan menyimpan penyematannya di Layanan OpenSearch. Ini juga menyimpan arsip penyematan ke bucket S3 melalui Kinesis Data Firehose untuk analisis nanti.
Untuk menyerap dokumen referensi, selesaikan langkah-langkah berikut:
- Ambil contoh ID instans EC2 yang telah dibuat (lihat output AWS CDK
JumpHostId
) dan terhubung menggunakan Session Manager. - Buka direktori
/mnt/efs/fs1
, yang merupakan tempat sistem file EFS dipasang, dan buat folder bernamaingest
: - Tambahkan dokumen PDF referensi Anda ke
ingest
direktori.
Tugas DataSync dikonfigurasi untuk mengunggah semua file yang ditemukan di direktori ini ke Amazon S3 untuk memulai proses penyematan.
Tugas DataSync berjalan pada jadwal per jam. Anda juga dapat memulai tugas secara manual untuk segera memulai proses penyematan pada dokumen PDF yang Anda tambahkan.
- Untuk memulai tugas, temukan ID tugas dari output AWS CDK
DataSyncTaskID
dan memulai tugas dengan default.
Tanya jawab
Setelah dokumen referensi tertanam, Anda dapat memulai tanya jawab RAG dengan mengunjungi URL untuk mengakses aplikasi Streamlit. Sebuah Amazon Kognito lapisan autentikasi digunakan, sehingga memerlukan pembuatan akun pengguna di kumpulan pengguna Amazon Cognito yang disebarkan melalui AWS CDK (lihat output AWS CDK untuk nama kumpulan pengguna) untuk akses pertama kali ke aplikasi. Untuk instruksi tentang cara membuat pengguna Amazon Cognito, lihat Membuat pengguna baru di AWS Management Console.
Sematkan analisis penyimpangan
Di bagian ini, kami menunjukkan kepada Anda cara melakukan analisis penyimpangan dengan terlebih dahulu membuat garis dasar penyematan data referensi dan penyematan cepat, lalu membuat cuplikan penyematan dari waktu ke waktu. Hal ini memungkinkan Anda membandingkan penyematan garis dasar dengan penyematan snapshot.
Buat garis dasar penyematan untuk data referensi dan perintah
Untuk membuat garis dasar penyematan data referensi, buka konsol AWS Glue dan pilih tugas ETL embedding-drift-analysis
. Tetapkan parameter untuk pekerjaan ETL sebagai berikut dan jalankan pekerjaan:
- set
--job_type
untukBASELINE
. - set
--out_table
ke Amazon DynamoDB tabel untuk referensi penyematan data. (Lihat keluaran AWS CDKDriftTableReference
untuk nama tabel.) - set
--centroid_table
ke tabel DynamoDB untuk referensi data pusat massa. (Lihat keluaran AWS CDKCentroidTableReference
untuk nama tabel.) - set
--data_path
ke bucket S3 dengan awalan; Misalnya,s3://
/embeddingarchive/
. (Lihat keluaran AWS CDKBucketName
untuk nama ember.)
Begitu pula dengan menggunakan pekerjaan ETL embedding-drift-analysis
, buat garis dasar penyematan dari perintahnya. Tetapkan parameter untuk pekerjaan ETL sebagai berikut dan jalankan pekerjaan:
- set
--job_type
untukBASELINE
- set
--out_table
ke tabel DynamoDB untuk menyematkan data dengan cepat. (Lihat keluaran AWS CDKDriftTablePromptsName
untuk nama tabel.) - set
--centroid_table
ke tabel DynamoDB untuk data pusat massa yang cepat. (Lihat keluaran AWS CDKCentroidTablePrompts
untuk nama tabel.) - set
--data_path
ke bucket S3 dengan awalan; Misalnya,s3://
/promptarchive/
. (Lihat keluaran AWS CDKBucketName
untuk nama ember.)
Buat snapshot penyematan untuk data referensi dan perintah
Setelah Anda memasukkan informasi tambahan ke Layanan OpenSearch, jalankan pekerjaan ETL embedding-drift-analysis
lagi untuk mengambil snapshot penyematan data referensi. Parameternya akan sama dengan pekerjaan ETL yang Anda jalankan untuk membuat garis dasar penyematan data referensi seperti yang ditunjukkan di bagian sebelumnya, dengan pengecualian pengaturan --job_type
parameter untuk SNAPSHOT
.
Demikian pula, untuk mengambil snapshot dari embeddings prompt, jalankan pekerjaan ETL embedding-drift-analysis
lagi. Parameternya akan sama dengan pekerjaan ETL yang Anda jalankan untuk membuat garis dasar penyematan untuk perintah seperti yang ditunjukkan di bagian sebelumnya, dengan pengecualian pengaturan --job_type
parameter untuk SNAPSHOT
.
Bandingkan garis dasar dengan snapshot
Untuk membandingkan garis dasar penyematan dan rekam jepret untuk data referensi dan perintah, gunakan buku catatan yang disediakan pattern1-rag/notebooks/drift-analysis.ipynb
.
Untuk melihat perbandingan penyematan data referensi atau perintah, ubah variabel nama tabel DynamoDB (tbl
dan c_tbl
) di notebook ke tabel DynamoDB yang sesuai untuk setiap pengoperasian notebook.
Variabel buku catatan tbl
harus diubah menjadi nama tabel drift yang sesuai. Berikut ini adalah contoh konfigurasi variabel di notebook.
Nama tabel dapat diambil sebagai berikut:
- Untuk data penyematan referensi, ambil nama tabel drift dari output AWS CDK
DriftTableReference
- Untuk data penyematan cepat, ambil nama tabel drift dari output AWS CDK
DriftTablePromptsName
Selain itu, variabel notebook c_tbl
harus diubah menjadi nama tabel centroid yang sesuai. Berikut ini adalah contoh konfigurasi variabel di notebook.
Nama tabel dapat diambil sebagai berikut:
- Untuk data penyematan referensi, ambil nama tabel centroid dari output AWS CDK
CentroidTableReference
- Untuk data penyematan cepat, ambil nama tabel centroid dari output AWS CDK
CentroidTablePrompts
Analisis jarak cepat dari data referensi
Pertama, jalankan tugas AWS Glue embedding-distance-analysis
. Pekerjaan ini akan mengetahui klaster mana, dari evaluasi K-Means terhadap penyematan data referensi, yang dimiliki oleh setiap prompt. Kemudian menghitung mean, median, dan deviasi standar jarak dari setiap prompt ke pusat cluster yang bersangkutan.
Anda dapat menjalankan buku catatan pattern1-rag/notebooks/distance-analysis.ipynb
untuk melihat tren metrik jarak dari waktu ke waktu. Ini akan memberi Anda gambaran tentang tren keseluruhan dalam distribusi jarak penyematan cepat.
Buku catatan pattern1-rag/notebooks/prompt-distance-outliers.ipynb
adalah notebook AWS Glue yang mencari outlier, yang dapat membantu Anda mengidentifikasi apakah Anda mendapatkan lebih banyak perintah yang tidak terkait dengan data referensi.
Pantau skor kesamaan
Semua skor kesamaan dari OpenSearch Service telah login amazoncloudwatch bawah rag
ruang nama. Dasbor RAG_Scores
menunjukkan skor rata-rata dan jumlah total skor yang diserap.
Membersihkan
Untuk menghindari timbulnya biaya di masa mendatang, hapus semua sumber daya yang Anda buat.
Hapus model SageMaker yang dikerahkan
Referensi bagian pembersihan di disediakan contoh buku catatan untuk menghapus model SageMaker JumpStart yang diterapkan, atau Anda bisa hapus model di konsol SageMaker.
Hapus sumber daya AWS CDK
Jika Anda memasukkan parameter Anda di a cdk.context.json
file, bersihkan sebagai berikut:
Jika Anda memasukkan parameter pada baris perintah dan hanya menerapkan aplikasi backend (tumpukan AWS CDK backend), bersihkan sebagai berikut:
Jika Anda memasukkan parameter pada baris perintah dan menerapkan solusi lengkap (tumpukan AWS CDK frontend dan backend), bersihkan sebagai berikut:
Kesimpulan
Dalam postingan ini, kami memberikan contoh kerja aplikasi yang menangkap penyematan vektor untuk data referensi dan perintah dalam pola RAG untuk AI generatif. Kami menunjukkan cara melakukan analisis pengelompokan untuk menentukan apakah data referensi atau data cepat berubah seiring waktu, dan seberapa baik data referensi mencakup jenis pertanyaan yang diajukan pengguna. Jika Anda mendeteksi penyimpangan, hal ini dapat memberikan sinyal bahwa lingkungan telah berubah dan model Anda mendapatkan masukan baru yang mungkin tidak dapat ditangani secara optimal. Hal ini memungkinkan dilakukannya evaluasi proaktif terhadap model saat ini terhadap perubahan masukan.
Tentang Penulis
Abdullahi Olaoye adalah Arsitek Solusi Senior di Amazon Web Services (AWS). Abdullahi meraih gelar MSC di bidang Jaringan Komputer dari Wichita State University dan merupakan penulis terbitan yang telah memegang peran di berbagai domain teknologi seperti DevOps, modernisasi infrastruktur, dan AI. Saat ini beliau berfokus pada AI Generatif dan memainkan peran penting dalam membantu perusahaan merancang dan membangun solusi mutakhir yang didukung oleh AI Generatif. Di luar bidang teknologi, ia menemukan kegembiraan dalam seni eksplorasi. Saat tidak sedang merancang solusi AI, dia senang bepergian bersama keluarganya untuk menjelajahi tempat-tempat baru.
Randy De Fauw adalah Senior Principal Solutions Architect di AWS. Dia memegang gelar MSEE dari University of Michigan, tempat dia mengerjakan visi komputer untuk kendaraan otonom. Dia juga memegang gelar MBA dari Colorado State University. Randy telah memegang berbagai posisi di bidang teknologi, mulai dari rekayasa perangkat lunak hingga manajemen produk. Memasuki ruang Big Data pada tahun 2013 dan terus menjelajahi area tersebut. Dia aktif mengerjakan proyek di ruang ML dan telah mempresentasikan di berbagai konferensi termasuk Strata dan GlueCon.
Shelbee Eigenbrode adalah Arsitek Solusi Spesialis AI dan Pembelajaran Mesin Utama di Amazon Web Services (AWS). Dia telah berkecimpung dalam teknologi selama 24 tahun yang mencakup berbagai industri, teknologi, dan peran. Dia saat ini berfokus untuk menggabungkan latar belakang DevOps dan ML-nya ke dalam domain MLOps untuk membantu pelanggan memberikan dan mengelola beban kerja ML dalam skala besar. Dengan lebih dari 35 paten yang diberikan di berbagai domain teknologi, dia memiliki semangat untuk terus berinovasi dan menggunakan data untuk mendorong hasil bisnis. Shelbee adalah co-creator dan instruktur spesialisasi Ilmu Data Praktis di Coursera. Dia juga Co-Direktur Women In Big Data (WiBD), Denver chapter. Di waktu luangnya, dia suka menghabiskan waktu bersama keluarga, teman, dan anjingnya yang terlalu aktif.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/monitor-embedding-drift-for-llms-deployed-from-amazon-sagemaker-jumpstart/
- :memiliki
- :adalah
- :bukan
- :Di mana
- $NAIK
- 1
- 10
- 100
- 2013
- 24
- 35%
- 39
- 7
- 9
- 95%
- a
- Sanggup
- Tentang Kami
- Mutlak
- mengakses
- Akun
- ACM
- di seluruh
- aktif
- menambahkan
- tambahan
- Tambahan
- Informasi Tambahan
- Selain itu
- lagi
- terhadap
- agregat
- AI
- Rata
- Semua
- Membiarkan
- memungkinkan
- juga
- Meskipun
- Amazon
- Amazon Kognito
- Amazon EC2
- Amazon SageMaker
- Mulai Lompatan Amazon SageMaker
- Amazon Web Services
- Layanan Web Amazon (AWS)
- an
- analisis
- menganalisa
- menganalisis
- dan
- menjawab
- menjawab
- apa saja
- berlaku
- Aplikasi
- pendekatan
- sesuai
- arsitektur
- arsip
- ADALAH
- DAERAH
- daerah
- Seni
- artikel
- AS
- meminta
- meminta
- membantu
- menganggap
- At
- menambah
- ditambah
- Otentikasi
- penulis
- secara otomatis
- otonom
- kendaraan otonom
- tersedia
- rata-rata
- menghindari
- jauh
- AWS
- Lem AWS
- Backend
- latar belakang
- ayunan
- berdasarkan
- Dasar
- BE
- karena
- menjadi
- sebelum
- makhluk
- milik
- Lebih baik
- antara
- Luar
- Besar
- Big data
- tubuh
- kedua
- secara luas
- membangun
- dibangun di
- bisnis
- by
- menghitung
- menghitung
- panggilan
- bernama
- CAN
- kemampuan
- menangkap
- ditangkap
- menangkap
- Menangkap
- kasus
- CD
- pusat
- Pusat
- sertifikat
- perubahan
- berubah
- Perubahan
- mengubah
- Bab
- beban
- keping
- Cokelat
- Pilih
- membersihkan
- Penyelesaian
- lebih dekat
- awan
- Kelompok
- kekelompokan
- kode
- Colorado
- kombinasi
- bergabung
- menggabungkan
- kedatangan
- padat
- membandingkan
- dibandingkan
- perbandingan
- lengkap
- komponen
- komponen
- menghitung
- komputer
- Visi Komputer
- konsep
- konferensi
- dikonfigurasi
- mengkonfigurasi
- Terhubung
- pertimbangan
- konsul
- Wadah
- Konten
- konteks
- terus
- kontinu
- dikonversi
- kue
- Core
- Sesuai
- liputan
- tercakup
- penutup
- Meliputi
- membuat
- dibuat
- menciptakan
- membuat
- terbaru
- Sekarang
- adat
- pelanggan
- canggih
- dasbor
- data
- Pusat Data
- pengolahan data
- ilmu data
- Basis Data
- default
- didefinisikan
- menyampaikan
- Denver
- menyebarkan
- dikerahkan
- penggelaran
- penyebaran
- menyebarkan
- Berasal
- menghancurkan
- terperinci
- menemukan
- Deteksi
- Menentukan
- Pengembangan
- penyimpangan
- diagram
- berbeda
- sulit
- Dimensi
- ukuran
- dibahas
- tersebar
- jarak
- jauh
- distribusi
- dns
- do
- Buruh pelabuhan
- dokumen
- dokumen
- domain
- Nama domain
- NAMA DOMAIN
- domain
- Dont
- turun
- mendorong
- setiap
- menanamkan
- tertanam
- embedding
- akhir
- ujung ke ujung
- Titik akhir
- Teknik
- Enter
- masuk
- perusahaan
- Lingkungan Hidup
- mengevaluasi
- evaluasi
- Setiap
- contoh
- contoh
- pengecualian
- ada
- eksperimental
- Menjelaskan
- eksplorasi
- menyelidiki
- Menjelajahi
- luar
- ekstrak
- Ekstrak
- keluarga
- jauh
- Angka
- File
- File
- terakhir
- Akhirnya
- Menemukan
- menemukan
- Pertama
- mengambang
- aliran
- terfokus
- berfokus
- berikut
- berikut
- Untuk
- bentuk
- ditemukan
- Prinsip Dasar
- teman
- dari
- Frontend
- penuh
- masa depan
- mengumpulkan
- Umum
- menghasilkan
- generasi
- generatif
- AI generatif
- mendapatkan
- mendapatkan
- Memberikan
- Go
- mati
- diberikan
- Kelompok
- bimbingan
- menangani
- Memiliki
- he
- Dimiliki
- membantu
- dia
- lebih tinggi
- -nya
- memegang
- tuan rumah
- host
- jam
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HTML
- http
- HTTPS
- Pusat
- ID
- mengenali
- if
- menggambarkan
- segera
- implementasi
- mengimplementasikan
- penting
- in
- memasukkan
- termasuk
- Termasuk
- masuk
- menunjukkan
- industri
- kelembaman
- informasi
- Infrastruktur
- mulanya
- Innovation
- memasukkan
- input
- wawasan
- instalasi
- diinstal
- contoh
- instruksi
- berinteraksi
- berinteraksi
- interaktif
- tertarik
- Antarmuka
- ke
- IT
- NYA
- Pekerjaan
- Jobs
- kegembiraan
- jpg
- hanya
- kunci
- Firehose Data Kinesis
- pengetahuan
- bahasa
- besar
- kemudian
- Terbaru
- lapisan
- BELAJAR
- pengetahuan
- Lets
- Perpustakaan
- 'like
- baris
- linux
- LLM
- memuat
- tempat
- login
- melihat
- TERLIHAT
- menurunkan
- mesin
- Mesin belajar
- membuat
- mengelola
- pengelolaan
- manajer
- manual
- Mungkin..
- berarti
- cara
- mengukur
- ukuran
- Metrik
- Michigan
- mungkin
- ML
- MLOps
- model
- model
- Memantau
- lebih
- paling
- bergerak
- beberapa
- harus
- nama
- nama
- Alam
- Pengolahan Bahasa alami
- Perlu
- dibutuhkan
- membutuhkan
- jaringan
- New
- baru
- berikutnya
- nLP
- buku catatan
- terkenal
- jumlah
- nomor
- banyak sekali
- of
- sering
- on
- hanya
- Buka
- dioptimalkan
- pilihan
- or
- teknik mengatur musik
- urutan
- asal
- Lainnya
- kami
- di luar
- hasil
- diuraikan
- keluaran
- output
- lebih
- secara keseluruhan
- tumpang tindih
- sendiri
- parameter
- parameter
- tertentu
- gairah
- Paten
- path
- pola
- pola
- Melakukan
- melakukan
- potongan-potongan
- pipa saluran
- Tempat
- plato
- Kecerdasan Data Plato
- Data Plato
- memainkan
- Titik
- poin
- kolam
- posisi
- mungkin
- Pos
- potensi
- didukung
- Praktis
- mendahului
- prasyarat
- disajikan
- melestarikan
- sebelumnya
- sebelumnya
- Utama
- Mencetak
- Proaktif
- proses
- pengolahan
- Produk
- manajemen Produk
- memprojeksikan
- meminta
- proporsi
- memberikan
- disediakan
- menyediakan
- ketentuan
- publik
- diterbitkan
- Menarik
- pertanyaan
- Pertanyaan
- lap
- rentang
- mulai
- siap
- real-time
- dunia
- resep
- catatan
- menurunkan
- pengurangan
- lihat
- referensi
- wilayah
- terkait
- relatif
- relevan
- mewakili
- perwakilan
- merupakan
- wajib
- membutuhkan
- Sumber
- tanggapan
- Hasil
- pengambilan
- Peran
- peran
- Rute
- Run
- berjalan
- berjalan
- pembuat bijak
- sama
- Save
- Skala
- menjadwalkan
- Ilmu
- skor
- Pencarian
- pencarian
- Kedua
- Bagian
- bagian
- melihat
- terlihat
- memilih
- semantik
- senior
- rasa
- mengirim
- terpisah
- layanan
- Layanan
- Sidang
- set
- pengaturan
- beberapa
- dia
- harus
- Menunjukkan
- menunjukkan
- ditunjukkan
- Pertunjukkan
- Sinyal
- sinyal
- mirip
- Sederhana
- menyederhanakan
- Ukuran
- Potret
- So
- Perangkat lunak
- rekayasa Perangkat Lunak
- larutan
- Solusi
- beberapa
- sumber
- sumber
- Space
- ketegangan
- spesialis
- ditentukan
- menghabiskan
- Kuadrat
- tumpukan
- Tumpukan
- standar
- awal
- mulai
- Mulai
- Negara
- statistika
- Tangga
- penyimpanan
- menyimpan
- tersimpan
- sukses
- seperti itu
- yakin
- sistem
- sistem
- tabel
- Mengambil
- tugas
- teknik
- Teknologi
- Teknologi
- teks
- bahwa
- Grafik
- informasi
- Sumber
- mereka
- Mereka
- kemudian
- Sana.
- Ini
- ini
- itu
- tiga
- Melalui
- waktu
- untuk
- bersama
- Topik
- Total
- Mengubah
- Perjalanan
- kecenderungan
- Tren
- mencoba
- dua
- jenis
- bawah
- universitas
- URL
- us
- menggunakan
- bekas
- berguna
- Pengguna
- User Interface
- Pengguna
- menggunakan
- pengesahan
- nilai
- Nilai - Nilai
- variabel
- variasi
- berbagai
- Kendaraan
- melalui
- penglihatan
- visual
- walkthrough
- ingin
- adalah
- Cara..
- we
- jaringan
- layanan web
- BAIK
- ketika
- apakah
- yang
- sementara
- akan
- dengan
- dalam
- tanpa
- Wanita
- Kerja
- bekerja
- kerja
- workstation
- lebih buruk
- akan
- tahun
- namun
- Kamu
- Anda
- zephyrnet.dll
- daerah