


Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)
Mit dem Aufkommen groß angelegter Sprachmodelle wie GPT-3 wurden große Durchbrüche auf dem Gebiet der Verarbeitung natürlicher Sprache (NLP) erzielt. Diese Sprachmodelle verfügen über die Fähigkeit, menschenähnlichen Text zu generieren, und werden häufig in verschiedenen Szenarien wie Chatbots und Übersetzungen eingesetzt.
Wenn es jedoch um spezielle und benutzerdefinierte Anwendungsszenarien geht, sind allgemeine, große Sprachmodelle möglicherweise vorhanden Mangel an Fachwissen sein. Die Feinabstimmung dieser Modelle mit speziellen Korpora ist oft teuer und zeitaufwändig. „Retrieval Enhanced Generation“ (RAG) bietet eine neue Technologielösung für professionelle Anwendungen.
Im Folgenden stellen wir hauptsächlich die Funktionsweise von RAG vor und verwenden ein praktisches Beispiel, um das Produkthandbuch als professionelles Korpus zu verwenden und GPT-3.5 Turbo als Frage- und Antwortmodell zu verwenden, um seine Wirksamkeit zu überprüfen.
Fall: Entwickeln Sie einen Chatbot, der Fragen zu einem bestimmten Produkt beantworten kann. Dieses Unternehmen verfügt über ein einzigartiges Benutzerhandbuch
Einführung in RAG
RAG bietet eine effektive Lösung für domänenspezifische Fragen und Antworten. Es wandelt hauptsächlich Branchenwissen in Vektoren zum Speichern und Abrufen um, kombiniert die Abrufergebnisse mit Benutzerfragen, um zeitnahe Informationen zu bilden, und verwendet schließlich große Modelle, um geeignete Antworten zu generieren. Durch die Kombination des Abrufmechanismus und des Sprachmodells wird die Reaktionsfähigkeit des Modells erheblich verbessert
Die Schritte zum Erstellen eines Chatbot-Programms sind wie folgt:
- Lesen Sie das PDF (PDF-Datei des Benutzerhandbuchs) und tokenisieren Sie es mit chunk_size von 1000 Token .
- Erstellen Sie Vektoren (Sie können OpenAI EmbeddingsAPI verwenden, um Vektoren zu erstellen).
- Speichern Sie Vektoren in der lokalen Vektorbibliothek. Als Vektordatenbank verwenden wir ChromaDB (die Vektordatenbank kann auch durch Pinecone oder andere Produkte ersetzt werden).
- Benutzer posten Tipps mit Fragen/Fragen.
- Rufen Sie Wissenskontextdaten aus der Vektordatenbank basierend auf den Fragen des Benutzers ab. Diese Wissenskontextdaten werden in den folgenden Schritten in Verbindung mit den Stichworten verwendet, um die Stichworte zu verbessern, was oft als kontextuelle Anreicherung bezeichnet wird.
- Das Eingabewort, das die Benutzerfrage enthält, wird zusammen mit erweitertem Kontextwissen an das LLM übergeben.
- LLM-Antworten basierend auf diesem Kontext.
Praktische Entwicklung
(1) Richten Sie eine virtuelle Python-Umgebung ein. Richten Sie eine virtuelle Umgebung ein, um unser Python zu sandboxen, um Versions- oder Abhängigkeitskonflikte zu vermeiden. Führen Sie den folgenden Befehl aus, um eine neue virtuelle Python-Umgebung zu erstellen.
需要重写的内容是:pip安装virtualenv,python3 -m venv ./venv,source venv/bin/activate
Der Inhalt, der neu geschrieben werden muss, ist: (2) OpenAI-Schlüssel generieren
Für die Verwendung von GPT ist ein OpenAI-Schlüssel für den Zugriff erforderlich
Der Inhalt, der neu geschrieben werden muss, ist: (3) Abhängige Bibliotheken installieren
Verschiedene vom Installer benötigte Abhängigkeiten. Enthält die folgenden Bibliotheken:
- lanchain: ein Framework für die Entwicklung von LLM-Anwendungen.
- chromaDB: Dies ist VectorDB für dauerhafte Vektoreinbettungen.
- unstrukturiert: wird zur Vorverarbeitung von Word-/PDF-Dokumenten verwendet.
- tiktoken: Tokenizer-Framework
- pypdf: Ein Framework zum Lesen und Verarbeiten von PDF-Dokumenten.
- openai: Greifen Sie auf das OpenAI-Framework zu.
pip install langchainpip install unstructuredpip install pypdfpip install tiktokenpip install chromadbpip install openai
Erstellen Sie eine Umgebungsvariable zum Speichern des OpenAI-Schlüssels.
export OPENAI_API_KEY=<openai-key></openai-key>
(4) Konvertieren Sie die PDF-Datei des Benutzerhandbuchs in einen Vektor und speichern Sie sie in ChromaDB.
Importieren Sie alle abhängigen Bibliotheken und Funktionen, die Sie benötigen, um
import osimport openaiimport tiktokenimport chromadbfrom langchain.document_loaders import OnlinePDFLoader, UnstructuredPDFLoader, PyPDFLoaderfrom langchain.text_splitter import TokenTextSplitterfrom langchain.memory import ConversationBufferMemoryfrom langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.llms import OpenAIfrom langchain.chains import ConversationalRetrievalChain
zum Lesen von PDF, zum Tokenisieren des Dokuments und zum Teilen des Dokuments zu verwenden.
loader = PyPDFLoader("Clarett.pdf")pdfData = loader.load()text_splitter = TokenTextSplitter(chunk_size=1000, chunk_overlap=0)splitData = text_splitter.split_documents(pdfData)
Erstellen Sie eine Chroma-Sammlung und ein lokales Verzeichnis zum Speichern von Chroma-Daten. Erstellen Sie dann einen Vektor (Einbettungen) und speichern Sie ihn in ChromaDB.
collection_name = "clarett_collection"local_directory = "clarett_vect_embedding"persist_directory = os.path.join(os.getcwd(), local_directory)openai_key=os.environ.get('OPENAI_API_KEY')embeddings = OpenAIEmbeddings(openai_api_key=openai_key)vectDB = Chroma.from_documents(splitData,embeddings,collection_name=collection_name,persist_directory=persist_directory)vectDB.persist()
Nachdem Sie diesen Code ausgeführt haben, sollten Sie einen Ordner sehen, der zum Speichern der Vektoren erstellt wurde.
Nachdem die Vektoreinbettung in ChromaDB gespeichert wurde, können Sie die ConversationalRetrievalChain-API in LangChain verwenden, um eine Chat-Verlaufskomponente zu starten. Im folgenden Code wird eine vom Benutzer eingegebene Frage akzeptiert, und nachdem der Benutzer „Fertig“ eingegeben hat, wird die Frage an LLM übergeben, um die Antwort abzurufen und auszudrucken.
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)chatQA = ConversationalRetrievalChain.from_llm(OpenAI(openai_api_key=openai_key, temperature=0, model_name="gpt-3.5-turbo"), vectDB.as_retriever(), memory=memory)
Kurz gesagt
RAG vereint die Vorteile von Sprachmodellen wie GPT mit den Vorteilen des Information Retrieval. Durch die Nutzung spezifischer Wissenskontextinformationen zur Erweiterung der Fülle an Aufforderungswörtern ist das Sprachmodell in der Lage, genauere, wissenskontextbezogene Antworten zu generieren. RAG bietet eine effizientere und kostengünstigere Lösung als „Feinabstimmung“ und bietet anpassbare interaktive Lösungen für Industrieanwendungen oder Unternehmensanwendungen
Das obige ist der detaillierte Inhalt vonVerbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Verbessern Sie die Produktivität, Effizienz und Genauigkeit der Entwickler, indem Sie eine abrufgestützte Generierung und ein semantisches Gedächtnis in KI-Codierungsassistenten integrieren. Übersetzt aus EnhancingAICodingAssistantswithContextUsingRAGandSEM-RAG, Autor JanakiramMSV. Obwohl grundlegende KI-Programmierassistenten natürlich hilfreich sind, können sie oft nicht die relevantesten und korrektesten Codevorschläge liefern, da sie auf einem allgemeinen Verständnis der Softwaresprache und den gängigsten Mustern beim Schreiben von Software basieren. Der von diesen Coding-Assistenten generierte Code eignet sich zur Lösung der von ihnen zu lösenden Probleme, entspricht jedoch häufig nicht den Coding-Standards, -Konventionen und -Stilen der einzelnen Teams. Dabei entstehen häufig Vorschläge, die geändert oder verfeinert werden müssen, damit der Code in die Anwendung übernommen wird

Graph Retrieval Enhanced Generation (GraphRAG) erfreut sich zunehmender Beliebtheit und hat sich zu einer leistungsstarken Ergänzung zu herkömmlichen Vektorsuchmethoden entwickelt. Diese Methode nutzt die strukturellen Merkmale von Graphdatenbanken, um Daten in Form von Knoten und Beziehungen zu organisieren und dadurch die Tiefe und kontextbezogene Relevanz der abgerufenen Informationen zu verbessern. Diagramme haben einen natürlichen Vorteil bei der Darstellung und Speicherung vielfältiger und miteinander verbundener Informationen und können problemlos komplexe Beziehungen und Eigenschaften zwischen verschiedenen Datentypen erfassen. Vektordatenbanken können diese Art von strukturierten Informationen nicht verarbeiten und konzentrieren sich mehr auf die Verarbeitung unstrukturierter Daten, die durch hochdimensionale Vektoren dargestellt werden. In RAG-Anwendungen können wir durch die Kombination strukturierter Diagrammdaten und unstrukturierter Textvektorsuche gleichzeitig die Vorteile beider nutzen, worauf in diesem Artikel eingegangen wird. Struktur

Halluzinationen sind ein häufiges Problem bei der Arbeit mit großen Sprachmodellen (LLMs). Obwohl LLM glatte und kohärente Texte erzeugen kann, sind die generierten Informationen oft ungenau oder inkonsistent. Um LLM vor Halluzinationen zu schützen, können externe Wissensquellen wie Datenbanken oder Wissensgraphen zur Bereitstellung sachlicher Informationen genutzt werden. Auf diese Weise kann sich LLM auf diese zuverlässigen Datenquellen verlassen, was zu genaueren und zuverlässigeren Textinhalten führt. Vektordatenbank und Wissensgraph-Vektordatenbank Eine Vektordatenbank ist ein Satz hochdimensionaler Vektoren, die Entitäten oder Konzepte darstellen. Sie können verwendet werden, um die Ähnlichkeit oder Korrelation zwischen verschiedenen Entitäten oder Konzepten zu messen, die anhand ihrer Vektordarstellungen berechnet werden. Eine Vektordatenbank kann Ihnen anhand der Vektorentfernung sagen, dass „Paris“ und „Frankreich“ näher beieinander liegen als „Paris“ und

RAG (RiskAssessmentGrid) ist eine Methode, die bestehende große Sprachmodelle (LLM) mit externen Wissensquellen erweitert, um kontextbezogenere Antworten zu liefern. In RAG erfasst die Abrufkomponente zusätzliche Informationen und Antworten auf der Grundlage spezifischer Quellen und speist diese Informationen dann in die LLM-Eingabeaufforderung ein, sodass die Antwort des LLM auf diesen Informationen basiert (Verbesserungsphase). RAG ist im Vergleich zu anderen Techniken wie dem Trimmen wirtschaftlicher. Es hat auch den Vorteil, Halluzinationen zu reduzieren, indem zusätzlicher Kontext basierend auf diesen Informationen bereitgestellt wird (Augmentationsphase) – Ihr RAG wird zur Workflow-Methode für die heutigen LLM-Aufgaben (wie Empfehlung, Textextraktion, Stimmungsanalyse usw.). Wenn wir diese Idee basierend auf der Benutzerabsicht weiter aufschlüsseln, betrachten wir normalerweise Folgendes

Wir werden Möglichkeiten zum Aufbau eines RAG-Systems (Retrieval-Augmented Generation) unter Verwendung des Open-Source-Programms LargeLanguageMulti-Modal diskutieren. Unser Fokus liegt darauf, dies zu erreichen, ohne auf LangChain oder Lllamaindex angewiesen zu sein, um das Hinzufügen weiterer Framework-Abhängigkeiten zu vermeiden. Was ist RAG? Im Bereich der künstlichen Intelligenz hat das Aufkommen der Retrieval-Augmented Generation (RAG)-Technologie revolutionäre Verbesserungen für große Sprachmodelle (LargeLanguageModels) gebracht. Der Kern von RAG besteht darin, die künstliche Intelligenz zu verbessern, indem es Modellen ermöglicht, dynamisch Echtzeitinformationen aus externen Quellen abzurufen

Heutzutage wird im Bereich der künstlichen Intelligenz großen Wert auf großmaßstäbliche Modelle gelegt. Faktoren wie hohe Schulungskosten und lange Schulungszeiten sind jedoch zu wesentlichen Hindernissen geworden, die die meisten Unternehmen davon abhalten, sich im Bereich der groß angelegten Modelle zu engagieren. In diesem Zusammenhang sind Vektordatenbanken mit ihren einzigartigen Vorteilen zu einer Lösung des Problems geworden Der Punkt ist die kostengünstige und schnelle Anpassung großer Modelle. Bei der Vektordatenbank handelt es sich um eine Technologie, die speziell für die Speicherung und Verarbeitung hochdimensionaler Vektordaten entwickelt wurde. Es verwendet effiziente Indizierungs- und Abfragealgorithmen, um einen schnellen Abruf und eine schnelle Analyse großer Datenmengen zu ermöglichen. Zusätzlich zu dieser hervorragenden Leistung können Vektordatenbanken auch maßgeschneiderte Lösungen für bestimmte Bereiche und Aufgaben bieten. Technologiegiganten wie Tencent und Alibaba haben in die Forschung und Entwicklung von Vektordatenbanken investiert und hoffen, damit Durchbrüche im Bereich großer Modelle zu erzielen. Auch viele kleine und mittelständische Unternehmen nutzen die Vorteile

Produziert von 51CTO Technology Stack (WeChat-ID: blog51cto) Es ist bekannt, dass LLM Halluzinationen hervorrufen kann – also falsche, irreführende oder bedeutungslose Informationen generieren kann. Interessanterweise betrachten einige Leute, wie etwa OpenAI-CEO Sam Altman, KI-Vorstellungskraft als Kreativität, während andere glauben, dass Vorstellungskraft dabei helfen könnte, neue wissenschaftliche Entdeckungen zu machen. In den meisten Fällen ist es jedoch entscheidend, die richtige Antwort zu geben, und Halluzinationen sind kein Merkmal, sondern ein Fehler. Wie kann man also die Illusion von LLM reduzieren? Langer Kontext? LAPPEN? Feinabstimmung? Tatsächlich sind Langkontext-LLMs nicht narrensicher, Vektorsuch-RAGs sind nicht zufriedenstellend und die Feinabstimmung bringt ihre eigenen Herausforderungen und Einschränkungen mit sich. Hier sind einige, die verwendet werden können

Nach der Geburt von ChatGPT hat es unser Verständnis mit seinen leistungsstarken Texterstellungsfunktionen kontinuierlich aufgefrischt. Welche explosiven Veränderungen wird KI auf den Universitätsgeländen mit sich bringen? Noch scheint niemand bereit zu sein. Nature hat einen Artikel veröffentlicht, in dem sie befürchtet, dass ChatGPT zu einem Werkzeug für Studenten zum Verfassen von Arbeiten werden könnte. Artikellink: https://www.nature.com/articles/d41586-022-04397-7 Zufälligerweise rief ein kanadischer Schriftsteller Stephen Marche traurig: Die Universitätsarbeit ist tot! Eine Arbeit mit KI zu schreiben ist zu einfach. Angenommen, Sie sind Professor für Pädagogik und haben eine Arbeit über Lernstile für akademische Zwecke vergeben. Ein Student hat einen Artikel zum Öffnen eingereicht
