Generativní datová inteligence

Pokročilé vzory RAG na Amazon SageMaker | Webové služby Amazon

Datum:

Zákazníci ze všech odvětví – ať už jde o finanční služby, zdravotnictví a vědy o živé přírodě, cestování a pohostinství, média a zábava, telekomunikace, software jako služba (SaaS) a dokonce i poskytovatelé proprietárních modelů – používají velké jazykové modely (LLM) k vytvářet aplikace, jako jsou chatboti pro otázky a odpovědi (QnA), vyhledávače a znalostní báze. Tyto generativní AI aplikace se nepoužívají pouze k automatizaci stávajících obchodních procesů, ale mají také schopnost transformovat zkušenosti zákazníků používajících tyto aplikace. S pokroky prováděnými s LLM, jako je např Mixtral-8x7B Pokyn, derivát architektur, jako je směs odborníků (MŽP)Zákazníci neustále hledají způsoby, jak zlepšit výkon a přesnost generativních aplikací AI a zároveň jim umožnit efektivně využívat širší škálu uzavřených a otevřených modelů.

Ke zlepšení přesnosti a výkonu výstupu LLM se obvykle používá řada technik, jako je jemné doladění pomocí parametricky efektivní jemné doladění (PEFT), posílení učení z lidské zpětné vazby (RLHF)a vystupování znalostní destilace. Při vytváření generativních aplikací umělé inteligence však můžete použít alternativní řešení, které umožňuje dynamické začlenění externích znalostí a umožňuje vám řídit informace používané pro generování bez nutnosti dolaďovat váš stávající základní model. Zde přichází na řadu Retrieval Augmented Generation (RAG), konkrétně pro generativní aplikace umělé inteligence na rozdíl od dražších a robustnějších alternativ jemného ladění, o kterých jsme diskutovali. Pokud implementujete složité aplikace RAG do svých každodenních úkolů, můžete se svými systémy RAG narazit na běžné problémy, jako je nepřesné vyhledávání, zvětšující se velikost a složitost dokumentů a přetékání kontextu, což může významně ovlivnit kvalitu a spolehlivost generovaných odpovědí. .

Tento příspěvek pojednává o vzorech RAG pro zlepšení přesnosti odezvy pomocí LangChain a nástrojů, jako je rodičovský dokument, kromě technik, jako je kontextová komprese, aby vývojáři mohli zlepšit stávající generativní aplikace AI.

Přehled řešení

V tomto příspěvku demonstrujeme použití generování textu Mixtral-8x7B Instruct v kombinaci s modelem vkládání BGE Large En k efektivnímu sestavení systému RAG QnA na notebooku Amazon SageMaker pomocí nadřazeného nástroje pro získávání dokumentů a techniky kontextové komprese. Následující diagram znázorňuje architekturu tohoto řešení.

Toto řešení můžete nasadit pomocí několika kliknutí Amazon SageMaker JumpStart, plně spravovaná platforma, která nabízí nejmodernější základní modely pro různé případy použití, jako je psaní obsahu, generování kódu, odpovídání na otázky, copywriting, sumarizace, klasifikace a vyhledávání informací. Poskytuje kolekci předtrénovaných modelů, které můžete rychle a snadno nasadit, což urychluje vývoj a nasazení aplikací strojového učení (ML). Jednou z klíčových součástí SageMaker JumpStart je Model Hub, který nabízí rozsáhlý katalog předtrénovaných modelů, jako je Mixtral-8x7B, pro různé úkoly.

Mixtral-8x7B používá architekturu MoE. Tato architektura umožňuje různým částem neuronové sítě specializovat se na různé úkoly a efektivně rozdělit pracovní zátěž mezi více odborníků. Tento přístup umožňuje efektivní školení a nasazení větších modelů ve srovnání s tradičními architekturami.

Jednou z hlavních výhod architektury MŽP je její škálovatelnost. Rozložením pracovní zátěže mezi více odborníků lze modely MoE trénovat na větších souborech dat a dosáhnout lepšího výkonu než tradiční modely stejné velikosti. Modely MŽP mohou být navíc během inference efektivnější, protože pro daný vstup je třeba aktivovat pouze podskupinu expertů.

Další informace o Mixtral-8x7B Instruct na AWS viz Mixtral-8x7B je nyní k dispozici v Amazon SageMaker JumpStart. Model Mixtral-8x7B je dostupný pod permisivní licencí Apache 2.0 pro použití bez omezení.

V tomto příspěvku diskutujeme o tom, jak můžete použít LangChain vytvářet efektivní a efektivnější aplikace RAG. LangChain je open source knihovna Pythonu navržená pro vytváření aplikací s LLM. Poskytuje modulární a flexibilní rámec pro kombinaci LLM s dalšími komponentami, jako jsou znalostní báze, vyhledávací systémy a další nástroje AI, za účelem vytváření výkonných a přizpůsobitelných aplikací.

Projdeme si budováním potrubí RAG na SageMaker s Mixtral-8x7B. K vytvoření efektivního systému QnA pomocí RAG na notebooku SageMaker používáme model generování textu Mixtral-8x7B Instruct s modelem vkládání BGE Large En. Instanci ml.t3.medium používáme k demonstraci nasazení LLM prostřednictvím SageMaker JumpStart, ke kterému lze přistupovat prostřednictvím koncového bodu API generovaného SageMakerem. Toto nastavení umožňuje průzkum, experimentování a optimalizaci pokročilých technik RAG s LangChain. Rovněž ilustrujeme integraci úložiště FAISS Embedding do pracovního postupu RAG a zdůrazňujeme jeho roli při ukládání a získávání vložení za účelem zvýšení výkonu systému.

Provádíme krátký průvodce notebookem SageMaker. Podrobnější pokyny a pokyny krok za krokem naleznete v části Pokročilé vzory RAG s Mixtral na úložišti SageMaker Jumpstart GitHub.

Potřeba pokročilých vzorů RAG

Pokročilé vzory RAG jsou nezbytné pro zlepšení současných schopností LLM při zpracování, porozumění a generování lidského textu. S rostoucí velikostí a složitostí dokumentů může reprezentace více aspektů dokumentu v jediném vložení vést ke ztrátě specifičnosti. Ačkoli je nezbytné zachytit obecnou podstatu dokumentu, je stejně důležité rozpoznat a reprezentovat různé dílčí kontexty uvnitř. To je problém, kterému často čelíte při práci s většími dokumenty. Dalším problémem s RAG je to, že při načítání si nejste vědomi konkrétních dotazů, které váš systém pro ukládání dokumentů bude řešit při příjmu. To by mohlo vést k tomu, že informace nejrelevantnější pro dotaz budou pohřbeny pod textem (přetečení kontextu). Chcete-li zmírnit selhání a vylepšit stávající architekturu RAG, můžete použít pokročilé vzory RAG (nadřazené získávání dokumentů a kontextová komprese), abyste snížili chyby při vyhledávání, zlepšili kvalitu odpovědí a umožnili komplexní zpracování otázek.

Pomocí technik diskutovaných v tomto příspěvku můžete řešit klíčové výzvy spojené s externím získáváním znalostí a integrací, což vaší aplikaci umožní poskytovat přesnější a kontextově uvědomělé odpovědi.

V následujících částech prozkoumáme jak nadřazené vyhledávání dokumentů a kontextová komprese vám může pomoci vypořádat se s některými problémy, o kterých jsme hovořili.

Rodičovský nástroj pro vyhledávání dokumentů

V předchozí části jsme zdůraznili problémy, se kterými se aplikace RAG setkávají při práci s rozsáhlými dokumenty. Chcete-li tyto výzvy řešit, nadřazené vyhledávání dokumentů kategorizovat a označovat příchozí dokumenty jako rodičovské dokumenty. Tyto dokumenty jsou uznávány pro svou komplexní povahu, ale nejsou přímo používány ve své původní podobě pro vkládání. Namísto komprimace celého dokumentu do jednoho vložení, načítání nadřazených dokumentů tyto nadřazené dokumenty rozeberou do dětské dokumenty. Každý podřízený dokument zachycuje odlišné aspekty nebo témata z širšího nadřazeného dokumentu. Po identifikaci těchto podřízených segmentů jsou každému přiřazena individuální vložení zachycující jejich specifickou tematickou podstatu (viz následující schéma). Během načítání je vyvolán nadřazený dokument. Tato technika poskytuje cílené, ale široké možnosti vyhledávání a poskytuje LLM širší perspektivu. Nadřazené nástroje pro získávání dokumentů poskytují LLM dvojí výhodu: specifičnost vkládání podřízených dokumentů pro přesné a relevantní vyhledávání informací ve spojení s vyvoláním nadřazených dokumentů pro generování odpovědí, což obohacuje výstupy LLM o vrstvený a důkladný kontext.

Kontextová komprese

Chcete-li vyřešit problém přetečení kontextu, o kterém jsme hovořili dříve, můžete použít kontextová komprese komprimovat a filtrovat načtené dokumenty v souladu s kontextem dotazu, takže jsou uchovávány a zpracovávány pouze relevantní informace. Toho je dosaženo kombinací základního retrieveru pro prvotní vyzvednutí dokumentů a kompresoru dokumentů pro upřesnění těchto dokumentů zmenšením jejich obsahu nebo jejich úplným vyloučením na základě relevance, jak je znázorněno na následujícím diagramu. Tento zjednodušený přístup, usnadněný kontextovým kompresním retrieverem, výrazně zvyšuje efektivitu aplikací RAG tím, že poskytuje metodu pro extrakci a využití pouze toho, co je nezbytné z množství informací. Řeší problém přetížení informacemi a irelevantního zpracování dat přímo, což vede ke zlepšení kvality odezvy, nákladově efektivnějším operacím LLM a plynulejšímu celkovému procesu vyhledávání. V podstatě se jedná o filtr, který přizpůsobuje informace danému dotazu, což z něj činí velmi potřebný nástroj pro vývojáře, kteří chtějí optimalizovat své RAG aplikace pro lepší výkon a spokojenost uživatelů.

Předpoklady

Pokud jste v SageMakeru nováčkem, podívejte se na Průvodce vývojem Amazon SageMaker.

Než začnete s řešením, vytvořit účet AWS. Když si vytvoříte účet AWS, získáte identitu jednotného přihlášení (SSO), která má úplný přístup ke všem službám a prostředkům AWS v účtu. Tato identita se nazývá účet AWS uživatel root.

Přihlášení do Konzola pro správu AWS pomocí e-mailové adresy a hesla, které jste použili k vytvoření účtu, získáte úplný přístup ke všem zdrojům AWS ve vašem účtu. Důrazně doporučujeme nepoužívat uživatele root pro každodenní úkoly, dokonce ani ty administrativní.

Místo toho dodržujte osvědčené bezpečnostní postupy in Správa identity a přístupu AWS (IAM) a vytvořit administrativního uživatele a skupinu. Poté bezpečně uzamkněte přihlašovací údaje uživatele root a použijte je k provádění pouze několika úloh správy účtů a služeb.

Model Mixtral-8x7b vyžaduje instanci ml.g5.48xlarge. SageMaker JumpStart poskytuje zjednodušený způsob přístupu a nasazení více než 100 různých modelů open source a základů třetích stran. V následujících situacích spusťte koncový bod pro hostování Mixtral-8x7B ze SageMaker JumpStart, možná budete muset požádat o zvýšení kvóty služby, abyste získali přístup k instanci ml.g5.48xlarge pro použití koncového bodu. Můžeš zvýšení kvóty služby přes konzoli, Rozhraní příkazového řádku AWS (AWS CLI) nebo API, které umožní přístup k těmto dalším zdrojům.

Nastavte instanci notebooku SageMaker a nainstalujte závislosti

Chcete-li začít, vytvořte instanci notebooku SageMaker a nainstalujte požadované závislosti. Odkazovat na GitHub repo abyste zajistili úspěšné nastavení. Po nastavení instance notebooku můžete nasadit model.

Notebook můžete také spustit lokálně ve vašem preferovaném integrovaném vývojovém prostředí (IDE). Ujistěte se, že máte nainstalovanou laboratoř notebooků Jupyter.

Nasadit model

Nasaďte model Mixtral-8X7B Instruct LLM na SageMaker JumpStart:

# 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()

Nasaďte model vkládání BGE Large En na SageMaker JumpStart:

# 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()

Nastavte LangChain

Po importu všech potřebných knihoven a nasazení modelu Mixtral-8x7B a modelu embeddingů BGE Large En můžete nyní nastavit LangChain. Pokyny krok za krokem naleznete v části GitHub repo.

Příprava dat

V tomto příspěvku používáme několik let dopisů Amazonu akcionářům jako textový korpus k provádění QnA. Podrobnější kroky k přípravě dat naleznete v části GitHub repo.

Odpověď na otázku

Jakmile jsou data připravena, můžete použít wrapper poskytovaný LangChainem, který obtéká vektorové úložiště a přebírá vstup pro LLM. Tento obal provádí následující kroky:

  1. Vezměte vstupní otázku.
  2. Vytvořte vložení otázky.
  3. Získejte příslušné dokumenty.
  4. Zahrňte dokumenty a otázku do výzvy.
  5. Vyvolejte model s výzvou a vygenerujte odpověď čitelným způsobem.

Nyní, když je vektorový obchod na místě, můžete začít klást otázky:

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.

Běžný retrívrský řetěz

V předchozím scénáři jsme prozkoumali rychlý a přímočarý způsob, jak získat kontextově uvědomělou odpověď na vaši otázku. Nyní se podíváme na přizpůsobitelnější možnost s pomocí RetrievalQA, kde můžete upravit, jak mají být načtené dokumenty přidány do výzvy pomocí parametru chain_type. Chcete-li také řídit, kolik relevantních dokumentů by se mělo načíst, můžete změnit parametr k v následujícím kódu, abyste viděli různé výstupy. V mnoha scénářích možná budete chtít vědět, které zdrojové dokumenty LLM použila k vygenerování odpovědi. Tyto dokumenty můžete získat ve výstupu pomocí return_source_documents, která vrátí dokumenty, které jsou přidány do kontextu výzvy LLM. RetrievalQA vám také umožňuje poskytnout vlastní šablonu výzvy, která může být specifická pro daný model.

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}
)

Položme si otázku:

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.

Řetězec pro vyhledávání nadřazených dokumentů

Podívejme se na pokročilejší možnost RAG s pomocí ParentDocumentRetriever. Při práci s načítáním dokumentů se můžete setkat s kompromisem mezi ukládáním malých částí dokumentu pro přesné vkládání a většími dokumenty pro zachování většího kontextu. Nadřazený nástroj pro vyhledávání dokumentů nastolí tuto rovnováhu rozdělením a uložením malých částí dat.

Používáme a parent_splitter k rozdělení původních dokumentů na větší části nazývané rodičovské dokumenty a a child_splitter pro vytvoření menších podřízených dokumentů z původních dokumentů:

# 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,
)

Podřízené dokumenty jsou pak indexovány ve vektorovém úložišti pomocí vložení. To umožňuje efektivní vyhledávání příslušných podřízených dokumentů na základě podobnosti. Pro načtení relevantních informací si nadřazený nástroj pro získávání dokumentů nejprve vyzvedne podřízené dokumenty z vektorového úložiště. Poté vyhledá rodičovská ID těchto podřízených dokumentů a vrátí odpovídající větší nadřazené dokumenty.

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

Položme si otázku:

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.

Kontextový kompresní řetězec

Podívejme se na další pokročilou možnost RAG s názvem kontextová komprese. Jedním z problémů při načítání je, že obvykle neznáme konkrétní dotazy, kterým bude váš systém ukládání dokumentů čelit, když do systému přijímáte data. To znamená, že informace nejrelevantnější pro dotaz mohou být pohřbeny v dokumentu s velkým množstvím irelevantního textu. Předání tohoto úplného dokumentu prostřednictvím vaší aplikace může vést k dražším LLM hovorům a horším odpovědím.

Kontextový kompresní retriever řeší problém získávání relevantních informací ze systému pro ukládání dokumentů, kde mohou být příslušná data pohřbena v dokumentech obsahujících velké množství textu. Komprimací a filtrováním načtených dokumentů na základě daného kontextu dotazu jsou vráceny pouze ty nejrelevantnější informace.

Chcete-li použít kontextový kompresní retriever, budete potřebovat:

  • Základní retrívr – Toto je počáteční načítání, které na základě dotazu načítá dokumenty z úložného systému
  • Kompresor dokumentů – Tato komponenta převezme původně načtené dokumenty a zkrátí je snížením obsahu jednotlivých dokumentů nebo úplným vypuštěním irelevantních dokumentů pomocí kontextu dotazu k určení relevance.

Přidání kontextové komprese pomocí extraktoru řetězce LLM

Nejprve omotejte základního retrívra a ContextualCompressionRetriever. Přidáte LLMChainExtractor, který bude iterovat přes původně vrácené dokumenty a extrahovat z každého pouze obsah, který je relevantní pro dotaz.

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?"
)

Inicializujte řetěz pomocí ContextualCompressionRetriever s LLMChainExtractor a předejte výzvu přes chain_type_kwargs argument.

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

Položme si otázku:

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.

Filtrujte dokumenty pomocí řetězového filtru LLM

Projekt Filtr LLMChainFilter je o něco jednodušší, ale robustnější kompresor, který pomocí řetězce LLM rozhoduje, které z původně načtených dokumentů odfiltrovat a které vrátit, aniž by bylo nutné manipulovat s obsahem dokumentu:

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)

Inicializujte řetěz pomocí ContextualCompressionRetriever s LLMChainFilter a předejte výzvu přes chain_type_kwargs argument.

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

Položme si otázku:

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.

Porovnejte výsledky

Následující tabulka porovnává výsledky z různých dotazů na základě techniky.

Technika Dotaz 1 Dotaz 2 Porovnání
Jak se AWS vyvinulo? Proč je Amazon úspěšný?
Běžný výstup řetězu retrívra AWS (Amazon Web Services) se vyvinul z původně nerentabilní investice do podnikání s ročním výnosem 85 miliard USD se silnou ziskovostí, které nabízí širokou škálu služeb a funkcí a stalo se významnou součástí portfolia Amazonu. Navzdory skepsi a krátkodobým protivětrům společnost AWS nadále inovovala, přitahovala nové zákazníky a migrovala aktivní zákazníky, přičemž nabízela výhody, jako je agilita, inovace, nákladová efektivita a bezpečnost. AWS také rozšířila své dlouhodobé investice, včetně vývoje čipů, aby svým zákazníkům poskytla nové možnosti a změnila to, co je možné. Amazon je úspěšný díky neustálým inovacím a expanzi do nových oblastí, jako jsou služby technologické infrastruktury, digitální čtecí zařízení, hlasově ovládaní osobní asistenti a nové obchodní modely, jako je tržiště třetích stran. K jejímu úspěchu přispívá také její schopnost rychle škálovat operace, jak je vidět na rychlém rozšiřování jejích distribučních a přepravních sítí. Zaměření Amazonu na optimalizaci a zvýšení efektivity ve svých procesech navíc vedlo ke zlepšení produktivity a snížení nákladů. Příklad Amazon Business zdůrazňuje schopnost společnosti využít své silné stránky elektronického obchodu a logistiky v různých sektorech. Na základě odpovědí z běžného retrieverského řetězce jsme si všimli, že ačkoli poskytuje dlouhé odpovědi, trpí přetečením kontextu a nezmiňuje žádné významné podrobnosti z korpusu, pokud jde o odpověď na poskytnutý dotaz. Běžný vyhledávací řetězec není schopen zachytit nuance s hloubkovým nebo kontextovým vhledem, potenciálně postrádající kritické aspekty dokumentu.
Výstup rodičovského vyhledávání dokumentů Služba AWS (Amazon Web Services) začala v roce 2 prvním spuštěním služby Elastic Compute Cloud (EC2006) se slabými funkcemi, které poskytovalo pouze jednu velikost instance, v jednom datovém centru, v jednom regionu světa, pouze s instancemi operačního systému Linux. a bez mnoha klíčových funkcí, jako je monitorování, vyvažování zátěže, automatické škálování nebo trvalé úložiště. Úspěch AWS jim však umožnil rychle opakovat a přidat chybějící schopnosti, nakonec se rozšířit o různé varianty, velikosti a optimalizace výpočetní techniky, úložiště a sítí a také vyvíjet vlastní čipy (Graviton), aby dále posunuly cenu a výkon. . Iterativní inovační proces společnosti AWS vyžadoval značné investice do finančních a lidských zdrojů po dobu 20 let, často s dostatečným předstihem před tím, než se vyplatí, aby byly splněny potřeby zákazníků a zlepšily se dlouhodobé zákaznické zkušenosti, loajalita a výnosy pro akcionáře. Amazon je úspěšný díky své schopnosti neustále inovovat, přizpůsobovat se měnícím se podmínkám na trhu a uspokojovat potřeby zákazníků v různých segmentech trhu. To je evidentní v úspěchu Amazon Business, který se rozrostl na zhruba 35 miliard USD v ročních hrubých tržbách tím, že poskytuje výběr, hodnotu a pohodlí firemním zákazníkům. Investice Amazonu do elektronického obchodu a logistických schopností také umožnily vytvoření služeb, jako je Buy with Prime, které obchodníkům s webovými stránkami přímo pro spotřebitele pomáhají řídit konverzi ze zobrazení na nákupy. Nadřazený nástroj pro vyhledávání dokumentů se ponoří hlouběji do specifik růstové strategie AWS, včetně opakovaného procesu přidávání nových funkcí na základě zpětné vazby od zákazníků a podrobné cesty od počátečního uvedení na trh s nedostatečnými funkcemi k dominantní pozici na trhu, přičemž poskytuje odpověď bohatou na kontext. . Odpovědi pokrývají širokou škálu aspektů, od technických inovací a tržní strategie po organizační efektivitu a zaměření na zákazníka, a poskytují holistický pohled na faktory přispívající k úspěchu spolu s příklady. To lze přičíst cíleným, avšak širokým možnostem vyhledávání nadřazeného nástroje pro vyhledávání dokumentů.
LLM Chain Extractor: Kontextový kompresní výstup AWS se vyvinul tak, že začal jako malý projekt v Amazonu, který vyžadoval značné kapitálové investice a čelil skepticismu zevnitř i vně společnosti. Společnost AWS však měla náskok před potenciálními konkurenty a věřila v hodnotu, kterou může přinést zákazníkům a Amazonu. Společnost AWS se dlouhodobě zavázala pokračovat v investicích, což vedlo k více než 3,300 2022 novým funkcím a službám spuštěným v roce 85. AWS změnila způsob, jakým zákazníci spravují svou technologickou infrastrukturu, a stala se z ní společnost s ročním výnosem 2 miliard USD se silnou ziskovostí. AWS také neustále vylepšovala své nabídky, jako je vylepšení ECXNUMX o další funkce a služby po prvním spuštění. Na základě poskytnutého kontextu lze úspěch Amazonu připsat jeho strategické expanzi z platformy pro prodej knih na globální trh s živým ekosystémem prodejců třetích stran, včasným investicím do AWS, inovacím při zavádění Kindle a Alexa a značnému růstu. v ročních tržbách od roku 2019 do roku 2022. Tento růst vedl k rozšíření záběru centra plnění, vytvoření dopravní sítě na poslední míli a vybudování nové sítě třídicích center, která byla optimalizována pro produktivitu a snížení nákladů. Vytahovač řetězu LLM udržuje rovnováhu mezi komplexním pokrytím klíčových bodů a vyhýbáním se zbytečné hloubce. Dynamicky se přizpůsobuje kontextu dotazu, takže výstup je přímo relevantní a komplexní.
LLM Chain Filter: Kontextový kompresní výstup AWS (Amazon Web Services) se vyvinuly tak, že byly původně uvedeny na trh s chudými funkcemi, ale rychle se opakovaly na základě zpětné vazby od zákazníků, aby byly přidány potřebné funkce. Tento přístup umožnil AWS spustit EC2 v roce 2006 s omezenými funkcemi a poté průběžně přidávat nové funkce, jako jsou další velikosti instancí, datová centra, oblasti, možnosti operačního systému, monitorovací nástroje, vyvažování zátěže, automatické škálování a trvalé úložiště. Postupem času se AWS proměnilo ze služby s nedostatečnými funkcemi na obchod s mnoha miliardami dolarů tím, že se zaměřila na potřeby zákazníků, agilitu, inovace, nákladovou efektivitu a bezpečnost. AWS má nyní roční výnos 85 miliard USD a každý rok nabízí více než 3,300 XNUMX nových funkcí a služeb, které uspokojí širokou škálu zákazníků od začínajících podniků až po nadnárodní společnosti a organizace veřejného sektoru. Amazon je úspěšný díky svým inovativním obchodním modelům, neustálému technologickému pokroku a strategickým organizačním změnám. Společnost neustále narušuje tradiční průmyslová odvětví zaváděním nových nápadů, jako je platforma elektronického obchodování pro různé produkty a služby, tržiště třetích stran, služby cloudové infrastruktury (AWS), elektronická čtečka Kindle a hlasová osobní asistentka Alexa. . Amazon navíc provedl strukturální změny ke zlepšení své efektivity, jako je reorganizace své americké distribuční sítě, aby se snížily náklady a dodací lhůty, což dále přispívá k jeho úspěchu. Podobně jako LLM řetězový extraktor zajišťuje LLM řetězový filtr, že ačkoli jsou pokryty klíčové body, výstup je efektivní pro zákazníky, kteří hledají stručné a kontextové odpovědi.

Po porovnání těchto různých technik můžeme vidět, že v kontextech, jako je podrobný popis přechodu AWS z jednoduché služby na komplexní entitu v hodnotě mnoha miliard dolarů nebo vysvětlení strategických úspěchů Amazonu, postrádá běžný retrívrský řetězec přesnost, kterou nabízí sofistikovanější techniky, vede k méně cíleným informacím. Ačkoli je mezi diskutovanými pokročilými technikami viditelných jen velmi málo rozdílů, jsou mnohem informativnější než běžné řetězy retrívrů.

Pro zákazníky v odvětvích, jako je zdravotnictví, telekomunikace a finanční služby, kteří chtějí implementovat RAG ve svých aplikacích, jsou omezení běžného retrieverského řetězce při poskytování přesnosti, zamezení redundanci a efektivní kompresi informací méně vhodná pro splnění těchto potřeb ve srovnání s k pokročilejším technikám získávání nadřazených dokumentů a kontextové kompresi. Tyto techniky jsou schopny destilovat obrovské množství informací do koncentrovaných, působivých poznatků, které potřebujete, a zároveň pomáhají zlepšit poměr ceny a výkonu.

Uklidit

Po dokončení práce se zápisníkem odstraňte prostředky, které jste vytvořili, abyste se vyhnuli narůstání poplatků za používané prostředky:

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

Proč investovat do čističky vzduchu?

V tomto příspěvku jsme představili řešení, které vám umožňuje implementovat techniky získávání nadřazených dokumentů a kontextového kompresního řetězce pro zvýšení schopnosti LLM zpracovávat a generovat informace. Vyzkoušeli jsme tyto pokročilé techniky RAG s modely Mixtral-8x7B Instruct a BGE Large En dostupnými se SageMaker JumpStart. Prozkoumali jsme také použití trvalého úložiště pro vkládání a bloky dokumentů a integraci s podnikovými datovými úložišti.

Techniky, které jsme provedli, nejen zpřesňují způsob, jakým modely LLM přistupují k externím znalostem a začleňují je, ale také výrazně zlepšují kvalitu, relevanci a efektivitu jejich výstupů. Kombinací vyhledávání z velkých textových korpusů s možnostmi generování jazyka umožňují tyto pokročilé techniky RAG LLM produkovat věcnější, koherentnější a kontextu odpovídající odpovědi, čímž se zvyšuje jejich výkon v rámci různých úloh zpracování přirozeného jazyka.

SageMaker JumpStart je středem tohoto řešení. Se SageMaker JumpStart získáte přístup k rozsáhlému sortimentu modelů s otevřeným a uzavřeným zdrojovým kódem, zefektivníte proces začátků s ML a umožníte rychlé experimentování a nasazení. Chcete-li začít nasazovat toto řešení, přejděte do notebooku v GitHub repo.


Informace o autorech

Niithiyn Vijeaswaran je Solutions Architect ve společnosti AWS. Zaměřuje se na generativní AI a AWS AI akcelerátory. Je držitelem bakalářského titulu v oboru informatika a bioinformatika. Niithiyn úzce spolupracuje s týmem Generative AI GTM, aby umožnil zákazníkům AWS na více frontách a urychlil jejich přijetí generativní AI. Je vášnivým fanouškem Dallas Mavericks a rád sbírá tenisky.

Sebastian Bustillo je Solutions Architect ve společnosti AWS. Zaměřuje se na technologie AI/ML s hlubokou vášní pro generativní AI a výpočetní akcelerátory. V AWS pomáhá zákazníkům odemknout obchodní hodnotu prostřednictvím generativní umělé inteligence. Když není v práci, rád si uvaří dokonalý šálek speciální kávy a se svou ženou poznává svět.

Armando Diaz je Solutions Architect ve společnosti AWS. Zaměřuje se na generativní AI, AI/ML a analýzu dat. Armando ve společnosti AWS pomáhá zákazníkům integrovat do jejich systémů špičkové generativní schopnosti umělé inteligence, čímž podporuje inovace a konkurenční výhodu. Když není v práci, rád tráví čas se svou ženou a rodinou, turistikou a cestováním po světě.

Dr. Farooq Sabir je Senior Artificial Intelligence and Machine Learning Specialist Solution Architect ve společnosti AWS. Je držitelem titulu PhD a MS v oboru elektrotechniky na Texaské univerzitě v Austinu a titulu MS v oboru informatiky na Georgia Institute of Technology. Má přes 15 let pracovních zkušeností a také rád učí a mentoruje vysokoškoláky. V AWS pomáhá zákazníkům formulovat a řešit jejich obchodní problémy v oblasti datové vědy, strojového učení, počítačového vidění, umělé inteligence, numerické optimalizace a souvisejících domén. Se svou rodinou sídlí v Dallasu v Texasu a rádi cestuje a vyráží na dlouhé výlety.

Marco Punio je architekt řešení zaměřený na generativní strategii umělé inteligence, aplikovaná řešení umělé inteligence a provádějící výzkum s cílem pomoci zákazníkům hyperškálovat na AWS. Marco je digitální nativní cloudový poradce se zkušenostmi v oblasti FinTech, Healthcare & Life Sciences, Software-as-a-service a v poslední době také v telekomunikačním průmyslu. Je kvalifikovaným technologem s vášní pro strojové učení, umělou inteligenci a fúze a akvizice. Marco sídlí v Seattlu ve státě WA a ve svém volném čase rád píše, čte, cvičí a vytváří aplikace.

AJ Dhimine je Solutions Architect ve společnosti AWS. Specializuje se na generativní umělou inteligenci, bezserverové výpočty a analýzu dat. Je aktivním členem/mentorem v Machine Learning Technical Field Community a publikoval několik vědeckých prací na různá témata AI/ML. Pracuje se zákazníky, od start-upů až po podniky, na vývoji generativních řešení AI. Obzvláště nadšeně využívá velké jazykové modely pro pokročilou analýzu dat a zkoumání praktických aplikací, které řeší výzvy reálného světa. Mimo práci AJ rád cestuje a v současné době je v 53 zemích s cílem navštívit každou zemi na světě.

spot_img

Nejnovější inteligence

spot_img