Generativ dataintelligens

Avancerede RAG-mønstre på Amazon SageMaker | Amazon Web Services

Dato:

I dag bruger kunder fra alle brancher – hvad enten det er finansielle tjenesteydelser, sundheds- og biovidenskab, rejser og gæstfrihed, medier og underholdning, telekommunikation, software as a service (SaaS) og endda proprietære modeludbydere – store sprogmodeller (LLM'er) til at bygge applikationer som spørgsmål og svar (QnA) chatbots, søgemaskiner og vidensbaser. Disse generativ AI applikationer bruges ikke kun til at automatisere eksisterende forretningsprocesser, men har også evnen til at transformere oplevelsen for kunder, der bruger disse applikationer. Med de fremskridt, der sker med LLM'er som Mixtral-8x7B Instruktion, afledt af arkitekturer som f.eks blanding af eksperter (MoE), søger kunder løbende efter måder at forbedre ydeevnen og nøjagtigheden af ​​generative AI-applikationer, mens de giver dem mulighed for effektivt at bruge en bredere række af lukkede og open source-modeller.

En række teknikker bruges typisk til at forbedre nøjagtigheden og ydeevnen af ​​en LLM's output, såsom finjustering med parameter effektiv finjustering (PEFT), forstærkende læring fra menneskelig feedback (RLHF), og optræde videndestillation. Men når du bygger generative AI-applikationer, kan du bruge en alternativ løsning, der giver mulighed for dynamisk inkorporering af ekstern viden og giver dig mulighed for at kontrollere den information, der bruges til generering, uden at du behøver at finjustere din eksisterende grundlæggende model. Det er her Retrieval Augmented Generation (RAG) kommer ind, specifikt til generative AI-applikationer i modsætning til de dyrere og robuste finjusteringsalternativer, vi har diskuteret. Hvis du implementerer komplekse RAG-applikationer i dine daglige opgaver, kan du støde på almindelige udfordringer med dine RAG-systemer, såsom unøjagtig hentning, stigende størrelse og kompleksitet af dokumenter og overløb af kontekst, hvilket kan påvirke kvaliteten og pålideligheden af ​​genererede svar betydeligt. .

Dette indlæg diskuterer RAG-mønstre for at forbedre responsnøjagtigheden ved hjælp af LangChain og værktøjer såsom den overordnede dokumenthentning ud over teknikker som kontekstuel komprimering for at gøre det muligt for udviklere at forbedre eksisterende generative AI-applikationer.

Løsningsoversigt

I dette indlæg demonstrerer vi brugen af ​​Mixtral-8x7B Instruct-tekstgenerering kombineret med BGE Large En-indlejringsmodellen til effektivt at konstruere et RAG QnA-system på en Amazon SageMaker-notebook ved hjælp af det overordnede dokumenthentningsværktøj og kontekstuel komprimeringsteknik. Følgende diagram illustrerer arkitekturen af ​​denne løsning.

Du kan implementere denne løsning med blot et par klik vha Amazon SageMaker JumpStart, en fuldt administreret platform, der tilbyder state-of-the-art fundamentmodeller til forskellige brugssager, såsom indholdsskrivning, kodegenerering, besvarelse af spørgsmål, tekstforfatning, opsummering, klassificering og informationssøgning. Det giver en samling af præ-trænede modeller, som du kan implementere hurtigt og med lethed, og accelererer udviklingen og implementeringen af ​​maskinlæringsapplikationer (ML). En af nøglekomponenterne i SageMaker JumpStart er Model Hub, som tilbyder et stort katalog af fortrænede modeller, såsom Mixtral-8x7B, til en række forskellige opgaver.

Mixtral-8x7B bruger en MoE-arkitektur. Denne arkitektur gør det muligt for forskellige dele af et neuralt netværk at specialisere sig i forskellige opgaver, hvilket effektivt deler arbejdsbyrden mellem flere eksperter. Denne tilgang muliggør effektiv træning og implementering af større modeller sammenlignet med traditionelle arkitekturer.

En af hovedfordelene ved MoE-arkitekturen er dens skalerbarhed. Ved at fordele arbejdsbyrden på tværs af flere eksperter kan MoE-modeller trænes på større datasæt og opnå bedre ydeevne end traditionelle modeller af samme størrelse. Derudover kan MoE-modeller være mere effektive under inferens, fordi kun en delmængde af eksperter skal aktiveres for et givet input.

For mere information om Mixtral-8x7B Instruct på AWS, se Mixtral-8x7B er nu tilgængelig i Amazon SageMaker JumpStart. Mixtral-8x7B-modellen er gjort tilgængelig under den tilladelige Apache 2.0-licens til brug uden begrænsninger.

I dette indlæg diskuterer vi, hvordan du kan bruge Langkæde at skabe effektive og mere effektive RAG-applikationer. LangChain er et open source Python-bibliotek designet til at bygge applikationer med LLM'er. Det giver en modulær og fleksibel ramme til at kombinere LLM'er med andre komponenter, såsom vidensbaser, genfindingssystemer og andre AI-værktøjer, for at skabe kraftfulde og tilpasselige applikationer.

Vi går gennem konstruktionen af ​​en RAG-rørledning på SageMaker med Mixtral-8x7B. Vi bruger Mixtral-8x7B Instruct-tekstgenereringsmodellen med BGE Large En-indlejringsmodellen til at skabe et effektivt QnA-system ved hjælp af RAG på en SageMaker-notebook. Vi bruger en ml.t3.medium-instans til at demonstrere implementering af LLM'er via SageMaker JumpStart, som kan tilgås via et SageMaker-genereret API-slutpunkt. Denne opsætning giver mulighed for udforskning, eksperimentering og optimering af avancerede RAG-teknikker med LangChain. Vi illustrerer også integrationen af ​​FAISS Embedding-butikken i RAG-arbejdsgangen, og fremhæver dens rolle i lagring og genfinding af indlejringer for at forbedre systemets ydeevne.

Vi udfører en kort gennemgang af SageMaker notesbogen. For mere detaljerede og trin-for-trin instruktioner henvises til Avancerede RAG-mønstre med Mixtral på SageMaker Jumpstart GitHub-repo.

Behovet for avancerede RAG-mønstre

Avancerede RAG-mønstre er essentielle for at forbedre LLM'ers nuværende muligheder for at behandle, forstå og generere menneskelignende tekst. Efterhånden som størrelsen og kompleksiteten af ​​dokumenter øges, kan repræsentation af flere facetter af dokumentet i en enkelt indlejring føre til tab af specificitet. Selvom det er vigtigt at fange den generelle essens af et dokument, er det lige så vigtigt at genkende og repræsentere de forskellige underkontekster indeni. Det er en udfordring, man ofte står over for, når man arbejder med større dokumenter. En anden udfordring med RAG er, at du med genfinding ikke er opmærksom på de specifikke forespørgsler, som dit dokumentlagringssystem vil håndtere ved indtagelse. Dette kan føre til, at oplysninger, der er mest relevante for en forespørgsel, bliver begravet under tekst (kontekstoverløb). For at afbøde fejl og forbedre den eksisterende RAG-arkitektur kan du bruge avancerede RAG-mønstre (overordnet dokumenthentning og kontekstuel komprimering) til at reducere genfindingsfejl, forbedre svarkvaliteten og muliggøre kompleks spørgsmålshåndtering.

Med de teknikker, der er diskuteret i dette indlæg, kan du adressere nøgleudfordringer forbundet med ekstern videnhentning og integration, hvilket gør din applikation i stand til at levere mere præcise og kontekstuelt bevidste svar.

I de følgende afsnit undersøger vi hvordan overordnede dokumenthentere , kontekstuel komprimering kan hjælpe dig med at håndtere nogle af de problemer, vi har diskuteret.

Overordnet dokument retriever

I det foregående afsnit fremhævede vi udfordringer, som RAG-ansøgninger støder på, når de håndterer omfattende dokumenter. For at løse disse udfordringer, overordnede dokumenthentere kategorisere og udpege indgående dokumenter som forældredokumenter. Disse dokumenter er anerkendt for deres omfattende karakter, men bruges ikke direkte i deres oprindelige form til indlejringer. I stedet for at komprimere et helt dokument til en enkelt indlejring, dissekerer overordnede dokumenthentere disse overordnede dokumenter til børns dokumenter. Hvert underordnede dokument fanger forskellige aspekter eller emner fra det bredere overordnede dokument. Efter identifikation af disse underordnede segmenter tildeles individuelle indlejringer til hver, der fanger deres specifikke tematiske essens (se følgende diagram). Under hentning påberåbes det overordnede dokument. Denne teknik giver målrettede, men vidtfavnende søgemuligheder, og giver LLM et bredere perspektiv. Overordnede dokumenthentere giver LLM'er en dobbelt fordel: specificiteten af ​​underordnede dokumentindlejringer til præcis og relevant informationshentning, kombineret med påkaldelsen af ​​overordnede dokumenter til generering af svar, hvilket beriger LLM's output med en lagdelt og grundig kontekst.

Kontekstuel komprimering

For at løse problemet med kontekstoverløb diskuteret tidligere, kan du bruge kontekstuel komprimering at komprimere og filtrere de hentede dokumenter i overensstemmelse med forespørgslens kontekst, så kun relevant information opbevares og behandles. Dette opnås gennem en kombination af en base retriever til indledende dokumenthentning og en dokumentkompressor til at forfine disse dokumenter ved at nedskære deres indhold eller helt udelukke dem baseret på relevans, som illustreret i følgende diagram. Denne strømlinede tilgang, lettet af den kontekstuelle komprimeringsretriever, forbedrer RAG-applikationseffektiviteten i høj grad ved at tilbyde en metode til kun at udtrække og bruge det, der er væsentligt fra en masse information. Den tackler spørgsmålet om overbelastning af information og irrelevant databehandling direkte, hvilket fører til forbedret svarkvalitet, mere omkostningseffektive LLM-operationer og en mere smidig overordnet genfindingsproces. Grundlæggende er det et filter, der skræddersyer oplysningerne til den aktuelle forespørgsel, hvilket gør det til et tiltrængt værktøj for udviklere, der sigter mod at optimere deres RAG-applikationer for bedre ydeevne og brugertilfredshed.

Forudsætninger

Hvis du er ny til SageMaker, skal du se Amazon SageMaker Udviklingsvejledning.

Inden du går i gang med løsningen, oprette en AWS-konto. Når du opretter en AWS-konto, får du en single sign-on-identitet (SSO), der har fuld adgang til alle AWS-tjenesterne og -ressourcerne på kontoen. Denne identitet kaldes AWS-kontoen root bruger.

Log ind på AWS Management Console ved at bruge den e-mailadresse og adgangskode, som du brugte til at oprette kontoen, får du fuld adgang til alle AWS-ressourcerne på din konto. Vi anbefaler kraftigt, at du ikke bruger root-brugeren til daglige opgaver, heller ikke de administrative.

I stedet skal du overholde bedste praksis for sikkerhed in AWS identitets- og adgangsstyring (IAM), og oprette en administrativ bruger og gruppe. Lås derefter rodbrugerlegitimationsoplysningerne sikkert væk, og brug dem til kun at udføre nogle få konto- og serviceadministrationsopgaver.

Mixtral-8x7b-modellen kræver en ml.g5.48xlarge instans. SageMaker JumpStart giver en forenklet måde at få adgang til og implementere over 100 forskellige open source- og tredjepartsfundamentmodeller. For at lancere et slutpunkt til at være vært for Mixtral-8x7B fra SageMaker JumpStart, skal du muligvis anmode om en forhøjelse af servicekvoten for at få adgang til en ml.g5.48xlarge-instans til brug af slutpunkt. Du kan anmode om servicekvoteforhøjelser gennem konsollen, AWS kommandolinjegrænseflade (AWS CLI) eller API for at give adgang til disse yderligere ressourcer.

Konfigurer en SageMaker notebook-instans og installer afhængigheder

For at komme i gang skal du oprette en SageMaker notebook-instans og installere de nødvendige afhængigheder. Der henvises til GitHub repo for at sikre en vellykket opsætning. Når du har konfigureret notebook-forekomsten, kan du implementere modellen.

Du kan også køre notebook'en lokalt på dit foretrukne integrerede udviklingsmiljø (IDE). Sørg for, at du har Jupyter notebook lab installeret.

Implementer modellen

Implementer Mixtral-8X7B Instruct LLM-modellen på 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()

Implementer BGE Large En-indlejringsmodellen på 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()

Opsæt LangChain

Efter at have importeret alle de nødvendige biblioteker og implementeret Mixtral-8x7B-modellen og BGE Large En-indlejringsmodellen, kan du nu konfigurere LangChain. For trin-for-trin instruktioner, se GitHub repo.

Forberedelse af data

I dette indlæg bruger vi flere år med Amazons breve til aktionærer som et tekstkorpus til at udføre QnA på. For mere detaljerede trin til forberedelse af dataene henvises til GitHub repo.

Besvarelse af spørgsmål

Når dataene er forberedt, kan du bruge indpakningen leveret af LangChain, som omslutter vektorlageret og tager input til LLM. Denne indpakning udfører følgende trin:

  1. Tag inputspørgsmålet.
  2. Opret en indlejring af spørgsmål.
  3. Hent relevante dokumenter.
  4. Inkorporer dokumenterne og spørgsmålet i en prompt.
  5. Påkald modellen med prompten og generer svaret på en læsbar måde.

Nu hvor vektorbutikken er på plads, kan du begynde at stille spørgsmål:

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.

Almindelig retrieverkæde

I det foregående scenarie undersøgte vi den hurtige og ligetil måde at få et kontekstbevidst svar på dit spørgsmål. Lad os nu se på en mere tilpasselig mulighed ved hjælp af RetrievalQA, hvor du kan tilpasse, hvordan de hentede dokumenter skal tilføjes til prompten ved hjælp af parameteren chain_type. For at kontrollere, hvor mange relevante dokumenter der skal hentes, kan du også ændre k-parameteren i følgende kode for at se forskellige output. I mange scenarier vil du måske gerne vide, hvilke kildedokumenter LLM brugte til at generere svaret. Du kan få disse dokumenter i outputtet vha return_source_documents, som returnerer de dokumenter, der er føjet til konteksten af ​​LLM-prompten. RetrievalQA giver dig også mulighed for at levere en brugerdefineret promptskabelon, der kan være specifik for modellen.

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

Lad os stille et spørgsmål:

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.

Overordnet dokument retriever kæde

Lad os se på en mere avanceret RAG-mulighed ved hjælp af ParentDocumentRetriever. Når du arbejder med dokumenthentning, kan du støde på en afvejning mellem lagring af små bidder af et dokument til nøjagtig indlejring og større dokumenter for at bevare mere kontekst. Den overordnede dokumenthenter opnår den balance ved at opdele og gemme små bidder af data.

Vi bruger en parent_splitter at opdele de originale dokumenter i større bidder kaldet overordnede dokumenter og en child_splitter for at oprette mindre underordnede dokumenter fra de originale dokumenter:

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

De underordnede dokumenter indekseres derefter i et vektorlager ved hjælp af indlejringer. Dette muliggør effektiv genfinding af relevante underordnede dokumenter baseret på lighed. For at hente relevant information henter den overordnede dokumenthenter først de underordnede dokumenter fra vektorlageret. Det slår derefter forældre-id'erne op for disse underordnede dokumenter og returnerer de tilsvarende større overordnede dokumenter.

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

Lad os stille et spørgsmål:

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.

Kontekstuel kompressionskæde

Lad os se på en anden avanceret RAG-mulighed kaldet kontekstuel komprimering. En udfordring med hentning er, at vi normalt ikke kender de specifikke forespørgsler, dit dokumentlagringssystem vil møde, når du indtager data i systemet. Det betyder, at de oplysninger, der er mest relevante for en forespørgsel, kan være begravet i et dokument med en masse irrelevant tekst. At sende det fulde dokument gennem din ansøgning kan føre til dyrere LLM-opkald og dårligere svar.

Den kontekstuelle komprimeringsretriever løser udfordringen med at hente relevant information fra et dokumentlagringssystem, hvor de relevante data kan være begravet i dokumenter, der indeholder en masse tekst. Ved at komprimere og filtrere de hentede dokumenter baseret på den givne forespørgselskontekst, returneres kun de mest relevante oplysninger.

For at bruge den kontekstuelle komprimeringsretriever skal du bruge:

  • En base retriever – Dette er den indledende retriever, der henter dokumenter fra lagersystemet baseret på forespørgslen
  • En dokumentkompressor – Denne komponent tager de oprindeligt hentede dokumenter og forkorter dem ved at reducere indholdet af individuelle dokumenter eller helt slette irrelevante dokumenter ved at bruge forespørgselskonteksten til at bestemme relevans

Tilføjelse af kontekstuel komprimering med en LLM-kædeudtrækker

Indpak først din base retriever med en ContextualCompressionRetriever. Du tilføjer en LLMChainExtractor, som vil iterere over de oprindeligt returnerede dokumenter og kun udtrække det indhold, der er relevant for forespørgslen, fra hver af dem.

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

Initialiser kæden ved hjælp af ContextualCompressionRetriever med en LLMChainExtractor og send prompten ind via 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}
)

Lad os stille et spørgsmål:

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.

Filtrer dokumenter med et LLM-kædefilter

LLMChainFilter er en lidt enklere, men mere robust kompressor, der bruger en LLM-kæde til at bestemme, hvilke af de oprindeligt hentede dokumenter, der skal filtreres fra, og hvilke der skal returneres, uden at manipulere dokumentindholdet:

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)

Initialiser kæden ved hjælp af ContextualCompressionRetriever med en LLMChainFilter og send prompten ind via 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}
)

Lad os stille et spørgsmål:

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.

Sammenlign resultater

Følgende tabel sammenligner resultater fra forskellige forespørgsler baseret på teknik.

Teknik Forespørgsel 1 Forespørgsel 2 Sammenligning
Hvordan udviklede AWS sig? Hvorfor har Amazon succes?
Almindelig Retriever Chain Output AWS (Amazon Web Services) udviklede sig fra en i starten urentabel investering til en årlig omsætning på $85 milliarder med stærk rentabilitet, der tilbyder en bred vifte af tjenester og funktioner og er blevet en væsentlig del af Amazons portefølje. På trods af skepsis og kortsigtet modvind fortsatte AWS med at innovere, tiltrække nye kunder og migrere aktive kunder, hvilket tilbyder fordele såsom smidighed, innovation, omkostningseffektivitet og sikkerhed. AWS udvidede også sine langsigtede investeringer, herunder chipudvikling, for at give nye muligheder og ændre, hvad der er muligt for sine kunder. Amazon har succes på grund af sin kontinuerlige innovation og udvidelse til nye områder såsom teknologiske infrastrukturtjenester, digitale læseenheder, stemmedrevne personlige assistenter og nye forretningsmodeller som tredjepartsmarkedspladsen. Dens evne til at skalere driften hurtigt, som det ses i den hurtige udvidelse af dens leverings- og transportnetværk, bidrager også til dens succes. Derudover har Amazons fokus på optimering og effektivitetsgevinster i sine processer resulteret i produktivitetsforbedringer og omkostningsreduktioner. Eksemplet med Amazon Business fremhæver virksomhedens evne til at udnytte sine e-handels- og logistikstyrker i forskellige sektorer. Baseret på svarene fra den almindelige retriever-kæde bemærker vi, at selvom den giver lange svar, lider den af ​​kontekstoverløb og undlader at nævne nogen væsentlige detaljer fra korpuset i forhold til at svare på den stillede forespørgsel. Den almindelige genfindingskæde er ikke i stand til at fange nuancerne med dybde eller kontekstuel indsigt, og mangler potentielt kritiske aspekter af dokumentet.
Overordnet Document Retriever Output AWS (Amazon Web Services) startede med en funktionsfattig indledende lancering af Elastic Compute Cloud (EC2)-tjenesten i 2006, der kun leverede én forekomststørrelse, i ét datacenter, i én region i verden, med kun Linux-operativsystemforekomster , og uden mange nøglefunktioner som overvågning, belastningsbalancering, automatisk skalering eller vedvarende lagring. AWS' succes gjorde det dog muligt for dem hurtigt at iterere og tilføje de manglende muligheder, og til sidst udvide til at tilbyde forskellige varianter, størrelser og optimeringer af computer, lagring og netværk, samt udvikle deres egne chips (Graviton) for at presse pris og ydeevne yderligere . AWS's iterative innovationsproces krævede betydelige investeringer i finansielle og menneskelige ressourcer over 20 år, ofte i god tid før, hvornår det ville betale sig, for at imødekomme kundernes behov og forbedre langsigtede kundeoplevelser, loyalitet og afkast for aktionærerne. Amazon har succes på grund af sin evne til konstant at innovere, tilpasse sig skiftende markedsforhold og imødekomme kundernes behov i forskellige markedssegmenter. Dette er tydeligt i succesen med Amazon Business, som er vokset til at drive omkring 35 mia. USD i årligt bruttosalg ved at levere udvalg, værdi og bekvemmelighed til erhvervskunder. Amazons investeringer i e-handel og logistik har også gjort det muligt at skabe tjenester som Buy with Prime, som hjælper købmænd med direkte-til-forbruger-websteder med at drive konvertering fra visninger til køb. Den overordnede dokumentretriever dykker dybere ned i detaljerne i AWS's vækststrategi, herunder den iterative proces med at tilføje nye funktioner baseret på kundefeedback og den detaljerede rejse fra en funktionsfattig initial lancering til en dominerende markedsposition, samtidig med at den giver et kontekstrigt svar . Svar dækker en bred vifte af aspekter, fra tekniske innovationer og markedsstrategi til organisatorisk effektivitet og kundefokus, hvilket giver et holistisk overblik over de faktorer, der bidrager til succes, sammen med eksempler. Dette kan tilskrives den overordnede dokumenthentnings målrettede, men vidtgående søgefunktioner.
LLM Chain Extractor: Kontekstuel komprimeringsoutput AWS udviklede sig ved at starte som et lille projekt i Amazon, der krævede betydelige kapitalinvesteringer og stod over for skepsis fra både inde og ude af virksomheden. AWS havde dog et forspring på potentielle konkurrenter og troede på den værdi, det kunne tilføre kunder og Amazon. AWS forpligtede sig på lang sigt til at fortsætte med at investere, hvilket resulterede i over 3,300 nye funktioner og tjenester, der blev lanceret i 2022. AWS har ændret, hvordan kunder administrerer deres teknologiske infrastruktur, og er blevet en årlig omsætning på $85 mia. med stærk rentabilitet. AWS har også løbende forbedret sine tilbud, såsom at forbedre EC2 med yderligere funktioner og tjenester efter den første lancering. Baseret på den angivne kontekst kan Amazons succes tilskrives dets strategiske ekspansion fra en bogsalgsplatform til en global markedsplads med et levende tredjepartssælgerøkosystem, tidlig investering i AWS, innovation i introduktionen af ​​Kindle og Alexa og betydelig vækst i årlig omsætning fra 2019 til 2022. Denne vækst førte til udvidelsen af ​​opfyldelsescentrets fodaftryk, oprettelse af et last-mile transportnetværk og opbygning af et nyt sorteringscenternetværk, som var optimeret til produktivitet og omkostningsreduktioner. LLM kædeudtrækkeren opretholder en balance mellem at dække nøglepunkter omfattende og undgå unødvendig dybde. Den tilpasser sig dynamisk til forespørgslens kontekst, så outputtet er direkte relevant og omfattende.
LLM-kædefilter: Kontekstuel komprimeringsoutput AWS (Amazon Web Services) udviklede sig ved i første omgang at lancere funktionsfattige, men gentages hurtigt baseret på kundefeedback for at tilføje de nødvendige muligheder. Denne tilgang gjorde det muligt for AWS at lancere EC2 i 2006 med begrænsede funktioner og derefter løbende tilføje nye funktionaliteter, såsom yderligere instansstørrelser, datacentre, regioner, operativsystemindstillinger, overvågningsværktøjer, belastningsbalancering, automatisk skalering og vedvarende lagring. Over tid forvandlede AWS sig fra en funktionsfattig service til en virksomhed på flere milliarder dollar ved at fokusere på kundernes behov, smidighed, innovation, omkostningseffektivitet og sikkerhed. AWS har nu en årlig omsætning på $85 milliarder og tilbyder over 3,300 nye funktioner og tjenester hvert år, der henvender sig til en bred vifte af kunder fra nystartede virksomheder til multinationale virksomheder og offentlige organisationer. Amazon har succes på grund af sine innovative forretningsmodeller, kontinuerlige teknologiske fremskridt og strategiske organisatoriske ændringer. Virksomheden har konsekvent forstyrret traditionelle industrier ved at introducere nye ideer, såsom en e-handelsplatform for forskellige produkter og tjenester, en tredjepartsmarkedsplads, cloud-infrastrukturtjenester (AWS), Kindle e-reader og Alexa stemmedrevne personlige assistent . Derudover har Amazon foretaget strukturelle ændringer for at forbedre sin effektivitet, såsom at omorganisere sit amerikanske fulfilment-netværk for at reducere omkostninger og leveringstider, hvilket yderligere bidrager til dets succes. I lighed med LLM-kædeudtrækkeren sørger LLM-kædefilteret for, at selvom nøglepunkterne er dækket, er outputtet effektivt for kunder, der leder efter kortfattede og kontekstuelle svar.

Når vi sammenligner disse forskellige teknikker, kan vi se, at i sammenhænge som at beskrive AWS's overgang fra en simpel tjeneste til en kompleks enhed på flere milliarder dollar eller forklare Amazons strategiske succeser, mangler den almindelige retrieverkæde den præcision, som de mere sofistikerede teknikker tilbyder, fører til mindre målrettet information. Selvom der er meget få forskelle mellem de omtalte avancerede teknikker, er de langt mere informative end almindelige retrieverkæder.

For kunder i brancher som sundhedspleje, telekommunikation og finansielle tjenester, der ønsker at implementere RAG i deres applikationer, gør begrænsningerne af den almindelige retriever-kæde i at levere præcision, undgå redundans og effektivt komprimere information den mindre egnet til at opfylde disse behov sammenlignet med til den mere avancerede overordnede dokumenthentning og kontekstuelle komprimeringsteknikker. Disse teknikker er i stand til at destillere enorme mængder information til den koncentrerede, virkningsfulde indsigt, som du har brug for, samtidig med at de hjælper med at forbedre prisydelsen.

Ryd op

Når du er færdig med at køre notesbogen, skal du slette de ressourcer, du har oprettet, for at undgå, at der påløber gebyrer for de ressourcer, der er i brug:

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

Konklusion

I dette indlæg præsenterede vi en løsning, der giver dig mulighed for at implementere den overordnede dokumenthentnings- og kontekstuelle komprimeringskædeteknikker for at forbedre LLM'ers evne til at behandle og generere information. Vi testede disse avancerede RAG-teknikker med Mixtral-8x7B Instruct- og BGE Large En-modellerne, der fås med SageMaker JumpStart. Vi undersøgte også brugen af ​​vedvarende lagring til indlejringer og dokumentbidder og integration med virksomhedens datalagre.

De teknikker, vi udførte, forbedrer ikke kun måden, hvorpå LLM-modeller får adgang til og inkorporerer ekstern viden, men forbedrer også væsentligt kvaliteten, relevansen og effektiviteten af ​​deres output. Ved at kombinere hentning fra store tekstkorpora med sproggenereringsfunktioner gør disse avancerede RAG-teknikker det muligt for LLM'er at producere mere faktuelle, sammenhængende og konteksttilpassede svar, hvilket forbedrer deres ydeevne på tværs af forskellige naturlige sprogbehandlingsopgaver.

SageMaker JumpStart er i centrum for denne løsning. Med SageMaker JumpStart får du adgang til et omfattende udvalg af open og closed source-modeller, der strømliner processen med at komme i gang med ML og muliggør hurtig eksperimentering og implementering. For at komme i gang med at implementere denne løsning skal du navigere til notesbogen i GitHub repo.


Om forfatterne

Niithiyn Vijeaswaran er Solutions Architect hos AWS. Hans fokusområde er generative AI og AWS AI Acceleratorer. Han har en bachelorgrad i datalogi og bioinformatik. Niithiyn arbejder tæt sammen med Generative AI GTM-teamet for at aktivere AWS-kunder på flere fronter og fremskynde deres indførelse af generativ AI. Han er en ivrig fan af Dallas Mavericks og nyder at samle på sneakers.

Sebastian Bustillo er Solutions Architect hos AWS. Han fokuserer på AI/ML-teknologier med en dyb passion for generativ AI og computeracceleratorer. Hos AWS hjælper han kunder med at låse op for forretningsværdi gennem generativ kunstig intelligens. Når han ikke er på arbejde, nyder han at brygge en perfekt kop specialkaffe og udforske verden sammen med sin kone.

Armando Diaz er Solutions Architect hos AWS. Han fokuserer på generativ AI, AI/ML og Data Analytics. Hos AWS hjælper Armando kunder med at integrere banebrydende generative AI-kapaciteter i deres systemer, hvilket fremmer innovation og konkurrencefordele. Når han ikke er på arbejde, nyder han at bruge tid sammen med sin kone og familie, vandreture og rejse verden rundt.

Dr. Farooq Sabir er senior specialist i kunstig intelligens og maskinlæringsløsninger hos AWS. Han har ph.d.- og MS-grader i elektroteknik fra University of Texas i Austin og en MS i datalogi fra Georgia Institute of Technology. Han har over 15 års erhvervserfaring og kan også lide at undervise og vejlede universitetsstuderende. Hos AWS hjælper han kunder med at formulere og løse deres forretningsproblemer inden for datavidenskab, maskinlæring, computersyn, kunstig intelligens, numerisk optimering og relaterede domæner. Baseret i Dallas, Texas, elsker han og hans familie at rejse og tage på lange roadtrips.

Marco Punio er en løsningsarkitekt med fokus på generativ AI-strategi, anvendte AI-løsninger og forskning for at hjælpe kunder med at hyperskalere på AWS. Marco er en digital native cloud-rådgiver med erfaring inden for FinTech, Healthcare & Life Sciences, Software-as-a-service og senest i telekommunikationsindustrien. Han er en kvalificeret teknolog med en passion for maskinlæring, kunstig intelligens og fusioner og opkøb. Marco er baseret i Seattle, WA og nyder at skrive, læse, træne og bygge applikationer i sin fritid.

AJ Dhimine er Solutions Architect hos AWS. Han har specialiseret sig i generativ AI, serverløs computing og dataanalyse. Han er et aktivt medlem/mentor i Machine Learning Technical Field Community og har udgivet adskillige videnskabelige artikler om forskellige AI/ML-emner. Han arbejder med kunder, lige fra nystartede virksomheder til virksomheder, for at udvikle AWSome generative AI-løsninger. Han brænder især for at udnytte store sprogmodeller til avanceret dataanalyse og udforske praktiske applikationer, der adresserer udfordringer i den virkelige verden. Uden for arbejdet nyder AJ at rejse og er i øjeblikket i 53 lande med et mål om at besøge alle lande i verden.

spot_img

Seneste efterretninger

spot_img

Chat med os

Hej! Hvordan kan jeg hjælpe dig?