Ce référentiel contient la mise en œuvre d'un bot AI construit à l'aide d'un modèle de transformateur ( gpt2 ) à partir de la face des câlins. Le chatbot exploite FAIS pour le stockage de la base de données vectorielle pour correspondre efficacement aux requêtes utilisateur avec des données pertinentes. Les données utilisées pour la formation et la génération de réponse ont été grattées du cours officiel de Stanford LLM.
gpt2 de l'étreinte Face. Stracage des données : les données sont grattées de diverses conférences du cours de Stanford LLM. Les balises h2 , h3 et <strong> servent de clés, et le contenu correspondant est classé en paragraphes, tableaux, liens, équations, listes ordonnées et listes non ordonnées.
Base de données vectorielle (FAISS) : Les touches sont stockées dans une base de données vectorielle FAISS en utilisant la distance L2 pour une récupération efficace. Lorsqu'une requête utilisateur est reçue, FAISS trouve les 2 principales touches correspondantes les plus proches en fonction de la similitude vectorielle.
Génération d'invite : le chatbot construit une invite structurée à l'aide des données récupérées à partir de FAISS. Cette invite comprend des paragraphes, des tables, des équations, des liens, des listes ordonnées et des listes non ordonnées comme pertinentes pour les clés correspondantes.
Génération de réponse : l'invite construite est introduite dans le modèle GPT-2 pour générer une réponse cohérente et pertinente à la requête utilisateur.
Les données grattées des conférences de cours Stanford LLM ont le schéma suivant:
key1:{
{
'paragraphs': [],
'tables': [],
'links': [],
'equations': [],
'ordered_lists': [],
'unordered_lists': []
} }
key2:{
{
'paragraphs': [],
'tables': [],
'links': [],
'equations': [],
'ordered_lists': [],
'unordered_lists': []
} }
Chaque clé correspond aux balises h2 , h3 ou <strong> à partir des pages de conférence. Les données associées à chaque clé comprennent des paragraphes, des tables, des liens, des équations, des listes ordonnées et des listes non ordonnées si elles existent.
Requête de l'utilisateur : "Quels sont les avantages et les dommages?"
FAISS Retrieval : La requête correspond aux 2 touches les plus proches de la base de données vectorielle à l'aide de la distance L2.
Construction rapide :
# Create a structured prompt
prompt = f"**Question:** {query}nn"
# Add top 2 matched sections
prompt += f"**Sections:**n- {result_key1}n- {result_key2}nn"
# Add content to the prompt
for result_key, result_content in [(result_key1, result_content1), (result_key2, result_content2)]:
if result_content.get('paragraphs'):
prompt += "**Paragraphs:**n" + "n".join(result_content['paragraphs']) + "nn"
if result_content.get('ordered_lists'):
prompt += "**Ordered Lists:**n" + "n".join(["n".join(ol) for ol in result_content['ordered_lists']]) + "nn"
if result_content.get('unordered_lists'):
prompt += "**Unordered Lists:**n" + "n".join(["n".join(ul) for ul in result_content['unordered_lists']]) + "nn"
if result_content.get('tables'):
prompt += "**Tables:**n" + "n".join(["n".join(table) for table in result_content['tables']]) + "nn"
if result_content.get('links'):
prompt += "**Links:**n" + "n".join(result_content['links']) + "nn"
if result_content.get('equations'):
prompt += "**Equations:**n" + "n".join(result_content['equations']) + "nn"
# Add a closing statement
prompt += "Answer is :"
# Define max_length
max_length = min(len(prompt) + 100, 750)
# Generate response
response = generator(prompt[:750], max_length=max_length, num_return_sequences=1, truncation=True, pad_token_id=50256)
Réponse générée : Le modèle GPT-2 utilise l'invite pour générer une réponse détaillée.

Cette capture d'écran montre un exemple d'interaction où le chatbot répond à une question utilisateur sur les bases des LLM.
Le modèle a été formé sur Kaggle à l'aide de ressources CPU.
Les contributions sont les bienvenues! Veuillez ouvrir un problème ou soumettre une demande de traction pour toute amélioration ou de nouvelles fonctionnalités.
Ce projet est autorisé sous la licence du MIT. Voir le fichier de licence pour plus de détails.