Inhaltsverzeichnis
Einführung in RAG
Praktische Entwicklung
Kurz gesagt
Heim Technologie-Peripheriegeräte KI Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)

Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)

Oct 14, 2023 pm 08:17 PM
gpt-3 Schnelles Projekt 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.

Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)

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.​ ​ ​

Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)

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:

  1. Lesen Sie das PDF (PDF-Datei des Benutzerhandbuchs) und tokenisieren Sie es mit chunk_size von 1000 Token .
  2. Erstellen Sie Vektoren (Sie können OpenAI EmbeddingsAPI verwenden, um Vektoren zu erstellen).
  3. Speichern Sie Vektoren in der lokalen Vektorbibliothek. Als Vektordatenbank verwenden wir ChromaDB (die Vektordatenbank kann auch durch Pinecone oder andere Produkte ersetzt werden).
  4. Benutzer posten Tipps mit Fragen/Fragen.
  5. 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.
  6. Das Eingabewort, das die Benutzerfrage enthält, wird zusammen mit erweitertem Kontextwissen an das LLM übergeben.
  7. 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
Nach dem Login kopieren

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

Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)

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
Nach dem Login kopieren

Erstellen Sie eine Umgebungsvariable zum Speichern des OpenAI-Schlüssels.

export OPENAI_API_KEY=<openai-key></openai-key>
Nach dem Login kopieren

(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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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()
Nach dem Login kopieren

Nachdem Sie diesen Code ausgeführt haben, sollten Sie einen Ordner sehen, der zum Speichern der Vektoren erstellt wurde.

Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)

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)
Nach dem Login kopieren

Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)

Verbesserung der Engineering-Effizienz – Enhanced Search Generation (RAG)

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kontexterweiterter KI-Codierungsassistent mit Rag und Sem-Rag Kontexterweiterter KI-Codierungsassistent mit Rag und Sem-Rag Jun 10, 2024 am 11:08 AM

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

GraphRAG verbessert für den Abruf von Wissensgraphen (implementiert basierend auf Neo4j-Code) GraphRAG verbessert für den Abruf von Wissensgraphen (implementiert basierend auf Neo4j-Code) Jun 12, 2024 am 10:32 AM

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

Nutzung von Wissensgraphen, um die Fähigkeiten von RAG-Modellen zu verbessern und falsche Eindrücke von großen Modellen zu verringern Nutzung von Wissensgraphen, um die Fähigkeiten von RAG-Modellen zu verbessern und falsche Eindrücke von großen Modellen zu verringern Jan 14, 2024 pm 06:30 PM

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

GraphRAG verstehen (1): Herausforderungen von RAG GraphRAG verstehen (1): Herausforderungen von RAG Apr 30, 2024 pm 07:10 PM

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

Methoden zum Aufbau multimodaler RAG-Systeme: Verwendung von CLIP und LLM Methoden zum Aufbau multimodaler RAG-Systeme: Verwendung von CLIP und LLM Jan 13, 2024 pm 10:24 PM

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

Ein tiefer Einblick in RAG- und Vektordatenbanken: der Schlüssel zur schnellen und kostengünstigen Anpassung großer Modelle Ein tiefer Einblick in RAG- und Vektordatenbanken: der Schlüssel zur schnellen und kostengünstigen Anpassung großer Modelle Nov 13, 2023 pm 03:29 PM

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

Zusätzlich zu RAG gibt es fünf Möglichkeiten, die Illusion großer Modelle zu beseitigen Zusätzlich zu RAG gibt es fünf Möglichkeiten, die Illusion großer Modelle zu beseitigen Jun 10, 2024 pm 08:25 PM

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

Ein College-Student, der GPT-3 zum Schreiben einer Arbeit verwendete, wurde hart bestraft und weigerte sich, dies zuzugeben! Universitätspapiere sind „tot', ChatGPT könnte ein großes Erdbeben im akademischen Kreis auslösen Ein College-Student, der GPT-3 zum Schreiben einer Arbeit verwendete, wurde hart bestraft und weigerte sich, dies zuzugeben! Universitätspapiere sind „tot', ChatGPT könnte ein großes Erdbeben im akademischen Kreis auslösen Apr 11, 2023 pm 10:01 PM

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

See all articles