Meskipun adopsi LLM di berbagai industri tampaknya tidak dapat dihentikan, LLM merupakan salah satu komponen ekosistem teknologi yang lebih luas yang mendukung gelombang AI baru. Banyak kasus penggunaan AI percakapan memerlukan LLM seperti Llama 2, Flan T5, dan Bloom untuk merespons pertanyaan pengguna. Model ini mengandalkan pengetahuan parametrik untuk menjawab pertanyaan. Model mempelajari pengetahuan ini selama pelatihan dan mengkodekannya ke dalam parameter model. Untuk memperbarui pengetahuan ini, kita harus melatih kembali LLM, yang membutuhkan banyak waktu dan uang.
Untungnya, kami juga dapat menggunakan sumber pengetahuan untuk menginformasikan LLM kami. Sumber pengetahuan adalah informasi yang dimasukkan ke dalam LLM melalui input prompt. Salah satu pendekatan populer untuk menyediakan sumber pengetahuan adalah Retrieval Augmented Generation (RAG). Dengan menggunakan RAG, kami mengambil informasi yang relevan dari sumber data eksternal dan memasukkan informasi tersebut ke dalam LLM.
Dalam postingan blog ini, kami akan mempelajari cara menerapkan LLM seperti Llama-2 menggunakan Amazon Sagemaker JumpStart dan terus memperbarui LLM kami dengan informasi yang relevan melalui Retrieval Augmented Generation (RAG) menggunakan database vektor Pinecone untuk mencegah Halusinasi AI .
Pengambilan Augmented Generation (RAG) di Amazon SageMaker
Pinecone akan menangani komponen pengambilan RAG, tetapi Anda memerlukan dua komponen penting lainnya: tempat untuk menjalankan inferensi LLM dan tempat untuk menjalankan model penyematan.
Amazon SageMaker Studio merupakan lingkungan pengembangan terintegrasi (IDE) yang menyediakan antarmuka visual berbasis web tunggal tempat Anda dapat mengakses alat yang dibuat khusus untuk melakukan semua pengembangan pembelajaran mesin (ML). Ini menyediakan SageMaker JumpStart yang merupakan hub model di mana pengguna dapat menemukan, melihat pratinjau, dan meluncurkan model tertentu di akun SageMaker mereka sendiri. Ini menyediakan model yang telah dilatih sebelumnya, tersedia untuk umum, dan eksklusif untuk berbagai jenis masalah, termasuk Model Fondasi.
Amazon SageMaker Studio menyediakan lingkungan ideal untuk mengembangkan pipeline LLM berkemampuan RAG. Pertama, menggunakan konsol AWS, buka Amazon SageMaker & buat domain SageMaker Studio dan buka notebook Jupyter Studio.
Prasyarat
Selesaikan langkah-langkah prasyarat berikut:
- Siapkan Amazon SageMaker Studio.
- Masuk ke Domain Amazon SageMaker.
- Mendaftarlah untuk mendapatkan Database Vektor Biji Pinus tingkat gratis.
- Pustaka prasyarat: SageMaker Python SDK, Klien Pinecone
Panduan Solusi
Menggunakan notebook SageMaker Studio, pertama-tama kita perlu menginstal pustaka prasyarat:
Menyebarkan LLM
Dalam posting ini, kami membahas dua pendekatan untuk menerapkan LLM. Yang pertama adalah melalui HuggingFaceModel
obyek. Anda dapat menggunakan ini saat menyebarkan LLM (dan menyematkan model) langsung dari hub model Hugging Face.
Misalnya, Anda dapat membuat konfigurasi yang dapat diterapkan untuk google/flan-t5-xl model seperti yang ditunjukkan pada tangkapan layar berikut:
Saat menerapkan model langsung dari Hugging Face, inisialisasi my_model_configuration
dengan yang berikut ini:
- An
env
config memberi tahu kita model mana yang ingin kita gunakan dan untuk tugas apa. - Eksekusi SageMaker kami
role
memberi kami izin untuk menerapkan model kami. - An
image_uri
adalah konfigurasi gambar khusus untuk menerapkan LLM dari Hugging Face.
Alternatifnya, SageMaker memiliki serangkaian model yang kompatibel langsung dengan model yang lebih sederhana JumpStartModel
obyek. Banyak LLM populer seperti Llama 2 didukung oleh model ini, yang dapat diinisialisasi seperti yang ditunjukkan pada tangkapan layar berikut:
Untuk kedua versi my_model
, sebarkan seperti yang ditunjukkan dalam tangkapan layar berikut:
Dengan titik akhir LLM kami yang diinisialisasi, Anda dapat mulai membuat kueri. Format pertanyaan kami mungkin berbeda (khususnya antara LLM percakapan dan non-percakapan), namun prosesnya secara umum sama. Untuk model Hugging Face, lakukan hal berikut:
Anda dapat menemukan solusinya di Repositori GitHub.
Jawaban yang kami terima di sini tidak masuk akal - ini hanya halusinasi.
Memberikan Konteks Tambahan ke LLM
Llama 2 mencoba menjawab pertanyaan kami hanya berdasarkan pengetahuan parametrik internal. Jelasnya, parameter model tidak menyimpan pengetahuan tentang instance mana yang dapat kita peroleh dengan pelatihan spot terkelola di SageMaker.
Untuk menjawab pertanyaan ini dengan benar, kita harus menggunakan sumber pengetahuan. Artinya, kami memberikan informasi tambahan kepada LLM melalui prompt. Mari tambahkan informasi tersebut secara langsung sebagai konteks tambahan untuk model.
Kita sekarang melihat jawaban yang benar atas pertanyaan tersebut; itu mudah! Namun, pengguna tidak mungkin memasukkan konteks ke dalam perintahnya, mereka sudah mengetahui jawaban atas pertanyaannya.
Daripada menyisipkan satu konteks secara manual, identifikasi informasi relevan secara otomatis dari database informasi yang lebih luas. Untuk itu, Anda memerlukan Retrieval Augmented Generation.
Pengambilan Augmented Generation
Dengan Retrieval Augmented Generation, Anda dapat mengkodekan database informasi ke dalam ruang vektor dengan kedekatan antar vektor mewakili relevansi/kesamaan semantiknya. Dengan ruang vektor ini sebagai basis pengetahuan, Anda dapat mengonversi kueri pengguna baru, menyandikannya ke dalam ruang vektor yang sama, dan mengambil rekaman paling relevan yang telah diindeks sebelumnya.
Setelah mengambil catatan yang relevan ini, pilih beberapa di antaranya dan sertakan dalam permintaan LLM sebagai konteks tambahan, sehingga memberikan LLM pengetahuan sumber yang sangat relevan. Ini adalah proses dua langkah di mana:
- Pengindeksan mengisi indeks vektor dengan informasi dari kumpulan data.
- Pengambilan terjadi selama kueri dan merupakan tempat kami mengambil informasi yang relevan dari indeks vektor.
Kedua langkah tersebut memerlukan model penyematan untuk menerjemahkan teks biasa yang dapat dibaca manusia ke dalam ruang vektor semantik. Gunakan pengubah kalimat MiniLM yang sangat efisien dari Hugging Face seperti yang ditunjukkan pada tangkapan layar berikut. Model ini bukan LLM dan oleh karena itu tidak diinisialisasi dengan cara yang sama seperti model Llama 2 kami.
Dalam majalah hub_config
, tentukan ID model seperti yang ditunjukkan pada tangkapan layar di atas tetapi untuk tugasnya, gunakan ekstraksi fitur karena kami menghasilkan penyematan vektor, bukan teks seperti LLM kami. Setelah ini, inisialisasi konfigurasi model dengan HuggingFaceModel
seperti sebelumnya, tapi kali ini tanpa gambar LLM dan dengan beberapa parameter versi.
Anda dapat menerapkan model itu lagi dengan deploy
, menggunakan instance yang lebih kecil (hanya CPU). ml.t2.large
. Model MiniLM berukuran kecil sehingga tidak memerlukan banyak memori dan tidak memerlukan GPU karena dapat dengan cepat membuat embeddings bahkan pada CPU. Jika diinginkan, Anda dapat menjalankan model lebih cepat pada GPU.
Untuk membuat penyematan, gunakan predict
metode dan meneruskan daftar konteks untuk dikodekan melalui inputs
kunci seperti yang ditunjukkan:
Dua konteks masukan diteruskan, mengembalikan dua penyematan vektor konteks seperti yang ditunjukkan:
len(out)
2
Dimensi penyematan model MiniLM adalah 384
yang berarti setiap vektor yang menyematkan keluaran MiniLM harus memiliki dimensi 384
. Namun, jika dilihat dari panjang embeddings kami, Anda akan melihat yang berikut:
len(out[0]), len(out[1])
(8, 8)
Dua daftar masing-masing berisi delapan item. MiniLM pertama-tama memproses teks dalam langkah tokenisasi. Tokenisasi ini mengubah teks biasa yang dapat dibaca manusia menjadi daftar ID token yang dapat dibaca model. Dalam fitur keluaran model, Anda dapat melihat penyematan tingkat token. salah satu penyematan ini menunjukkan dimensi yang diharapkan 384
seperti yang ditunjukkan:
len(out[0][0])
384
Ubah penyematan tingkat token ini menjadi penyematan tingkat dokumen dengan menggunakan nilai rata-rata di setiap dimensi vektor, seperti yang ditunjukkan dalam ilustrasi berikut.
Dengan dua penyematan vektor 384 dimensi, satu untuk setiap teks masukan. Untuk membuat hidup kita lebih mudah, gabungkan proses pengkodean menjadi satu fungsi seperti yang ditunjukkan pada tangkapan layar berikut:
Mengunduh Kumpulan Data
Unduh FAQ Amazon SageMaker sebagai basis pengetahuan untuk mendapatkan data yang berisi kolom pertanyaan dan jawaban.
Saat melakukan pencarian, carilah Jawaban saja, sehingga kolom Pertanyaan dapat di drop. Lihat buku catatan untuk detailnya.
Kumpulan data kami dan alur penyematan sudah siap. Sekarang yang kita butuhkan hanyalah tempat untuk menyimpan embeddings tersebut.
Pengindeksan
Basis data vektor Pinecone menyimpan penyematan vektor dan mencarinya secara efisien dalam skala besar. Untuk membuat database, Anda memerlukan kunci API gratis dari Pinecone.
Setelah Anda terhubung ke database vektor Pinecone, buatlah indeks vektor tunggal (mirip dengan tabel di DB tradisional). Beri nama indeksnya retrieval-augmentation-aws
dan menyelaraskan indeks dimension
dan metric
parameter dengan yang dibutuhkan oleh model penyematan (MiniLM dalam hal ini).
Untuk mulai memasukkan data, jalankan perintah berikut:
Anda dapat mulai menanyakan indeks dengan pertanyaan dari awal postingan ini.
Keluaran di atas menunjukkan bahwa kami mengembalikan konteks yang relevan untuk membantu kami menjawab pertanyaan kami. Sejak kita top_k = 1
, index.query
mengembalikan hasil teratas di samping metadata yang terbaca Managed Spot Training can be used with all instances supported in Amazon
.
Meningkatkan Prompt
Gunakan konteks yang diambil untuk menambah perintah dan memutuskan jumlah maksimum konteks untuk dimasukkan ke dalam LLM. Menggunakan 1000
batas karakter untuk menambahkan setiap konteks yang dikembalikan ke prompt secara berulang hingga Anda melebihi panjang konten.
Memberi makan context_str
ke dalam prompt LLM seperti yang ditunjukkan pada tangkapan layar berikut:
[Input]: Instance manakah yang dapat saya gunakan dengan Managed Spot Training di SageMaker? [Output]: Berdasarkan konteks yang diberikan, Anda dapat menggunakan Managed Spot Training dengan semua instans yang didukung di Amazon SageMaker. Oleh karena itu, jawabannya adalah: Semua instans didukung di Amazon SageMaker.
Logikanya berfungsi, jadi gabungkan menjadi satu fungsi agar semuanya tetap bersih.
Anda sekarang dapat mengajukan pertanyaan seperti yang ditunjukkan berikut ini:
Membersihkan
Untuk berhenti menimbulkan biaya yang tidak diinginkan, hapus model dan titik akhir.
Kesimpulan
Dalam postingan ini, kami memperkenalkan Anda pada RAG dengan LLM akses terbuka di SageMaker. Kami juga menunjukkan cara menerapkan model Amazon SageMaker Jumpstart dengan Llama 2, Hugging Face LLM dengan Flan T5, dan menyematkan model dengan MiniLM.
Kami menerapkan pipeline RAG end-to-end yang lengkap menggunakan model akses terbuka dan indeks vektor Pinecone. Dengan menggunakan ini, kami menunjukkan cara meminimalkan halusinasi, dan selalu memperbarui pengetahuan LLM, dan pada akhirnya meningkatkan pengalaman pengguna dan kepercayaan pada sistem kami.
Untuk menjalankan contoh ini sendiri, kloning repositori GitHub ini dan ikuti langkah-langkah sebelumnya menggunakan Buku catatan Menjawab Pertanyaan di GitHub.
Tentang penulis
Vedant Jain adalah Senior Spesialis AI/ML, yang mengerjakan inisiatif AI Generatif yang strategis. Sebelum bergabung dengan AWS, Vedant telah memegang posisi ML/Data Science Specialty di berbagai perusahaan seperti Databricks, Hortonworks (sekarang Cloudera) & JP Morgan Chase. Di luar pekerjaannya, Vedant sangat tertarik dalam membuat musik, panjat tebing, menggunakan sains untuk menjalani hidup yang bermakna & menjelajahi masakan dari seluruh dunia.
James Briggs adalah Staf Advokat Pengembang di Pinecone, yang berspesialisasi dalam pencarian vektor dan AI/ML. Dia memandu pengembang dan bisnis dalam mengembangkan solusi GenAI mereka sendiri melalui pendidikan online. Sebelum Pinecone James bekerja di AI untuk startup teknologi kecil hingga perusahaan keuangan mapan. Di luar pekerjaan, James memiliki hasrat untuk bepergian dan menjalani petualangan baru, mulai dari selancar dan scuba hingga Muay Thai dan BJJ.
Xin Huang adalah Ilmuwan Terapan Senior untuk Amazon SageMaker JumpStart dan algoritme bawaan Amazon SageMaker. Dia berfokus pada pengembangan algoritme pembelajaran mesin yang dapat diskalakan. Minat penelitiannya adalah di bidang pemrosesan bahasa alami, pembelajaran mendalam yang dapat dijelaskan pada data tabular, dan analisis kuat pengelompokan ruang-waktu non-parametrik. Dia telah menerbitkan banyak makalah di konferensi ACL, ICDM, KDD, dan Royal Statistical Society: Series A.
- 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/mitigate-hallucinations-through-retrieval-augmented-generation-using-pinecone-vector-database-llama-2-from-amazon-sagemaker-jumpstart/
- :memiliki
- :adalah
- :bukan
- :Di mana
- $NAIK
- 1
- 10
- 100
- 11
- 12
- 14
- 15%
- 16
- 17
- 19
- 23
- 32
- 7
- 8
- 9
- a
- Tentang Kami
- atas
- mengakses
- Menurut
- Akun
- di seluruh
- menambahkan
- Tambahan
- Informasi Tambahan
- Adopsi
- petualangan
- pengacara
- lagi
- AI
- saya menggunakan kasus
- AI / ML
- algoritma
- meluruskan
- Semua
- sepanjang
- sudah
- juga
- Amazon
- Amazon SageMaker
- Mulai Lompatan Amazon SageMaker
- Studio Amazon SageMaker
- Amazon Web Services
- jumlah
- an
- analisis
- dan
- menjawab
- jawaban
- Apa pun
- api
- aplikasi
- terapan
- pendekatan
- pendekatan
- ADALAH
- DAERAH
- sekitar
- AS
- meminta
- At
- Mencoba
- menambah
- ditambah
- mobil
- secara otomatis
- tersedia
- AWS
- mendasarkan
- berdasarkan
- BE
- karena
- sebelum
- mulai
- antara
- Blog
- Berkembang
- kedua
- lebih luas
- membangun
- built-in
- bisnis
- tapi
- by
- CAN
- menangkap
- kasus
- kasus
- karakter
- beban
- mengejar
- membersihkan
- Jelas
- Pendakian
- Cloudera
- kekelompokan
- Kolom
- Kolom
- Perusahaan
- cocok
- lengkap
- komponen
- komponen
- konferensi
- terhubung
- konsul
- mengandung
- mengandung
- Konten
- konteks
- Konteks
- percakapan
- AI percakapan
- mengubah
- Perusahaan
- benar
- benar
- membuat
- kritis
- Sekarang
- data
- Basis Data
- Tanggal
- DBS
- memutuskan
- mendalam
- belajar mendalam
- menyebarkan
- penggelaran
- Pengembang
- pengembang
- berkembang
- Pengembangan
- Dimensi
- langsung
- membahas
- do
- tidak
- doesn
- Tidak
- domain
- don
- Menjatuhkan
- selama
- setiap
- Terdahulu
- mudah
- ekosistem
- Pendidikan
- efisien
- efisien
- embedding
- merangkul
- encoding
- akhir
- ujung ke ujung
- Titik akhir
- mempertinggi
- Lingkungan Hidup
- mapan
- Bahkan
- contoh
- melebihi
- eksekusi
- diharapkan
- pengalaman
- menyelidiki
- Menjelajahi
- luas
- luar
- ekstrak
- Menghadapi
- lebih cepat
- Fitur
- Fed
- beberapa
- keuangan
- Menemukan
- menyelesaikan
- Pertama
- Mengapung
- berfokus
- berikut
- Untuk
- format
- Prinsip Dasar
- Gratis
- dari
- fungsi
- umumnya
- dihasilkan
- menghasilkan
- generasi
- generatif
- AI generatif
- mendapatkan
- GitHub
- Memberikan
- diberikan
- memberikan
- Go
- Pergi
- GPU
- Panduan
- menangani
- Terjadi
- Memiliki
- he
- Dimiliki
- membantu
- di sini
- sangat
- -nya
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HTTPS
- huang
- Pusat
- MemelukWajah
- bisa dibaca manusia
- i
- ID
- ideal
- mengenali
- id
- if
- gambar
- diimplementasikan
- mengimpor
- in
- memasukkan
- Termasuk
- Meningkatkan
- indeks
- diindeks
- industri
- memberitahu
- informasi
- inisiatif
- memasukkan
- input
- install
- contoh
- terpadu
- kepentingan
- Antarmuka
- intern
- ke
- diperkenalkan
- IT
- item
- james
- bergabung
- jp
- JP Morgan
- JP Morgan Chase
- jpg
- Menjaga
- kunci
- Tahu
- pengetahuan
- bahasa
- besar
- lebih besar
- jalankan
- memimpin
- pengetahuan
- belajar
- Panjang
- perpustakaan
- Hidup
- 'like'
- MEMBATASI
- Daftar
- daftar
- hidup
- Llama
- LLM
- logika
- melihat
- mencari
- Lot
- mesin
- Mesin belajar
- membuat
- Membuat
- berhasil
- manual
- banyak
- Cocok
- korek api
- maksimum
- jumlah maksimum
- Mungkin..
- berarti
- berarti
- cara
- Memori
- Metadata
- metode
- Mengurangi
- ML
- model
- model
- uang
- lebih
- morgan
- paling
- banyak
- beberapa
- musik
- harus
- nama
- Alam
- Pengolahan Bahasa alami
- Perlu
- kebutuhan
- New
- berikutnya
- nLP
- buku catatan
- sekarang
- mati rasa
- obyek
- of
- on
- ONE
- secara online
- hanya
- Buka
- operasi
- or
- urutan
- OS
- jika tidak
- kami
- di luar
- keluaran
- output
- di luar
- sendiri
- dokumen
- parameter
- tertentu
- khususnya
- lulus
- Lulus
- gairah
- bergairah
- Melakukan
- melakukan
- Izin
- gambar
- pipa saluran
- Polos
- plato
- Kecerdasan Data Plato
- Data Plato
- Populer
- posisi
- Pos
- Powering
- ramalan
- Prediksi
- Predictor
- disukai
- mencegah
- Preview
- sebelumnya
- sebelumnya
- Sebelumnya
- Masalah
- proses
- proses
- pengolahan
- Profil
- meminta
- hak milik
- disediakan
- menyediakan
- menyediakan
- di depan umum
- diterbitkan
- Ular sanca
- pytorch
- query
- pertanyaan
- Pertanyaan
- segera
- jarak
- mulai
- siap
- menerima
- arsip
- daerah
- relevan
- mengandalkan
- gudang
- merupakan
- membutuhkan
- wajib
- penelitian
- Menanggapi
- mengakibatkan
- Hasil
- kembali
- kembali
- kuat
- batu
- Peran
- kerajaan
- Run
- berjalan
- pembuat bijak
- sama
- mengatakan
- terukur
- Skala
- Ilmu
- ilmuwan
- skor
- Layar
- SDK
- Pencarian
- pencarian
- melihat
- tampaknya
- memilih
- senior
- rasa
- putusan pengadilan
- Seri
- Seri A
- Layanan
- set
- harus
- Menunjukkan
- menunjukkan
- ditunjukkan
- Pertunjukkan
- sisi
- mirip
- lebih sederhana
- sejak
- tunggal
- Ukuran
- kecil
- lebih kecil
- So
- Masyarakat
- semata-mata
- larutan
- Solusi
- beberapa
- di suatu tempat
- sumber
- Space
- spesialis
- mengkhususkan diri
- Khusus
- Secara khusus
- Spot
- Staf
- Startups
- statistik
- Langkah
- Tangga
- berhenti
- menyimpan
- toko
- Strategis
- Tali
- studio
- seperti itu
- mendukung
- Didukung
- Mendukung
- sistem
- sistem
- tabel
- Dibutuhkan
- tugas
- tech
- startup teknologi
- Teknologi
- mengatakan
- teks
- Thai
- dari
- bahwa
- Grafik
- Daerah
- Dunia
- mereka
- Mereka
- karena itu
- Ini
- mereka
- hal
- ini
- itu
- Melalui
- waktu
- untuk
- token
- Tokenisasi
- terlalu
- alat
- puncak
- tradisional
- Pelatihan
- transformator
- transformer
- transformasi
- menterjemahkan
- Perjalanan
- Kepercayaan
- dua
- jenis
- Akhirnya
- mungkin
- tak terbendung.
- sampai
- tidak diinginkan
- Memperbarui
- us
- menggunakan
- bekas
- Pengguna
- Pengguna Pengalaman
- Pengguna
- menggunakan
- Nilai - Nilai
- berbagai
- versi
- Versi
- melalui
- visual
- menunggu
- walkthrough
- ingin
- adalah
- Gelombang
- Cara..
- we
- jaringan
- layanan web
- berbasis web
- Apa
- ketika
- yang
- sementara
- lebar
- Rentang luas
- akan
- dengan
- tanpa
- Kerja
- bekerja
- kerja
- bekerja
- dunia
- akan
- membungkus
- X
- iya nih
- Kamu
- Anda
- zephyrnet.dll