Retrieval Augmented Generation (RAG) vă permite să oferiți un model de limbă mare (LLM) cu acces la date din surse externe de cunoștințe, cum ar fi depozite, baze de date și API-uri, fără a fi nevoie să-l reglați fin. Când utilizează AI generativă pentru răspunsul la întrebări, RAG le permite LLM-urilor să răspundă la întrebări cu cele mai relevante și actualizate informații și, opțional, să-și citeze sursele de date pentru verificare.
O soluție tipică RAG pentru regăsirea cunoștințelor din documente utilizează un model de încorporare pentru a converti datele din sursele de date în înglobare și stochează aceste înglobări într-o bază de date vectorială. Când un utilizator pune o întrebare, acesta caută în baza de date vectorială și preia documentele care sunt cel mai asemănătoare cu interogarea utilizatorului. Apoi, combină documentele preluate și interogarea utilizatorului într-un prompt augmentat care este trimis la LLM pentru generarea de text. Există două modele în această implementare: modelul de încorporare și LLM care generează răspunsul final.
În această postare, demonstrăm cum se utilizează Amazon SageMaker Studio pentru a construi o soluție RAG de răspuns la întrebări.
Utilizarea caietelor pentru răspunsuri la întrebări bazate pe RAG
Implementarea RAG implică, de obicei, experimentarea cu diferite modele de încorporare, baze de date vectoriale, modele de generare de text și solicitări, în timp ce depanați codul până când obțineți un prototip funcțional. Amazon SageMaker oferă notebook-uri Jupyter gestionate, echipate cu instanțe GPU, permițându-vă să experimentați rapid în această fază inițială, fără a dezvolta o infrastructură suplimentară. Există două opțiuni pentru utilizarea notebook-urilor în SageMaker. Prima opțiune este lansarea rapidă notebook-uri disponibil prin SageMaker Studio. În SageMaker Studio, mediul de dezvoltare integrat (IDE) creat special pentru ML, puteți lansa notebook-uri care rulează pe diferite tipuri de instanțe și cu diferite configurații, puteți colabora cu colegii și puteți accesa funcții suplimentare create special pentru învățarea automată (ML). A doua opțiune este utilizarea a Instanță de notebook SageMaker, care este o instanță de calcul ML complet gestionată care rulează aplicația Jupyter Notebook.
În această postare, prezentăm o soluție RAG care mărește cunoștințele modelului cu date suplimentare din surse externe de cunoștințe pentru a oferi răspunsuri mai precise specifice unui domeniu personalizat. Folosim un singur notebook SageMaker Studio care rulează pe un ml.g5.2xlarge
instanță (1 GPU A10G) și Lama 2 7b chat HF, versiunea reglată fin a Llama 2 7b, care este optimizată pentru cazuri de utilizare a dialogului de la Hugging Face Hub. Folosim două postări de blog AWS Media & Entertainment ca eșantion de date externe, pe care le transformăm în încorporare cu BAAI/bge-small-en-v1.5 înglobări. Stocam înglobările în pinecone, o bază de date bazată pe vectori care oferă căutare de înaltă performanță și potrivire de similaritate. De asemenea, discutăm despre cum să treceți de la experimentarea în notebook la implementarea modelelor dvs. la punctele finale SageMaker pentru inferențe în timp real atunci când finalizați prototipul. Aceeași abordare poate fi utilizată cu diferite modele și baze de date vectoriale.
Prezentare generală a soluțiilor
Următoarea diagramă ilustrează arhitectura soluției.
Implementarea soluției constă în doi pași de nivel înalt: dezvoltarea soluției folosind notebook-uri SageMaker Studio și implementarea modelelor pentru inferență.
Dezvoltați soluția folosind notebook-uri SageMaker Studio
Parcurgeți următorii pași pentru a începe dezvoltarea soluției:
- Încărcați modelul de chat Llama-2 7b de la Hugging Face Hub în notebook.
- Creați un PromptTemplate cu LangChain și folosiți-l pentru a crea solicitări pentru cazul dvs. de utilizare.
- Pentru 1–2 exemple de solicitări, adăugați text static relevant din documente externe ca context prompt și evaluați dacă calitatea răspunsurilor se îmbunătățește.
- Presupunând că calitatea se îmbunătățește, implementați fluxul de lucru pentru răspunsuri la întrebări RAG:
- Adunați documentele externe care pot ajuta modelul să răspundă mai bine la întrebările din cazul dvs. de utilizare.
- Încărcați modelul de înglobare BGE și utilizați-l pentru a genera încorporare ale acestor documente.
- Stocați aceste înglobări într-un index Pinecone.
- Când un utilizator pune o întrebare, efectuați o căutare de similaritate în Pinecone și adăugați conținutul celor mai asemănătoare documente în contextul promptului.
Implementați modelele în SageMaker pentru inferență la scară
Când atingeți obiectivele de performanță, puteți implementa modelele în SageMaker pentru a fi utilizate de aplicațiile AI generative:
- Implementați modelul de chat Llama-2 7b la un punct final în timp real SageMaker.
- Implementați fișierul BAAI/bge-small-en-v1.5 model de încorporare într-un punct final în timp real SageMaker.
- Utilizați modelele implementate în întrebarea dvs. care răspund aplicațiilor AI generative.
În secțiunile următoare, vă prezentăm pașii implementării acestei soluții în notebook-urile SageMaker Studio.
Cerințe preliminare
Pentru a urma pașii din această postare, trebuie să aveți un cont AWS și un Gestionarea identității și accesului AWS (IAM) cu permisiuni pentru a crea și accesa resursele soluției. Dacă sunteți nou în AWS, consultați Creați un cont AWS autonom.
Pentru a utiliza notebook-urile SageMaker Studio în contul dvs. AWS, aveți nevoie de un domeniul SageMaker cu un profil de utilizator care are permisiuni pentru a lansa aplicația SageMaker Studio. Dacă sunteți nou în SageMaker Studio, Configurare rapidă Studio este cel mai rapid mod de a începe. Cu un singur clic, SageMaker furnizează domeniul SageMaker cu setări prestabilite implicite, inclusiv configurarea profilului de utilizator, rolului IAM, autentificarea IAM și accesul public la internet. Caietul pentru această postare presupune un ml.g5.2xlarge
tipul instanței. Pentru a revizui sau a crește cota, deschideți consola AWS Service Quotas, alegeți Servicii AWS în panoul de navigare, alegeți Amazon SageMaker, și consultați valoarea pentru aplicațiile Studio KernelGateway care rulează ml.g5.2xlarge
instanțe.
După confirmarea limitei de cotă, trebuie să completați dependențele pentru a utiliza chatul Llama 2 7b.
Chatul Llama 2 7b este disponibil sub Licență Llama 2. Pentru a accesa Llama 2 pe Hugging Face, trebuie să parcurgeți mai întâi câțiva pași:
- Creează un cont Hugging Face dacă nu ai deja unul.
- Completați formularul „Solicitați acces la următoarea versiune de Llama” de pe Meta .
- Solicitați acces la Lama 2 7b chat pe Hugging Face.
După ce vi s-a acordat acces, puteți crea un nou token de acces pentru a accesa modele. Pentru a crea un token de acces, navigați la Setări cont pagina de pe site-ul Hugging Face.
Trebuie să aveți un cont la Pinecone pentru a-l folosi ca bază de date vectorială. Pinecone este disponibil pe AWS prin intermediul Piața AWS. Site-ul web Pinecone oferă, de asemenea, opțiunea de a crea un cont gratuit care vine cu permisiuni pentru a crea un singur index, care este suficient pentru scopurile acestei postări. Pentru a recupera cheile Pinecone, deschideți Consola Pinecone Și alegeți Taste API.
Configurați notebook-ul și mediul
Pentru a urmări codul din această postare, deschideți SageMaker Studio și clonați următoarele GitHub depozit. Apoi, deschideți blocnotesul studio-local-gen-ai/rag/RAG-with-Llama-2-on-Studio.ipynb și alegeți imaginea PyTorch 2.0.0 Python 3.10 GPU Optimized, nucleul Python 3 și ml.g5.2xlarge
ca tip de instanță. Dacă este prima dată când utilizați notebook-uri SageMaker Studio, consultați Creați sau deschideți un blocnotes Amazon SageMaker Studio.
Pentru a configura mediul de dezvoltare, trebuie să instalați bibliotecile Python necesare, așa cum este demonstrat în următorul cod:
%%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
Încărcați modelul pre-antrenat și tokenizer
După ce ați importat bibliotecile necesare, puteți încărca fișierul Llama-2 7b chat modelul împreună cu tokenizatoarele corespunzătoare de la Hugging Face. Aceste artefacte de model încărcate sunt stocate în directorul local din SageMaker Studio. Acest lucru vă permite să le reîncărcați rapid în memorie ori de câte ori trebuie să vă reluați munca la un moment diferit.
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)
Puneți o întrebare care necesită informații actualizate
Acum puteți începe să utilizați modelul și să puneți întrebări. Modelele de chat Llama-2 se așteaptă ca solicitarea să respecte următorul format:
<s>[INST] <<SYS>>
system_prompt
<<SYS>>
{{ user_message }} [/INST]
Aveți posibilitatea să utilizați PromptTemplate de la LangChain pentru a crea o rețetă bazată pe formatul prompt, astfel încât să puteți crea cu ușurință solicitări în continuare:
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'] )
Să punem modelului o întrebare care are nevoie de informații recente din 2023. Puteți utiliza LangChain și în special LLMChain tipul de lanț și transmiteți ca parametri LLM, șablonul de prompt pe care l-ați creat mai devreme și întrebarea:
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)
Obținem următorul răspuns generat:
Vă mulțumim că ne-ați contactat! Centrul de experiență pentru clienți AWS M&E din New York este în prezent închis pentru vizite din cauza pandemiei de COVID-19. Cu toate acestea, puteți verifica site-ul lor oficial sau conturile de rețele sociale pentru orice actualizări despre când se va redeschide centrul. Între timp, le puteți explora tururile virtuale și resursele disponibile online.
Îmbunătățiți răspunsul adăugând context la prompt
Răspunsul pe care l-am generat nu este în întregime adevărat. Să vedem dacă îl putem îmbunătăți oferind un context. Puteți adăuga un extras din postare AWS anunță noul Centru de M&E pentru experiența clienților din New York, care include actualizări pe această temă din 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."""
Utilizați din nou LLMChain și transmiteți textul precedent ca context:
context_response = llm_chain.predict(context=context, question=question)
print(context_response)
Noul răspuns răspunde la întrebare cu informații actualizate:
Puteți vizita AWS M&E Customer Experience Center din New York începând cu 13 noiembrie. Vă rugăm să trimiteți un e-mail la AWS-MediaEnt-CXC@amazon.com pentru a programa o vizită.
Am confirmat că prin adăugarea contextului potrivit, performanța modelului este îmbunătățită. Acum vă puteți concentra eforturile pe găsirea și adăugarea contextului potrivit pentru întrebarea adresată. Cu alte cuvinte, implementați RAG.
Implementați răspunsul la întrebările RAG cu înglobări BGE și Pinecone
În acest moment, trebuie să decideți asupra surselor de informații pentru a îmbunătăți cunoștințele modelului. Aceste surse pot fi pagini web interne sau documente din cadrul organizației dvs. sau surse de date disponibile public. În scopul acestei postări și de dragul simplității, am ales două postări de blog AWS publicate în 2023:
Aceste postări sunt deja disponibile ca documente PDF în directorul de proiecte de date din SageMaker Studio pentru acces rapid. Pentru a împărți documentele în bucăți gestionabile, puteți utiliza RecursiveCharacterTextSplitter metoda de la 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)
Apoi, utilizați modelul de înglobare BGE bge-small-ro create de Academia de Inteligență Artificială din Beijing (BAAI) care este disponibil pe Hugging Face pentru a genera încorporarea acestor bucăți. Descărcați și salvați modelul în directorul local din Studio. Folosim fp32 pentru a putea rula pe CPU-ul instanței.
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()
Utilizați următorul cod pentru a crea o funcție embedding_generator, care ia fragmentele de document ca intrare și generează înglobările folosind modelul BGE:
# 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))
În această postare, demonstrăm un flux de lucru RAG folosind Pinecone, un sistem gestionat, nativ din cloud baza de date vectoriala care oferă și o API pentru căutarea asemănărilor. Sunteți liber să rescrieți următorul cod pentru a utiliza baza de date vectorială preferată.
Inițializam a Client python Pinecone și creați un nou index de căutare vectorială folosind lungimea de ieșire a modelului de încorporare. Folosim clasa Pinecone încorporată a LangChain pentru a ingera înglobările pe care le-am creat în pasul anterior. Are nevoie de trei parametri: documentele de ingerat, funcția de generator de înglobare și numele indexului Pinecone.
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
)
Cu modelul de chat Llama-2 7B încărcat în memorie și înglobările integrate în indexul Pinecone, acum puteți combina aceste elemente pentru a îmbunătăți răspunsurile Llama 2 pentru cazul nostru de utilizare cu răspunsuri la întrebări. Pentru a realiza acest lucru, puteți folosi LangChain RecuperareQA, care mărește promptul inițial cu cele mai asemănătoare documente din magazinul de vectori. Prin setare return_source_documents=True
, obțineți vizibilitate asupra documentelor exacte utilizate pentru a genera răspunsul ca parte a răspunsului, permițându-vă să verificați acuratețea răspunsului.
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))
Obținem următorul răspuns:
Î: Când pot vizita AWS M&E Customer Experience Center din New York City?
A: Sunt fericit să ajut! Conform contextului, Centrul AWS M&E Customer Experience Center din New York City va fi disponibil pentru vizite începând cu 13 noiembrie. Puteți trimite un e-mail la AWS-MediaEnt-CXC@amazon.com pentru a programa o vizită.'
Documente sursă:
{'page': 4.0, 'source': 'data/AWS anunţă noul M&E Customer Experience Center în New York City _ AWS for M&E Blog.pdf'}
{'page': 2.0, 'source': 'data/AWS anunţă noul M&E Customer Experience Center în New York City _ AWS for M&E Blog.pdf'}
Să încercăm o altă întrebare:
question2=" How many awards have AWS Media Services won in 2023?"
print_response(llm_qa_chain(question2))
Obținem următorul răspuns:
Î: Câte premii au câștigat AWS Media Services în 2023?
R: Potrivit postării pe blog, AWS Media Services a câștigat cinci premii din industrie în 2023.'
Documente sursă:
{'page': 0.0, 'source': 'data/AWS Media Services premiate industrie _ AWS for M&E Blog.pdf'}
{'page': 1.0, 'source': 'data/AWS Media Services premiate industrie _ AWS for M&E Blog.pdf'}
După ce ați stabilit un nivel suficient de încredere, puteți implementa modelele la Puncte finale SageMaker pentru inferențe în timp real. Aceste puncte finale sunt complet gestionate și oferă suport pentru scalarea automată.
SageMaker oferă modele mari de inferență folosind containere Large Model Inference (LMI), pe care le putem utiliza pentru a implementa modelele noastre. Aceste containere sunt echipate cu biblioteci open source preinstalate precum DeepSpeed, facilitând implementarea tehnicilor de îmbunătățire a performanței, cum ar fi paralelismul tensorului în timpul inferenței. În plus, folosesc DJLServing ca un model de server integrat pre-construit. DJLServing este o soluție universală, de înaltă performanță, de servire a modelelor, care oferă suport pentru loturi dinamice și scalare automată a lucrătorilor, crescând astfel debitul.
În abordarea noastră, folosim SageMaker LMI cu DJLServing și DeepSpeed Inference pentru a implementa modelele Llama-2-chat 7b și BGE la punctele finale SageMaker care rulează pe ml.g5.2xlarge
instanțe, permițând inferența în timp real. Dacă doriți să urmați singuri acești pași, consultați documentul însoțitor caiet pentru instrucțiuni detaliate.
Veți avea nevoie de două ml.g5.2xlarge
instanțe pentru desfășurare. Pentru a revizui sau a crește cota, deschideți consola AWS Service Quotas, alegeți Servicii AWS în panoul de navigare, alegeți Amazon SageMaker, și faceți referire la valoarea pentru ml.g5.2xlarge
pentru utilizarea punctului final.
Următorii pași descriu procesul de implementare a modelelor personalizate pentru fluxul de lucru RAG pe un punct final SageMaker:
- Implementați fișierul Lama-2 7b model de chat către un punct final în timp real SageMaker care rulează pe un
ml.g5.2xlarge
exemplu pentru generarea rapidă de text. - Implementați fișierul BAAI/bge-small-en-v1.5 model de încorporare într-un punct final în timp real SageMaker care rulează pe un
ml.g5.2xlarge
instanță. Alternativ, vă puteți implementa propriul model de încorporare. - Pune o întrebare și folosește LangChain RecuperareQA pentru a mări promptul cu cele mai asemănătoare documente de la Pinecone, de data aceasta folosind modelul implementat în punctul final în timp real SageMaker:
# 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}
)
- Utilizați LangChain pentru a verifica dacă punctul final SageMaker cu modelul de încorporare funcționează conform așteptărilor, astfel încât să poată fi utilizat pentru asimilarea viitoare a documentelor:
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']
A curăța
Parcurgeți următorii pași pentru a vă curăța resursele:
- Când ați terminat de lucrat în notebook-ul dvs. SageMaker Studio, asigurați-vă că ați oprit
ml.g5.2xlarge
exemplu pentru a evita orice taxe alegând pictograma de oprire. De asemenea, puteți configura scripturi de configurare a ciclului de viață pentru a închide automat resursele atunci când acestea nu sunt utilizate.
- Dacă ați implementat modelele pe punctele finale SageMaker, rulați următorul cod la sfârșitul blocnotesului pentru a șterge punctele finale:
#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
)
- În cele din urmă, rulați următoarea linie pentru a șterge indexul Pinecone:
pinecone.delete_index(index_name)
Concluzie
Notebook-urile SageMaker oferă o modalitate simplă de a vă începe călătoria cu Retrieval Augmented Generation. Acestea vă permit să experimentați în mod interactiv cu diverse modele, configurații și întrebări fără a crea o infrastructură suplimentară. În această postare, am arătat cum să îmbunătățim performanța chat-ului Llama 2 7b într-un caz de utilizare cu răspunsuri la întrebări folosind LangChain, modelul de încorporare BGE și Pinecone. Pentru a începe, lansați SageMaker Studio și rulați caiet disponibile în cele ce urmează GitHub repo. Vă rugăm să vă împărtășiți gândurile în secțiunea de comentarii!
Despre autori
Anastasia Tzeveleka este arhitect specializat în soluții de învățare automată și AI la AWS. Lucrează cu clienții din EMEA și îi ajută să proiecteze soluții de învățare automată la scară, folosind serviciile AWS. Ea a lucrat la proiecte în diferite domenii, inclusiv procesarea limbajului natural (NLP), MLOps și instrumentele Low Code No Code.
Pranav Murthy este arhitect specializat în soluții AI/ML la AWS. El se concentrează pe a ajuta clienții să construiască, să antreneze, să implementeze și să migreze sarcinile de lucru de învățare automată (ML) către SageMaker. El a lucrat anterior în industria semiconductoarelor, dezvoltând modele de viziune computerizată (CV) și procesare a limbajului natural (NLP) pentru a îmbunătăți procesele semiconductoare. În timpul liber, îi place să joace șah și să călătorească.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- Sursa: 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/
- :are
- :este
- :nu
- :Unde
- $UP
- 1
- 10
- 100
- 13
- 16
- 2023
- 33
- 500
- 7
- a
- AC
- Academie
- acces
- Acces la date
- accesibil
- Conform
- Cont
- Conturi
- precizie
- precis
- Obține
- adăuga
- adăugare
- Suplimentar
- În plus,
- adera
- din nou
- AI
- AI / ML
- permite
- Permiterea
- permite
- de-a lungul
- deja
- de asemenea
- Amazon
- Amazon SageMaker
- Amazon SageMaker Studio
- Amazon Web Services
- Amazon Web Services (AWS)
- an
- și
- Anunțuri
- răspunde
- răspunsuri
- Orice
- API-uri
- aplicaţia
- aplicatii
- abordare
- Apps
- arhitectură
- SUNT
- artificial
- inteligență artificială
- AS
- cere
- evalua
- Asistent
- Asociație
- presupune
- At
- spori
- augmented
- măriri
- Autentificare
- Auto
- în mod automat
- disponibil
- evita
- acordate
- Premii
- AWS
- bazat
- BE
- fost
- înainte
- CEL MAI BUN
- Mai bine
- Blog
- Blog
- corp
- difuza
- construi
- construit-in
- by
- CAN
- caz
- cazuri
- Centru
- lanţ
- lanţuri
- provocări
- taxe
- verifica
- Şah
- Alege
- alegere
- ales
- Oraș
- clasă
- curat
- clic
- închis
- cod
- colabora
- colegii
- COM
- combina
- combină
- cum
- vine
- comentarii
- Completă
- Calcula
- calculator
- Computer Vision
- concis
- încredere
- Configuraţie
- CONFIRMAT
- constă
- Consoleze
- Containere
- conţinut
- context
- continua
- Convenție
- conversații
- converti
- Corespunzător
- ar putea
- Covid-19
- Pandemie COVID-19
- crea
- a creat
- Crearea
- În prezent
- personalizat
- client
- experienta clientului
- clienţii care
- de date
- Baza de date
- baze de date
- decide
- Mod implicit
- încânta
- demonstra
- demonstrat
- dependențe
- implementa
- dislocate
- Implementarea
- desfășurarea
- detaliat
- în curs de dezvoltare
- Dezvoltare
- dispozitiv
- Dialog
- diferit
- discuta
- distribuire
- împărţi
- document
- documente
- domeniu
- domenii
- don
- Dont
- jos
- Descarca
- două
- în timpul
- dinamic
- e
- Mai devreme
- cu ușurință
- Eforturile
- element
- Încorporarea
- EMEA
- permite
- permițând
- capăt
- Punct final
- angajat
- spori
- Divertisment
- în întregime
- Mediu inconjurator
- echipat
- stabilit
- evenimente
- EVER
- evoluţie
- exemplu
- există
- aștepta
- de aşteptat
- experienţă
- experiment
- explora
- extern
- extrage
- Față
- facilitând
- FAST
- cel mai rapid
- DESCRIERE
- puțini
- final
- descoperire
- First
- prima dată
- cinci
- Concentra
- se concentrează
- urma
- următor
- Pentru
- formă
- format
- Înainte
- Gratuit
- prietenos
- din
- complet
- funcţie
- funcțional
- viitor
- Câştig
- genera
- generată
- generează
- generaţie
- generativ
- AI generativă
- generator
- obține
- La nivel global
- Goluri
- merge
- GPU
- acordate
- fericit
- Avea
- având în
- he
- ajutor
- util
- ajutor
- ajută
- la nivel înalt
- performanta ridicata
- superior
- lui
- Lovit
- Cum
- Cum Pentru a
- Totuși
- HTML
- HTTPS
- Butuc
- Față îmbrățișată
- i
- IBC
- ICON
- ID
- Identitate
- if
- ilustrează
- imagine
- punerea în aplicare a
- implementarea
- Punere în aplicare a
- import
- îmbunătăţi
- îmbunătățit
- îmbunătăţeşte
- in
- În altele
- include
- Inclusiv
- Crește
- crescând
- index
- industrie
- Evenimente din industrie
- informații
- Infrastructură
- inițială
- intrare
- instala
- instanță
- instrucțiuni
- integrate
- Inteligență
- interconectate
- intern
- Internațional
- Internet
- acces la internet
- în
- IT
- ESTE
- călătorie
- jpg
- JSON
- doar
- A pastra
- chei
- Cunoaște
- cunoştinţe
- limbă
- mare
- lansa
- învăţare
- stânga
- Lungime
- Nivel
- biblioteci
- ca
- LIMITĂ
- Linie
- Lamă
- LLM
- încărca
- încărcător
- local
- Jos
- maşină
- masina de învățare
- face
- flexibil
- gestionate
- multe
- potrivire
- maxim
- între timp
- Mass-media
- Memorie
- meta
- Metadata
- metodă
- migra
- ML
- MLOps
- model
- Modele
- mai mult
- cele mai multe
- trebuie sa
- NAB
- nume
- național
- Natural
- Procesarea limbajului natural
- Navigaţi
- Navigare
- necesar
- Nevoie
- nevoilor
- Nou
- Acces nou
- New York
- New York City
- următor
- nlp
- Nu.
- caiet
- noiembrie
- acum
- of
- oferi
- promoții
- oficial
- Site oficial
- on
- ONE
- on-line
- deschide
- open-source
- optimizate
- Opțiune
- Opţiuni
- or
- organizație
- OS
- Altele
- al nostru
- afară
- schiță
- producție
- iesiri
- propriu
- tampon
- pagină
- pandemie
- pâine
- parametrii
- parte
- parteneri
- trece
- Efectua
- performanță
- permisiuni
- fază
- piese
- Plato
- Informații despre date Platon
- PlatoData
- joc
- "vă rog"
- Post
- postări
- preferat
- prezenta
- precedent
- în prealabil
- proces
- procese
- prelucrare
- Profil
- proiect
- Proiecte
- prototip
- prototipuri
- furniza
- furnizarea
- public
- public
- publicat
- scopuri
- Piton
- pirtorh
- calitate
- căutare
- întrebare
- Întrebări
- Rapid
- repede
- rapid
- repede
- ajungând
- în timp real
- recent
- reţetă
- trimite
- referință
- cu privire la
- redeschide
- necesita
- necesar
- Cerinţe
- Necesită
- Resurse
- răspuns
- răspunsuri
- rezultat
- relua
- reveni
- revizuiască
- dreapta
- Rol
- Alerga
- funcţionare
- sagemaker
- sake
- acelaşi
- Economisiți
- salvate
- Spune
- Scară
- scalare
- programa
- programare
- Caută
- Cautari
- Al doilea
- secțiuni
- vedea
- semiconductor
- trimite
- trimis
- serverul
- serviciu
- Servicii
- set
- instalare
- Distribuie
- ea
- Arăta
- a prezentat
- a arătat
- închide
- Închide
- asemănător
- simplitate
- singur
- Mărimea
- So
- Social
- social media
- soluţie
- soluţii
- unele
- Sursă
- Surse
- specialist
- specific
- specific
- standalone
- Începe
- început
- Pornire
- static
- Pas
- paşi
- Stop
- stoca
- stocate
- magazine
- simplu
- studio
- astfel de
- suficient
- a sustine
- Suportat
- sigur
- rapid
- ia
- Sarcină
- sarcini
- tehnici de
- Tehnologia
- șablon
- a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match.
- decât
- acea
- lor
- Lor
- Acolo.
- astfel
- Acestea
- ei
- acest
- trei
- Prin
- debit
- timp
- la
- semn
- tokeniza
- Unelte
- subiect
- lanternă
- excursii
- Tren
- transformatoare
- tranziţie
- Traveling
- adevărat
- încerca
- Două
- tip
- Tipuri
- tipic
- tipic
- în
- Universal
- până la
- up-to-data
- actualizări
- Folosire
- utilizare
- carcasa de utilizare
- utilizat
- Utilizator
- Experiența de utilizare
- utilizări
- folosind
- folosi
- valoare
- diverse
- Verificare
- verifica
- versiune
- de
- spectatori
- Virtual
- tururi virtuale
- vizibilitate
- viziune
- Vizita
- Vizite
- umbla
- vrea
- Cale..
- we
- web
- servicii web
- website
- săptămâni
- au fost
- cand
- oricând
- care
- în timp ce
- voi
- cu
- în
- fără
- Castigat
- cuvinte
- Apartamente
- a lucrat
- lucrător
- flux de lucru
- de lucru
- fabrică
- an
- ani
- York
- Tu
- Ta
- te
- zephyrnet