Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Layanan Web Amazon

Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Layanan Web Amazon

AI generatif Model-model tersebut mempunyai potensi untuk merevolusi operasi perusahaan, namun dunia usaha harus mempertimbangkan dengan hati-hati bagaimana memanfaatkan kekuatan mereka sambil mengatasi tantangan seperti menjaga data dan memastikan kualitas konten yang dihasilkan AI.

Kerangka kerja Retrieval-Augmented Generation (RAG) menambah permintaan dengan data eksternal dari berbagai sumber, seperti repositori dokumen, database, atau API, untuk membuat model dasar efektif untuk tugas spesifik domain. Postingan ini menyajikan kemampuan model RAG dan menyoroti potensi transformatif MongoDB Atlas dengan fitur Pencarian Vektor.

Atlas MongoDB adalah rangkaian layanan data terintegrasi yang mempercepat dan menyederhanakan pengembangan aplikasi berbasis data. Penyimpanan data vektornya terintegrasi secara mulus dengan penyimpanan data operasional, sehingga menghilangkan kebutuhan akan database terpisah. Integrasi ini memungkinkan kemampuan pencarian semantik yang kuat Pencarian Vektor, cara cepat untuk membangun pencarian semantik dan aplikasi yang didukung AI.

Amazon SageMaker memungkinkan perusahaan untuk membangun, melatih, dan menerapkan model pembelajaran mesin (ML). Mulai Lompatan Amazon SageMaker menyediakan model dan data terlatih untuk membantu Anda memulai ML. Anda dapat mengakses, menyesuaikan, dan menerapkan model dan data terlatih melalui halaman arahan SageMaker JumpStart di Studio Amazon SageMaker hanya dengan beberapa klik.

AmazonLex adalah antarmuka percakapan yang membantu bisnis membuat chatbot dan bot suara yang terlibat dalam interaksi alami dan nyata. Dengan mengintegrasikan Amazon Lex dengan AI generatif, bisnis dapat menciptakan ekosistem holistik di mana masukan pengguna bertransisi dengan mulus menjadi respons yang koheren dan relevan secara kontekstual.

Ikhtisar solusi

Diagram berikut menggambarkan arsitektur solusi.

Ikhtisar solusi

Di bagian berikut, kami akan memandu langkah-langkah untuk mengimplementasikan solusi ini dan komponen-komponennya.

Siapkan klaster MongoDB

Untuk membuat cluster MongoDB Atlas tingkat gratis, ikuti petunjuk di Buat Klaster. Siapkan basis data mengakses dan jaringan mengakses.

Terapkan model penyematan SageMaker

Anda dapat memilih model penyematan (SEMUA MiniLM L6 v2) di SageMaker JumpStart Model, notebook, solusi .

SageMaker JumpStart Model, notebook, solusi

Pilih Menyebarkan untuk menyebarkan model.

Verifikasi model berhasil diterapkan dan verifikasi titik akhir telah dibuat.

model berhasil diterapkan

Penyematan vektor

Penyematan vektor adalah proses mengubah teks atau gambar menjadi representasi vektor. Dengan kode berikut, kita dapat membuat penyematan vektor dengan SageMaker JumpStart dan memperbarui koleksi dengan vektor yang dibuat untuk setiap dokumen:

payload = {"text_inputs": [document[field_name_to_be_vectorized]]}
query_response = query_endpoint_with_json_payload(json.dumps(payload).encode('utf-8'))
embeddings = parse_response_multiple_texts(query_response) # update the document
update = {'$set': {vector_field_name :  embeddings[0]}}
collection.update_one(query, update)

Kode di atas menunjukkan cara memperbarui satu objek dalam sebuah koleksi. Untuk memperbarui semua objek ikuti instruksi.

Penyimpanan data vektor MongoDB

Pencarian Vektor Atlas MongoDB adalah fitur baru yang memungkinkan Anda menyimpan dan mencari data vektor di MongoDB. Data vektor adalah jenis data yang mewakili suatu titik dalam ruang berdimensi tinggi. Jenis data ini sering digunakan dalam aplikasi ML dan kecerdasan buatan. Pencarian Vektor Atlas MongoDB menggunakan teknik yang disebut k-tetangga terdekat (k-NN) untuk mencari vektor yang sejenis. k-NN bekerja dengan mencari k vektor yang paling mirip dengan vektor tertentu. Vektor-vektor yang paling mirip adalah vektor-vektor yang paling dekat dengan vektor tersebut ditinjau dari jarak Euclidean.

Menyimpan data vektor di samping data operasional dapat meningkatkan kinerja dengan mengurangi kebutuhan untuk memindahkan data antar sistem penyimpanan yang berbeda. Hal ini sangat bermanfaat untuk aplikasi yang memerlukan akses real-time ke data vektor.

Buat indeks Pencarian Vektor

Langkah selanjutnya adalah membuat a Indeks Pencarian Vektor MongoDB pada bidang vektor yang Anda buat pada langkah sebelumnya. MongoDB menggunakan knnVector ketik untuk mengindeks penyematan vektor. Bidang vektor harus direpresentasikan sebagai array angka (hanya tipe data BSON int32, int64, atau double).

Lihat Tinjau Batasan Jenis knnVector untuk informasi lebih lanjut tentang batasan knnVector mengetik.

Kode berikut adalah contoh definisi indeks:

{ "mappings": { "dynamic": true, "fields": { "egVector": { "dimensions": 384, "similarity": "euclidean", "type": "knnVector" } } }
}

Perhatikan bahwa dimensinya harus sesuai dengan dimensi model embeddings Anda.

Kueri penyimpanan data vektor

Anda dapat menanyakan penyimpanan data vektor menggunakan Pipa agregasi Pencarian Vektor. Ia menggunakan indeks Pencarian Vektor dan melakukan a pencarian semantik di penyimpanan data vektor.

Kode berikut adalah contoh definisi pencarian:

{ $search: { "index": "<index name>", // optional, defaults to "default" "knnBeta": { "vector": [<array-of-numbers>], "path": "<field-to-search>", "filter": {<filter-specification>}, "k": <number>, "score": {<options>} } }
}

Terapkan model bahasa besar SageMaker

Model dasar SageMaker JumpStart adalah model bahasa besar (LLM) terlatih yang digunakan untuk menyelesaikan berbagai tugas pemrosesan bahasa alami (NLP), seperti peringkasan teks, menjawab pertanyaan, dan inferensi bahasa alami. Mereka tersedia dalam berbagai ukuran dan konfigurasi. Dalam solusi ini, kami menggunakan Wajah Memeluk Model FLAN-T5-XL.

Cari model FLAN-T5-XL di SageMaker JumpStart.

Cari FLAN-T5-XL

Pilih Menyebarkan untuk mengatur model FLAN-T5-XL.

Menyebarkan

Pastikan model berhasil diterapkan dan titik akhir aktif.

Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Buat bot Amazon Lex

Untuk membuat bot Amazon Lex, selesaikan langkah-langkah berikut:

  1. Di konsol Amazon Lex, pilih Buat bot.

Buat bot

  1. Untuk Nama bot, masukkan nama.
  2. Untuk Peran waktu proses, pilih Buat peran dengan izin dasar Amazon Lex.
    Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.
  3. Tentukan pengaturan bahasa Anda, lalu pilih Done.
    Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.
  4. Tambahkan contoh ucapan di NewIntent UI dan pilih Simpan niat.
    Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.
  5. Arahkan ke folder FallbackIntent yang dibuat untuk Anda secara default dan beralih Aktif dalam Pemenuhan bagian.
    beralih Aktif
  6. Pilih Membangun dan setelah build berhasil, pilih uji.
    Bangun dan Uji
  7. Sebelum pengujian, pilih ikon roda gigi.
    Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.
  8. Tentukan AWS Lambda fungsi yang akan berinteraksi dengan MongoDB Atlas dan LLM untuk memberikan respons. Untuk membuat fungsi lambda ikuti langkah-langkah.
    9. Tentukan fungsi AWS Lambda
  9. Anda sekarang dapat berinteraksi dengan LLM.

Membersihkan

Untuk membersihkan sumber daya Anda, selesaikan langkah-langkah berikut:

  1. Hapus bot Amazon Lex.
  2. Hapus fungsi Lambda.
  3. Hapus titik akhir LLM SageMaker.
  4. Hapus titik akhir model penyematan SageMaker.
  5. Hapus klaster MongoDB Atlas.

Kesimpulan

Dalam postingan tersebut, kami menunjukkan cara membuat bot sederhana yang menggunakan pencarian semantik MongoDB Atlas dan terintegrasi dengan model dari SageMaker JumpStart. Bot ini memungkinkan Anda dengan cepat membuat prototipe interaksi pengguna dengan LLM berbeda di SageMaker Jumpstart sambil memasangkannya dengan konteks yang berasal dari MongoDB Atlas.

Seperti biasa, AWS menerima masukan. Silakan tinggalkan tanggapan dan pertanyaan Anda di bagian komentar.


Tentang penulis

Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Igor Alekseev adalah Arsitek Solusi Mitra Senior di AWS dalam domain Data dan Analitik. Dalam perannya, Igor bekerja dengan mitra strategis membantu mereka membangun arsitektur yang kompleks dan dioptimalkan untuk AWS. Sebelum bergabung dengan AWS, sebagai Arsitek Data/Solusi, dia mengimplementasikan banyak proyek di domain Big Data, termasuk beberapa data lake di ekosistem Hadoop. Sebagai Insinyur Data, dia terlibat dalam penerapan AI/ML untuk deteksi penipuan dan otomatisasi kantor.


Generasi Augmented Pengambilan dengan LangChain, Amazon SageMaker JumpStart, dan pencarian semantik MongoDB Atlas | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Babu Srinivasan
adalah Arsitek Solusi Mitra Senior di MongoDB. Dalam perannya saat ini, dia bekerja dengan AWS untuk membangun integrasi teknis dan arsitektur referensi untuk solusi AWS dan MongoDB. Dia memiliki lebih dari dua dekade pengalaman dalam teknologi Database dan Cloud. Dia bersemangat memberikan solusi teknis kepada pelanggan yang bekerja dengan beberapa Global System Integrators (GSIs) di berbagai wilayah geografis.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS