La génération augmentée de récupération (RAG) vous permet de fournir un modèle de langage étendu (LLM) avec accès aux données provenant de sources de connaissances externes telles que des référentiels, des bases de données et des API sans avoir besoin de les affiner. Lorsqu'il utilise l'IA générative pour répondre aux questions, RAG permet aux LLM de répondre aux questions avec les informations les plus pertinentes et les plus récentes et éventuellement de citer leurs sources de données pour vérification.
Une solution RAG typique pour la récupération de connaissances à partir de documents utilise un modèle d'intégration pour convertir les données des sources de données en intégrations et stocke ces intégrations dans une base de données vectorielle. Lorsqu'un utilisateur pose une question, il recherche dans la base de données vectorielles et récupère les documents les plus similaires à la requête de l'utilisateur. Ensuite, il combine les documents récupérés et la requête de l'utilisateur dans une invite augmentée qui est envoyée au LLM pour la génération de texte. Il existe deux modèles dans cette implémentation : le modèle d'intégration et le LLM qui génère la réponse finale.
Dans cet article, nous montrons comment utiliser Amazon SageMakerStudio pour créer une solution de réponse aux questions RAG.
Utilisation de blocs-notes pour répondre aux questions basées sur RAG
La mise en œuvre de RAG implique généralement d'expérimenter divers modèles d'intégration, bases de données vectorielles, modèles de génération de texte et invites, tout en déboguant votre code jusqu'à ce que vous obteniez un prototype fonctionnel. Amazon Sage Maker propose des notebooks Jupyter gérés équipés d'instances GPU, vous permettant d'expérimenter rapidement pendant cette phase initiale sans mettre en place d'infrastructure supplémentaire. Il existe deux options pour utiliser les blocs-notes dans SageMaker. La première option est un lancement rapide ordinateurs portables disponible via SageMaker Studio. Dans SageMaker Studio, l'environnement de développement intégré (IDE) spécialement conçu pour le ML, vous pouvez lancer des blocs-notes qui s'exécutent sur différents types d'instances et avec différentes configurations, collaborer avec des collègues et accéder à des fonctionnalités supplémentaires spécialement conçues pour l'apprentissage automatique (ML). La deuxième option consiste à utiliser un Instance de notebook SageMaker, qui est une instance de calcul ML entièrement gérée exécutant l'application Jupyter Notebook.
Dans cet article, nous présentons une solution RAG qui augmente les connaissances du modèle avec des données supplémentaires provenant de sources de connaissances externes pour fournir des réponses plus précises spécifiques à un domaine personnalisé. Nous utilisons un seul bloc-notes SageMaker Studio exécuté sur un ml.g5.2xlarge
instance (1 GPU A10G) et Lama 2 7b chat hf, la version affinée de Llama 2 7b, optimisée pour les cas d'utilisation de dialogue de Hugging Face Hub. Nous utilisons deux articles du blog AWS Media & Entertainment comme exemples de données externes, que nous convertissons en intégrations avec le BAAI/bge-small-fr-v1.5 intégrations. Nous stockons les intégrations dans Pinecone, une base de données vectorielle qui offre une recherche et une correspondance de similarité hautes performances. Nous expliquons également comment passer de l'expérimentation dans le notebook au déploiement de vos modèles sur les points de terminaison SageMaker pour une inférence en temps réel lorsque vous terminez votre prototypage. La même approche peut être utilisée avec différents modèles et bases de données vectorielles.
Vue d'ensemble de la solution
Le diagramme suivant illustre l'architecture de la solution.
La mise en œuvre de la solution comprend deux étapes de haut niveau : développer la solution à l'aide de blocs-notes SageMaker Studio et déployer les modèles pour l'inférence.
Développer la solution à l'aide des notebooks SageMaker Studio
Effectuez les étapes suivantes pour commencer à développer la solution :
- Chargez le modèle de discussion Llama-2 7b depuis Hugging Face Hub dans le bloc-notes.
- Créez un modèle d'invite avec LangChaîne et utilisez-le pour créer des invites pour votre cas d'utilisation.
- Pour 1 à 2 exemples d'invites, ajoutez du texte statique pertinent provenant de documents externes comme contexte d'invite et évaluez si la qualité des réponses s'améliore.
- En supposant que la qualité s'améliore, implémentez le flux de travail de réponse aux questions RAG :
- Rassemblez les documents externes qui peuvent aider le modèle à mieux répondre aux questions de votre cas d'utilisation.
- Chargez le modèle d'intégration BGE et utilisez-le pour générer des intégrations de ces documents.
- Stockez ces intégrations dans un index Pinecone.
- Lorsqu'un utilisateur pose une question, effectuez une recherche de similarité dans Pinecone et ajoutez le contenu des documents les plus similaires au contexte de l'invite.
Déployez les modèles sur SageMaker pour une inférence à grande échelle
Lorsque vous atteignez vos objectifs de performances, vous pouvez déployer les modèles sur SageMaker pour les utiliser par des applications d'IA générative :
- Déployez le modèle de discussion Llama-2 7b sur un point de terminaison en temps réel SageMaker.
- Déployez le BAAI/bge-small-fr-v1.5 modèle d'intégration à un point de terminaison en temps réel SageMaker.
- Utilisez les modèles déployés dans votre question répondant aux applications d'IA générative.
Dans les sections suivantes, nous vous guidons à travers les étapes de mise en œuvre de cette solution dans les notebooks SageMaker Studio.
Pré-requis
Pour suivre les étapes de cet article, vous devez disposer d'un compte AWS et d'un Gestion des identités et des accès AWS (IAM) avec les autorisations nécessaires pour créer et accéder aux ressources de la solution. Si vous êtes nouveau sur AWS, consultez Créer un compte AWS autonome.
Pour utiliser les blocs-notes SageMaker Studio dans votre compte AWS, vous avez besoin d'un Domaine SageMaker avec un profil utilisateur disposant des autorisations nécessaires pour lancer l'application SageMaker Studio. Si vous êtes nouveau sur SageMaker Studio, le Configuration rapide du studio est le moyen le plus rapide de commencer. D'un simple clic, SageMaker provisionne le domaine SageMaker avec des préréglages par défaut, notamment la configuration du profil utilisateur, du rôle IAM, de l'authentification IAM et de l'accès public à Internet. Le cahier de cet article suppose un ml.g5.2xlarge
type d'instance. Pour revoir ou augmenter votre quota, ouvrez la console AWS Service Quotas, choisissez Services AWS dans le volet de navigation, choisissez Amazon Sage Maker, et reportez-vous à la valeur des applications Studio KernelGateway exécutées sur ml.g5.2xlarge
les instances.
Après avoir confirmé votre limite de quota, vous devez compléter les dépendances pour utiliser le chat Llama 2 7b.
Le chat Llama 2 7b est disponible sous le Licence Lama 2. Pour accéder à Llama 2 sur Hugging Face, vous devez d'abord suivre quelques étapes :
- Créez un compte Hugging Face si vous n’en avez pas déjà un.
- Remplissez le formulaire « Demander l’accès à la prochaine version de Llama » sur la Meta site de NDN Collective.
- Demander l'accès à Lama 2 7b discuter sur Visage étreignant.
Une fois l'accès accordé, vous pouvez créer un nouveau jeton d'accès pour accéder aux modèles. Pour créer un jeton d'accès, accédez au Paramètres page sur le site Web Hugging Face.
Vous devez avoir un compte chez Pinecone pour l'utiliser comme base de données vectorielles. Pinecone est disponible sur AWS via le Marketplace AWS . Le site Pinecone offre également la possibilité de créer un compte gratuit cela vient avec les autorisations pour créer un index unique, ce qui est suffisant pour les besoins de cet article. Pour récupérer vos clés Pinecone, ouvrez le Console pomme de pin et choisissez Clés de l'API.
Configurer le notebook et l'environnement
Pour suivre le code de cet article, ouvrez SageMaker Studio et clonez ce qui suit GitHub référentiel. Ensuite, ouvrez le bloc-notes studio-local-gen-ai/rag/RAG-with-Llama-2-on-Studio.ipynb et choisissez l'image optimisée pour le GPU PyTorch 2.0.0 Python 3.10, le noyau Python 3 et ml.g5.2xlarge
comme type d'instance. Si c'est la première fois que vous utilisez les blocs-notes SageMaker Studio, reportez-vous à Créer ou ouvrir un bloc-notes Amazon SageMaker Studio.
Pour configurer l'environnement de développement, vous devez installer les bibliothèques Python nécessaires, comme illustré dans le code suivant :
%%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
Charger le modèle pré-entraîné et le tokenizer
Après avoir importé les bibliothèques requises, vous pouvez charger le Chat Lama-2 7b modèle avec ses tokenizers correspondants de Hugging Face. Ces artefacts de modèle chargés sont stockés dans le répertoire local de SageMaker Studio. Cela vous permet de les recharger rapidement en mémoire chaque fois que vous devez reprendre votre travail à un autre moment.
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)
Poser une question qui nécessite des informations à jour
Vous pouvez maintenant commencer à utiliser le modèle et poser des questions. Les modèles de chat Llama-2 s'attendent à ce que l'invite respecte le format suivant :
<s>[INST] <<SYS>>
system_prompt
<<SYS>>
{{ user_message }} [/INST]
Vous pouvez utiliser le Modèle d'invite à partir de LangChain pour créer une recette basée sur le format d'invite, afin que vous puissiez facilement créer des invites à l'avenir :
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'] )
Posons au modèle une question qui nécessite des informations récentes de 2023. Vous pouvez utiliser LangChain et plus particulièrement le LLMChaîne type de chaîne et passez en paramètres le LLM, le modèle d'invite que vous avez créé précédemment et la question :
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)
Nous obtenons la réponse générée suivante :
Merci d'avoir tendu la main ! Le centre d'expérience client AWS M&E de New York est actuellement fermé aux visites en raison de la pandémie de COVID-19. Cependant, vous pouvez consulter leur site officiel ou leurs comptes de réseaux sociaux pour toute mise à jour sur la date de réouverture du centre. En attendant, vous pouvez explorer leurs visites virtuelles et leurs ressources disponibles en ligne.
Améliorez la réponse en ajoutant du contexte à l'invite
La réponse que nous avons générée n’est pas entièrement vraie. Voyons si nous pouvons l'améliorer en fournissant un peu de contexte. Vous pouvez ajouter un extrait du post AWS annonce un nouveau centre d'expérience client M&E à New York, qui comprend des mises à jour sur le sujet à partir de 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."""
Utilisez à nouveau LLMChain et transmettez le texte précédent comme contexte :
context_response = llm_chain.predict(context=context, question=question)
print(context_response)
La nouvelle réponse répond à la question avec des informations à jour :
Vous pouvez visiter le centre d'expérience client AWS M&E à New York à partir du 13 novembre. Veuillez envoyer un e-mail à AWS-MediaEnt-CXC@amazon.com pour planifier une visite.
Nous avons confirmé qu'en ajoutant le bon contexte, les performances du modèle sont améliorées. Vous pouvez désormais concentrer vos efforts sur la recherche et l’ajout du bon contexte pour la question posée. En d’autres termes, implémentez RAG.
Implémenter la réponse aux questions RAG avec les intégrations BGE et Pinecone
À ce stade, vous devez décider des sources d'informations pour améliorer les connaissances du modèle. Ces sources peuvent être des pages Web ou des documents internes à votre organisation, ou des sources de données accessibles au public. Pour les besoins de cet article et par souci de simplicité, nous avons choisi deux articles du blog AWS publiés en 2023 :
Ces publications sont déjà disponibles sous forme de documents PDF dans le répertoire du projet de données dans SageMaker Studio pour un accès rapide. Pour diviser les documents en morceaux gérables, vous pouvez utiliser le RécursifCharacterTextSplitter méthode de 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)
Ensuite, utilisez le modèle d'intégration BGE bge-small-fr créé par le Académie d'intelligence artificielle de Pékin (BAAI) qui est disponible sur Hugging Face pour générer les intégrations de ces morceaux. Téléchargez et enregistrez le modèle dans le répertoire local de Studio. Nous utilisons fp32 pour qu'il puisse s'exécuter sur le CPU de l'instance.
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()
Utilisez le code suivant pour créer une fonction embedding_generator, qui prend les morceaux de document en entrée et génère les intégrations à l'aide du modèle 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))
Dans cet article, nous démontrons un flux de travail RAG utilisant Pinecone, une solution gérée et native du cloud. base de données vectorielle qui offre également un API pour la recherche de similarité. Vous êtes libre de réécrire le code suivant pour utiliser votre base de données vectorielles préférée.
On initialise un Client python pomme de pin et créez un nouvel index de recherche vectorielle en utilisant la longueur de sortie du modèle d'intégration. Nous utilisons la classe Pinecone intégrée de LangChain pour ingérer les intégrations que nous avons créées à l'étape précédente. Il a besoin de trois paramètres : les documents à ingérer, la fonction du générateur d'intégrations et le nom de l'index 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
)
Avec le modèle de discussion Llama-2 7B chargé en mémoire et les intégrations intégrées dans l'index Pinecone, vous pouvez désormais combiner ces éléments pour améliorer les réponses de Llama 2 pour notre cas d'utilisation de réponse aux questions. Pour y parvenir, vous pouvez utiliser le LangChain RécupérationQA, qui augmente l'invite initiale avec les documents les plus similaires du magasin vectoriel. En définissant return_source_documents=True
, vous gagnez en visibilité sur les documents exacts utilisés pour générer la réponse dans le cadre de la réponse, vous permettant ainsi de vérifier l'exactitude de la réponse.
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))
Nous obtenons la réponse suivante :
Q : Quand puis-je visiter le centre d'expérience client AWS M&E à New York ?
R : Je suis heureux de vous aider ! Selon le contexte, l'AWS M&E Customer Experience Center de New York sera disponible pour des visites à partir du 13 novembre. Vous pouvez envoyer un e-mail à AWS-MediaEnt-CXC@amazon.com pour planifier une visite.
Documents source:
{'page' : 4.0, 'source' : 'data/AWS annonce un nouveau centre d'expérience client M&E à New York _ AWS pour M&E Blog.pdf'}
{'page' : 2.0, 'source' : 'data/AWS annonce un nouveau centre d'expérience client M&E à New York _ AWS pour M&E Blog.pdf'}
Essayons une autre question :
question2=" How many awards have AWS Media Services won in 2023?"
print_response(llm_qa_chain(question2))
Nous obtenons la réponse suivante :
Q : Combien de récompenses AWS Media Services a-t-il remportées en 2023 ?
R : Selon le billet de blog, AWS Media Services a remporté cinq prix de l'industrie en 2023. »
Documents source:
{'page' : 0.0, 'source' : 'data/AWS Media Services récompensés par l'industrie _ AWS for M&E Blog.pdf'}
{'page' : 1.0, 'source' : 'data/AWS Media Services récompensés par l'industrie _ AWS for M&E Blog.pdf'}
Après avoir établi un niveau de confiance suffisant, vous pouvez déployer les modèles sur Points de terminaison SageMaker pour l'inférence en temps réel. Ces points de terminaison sont entièrement gérés et offrent une prise en charge de la mise à l'échelle automatique.
SageMaker propose une inférence de grand modèle à l'aide de conteneurs d'inférence de grand modèle (LMI), que nous pouvons utiliser pour déployer nos modèles. Ces conteneurs sont équipés de bibliothèques open source préinstallées comme DeepSpeed, facilitant la mise en œuvre de techniques d'amélioration des performances telles que le parallélisme tensoriel lors de l'inférence. De plus, ils utilisent DJLServing comme serveur de modèles intégré prédéfini. DJLserveur est une solution de diffusion de modèles universelle et hautes performances qui prend en charge le traitement par lots dynamique et la mise à l'échelle automatique des travailleurs, augmentant ainsi le débit.
Dans notre approche, nous utilisons SageMaker LMI avec DJLServing et DeepSpeed Inference pour déployer les modèles Llama-2-chat 7b et BGE sur les points de terminaison SageMaker exécutés sur ml.g5.2xlarge
instances, permettant une inférence en temps réel. Si vous souhaitez suivre ces étapes vous-même, reportez-vous au manuel ci-joint. cahier pour des instructions détaillées.
Il vous en faudra deux ml.g5.2xlarge
instances à déployer. Pour revoir ou augmenter votre quota, ouvrez la console AWS Service Quotas, choisissez Services AWS dans le volet de navigation, choisissez Amazon Sage Maker, et reportez-vous à la valeur de ml.g5.2xlarge
pour l'utilisation du point de terminaison.
Les étapes suivantes décrivent le processus de déploiement de modèles personnalisés pour le flux de travail RAG sur un point de terminaison SageMaker :
- Déployez le Lama-2 7b modèle de discussion vers un point de terminaison en temps réel SageMaker exécuté sur un
ml.g5.2xlarge
exemple pour une génération de texte rapide. - Déployez le BAAI/bge-small-fr-v1.5 modèle d'intégration à un point de terminaison en temps réel SageMaker exécuté sur un
ml.g5.2xlarge
exemple. Vous pouvez également déployer votre propre modèle d'intégration. - Posez une question et utilisez le LangChain RécupérationQA pour augmenter l'invite avec les documents les plus similaires de Pinecone, cette fois en utilisant le modèle déployé dans le point de terminaison en temps réel 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}
)
- Utilisez LangChain pour vérifier que le point de terminaison SageMaker avec le modèle d'intégration fonctionne comme prévu afin qu'il puisse être utilisé pour une future ingestion de documents :
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']
Nettoyer
Effectuez les étapes suivantes pour nettoyer vos ressources :
- Lorsque vous avez fini de travailler dans votre bloc-notes SageMaker Studio, assurez-vous d'avoir arrêté le
ml.g5.2xlarge
par exemple pour éviter tout frais en choisissant l'icône d'arrêt. Vous pouvez également configurer scripts de configuration du cycle de vie pour arrêter automatiquement les ressources lorsqu'elles ne sont pas utilisées.
- Si vous avez déployé les modèles sur les points de terminaison SageMaker, exécutez le code suivant à la fin du notebook pour supprimer les points de terminaison :
#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
)
- Enfin, exécutez la ligne suivante pour supprimer l'index Pinecone :
pinecone.delete_index(index_name)
Conclusion
Les blocs-notes SageMaker offrent un moyen simple de démarrer votre parcours avec Retrieval Augmented Generation. Ils vous permettent d'expérimenter de manière interactive différents modèles, configurations et questions sans créer d'infrastructure supplémentaire. Dans cet article, nous avons montré comment améliorer les performances du chat Llama 2 7b dans un cas d'utilisation de réponse à des questions utilisant LangChain, le modèle d'intégration BGE et Pinecone. Pour commencer, lancez SageMaker Studio et exécutez le cahier disponible dans ce qui suit GitHub repo. Veuillez partager vos réflexions dans la section commentaires !
À propos des auteurs
Anastasia Tzeveleka est architecte de solutions spécialisées en apprentissage machine et IA chez AWS. Elle travaille avec des clients dans la région EMEA et les aide à concevoir des solutions d'apprentissage automatique à grande échelle à l'aide des services AWS. Elle a travaillé sur des projets dans différents domaines, notamment le traitement du langage naturel (NLP), MLOps et les outils Low Code No Code.
Pranav Murthy est architecte de solutions spécialisées en IA/ML chez AWS. Il se concentre sur l'aide aux clients pour créer, former, déployer et migrer des charges de travail d'apprentissage automatique (ML) vers SageMaker. Il a précédemment travaillé dans l'industrie des semi-conducteurs en développant de grands modèles de vision par ordinateur (CV) et de traitement du langage naturel (NLP) pour améliorer les processus des semi-conducteurs. Pendant son temps libre, il aime jouer aux échecs et voyager.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: 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/
- :possède
- :est
- :ne pas
- :où
- $UP
- 1
- 10
- 100
- 13
- 16
- 2023
- 33
- 500
- 7
- a
- AC
- Académie
- accès
- Accès aux données
- accessible
- Selon
- Compte
- hybrides
- précision
- Avec cette connaissance vient le pouvoir de prendre
- atteindre
- ajouter
- ajoutant
- Supplémentaire
- En outre
- adhérer
- encore
- AI
- AI / ML
- permettre
- Permettre
- permet
- le long de
- déjà
- aussi
- Amazon
- Amazon Sage Maker
- Amazon SageMakerStudio
- Amazon Web Services
- Amazon Web Services (AWS)
- an
- ainsi que
- Annonce
- répondre
- réponses
- tous
- Apis
- appli
- applications
- une approche
- applications
- architecture
- SONT
- artificiel
- intelligence artificielle
- AS
- demander
- Evaluer
- Assistante gérante
- Association
- suppose
- At
- augmenter
- augmentée
- augmentations
- Authentification
- auto
- automatiquement
- disponibles
- éviter
- attribué
- prix
- AWS
- basé
- BE
- était
- before
- LES MEILLEURS
- Améliorée
- Blog
- Blogue
- corps
- diffusion
- construire
- intégré
- by
- CAN
- maisons
- cas
- Canaux centraux
- chaîne
- Chaînes
- globaux
- des charges
- vérifier
- Échecs
- Selectionnez
- choose
- choisi
- Ville
- classe
- espace extérieur plus propre,
- cliquez
- fonds à capital fermé
- code
- collaborons
- collègues
- COM
- combiner
- moissonneuses-batteuses
- comment
- vient
- commentaires
- complet
- calcul
- ordinateur
- Vision par ordinateur
- concis
- confiance
- configuration
- CONFIRMÉ
- consiste
- Console
- Conteneurs
- contenu
- contexte
- continuer
- Convention
- conversations
- convertir
- Correspondant
- pourriez
- COVID-19
- Pandémie de COVID-19
- engendrent
- créée
- La création
- Lecture
- Customiser
- des clients
- expérience client
- Clients
- données
- Base de données
- bases de données
- décider
- Réglage par défaut
- ravir
- démontrer
- démontré
- dépendances
- déployer
- déployé
- déployer
- déploiement
- détaillé
- développement
- Développement
- dispositif
- dialogue
- différent
- discuter
- distribuer
- diviser
- document
- INSTITUTIONNELS
- domaine
- domaines
- Don
- Ne pas
- down
- download
- deux
- pendant
- Dynamic
- e
- Plus tôt
- même
- efforts
- éléments
- enrobage
- EMEA
- permet
- permettant
- fin
- Endpoint
- engagé
- de renforcer
- Divertissement
- entièrement
- Environment
- équipé
- établies
- événements
- JAMAIS
- évolution
- exemple
- existe
- attendre
- attendu
- d'experience
- expérience
- explorez
- externe
- extrait
- Visage
- faciliter
- RAPIDE
- le plus rapide
- Fonctionnalités:
- few
- finale
- trouver
- Prénom
- première fois
- cinq
- Focus
- se concentre
- suivre
- Abonnement
- Pour
- formulaire
- le format
- Avant
- Gratuit
- friendly
- De
- d’étiquettes électroniques entièrement
- fonction
- fonctionnel
- avenir
- Gain
- générer
- généré
- génère
- génération
- génératif
- IA générative
- générateur
- obtenez
- À l'échelle mondiale
- Objectifs
- aller
- GPU
- accordée
- heureux vous
- Vous avez
- ayant
- he
- vous aider
- utile
- aider
- aide
- de haut niveau
- haute performance
- augmentation
- sa
- Frappé
- Comment
- How To
- Cependant
- HTML
- HTTPS
- Moyeu
- Étreindre
- i
- IBC
- ICON
- ID
- Identite
- if
- illustre
- image
- Mettre en oeuvre
- la mise en oeuvre
- la mise en œuvre
- importer
- améliorer
- amélioré
- améliore
- in
- Dans d'autres
- inclut
- Y compris
- Améliore
- croissant
- indice
- industrie
- Evénements de l'industrie
- d'information
- Infrastructure
- initiale
- contribution
- installer
- instance
- Des instructions
- des services
- Intelligence
- interconnecté
- interne
- International
- Internet
- accès Internet
- développement
- IT
- SES
- chemin
- jpg
- json
- juste
- XNUMX éléments à
- clés
- Savoir
- spécialisées
- langue
- gros
- lancer
- apprentissage
- à gauche
- Longueur
- Niveau
- bibliothèques
- comme
- LIMIT
- Gamme
- Flamme
- LLM
- charge
- chargeur
- locales
- Faible
- click
- machine learning
- a prendre une
- maniable
- gérés
- de nombreuses
- assorti
- maximales
- entre-temps
- Médias
- Mémoire
- Meta
- Métadonnées
- méthode
- émigrer
- ML
- MLOps
- modèle
- numériques jumeaux (digital twin models)
- PLUS
- (en fait, presque toutes)
- must
- NAB
- prénom
- Nationales
- Nature
- Traitement du langage naturel
- NAVIGUER
- Navigation
- nécessaire
- Besoin
- Besoins
- Nouveauté
- Nouvel accès
- New York
- New York City
- next
- nlp
- aucune
- cahier
- Novembre
- maintenant
- of
- code
- Offres Speciales
- officiel
- Site officiel
- on
- ONE
- en ligne
- ouvert
- open source
- optimisé
- Option
- Options
- or
- organisation
- OS
- Autre
- nos
- ande
- contour
- sortie
- sorties
- propre
- chemin
- page
- pandémie
- pain
- paramètres
- partie
- partenaires,
- pass
- Effectuer
- performant
- autorisations
- phase
- pièces
- Platon
- Intelligence des données Platon
- PlatonDonnées
- jouer
- veuillez cliquer
- Post
- Poteaux
- préféré
- représentent
- précédent
- précédemment
- processus
- les process
- traitement
- Profil
- Projet
- projets
- prototype
- prototypage
- fournir
- aportando
- public
- publiquement
- publié
- des fins
- Python
- pytorch
- qualité
- quête
- question
- fréquemment posées
- Rapide
- vite.
- Nos tests de diagnostic produisent des résultats rapides et précis sans nécessiter d'équipement de laboratoire complexe et coûteux,
- rapidement
- atteindre
- en temps réel
- récent
- recette
- reportez-vous
- référence
- en ce qui concerne
- pertinent
- rouvrir
- exigent
- conditions
- Exigences
- a besoin
- Resources
- réponse
- réponses
- résultat
- CV
- retourner
- Avis
- bon
- Rôle
- Courir
- pour le running
- sagemaker
- saké
- même
- Épargnez
- sauvé
- dire
- Escaliers intérieurs
- mise à l'échelle
- calendrier
- ordonnancement
- Rechercher
- recherches
- Deuxièmement
- les sections
- sur le lien
- semi-conducteur
- envoyer
- envoyé
- serveur
- service
- Services
- set
- mise
- Partager
- elle
- montrer
- présenté
- montré
- fermer
- arrêter
- similaires
- simplicité
- unique
- Taille
- So
- Réseaux sociaux
- réseaux sociaux
- sur mesure
- Solutions
- quelques
- Identifier
- Sources
- spécialiste
- groupe de neurones
- spécifiquement
- autonome
- Commencer
- j'ai commencé
- Commencez
- statique
- étapes
- Étapes
- Arrêter
- Boutique
- stockée
- STORES
- simple
- studio
- tel
- suffisant
- Support
- Appareils
- sûr
- rapidement
- prend
- Tâche
- tâches
- techniques
- Technologie
- modèle
- texte
- que
- qui
- La
- leur
- Les
- Là.
- ainsi
- Ces
- l'ont
- this
- trois
- Avec
- débit
- fiable
- à
- jeton
- tokenize
- les outils
- sujet
- torche
- participer à un circuit
- Train
- transformateurs
- transition
- Voyages
- oui
- Essai
- deux
- type
- types
- débutante
- typiquement
- sous
- Universel
- jusqu'à
- mise à jour
- Actualités
- Utilisation
- utilisé
- cas d'utilisation
- d'utiliser
- Utilisateur
- Expérience utilisateur
- Usages
- en utilisant
- utiliser
- Plus-value
- divers
- Vérification
- vérifier
- version
- via
- téléspectateurs
- Salle de conférence virtuelle
- visites virtuelles
- définition
- vision
- Visiter
- Visites
- marcher
- souhaitez
- Façon..
- we
- web
- services Web
- Site Web
- Semaines
- ont été
- quand
- chaque fois que
- qui
- tout en
- sera
- comprenant
- dans les
- sans
- A gagné
- des mots
- activités principales
- travaillé
- travailleur
- workflow
- de travail
- vos contrats
- an
- années
- york
- Vous n'avez
- Votre
- vous-même
- zéphyrnet