Zephyrnet Logosu

Amazon SageMaker'da gelişmiş RAG desenleri | Amazon Web Hizmetleri

Tarih:

Bugün, ister finansal hizmetler, sağlık ve yaşam bilimleri, seyahat ve konaklama, medya ve eğlence, telekomünikasyon, hizmet olarak yazılım (SaaS) ve hatta özel model sağlayıcılar olsun, tüm sektörlerden müşteriler, büyük dil modellerini (LLM'ler) kullanıyor. Soru-cevap (QnA) sohbet robotları, arama motorları ve bilgi tabanları gibi uygulamalar oluşturun. Bunlar üretken yapay zeka uygulamalar yalnızca mevcut iş süreçlerini otomatikleştirmek için kullanılmıyor, aynı zamanda bu uygulamaları kullanan müşterilerin deneyimini dönüştürme özelliğine de sahip. LLM'lerde kaydedilen ilerlemelerle birlikte, Mixtral-8x7B Talimatıgibi mimarilerin türevi uzman karışımı (MEB)Müşteriler sürekli olarak üretken yapay zeka uygulamalarının performansını ve doğruluğunu iyileştirmenin ve aynı zamanda daha geniş bir kapalı ve açık kaynak model yelpazesini etkili bir şekilde kullanmalarına olanak sağlamanın yollarını arıyor.

Bir Yüksek Lisans çıktısının doğruluğunu ve performansını artırmak için tipik olarak bir takım teknikler kullanılır; örneğin, parametre verimli ince ayar (PEFT), insan geri bildiriminden (RLHF) pekiştirmeli öğrenme, ve performans bilgi damıtma. Ancak üretken yapay zeka uygulamaları oluştururken, harici bilginin dinamik olarak dahil edilmesine olanak tanıyan ve mevcut temel modelinizde ince ayar yapmanıza gerek kalmadan üretim için kullanılan bilgileri kontrol etmenize olanak tanıyan alternatif bir çözüm kullanabilirsiniz. Tartıştığımız daha pahalı ve sağlam ince ayar alternatiflerinin aksine, özellikle üretken yapay zeka uygulamaları için, Alma Artırılmış Üretimin (RAG) devreye girdiği yer burasıdır. Günlük görevlerinize karmaşık RAG uygulamaları uyguluyorsanız, RAG sistemlerinizde hatalı alma, belgelerin artan boyutu ve karmaşıklığı ve bağlam taşması gibi genel sorunlarla karşılaşabilirsiniz; bunlar, oluşturulan yanıtların kalitesini ve güvenilirliğini önemli ölçüde etkileyebilir. .

Bu gönderide, geliştiricilerin mevcut üretken yapay zeka uygulamalarını geliştirmelerine olanak sağlamak amacıyla bağlamsal sıkıştırma gibi tekniklerin yanı sıra LangChain ve ana belge alıcı gibi araçları kullanarak yanıt doğruluğunu artırmaya yönelik RAG modelleri tartışılmaktadır.

Çözüme genel bakış

Bu yazıda, ana belge alma aracını ve bağlamsal sıkıştırma tekniğini kullanarak bir Amazon SageMaker dizüstü bilgisayarda verimli bir RAG QnA sistemi oluşturmak için Mixtral-8x7B Instruct metin oluşturmanın BGE Large En yerleştirme modeliyle birlikte kullanımını gösteriyoruz. Aşağıdaki diyagram bu çözümün mimarisini göstermektedir.

Bu çözümü kullanarak yalnızca birkaç tıklamayla dağıtabilirsiniz. Amazon SageMaker Hızlı Başlangıçiçerik yazma, kod oluşturma, soru yanıtlama, metin yazarlığı, özetleme, sınıflandırma ve bilgi alma gibi çeşitli kullanım durumları için en son teknolojiye sahip temel modeller sunan, tam olarak yönetilen bir platform. Hızlı ve kolay bir şekilde dağıtabileceğiniz önceden eğitilmiş modellerden oluşan bir koleksiyon sağlayarak makine öğrenimi (ML) uygulamalarının geliştirilmesini ve dağıtılmasını hızlandırır. SageMaker JumpStart'ın temel bileşenlerinden biri, çeşitli görevler için Mixtral-8x7B gibi önceden eğitilmiş modellerden oluşan geniş bir katalog sunan Model Hub'dır.

Mixtral-8x7B bir MoE mimarisi kullanır. Bu mimari, bir sinir ağının farklı bölümlerinin farklı görevlerde uzmanlaşmasına olanak tanıyarak iş yükünü birden fazla uzman arasında etkili bir şekilde bölüştürür. Bu yaklaşım, geleneksel mimarilere kıyasla daha büyük modellerin verimli bir şekilde eğitilmesine ve konuşlandırılmasına olanak tanır.

MoE mimarisinin temel avantajlarından biri ölçeklenebilirliğidir. İş yükünü birden fazla uzmana dağıtarak MoE modelleri daha büyük veri kümeleri üzerinde eğitilebilir ve aynı boyuttaki geleneksel modellere göre daha iyi performans elde edilebilir. Ek olarak, MoE modelleri çıkarım sırasında daha verimli olabilir çünkü belirli bir girdi için yalnızca bir uzman alt kümesinin etkinleştirilmesi gerekir.

AWS'de Mixtral-8x7B Talimatı hakkında daha fazla bilgi için bkz. Mixtral-8x7B artık Amazon SageMaker JumpStart'ta mevcut. Mixtral-8x7B modeli, izin verilen Apache 2.0 lisansı kapsamında kısıtlama olmaksızın kullanıma sunulmuştur.

Bu yazıda, nasıl kullanabileceğinizi tartışıyoruz. Dil Zinciri etkili ve daha verimli RAG uygulamaları oluşturmak. LangChain, Yüksek Lisans'larla uygulamalar oluşturmak için tasarlanmış açık kaynaklı bir Python kütüphanesidir. Güçlü ve özelleştirilebilir uygulamalar oluşturmak için LLM'leri bilgi tabanları, erişim sistemleri ve diğer yapay zeka araçları gibi diğer bileşenlerle birleştirmek için modüler ve esnek bir çerçeve sağlar.

Mixtral-8x7B ile SageMaker'da bir RAG boru hattı inşa etme adımlarını takip ediyoruz. Bir SageMaker dizüstü bilgisayarda RAG kullanarak verimli bir Soru-Cevap sistemi oluşturmak için Mixtral-8x7B Instruct metin oluşturma modelini BGE Large En yerleştirme modeliyle birlikte kullanıyoruz. LLM'lerin SageMaker tarafından oluşturulan bir API uç noktası aracılığıyla erişilebilen SageMaker JumpStart aracılığıyla dağıtılmasını göstermek için bir ml.t3.medium örneği kullanıyoruz. Bu kurulum, gelişmiş RAG tekniklerinin LangChain ile araştırılmasına, denenmesine ve optimizasyonuna olanak tanır. Ayrıca FAISS Gömme deposunun RAG iş akışına entegrasyonunu da gösteriyoruz ve sistemin performansını artırmak için yerleştirmelerin saklanması ve alınmasındaki rolünü vurguluyoruz.

SageMaker not defterinin kısa bir özetini gerçekleştiriyoruz. Daha ayrıntılı ve adım adım talimatlar için bkz. SageMaker Hızlı Başlangıç ​​GitHub deposunda Mixtral ile Gelişmiş RAG Desenleri.

Gelişmiş RAG kalıplarına duyulan ihtiyaç

Gelişmiş RAG kalıpları, LLM'lerin insan benzeri metinleri işleme, anlama ve üretme konusundaki mevcut yeteneklerini geliştirmek için gereklidir. Belgelerin boyutu ve karmaşıklığı arttıkça, belgenin birden çok yönünün tek bir yerleştirmede temsil edilmesi, özgünlük kaybına neden olabilir. Bir belgenin genel özünü yakalamak önemli olsa da, içindeki çeşitli alt bağlamları tanımak ve temsil etmek de aynı derecede önemlidir. Bu, daha büyük belgelerle çalışırken sıklıkla karşılaştığınız bir zorluktur. RAG ile ilgili bir başka zorluk da, alma sırasında belge depolama sisteminizin alımın ardından ele alacağı belirli sorguların farkında olmamanızdır. Bu, bir sorguyla en alakalı bilgilerin metnin altına gömülmesine (bağlam taşması) yol açabilir. Arızayı azaltmak ve mevcut RAG mimarisini geliştirmek amacıyla, alma hatalarını azaltmak, yanıt kalitesini artırmak ve karmaşık soru yönetimini etkinleştirmek için gelişmiş RAG modellerini (ana belge alıcısı ve bağlamsal sıkıştırma) kullanabilirsiniz.

Bu yazıda tartışılan tekniklerle, dışarıdan bilgi alma ve entegrasyonla ilgili temel zorlukları çözebilir, uygulamanızın daha kesin ve bağlamsal olarak bilinçli yanıtlar sunmasını sağlayabilirsiniz.

Aşağıdaki bölümlerde bunun nasıl olduğunu araştırıyoruz ana belge alıcıları ve bağlamsal sıkıştırma tartıştığımız bazı sorunların üstesinden gelmenize yardımcı olabilir.

Ana belge alıcısı

Önceki bölümde RAG uygulamalarının kapsamlı belgelerle uğraşırken karşılaştığı zorlukları vurguladık. Bu zorlukların üstesinden gelmek için, ana belge alıcıları Gelen belgeleri şu şekilde kategorilere ayırın ve belirtin: ana belgeler. Bu belgeler kapsamlı yapıları nedeniyle tanınmaktadır ancak yerleştirmeler için orijinal hallerinde doğrudan kullanılmamaktadır. Ana belge alıcıları, bir belgenin tamamını tek bir yerleştirmeye sıkıştırmak yerine bu ana belgeleri parçalara ayırır. alt belgeler. Her alt belge, daha geniş ana belgeden farklı yönleri veya konuları yakalar. Bu alt bölümlerin tanımlanmasının ardından, her birine özel tematik özlerini yakalayan ayrı yerleştirmeler atanır (aşağıdaki şemaya bakın). Alma sırasında ana belge çağrılır. Bu teknik, LLM'ye daha geniş bir bakış açısı kazandırarak hedefli ancak geniş kapsamlı arama yetenekleri sağlar. Ana belge alıcıları, LLM'lere iki yönlü bir avantaj sağlar: Kesin ve ilgili bilgi alımı için alt belge yerleştirmelerin özgüllüğü, yanıt oluşturmak için ana belgelerin çağrılması ile birleşerek LLM'nin çıktılarını katmanlı ve kapsamlı bir bağlamla zenginleştirir.

Bağlamsal sıkıştırma

Daha önce tartışılan bağlam taşması sorununu çözmek için şunları kullanabilirsiniz: bağlamsal sıkıştırma Alınan belgeleri sorgu bağlamına uygun şekilde sıkıştırmak ve filtrelemek, böylece yalnızca ilgili bilgilerin saklanması ve işlenmesi. Bu, aşağıdaki şemada gösterildiği gibi, ilk belge alımı için bir temel alıcı ve bu belgelerin içeriklerini ayrıştırarak veya alaka düzeyine göre tamamen hariç tutarak iyileştirmek için bir belge sıkıştırıcının birleşimiyle gerçekleştirilir. Bağlamsal sıkıştırma alıcısı tarafından kolaylaştırılan bu kolaylaştırılmış yaklaşım, bir bilgi yığınından yalnızca gerekli olanı ayıklamak ve kullanmak için bir yöntem sağlayarak RAG uygulama verimliliğini büyük ölçüde artırır. Aşırı bilgi yüklemesi ve alakasız veri işleme sorununu doğrudan ele alarak yanıt kalitesinin iyileştirilmesine, daha uygun maliyetli LLM işlemlerine ve daha sorunsuz bir genel geri alma sürecine yol açar. Temel olarak, bilgileri eldeki sorguya göre uyarlayan bir filtredir ve bu da onu daha iyi performans ve kullanıcı memnuniyeti için RAG uygulamalarını optimize etmeyi amaçlayan geliştiriciler için çok ihtiyaç duyulan bir araç haline getirir.

Önkoşullar

SageMaker'da yeniyseniz, bkz. Amazon SageMaker Geliştirme Kılavuzu.

Çözüme başlamadan önce, bir AWS hesabı oluşturun. Bir AWS hesabı oluşturduğunuzda, hesaptaki tüm AWS hizmetlerine ve kaynaklarına tam erişime sahip olan bir tek oturum açma (SSO) kimliğine sahip olursunuz. Bu kimliğe AWS hesabı denir kök kullanıcı.

Oturum açma AWS Yönetim Konsolu hesabı oluşturmak için kullandığınız e-posta adresini ve şifreyi kullanmak, hesabınızdaki tüm AWS kaynaklarına tam erişim sağlar. Yönetici görevleri de dahil olmak üzere günlük görevler için root kullanıcısını kullanmamanızı önemle tavsiye ederiz.

Bunun yerine, aşağıdaki kurallara uyun güvenlik en iyi uygulamaları in AWS Kimlik ve Erişim Yönetimi (Ben ve yönetici kullanıcı ve grup oluştur. Ardından kök kullanıcı kimlik bilgilerini güvenli bir şekilde kilitleyin ve bunları yalnızca birkaç hesap ve hizmet yönetimi görevini gerçekleştirmek için kullanın.

Mixtral-8x7b modeli ml.g5.48xlarge örneğini gerektirir. SageMaker JumpStart, 100'den fazla farklı açık kaynak ve üçüncü taraf temel modeline erişmek ve bunları dağıtmak için basitleştirilmiş bir yol sağlar. İçin SageMaker JumpStart'tan Mixtral-8x7B'yi barındıracak bir uç nokta başlatınuç nokta kullanımı için bir ml.g5.48xlarge örneğine erişmek amacıyla hizmet kotası artışı talep etmeniz gerekebilir. Yapabilirsiniz hizmet kotası artışlarını talep etme konsol aracılığıyla, AWS Komut Satırı Arayüzü (AWS CLI) veya bu ek kaynaklara erişime izin vermek için API.

Bir SageMaker not defteri örneği kurun ve bağımlılıkları yükleyin

Başlamak için bir SageMaker not defteri örneği oluşturun ve gerekli bağımlılıkları yükleyin. Bakın GitHub repo Başarılı bir kurulum sağlamak için. Dizüstü bilgisayar örneğini kurduktan sonra modeli dağıtabilirsiniz.

Ayrıca dizüstü bilgisayarınızı tercih ettiğiniz tümleşik geliştirme ortamında (IDE) yerel olarak da çalıştırabilirsiniz. Jupyter dizüstü bilgisayar laboratuvarının kurulu olduğundan emin olun.

Modeli dağıtın

Mixtral-8X7B Instruct LLM modelini SageMaker JumpStart'ta dağıtın:

# Import the JumpStartModel class from the SageMaker JumpStart library
from sagemaker.jumpstart.model import JumpStartModel

# Specify the model ID for the HuggingFace Mixtral 8x7b Instruct LLM model
model_id = "huggingface-llm-mixtral-8x7b-instruct"
model = JumpStartModel(model_id=model_id)
llm_predictor = model.deploy()

BGE Large En yerleştirme modelini SageMaker JumpStart'ta dağıtın:

# Specify the model ID for the HuggingFace BGE Large EN Embedding model
model_id = "huggingface-sentencesimilarity-bge-large-en"
text_embedding_model = JumpStartModel(model_id=model_id)
embedding_predictor = text_embedding_model.deploy()

LangChain'i kurun

Gerekli tüm kitaplıkları içe aktardıktan ve Mixtral-8x7B modelini ve BGE Large En yerleştirme modelini dağıttıktan sonra artık LangChain'i kurabilirsiniz. Adım adım talimatlar için bkz. GitHub repo.

Veri Hazırlama

Bu yazıda, Soru-Cevap gerçekleştirmek için Amazon'un Hissedarlara Mektuplarını birkaç yıllık bir metin külliyatı olarak kullanıyoruz. Verileri hazırlamaya yönelik daha ayrıntılı adımlar için bkz. GitHub repo.

Soru cevaplama

Veriler hazırlandıktan sonra, vektör deposunun etrafını saran ve LLM için girdi alan, LangChain tarafından sağlanan sarmalayıcıyı kullanabilirsiniz. Bu sarmalayıcı aşağıdaki adımları gerçekleştirir:

  1. Giriş sorusunu alın.
  2. Bir soru yerleştirme oluşturun.
  3. İlgili belgeleri getirin.
  4. Belgeleri ve soruyu bir bilgi istemine ekleyin.
  5. Modeli istemle çağırın ve yanıtı okunabilir bir şekilde oluşturun.

Artık vektör mağazası hazır olduğuna göre soru sormaya başlayabilirsiniz:

prompt_template = """<s>[INST]
{query}
[INST]"""
PROMPT = PromptTemplate(
    template=prompt_template, input_variables=["query"]
)
query = "How has AWS evolved?"
answer = wrapper_store_faiss.query(question=PROMPT.format(query=query), llm=llm)
print(answer)
AWS, or Amazon Web Services, has evolved significantly since its initial launch in 2006. It started as a feature-poor service, offering only one instance size, in one data center, in one region of the world, with Linux operating system instances only. There was no monitoring, load balancing, auto-scaling, or persistent storage at the time. However, AWS had a successful launch and has since grown into a multi-billion-dollar service.

Over the years, AWS has added numerous features and services, with over 3,300 new ones launched in 2022 alone. They have expanded their offerings to include Windows, monitoring, load balancing, auto-scaling, and persistent storage. AWS has also made significant investments in long-term inventions that have changed what's possible in technology infrastructure.

One example of this is their investment in chip development. AWS has also seen a robust new customer pipeline and active migrations, with many companies opting to move to AWS for the agility, innovation, cost-efficiency, and security benefits it offers. AWS has transformed how customers, from start-ups to multinational companies to public sector organizations, manage their technology infrastructure.

Düzenli av köpeği zinciri

Önceki senaryoda, sorunuza bağlama duyarlı bir yanıt almanın hızlı ve kolay yolunu araştırdık. Şimdi RetrievalQA'nın yardımıyla daha özelleştirilebilir bir seçeneğe bakalım; burada, Chain_type parametresini kullanarak getirilen belgelerin bilgi istemine nasıl eklenmesi gerektiğini özelleştirebilirsiniz. Ayrıca kaç tane ilgili belgenin alınması gerektiğini kontrol etmek için aşağıdaki koddaki k parametresini değiştirerek farklı çıktıları görebilirsiniz. Birçok senaryoda LLM'nin yanıtı oluşturmak için hangi kaynak belgeleri kullandığını bilmek isteyebilirsiniz. Bu belgeleri çıktıda kullanarak alabilirsiniz. return_source_documentsLLM isteminin bağlamına eklenen belgeleri döndürür. RetrievalQA ayrıca modele özel olabilecek özel bir bilgi istemi şablonu sağlamanıza da olanak tanır.

from langchain.chains import RetrievalQA

prompt_template = """<s>[INST]
Use the following pieces of context to provide a concise answer to the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.

{context}

Question: {question}

[INST]"""
PROMPT = PromptTemplate(
    template=prompt_template, input_variables=["context", "question"]
)

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore_faiss.as_retriever(
        search_type="similarity", search_kwargs={"k": 3}
    ),
    return_source_documents=True,
    chain_type_kwargs={"prompt": PROMPT}
)

Bir soru soralım:

query = "How did AWS evolve?"
result = qa({"query": query})
print(result['result'])
AWS (Amazon Web Services) evolved from an initially unprofitable investment to an $85B annual revenue run rate business with strong profitability, offering a wide range of services and features, and becoming a significant part of Amazon's portfolio. Despite facing skepticism and short-term headwinds, AWS continued to innovate, attract new customers, and migrate active customers, offering benefits such as agility, innovation, cost-efficiency, and security. AWS also expanded its long-term investments, including chip development, to provide new capabilities and change what's possible for its customers.

Ana belge alıcı zinciri

Aşağıdakilerin yardımıyla daha gelişmiş bir RAG seçeneğine bakalım: EbeveynDocumentRetriever. Belge alımıyla çalışırken, doğru yerleştirmeler için belgenin küçük parçalarını depolamak ile daha fazla bağlamı korumak için daha büyük belgeleri depolamak arasında bir dengeyle karşılaşabilirsiniz. Ana belge alıcısı, küçük veri parçalarını bölerek ve depolayarak bu dengeyi sağlar.

Kullanırız parent_splitter orijinal belgeleri ana belgeler adı verilen daha büyük parçalara bölmek ve child_splitter orijinal belgelerden daha küçük alt belgeler oluşturmak için:

# This text splitter is used to create the parent documents
parent_splitter = RecursiveCharacterTextSplitter(chunk_size=2000)

# This text splitter is used to create the child documents
# It should create documents smaller than the parent
child_splitter = RecursiveCharacterTextSplitter(chunk_size=400)

# The vectorstore to use to index the child chunks
vectorstore_faiss = FAISS.from_documents(
    child_splitter.split_documents(documents),
    sagemaker_embeddings,
)

Alt belgeler daha sonra yerleştirmeler kullanılarak bir vektör deposunda indekslenir. Bu, benzerliğe dayalı olarak ilgili alt belgelerin verimli bir şekilde alınmasını sağlar. İlgili bilgileri almak için ana belge alıcısı ilk olarak alt belgeleri vektör deposundan getirir. Daha sonra bu alt belgelerin ana kimliklerini arar ve karşılık gelen daha büyük ana belgeleri döndürür.

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=retriever,
    return_source_documents=True,
    chain_type_kwargs={"prompt": PROMPT}
)

Bir soru soralım:

query = "How did AWS evolve?"
result = qa({"query": query})
print(result['result'])
AWS (Amazon Web Services) started with a feature-poor initial launch of the Elastic Compute Cloud (EC2) service in 2006, providing only one instance size, in one data center, in one region of the world, with Linux operating system instances only, and without many key features like monitoring, load balancing, auto-scaling, or persistent storage. However, AWS's success allowed them to quickly iterate and add the missing capabilities, eventually expanding to offer various flavors, sizes, and optimizations of compute, storage, and networking, as well as developing their own chips (Graviton) to push price and performance further. AWS's iterative innovation process required significant investments in financial and people resources over 20 years, often well in advance of when it would pay out, to meet customer needs and improve long-term customer experiences, loyalty, and returns for shareholders.

Bağlamsal sıkıştırma zinciri

Adı verilen başka bir gelişmiş RAG seçeneğine bakalım bağlamsal sıkıştırma. Almayla ilgili zorluklardan biri, verileri sisteme aldığınızda belge depolama sisteminizin karşılaşacağı spesifik sorguları genellikle bilmememizdir. Bu, bir sorguyla en alakalı bilgilerin, pek çok alakasız metin içeren bir belgenin içine gömülebileceği anlamına gelir. Bu belgenin tamamını başvurunuz aracılığıyla iletmek, daha pahalı LLM çağrılarına ve daha kötü yanıtlara yol açabilir.

Bağlamsal sıkıştırma alıcısı, ilgili verilerin çok fazla metin içeren belgelerin içine gömülebileceği bir belge depolama sisteminden ilgili bilgilerin alınması zorluğunu giderir. Alınan belgelerin verilen sorgu bağlamına göre sıkıştırılması ve filtrelenmesiyle yalnızca en alakalı bilgiler döndürülür.

Bağlamsal sıkıştırma alıcısını kullanmak için şunlara ihtiyacınız olacak:

  • Bir baz alıcı – Bu, sorguya dayalı olarak depolama sisteminden belgeleri getiren ilk alıcıdır
  • Bir belge sıkıştırıcı – Bu bileşen, başlangıçta alınan belgeleri alır ve alaka düzeyini belirlemek için sorgu bağlamını kullanarak, tek tek belgelerin içeriğini azaltarak veya ilgisiz belgeleri tamamen bırakarak bunları kısaltır.

LLM zincir çıkarıcıyla bağlamsal sıkıştırma ekleme

İlk önce, baz toplayıcınızı bir sarın ContextualCompressionRetriever. Bir ekleyeceksiniz LLMChainExtractor, başlangıçta döndürülen belgeler üzerinde yineleme yapacak ve her birinden yalnızca sorguyla ilgili içeriği çıkaracaktır.

from langchain.retrievers import ContextualCompressionRetrieverfrom langchain.retrievers.document_compressors import LLMChainExtractor

text_splitter = RecursiveCharacterTextSplitter(
    # Set a really small chunk size, just to show.
    chunk_size=1000,
    chunk_overlap=100,
)

docs = text_splitter.split_documents(documents)
retriever = FAISS.from_documents(
    docs,
    sagemaker_embeddings,
).as_retriever()

compressor = LLMChainExtractor.from_llm(llm)
compression_retriever = ContextualCompressionRetriever(
    base_compressor=compressor, base_retriever=retriever
)

compressed_docs = compression_retriever.get_relevant_documents(
    "How was Amazon impacted by COVID-19?"
)

kullanarak zinciri başlatın. ContextualCompressionRetriever bir ile LLMChainExtractor ve istemi aracılığıyla iletin chain_type_kwargs argüman.

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=compression_retriever,
    return_source_documents=True,
    chain_type_kwargs={"prompt": PROMPT}
)

Bir soru soralım:

query = "How did AWS evolve?"
result = qa({"query": query})
print(result['result'])
AWS evolved by starting as a small project inside Amazon, requiring significant capital investment and facing skepticism from both inside and outside the company. However, AWS had a head start on potential competitors and believed in the value it could bring to customers and Amazon. AWS made a long-term commitment to continue investing, resulting in over 3,300 new features and services launched in 2022. AWS has transformed how customers manage their technology infrastructure and has become an $85B annual revenue run rate business with strong profitability. AWS has also continuously improved its offerings, such as enhancing EC2 with additional features and services after its initial launch.

Belgeleri LLM zincir filtresiyle filtreleyin

The LLMChainFiltre belge içeriğini değiştirmeden, başlangıçta alınan belgelerden hangisinin filtreleneceğine ve hangilerinin geri döndürüleceğine karar vermek için bir LLM zinciri kullanan, biraz daha basit ama daha sağlam bir sıkıştırıcıdır:

from langchain.retrievers.document_compressors import LLMChainFilter

_filter = LLMChainFilter.from_llm(llm)
compression_retriever = ContextualCompressionRetriever(
    base_compressor=_filter, base_retriever=retriever
)

compressed_docs = compression_retriever.get_relevant_documents(
    "How was Amazon impacted by COVID-19?"
)
print(compressed_docs)

kullanarak zinciri başlatın. ContextualCompressionRetriever bir ile LLMChainFilter ve istemi aracılığıyla iletin chain_type_kwargs argüman.

qa = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=compression_retriever,
    return_source_documents=True,
    chain_type_kwargs={"prompt": PROMPT}
)

Bir soru soralım:

query = "How did AWS evolve?"
result = qa({"query": query})
print(result['result'])
AWS (Amazon Web Services) evolved by initially launching feature-poor but iterating quickly based on customer feedback to add necessary capabilities. This approach allowed AWS to launch EC2 in 2006 with limited features and then continuously add new functionalities, such as additional instance sizes, data centers, regions, operating system options, monitoring tools, load balancing, auto-scaling, and persistent storage. Over time, AWS transformed from a feature-poor service to a multi-billion-dollar business by focusing on customer needs, agility, innovation, cost-efficiency, and security. AWS now has an $85B annual revenue run rate and offers over 3,300 new features and services each year, catering to a wide range of customers from start-ups to multinational companies and public sector organizations.

Sonuçları karşılaştır

Aşağıdaki tablo, tekniğe dayalı olarak farklı sorgulardan elde edilen sonuçları karşılaştırır.

Teknik Sorgu 1 Sorgu 2 karşılaştırma
AWS nasıl gelişti? Amazon neden başarılı?
Düzenli Retriever Zinciri Çıkışı AWS (Amazon Web Services), başlangıçta kârsız bir yatırımdan, güçlü kârlılığa sahip, geniş bir hizmet ve özellik yelpazesi sunan ve Amazon'un portföyünün önemli bir parçası haline gelen, yıllık 85 milyar dolarlık gelir elde eden bir işletmeye dönüştü. AWS, şüphecilikle ve kısa vadeli olumsuzluklarla karşı karşıya olmasına rağmen yenilik yapmaya, yeni müşteriler çekmeye ve aktif müşterileri taşımaya devam ederek çeviklik, yenilikçilik, maliyet verimliliği ve güvenlik gibi avantajlar sunmaya devam etti. AWS ayrıca yeni yetenekler sağlamak ve müşterileri için mümkün olanı değiştirmek amacıyla çip geliştirme dahil uzun vadeli yatırımlarını da genişletti. Amazon, teknolojik altyapı hizmetleri, dijital okuma cihazları, sesle çalışan kişisel asistanlar ve üçüncü taraf pazar yeri gibi yeni iş modelleri gibi sürekli yenilik ve yeni alanlara doğru genişlemesi nedeniyle başarılıdır. Sipariş karşılama ve ulaşım ağlarının hızla genişlemesinde görüldüğü gibi, operasyonları hızlı bir şekilde ölçeklendirme yeteneği de başarısına katkıda bulunuyor. Ayrıca Amazon'un süreçlerinde optimizasyon ve verimlilik kazanımlarına odaklanması, üretkenliğin artması ve maliyetlerin azalmasıyla sonuçlandı. Amazon Business örneği, şirketin farklı sektörlerdeki e-ticaret ve lojistik güçlerinden yararlanma yeteneğini vurguluyor. Normal geri getirici zincirinden gelen yanıtlara dayanarak, uzun yanıtlar vermesine rağmen bağlam taşması sorunu yaşadığını ve sağlanan sorguya yanıt vermeyle ilgili olarak derlemdeki herhangi bir önemli ayrıntıdan bahsetmediğini fark ettik. Düzenli erişim zinciri, nüansları derinlemesine veya bağlamsal içgörüyle yakalayamıyor; bu da belgenin kritik yönlerinin kaçırılması ihtimalini doğuruyor.
Ana Belge Alıcı Çıktısı AWS (Amazon Web Services), 2 yılında Elastic Compute Cloud (EC2006) hizmetinin düşük özellikli ilk lansmanıyla başladı ve yalnızca Linux işletim sistemi örnekleriyle dünyanın bir bölgesinde, tek bir veri merkezinde yalnızca tek bir bulut sunucusu boyutu sağladı. ve izleme, yük dengeleme, otomatik ölçeklendirme veya kalıcı depolama gibi pek çok temel özellik olmadan. Bununla birlikte, AWS'nin başarısı, eksik yetenekleri hızlı bir şekilde yinelemelerine ve eklemelerine olanak tanıdı ve sonunda bilgi işlem, depolama ve ağ iletişimi için çeşitli tatlar, boyutlar ve optimizasyonlar sunacak şekilde genişledi ve ayrıca fiyat ve performansı daha da artırmak için kendi çiplerini (Graviton) geliştirdi. . AWS'nin yinelenen inovasyon süreci, müşteri ihtiyaçlarını karşılamak ve uzun vadeli müşteri deneyimlerini, bağlılığını ve hissedarların getirilerini iyileştirmek için 20 yıl boyunca finansal kaynaklara ve insan kaynaklarına, çoğu zaman karşılığını alacağı zamandan çok önce önemli yatırımlar yapılmasını gerektirdi. Amazon, sürekli yenilik yapma, değişen pazar koşullarına uyum sağlama ve çeşitli pazar segmentlerindeki müşteri ihtiyaçlarını karşılama yeteneği nedeniyle başarılıdır. Bu, ticari müşterilere seçim, değer ve kolaylık sunarak yıllık brüt satışlarda yaklaşık 35 milyar ABD doları elde eden Amazon Business'ın başarısında açıkça görülmektedir. Amazon'un e-ticaret ve lojistik yeteneklerine yaptığı yatırımlar, doğrudan tüketiciye yönelik web sitelerine sahip satıcıların görüntülemelerden satın almalara dönüşümü artırmasına yardımcı olan Buy with Prime gibi hizmetlerin oluşturulmasını da mümkün kıldı. Ana belge alıcısı, bağlam açısından zengin bir yanıt sağlarken, müşteri geri bildirimlerine dayalı olarak yeni özelliklerin eklenmesine yönelik yinelemeli süreç ve özellik açısından zayıf bir ilk lansmandan hakim bir pazar konumuna kadar ayrıntılı yolculuk da dahil olmak üzere AWS'nin büyüme stratejisinin ayrıntılarını daha derinlemesine inceler. . Yanıtlar, teknik yenilikler ve pazar stratejisinden organizasyonel verimlilik ve müşteri odaklılığa kadar geniş bir yelpazeyi kapsamakta ve örneklerle birlikte başarıya katkıda bulunan faktörlere ilişkin bütünsel bir bakış sunmaktadır. Bu, ana belge alıcının hedefli ancak geniş kapsamlı arama yeteneklerine bağlanabilir.
Yüksek Lisans Zincir Çıkarıcı: Bağlamsal Sıkıştırma Çıktısı AWS, Amazon içinde küçük bir proje olarak başlayarak, önemli miktarda sermaye yatırımı gerektirerek ve hem şirket içinden hem de dışarıdan şüphelerle karşı karşıya kalarak gelişti. Ancak AWS, potansiyel rakiplere göre bir adım öndeydi ve müşterilere ve Amazon'a getirebileceği değere inanıyordu. AWS, yatırımlarına devam etme konusunda uzun vadeli bir taahhütte bulundu ve bunun sonucunda 3,300'de 2022'den fazla yeni özellik ve hizmet piyasaya sürüldü. AWS, müşterilerin teknoloji altyapılarını yönetme biçimini dönüştürdü ve güçlü kârlılığa sahip, yıllık 85 milyar ABD doları gelir elde eden bir işletme haline geldi. AWS ayrıca EC2'yi ilk lansmanından sonra ek özellikler ve hizmetlerle geliştirmek gibi tekliflerini sürekli olarak geliştirdi. Sunulan bağlama göre Amazon'un başarısı, kitap satış platformundan canlı bir üçüncü taraf satıcı ekosistemine sahip küresel bir pazara doğru stratejik genişlemesine, AWS'ye erken yatırım yapılmasına, Kindle ve Alexa'nın piyasaya sürülmesindeki yenilikçiliğe ve önemli büyümeye atfedilebilir. Bu büyüme, sipariş karşılama merkezinin kapladığı alanın genişletilmesine, son kilometre taşıma ağının oluşturulmasına ve üretkenlik ve maliyet azaltımı için optimize edilmiş yeni bir ayırma merkezi ağının inşa edilmesine yol açtı. LLM zincir çıkarıcı, önemli noktaları kapsamlı bir şekilde ele almak ve gereksiz derinliklerden kaçınmak arasında bir denge sağlar. Sorgunun bağlamına dinamik olarak uyum sağlar, böylece çıktı doğrudan alakalı ve kapsamlı olur.
LLM Zincir Filtresi: Bağlamsal Sıkıştırma Çıktısı AWS (Amazon Web Services), başlangıçta özellikleri zayıf olarak piyasaya sürülerek, ancak gerekli yetenekleri eklemek için müşteri geri bildirimlerine göre hızlı bir şekilde yinelenerek geliştirildi. Bu yaklaşım, AWS'nin 2 yılında sınırlı özelliklerle EC2006'yi piyasaya sürmesine ve ardından ek bulut sunucusu boyutları, veri merkezleri, bölgeler, işletim sistemi seçenekleri, izleme araçları, yük dengeleme, otomatik ölçeklendirme ve kalıcı depolama gibi sürekli olarak yeni işlevler eklemesine olanak tanıdı. AWS zamanla müşteri ihtiyaçlarına, çevikliğe, yenilikçiliğe, maliyet verimliliğine ve güvenliğe odaklanarak yetersiz özelliklere sahip bir hizmetten milyarlarca dolarlık bir işletmeye dönüştü. AWS şu anda yıllık 85 milyar dolarlık bir gelir elde ediyor ve her yıl 3,300'den fazla yeni özellik ve hizmet sunarak yeni kurulan şirketlerden çok uluslu şirketlere ve kamu sektörü kuruluşlarına kadar geniş bir müşteri yelpazesine hitap ediyor. Amazon, yenilikçi iş modelleri, sürekli teknolojik gelişmeler ve stratejik organizasyonel değişiklikler nedeniyle başarılıdır. Şirket, çeşitli ürün ve hizmetler için bir e-ticaret platformu, üçüncü taraf bir pazar yeri, bulut altyapı hizmetleri (AWS), Kindle e-okuyucu ve Alexa sesli kişisel asistan gibi yeni fikirler sunarak geleneksel endüstrileri sürekli olarak altüst etti. . Ayrıca Amazon, verimliliğini artırmak için ABD sipariş karşılama ağını maliyetleri ve teslimat sürelerini azaltacak şekilde yeniden düzenlemek gibi yapısal değişiklikler yaparak başarısına daha da katkıda bulundu. LLM zincir çıkarıcıya benzer şekilde LLM zincir filtresi, kilit noktaların kapsanmasına rağmen kısa ve bağlamsal yanıtlar arayan müşteriler için çıktının verimli olmasını sağlar.

Bu farklı teknikleri karşılaştırdığımızda, AWS'nin basit bir hizmetten karmaşık, milyarlarca dolarlık bir varlığa geçişini detaylandırmak veya Amazon'un stratejik başarılarını açıklamak gibi bağlamlarda, normal geri alma zincirinin daha karmaşık tekniklerin sunduğu hassasiyetten yoksun olduğunu görebiliriz. daha az hedefe yönelik bilgiye yol açmaktadır. Tartışılan ileri teknikler arasında çok az fark görülse de, bunlar normal avlanma zincirlerinden çok daha bilgilendiricidir.

Sağlık hizmetleri, telekomünikasyon ve finansal hizmetler gibi endüstrilerde faaliyet gösteren ve uygulamalarında RAG'ı uygulamak isteyen müşteriler için, normal geri alma zincirinin hassasiyet sağlama, fazlalığı önleme ve bilgileri etkili bir şekilde sıkıştırma konusundaki sınırlamaları, bu zincirin bu ihtiyaçları karşılama konusunda daha az uygun olmasını sağlar. daha gelişmiş ana belge alıcısına ve bağlamsal sıkıştırma tekniklerine. Bu teknikler, büyük miktarda bilgiyi ihtiyacınız olan konsantre, etkili içgörülere dönüştürebilir ve aynı zamanda fiyat performansının iyileştirilmesine yardımcı olabilir.

Temizlemek

Not defterini çalıştırmayı tamamladığınızda, kullanılan kaynaklara ilişkin ücret tahakkuk etmesini önlemek için oluşturduğunuz kaynakları silin:

# Delete resources
llm_predictor.delete_model()
llm_predictor.delete_endpoint()
embedding_predictor.delete_model()
embedding_predictor.delete_endpoint()

Sonuç

Bu yazıda, LLM'lerin bilgi işleme ve üretme yeteneğini geliştirmek için ana belge alıcısı ve bağlamsal sıkıştırma zinciri tekniklerini uygulamanıza olanak tanıyan bir çözüm sunduk. Bu gelişmiş RAG tekniklerini SageMaker JumpStart ile birlikte sunulan Mixtral-8x7B Instruct ve BGE Large En modelleriyle test ettik. Ayrıca yerleştirmeler ve belge parçaları için kalıcı depolamayı kullanmayı ve kurumsal veri depolarıyla entegrasyonu da araştırdık.

Uyguladığımız teknikler, yalnızca LLM modellerinin harici bilgiye erişme ve bunları dahil etme şeklini iyileştirmekle kalmıyor, aynı zamanda çıktılarının kalitesini, alaka düzeyini ve verimliliğini de önemli ölçüde artırıyor. Bu gelişmiş RAG teknikleri, büyük metin korporasından alma işlemini dil oluşturma yetenekleriyle birleştirerek, LLM'lerin daha gerçekçi, tutarlı ve bağlama uygun yanıtlar üretmesine olanak tanıyarak çeşitli doğal dil işleme görevlerindeki performanslarını artırır.

SageMaker JumpStart bu çözümün merkezinde yer alıyor. SageMaker JumpStart ile, ML'ye başlama sürecini kolaylaştıran ve hızlı deneme ve dağıtıma olanak tanıyan geniş bir açık ve kapalı kaynak model yelpazesine erişim kazanırsınız. Bu çözümü dağıtmaya başlamak için not defterine gidin. GitHub repo.


Yazarlar Hakkında

Niithiyn Vijeaswaran AWS'de Çözüm Mimarıdır. Odaklandığı alan üretken yapay zeka ve AWS Yapay Zeka Hızlandırıcılarıdır. Bilgisayar Bilimleri ve Biyoenformatik alanında lisans derecesine sahiptir. Niithiyn, AWS müşterilerine birden fazla alanda olanak sağlamak ve üretken yapay zekayı benimsemelerini hızlandırmak için Generative AI GTM ekibiyle yakın işbirliği içinde çalışıyor. Dallas Mavericks'in sıkı bir hayranı ve spor ayakkabı koleksiyonu yapmaktan hoşlanıyor.

Sebastian Bustillo AWS'de Çözüm Mimarıdır. Üretken yapay zeka ve bilgi işlem hızlandırıcılara yönelik derin bir tutkuyla AI/ML teknolojilerine odaklanıyor. AWS'de müşterilerin üretken yapay zeka yoluyla iş değerinin ortaya çıkmasına yardımcı oluyor. İşte olmadığı zamanlarda mükemmel bir fincan özel kahve hazırlamaktan ve eşiyle birlikte dünyayı keşfetmekten hoşlanıyor.

Armando diaz AWS'de Çözüm Mimarıdır. Üretken AI, AI/ML ve Veri Analitiği konularına odaklanıyor. Armando, AWS'de müşterilerin son teknoloji üretken yapay zeka yeteneklerini sistemlerine entegre etmelerine yardımcı olarak yenilikçiliği ve rekabet avantajını teşvik ediyor. İşte olmadığı zamanlarda eşi ve ailesiyle vakit geçirmekten, yürüyüş yapmaktan ve dünyayı gezmekten hoşlanıyor.

Dr. Farooq Sabir AWS'de Kıdemli Yapay Zeka ve Makine Öğrenimi Uzmanı Çözüm Mimarıdır. Austin'deki Texas Üniversitesi'nden Elektrik Mühendisliği alanında doktora ve yüksek lisans derecelerine ve Georgia Institute of Technology'den Bilgisayar Bilimleri alanında yüksek lisans derecesine sahiptir. 15 yılı aşkın iş tecrübesine sahiptir ve ayrıca üniversite öğrencilerine ders vermeyi ve rehberlik etmeyi sever. AWS'de müşterilerin veri bilimi, makine öğrenimi, bilgisayar görüşü, yapay zeka, sayısal optimizasyon ve ilgili alanlarda iş sorunlarını formüle etmelerine ve çözmelerine yardımcı olur. Dallas, Teksas'ta yaşayan o ve ailesi seyahat etmeyi ve uzun yolculuklara çıkmayı seviyor.

Marco Punio üretken yapay zeka stratejisine, uygulamalı yapay zeka çözümlerine ve müşterilerin AWS'de hiper ölçeklendirme yapmasına yardımcı olmak için araştırmalar yürütmeye odaklanan bir Çözüm Mimarıdır. Marco, FinTech, Sağlık ve Yaşam Bilimleri, Hizmet Olarak Yazılım ve son olarak Telekomünikasyon sektörlerinde deneyime sahip bir dijital yerel bulut danışmanıdır. Makine öğrenimi, yapay zeka, birleşme ve satın alma konularına tutkuyla bağlı, nitelikli bir teknoloji uzmanıdır. Marco Seattle, WA'da yaşıyor ve boş zamanlarında yazmaktan, okumaktan, egzersiz yapmaktan ve uygulamalar geliştirmekten hoşlanıyor.

AJ Dhimine AWS'de Çözüm Mimarıdır. Üretken yapay zeka, sunucusuz bilgi işlem ve veri analitiği konularında uzmanlaşmıştır. Makine Öğrenimi Teknik Alan Topluluğunun aktif bir üyesi/akıl hocasıdır ve çeşitli AI/ML konularında çok sayıda bilimsel makale yayınlamıştır. AWSome üretken yapay zeka çözümleri geliştirmek için yeni kurulan şirketlerden kuruluşlara kadar geniş bir yelpazedeki müşterilerle birlikte çalışıyor. Kendisi özellikle gelişmiş veri analitiği için Büyük Dil Modellerinden yararlanma ve gerçek dünyadaki zorlukları ele alan pratik uygulamaları keşfetme konusunda tutkulu. AJ iş dışında seyahat etmekten hoşlanıyor ve şu anda dünyadaki her ülkeyi ziyaret etme hedefiyle 53 ülkede bulunuyor.

spot_img

En Son İstihbarat

spot_img