In Bölüm 1 Bu seride, aşağıdakileri kullanan bir çözüm sunduk: Amazon Titan Multimodal Gömmeler Slayt kümesindeki tek tek slaytları yerleştirmelere dönüştürmek için kullanılan model. Gömmeleri bir vektör veritabanında sakladık ve ardından Büyük Dil ve Görme Asistanı (LLaVA 1.5-7b) vektör veritabanından alınan en benzer slayta dayalı olarak kullanıcı sorularına metin yanıtları üreten model. Aşağıdakiler dahil AWS hizmetlerini kullandık: Amazon Ana Kayası, Amazon Adaçayı Yapıcı, ve Amazon OpenSearch Sunucusuz bu çözümde.
Bu yazıda farklı bir yaklaşım sergiliyoruz. biz kullanıyoruz Antropik Claude 3 Sonesi Slayt kümesindeki her slayt için metin açıklamaları oluşturmak için model. Bu açıklamalar daha sonra, kullanılarak metin yerleştirmelerine dönüştürülür. Amazon Titan Metin Gömmeleri modellenir ve bir vektör veritabanında saklanır. Daha sonra, vektör veritabanından alınan en alakalı metin açıklamasına dayanarak kullanıcı sorularına yanıtlar oluşturmak için Claude 3 Sonnet modelini kullanırız.
Veri kümeniz için her iki yaklaşımı da test edebilir ve sonuçları değerlendirerek hangi yaklaşımın size en iyi sonuçları verdiğini görebilirsiniz. Bu serinin 3. Bölümünde her iki yöntemin sonuçlarını değerlendiriyoruz.
Çözüme genel bakış
Çözüm, slayt destesinin metin ve görsel öğelerinde yer alan bilgileri kullanarak soruları yanıtlamaya yönelik bir uygulama sağlar. Tasarım, Alma Artırılmış Üretim (RAG) konseptine dayanmaktadır. Geleneksel olarak RAG, büyük dil modelleri (LLM'ler) tarafından işlenebilen metin verileriyle ilişkilendirilmiştir. Bu seride RAG'ı görüntüleri de içerecek şekilde genişletiyoruz. Bu, metinle birlikte tablolar ve grafikler gibi görsel öğelerden bağlamsal olarak alakalı içeriği çıkarmak için güçlü bir arama yeteneği sağlar.
Bu çözüm aşağıdaki bileşenleri içerir:
- Amazon Titan Text Embeddings; tek sözcükler, ifadeler ve hatta büyük belgeler de dahil olmak üzere doğal dildeki metinleri, arama, kişiselleştirme ve semantik benzerliğe dayalı kümeleme gibi kullanım durumlarını güçlendirmek için kullanılabilecek sayısal temsillere dönüştüren bir metin yerleştirme modelidir.
- Claude 3 Sonnet, Anthropic'in yeni nesil son teknoloji ürünü modelleridir. Sonnet, karmaşık akıl yürütme ve analizden hızlı çıktılara kadar geniş bir yelpazedeki görevlerin yanı sıra çok büyük miktarda bilgi arasında etkili arama ve geri çağırma işlemlerini gerçekleştirebilen çok yönlü bir araçtır.
- OpenSearch Sunucusuz, Amazon OpenSearch Hizmeti için isteğe bağlı sunucusuz bir yapılandırmadır. Amazon Titan Text Embeddings modeli tarafından oluşturulan yerleştirmeleri depolamak için OpenSearch Serverless'ı bir vektör veritabanı olarak kullanıyoruz. OpenSearch Sunucusuz koleksiyonunda oluşturulan bir dizin, RAG çözümümüz için vektör deposu görevi görür.
- Amazon Açık Arama Alımı (OSI), OpenSearch Hizmeti etki alanlarına ve OpenSearch Sunucusuz koleksiyonlara veri sağlayan, tam olarak yönetilen, sunucusuz bir veri toplayıcıdır. Bu yazıda, verileri OpenSearch Sunucusuz vektör deposuna iletmek için bir OSI işlem hattı API'si kullanıyoruz.
Çözüm tasarımı iki bölümden oluşur: alım ve kullanıcı etkileşimi. Besleme sırasında, her slaydı bir görüntüye dönüştürerek, her görüntü için açıklamalar ve metin yerleştirmeleri oluşturarak giriş slayt kümesini işleriz. Daha sonra vektör veri deposunu her slayt için eklemeler ve metin açıklamalarıyla doldururuz. Bu adımlar, kullanıcı etkileşimi adımlarından önce tamamlanır.
Kullanıcı etkileşimi aşamasında, kullanıcıdan gelen bir soru metin yerleştirmelerine dönüştürülür. Potansiyel olarak kullanıcı sorusuna yanıtlar içerebilecek bir slayda karşılık gelen bir metin açıklamasını bulmak için vektör veritabanında bir benzerlik araştırması yürütülür. Daha sonra sorguya bir cevap oluşturmak için slayt açıklamasını ve kullanıcı sorusunu Claude 3 Sonnet modeline sağlıyoruz. Bu gönderinin tüm kodu şurada mevcuttur: GitHub Repo.
Aşağıdaki diyagram alım mimarisini göstermektedir.
İş akışı aşağıdaki adımlardan oluşur:
- Slaytlar, JPG formatında görüntü dosyalarına (slayt başına bir tane) dönüştürülür ve metin açıklaması oluşturmak için Claude 3 Sonnet modeline aktarılır.
- Veriler, yerleştirmeler oluşturmak için Amazon Titan Text Embeddings modeline gönderilir. Bu seride slayt destesini kullanıyoruz AWS Trainium ve AWS Inferentia'yı kullanarak Stabil Difüzyonu eğitin ve dağıtın Çözümü göstermek için Haziran 2023'te Toronto'da düzenlenen AWS Zirvesi'nden. Örnek destesinde 31 slayt var, bu nedenle her biri 31 boyuta sahip 1536 set vektör yerleştirme oluşturuyoruz. OpenSearch'ün güçlü arama yeteneklerini kullanarak zengin arama sorguları gerçekleştirmek için ek meta veri alanları ekliyoruz.
- Eklemeler bir API çağrısı kullanılarak bir OSI hattına alınır.
- OSI boru hattı, verileri belgeler olarak OpenSearch Sunucusuz dizinine alır. Dizin, bu işlem hattı için havuz olarak yapılandırılmıştır ve OpenSearch Sunucusuz koleksiyonunun bir parçası olarak oluşturulmuştur.
Aşağıdaki şema kullanıcı etkileşimi mimarisini göstermektedir.
İş akışı aşağıdaki adımlardan oluşur:
- Kullanıcı, alınan slayt kümesiyle ilgili bir soru gönderir.
- Kullanıcı girişi, Amazon Bedrock kullanılarak erişilen Amazon Titan Text Embeddings modeli kullanılarak yerleştirmelere dönüştürülür. Bu yerleştirmeler kullanılarak bir OpenSearch Hizmeti vektör araması gerçekleştirilir. Kullanıcı sorgusuyla eşleşen en alakalı yerleştirmeleri almak için k-en yakın komşu (k-NN) araması gerçekleştiriyoruz.
- OpenSearch Serverless'tan gelen yanıtın meta verileri, en alakalı slayda karşılık gelen görselin yolunu ve açıklamasını içerir.
- Kullanıcı sorusu ve görsel açıklaması birleştirilerek bir bilgi istemi oluşturulur. İstem Amazon Bedrock'ta barındırılan Claude 3 Sonnet'e iletilir.
- Bu çıkarımın sonucu kullanıcıya döndürülür.
Aşağıdaki bölümlerde her iki aşamaya ilişkin adımları tartışacağız ve çıktıyla ilgili ayrıntıları ekleyeceğiz.
Önkoşullar
Bu gönderide sağlanan çözümü uygulamak için bir AWS hesabı ve FM'ler, Amazon Bedrock, SageMaker ve OpenSearch Service'e aşinalık.
Bu çözüm, Amazon Bedrock'ta barındırılan Claude 3 Sonnet ve Amazon Titan Text Embeddings modellerini kullanır. Şuraya giderek bu modellerin kullanım için etkinleştirildiğinden emin olun: Model erişimi Amazon Bedrock konsolundaki sayfa.
Modeller etkinleştirilirse, Erişim durumu belirtecek Erişim izni.
Modeller mevcut değilse, seçimini yaparak erişimi etkinleştirin. Model erişimini yönetin, modelleri seçme ve seçme Model erişimi iste. Modeller hemen kullanıma sunulur.
Çözüm yığınını oluşturmak için AWS CloudFormation'ı kullanın
Çözüm yığınını oluşturmak için AWS CloudFormation'ı kullanabilirsiniz. Bölüm 1'in çözümünü aynı AWS hesabında oluşturduysanız bu yığını oluşturmadan önce bunu sildiğinizden emin olun.
AWS Bölgesi | Link |
---|---|
us-east-1 |
|
us-west-2 |
Yığın başarıyla oluşturulduktan sonra AWS CloudFormation konsolunda yığının Çıktılar sekmesine gidin ve şu değerleri not edin: MultimodalCollectionEndpoint
ve OpenSearchPipelineEndpoint
. Bunları sonraki adımlarda kullanırsınız.
CloudFormation şablonu aşağıdaki kaynakları oluşturur:
- IAM rolleri - Aşağıdaki AWS Kimlik ve Erişim Yönetimi (IAM) rolleri oluşturulur. En az ayrıcalıklı izinleri uygulamak için bu rolleri güncelleştirin. En iyi güvenlik uygulamaları.
SMExecutionRole
ile Amazon Basit Depolama Hizmeti (Amazon S3), SageMaker, OpenSearch Hizmeti ve Amazon Bedrock'a tam erişim.OSPipelineExecutionRole
S3 klasörüne ve OSI eylemlerine erişimle.
- SageMaker not defteri – Bu gönderiye ilişkin tüm kodlar bu not defteri kullanılarak çalıştırılır.
- OpenSearch Sunucusuz koleksiyonu – Bu, yerleştirmeleri depolamak ve almak için kullanılan vektör veritabanıdır.
- OSI boru hattı – Bu, OpenSearch Sunucusuz'a veri almak için kullanılan boru hattıdır.
- S3 kepçe – Bu gönderiye ait tüm veriler bu pakette saklanır.
CloudFormation şablonu, OSI işlem hattını kaynak olarak HTTP ve havuz olarak OpenSearch Sunucusuz dizin ile yapılandırmak için gereken işlem hattı yapılandırmasını ayarlar. SageMaker not defteri 2_data_ingestion.ipynb
kullanarak veri hattına nasıl veri aktarılacağını görüntüler. istekleri HTTP kitaplığı.
CloudFormation şablonu ayrıca şunları oluşturur: ağ, şifreleme ve veri erişim OpenSearch Sunucusuz koleksiyonunuz için gerekli politikalar. En az ayrıcalıklı izinleri uygulamak için bu politikaları güncelleyin.
CloudFormation şablon adı ve OpenSearch Hizmeti dizin adı, SageMaker not defterinde referans olarak verilmektedir 3_rag_inference.ipynb
. Varsayılan adları değiştirirseniz bunları not defterinde güncellediğinizden emin olun.
Çözümü test edin
CloudFormation yığınını oluşturduktan sonra çözümü test edebilirsiniz. Aşağıdaki adımları tamamlayın:
- SageMaker konsolunda, Defterler Gezinti bölmesinde.
- seç
MultimodalNotebookInstance
Ve seç JupyterLab'ı açın. - In Dosya Tarayıcı, not defterlerini ve destek dosyalarını görmek için not defterleri klasörüne gidin.
Defterler çalıştıkları sıraya göre numaralandırılır. Her not defterindeki talimatlar ve yorumlar, o not defterinin gerçekleştirdiği eylemleri açıklar. Bu defterleri tek tek çalıştırıyoruz.
- Klinik
1_data_prep.ipynb
JupyterLab'da açmak için. - Üzerinde koşmak menü seç Tüm Hücreleri Çalıştır kodu bu not defterinde çalıştırmak için.
Bu not defteri halka açık bir dosya indirecek kaygan güverte, her slaytı JPG dosya formatına dönüştürün ve bunları S3 klasörüne yükleyin.
- Klinik
2_data_ingestion.ipynb
JupyterLab'da açmak için. - Üzerinde koşmak menü seç Tüm Hücreleri Çalıştır kodu bu not defterinde çalıştırmak için.
Bu not defterinde OpenSearch Sunucusuz koleksiyonunda bir dizin oluşturacaksınız. Bu dizin, slayt kümesine ilişkin yerleştirme verilerini saklar. Aşağıdaki koda bakın:
Önceki not defterinde oluşturulan JPG görüntülerini vektör gömmelerine dönüştürmek için Claude 3 Sonnet ve Amazon Titan Text Embeddings modellerini kullanıyorsunuz. Bu yerleştirmeler ve ek meta veriler (S3 yolu ve görüntü dosyasının açıklaması gibi), yerleştirmelerle birlikte dizinde saklanır. Aşağıdaki kod parçacığı, Claude 3 Sonnet'in görüntü açıklamalarını nasıl oluşturduğunu gösterir:
Görüntü açıklamaları, vektör yerleştirmeleri oluşturmak için Amazon Titan Text Embeddings modeline aktarılır. Bu yerleştirmeler ve ek meta veriler (S3 yolu ve görüntü dosyasının açıklaması gibi), yerleştirmelerle birlikte dizinde saklanır. Aşağıdaki kod parçacığı Amazon Titan Text Embeddings modeline yapılan çağrıyı gösterir:
Veriler, OSI hattına bir API çağrısı yapılarak OpenSearch Sunucusuz dizinine alınır. Aşağıdaki kod parçacığı, İstekler HTTP kitaplığı kullanılarak yapılan çağrıyı gösterir:
- Klinik
3_rag_inference.ipynb
JupyterLab'da açmak için. - Üzerinde koşmak menü seç Tüm Hücreleri Çalıştır kodu bu not defterinde çalıştırmak için.
Bu not defteri RAG çözümünü uygular: Kullanıcı sorusunu yerleştirmelere dönüştürürsünüz, vektör veritabanından benzer bir görüntü açıklaması bulursunuz ve alınan açıklamayı kullanıcı sorusuna bir yanıt oluşturmak için Claude 3 Sonnet'e sağlarsınız. Aşağıdaki bilgi istemi şablonunu kullanırsınız:
Aşağıdaki kod parçacığı RAG iş akışını sağlar:
Sonuçlar
Aşağıdaki tablo, uygulamamız tarafından oluşturulan bazı kullanıcı sorularını ve yanıtlarını içermektedir. Soru sütunu kullanıcı sorusunu yakalar ve Cevap sütunu, Claude 3 Sonnet tarafından oluşturulan metinsel yanıttır. Resim sütunu, OpenSearch Sunucusuz vektör aramasının döndürdüğü k-NN slayt eşleşmesini gösterir.
Çok modlu RAG sonuçları
Dizininizi sorgulayın
Dizininiz ve alınan verileriniz üzerinde hızlı testler gerçekleştirmek üzere OpenSearch API ile etkileşimde bulunmak için OpenSearch Kontrol Panellerini kullanabilirsiniz.
Temizlemek
Gelecekte masraf oluşmasını önlemek için kaynakları silin. Bunu, AWS CloudFormation konsolunu kullanarak yığını silerek yapabilirsiniz.
Sonuç
Kuruluşlar her zaman yeni içerik üretir ve slayt sunumları, bilgileri kuruluş içinde dahili olarak ve müşterilerle veya konferanslarda harici olarak paylaşmanın ve yaymanın yaygın bir yoludur. Zamanla zengin bilgiler, bu slayt destelerindeki grafikler ve tablolar gibi metin dışı yöntemlerde gömülü ve gizli kalabilir.
Yeni bilgiler keşfetmek veya slayt destelerindeki içerikle ilgili yeni bakış açılarını ortaya çıkarmak için bu çözümü ve Amazon Titan Text Embeddings ve Claude 3 Sonnet gibi multimodal FM'lerin gücünü kullanabilirsiniz. Amazon Bedrock'ta bulunan farklı Claude modellerini güncelleyerek deneyebilirsiniz. CLAUDE_MODEL_ID
içinde globals.py
dosyası.
Bu, üç bölümlük bir serinin 2. Bölümüdür. Bölüm 1'de Amazon Titan Multimodal Embeddings ve LLaVA modelini kullandık. Bölüm 3'te Bölüm 1 ve Bölüm 2'deki yaklaşımları karşılaştıracağız.
Bu kodun bazı bölümleri şu hükümler kapsamında yayınlanmıştır: Apache 2.0 Lisansı.
yazarlar hakkında
Amit Arora Amazon Web Services'ta Yapay Zeka ve Makine Öğrenimi Uzmanı Mimardır ve kurumsal müşterilerin yeniliklerini hızla ölçeklendirmek için bulut tabanlı makine öğrenimi hizmetlerini kullanmalarına yardımcı olur. Ayrıca Washington DC'deki Georgetown Üniversitesi'nde MS veri bilimi ve analitik programında yardımcı öğretim görevlisidir.
Manju Prasad Amazon Web Services'te Kıdemli Çözüm Mimarıdır. AI/ML dahil olmak üzere çeşitli teknik alanlarda teknik rehberlik sağlamaya odaklanmaktadır. AWS'ye katılmadan önce finansal hizmetler sektöründeki şirketlerin yanı sıra yeni kurulan şirketler için çözümler tasarladı ve üretti. Bilgiyi paylaşma ve ortaya çıkan yeteneklere olan ilgiyi artırma konusunda tutkulu.
Archana Inapudi AWS'de stratejik bir müşteriyi destekleyen Kıdemli Çözüm Mimarıdır. Stratejik teknik girişimlere liderlik eden on yıldan fazla sektörler arası uzmanlığa sahiptir. Archana, AWS'deki AI/ML teknik alan topluluğunun istekli bir üyesidir. AWS'ye katılmadan önce Archana, bir sağlık şirketinde geleneksel silolanmış veri kaynaklarından Hadoop'a geçişe öncülük etti. Büyümeyi hızlandırmak, müşterilere değer sağlamak ve iş sonuçları elde etmek için teknolojiyi kullanma konusunda tutkulu.
Antara Raisa Amazon Web Services'te Yapay Zeka ve Makine Öğrenimi Çözüm Mimarı olup Dallas, Teksas merkezli stratejik müşterilere destek vermektedir. Ayrıca, dijital merkezli müşteriler için İş Ortağı Başarı Çözümleri Mimarı olarak çalıştığı AWS'de büyük kurumsal iş ortaklarıyla çalışma deneyimine de sahiptir.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/talk-to-your-slide-deck-using-multimodal-foundation-models-hosted-on-amazon-bedrock-and-amazon-sagemaker-part-2/