Entdecken Sie das ungenutzte Potenzial großer Sprachmodelle mit LangChain, einem Open-Source-Python-Framework zum Erstellen fortschrittlicher KI-Anwendungen.
Die Fähigkeiten großer Sprachmodelle (LLMs) wie GPT-3 von OpenAI, BERT von Google und LLaMA von Meta verändern verschiedene Branchen, indem sie die Generierung unterschiedlicher Textarten ermöglichen, von Marketinginhalten und Data-Science-Code bis hin zu Poesie. Obwohl ChatGPT aufgrund seiner benutzerfreundlichen Chat-Oberfläche große Aufmerksamkeit erregt hat, gibt es zahlreiche ungenutzte Möglichkeiten, LLMs zu nutzen, indem man sie in verschiedene Softwareanwendungen integriert.
Wenn Sie von den transformativen Kräften der generativen KI und LLMs fasziniert sind, ist dieses Tutorial genau das Richtige für Sie. Hier erkunden wir LangChain – ein Open-Source-Python-Framework zum Erstellen von Anwendungen basierend auf großen Sprachmodellen wie GPT.
Erfahren Sie mehr über das Erstellen von KI-Anwendungen mit LangChain in unserem Kurs „Erstellen multimodaler KI-Anwendungen mit LangChain und dem OpenAI API AI Code Along“. Dort erfahren Sie, wie Sie YouTube-Videoinhalte mit der Whisper-Spracherkennungs-KI transkribieren und dann mit GPT Fragen zu den Inhalten stellen.
Was sind Large Language Models (LLMs)?
Large Language Models (LLMs) sind fortschrittliche Systeme künstlicher Intelligenz, die darauf ausgelegt sind, menschenähnliche Texte zu verstehen und zu generieren. Diese Modelle werden anhand riesiger Datenmengen trainiert, sodass sie komplexe Muster erfassen, Sprachnuancen verstehen und zusammenhängende Antworten generieren können. LLMs können verschiedene sprachbezogene Aufgaben ausführen, darunter Sprachübersetzung, Textvervollständigung, Zusammenfassung und sogar die Teilnahme an Konversationsinteraktionen. GPT ist ein Beispiel für LLM.
LLM ist eine Art generativer KI. Wenn Sie mehr über generative KI erfahren möchten und wie sie Ihre Kreativität steigern kann, lesen Sie unsere Blogs zum Thema „ Generative KI zur Steigerung Ihrer Kreativität nutzen“ und unseren Podcast „ Inside the Generative AI Revolution“ . Sie können sich auch für unseren kommenden Kurs zu Konzepten großer Sprachmodelle anmelden .
Einführung in LangChain
LangChain ist ein Open-Source-Framework, das die Entwicklung von Anwendungen auf Basis großer Sprachmodelle (LLMs) erleichtern soll. Es bietet eine Reihe von Tools, Komponenten und Schnittstellen, die die Erstellung von LLM-zentrierten Anwendungen vereinfachen. Mit LangChain wird die Verwaltung von Interaktionen mit Sprachmodellen zum Kinderspiel, die nahtlose Verknüpfung verschiedener Komponenten und die Einbindung von Ressourcen wie APIs und Datenbanken. Weitere Informationen zu LangChain für Datentechnik und Datenanwendungen finden Sie in einem separaten Artikel.
Die LangChain-Plattform verfügt über eine Sammlung von APIs, die Entwickler in ihre Anwendungen einbetten können. So können sie Sprachverarbeitungsfunktionen integrieren, ohne alles von Grund auf neu erstellen zu müssen. Daher vereinfacht LangChain den Prozess der Erstellung LLM-basierter Anwendungen effizient und ist für Entwickler aller Fachrichtungen geeignet.
Anwendungen wie Chatbots, virtuelle Assistenten, Sprachübersetzungsprogramme und Tools zur Stimmungsanalyse sind allesamt Beispiele für LLM-basierte Apps. Entwickler nutzen LangChain, um maßgeschneiderte, sprachmodellbasierte Anwendungen zu erstellen, die auf spezifische Anforderungen zugeschnitten sind.
Mit den kontinuierlichen Fortschritten und der zunehmenden Verbreitung der Verarbeitung natürlicher Sprache dürften die potenziellen Anwendungsmöglichkeiten dieser Technologie nahezu unbegrenzt sein. Hier sind einige bemerkenswerte Eigenschaften von LangChain:
1. Maßgeschneiderte Eingabeaufforderungen, die Ihren spezifischen Anforderungen entsprechen
2. Konstruktion von Maschendrahtkomponenten für erweiterte Anwendungsszenarien
3. Integrieren von Modellen zur Datenerweiterung und Zugriff auf erstklassige Sprachmodellfunktionen wie GPT und HuggingFace Hub.
4. Vielseitige Komponenten, die sich je nach Bedarf kombinieren lassen
5. Kontextmanipulation zur Erstellung und Steuerung des Kontexts für verbesserte Präzision und Benutzerzufriedenheit
Einrichten von LangChain in Python
Die Installation von LangChain in Python ist ziemlich unkompliziert. Sie können es entweder mit pip oder conda installieren.
Installieren mit pip
Damit sind die grundlegenden Voraussetzungen für LangChain erfüllt. Ein Großteil der Nützlichkeit von LangChain wird erst dann erreicht, wenn es in verschiedene Modellanbieter, Datenspeicher und dergleichen integriert wird.
Standardmäßig sind die für diese Integrationen erforderlichen Abhängigkeiten NICHT in der Installation enthalten. Um alle Abhängigkeiten zu installieren, können Sie den folgenden Befehl ausführen:
Die letzte Möglichkeit besteht darin, die Bibliothek aus der Quelle zu erstellen. In diesem Fall können Sie das Projekt aus seinem GitHub-Repository klonen .
Umgebungseinrichtung
Die Verwendung von LangChain erfordert normalerweise Integrationen mit verschiedenen Modellanbietern, Datenspeichern, APIs und ähnlichen Komponenten. Wie bei jeder Integration müssen wir geeignete und relevante API-Schlüssel bereitstellen, damit LangChain funktioniert. Dies kann auf zwei Arten erreicht werden:
1. Schlüssel als Umgebungsvariable einrichten
Wenn Sie keine Umgebungsvariable festlegen möchten, können Sie den Schlüssel beim Initialisieren der OpenAI LLM-Klasse direkt über den benannten Parameter openai_api_key übergeben:
2. Schlüssel direkt in der entsprechenden Klasse einrichten
Schlüsselkomponenten von LangChain
LangChain zeichnet sich durch seinen Schwerpunkt auf Flexibilität und Modularität aus. Es zerlegt die Pipeline zur Verarbeitung natürlicher Sprache in einzelne Komponenten und ermöglicht es Entwicklern, Arbeitsabläufe an ihre Bedürfnisse anzupassen. Diese Anpassungsfähigkeit macht LangChain ideal für die Erstellung von KI-Anwendungen in verschiedenen Szenarien und Branchen.
Komponenten und Ketten
In LangChain sind Komponenten Module, die bestimmte Funktionen in der Sprachverarbeitungspipeline ausführen. Diese Komponenten können zu „Ketten“ verknüpft werden, um maßgeschneiderte Arbeitsabläufe zu ermöglichen, wie z. B. eine Chatbot-Kette für den Kundenservice mit Modulen für Stimmungsanalyse, Absichtserkennung und Antwortgenerierung.
Eingabeaufforderungsvorlagen
Eingabeaufforderungsvorlagen sind wiederverwendbare, vordefinierte Eingabeaufforderungen in verschiedenen Ketten. Diese Vorlagen können durch Einfügen bestimmter „Werte“ dynamisch und anpassbar werden. Beispielsweise könnte eine Eingabeaufforderung, die nach dem Namen eines Benutzers fragt, durch Einfügen eines bestimmten Werts personalisiert werden. Diese Funktion ist für die Generierung von Eingabeaufforderungen auf der Grundlage dynamischer Ressourcen von Vorteil.
Vektorläden
Diese werden verwendet, um Informationen über Einbettungen zu speichern und zu suchen. Dabei werden im Wesentlichen numerische Darstellungen von Dokumentbedeutungen analysiert. VectorStore dient als Speichereinrichtung für diese Einbettungen und ermöglicht eine effiziente Suche auf der Grundlage semantischer Ähnlichkeit.
Indizes und Retriever
Indizes fungieren als Datenbanken, in denen Details und Metadaten zu den Trainingsdaten des Modells gespeichert werden, während Retriever diesen Index schnell nach bestimmten Informationen durchsuchen. Dies verbessert die Antworten des Modells, indem Kontext und zugehörige Informationen bereitgestellt werden.
Ausgabeparser
Ausgabeparser kommen ins Spiel, um die vom Modell generierten Antworten zu verwalten und zu verfeinern. Sie können unerwünschte Inhalte entfernen, das Ausgabeformat anpassen oder der Antwort zusätzliche Daten hinzufügen. Ausgabeparser helfen also dabei, strukturierte Ergebnisse wie JSON-Objekte aus den Antworten des Sprachmodells zu extrahieren.
Beispielselektoren
Beispielselektoren in LangChain dienen dazu, geeignete Instanzen aus den Trainingsdaten des Modells zu identifizieren und so die Präzision und Relevanz der generierten Antworten zu verbessern. Diese Selektoren können angepasst werden, um bestimmte Arten von Beispielen zu bevorzugen oder nicht verwandte Beispiele herauszufiltern und so eine maßgeschneiderte KI-Antwort basierend auf der Benutzereingabe bereitzustellen.
Agenten
Agenten sind einzigartige LangChain-Instanzen, jede mit spezifischen Eingabeaufforderungen, Speicher und Kette für einen bestimmten Anwendungsfall. Sie können auf verschiedenen Plattformen eingesetzt werden, darunter Web, Mobilgeräte und Chatbots, und richten sich an ein breites Publikum.
So erstellen Sie eine Sprachmodellanwendung in LangChain
LangChain bietet eine LLM-Klasse, die für die Schnittstelle mit verschiedenen Sprachmodellanbietern wie OpenAI, Cohere und Hugging Face entwickelt wurde. Die grundlegendste Funktion eines LLM ist die Textgenerierung. Mit LangChain lässt sich ganz einfach eine Anwendung erstellen, die eine Zeichenfolgeneingabeaufforderung entgegennimmt und die Ausgabe zurückgibt.
Ausgabe :
>>> „Was kommt dabei heraus, wenn man mit Daten herumbastelt? Einen Datenwissenschaftler!“
Im obigen Beispiel verwenden wir das Modell text-ada-001 von OpenAI. Wenn Sie es gegen ein beliebiges Open-Source-Modell von HuggingFace austauschen möchten, ist dies eine einfache Änderung:
Sie können die Hugging Face Hub-Token-ID von Ihrem HF-Konto erhalten.
Wenn Sie über mehrere Eingabeaufforderungen verfügen, können Sie mit der folgenden generateMethode eine Liste der Eingabeaufforderungen auf einmal senden:
Ausgabe :
Dies ist die einfachste App, die Sie mit LangChain erstellen können. Sie nimmt eine Eingabeaufforderung entgegen, sendet sie an ein Sprachmodell Ihrer Wahl und gibt die Antwort zurück. Es gibt viele Parameter, die Sie steuern können, z. B. „Temperatur“. Der Temperaturparameter passt die Zufälligkeit der Ausgabe an und ist standardmäßig auf 0,7 eingestellt.
Verwalten von Eingabeaufforderungsvorlagen für LLMs in LangChain
LLMs haben besondere APIs. Es mag intuitiv erscheinen, Eingabeaufforderungen in natürlicher Sprache einzugeben, aber um die gewünschte Ausgabe von einem LLM zu erhalten, sind tatsächlich einige Anpassungen der Eingabeaufforderung erforderlich. Dieser Anpassungsprozess wird als Prompt Engineering bezeichnet . Wenn Sie eine gute Eingabeaufforderung haben, möchten Sie diese möglicherweise als Vorlage für andere Zwecke verwenden.
A PromptTemplatein LangChain ermöglicht Ihnen die Verwendung von Vorlagen zum Generieren einer Eingabeaufforderung. Dies ist nützlich, wenn Sie dieselbe Eingabeaufforderungsgliederung an mehreren Stellen verwenden möchten, jedoch bestimmte Werte geändert haben möchten.
Ausgabe :
1. Erklimmen Sie den Eiffelturm und genießen Sie die atemberaubende Aussicht auf die Stadt
2. Genießen Sie eine romantische Kreuzfahrt entlang der Seine und bewundern Sie die wunderschöne Architektur entlang des Flussufers
3. Erkunden Sie den Louvre und bewundern Sie die ausgestellten weltberühmten Kunstwerke
Wenn Sie diese Eingabeaufforderung nun für eine andere Stadt wiederverwenden möchten, müssen Sie nur die USER_INPUTVariable ändern. Ich habe sie jetzt von Parisin geändert Cancun, Mexico. Sehen Sie, wie sich die Ausgabe geändert hat:
Ausgabe :
1. Entspannen Sie am Strand: Genießen Sie die weißen Sandstrände und das kristallklare Wasser der Karibischen See.
2. Erkunden Sie die Maya-Ruinen: Besuchen Sie alte archäologische Stätten wie Chichen Itza, Tulum und Coba, um mehr über die Geschichte und Kultur der Maya zu erfahren.
3. Machen Sie eine kulinarische Tour: Probieren Sie die traditionellen Aromen und lernen Sie die lokale Küche kennen, indem Sie an einer kulinarischen Tour durch Cancún teilnehmen.
Kombinieren von LLMs und Eingabeaufforderungen in mehrstufigen Workflows
Chaining im Kontext von LangChain bezeichnet die Integration von LLMs mit anderen Elementen zum Erstellen einer Anwendung. Einige Beispiele:
- Sequentielles Kombinieren mehrerer LLMs durch Verwendung der Ausgabe des ersten LLMs als Eingabe für das zweite LLM (siehe diesen Abschnitt)
- Integration von LLMs mit Eingabeaufforderungsvorlagen
- Zusammenführen von LLMs mit externen Daten, beispielsweise zur Beantwortung von Fragen
- Einbindung von LLMs mit Langzeitgedächtnis, wie Chatverlauf
Sehen wir uns ein Beispiel für das erste Szenario an, in dem wir die Ausgabe des ersten LLM als Eingabe für das zweite LLM verwenden.
Ausgabe :
In diesem speziellen Beispiel erstellen wir eine Kette mit zwei Komponenten. Die erste Komponente ist dafür verantwortlich, die beliebteste Stadt zu identifizieren, die einem bestimmten Land entspricht, das vom Benutzer eingegeben wurde. Im Gegensatz dazu konzentriert sich die zweite Komponente darauf, Informationen über die drei beliebtesten Aktivitäten oder Attraktionen bereitzustellen, die für Touristen verfügbar sind, die diese bestimmte Stadt besuchen midjourney 2.
Wenn Sie fortgeschrittenere Konzepte zum Erstellen von Anwendungen in LangChain erlernen möchten, sehen Sie sich diesen Livekurs zum Erstellen von KI-Anwendungen mit LangChain und GPT auf DataCamp an.
Fazit und weitere Erkenntnisse
Noch vor Kurzem waren wir alle von den beeindruckenden Fähigkeiten von ChatGPT sehr beeindruckt. Die Landschaft hat sich jedoch schnell weiterentwickelt und jetzt haben wir Zugriff auf neue Entwicklertools wie LangChain, mit denen wir in nur wenigen Stunden ähnlich bemerkenswerte Prototypen auf unseren persönlichen Laptops erstellen können.
LangChain, ein Open-Source-Python-Framework, ermöglicht es Einzelpersonen, Anwendungen auf Basis von LLMs (Language Model Models) zu erstellen. Dieses Framework bietet eine vielseitige Schnittstelle zu zahlreichen grundlegenden Modellen, erleichtert die Eingabeaufforderungsverwaltung und dient als zentraler Hub für andere Komponenten wie Eingabeaufforderungsvorlagen, zusätzliche LLMs, externe Daten und andere Tools über Agenten (zum Zeitpunkt des Schreibens).
Wenn Sie mit allen Fortschritten in den Bereichen Generative AI und LLM Schritt halten möchten, sehen Sie sich unser Webinar „Building AI Applications with LangChain and GPT“ an. Hier lernen Sie die Grundlagen der Verwendung von LangChain zur Entwicklung von KI-Anwendungen sowie die Strukturierung einer KI-Anwendung und die Einbettung von Textdaten für eine hohe Leistung. Sie können sich auch unseren Spickzettel zur Landschaft der generativen KI-Tools ansehen , um die verschiedenen Kategorien generativer KI-Tools, ihre Anwendungen und ihren Einfluss in verschiedenen Sektoren zu erkunden.
Häufig gestellte Fragen
LangChain ist ein Open-Source-Framework, das die Entwicklung von Anwendungen auf Basis großer Sprachmodelle (LLMs) erleichtern soll. Es vereinfacht die Erstellung LLM-zentrierter Anwendungen durch die Bereitstellung von Tools, Komponenten und Schnittstellen.
Ja, LangChain ist ein kostenloses Open-Source-Framework, aber für die Verwendung bestimmter LLMs ist möglicherweise ein Abonnement erforderlich.
Ja, LangChain ist mit verschiedenen Sprachmodellanbietern wie OpenAI, Cohere und Hugging Face kompatibel, was Flexibilität bei der Anwendungsentwicklung ermöglicht.
Nach der Installation von LangChain können Sie es in OpenAI-Modelle integrieren, indem Sie Ihren OpenAI-API-Schlüssel einrichten und die bereitgestellten Schnittstellen für die Modellinteraktion verwenden.
LangChain verwendet PromptTemplatezur Verwaltung von Eingabeaufforderungsvorlagen und ermöglicht dynamische und wiederverwendbare Eingabeaufforderungen, die durch Ändern der Eingabevariablen an bestimmte Anwendungsfälle angepasst werden können.
Unter Verkettung versteht man die Integration von LLMs mit anderen Elementen zum Erstellen einer Anwendung, beispielsweise die sequenzielle Kombination mehrerer LLMs, die Integration von LLMs mit Eingabeaufforderungsvorlagen oder die Einbindung externer Daten.
Ja, LangChain unterstützt Dokumentlader für mehrere Datenquellen, darunter Text-, CSV- und PDF-Dateien sowie Plattformen wie Slack und Figma, zur Einbindung in LLM-Anwendungen.