Memulai Penyematan Teks Amazon Titan | Layanan Web Amazon

Memulai Penyematan Teks Amazon Titan | Layanan Web Amazon

Node Sumber: 3091547

Penyematan memainkan peran penting dalam pemrosesan bahasa alami (NLP) dan pembelajaran mesin (ML). Penyematan teks mengacu pada proses mengubah teks menjadi representasi numerik yang berada dalam ruang vektor berdimensi tinggi. Teknik ini dicapai melalui penggunaan algoritma ML yang memungkinkan pemahaman makna dan konteks data (hubungan semantik) dan pembelajaran hubungan dan pola kompleks dalam data (hubungan sintaksis). Anda dapat menggunakan representasi vektor yang dihasilkan untuk berbagai aplikasi, seperti pengambilan informasi, klasifikasi teks, pemrosesan bahasa alami, dan banyak lainnya.

Penyematan Teks Amazon Titan adalah model penyematan teks yang mengubah teks bahasa alami—yang terdiri dari satu kata, frasa, atau bahkan dokumen berukuran besar—menjadi representasi numerik yang dapat digunakan untuk mendukung kasus penggunaan seperti penelusuran, personalisasi, dan pengelompokan berdasarkan kesamaan semantik.

Dalam postingan ini, kami membahas model Amazon Titan Text Embeddings, fitur-fiturnya, dan contoh kasus penggunaan.

Beberapa konsep utama meliputi:

  • Representasi numerik teks (vektor) menangkap semantik dan hubungan antar kata
  • Penyematan yang kaya dapat digunakan untuk membandingkan kesamaan teks
  • Penyematan teks multibahasa dapat mengidentifikasi makna dalam berbagai bahasa

Bagaimana sepotong teks diubah menjadi vektor?

Ada beberapa teknik untuk mengubah kalimat menjadi vektor. Salah satu metode yang populer adalah menggunakan algoritme penyematan kata, seperti Word2Vec, GloVe, atau FastText, lalu menggabungkan kata penyematan untuk membentuk representasi vektor tingkat kalimat.

Pendekatan umum lainnya adalah dengan menggunakan model bahasa besar (LLM), seperti BERT atau GPT, yang dapat menyediakan penyematan kontekstual untuk keseluruhan kalimat. Model ini didasarkan pada arsitektur pembelajaran mendalam seperti Transformers, yang dapat menangkap informasi kontekstual dan hubungan antar kata dalam kalimat dengan lebih efektif.

Mengapa kita memerlukan model embeddings?

Penyematan vektor sangat penting bagi LLM untuk memahami tingkat semantik bahasa, dan juga memungkinkan LLM bekerja dengan baik pada tugas NLP hilir seperti analisis sentimen, pengenalan entitas bernama, dan klasifikasi teks.

Selain penelusuran semantik, Anda dapat menggunakan penyematan untuk menambah permintaan Anda agar mendapatkan hasil yang lebih akurat melalui Retrieval Augmented Generation (RAG)—tetapi untuk menggunakannya, Anda harus menyimpannya dalam database dengan kemampuan vektor.

Model Amazon Titan Text Embeddings dioptimalkan untuk pengambilan teks guna mengaktifkan kasus penggunaan RAG. Hal ini memungkinkan Anda untuk terlebih dahulu mengonversi data teks menjadi representasi numerik atau vektor, dan kemudian menggunakan vektor tersebut untuk secara akurat mencari bagian yang relevan dari database vektor, sehingga memungkinkan Anda memanfaatkan data kepemilikan Anda secara maksimal dalam kombinasi dengan model dasar lainnya.

Karena Amazon Titan Text Embeddings adalah model terkelola Batuan Dasar Amazon, ini ditawarkan sebagai pengalaman yang sepenuhnya tanpa server. Anda dapat menggunakannya melalui Amazon Bedrock REST API atau AWS SDK. Parameter yang diperlukan adalah teks yang ingin Anda buatkan penyematannya dan modelID parameter, yang mewakili nama model Amazon Titan Text Embeddings. Kode berikut adalah contoh penggunaan AWS SDK for Python (Boto3):

import boto3
import json
 
#Create the connection to Bedrock
bedrock = boto3.client(
    service_name='bedrock',
    region_name='us-west-2', 
    
)
 
bedrock_runtime = boto3.client(
    service_name='bedrock-runtime',
    region_name='us-west-2', 
    
)
 
# Let's see all available Amazon Models
available_models = bedrock.list_foundation_models()
 
for model in available_models['modelSummaries']:
  if 'amazon' in model['modelId']:
    print(model)
 
# Define prompt and model parameters
prompt_data = """Write me a poem about apples"""
 
body = json.dumps({
    "inputText": prompt_data,
})
 
model_id = 'amazon.titan-embed-text-v1' #look for embeddings in the modelID
accept = 'application/json' 
content_type = 'application/json'
 
# Invoke model 
response = bedrock_runtime.invoke_model(
    body=body, 
    modelId=model_id, 
    accept=accept, 
    contentType=content_type
)
 
# Print response
response_body = json.loads(response['body'].read())
embedding = response_body.get('embedding')
 
#Print the Embedding
 
print(embedding)

Outputnya akan terlihat seperti berikut:

[-0.057861328, -0.15039062, -0.4296875, 0.31054688, ..., -0.15625]

Lihat Pengaturan boto3 Batuan Dasar Amazon untuk detail lebih lanjut tentang cara menginstal paket yang diperlukan, terhubung ke Amazon Bedrock, dan memanggil model.

Fitur Penyematan Teks Amazon Titan

Dengan Amazon Titan Text Embeddings, Anda dapat memasukkan hingga 8,000 token, sehingga cocok untuk digunakan dengan satu kata, frasa, atau seluruh dokumen berdasarkan kasus penggunaan Anda. Amazon Titan mengembalikan vektor keluaran dimensi 1536, memberikan tingkat akurasi yang tinggi, sekaligus mengoptimalkan hasil latensi rendah dan hemat biaya.

Amazon Titan Text Embeddings mendukung pembuatan dan kueri penyematan teks dalam lebih dari 25 bahasa berbeda. Artinya, Anda dapat menerapkan model tersebut ke kasus penggunaan Anda tanpa perlu membuat dan memelihara model terpisah untuk setiap bahasa yang ingin Anda dukung.

Memiliki satu model penyematan yang dilatih dalam banyak bahasa memberikan manfaat utama berikut:

  • Jangkauan lebih luas – Dengan mendukung lebih dari 25 bahasa, Anda dapat memperluas jangkauan aplikasi Anda ke pengguna dan konten di banyak pasar internasional.
  • Kinerja yang konsisten – Dengan model terpadu yang mencakup beberapa bahasa, Anda mendapatkan hasil yang konsisten di seluruh bahasa, bukan mengoptimalkan secara terpisah per bahasa. Model ini dilatih secara holistik sehingga Anda mendapatkan keuntungan dalam berbagai bahasa.
  • Dukungan kueri multibahasa – Amazon Titan Text Embeddings memungkinkan kueri penyematan teks dalam bahasa apa pun yang didukung. Hal ini memberikan fleksibilitas untuk mengambil konten yang serupa secara semantik di berbagai bahasa tanpa dibatasi pada satu bahasa saja. Anda dapat membangun aplikasi yang mengkueri dan menganalisis data multibahasa menggunakan ruang penyematan terpadu yang sama.

Saat tulisan ini dibuat, bahasa-bahasa berikut ini didukung:

  • Arab
  • Cina (Modern)
  • Cina (Tradisional)
  • Ceko
  • Dutch
  • Inggris
  • Perancis
  • Jerman
  • Ibrani
  • Hindi
  • Italia
  • Jepang
  • kannada
  • Korea
  • Malayalam
  • Marathi
  • semir
  • Portugis
  • Rusia
  • Spanyol
  • Swedia
  • Tagalog Filipina
  • Tamil
  • telugu
  • Turki

Menggunakan Penyematan Teks Amazon Titan dengan LangChain

LangChain adalah kerangka kerja sumber terbuka yang populer untuk bekerja dengan model AI generatif dan teknologi pendukung. Ini termasuk a Klien BedrockEmbeddings yang dengan mudah membungkus Boto3 SDK dengan lapisan abstraksi. Itu BedrockEmbeddings klien memungkinkan Anda bekerja dengan teks dan penyematan secara langsung, tanpa mengetahui detail permintaan JSON atau struktur respons. Berikut ini adalah contoh sederhananya:

from langchain.embeddings import BedrockEmbeddings

#create an Amazon Titan Text Embeddings client
embeddings_client = BedrockEmbeddings() 

#Define the text from which to create embeddings
text = "Can you please tell me how to get to the bakery?"

#Invoke the model
embedding = embeddings_client.embed_query(text)

#Print response
print(embedding)

Anda juga dapat menggunakan LangChain BedrockEmbeddings klien bersama klien Amazon Bedrock LLM untuk menyederhanakan penerapan RAG, pencarian semantik, dan pola terkait penyematan lainnya.

Kasus penggunaan untuk penyematan

Meskipun RAG saat ini merupakan kasus penggunaan paling populer untuk bekerja dengan penyematan, ada banyak kasus penggunaan lain di mana penyematan dapat diterapkan. Berikut adalah beberapa skenario tambahan di mana Anda dapat menggunakan penyematan untuk memecahkan masalah tertentu, baik secara mandiri atau bekerja sama dengan LLM:

  • Pertanyaan dan jawaban – Penyematan dapat membantu mendukung antarmuka tanya jawab melalui pola RAG. Pembuatan penyematan yang dipasangkan dengan database vektor memungkinkan Anda menemukan kecocokan yang erat antara pertanyaan dan konten dalam gudang pengetahuan.
  • Rekomendasi yang dipersonalisasi – Mirip dengan tanya jawab, Anda dapat menggunakan embeddings untuk mencari tujuan liburan, kampus, kendaraan, atau produk lainnya berdasarkan kriteria yang diberikan oleh pengguna. Ini bisa berupa daftar kecocokan sederhana, atau Anda kemudian bisa menggunakan LLM untuk memproses setiap rekomendasi dan menjelaskan bagaimana rekomendasi tersebut memenuhi kriteria pengguna. Anda juga dapat menggunakan pendekatan ini untuk menghasilkan “10 artikel terbaik” khusus untuk pengguna berdasarkan kebutuhan spesifik mereka.
  • Manajemen data – Jika Anda memiliki sumber data yang tidak dipetakan dengan rapi satu sama lain, namun Anda memiliki konten teks yang mendeskripsikan rekaman data, Anda dapat menggunakan penyematan untuk mengidentifikasi potensi rekaman duplikat. Misalnya, Anda dapat menggunakan penyematan untuk mengidentifikasi kandidat duplikat yang mungkin menggunakan format, singkatan, atau bahkan nama terjemahan yang berbeda.
  • Rasionalisasi portofolio aplikasi – Saat ingin menyelaraskan portofolio aplikasi antara perusahaan induk dan akuisisi, tidak selalu jelas di mana harus mulai menemukan potensi tumpang tindih. Kualitas data manajemen konfigurasi dapat menjadi faktor pembatas, dan sulitnya koordinasi antar tim untuk memahami lanskap aplikasi. Dengan menggunakan pencocokan semantik dengan penyematan, kita dapat melakukan analisis cepat di seluruh portofolio aplikasi untuk mengidentifikasi kandidat aplikasi yang berpotensi tinggi untuk dirasionalisasi.
  • Pengelompokan konten – Anda dapat menggunakan penyematan untuk membantu memfasilitasi pengelompokan konten serupa ke dalam kategori yang mungkin belum Anda ketahui sebelumnya. Misalnya, Anda memiliki kumpulan email pelanggan atau ulasan produk online. Anda dapat membuat penyematan untuk setiap item, lalu menjalankan penyematan tersebut pengelompokan k-means untuk mengidentifikasi pengelompokan logis dari kekhawatiran pelanggan, pujian atau keluhan produk, atau tema lainnya. Anda kemudian dapat membuat ringkasan terfokus dari konten pengelompokan tersebut menggunakan LLM.

Contoh pencarian semantik

Dalam kami contoh di GitHub, kami mendemonstrasikan aplikasi pencarian embeddings sederhana dengan Amazon Titan Text Embeddings, LangChain, dan Streamlit.

Contoh ini mencocokkan kueri pengguna dengan entri terdekat dalam database vektor dalam memori. Kami kemudian menampilkan kecocokan tersebut langsung di antarmuka pengguna. Ini dapat berguna jika Anda ingin memecahkan masalah aplikasi RAG, atau mengevaluasi model embeddings secara langsung.

Untuk mempermudah, kami menggunakan dalam memori FAISS database untuk menyimpan dan mencari vektor embeddings. Dalam skenario dunia nyata dalam skala besar, Anda mungkin ingin menggunakan penyimpanan data persisten seperti mesin vektor untuk Amazon OpenSearch Tanpa Server atau itu vektor pg ekstensi untuk PostgreSQL.

Cobalah beberapa perintah dari aplikasi web dalam berbagai bahasa, seperti berikut:

  • Bagaimana cara memantau penggunaan saya?
  • Bagaimana cara menyesuaikan model?
  • Bahasa pemrograman apa yang bisa saya gunakan?
  • Komentari saya yang tidak memiliki keamanan ?
  • Bagaimana cara kerjanya?
  • Apa yang membutuhkan model ini tersedia untuk sebagian besar Bedrock?
  • Di Wilayah Welchen Apakah Amazon Bedrock Verfügbar?
  • 哪些级别的支持?

Perhatikan bahwa meskipun materi sumbernya dalam bahasa Inggris, pertanyaan dalam bahasa lain dicocokkan dengan entri yang relevan.

Kesimpulan

Kemampuan pembuatan teks pada model dasar sangat menarik, namun penting untuk diingat bahwa memahami teks, menemukan konten yang relevan dari sekumpulan pengetahuan, dan membuat hubungan antar bagian sangat penting untuk mencapai nilai penuh dari AI generatif. Kami akan terus melihat kasus penggunaan baru dan menarik untuk penyematan muncul di tahun-tahun mendatang seiring dengan penyempurnaan model ini.

Langkah berikutnya

Anda dapat menemukan contoh tambahan penyematan sebagai buku catatan atau aplikasi demo di lokakarya berikut:


Tentang Penulis

Jason Stehle adalah Arsitek Solusi Senior di AWS, yang berbasis di wilayah New England. Dia bekerja dengan pelanggan untuk menyelaraskan kemampuan AWS dengan tantangan bisnis terbesar mereka. Di luar pekerjaan, ia menghabiskan waktunya membangun sesuatu dan menonton film komik bersama keluarganya.

Nitin Eusebius adalah Sr. Enterprise Solutions Architect di AWS, berpengalaman dalam Rekayasa Perangkat Lunak, Arsitektur Perusahaan, dan AI/ML. Dia sangat bersemangat mengeksplorasi kemungkinan AI generatif. Dia berkolaborasi dengan pelanggan untuk membantu mereka membangun aplikasi yang dirancang dengan baik di platform AWS, dan berdedikasi untuk memecahkan tantangan teknologi dan membantu perjalanan cloud mereka.

Raja Pathak adalah Arsitek Solusi Utama dan Penasihat Teknis untuk perusahaan besar Fortune 50 dan lembaga jasa keuangan (FSI) skala menengah di Kanada dan Amerika Serikat. Ia berspesialisasi dalam aplikasi pembelajaran mesin seperti AI generatif, pemrosesan bahasa alami, pemrosesan dokumen cerdas, dan MLOps.

Mani Khanuja adalah Pimpinan Teknologi – Spesialis AI Generatif, penulis buku – Pembelajaran Mesin Terapan dan Komputasi Kinerja Tinggi di AWS, dan anggota Dewan Direksi Wanita di Dewan Yayasan Pendidikan Manufaktur. Dia memimpin proyek pembelajaran mesin (ML) di berbagai domain seperti visi komputer, pemrosesan bahasa alami, dan AI generatif. Dia membantu pelanggan membangun, melatih, dan menerapkan model pembelajaran mesin besar dalam skala besar. Dia berbicara dalam konferensi internal dan eksternal seperti re:Invent, Women in Manufacturing West, webinar YouTube, dan GHC 23. Di waktu luangnya, dia suka berjalan-jalan di sepanjang pantai.

Tandai Roy adalah Arsitek Pembelajaran Mesin Utama untuk AWS, membantu pelanggan merancang dan membangun solusi AI/ML. Pekerjaan Mark mencakup berbagai kasus penggunaan ML, dengan minat utama pada visi komputer, pembelajaran mendalam, dan penskalaan ML di seluruh perusahaan. Dia telah membantu perusahaan di banyak industri, termasuk asuransi, jasa keuangan, media dan hiburan, perawatan kesehatan, utilitas, dan manufaktur. Mark memegang enam Sertifikasi AWS, termasuk Sertifikasi Khusus ML. Sebelum bergabung dengan AWS, Mark adalah seorang arsitek, pengembang, dan pemimpin teknologi selama lebih dari 25 tahun, termasuk 19 tahun di bidang layanan keuangan.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS