Dieses Notizbuch enthält die Schritte und den Code, um die Unterstützung der Augumented -Generation von Abrufen in Watsonx.ai zu demonstrieren. Es führt Befehle für das Abrufen von Daten, das Erstellen und Abfragen von Wissensbasis und die Modelltests ein.
Verwenden Sie das LLM -Modell, Langchain und Milvus, um ein RA -System (Abruf Augmented Generation) zu erstellen. Auf diese Weise können wir Fragen zu unseren Dokumenten stellen (die nicht in den Trainingsdaten enthalten waren), ohne das große Sprachmodell (LLM) zu beachten. Wenn Sie eine Frage erhalten, machen Sie zuerst einen Abrufschritt, um relevante Dokumente aus einer speziellen Datenbank abzurufen, eine Vektor -Datenbank, in der diese Dokumente indiziert wurden.
Abrufener Augmented Generation (RAG) ist ein vielseitiges Muster, mit dem eine Reihe von Anwendungsfällen freigeschaltet werden können, die einen sachlichen Rückruf von Informationen erfordern, z. B. die Abfrage einer Wissensbasis in der natürlichen Sprache.
Große Sprachmodelle (LLMs) haben ihre Fähigkeit bewiesen, den Kontext zu verstehen und genaue Antworten auf verschiedene NLP -Aufgaben zu geben, einschließlich der Zusammenfassung, Fragen und Antworten, wenn sie aufgefordert werden. Während sie in der Lage waren, sehr gute Antworten auf Fragen zu Informationen zu geben, mit denen sie geschult wurden, neigen sie dazu, zu halluzinieren, wenn es um Informationen geht, die sie "nicht wissen", dh nicht in ihren Trainingsdaten enthalten war. Abrufener Augmented -Generation kombiniert externe Ressourcen mit LLMs. Die beiden Hauptkomponenten eines Lappen sind daher ein Retriever und ein Generator.
Der Retriever -Teil kann als ein System beschrieben werden, das unsere Daten codieren kann, sodass die relevanten Teile davon leicht abgerufen werden können. Die Codierung erfolgt anhand von Texteinbettungen, dh ein Modell, das geschult wurde, um eine Vektordarstellung der Informationen zu erstellen. Die beste Option zur Implementierung eines Retriever ist eine Vektor -Datenbank. Als Vektordatenbank gibt es mehrere Optionen, sowohl Open Source als auch kommerzielle Produkte. Nur wenige Beispiele sind Chromadb, Mevius, Faiss, Tinecone, Weaviate. Unsere Option in diesem Notebook ist eine lokale Instanz von Chromadb (persistent).
Für den Generatorteil ist die offensichtliche Option ein LLM. In diesem Notizbuch werden wir ein quantisiertes Lama V2 -Modell aus der Kaggle Models Collection verwenden.
Die Orchestrierung des Retrievers und des Generators erfolgt mit Langchain. Eine spezielle Funktion von Langchain ermöglicht es uns, den Empfänger-Generator in einer Codezeile zu erstellen.
In seiner einfachsten Form benötigt Lag 3 Schritte:
690.000 Wörter gereinigtem Text aus Wikipedia.
Es gibt drei Fragendateien, eines für jedes Jahr der Schüler: S08, S09 und S10.
Die Dateien "FRAGEANSWERPAIRS.TXT" enthalten sowohl die Fragen als auch die Antworten. Die Spalten in dieser Datei sind wie folgt:
Fragen, die als arm beurteilt wurden, wurden von diesem Datensatz verworfen.
Es gibt häufig mehrere Zeilen mit derselben Frage, die erscheinen, wenn diese Fragen von mehreren Personen beantwortet wurden. https://www.kaggle.com/rtatman/questionanswer-dataset