Finansal hizmet (FinServ) endüstrisi, alana özgü veriler, veri güvenliği, düzenleyici kontroller ve sektör uyumluluk standartlarıyla ilgili benzersiz üretken yapay zeka gereksinimlerine sahiptir. Ayrıca müşteriler, en performanslı ve uygun maliyetli makine öğrenimi (ML) modelini seçmek için seçenekler ve iş kullanım durumlarına uyacak şekilde gerekli özelleştirmeyi (ince ayar) gerçekleştirme olanağı arıyor. Amazon SageMaker Hızlı Başlangıç gerekli veri güvenliği kontrollerini sağladığı ve uyumluluk standartları gereksinimlerini karşıladığı için FinServ müşterilerinin üretken yapay zeka kullanım durumları için idealdir.
Bu yazıda, basit bir finansal alan kullanım örneği kullanarak SageMaker JumpStart'ta büyük dil modelleri (LLM'ler) ile Alma Artırılmış Nesil (RAG) tabanlı bir yaklaşım kullanarak soru yanıtlama görevlerini gösteriyoruz. RAG, LLM'yi bir bilgi alma (IR) sistemiyle birleştirerek metin oluşturma kalitesini artırmaya yönelik bir çerçevedir. LLM metni oluşturur ve IR sistemi ilgili bilgiyi bir bilgi tabanından alır. Alınan bilgiler daha sonra LLM'nin girdisini artırmak için kullanılır; bu, model tarafından oluşturulan metnin doğruluğunun ve alaka düzeyinin artırılmasına yardımcı olabilir. RAG'ın soru yanıtlama ve özetleme gibi çeşitli metin oluşturma görevlerinde etkili olduğu gösterilmiştir. Metin oluşturma modellerinin kalitesini ve doğruluğunu artırmak için umut verici bir yaklaşımdır.
SageMaker JumpStart'ı kullanmanın avantajları
SageMaker JumpStart ile makine öğrenimi uygulayıcıları, içerik yazma, görüntü oluşturma, kod oluşturma, soru yanıtlama, metin yazma, özetleme, sınıflandırma, bilgi alma ve daha fazlası gibi kullanım durumları için geniş bir yelpazedeki son teknoloji modeller arasından seçim yapabilir. ML uygulayıcıları temel modelleri özel olarak dağıtabilir Amazon Adaçayı Yapıcı izole edilmiş bir ağ ortamından bulut sunucuları oluşturun ve model eğitimi ve konuşlandırma için SageMaker'ı kullanarak modelleri özelleştirin.
SageMaker JumpStart, FinServ müşterilerinin üretken yapay zeka kullanım durumları için idealdir çünkü aşağıdakileri sunar:
- Özelleştirme yetenekleri – SageMaker JumpStart, temel modellerin alan uyarlamasına ilişkin adım adım rehberlik için örnek not defterleri ve ayrıntılı gönderiler sağlar. İnce ayar, etki alanı uyarlaması ve temel modellerin eğitimi veya RAG tabanlı uygulamalar oluşturmak için bu kaynakları takip edebilirsiniz.
- Veri güvenliği – Çıkarım yükü verilerinin güvenliğinin sağlanması çok önemlidir. SageMaker JumpStart ile modelleri, tek kiracılı uç nokta provizyonuyla ağ yalıtımında dağıtabilirsiniz. Ayrıca, bireysel güvenlik gereksinimlerine uygun olarak, özel model merkezi özelliği aracılığıyla seçilen modellere erişim kontrolünü yönetebilirsiniz.
- Düzenleyici kontroller ve uyumluluklar – HIPAA BAA, SOC123, PCI ve HITRUST CSF gibi standartlarla uyumluluk SageMaker'ın temel bir özelliğidir ve finans sektörünün sıkı düzenleyici ortamına uyum sağlar.
- Model seçenekleri – SageMaker JumpStart, sektörde tanınan HELM kriterlerinde sürekli olarak üst sıralarda yer alan son teknoloji ürünü ML modellerinden oluşan bir seçki sunar. Bunlar arasında Llama 2, Falcon 40B, AI21 J2 Ultra, AI21 Summarize, Hugging Face MiniLM ve BGE modelleri yer alır ancak bunlarla sınırlı değildir.
Bu yazıda, Llama 2 temel modeli ve RAG mimarisi kullanan finansal hizmet kuruluşları için bağlamsal bir sohbet robotu oluşturmayı araştırıyoruz. Sarılma Yüzü GPTJ-6B-FP16 gömme modeli, her ikisi de SageMaker JumpStart'ta mevcuttur. Biz de kullanıyoruz Vektör Motoru için Amazon OpenSearch Sunucusuz (şu anda önizleme aşamasındadır) yerleştirmeleri depolamak için vektör veri deposu olarak.
Büyük dil modellerinin sınırlamaları
LLM'ler büyük hacimli yapılandırılmamış veriler üzerinde eğitilmiştir ve genel metin oluşturmada uzmandır. Bu eğitim sayesinde Yüksek Lisans'lar gerçek bilgileri edinir ve saklar. Bununla birlikte, kullanıma hazır LLM'lerin sınırlamaları vardır:
- Çevrimdışı eğitimleri onları güncel bilgilerden habersiz kılıyor.
- Ağırlıklı olarak genelleştirilmiş veriler üzerine aldıkları eğitim, alana özgü görevlerdeki yeterliliklerini azaltır. Örneğin, bir finans firması Soru-Cevap robotunun yanıtları en son dahili belgelerinden almasını, böylece doğruluğu ve iş kurallarına uygunluğu sağlamasını tercih edebilir.
- Gömülü bilgilere güvenmeleri yorumlanabilirliği tehlikeye atar.
Yüksek Lisans'ta belirli verileri kullanmak için üç yaygın yöntem mevcuttur:
- Verilerin modele yerleştirilmesi, çıktı oluşturma sırasında bu bağlamın kullanılmasına olanak tanır. Bu, sıfır atış (örnek yok), birkaç atış (sınırlı örnekler) veya çok atış (bol örnek) olabilir. Bu tür bağlamsal yönlendirme, modelleri daha incelikli sonuçlara yönlendirir.
- Bilgi istemleri ve tamamlama çiftlerini kullanarak modele ince ayar yapma.
- RAG, harici verileri (parametrik olmayan) alır ve bu verileri istemlere entegre ederek bağlamı zenginleştirir.
Ancak ilk yöntem, bağlam boyutuna ilişkin model kısıtlamalarıyla boğuşmakta, bu da uzun belgelerin girilmesini zorlaştırmakta ve muhtemelen maliyetleri artırmaktadır. İnce ayar yaklaşımı güçlü olmasına rağmen, özellikle sürekli gelişen dış veriler nedeniyle kaynak yoğundur ve dağıtımların gecikmesine ve maliyetlerin artmasına neden olur. Yüksek Lisans ile birleştirilmiş RAG, daha önce bahsedilen sınırlamalara bir çözüm sunar.
Alma Artırılmış Nesil
RAG, harici verileri (parametrik olmayan) alır ve bu verileri ML istemlerine entegre ederek bağlamı zenginleştirir. Lewis ve ark. RAG modellerini 2020'de tanıttı ve bunları önceden eğitilmiş bir diziden diziye modelinin (parametrik bellek) ve bir sinir alıcı aracılığıyla erişilen yoğun bir Wikipedia vektör indeksinin (parametrik olmayan bellek) birleşimi olarak kavramsallaştırdı.
RAG şu şekilde çalışır:
- Veri kaynakları – RAG, belge depoları, veritabanları veya API'ler dahil olmak üzere çeşitli veri kaynaklarından yararlanabilir.
- veri biçimlendirme – Hem kullanıcının sorgusu hem de dokümanlar alaka karşılaştırmalarına uygun formata dönüştürülür.
- kalıplamaların – Bu karşılaştırmayı kolaylaştırmak için sorgu ve belge koleksiyonu (veya bilgi kitaplığı), dil modelleri kullanılarak sayısal yerleştirmelere dönüştürülür. Bu yerleştirmeler metinsel kavramları sayısal olarak kapsar.
- Uygunluk araması – Kullanıcı sorgusunun yerleştirmesi, belge koleksiyonunun yerleştirmeleriyle karşılaştırılır ve ilgili metin, yerleştirme alanındaki benzerlik araması yoluyla tanımlanır.
- Bağlam zenginleştirme – Belirlenen ilgili metin kullanıcının orijinal istemine eklenir ve böylece bağlamı zenginleştirilir.
- Yüksek Lisans işleme – Zenginleştirilmiş bağlamla istem, ilgili dış verilerin dahil edilmesi nedeniyle ilgili ve kesin çıktılar üreten LLM'ye beslenir.
- Eşzamansız güncellemeler – Referans belgelerinin güncel kalmasını sağlamak için, yerleşik gösterimleriyle birlikte eşzamansız olarak güncellenebilirler. Bu, gelecekteki model yanıtlarının en son bilgilere dayanmasını sağlayarak doğruluğu garanti eder.
Temel olarak RAG, yüksek lisans eğitimlerine gerçek zamanlı, ilgili bilgileri aşılamak için dinamik bir yöntem sunarak kesin ve zamanında çıktıların üretilmesini sağlar.
Aşağıdaki diyagram, LLM'lerle RAG kullanmanın kavramsal akışını göstermektedir.
Çözüme genel bakış
Bir finansal hizmetler uygulamasına yönelik bağlamsal soru yanıtlayan bir sohbet robotu oluşturmak için aşağıdaki adımlar gereklidir:
- SageMaker JumpStart GPT-J-6B gömme modelini kullanarak her PDF belgesi için gömmeler oluşturun. Amazon Basit Depolama Hizmeti (Amazon S3) yükleme dizini.
- Aşağıdaki adımları kullanarak ilgili belgeleri tanımlayın:
- Aynı modeli kullanarak kullanıcının sorgusu için bir yerleştirme oluşturun.
- Gömme alanındaki en alakalı K belge dizinini aramak için vektör motoru özelliğiyle OpenSearch Serverless'ı kullanın.
- Tanımlanan dizinleri kullanarak ilgili belgeleri alın.
- Alınan belgeleri kullanıcının istemi ve sorusuyla bağlam olarak birleştirin. Yanıt oluşturmak için bunu SageMaker LLM'ye iletin.
Bu süreci yönetmek için popüler bir çerçeve olan LangChain'i kullanıyoruz. LangChain, çeşitli LLM'ler için evrensel bir arayüz sunarak, LLM'ler tarafından desteklenen uygulamaları desteklemek üzere özel olarak tasarlanmıştır. Birden fazla LLM'nin entegrasyonunu kolaylaştırarak çağrılar arasında kesintisiz durum kalıcılığı sağlar. Ayrıca, özelleştirilebilir bilgi istemi şablonları, kapsamlı uygulama oluşturma aracıları ve arama ve erişim için özel dizinler gibi özelliklerle geliştirici verimliliğini artırır. Ayrıntılı bir anlayış için bkz. LangChain belgeleri.
Önkoşullar
Bağlama duyarlı sohbet robotumuzu oluşturmak için aşağıdaki ön koşullara ihtiyacınız vardır:
OpenSearch Sunucusuz vektör motorunun nasıl kurulacağına ilişkin talimatlar için bkz. Amazon OpenSearch Serverless için vektör motoruyla tanışın, şimdi önizlemede.
Aşağıdaki çözümün kapsamlı bir açıklaması için klonlayın GitHub repo ve bakın Jupyter defter.
SageMaker JumpStart'ı kullanarak ML modellerini dağıtma
ML modellerini dağıtmak için aşağıdaki adımları tamamlayın:
- SageMaker JumpStart'tan Llama 2 LLM'yi dağıtın:
- GPT-J yerleştirme modelini dağıtın:
Verileri parçalayın ve bir belge yerleştirme nesnesi oluşturun
Bu bölümde verileri daha küçük belgelere ayırırsınız. Parçalama, büyük metinleri daha küçük parçalara bölmek için kullanılan bir tekniktir. Bu çok önemli bir adım çünkü RAG modelimiz için arama sorgusunun alaka düzeyini optimize ediyor ve bu da sohbet robotunun kalitesini artırıyor. Parça boyutu, belge türü ve kullanılan model gibi faktörlere bağlıdır. Bir paragrafın yaklaşık boyutu olduğundan chunk_size=1600 öbeği seçildi. Modeller geliştikçe bağlam penceresi boyutları artacak ve daha büyük parça boyutlarına olanak tanınacaktır.
Bakın Jupyter dizüstü bilgisayar Tam çözüm için GitHub deposunda.
- LangChain'i uzatın
SageMakerEndpointEmbeddings
Daha önce oluşturduğunuz gpt-j-6b-fp16 SageMaker uç noktasını kullanan özel bir yerleştirme işlevi oluşturmak için class'ı kullanın (yerleştirme modelini kullanmanın bir parçası olarak): - Katıştırmalar nesnesini oluşturun ve belge katıştırmalarının oluşturulmasını toplu olarak gerçekleştirin:
- Bu yerleştirmeler LangChain kullanılarak vektör motorunda saklanır
OpenSearchVectorSearch
. Bu yerleştirmeleri bir sonraki bölümde saklarsınız. Belge yerleştirmeyi OpenSearch Serverless'ta saklayın. Artık yığın halindeki belgeler üzerinde yineleme yapmaya, yerleştirmeleri oluşturmaya ve bu yerleştirmeleri vektör arama koleksiyonlarında oluşturulan OpenSearch Sunucusuz vektör dizininde depolamaya hazırsınız. Aşağıdaki koda bakın:
Belgeler üzerinden soru ve cevap
Şu ana kadar büyük bir belgeyi daha küçük parçalara ayırdınız, vektör yerleştirmeler oluşturdunuz ve bunları bir vektör motorunda sakladınız. Artık bu belge verileriyle ilgili soruları yanıtlayabilirsiniz. Veriler üzerinde indeks oluşturduğunuz için anlamsal arama yapabilirsiniz; bu şekilde, yalnızca soruyu yanıtlamak için gereken en ilgili belgeler istem yoluyla LLM'ye iletilir. Bu, yalnızca ilgili belgeleri LLM'ye ileterek zamandan ve paradan tasarruf etmenizi sağlar. Belge zincirlerini kullanma hakkında daha fazla ayrıntı için bkz. evraklar.
Belgeleri kullanarak soruları yanıtlamak için aşağıdaki adımları tamamlayın:
- SageMaker LLM uç noktasını LangChain ile kullanmak için şunu kullanırsınız:
langchain.llms.sagemaker_endpoint.SagemakerEndpoint
SageMaker LLM uç noktasını özetleyen. LangChain SageMaker entegrasyonu için aşağıdaki kodda gösterildiği gibi istek ve yanıt yükü için bir dönüşüm gerçekleştirirsiniz. Kullanmayı seçtiğiniz LLM modelinin content_type ve kabul biçimine göre ContentHandler'daki kodu ayarlamanız gerekebileceğini unutmayın.
Artık mali belgeyle etkileşime geçmeye hazırsınız.
- Belgeyle ilgili sorular sormak için aşağıdaki sorgu ve bilgi istemi şablonunu kullanın:
Temizlemek
Gelecekte ortaya çıkabilecek maliyetleri önlemek için bu not defterinde oluşturduğunuz SageMaker çıkarım uç noktalarını silin. Bunu SageMaker Studio not defterinizde aşağıdakileri çalıştırarak yapabilirsiniz:
Bu örnek için bir OpenSearch Sunucusuz koleksiyon oluşturduysanız ve artık buna ihtiyacınız yoksa, bunu OpenSearch Sunucusuz konsolu aracılığıyla silebilirsiniz.
Sonuç
Bu yazıda, Yüksek Lisans'lara alana özgü bağlam sağlamak için RAG'ı bir yaklaşım olarak kullanmayı tartıştık. Vektör veri deposu olarak bir vektör motoruyla Llama 2 ve OpenSearch Serverless'ı kullanan bir finansal hizmetler kuruluşu için RAG tabanlı bağlamsal bir sohbet robotu oluşturmak için SageMaker JumpStart'ın nasıl kullanılacağını gösterdik. Bu yöntem, ilgili bağlamı dinamik olarak tedarik ederek Lama 2'yi kullanarak metin oluşturmayı geliştirir. SageMaker JumpStart'ta özel verilerinizi getirdiğinizi ve bu RAG tabanlı stratejiyle yenilik yaptığınızı görmekten heyecan duyuyoruz!
yazarlar hakkında
Sunil Padmanabhan AWS'de Başlangıç Çözümleri Mimarıdır. Eski bir startup kurucusu ve CTO olarak, makine öğrenimi konusunda tutkulu ve yeni başlayanların iş sonuçları için AI/ML'den yararlanmasına ve ML/AI çözümlerini geniş ölçekte tasarlayıp dağıtmasına yardımcı olmaya odaklanıyor.
Süleyman Patel Amazon Web Services'ta (AWS) Kıdemli Çözüm Mimarı olup, Makine Öğrenimi ve Modernizasyona özel olarak odaklanmıştır. Hem iş hem de teknoloji alanındaki uzmanlığından yararlanan Suleman, müşterilerin gerçek dünyadaki iş sorunlarını çözen çözümler tasarlamasına ve oluşturmasına yardımcı olur. Suleman kendini işine vermediği zamanlarda dışarıyı keşfetmeyi, yol gezilerine çıkmayı ve mutfakta lezzetli yemekler pişirmeyi seviyor.
- 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/build-a-contextual-chatbot-for-financial-services-using-amazon-sagemaker-jumpstart-llama-2-and-amazon-opensearch-serverless-with-vector-engine/