Retrieval Augmented Generation (RAG) lar deg gi en stor språkmodell (LLM) tilgang til data fra eksterne kunnskapskilder som repositories, databaser og APIer uten å måtte finjustere den. Når du bruker generativ AI for å besvare spørsmål, lar RAG LLM-er svare på spørsmål med den mest relevante, oppdaterte informasjonen og eventuelt sitere datakildene deres for verifisering.
En typisk RAG-løsning for kunnskapsinnhenting fra dokumenter bruker en embeddings-modell for å konvertere dataene fra datakildene til embeddings og lagrer disse embeddings i en vektordatabase. Når en bruker stiller et spørsmål, søker den i vektordatabasen og henter dokumenter som ligner mest på brukerens spørring. Deretter kombinerer den de hentede dokumentene og brukerens spørring i en utvidet ledetekst som sendes til LLM for tekstgenerering. Det er to modeller i denne implementeringen: innbyggingsmodellen og LLM som genererer den endelige responsen.
I dette innlegget viser vi hvordan du bruker Amazon SageMaker Studio å bygge en RAG-løsning for å svare på spørsmål.
Bruke notatbøker for RAG-basert spørsmålssvar
Implementering av RAG innebærer vanligvis å eksperimentere med ulike innebyggingsmodeller, vektordatabaser, tekstgenereringsmodeller og ledetekster, samtidig som du feilsøker koden din til du oppnår en funksjonell prototype. Amazon SageMaker tilbyr administrerte Jupyter-notebooks utstyrt med GPU-forekomster, slik at du raskt kan eksperimentere i denne innledende fasen uten å bygge opp ekstra infrastruktur. Det er to alternativer for bruk av notatbøker i SageMaker. Det første alternativet er rask lansering notatbøker tilgjengelig gjennom SageMaker Studio. I SageMaker Studio, det integrerte utviklingsmiljøet (IDE) spesialbygd for ML, kan du lansere bærbare datamaskiner som kjører på forskjellige instanstyper og med forskjellige konfigurasjoner, samarbeide med kolleger og få tilgang til ytterligere spesialbygde funksjoner for maskinlæring (ML). Det andre alternativet er å bruke en SageMaker notatbokforekomst, som er en fullstendig administrert ML-beregningsforekomst som kjører Jupyter Notebook-appen.
I dette innlegget presenterer vi en RAG-løsning som forsterker modellens kunnskap med tilleggsdata fra eksterne kunnskapskilder for å gi mer nøyaktige svar spesifikke for et tilpasset domene. Vi bruker en enkelt SageMaker Studio-notisbok som kjører på en ml.g5.2xlarge
forekomst (1 A10G GPU) og Lama 2 7b chat hf, den finjusterte versjonen av Llama 2 7b, som er optimert for dialogbrukssaker fra Hugging Face Hub. Vi bruker to AWS Media & Entertainment-blogginnlegg som eksempler på eksterne data, som vi konverterer til innebygging med BAAI/bge-small-en-v1.5 innebygginger. Vi lagrer innstøpingene i konglen, en vektorbasert database som tilbyr søk og likhetsmatching med høy ytelse. Vi diskuterer også hvordan du går fra å eksperimentere i den bærbare datamaskinen til å distribuere modellene dine til SageMaker-endepunkter for sanntidsslutning når du fullfører prototypingen. Den samme tilnærmingen kan brukes med forskjellige modeller og vektordatabaser.
Løsningsoversikt
Følgende diagram illustrerer løsningsarkitekturen.
Implementering av løsningen består av to trinn på høyt nivå: å utvikle løsningen ved å bruke SageMaker Studio-notatbøker, og distribuere modellene for slutninger.
Utvikle løsningen ved å bruke SageMaker Studio-notatbøker
Fullfør følgende trinn for å begynne å utvikle løsningen:
- Last inn Llama-2 7b chat-modellen fra Hugging Face Hub i notatboken.
- Lag en promptmal med Langkjede og bruk den til å lage ledetekster for brukstilfellet ditt.
- For 1–2 eksempelmeldinger, legg til relevant statisk tekst fra eksterne dokumenter som forespørselskontekst og vurder om kvaliteten på svarene forbedres.
- Forutsatt at kvaliteten forbedres, implementer arbeidsflyten for svar på RAG-spørsmål:
- Samle de eksterne dokumentene som kan hjelpe modellen til å bedre svare på spørsmålene i din use case.
- Last inn BGE embeddings-modellen og bruk den til å generere embeddings av disse dokumentene.
- Lagre disse innebyggingene i en Pinecone-indeks.
- Når en bruker stiller et spørsmål, utfør et likhetssøk i Pinecone og legg til innholdet fra de mest like dokumentene til ledetekstens kontekst.
Distribuer modellene til SageMaker for slutning i stor skala
Når du når ytelsesmålene dine, kan du distribuere modellene til SageMaker for å brukes av generative AI-applikasjoner:
- Distribuer Llama-2 7b chat-modellen til et SageMaker sanntidsendepunkt.
- Implementere BAAI/bge-small-en-v1.5 embeddings modell til et SageMaker sanntidsendepunkt.
- Bruk de utplasserte modellene i spørsmålet ditt for å svare på generative AI-applikasjoner.
I de følgende delene leder vi deg gjennom trinnene for å implementere denne løsningen i SageMaker Studio-notatbøker.
Forutsetninger
For å følge trinnene i dette innlegget, må du ha en AWS-konto og en AWS identitets- og tilgangsadministrasjon (IAM) rolle med tillatelser til å opprette og få tilgang til løsningsressursene. Hvis du er ny på AWS, se Opprett en frittstående AWS-konto.
For å bruke SageMaker Studio-notatbøker i AWS-kontoen din, trenger du en SageMaker-domene med en brukerprofil som har tillatelser til å starte SageMaker Studio-appen. Hvis du er ny på SageMaker Studio, Rask Studio-oppsett er den raskeste måten å komme i gang på. Med et enkelt klikk forsyner SageMaker SageMaker-domenet med standard forhåndsinnstillinger, inkludert oppsett av brukerprofil, IAM-rolle, IAM-autentisering og offentlig internettilgang. Notatboken for dette innlegget forutsetter en ml.g5.2xlarge
instanstype. For å se gjennom eller øke kvoten din, åpne AWS Service Quotas-konsollen, velg AWS-tjenester Velg navigasjonsruten Amazon SageMaker, og referer til verdien for Studio KernelGateway-apper som kjører på ml.g5.2xlarge
tilfeller.
Etter å ha bekreftet kvotegrensen din, må du fullføre avhengighetene for å bruke Llama 2 7b chat.
Llama 2 7b chat er tilgjengelig under Llama 2-lisens. For å få tilgang til Llama 2 på Hugging Face, må du først fullføre noen få trinn:
- Opprett en Hugging Face-konto hvis du ikke allerede har en.
- Fyll ut skjemaet "Be om tilgang til neste versjon av Llama" på Meta nettsted.
- Be om tilgang til Lama 2 7b chat på Hugging Face.
Etter at du har fått tilgang, kan du opprette et nytt tilgangstoken for å få tilgang til modeller. For å opprette et tilgangstoken, naviger til innstillinger side på Hugging Face-nettstedet.
Du må ha en konto hos Pinecone for å bruke den som en vektordatabase. Pinecone er tilgjengelig på AWS via AWS Marketplace. Pinecone-nettstedet tilbyr også muligheten til å lage en gratis konto som kommer med tillatelser til å lage en enkelt indeks, noe som er tilstrekkelig for formålet med dette innlegget. For å hente Pinecone-nøklene, åpne Pinecone konsoll Og velg API-nøkkel.
Sett opp notatboken og miljøet
For å følge koden i dette innlegget, åpne SageMaker Studio og klone følgende GitHub repository. Deretter åpner du notatboken studio-local-gen-ai/rag/RAG-with-Llama-2-on-Studio.ipynb og velg PyTorch 2.0.0 Python 3.10 GPU-optimalisert bilde, Python 3-kjernen og ml.g5.2xlarge
som instanstype. Hvis dette er første gang du bruker SageMaker Studio-notatbøker, se Opprett eller åpne en Amazon SageMaker Studio Notebook.
For å sette opp utviklingsmiljøet, må du installere de nødvendige Python-bibliotekene, som vist i følgende kode:
%%writefile requirements.txt
sagemaker>=2.175.0
transformers==4.33.0
accelerate==0.21.0
datasets==2.13.0
langchain==0.0.297
pypdf>=3.16.3
pinecone-client
sentence_transformers
safetensors>=0.3.3
!pip install -U -r requirements.txt
Last inn den ferdigtrente modellen og tokenizeren
Etter at du har importert de nødvendige bibliotekene, kan du laste inn Llama-2 7b chat modell sammen med tilhørende tokenizers fra Hugging Face. Disse innlastede modellartefaktene er lagret i den lokale katalogen i SageMaker Studio. Dette gjør at du raskt kan laste dem inn i minnet på nytt når du trenger å gjenoppta arbeidet på et annet tidspunkt.
import torch from transformers import ( AutoTokenizer, LlamaTokenizer, LlamaForCausalLM, GenerationConfig, AutoModelForCausalLM
)
import transformers tg_model_id = "meta-llama/Llama-2-7b-chat-hf" #the model id in Hugging Face
tg_model_path = f"./tg_model/{tg_model_id}" #the local directory where the model will be saved tg_model = AutoModelForCausalLM.from_pretrained(tg_model_id, token=hf_access_token,do_sample=True, use_safetensors=True, device_map="auto", torch_dtype=torch.float16
tg_tokenizer = AutoTokenizer.from_pretrained(tg_model_id, token=hf_access_token) tg_model.save_pretrained(save_directory=tg_model_path, from_pt=True)
tg_tokenizer.save_pretrained(save_directory=tg_model_path, from_pt=True)
Still et spørsmål som krever oppdatert informasjon
Du kan nå begynne å bruke modellen og stille spørsmål. Llama-2 chat-modeller forventer at forespørselen følger følgende format:
<s>[INST] <<SYS>>
system_prompt
<<SYS>>
{{ user_message }} [/INST]
Du kan også bruke det PromptTemplate fra LangChain for å lage en oppskrift basert på ledetekstformatet, slik at du enkelt kan lage ledetekster fremover:
from langchain import PromptTemplate template = """<s>[INST] <<SYS>>nYou are an assistant for question-answering tasks. You are helpful and friendly. Use the following pieces of retrieved context to answer the query. If you don't know the answer, you just say I don't know. Use three sentences maximum and keep the answer concise.
<<SYS>>n
{context}n
{question} [/INST] """
prompt_template = PromptTemplate( template=template, input_variables=['context','question'] )
La oss stille modellen et spørsmål som trenger fersk informasjon fra 2023. Du kan bruke LangChain og spesifikt LLMChain type kjede og pass som parametere LLM, ledetekstmalen du opprettet tidligere, og spørsmålet:
question = "When can I visit the AWS M&E Customer Experience Center in New York City?" tg_tokenizer.add_special_tokens( {"pad_token": "[PAD]"} )
tg_tokenizer.padding_side = "left" tg_pipe = transformers.pipeline(task='text-generation', model=tg_model, tokenizer=tg_tokenizer, num_return_sequences=1, eos_token_id=tg_tokenizer.eos_token_id, pad_token_id=tg_tokenizer.eos_token_id, max_new_tokens=400, temperature=0.7) from langchain.chains import LLMChain
from langchain.llms import HuggingFacePipeline llm=HuggingFacePipeline(pipeline=tg_pipe, model_kwargs={'temperature':0.7})
llm_chain = LLMChain(llm=llm, prompt=prompt_template)
no_context_response = llm_chain.predict(context="", question=question)
print(no_context_response)
Vi får følgende genererte svar:
Takk for at du tok kontakt! AWS M&E Customer Experience Center i New York City er for øyeblikket stengt for besøk på grunn av COVID-19-pandemien. Du kan imidlertid sjekke deres offisielle nettside eller sosiale mediekontoer for eventuelle oppdateringer om når senteret åpner igjen. I mellomtiden kan du utforske deres virtuelle omvisninger og tilgjengelige ressurser på nettet.
Forbedre svaret ved å legge til kontekst i ledeteksten
Svaret vi genererte er ikke helt sant. La oss se om vi kan forbedre det ved å gi litt kontekst. Du kan legge til et utdrag fra innlegget AWS kunngjør nytt M&E Customer Experience Center i New York, som inkluderer oppdateringer om emnet fra 2023:
context = """Media and entertainment (M&E) customers continue to face challenges in creating more content, more quickly, and distributing it to more endpoints than ever before in their quest to delight viewers globally. Amazon Web Services (AWS), along with AWS Partners, have showcased the rapid evolution of M&E solutions for years at industry events like the National Association of Broadcasters (NAB) Show and the International Broadcast Convention (IBC). Until now, AWS for M&E technology demonstrations were accessible in this way just a few weeks out of the year. Customers are more engaged than ever before; they want to have higher quality conversations regarding user experience and media tooling. These conversations are best supported by having an interconnected solution architecture for reference. Scheduling a visit of the M&E Customer Experience Center will be available starting November 13th, please send an email to AWS-MediaEnt-CXC@amazon.com."""
Bruk LLMChain igjen og send den foregående teksten som kontekst:
context_response = llm_chain.predict(context=context, question=question)
print(context_response)
Det nye svaret svarer på spørsmålet med oppdatert informasjon:
Du kan besøke AWS M&E Customer Experience Center i New York City fra og med 13. november. Vennligst send en e-post til AWS-MediaEnt-CXC@amazon.com for å planlegge et besøk.
Vi har bekreftet at ved å legge til den rette konteksten, forbedres modellens ytelse. Nå kan du fokusere innsatsen på å finne og legge til den rette konteksten for spørsmålet. Med andre ord implementer RAG.
Implementer svar på RAG-spørsmål med BGE-innbygginger og Pinecone
På dette tidspunktet må du bestemme deg for informasjonskildene for å forbedre modellens kunnskap. Disse kildene kan være interne nettsider eller dokumenter i organisasjonen din, eller offentlig tilgjengelige datakilder. For formålet med dette innlegget og for enkelhets skyld, har vi valgt to AWS-blogginnlegg publisert i 2023:
Disse innleggene er allerede tilgjengelige som PDF-dokumenter i dataprosjektkatalogen i SageMaker Studio for rask tilgang. For å dele opp dokumentene i håndterbare biter, kan du bruke RecursiveCharacterTextSplitter metode fra LangChain:
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import PyPDFDirectoryLoader loader = PyPDFDirectoryLoader("./data/") documents = loader.load() text_splitter=RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=5
)
docs = text_splitter.split_documents(documents)
Deretter bruker du BGE-innbyggingsmodellen bge-small-en skapt av Beijing Academy of Artificial Intelligence (BAAI) som er tilgjengelig på Hugging Face for å generere embeddings av disse bitene. Last ned og lagre modellen i den lokale katalogen i Studio. Vi bruker fp32 slik at den kan kjøre på instansens CPU.
em_model_name = "BAAI/bge-small-en"
em_model_path = f"./em-model" from transformers import AutoModel
# Load model from HuggingFace Hub
em_model = AutoModel.from_pretrained(em_model_name,torch_dtype=torch.float32)
em_tokenizer = AutoTokenizer.from_pretrained(em_model_name,device="cuda") # save model to disk
em_tokenizer.save_pretrained(save_directory=f"{em_model_path}/model",from_pt=True)
em_model.save_pretrained(save_directory=f"{em_model_path}/model",from_pt=True)
em_model.eval()
Bruk følgende kode for å lage en embedding_generator-funksjon, som tar dokumentbitene som input og genererer innebyggingene ved hjelp av BGE-modellen:
# Tokenize sentences
def tokenize_text(_input, device): return em_tokenizer( [_input], padding=True, truncation=True, return_tensors='pt' ).to(device) # Run embedding task as a function with model and text sentences as input
def embedding_generator(_input, normalize=True): # Compute token embeddings with torch.no_grad(): embedded_output = em_model( **tokenize_text( _input, em_model.device ) ) sentence_embeddings = embedded_output[0][:, 0] # normalize embeddings if normalize: sentence_embeddings = torch.nn.functional.normalize( sentence_embeddings, p=2, dim=1 ) return sentence_embeddings[0, :].tolist() sample_sentence_embedding = embedding_generator(docs[0].page_content)
print(f"Embedding size of the document --->", len(sample_sentence_embedding))
I dette innlegget demonstrerer vi en RAG-arbeidsflyt ved hjelp av Pinecone, en administrert, skybasert vektor database som også tilbyr en API for likhetssøk. Du står fritt til å omskrive følgende kode for å bruke din foretrukne vektordatabase.
Vi initialiserer en Pinecone python klient og lag en ny vektorsøkeindeks ved å bruke innbyggingsmodellens utdatalengde. Vi bruker LangChains innebygde Pinecone-klasse for å innta innebyggingene vi opprettet i forrige trinn. Den trenger tre parametere: dokumentene som skal inntas, funksjonen for innebyggingsgenerator og navnet på Pinecone-indeksen.
import pinecone
pinecone.init( api_key = os.environ["PINECONE_API_KEY"], environment = os.environ["PINECONE_ENV"]
)
#check if index already exists, if not we create it
index_name = "rag-index"
if index_name not in pinecone.list_indexes(): pinecone.create_index( name=index_name, dimension=len(sample_sentence_embedding), ## 384 for bge-small-en metric='cosine' ) #insert the embeddings
from langchain.vectorstores import Pinecone
vector_store = Pinecone.from_documents( docs, embedding_generator, index_name=index_name
)
Med Llama-2 7B chat-modellen lastet inn i minnet og innebyggingene integrert i Pinecone-indeksen, kan du nå kombinere disse elementene for å forbedre Llama 2s svar for vår brukssituasjon for spørsmålssvar. For å oppnå dette kan du bruke LangChain Henting QA, som forsterker den første ledeteksten med de mest lignende dokumentene fra vektorlageret. Ved å stille inn return_source_documents=True
, får du innsyn i de eksakte dokumentene som brukes til å generere svaret som en del av svaret, slik at du kan verifisere nøyaktigheten til svaret.
from langchain.chains import RetrievalQA
import textwrap #helper method to improve the readability of the response
def print_response(llm_response): temp = [textwrap.fill(line, width=100) for line in llm_response['result'].split('n')] response = 'n'.join(temp) print(f"{llm_response['query']}n n{response}'n n Source Documents:") for source in llm_response["source_documents"]: print(source.metadata) llm_qa_chain = RetrievalQA.from_chain_type( llm=llm, #the Llama-2 7b chat model chain_type='stuff', retriever=vector_store.as_retriever(search_kwargs={"k": 2}), # perform similarity search in Pinecone return_source_documents=True, #show the documents that were used to answer the question chain_type_kwargs={"prompt": prompt_template}
)
print_response(llm_qa_chain(question))
Vi får følgende svar:
Spørsmål: Når kan jeg besøke AWS M&E Customer Experience Center i New York City?
A: Jeg hjelper gjerne! I henhold til konteksten vil AWS M&E Customer Experience Center i New York City være tilgjengelig for besøk fra og med 13. november. Du kan sende en e-post til AWS-MediaEnt-CXC@amazon.com for å planlegge et besøk.'
Kildedokumenter:
{'page': 4.0, 'source': 'data/AWS kunngjør nytt M&E Customer Experience Center i New York City _ AWS for M&E Blog.pdf'}
{'page': 2.0, 'source': 'data/AWS kunngjør nytt M&E Customer Experience Center i New York City _ AWS for M&E Blog.pdf'}
La oss prøve et annet spørsmål:
question2=" How many awards have AWS Media Services won in 2023?"
print_response(llm_qa_chain(question2))
Vi får følgende svar:
Spørsmål: Hvor mange priser har AWS Media Services vunnet i 2023?
A: I følge blogginnlegget har AWS Media Services vunnet fem bransjepriser i 2023.'
Kildedokumenter:
{'page': 0.0, 'source': 'data/AWS Media Services awarded industry accolades _ AWS for M&E Blog.pdf'}
{'page': 1.0, 'source': 'data/AWS Media Services awarded industry accolades _ AWS for M&E Blog.pdf'}
Etter at du har etablert et tilstrekkelig nivå av tillit, kan du distribuere modellene til SageMaker-endepunkter for sanntidsslutning. Disse endepunktene er fullstendig administrert og tilbyr støtte for automatisk skalering.
SageMaker tilbyr store modellslutninger ved å bruke Large Model Inference-beholdere (LMIs), som vi kan bruke til å distribuere modellene våre. Disse beholderne er utstyrt med forhåndsinstallerte åpen kildekode-biblioteker som DeepSpeed, som letter implementeringen av ytelsesforbedrende teknikker som tensorparallellisme under inferens. I tillegg bruker de DJLServing som en forhåndsbygd integrert modellserver. DJLServing er en høyytelses, universell modellserveringsløsning som tilbyr støtte for dynamisk batching og automatisk skalering for arbeidere, og dermed øke gjennomstrømningen.
I vår tilnærming bruker vi SageMaker LMI med DJLServing og DeepSpeed Inference for å distribuere Llama-2-chat 7b og BGE-modellene til SageMaker-endepunkter som kjører på ml.g5.2xlarge
forekomster, som muliggjør sanntidsslutning. Hvis du ønsker å følge disse trinnene selv, se vedlagte bærbare for detaljerte instruksjoner.
Du trenger to ml.g5.2xlarge
forekomster for distribusjon. For å se gjennom eller øke kvoten din, åpne AWS Service Quotas-konsollen, velg AWS-tjenester Velg navigasjonsruten Amazon SageMaker, og referer til verdien for ml.g5.2xlarge
for endepunktbruk.
Følgende trinn skisserer prosessen med å distribuere tilpassede modeller for RAG-arbeidsflyten på et SageMaker-endepunkt:
- Implementere Lama-2 7b chat-modell til et SageMaker-endepunkt i sanntid som kjører på en
ml.g5.2xlarge
eksempel for rask tekstgenerering. - Implementere BAAI/bge-small-en-v1.5 embeddings modell til et SageMaker sanntidsendepunkt som kjører på en
ml.g5.2xlarge
forekomst. Alternativt kan du distribuere din egen innebyggingsmodell. - Still et spørsmål og bruk Langkjeden Henting QA for å utvide forespørselen med de mest lignende dokumentene fra Pinecone, denne gangen ved å bruke modellen distribuert i SageMaker sanntidsendepunkt:
# convert your local LLM into SageMaker endpoint LLM
llm_sm_ep = SagemakerEndpoint( endpoint_name=tg_sm_model.endpoint_name, # <--- Your text-gen model endpoint name region_name=region, model_kwargs={ "temperature": 0.05, "max_new_tokens": 512 }, content_handler=content_handler,
) llm_qa_smep_chain = RetrievalQA.from_chain_type( llm=llm_sm_ep, # <--- This uses SageMaker Endpoint model for inference chain_type='stuff', retriever=vector_store.as_retriever(search_kwargs={"k": 2}), return_source_documents=True, chain_type_kwargs={"prompt": prompt_template}
)
- Bruk LangChain for å bekrefte at SageMaker-endepunktet med innbyggingsmodellen fungerer som forventet, slik at det kan brukes til fremtidig dokumentinntak:
response_model = smr_client.invoke_endpoint( EndpointName=em_sm_model.endpoint_name, <--- Your embedding model endpoint name Body=json.dumps({ "text": "This is a sample text" }), ContentType="application/json",
) outputs = json.loads(response_model["Body"].read().decode("utf8"))['outputs']
Rydd opp
Fullfør følgende trinn for å rydde opp i ressursene dine:
- Når du er ferdig med å jobbe i SageMaker Studio-notisboken, sørg for at du slår av
ml.g5.2xlarge
for å unngå eventuelle kostnader ved å velge stoppikonet. Du kan også sette opp skript for livssykluskonfigurasjon for automatisk å stenge ressurser når de ikke brukes.
- Hvis du distribuerte modellene til SageMaker-endepunkter, kjør følgende kode på slutten av notatboken for å slette endepunktene:
#delete your text generation endpoint
sm_client.delete_endpoint( EndpointName=tg_sm_model.endpoint_name
)
# delete your text embedding endpoint
sm_client.delete_endpoint( EndpointName=em_sm_model.endpoint_name
)
- Til slutt, kjør følgende linje for å slette Pinecone-indeksen:
pinecone.delete_index(index_name)
konklusjonen
SageMaker bærbare PC-er gir en enkel måte å kickstarte reisen på med Retrieval Augmented Generation. De lar deg eksperimentere interaktivt med ulike modeller, konfigurasjoner og spørsmål uten å bygge opp ekstra infrastruktur. I dette innlegget viste vi hvordan vi kan forbedre ytelsen til Llama 2 7b-chat i et spørsmål som svarer på bruksområdet ved å bruke LangChain, BGE-innbyggingsmodellen og Pinecone. For å komme i gang, start SageMaker Studio og kjør bærbare tilgjengelig i det følgende GitHub repo. Del gjerne tankene dine i kommentarfeltet!
Om forfatterne
Anastasia Tzeveleka er en maskinlærings- og AI-spesialistløsningsarkitekt ved AWS. Hun jobber med kunder i EMEA og hjelper dem med å bygge maskinlæringsløsninger i stor skala ved hjelp av AWS-tjenester. Hun har jobbet med prosjekter innen forskjellige domener, inkludert Natural Language Processing (NLP), MLOps og Low Code No Code-verktøy.
Pranav Murthy er AI/ML Specialist Solutions Architect hos AWS. Han fokuserer på å hjelpe kunder med å bygge, trene, distribuere og migrere maskinlæring (ML) arbeidsbelastninger til SageMaker. Han har tidligere jobbet i halvlederindustrien med å utvikle modeller for store datasyn (CV) og naturlig språkbehandling (NLP) for å forbedre halvlederprosesser. På fritiden liker han å spille sjakk og reise.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/use-amazon-sagemaker-studio-to-build-a-rag-question-answering-solution-with-llama-2-langchain-and-pinecone-for-fast-experimentation/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 10
- 100
- 13
- 16
- 2023
- 33
- 500
- 7
- a
- AC
- Academy
- adgang
- Tilgang til data
- tilgjengelig
- Ifølge
- Logg inn
- kontoer
- nøyaktighet
- nøyaktig
- Oppnå
- legge til
- legge
- Ytterligere
- I tillegg
- overholde
- en gang til
- AI
- AI / ML
- tillate
- tillate
- tillater
- langs
- allerede
- også
- Amazon
- Amazon SageMaker
- Amazon SageMaker Studio
- Amazon Web Services
- Amazon Web Services (AWS)
- an
- og
- kunngjør
- besvare
- svar
- noen
- APIer
- app
- søknader
- tilnærming
- apps
- arkitektur
- ER
- kunstig
- kunstig intelligens
- AS
- spør
- vurdere
- Assistent
- Association
- antar
- At
- øke
- augmented
- forstørrelser
- Autentisering
- auto
- automatisk
- tilgjengelig
- unngå
- tildelt
- premieringer
- AWS
- basert
- BE
- vært
- før du
- BEST
- Bedre
- Blogg
- Blogginnlegg
- kroppen
- kringkaste
- bygge
- innebygd
- by
- CAN
- saken
- saker
- sentrum
- kjede
- kjeder
- utfordringer
- avgifter
- sjekk
- Sjakk
- Velg
- velge
- valgt ut
- City
- klasse
- ren
- klikk
- stengt
- kode
- samarbeide
- kollegaer
- COM
- kombinere
- skurtreskerne
- Kom
- kommer
- kommentarer
- fullføre
- Beregn
- datamaskin
- Datamaskin syn
- konsis
- selvtillit
- Konfigurasjon
- BEKREFTET
- består
- Konsoll
- Containere
- innhold
- kontekst
- fortsette
- Konvensjonen
- samtaler
- konvertere
- Tilsvarende
- kunne
- Covid-19
- COVID-19-pandemi
- skape
- opprettet
- Opprette
- I dag
- skikk
- kunde
- kundeopplevelse
- Kunder
- dato
- Database
- databaser
- bestemme
- Misligholde
- glede
- demonstrere
- demonstrert
- avhengig
- utplassere
- utplassert
- utplasserings
- distribusjon
- detaljert
- utvikle
- Utvikling
- enhet
- Dialog
- forskjellig
- diskutere
- distribusjon
- dele
- dokument
- dokumenter
- domene
- domener
- Don
- ikke
- ned
- nedlasting
- to
- under
- dynamisk
- e
- Tidligere
- lett
- innsats
- elementer
- emalje
- embedding
- EMEA
- muliggjør
- muliggjør
- slutt
- Endpoint
- engasjert
- forbedre
- Entertainment
- fullstendig
- Miljø
- utstyrt
- etablert
- hendelser
- NOEN GANG
- evolusjon
- eksempel
- finnes
- forvente
- forventet
- erfaring
- eksperiment
- utforske
- utvendig
- trekke ut
- Face
- tilrettelegging
- FAST
- raskeste
- Egenskaper
- Noen få
- slutt~~POS=TRUNC
- finne
- Først
- første gang
- fem
- Fokus
- fokuserer
- følge
- etter
- Til
- skjema
- format
- Forward
- Gratis
- vennlig
- fra
- fullt
- funksjon
- funksjonelle
- framtid
- Gevinst
- generere
- generert
- genererer
- generasjonen
- generative
- Generativ AI
- generator
- få
- Globalt
- Mål
- skal
- GPU
- innvilget
- lykkelig
- Ha
- å ha
- he
- hjelpe
- nyttig
- hjelpe
- hjelper
- høyt nivå
- høy ytelse
- høyere
- hans
- hit
- Hvordan
- Hvordan
- Men
- HTML
- HTTPS
- Hub
- Klem ansikt
- i
- IBC
- ICON
- ID
- Identitet
- if
- illustrerer
- bilde
- iverksette
- gjennomføring
- implementere
- importere
- forbedre
- forbedret
- forbedrer
- in
- I andre
- inkluderer
- Inkludert
- Øke
- økende
- indeks
- industri
- bransje~~POS=TRUNC Hendelser
- informasjon
- Infrastruktur
- innledende
- inngang
- installere
- f.eks
- instruksjoner
- integrert
- Intelligens
- sammenhengende
- intern
- internasjonalt
- Internet
- Internettilgang
- inn
- IT
- DET ER
- reise
- jpg
- JSON
- bare
- Hold
- nøkler
- Vet
- kunnskap
- Språk
- stor
- lansere
- læring
- venstre
- Lengde
- Nivå
- bibliotekene
- i likhet med
- BEGRENSE
- linje
- Llama
- LLM
- laste
- loader
- lokal
- Lav
- maskin
- maskinlæring
- gjøre
- overkommelig
- fikk til
- mange
- matchende
- maksimal
- mellomtiden
- Media
- Minne
- Meta
- metadata
- metode
- migrere
- ML
- MLOps
- modell
- modeller
- mer
- mest
- må
- NAB
- navn
- nasjonal
- Naturlig
- Natural Language Processing
- Naviger
- Navigasjon
- nødvendig
- Trenger
- behov
- Ny
- Ny tilgang
- New York
- New York City
- neste
- nlp
- Nei.
- bærbare
- November
- nå
- of
- tilby
- Tilbud
- offisiell
- Offesiell nettside
- on
- ONE
- på nett
- åpen
- åpen kildekode
- optimalisert
- Alternativ
- alternativer
- or
- organisasjon
- OS
- Annen
- vår
- ut
- omriss
- produksjon
- utganger
- egen
- pad
- side
- pandemi
- brød
- parametere
- del
- partnere
- passere
- Utfør
- ytelse
- tillatelser
- fase
- stykker
- plato
- Platon Data Intelligence
- PlatonData
- spiller
- vær så snill
- Post
- innlegg
- trekkes
- presentere
- forrige
- tidligere
- prosess
- Prosesser
- prosessering
- Profil
- prosjekt
- prosjekter
- prototype
- prototyping
- gi
- gi
- offentlig
- offentlig
- publisert
- formål
- Python
- pytorch
- kvalitet
- søken
- spørsmål
- spørsmål
- Rask
- raskt
- rask
- raskt
- nå
- sanntids
- nylig
- .
- referere
- referanse
- om
- relevant
- gjenåpne
- krever
- påkrevd
- Krav
- Krever
- Ressurser
- svar
- svar
- resultere
- gjenoppta
- retur
- anmeldelse
- ikke sant
- Rolle
- Kjør
- rennende
- sagemaker
- sake
- samme
- Spar
- lagret
- sier
- Skala
- skalering
- planlegge
- planlegging
- Søk
- søk
- Sekund
- seksjoner
- se
- halvledere
- send
- sendt
- server
- tjeneste
- Tjenester
- sett
- innstilling
- Del
- hun
- Vis
- showcased
- viste
- stengt
- Slå
- lignende
- enkelhet
- enkelt
- Størrelse
- So
- selskap
- sosiale medier
- løsning
- Solutions
- noen
- kilde
- Kilder
- spesialist
- spesifikk
- spesielt
- stående
- Begynn
- startet
- Start
- statisk
- Trinn
- Steps
- Stopp
- oppbevare
- lagret
- butikker
- rett fram
- studio
- slik
- tilstrekkelig
- støtte
- Støttes
- sikker
- raskt
- tar
- Oppgave
- oppgaver
- teknikker
- Teknologi
- mal
- tekst
- enn
- Det
- De
- deres
- Dem
- Der.
- derved
- Disse
- de
- denne
- tre
- Gjennom
- gjennomstrømning
- tid
- til
- token
- symbolisere
- verktøy
- Tema
- lommelykt
- turer
- Tog
- transformers
- overgang
- Traveling
- sant
- prøve
- to
- typen
- typer
- typisk
- typisk
- etter
- Universell
- til
- up-to-date
- oppdateringer
- bruk
- bruke
- bruk sak
- brukt
- Bruker
- Brukererfaring
- bruker
- ved hjelp av
- bruke
- verdi
- ulike
- Verifisering
- verifisere
- versjon
- av
- seere
- virtuelle
- virtuelle turer
- synlighet
- syn
- Besøk
- Besøk
- gå
- ønsker
- Vei..
- we
- web
- webtjenester
- Nettsted
- uker
- var
- når
- når som helst
- hvilken
- mens
- vil
- med
- innenfor
- uten
- Vant
- ord
- Arbeid
- arbeidet
- arbeidstaker
- arbeidsflyt
- arbeid
- virker
- år
- år
- york
- Du
- Din
- deg selv
- zephyrnet