Retrieval Augmented Generation (RAG) mahdollistaa suuren kielimallin (LLM) käyttämisen ulkoisten tietolähteiden, kuten arkiston, tietokantojen ja API:iden, tietoihin ilman tarvetta hienosäätää sitä. Käytettäessä generatiivista tekoälyä kysymyksiin vastaamiseen, RAG:n avulla LLM:t voivat vastata kysymyksiin olennaisimmilla ja ajantasaisimmilla tiedoilla ja valinnaisesti viitata tietolähteisiinsä todentamista varten.
Tyypillinen RAG-ratkaisu tiedonhakuun asiakirjoista käyttää upotusmallia datan muuntamiseen tietolähteistä upotuksiksi ja tallentaa nämä upotukset vektoritietokantaan. Kun käyttäjä kysyy kysymyksen, se hakee vektoritietokannasta ja hakee asiakirjoja, jotka muistuttavat eniten käyttäjän kyselyä. Seuraavaksi se yhdistää haetut asiakirjat ja käyttäjän kyselyn lisättyyn kehotteeseen, joka lähetetään LLM:lle tekstin luomista varten. Tässä toteutuksessa on kaksi mallia: upotusmalli ja LLM, joka luo lopullisen vastauksen.
Tässä viestissä esittelemme, miten sitä käytetään Amazon SageMaker Studio rakentaa RAG-kysymykseen vastausratkaisu.
Muistikirjojen käyttö RAG-pohjaiseen kysymykseen vastaamiseen
RAG:n käyttöönotto edellyttää tyypillisesti erilaisten upotusmallien, vektoritietokantojen, tekstinluontimallien ja kehotteiden kokeilemista sekä koodin virheenkorjausta, kunnes saavutat toimivan prototyypin. Amazon Sage Maker tarjoaa hallittuja Jupyter-kannettavia, jotka on varustettu GPU-esiintymillä, joiden avulla voit nopeasti kokeilla tämän alkuvaiheen aikana ilman lisäinfrastruktuurin pyörittämistä. Muistikirjojen käyttämiseen SageMakerissa on kaksi vaihtoehtoa. Ensimmäinen vaihtoehto on nopea käynnistys kannettavat tietokoneet saatavilla SageMaker Studion kautta. SageMaker Studiossa, integroidussa kehitysympäristössä (IDE), joka on tarkoitettu ML:lle, voit käynnistää muistikirjoja, jotka toimivat eri ilmentymätyypeillä ja eri kokoonpanoilla, tehdä yhteistyötä kollegoiden kanssa ja käyttää koneoppimisen (ML) tarkoitukseen rakennettuja lisäominaisuuksia. Toinen vaihtoehto on käyttää a SageMaker-muistikirjan ilmentymä, joka on täysin hallittu ML-laskentaesiintymä, joka käyttää Jupyter Notebook -sovellusta.
Tässä viestissä esittelemme RAG-ratkaisun, joka täydentää mallin tietämystä lisätiedoilla ulkoisista tietolähteistä tarjotakseen tarkempia vastauksia mukautetulle toimialueelle. Käytämme yhtä SageMaker Studio -kannettavaa, joka on käynnissä ml.g5.2xlarge
esimerkki (1 A10G GPU) ja Llama 2 7b chat hf, Llama 2 7b:n hienosäädetty versio, joka on optimoitu Hugging Face Hubin dialogikäyttötapauksiin. Käytämme ulkoisena esimerkkitietona kahta AWS Media & Entertainment -blogiviestiä, jotka muunnamme upotuksiksi BAAI/bge-small-en-v1.5 upotukset. Säilytämme upotukset Käpy, vektoripohjainen tietokanta, joka tarjoaa tehokkaan haun ja samankaltaisuushaun. Keskustelemme myös siitä, kuinka voit siirtyä kokeilemisesta muistikirjassa mallien käyttöönottoon SageMaker-päätepisteisiin reaaliaikaisten päätelmien tekemiseksi, kun prototyyppisi on valmis. Samaa lähestymistapaa voidaan käyttää eri mallien ja vektoritietokantojen kanssa.
Ratkaisun yleiskatsaus
Seuraava kaavio kuvaa ratkaisuarkkitehtuuria.
Ratkaisun käyttöönotto koostuu kahdesta korkean tason vaiheesta: ratkaisun kehittämisestä SageMaker Studio -kannettavilla ja mallien käyttöönotolla johtopäätöksiä varten.
Kehitä ratkaisu SageMaker Studio -muistikirjoilla
Aloita ratkaisun kehittäminen suorittamalla seuraavat vaiheet:
- Lataa Hugging Face Hubin Llama-2 7b -chat-malli kannettavaan muistikirjaan.
- Luo PromptTemplate -sovelluksella LangChain ja käytä sitä luomaan kehotteita käyttötapaustasi varten.
- Lisää 1–2 esimerkkikehotuksiin asiaankuuluvaa staattista tekstiä ulkoisista asiakirjoista kehotteen kontekstiksi ja arvioi, paraneeko vastausten laatu.
- Olettaen, että laatu paranee, ota käyttöön RAG-kysymykseen vastaamisen työnkulku:
- Kerää ulkoiset asiakirjat, jotka voivat auttaa mallia vastaamaan paremmin käyttötapauksesi kysymyksiin.
- Lataa BGE-upotusmalli ja käytä sitä näiden asiakirjojen upotusten luomiseen.
- Tallenna nämä upotukset käpyhakemistoon.
- Kun käyttäjä kysyy kysymyksen, suorita samankaltaisuushaku Pineconessa ja lisää samankaltaisimpien asiakirjojen sisältö kehotteen kontekstiin.
Ota mallit käyttöön SageMakerissa mittakaavassa olevien päätelmien tekemiseksi
Kun saavutat suorituskykytavoitteesi, voit ottaa mallit käyttöön SageMakerissa luovien tekoälysovellusten käyttöön:
- Ota Llama-2 7b -keskustelumalli käyttöön SageMakerin reaaliaikaiseen päätepisteeseen.
- Ota käyttöön BAAI/bge-small-en-v1.5 upotusmalli SageMakerin reaaliaikaiseen päätepisteeseen.
- Käytä käyttöön otettuja malleja kysymyksessäsi vastaamalla generatiivisiin tekoälysovelluksiin.
Seuraavissa osioissa opastamme sinut tämän ratkaisun käyttöönoton vaiheissa SageMaker Studio -muistikirjoissa.
Edellytykset
Jotta voit seurata tämän viestin vaiheita, sinulla on oltava AWS-tili ja AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) rooli, jolla on oikeudet luoda ja käyttää ratkaisuresursseja. Jos olet uusi AWS:ssä, katso Luo erillinen AWS-tili.
Jotta voit käyttää SageMaker Studio -muistikirjoja AWS-tililläsi, tarvitset a SageMaker-verkkotunnus käyttäjäprofiililla, jolla on oikeudet käynnistää SageMaker Studio -sovellus. Jos olet uusi SageMaker Studion käyttäjä, Nopea Studion asennus on nopein tapa päästä alkuun. Yhdellä napsautuksella SageMaker tarjoaa SageMaker-toimialueelle oletusesiasetukset, mukaan lukien käyttäjäprofiilin, IAM-roolin, IAM-todennuksen ja julkisen Internet-yhteyden määrittämisen. Tämän viestin muistikirja olettaa ml.g5.2xlarge
ilmentymän tyyppi. Voit tarkastella kiintiötäsi tai lisätä sitä avaamalla AWS-palvelukiintiöt-konsolin ja valitsemalla AWS-palvelut valitse siirtymisruudussa Amazon Sage Makerja katso Studio KernelGateway -sovellusten arvot, jotka ovat käynnissä ml.g5.2xlarge
tapauksissa.
Kun olet vahvistanut kiintiörajasi, sinun on suoritettava riippuvuudet, jotta voit käyttää Llama 2 7b -chattia.
Llama 2 7b chat on saatavilla alla Llama 2 lisenssi. Päästäksesi Llama 2:een Hugging Facessa, sinun on ensin suoritettava muutama vaihe:
- Luo Hugging Face -tili, jos sinulla ei vielä ole sellaista.
- Täytä metassa oleva lomake "Pyydä pääsyä Llaman seuraavaan versioon". verkkosivusto.
- Pyydä käyttöoikeutta Llama 2 7b chat Hugging Facella.
Kun sinulle on myönnetty käyttöoikeus, voit luoda uuden käyttöoikeustunnuksen käyttääksesi malleja. Luo käyttöoikeustunnus siirtymällä kohtaan Asetukset -sivu Hugging Face -sivustolla.
Sinulla on oltava tili Pineconessa, jotta voit käyttää sitä vektoritietokantana. Pinecone on saatavilla AWS:ssä verkkotunnuksen kautta AWS Marketplace. Pinecone-verkkosivusto tarjoaa myös mahdollisuuden luoda a ilmainen tili joka sisältää oikeudet luoda yksi indeksi, joka riittää tämän viestin tarkoituksiin. Nouda Pinecone-avaimet avaamalla Pinecone konsoli Ja valitse API-avaimet.
Määritä muistikirja ja ympäristö
Jos haluat seurata tämän viestin koodia, avaa SageMaker Studio ja kloonaa seuraava GitHub-arkisto. Avaa seuraavaksi muistikirja studio-local-gen-ai/rag/RAG-with-Llama-2-on-Studio.ipynb ja valitse PyTorch 2.0.0 Python 3.10 GPU Optimized -kuva, Python 3 -ydin ja ml.g5.2xlarge
esiintymän tyyppinä. Jos tämä on ensimmäinen kerta, kun käytät SageMaker Studio -muistikirjoja, katso kohta Luo tai avaa Amazon SageMaker Studio -muistikirja.
Kehitysympäristön määrittämistä varten sinun on asennettava tarvittavat Python-kirjastot seuraavan koodin osoittamalla tavalla:
%%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
Lataa esikoulutettu malli ja tokenizer
Kun olet tuonut tarvittavat kirjastot, voit ladata Llama-2 7b chat mallia vastaavien Hugging Facen tokenizereiden kanssa. Nämä ladatut mallin artefaktit tallennetaan SageMaker Studion paikalliseen hakemistoon. Tämän avulla voit ladata ne nopeasti uudelleen muistiin aina, kun sinun on jatkettava työtäsi eri aikaan.
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)
Esitä kysymys, joka vaatii ajantasaista tietoa
Nyt voit alkaa käyttää mallia ja esittää kysymyksiä. Llama-2 chat-mallit odottavat kehotteen noudattavan seuraavaa muotoa:
<s>[INST] <<SYS>>
system_prompt
<<SYS>>
{{ user_message }} [/INST]
Voit käyttää PromptTemplate LangChainista luodaksesi kehotteen muotoon perustuvan reseptin, jotta voit helposti luoda kehotteita jatkossa:
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'] )
Esitetään mallille kysymys, joka vaatii tuoretta tietoa vuodesta 2023. Voit käyttää LangChainia ja erityisesti LLMChain ketjun tyyppi ja anna parametreina LLM, aiemmin luomasi kehotemalli ja kysymys:
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)
Saamme seuraavan generoidun vastauksen:
Kiitos yhteydenotostasi! AWS M&E Customer Experience Center New Yorkissa on tällä hetkellä suljettu vierailuilta COVID-19-pandemian vuoksi. Voit kuitenkin tarkistaa heidän viralliselta verkkosivustoltaan tai sosiaalisen median tileiltä päivityksiä siitä, milloin keskus avataan uudelleen. Sillä välin voit tutustua heidän virtuaalikierroksiinsa ja verkossa saatavilla oleviin resursseihinsa.
Paranna vastausta lisäämällä kehotteeseen kontekstia
Antamamme vastaus ei ole täysin totta. Katsotaan, voimmeko parantaa sitä tarjoamalla kontekstia. Voit lisätä otteen viestistä AWS julkistaa uuden M&E Customer Experience Centerin New Yorkissa, joka sisältää päivityksiä aiheesta vuodesta 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."""
Käytä LLMChainia uudelleen ja välitä edellinen teksti kontekstina:
context_response = llm_chain.predict(context=context, question=question)
print(context_response)
Uusi vastaus vastaa kysymykseen ajantasaisilla tiedoilla:
Voit vierailla AWS M&E Customer Experience Centerissä New Yorkissa 13. marraskuuta alkaen. Lähetä sähköpostia osoitteeseen AWS-MediaEnt-CXC@amazon.com varataksesi vierailun.
Olemme vahvistaneet, että lisäämällä oikea konteksti mallin suorituskyky paranee. Nyt voit keskittyä oikean kontekstin löytämiseen ja lisäämiseen kysytylle kysymykselle. Toisin sanoen toteuttaa RAG.
Toteuta RAG-kysymysten vastaus BGE-upotuksilla ja Pineconeilla
Tässä vaiheessa sinun on päätettävä tietolähteistä mallin tuntemuksen parantamiseksi. Nämä lähteet voivat olla organisaatiosi sisäisiä verkkosivuja tai asiakirjoja tai julkisesti saatavilla olevia tietolähteitä. Tätä viestiä varten ja yksinkertaisuuden vuoksi olemme valinneet kaksi vuonna 2023 julkaistua AWS-blogiviestiä:
Nämä viestit ovat jo saatavilla PDF-dokumentteina SageMaker Studion dataprojektihakemistossa nopeaa käyttöä varten. Voit jakaa asiakirjat hallittaviin osiin käyttämällä RecursiveCharacterTextSplitter menetelmä LangChainista:
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)
Käytä seuraavaksi BGE-upotusmallia bge-small-en luoma Beijing Academy of Artificial Intelligence (BAAI) joka on saatavilla Hugging Facessa näiden osien upotusten luomiseen. Lataa ja tallenna malline Studion paikalliseen hakemistoon. Käytämme fp32:ta, jotta se voi toimia ilmentymän CPU:ssa.
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()
Käytä seuraavaa koodia luodaksesi embedding_generator-funktion, joka ottaa asiakirjan palaset syötteenä ja luo upotukset käyttämällä BGE-mallia:
# 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))
Tässä viestissä esittelemme RAG-työnkulkua käyttämällä Pineconea, hallittua, pilvipohjaista natiivia vektoritietokanta joka tarjoaa myös an API samankaltaisuuden hakua varten. Voit vapaasti kirjoittaa seuraavan koodin uudelleen käyttämään haluamaasi vektoritietokantaa.
Alustamme a Pinecone python asiakas ja luo uusi vektorihakuindeksi käyttämällä upotusmallin lähtöpituutta. Käytämme LangChainin sisäänrakennettua Pinecone-luokkaa edellisessä vaiheessa luomamme upotukset. Se tarvitsee kolme parametria: syötettävät asiakirjat, upotusten luontitoiminnon ja Pinecone-indeksin nimen.
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
)
Kun Llama-2 7B -chat-malli on ladattu muistiin ja upotukset on integroitu Pinecone-indeksiin, voit nyt yhdistää nämä elementit parantaaksesi Llama 2:n vastauksia meidän kysymysvastausten käyttötapauksessa. Tämän saavuttamiseksi voit käyttää LangChainia RetrievalQA, joka täydentää aloituskehotetta vektorisäilön vastaavilla asiakirjoilla. Asettamalla return_source_documents=True
, saat näkyvyyden täsmällisiin asiakirjoihin, joita käytetään vastauksen luomiseen osana vastausta, jolloin voit varmistaa vastauksen oikeellisuuden.
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))
Saamme seuraavan vastauksen:
K: Milloin voin vierailla AWS M&E Customer Experience Centerissä New Yorkissa?
V: Autan mielelläni! Asiayhteyden mukaan AWS M&E Customer Experience Center New Yorkissa on käytettävissä vierailuille 13. marraskuuta alkaen. Voit varata vierailun lähettämällä sähköpostia osoitteeseen AWS-MediaEnt-CXC@amazon.com.
Lähdeasiakirjat:
{'page': 4.0, 'source': 'data/AWS ilmoittaa uudesta M&E-asiakaskokemuskeskuksesta New Yorkissa _ AWS for M&E Blog.pdf'}
{'page': 2.0, 'source': 'data/AWS ilmoittaa uudesta M&E-asiakaskokemuskeskuksesta New Yorkissa _ AWS for M&E Blog.pdf'}
Kokeillaan erilaista kysymystä:
question2=" How many awards have AWS Media Services won in 2023?"
print_response(llm_qa_chain(question2))
Saamme seuraavan vastauksen:
K: Kuinka monta palkintoa AWS Media Services on voittanut vuonna 2023?
V: Blogiviestin mukaan AWS Media Services on voittanut viisi alan palkintoa vuonna 2023.'
Lähdeasiakirjat:
{'sivu': 0.0, 'lähde': 'data/AWS Media Services sai alan tunnustuksia _ AWS for M&E Blog.pdf'}
{'sivu': 1.0, 'lähde': 'data/AWS Media Services sai alan tunnustuksia _ AWS for M&E Blog.pdf'}
Kun olet luonut riittävän luottamustason, voit ottaa mallit käyttöön SageMaker-päätepisteet reaaliaikaisten päätelmien tekemiseen. Nämä päätepisteet ovat täysin hallittuja ja tarjoavat tuen automaattiselle skaalalle.
SageMaker tarjoaa suuria mallipäätelmiä käyttämällä Large Model Inference -säiliöitä (LMI), joita voimme hyödyntää malliemme käyttöönotossa. Nämä säiliöt on varustettu esiasennetuilla avoimen lähdekoodin kirjastoilla, kuten DeepSpeedillä, mikä helpottaa suorituskykyä parantavien tekniikoiden, kuten tensorin rinnakkaisuuden, käyttöönottoa päättelyn aikana. Lisäksi he käyttävät DJLServingiä valmiiksi integroituna mallipalvelimena. DJLS-palvelu on tehokas, universaali mallinpalveluratkaisu, joka tukee dynaamista eräajoa ja työntekijöiden automaattista skaalausta, mikä lisää suorituskykyä.
Lähestymistapassamme käytämme SageMaker LMI:tä DJLServingin ja DeepSpeed Inferencen kanssa Llama-2-chat 7b- ja BGE-mallien käyttöönottamiseksi SageMaker-päätepisteissä, jotka toimivat ml.g5.2xlarge
tapauksia, mikä mahdollistaa reaaliaikaisen päättelyn. Jos haluat noudattaa näitä vaiheita itse, katso mukana muistikirja yksityiskohtaisia ohjeita.
Tarvitset kaksi ml.g5.2xlarge
käyttöönottoa varten. Voit tarkastella kiintiötäsi tai lisätä sitä avaamalla AWS-palvelukiintiöt-konsolin ja valitsemalla AWS-palvelut valitse siirtymisruudussa Amazon Sage Maker, ja katso arvoa varten ml.g5.2xlarge
päätepisteen käyttöä varten.
Seuraavissa vaiheissa kuvataan mukautettujen mallien käyttöönottoprosessi RAG-työnkulkua varten SageMaker-päätepisteessä:
- Ota käyttöön Laama-2 7b chat-mallin SageMakerin reaaliaikaiseen päätepisteeseen, joka toimii
ml.g5.2xlarge
esimerkiksi nopeaan tekstin luomiseen. - Ota käyttöön BAAI/bge-small-en-v1.5 upotusmalli SageMakerin reaaliaikaiseen päätepisteeseen, joka toimii an
ml.g5.2xlarge
ilmentymä. Vaihtoehtoisesti voit ottaa käyttöön oman upotusmallisi. - Esitä kysymys ja käytä LangChainia RetrievalQA täydentääksesi kehotetta Pineconen vastaavilla asiakirjoilla, tällä kertaa käyttämällä SageMakerin reaaliaikaisessa päätepisteessä otettua mallia:
# 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}
)
- Varmista LangChainilla, että SageMaker-päätepiste upotusmallin kanssa toimii odotetulla tavalla, jotta sitä voidaan käyttää myöhempään asiakirjojen käsittelyyn:
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']
Puhdistaa
Suorita seuraavat vaiheet puhdistaaksesi resurssit:
- Kun olet lopettanut SageMaker Studio -muistikirjan työskentelyn, varmista, että suljet sen
ml.g5.2xlarge
esimerkiksi välttääksesi maksut valitsemalla pysäytyskuvakkeen. Voit myös määrittää elinkaaren määrityskomentosarjat sammuttaa resurssit automaattisesti, kun niitä ei käytetä.
- Jos otit mallit käyttöön SageMaker-päätepisteissä, poista päätepisteet suorittamalla seuraava koodi muistikirjan lopussa:
#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
)
- Suorita lopuksi seuraava rivi poistaaksesi Pinecone-indeksin:
pinecone.delete_index(index_name)
Yhteenveto
SageMaker-muistikirjat tarjoavat suoraviivaisen tavan aloittaa matkasi Retrieval Augmented Generationin avulla. Niiden avulla voit kokeilla vuorovaikutteisesti erilaisia malleja, kokoonpanoja ja kysymyksiä ilman lisäinfrastruktuuria. Tässä viestissä osoitimme, kuinka voit parantaa Llama 2 7b -chatin suorituskykyä kysymysvastauksen käyttötapauksessa LangChainilla, BGE-upotusmallilla ja Pineconella. Aloita käynnistämällä SageMaker Studio ja suorittamalla muistikirja saatavilla seuraavassa GitHub repo. Ole hyvä ja jaa ajatuksesi kommenttiosiossa!
Tietoja kirjoittajista
Anastasia Tzeveleka on AWS:n koneoppimisen ja tekoälyn asiantuntijaratkaisujen arkkitehti. Hän työskentelee asiakkaiden kanssa EMEA-alueella ja auttaa heitä suunnittelemaan koneoppimisratkaisuja mittakaavassa AWS-palveluiden avulla. Hän on työskennellyt projekteissa eri aloilla, mukaan lukien Natural Language Processing (NLP), MLOps ja Low Code No Code -työkalut.
Pranav Murthy on AI/ML Specialist Solutions -arkkitehti AWS:ssä. Hän keskittyy auttamaan asiakkaita rakentamaan, kouluttamaan, ottamaan käyttöön ja siirtämään koneoppimistyökuormia SageMakeriin. Hän työskenteli aiemmin puolijohdeteollisuudessa kehittäen suuria tietokonenäkö- (CV) ja luonnollisen kielen käsittelymalleja (NLP) puolijohdeprosessien parantamiseksi. Vapaa-ajallaan hän pelaa shakkia ja matkustaa.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoData.Network Vertical Generatiivinen Ai. Vahvista itseäsi. Pääsy tästä.
- PlatoAiStream. Web3 Intelligence. Tietoa laajennettu. Pääsy tästä.
- PlatoESG. hiili, CleanTech, energia, ympäristö, Aurinko, Jätehuolto. Pääsy tästä.
- PlatonHealth. Biotekniikan ja kliinisten kokeiden älykkyys. Pääsy tästä.
- Lähde: 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/
- :on
- :On
- :ei
- :missä
- $ YLÖS
- 1
- 10
- 100
- 13
- 16
- 2023
- 33
- 500
- 7
- a
- AC
- Akatemia
- pääsy
- Tietojen saatavuus
- saatavilla
- Mukaan
- Tili
- Tilit
- tarkkuus
- tarkka
- Saavuttaa
- lisätä
- lisää
- lisä-
- Lisäksi
- noudattaa
- uudelleen
- AI
- AI / ML
- sallia
- Salliminen
- mahdollistaa
- pitkin
- jo
- Myös
- Amazon
- Amazon Sage Maker
- Amazon SageMaker Studio
- Amazon Web Services
- Amazon Web Services (AWS)
- an
- ja
- ilmoittaa
- vastaus
- vastauksia
- Kaikki
- API
- sovelluksen
- sovellukset
- lähestymistapa
- sovellukset
- arkkitehtuuri
- OVAT
- keinotekoinen
- tekoäly
- AS
- kysyä
- arvioida
- Avustaja
- Yhdistys
- olettaa
- At
- lisätä
- täydennetty
- augments
- Authentication
- auto
- automaattisesti
- saatavissa
- välttää
- palkittiin
- palkinnot
- AWS
- perustua
- BE
- ollut
- ennen
- PARAS
- Paremmin
- Blogi
- Blogitekstit
- elin
- lähettää
- rakentaa
- sisäänrakennettu
- by
- CAN
- tapaus
- tapauksissa
- keskus
- ketju
- kahleet
- haasteet
- maksut
- tarkastaa
- shakki
- Valita
- valita
- valittu
- Kaupunki
- luokka
- puhdas
- napsauttaa
- suljettu
- koodi
- tehdä yhteistyötä
- työtovereiden
- KOM
- yhdistää
- yhdistää
- Tulla
- tulee
- kommentit
- täydellinen
- Laskea
- tietokone
- Tietokoneen visio
- suppea
- luottamus
- Konfigurointi
- CONFIRMED
- muodostuu
- Console
- Kontit
- pitoisuus
- tausta
- jatkaa
- Sopimus
- keskustelut
- muuntaa
- vastaava
- voisi
- Covid-19
- COVID-19 -pandemia
- luoda
- luotu
- Luominen
- Tällä hetkellä
- asiakassuhde
- asiakas
- asiakaskokemus
- Asiakkaat
- tiedot
- tietokanta
- tietokannat
- päättää
- oletusarvo
- ilahduttaa
- osoittaa
- osoittivat
- riippuvuudet
- sijoittaa
- käyttöön
- levityspinnalta
- käyttöönotto
- yksityiskohtainen
- kehittämällä
- Kehitys
- laite
- Vuoropuhelu
- eri
- pohtia
- jako-
- jakaa
- asiakirja
- asiakirjat
- verkkotunnuksen
- verkkotunnuksia
- Don
- Dont
- alas
- download
- kaksi
- aikana
- dynaaminen
- e
- Aikaisemmin
- helposti
- ponnisteluja
- elementtejä
- upottamisen
- EMEA
- mahdollistaa
- mahdollistaa
- loppu
- päätepiste
- kihloissa
- parantaa
- Viihde
- täysin
- ympäristö
- varustettu
- vakiintunut
- Tapahtumat
- EVER
- evoluutio
- esimerkki
- olemassa
- odottaa
- odotettu
- experience
- kokeilu
- tutkia
- ulkoinen
- uute
- Kasvot
- helpottaminen
- FAST
- nopein
- Ominaisuudet
- harvat
- lopullinen
- löytäminen
- Etunimi
- ensimmäistä kertaa
- viisi
- Keskittää
- keskittyy
- seurata
- jälkeen
- varten
- muoto
- muoto
- Eteenpäin
- Ilmainen
- ystävällinen
- alkaen
- täysin
- toiminto
- toiminnallinen
- tulevaisuutta
- Saada
- tuottaa
- syntyy
- synnyttää
- sukupolvi
- generatiivinen
- Generatiivinen AI
- generaattori
- saada
- Maailmanlaajuisesti
- Tavoitteet
- menee
- GPU
- myönnetty
- onnellinen
- Olla
- ottaa
- he
- auttaa
- hyödyllinen
- auttaa
- auttaa
- korkean tason
- korkea suorituskyky
- korkeampi
- hänen
- Osuma
- Miten
- Miten
- Kuitenkin
- HTML
- HTTPS
- Napa
- HalaaKasvot
- i
- IBC
- ICON
- ID
- Identiteetti
- if
- havainnollistaa
- kuva
- toteuttaa
- täytäntöönpano
- täytäntöönpanosta
- tuoda
- parantaa
- parani
- parantaa
- in
- Muilla
- sisältää
- Mukaan lukien
- Kasvaa
- lisää
- indeksi
- teollisuus
- teollisuus Tapahtumia
- tiedot
- Infrastruktuuri
- ensimmäinen
- panos
- asentaa
- esimerkki
- ohjeet
- integroitu
- Älykkyys
- toisiinsa
- sisäinen
- kansainvälisesti
- Internet
- Internet-yhteys
- tulee
- IT
- SEN
- matka
- jpg
- json
- vain
- Pitää
- avaimet
- Tietää
- tuntemus
- Kieli
- suuri
- käynnistää
- oppiminen
- vasemmalle
- Pituus
- Taso
- kirjastot
- pitää
- RAJOITA
- linja
- liekki
- OTK
- kuormitus
- loader
- paikallinen
- Matala
- kone
- koneoppiminen
- tehdä
- hallittavissa
- onnistui
- monet
- matching
- maksimi
- sillä välin
- Media
- Muisti
- Meta
- Metadata
- menetelmä
- vaeltaa
- ML
- MLOps
- malli
- mallit
- lisää
- eniten
- täytyy
- NAB
- nimi
- kansallinen
- Luonnollinen
- Luonnollinen kielen käsittely
- Navigoida
- suunnistus
- välttämätön
- Tarve
- tarpeet
- Uusi
- Uusi pääsy
- New York
- new york city
- seuraava
- NLP
- Nro
- muistikirja
- marraskuu
- nyt
- of
- kampanja
- Tarjoukset
- virallinen
- Virallinen nettisivu
- on
- ONE
- verkossa
- avata
- avoimen lähdekoodin
- optimoitu
- Vaihtoehto
- Vaihtoehdot
- or
- organisaatio
- OS
- Muut
- meidän
- ulos
- ääriviivat
- ulostulo
- lähdöt
- oma
- tyyny
- sivulla
- pandeeminen
- lasi
- parametrit
- osa
- kumppani
- kulkea
- Suorittaa
- suorituskyky
- Oikeudet
- vaihe
- kappaletta
- Platon
- Platonin tietotieto
- PlatonData
- pelaa
- Ole hyvä
- Kirje
- Viestejä
- Suositut
- esittää
- edellinen
- aiemmin
- prosessi
- Prosessit
- käsittely
- Profiili
- projekti
- hankkeet
- prototyyppi
- prototyyppien
- toimittaa
- tarjoamalla
- julkinen
- julkisesti
- julkaistu
- tarkoituksiin
- Python
- pytorch
- laatu
- etsintä
- kysymys
- kysymykset
- nopea
- nopeasti
- nopea
- nopeasti
- päästäisiin
- reaaliaikainen
- äskettäinen
- resepti
- katso
- viite
- suhteen
- merkityksellinen
- uudelleen
- edellyttää
- tarvitaan
- vaatimukset
- Vaatii
- Esittelymateriaalit
- vastaus
- vasteet
- johtua
- jatkaa
- palata
- arviot
- oikein
- Rooli
- ajaa
- juoksu
- sagemaker
- tähden
- sama
- Säästä
- tallennettu
- sanoa
- Asteikko
- skaalaus
- aikataulu
- aikataulutus
- Haku
- haut
- Toinen
- osiot
- nähdä
- puolijohde
- lähettää
- lähetetty
- palvelin
- palvelu
- Palvelut
- setti
- asetus
- Jaa:
- hän
- näyttää
- malliesimerkki
- osoittivat
- kiinni
- sulkea
- samankaltainen
- yksinkertaisuus
- single
- Koko
- So
- sosiaalinen
- sosiaalinen media
- ratkaisu
- Ratkaisumme
- jonkin verran
- lähde
- Lähteet
- asiantuntija
- erityinen
- erityisesti
- itsenäinen
- Alkaa
- alkoi
- Aloita
- staattinen
- Vaihe
- Askeleet
- stop
- verkkokaupasta
- tallennettu
- varastot
- suora
- studio
- niin
- riittävä
- tuki
- Tuetut
- varma
- nopeasti
- vie
- Tehtävä
- tehtävät
- tekniikat
- Elektroniikka
- sapluuna
- teksti
- kuin
- että
- -
- heidän
- Niitä
- Siellä.
- siten
- Nämä
- ne
- tätä
- kolmella
- Kautta
- suoritusteho
- aika
- että
- symbolinen
- merkitä
- työkalut
- aihe
- taskulamppu
- matkat
- Juna
- muuntajat
- siirtyminen
- Matkustaminen
- totta
- yrittää
- kaksi
- tyyppi
- tyypit
- tyypillinen
- tyypillisesti
- varten
- Yleismaailmallinen
- asti
- ajanmukainen
- Päivitykset
- Käyttö
- käyttää
- käyttölaukku
- käytetty
- käyttäjä
- Käyttäjäkokemus
- käyttötarkoituksiin
- käyttämällä
- käyttää
- arvo
- eri
- Vahvistus
- todentaa
- versio
- kautta
- katsojat
- Virtual
- virtuaalimatkat
- näkyvyys
- visio
- Vierailla
- Vierailut
- kävellä
- haluta
- Tapa..
- we
- verkko
- verkkopalvelut
- Verkkosivu
- viikkoa
- olivat
- kun
- aina kun
- joka
- vaikka
- tulee
- with
- sisällä
- ilman
- Voitetut
- sanoja
- Referenssit
- työskenteli
- työntekijä
- työnkulku
- työskentely
- toimii
- vuosi
- vuotta
- york
- Voit
- Sinun
- itse
- zephyrnet