3 einfache Schritte zur lokalen RAG mit Ihren Inhalten
Bild vom Autor | Midjourney & Canva

Möchten Sie lokales RAG mit minimalem Aufwand? Haben Sie eine Menge Dokumente, die Sie als Wissensbasis verwenden möchten, um ein Sprachmodell zu erweitern? Möchten Sie einen Chatbot erstellen, der weiß, was Sie wissen möchten?

Nun, das hier ist vermutlich der einfachste Weg.

Ich bin vielleicht nicht das am besten optimierte System in Bezug auf Inferenzgeschwindigkeit, Vektorpräzision oder Speicher, aber es ist tremendous einfach. Bei Bedarf können Optimierungen vorgenommen werden, aber auch ohne sollte das, was wir in diesem kurzen Tutorial tun, Ihr lokales RAG-System voll funktionsfähig machen. Und da wir Llama 3 verwenden werden, können wir auch auf einige großartige Ergebnisse hoffen.

Welche Instruments verwenden wir heute? 3 Lamas: Ollama für die Modellverwaltung, Llama 3 als unser Sprachmodell und LlamaIndex als unser RAG-Framework. Lama, Lama, Lama.

Lass uns anfangen.

Schritt 1: Ollama, für Modellmanagement

Ollama kann sowohl zum Verwalten als auch zum Interagieren mit Sprachmodellen verwendet werden. Heute werden wir es sowohl zum Modellmanagement als auch, da LlamaIndex direkt mit von Ollama verwalteten Modellen interagieren kann, indirekt auch zur Interaktion verwenden. Dies wird unseren Gesamtprozess noch einfacher machen.

Wir können Ollama installieren, indem wir den systemspezifischen Anweisungen auf der GitHub-Repository.

Nach der Set up können wir Ollama vom Terminal aus starten und das Modell angeben, das wir verwenden möchten.

Schritt 2: Lama 3, das Sprachmodell

Sobald Ollama installiert und betriebsbereit ist, können wir alle in seinem GitHub-Repository aufgelisteten Modelle herunterladen oder unser eigenes Ollama-kompatibles Modell aus anderen vorhandenen Sprachmodellimplementierungen erstellen. Mit dem Befehl „Ollama run“ wird das angegebene Modell heruntergeladen, wenn es nicht auf Ihrem System vorhanden ist. Daher kann Llama 3 8B mit der folgenden Zeile heruntergeladen werden:

Stellen Sie einfach sicher, dass Ihnen lokal genügend Speicherplatz für den 4,7 GB großen Obtain zur Verfügung steht.

Sobald die Ollama-Terminalanwendung mit dem Llama 3-Modell als Backend gestartet ist, können Sie fortfahren und sie minimieren. Wir werden LlamaIndex aus unserem eigenen Skript zur Interaktion verwenden.

Schritt 3: LlamaIndex, das RAG-Framework

Das letzte Stück dieses Puzzles ist LamaIndexunser RAG-Framework. Um LlamaIndex zu verwenden, müssen Sie sicherstellen, dass es auf Ihrem System installiert ist. Da sich die Verpackung und der Namespace von LlamaIndex kürzlich geändert haben, lesen Sie am besten die offizielle Dokumentation, um LlamaIndex in Ihrer lokalen Umgebung zu installieren.

Sobald Ollama läuft und das Llama3-Modell aktiv ist, können Sie Folgendes in einer Datei speichern (angepasst von Hier):

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.ollama import Ollama

# My native paperwork
paperwork = SimpleDirectoryReader("information").load_data()

# Embeddings mannequin
Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-base-en-v1.5")

# Language mannequin
Settings.llm = Ollama(mannequin="llama3", request_timeout=360.0)

# Create index
index = VectorStoreIndex.from_documents(paperwork)

# Carry out RAG question
query_engine = index.as_query_engine()
response = query_engine.question("What are the 5 phases of RAG?")
print(response)

Dieses Skript führt Folgendes aus:

  • Dokumente werden im Ordner „information“ gespeichert
  • Das zum Erstellen Ihrer RAG-Dokumente verwendete Embeddings-Modell ist eine BGE-Variante von Hugging Face
  • Sprachmodell ist das bereits erwähnte Llama 3, zugänglich über Ollama
  • Die Abfrage an unsere Daten („Was sind die 5 Phasen von RAG?“) ist passend, da ich eine Reihe von RAG-bezogenen Dokumenten in den Datenordner gelegt habe

Und die Ausgabe unserer Abfrage:

The 5 key phases inside RAG are: Loading, Indexing, Storing, Querying, and Analysis.

Beachten Sie, dass wir das Skript wahrscheinlich auf verschiedene Weise optimieren möchten, um eine schnellere Suche zu ermöglichen und bestimmte Zustände beizubehalten (z. B. Einbettungen). Dies kann jedoch der interessierte Leser selbst erkunden.

Abschließende Gedanken

Nun, wir haben es geschafft. Wir haben es geschafft, eine LlamaIndex-basierte RAG-Anwendung mit Llama 3 zu erstellen, die von Ollama lokal in 3 relativ einfachen Schritten bereitgestellt wird. Man kann damit noch viel mehr machen, einschließlich Optimieren, Erweitern, Hinzufügen einer Benutzeroberfläche usw., aber die einfache Tatsache bleibt, dass wir unser Basismodell mit nur wenigen Codezeilen über einen minimalen Satz von Help-Apps und Bibliotheken erstellen konnten.

Ich hoffe, der Vorgang hat Ihnen Spaß gemacht.

Matthias Mayo (@mattmayo13) hat einen Grasp-Abschluss in Informatik und ein Diplom in Information Mining. Als leitender Redakteur möchte Matthew komplexe Konzepte der Datenwissenschaft zugänglich machen. Seine beruflichen Interessen umfassen die Verarbeitung natürlicher Sprache, Algorithmen für maschinelles Lernen und die Erforschung neuer KI. Sein Ziel ist es, das Wissen in der Datenwissenschaftsgemeinschaft zu demokratisieren. Matthew programmiert, seit er sechs Jahre alt ist.



Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert