LangChain ist ein Open Source-Orchestrierungs-Framework für die Entwicklung von Anwendungen mit großen Sprachmodellen (LLMs). Die Tools und APIs von LangChain sind sowohl in Python- als auch Javascript-basierten Bibliotheken verfügbar und vereinfachen die Erstellung von LLM-basierten Anwendungen wie Chatbots und virtuellen Agenten.
LangChain dient als generische Schnittstelle für fast jedes LLM und bietet eine zentrale Entwicklungsumgebung, um LLM-Anwendungen zu erstellen und sie in externe Datenquellen und Software-Workflows zu integrieren. Der modulbasierte Ansatz von LangChain ermöglicht es Entwicklern und Data Scientists, verschiedene Eingabeaufforderungen und sogar verschiedene Foundation Models dynamisch zu vergleichen, ohne dass Code neu geschrieben werden muss. Diese modulare Umgebung ermöglicht auch Programme, die mehrere LLMs verwenden, z. B. eine Anwendung, die ein LLM zum Interpretieren von Benutzerabfragen und ein anderes LLM zum Verfassen einer Antwort verwendet.
Im Oktober 2022 von Harrison Chase gestartet, erlebte LangChain einen spektakulären Aufstieg: Bis Juni 2023 war es das am schnellsten wachsende Open Source-Projekt auf Github.1 Zeitgleich mit dem bemerkenswerten Start von OpenAIs ChatGPT im folgenden Monat hat LangChain eine bedeutende Rolle dabei gespielt, generative KI für Enthusiasten zugänglicher zu machen, die im Zuge ihrer großen Popularität entstanden ist.
LangChain kann die meisten Anwendungsfälle für LLMs und die Verarbeitung natürlicher Sprache (NLP) erleichtern, wie Chatbots, intelligente Suche, Frage-Antwort-Dienste, Zusammenfassungsdienste oder sogar virtuelle Agenten, die zur Robotic Process Automation fähig sind.
LLMs sind keine eigenständigen Anwendungen: Sie sind vortrainierte statistische Modelle, die mit einer Anwendung (und in einigen Fällen bestimmten Datenquellen) kombiniert werden müssen, um ihren Zweck zu erfüllen.
Chat-GPT ist beispielsweise kein LLM: Es handelt sich um eine Chatbot-Anwendung, die je nach gewählter Version das Sprachmodell GPT-3.5 oder GPT-4 verwendet. Während das GPT-Modell die Eingaben des Benutzers interpretiert und eine Antwort in natürlicher Sprache verfasst, ist es die Anwendung, die (unter anderem) eine Schnittstelle für den Benutzer zum Tippen und Lesen sowie ein UX-Design bereitstellt, das die Chatbot-Erfahrung bestimmt. Selbst auf Unternehmensebene ist Chat-GPT nicht die einzige Anwendung, die das GPT-Modell nutzt: Microsoft setzt GPT-4 ein, um Bing Chat anzutreiben.
Darüber hinaus sind Foundation Models (wie die, die LLMs unterstützen) zwar mit riesigen Datensätzen vortrainiert, aber nicht allwissend. Wenn eine bestimmte Aufgabe den Zugang zu spezifischen Kontextinformationen erfordert, wie z. B. interne Dokumentation oder Fachwissen, müssen LLMs mit diesen externen Datenquellen verbunden sein. Selbst wenn Sie nur wollen, dass Ihr Modell das aktuelle Geschehen in Echtzeit wiedergibt, benötigt es externe Informationen: Die internen Daten eines Modells sind nur über den Zeitraum aktuell, in dem es trainiert wurde.
Wenn eine bestimmte generative KI-Aufgabe beispielsweise Zugriff auf externe Software-Workflows erfordert – wenn Sie beispielsweise möchten, dass Ihr virtueller Agent in Slack integriert wird –, benötigen Sie eine Möglichkeit, das LLM mit der API für diese Software zu integrieren.
Während diese Integrationen im Allgemeinen mit vollständig manuellem Code erreicht werden können, vereinfachen Orchestrierungs-Frameworks wie LangChain und das IBM watsonx-Portfolio von KI-Produkten den Prozess erheblich. Sie erleichtern auch das Experimentieren mit verschiedenen LLMs, um Ergebnisse zu vergleichen, da sich verschiedene Modelle mit minimalen Änderungen am Code austauschen lassen.
Der Kern von LangChain ist eine Entwicklungsumgebung, die die Programmierung von LLM-Anwendungen durch Abstraktion vereinfacht: die Vereinfachung des Codes durch die Darstellung eines oder mehrerer komplexer Prozesse als benannte Komponente, die alle zugehörigen Schritte kapselt.
Abstraktionen sind ein übliches Element des Alltags und der Sprache. Mit „π“ können wir zum Beispiel das Verhältnis der Länge des Kreisumfangs zu dem seines Durchmessers darstellen, ohne seine unendlichen Ziffern ausschreiben zu müssen. Ein Thermostat ermöglicht es uns, die Temperatur in unserem Haus zu regeln, ohne dass wir die komplexen Schaltkreise verstehen müssen, die damit verbunden sind – wir müssen nur wissen, wie unterschiedliche Thermostateinstellungen zu unterschiedlichen Temperaturen führen.
LangChain ist im Wesentlichen eine Bibliothek mit Abstraktionen für Python und Javascript, die allgemeine Schritte und Konzepte darstellt, die für die Arbeit mit Sprachmodellen erforderlich sind. Diese modularen Komponenten – wie Funktionen und Objektklassen – dienen als Bausteine generativer KI-Programme. Sie können miteinander „verkettet“ werden, um Anwendungen zu erstellen, wodurch der Umfang des Codes und der für die Ausführung komplexer NLP-Aufgaben erforderlichen Feinkenntnisse minimiert wird. Obwohl der abstrakte Ansatz von LangChain das Ausmaß einschränkt, in dem ein erfahrener Programmierer eine Anwendung detailliert anpassen kann, ermöglicht er es Spezialisten und Neulingen gleichermaßen, schnell zu experimentieren und Prototypen zu erstellen.
Fast jedes LLM kann in LangChain verwendet werden. Das Importieren von Sprachmodellen in LangChain ist einfach, vorausgesetzt, Sie haben einen API-Schlüssel. Die Klasse LLM ist so konzipiert, dass sie eine Standardschnittstelle für alle Modelle bietet.
Bei den meisten LLM-Anbietern müssen Sie ein Konto erstellen, um einen API-Schlüssel zu erhalten. Einige dieser APIs – insbesondere diejenigen für proprietäre Closed-Source-Modelle, wie sie von OpenAI oder Anthropic angeboten werden – können mit Kosten verbunden sein.
Viele Open Source-Modelle, wie BLOOM von BigScience, LLaMA von Meta AI und Flan-T5 von Google, können über Hugging Face (Link befindet sich außerhalb von ibm.com) abgerufen werden. IBM watsonx bietet durch seine Partnerschaft mit Hugging Face auch eine kuratierte Suite von Open-Source-Modellen an. Wenn Sie ein Konto bei einem der Dienste erstellen, können Sie einen API-Schlüssel für jedes der von diesem Anbieter angebotenen Modelle generieren.
LangChain ist nicht auf sofort einsatzfähige Foundation Models beschränkt: Die CustomLLM-Klasse (Link befindet sich außerhalb von ibm.com) ermöglicht benutzerdefinierte LLM-Wrapper. Ebenso können Sie die IBM watsonx-APIs und Python-SDK verwenden, die eine LangChain-Integration enthalten, um Anwendungen in LangChain mit Modellen zu erstellen, die Sie bereits trainiert oder für Ihre spezifischen Anforderungen optimiert haben, indem Sie die WatsonxLLM-Klasse (und die spezifische Projekt-ID des Modells) verwenden.
Prompts sind die Anweisungen, die einem LLM gegeben werden. Die „Kunst“, Prompts zu verfassen, die dem LLM den nötigen Kontext bieten, um Eingaben zu interpretieren und Ausgaben so zu strukturieren, wie es für Sie am nützlichsten ist, wird oft als Prompt Engineering bezeichnet.
Die PromptTemplate-Klasse in LangChain formalisiert die Zusammensetzung von Eingaben ohne manuellen Hartcode-Kontext und Abfragen. Wichtige Elemente einer Eingabe werden ebenso wie formelle Klassen wie input_variables eingegeben. Eine Prompt-Vorlage kann also Kontext, Anweisungen (wie „keine Fachbegriffe verwenden“), eine Reihe von Beispielen zur Anleitung der Antworten (im so genannten „Few-Shot-Prompting“), ein bestimmtes Ausgabeformat oder eine standardisierte Frage enthalten und wiedergeben. Sie können eine effektiv strukturierte Prompt-Vorlage speichern und benennen und sie nach Bedarf einfach wiederverwenden.
Obwohl diese Elemente alle manuell kodiert werden können, ermöglichen PromptTemplate-Module eine reibungslose Integration mit anderen LangChain-Funktionen, wie den gleichnamigen Ketten.
Wie der Name schon sagt, sind Ketten der Kern der Workflows von LangChain. Sie kombinieren LLMs mit anderen Komponenten und erstellen Anwendungen, indem sie eine Abfolge von Funktionen ausführen.
Die grundlegendste Kette ist LLMChain. Sie ruft einfach ein Modell auf und fordert eine Vorlage für dieses Modell auf. Stellen Sie sich beispielsweise vor, Sie haben einen Prompt als „ExamplePrompt“ gespeichert und möchten ihn für Flan-T5 ausführen. Sie können LLMChain von langchain.chains importieren, dann chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt) definieren. Um die Kette für einen bestimmten Eingang auszuführen, rufen Sie einfach chain_example.run("input") auf.
Um die Ausgabe einer Funktion als Eingabe für die nächste Funktion zu verwenden, können Sie SimpleSequentialChain verwenden. Für jede Funktion können je nach Bedarf unterschiedliche Eingabeaufforderungen, unterschiedliche Werkzeuge, unterschiedliche Parameter oder sogar unterschiedliche Modelle verwendet werden.
Um bestimmte Aufgaben zu erfüllen, benötigen LLMs Zugriff auf bestimmte externe Datenquellen, die nicht in ihrem Trainingsdatensatz enthalten sind, wie z. B. interne Dokumente, E-Mails oder Datensätze. LangChain bezeichnet solche externe Dokumentation zusammenfassend als „Indexe“.
LangChain bietet eine Vielzahl von Dokumentenladern für Anwendungen von Drittanbietern (Link befindet sich außerhalb von ibm.com). Dies ermöglicht das einfache Importieren von Daten aus Quellen wie File-Storage-Diensten (wie Dropbox, Google Drive und Microsoft OneDrive), Webinhalten (wie YouTube, PubMed oder spezifische URLs), Kollaborationstools (wie Airtable, Trello, Figma und Notion), Datenbanken (wie Pandas, MongoDB und Microsoft) usw.
Im Gegensatz zu „herkömmlichen“ strukturierten Datenbanken stellen Vektordatenbanken Datenpunkte dar, indem sie sie in Vektoreinbettungen umwandeln: numerische Darstellungen in Form von Vektoren mit einer festen Anzahl von Dimensionen, die häufig verwandte Datenpunkte mithilfe unüberwachter Lernmethoden gruppieren. Dies ermöglicht Abfragen mit geringer Latenz, selbst für große Datensätze, was die Effizienz erheblich steigert. Vektor-Einbettungen speichern auch die Metadaten der einzelnen Vektoren, was die Suchmöglichkeiten weiter verbessert.
LangChain bietet Integrationen für über 25 verschiedene Einbettungsmethoden sowie für über 50 verschiedene Vektorspeicher (sowohl in der Cloud gehostet als auch lokal).
Um die Geschwindigkeit zu erhöhen und den Rechenaufwand zu reduzieren, ist es oft ratsam, große Textdokumente in kleinere Teile aufzuteilen. Die TextSplitter von LangChain zerlegen den Text in kleine, semantisch sinnvolle Abschnitte, die anschließend mit Methoden und Parametern Ihrer Wahl kombiniert werden können.
Sobald externe Wissensquellen angeschlossen sind, muss das Modell in der Lage sein, relevante Informationen bei Bedarf schnell abzurufen und zu integrieren. Wie watsonx bietet LangChain Retrieval Augmented Generation (RAG): Die Retriever -Module akzeptieren eine Zeichenfolgenabfrage als Eingabe und geben eine Liste der Dokument-Ausgaben zurück.
LLMs haben standardmäßig keine langfristige Erinnerung an frühere Unterhaltungen (es sei denn, der Chatverlauf wird als Eingabe für eine Abfrage verwendet). LangChain löst dieses Problem mit einfachen Hilfsprogrammen zum Hinzufügen von Speicherplatz zu einem System, mit Optionen, die von der Speicherung der Gesamtheit aller Unterhaltungen über die Speicherung einer Zusammenfassung der bisherigen Unterhaltungen bis hin zur Speicherung der letzten n Unterhaltungen reichen.
LangChain-Agenten können ein bestimmtes Sprachmodell als „Argumentationsmaschine“ verwenden, um zu bestimmen, welche Maßnahmen ergriffen werden sollen. Bei der Erstellung einer Kette für einen Agenten werden u. a. folgende Daten eingegeben:
Trotz ihrer vielgepriesenen Leistungsfähigkeit und Vielseitigkeit weisen LLMs wichtige Einschränkungen auf: nämlich einen Mangel an aktuellen Informationen, einen Mangel an fachspezifischem Fachwissen und allgemeine Schwierigkeiten mit Mathematik.
LangChain-Tools (Link befindet sich außerhalb von ibm.com) sind eine Reihe von Funktionen, die es LangChain-Agenten ermöglichen, mit realen Informationen zu interagieren, um die von ihnen bereitgestellten Dienste zu erweitern oder zu verbessern. Beispiele für bekannte LangChain-Tools sind:
Wolfram Alpha: Bietet Zugriff auf leistungsstarke Rechen- und Datenvisualisierungsfunktionen und ermöglicht anspruchsvolle mathematische Funktionen.
Google-Suche: Bietet Zugriff auf die Google-Suche und versorgt Anwendungen und Agenten mit Echtzeitinformationen.
OpenWeatherMap: ruft Wetterinformationen ab.
Wikipedia: bietet effizienten Zugriff auf Informationen aus Wikipedia-Artikeln.
LangSmith wurde im Herbst 2023 veröffentlicht und soll die Lücke zwischen den zugänglichen Prototyping-Funktionen, die LangChain bekannt gemacht haben, und der Erstellung von LLM-Anwendungen in Produktionsqualität schließen.
LangSmith bietet Tools zum Überwachen, Bewerten und Debuggen von Anwendungen, einschließlich der Möglichkeit, alle Modellaufrufe automatisch zu verfolgen, um Fehler zu erkennen und die Leistung unter verschiedenen Modellkonfigurationen zu testen. Diese Transparenz zielt darauf ab, robustere und kosteneffizientere Anwendungen zu ermöglichen.
LangChain ist eine Open Source und kann kostenlos verwendet werden: der Quellcode ist für den Download auf Github verfügbar (Link befindet sich außerhalb von ibm.com).
LangChain kann auch mit einem einfachen Pip-Befehl auf Python installiert werden: pip install langchain. Um alle LangChain-Abhängigkeiten zu installieren (statt nur diejenigen, die Sie finden), können Sie den Befehl pip install langchain[all] ausführen.
Viele Schritt-für-Schritt-Anleitungen sind sowohl im größeren LangChain-Community-Ökosystem als auch in der offiziellen Dokumentation unter docs.langchain.com verfügbar (Link befindet sich außerhalb von ibm.com).
Anwendungen, die mit LangChain erstellt wurden, bieten einen großen Nutzen für eine Vielzahl von Anwendungsfällen, von einfachen Aufgaben zur Beantwortung von Fragen und zur Texterstellung bis hin zu komplexeren Lösungen, die ein LLM als „Argumentationsmaschine“ verwenden.
Erkunden Sie die Foundation-Model-Bibliothek im watsonx-Portfolio von IBM zur zuverlässigen Skalierung generativer KI für Ihr Unternehmen.
Setzen Sie KI in Ihrem Unternehmen ein – mit branchenführendem Fachwissen im Bereich KI und dem Lösungsportfolio von IBM an Ihrer Seite.
Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.
Entdecken Sie IBM Granite, unsere Familie offener, leistungsfähiger und vertrauenswürdiger KI-Modelle, die auf Unternehmen zugeschnitten und für die Skalierung Ihrer KI-Anwendungen optimiert sind. Entdecken Sie die Optionen zu Sprache, Code, Zeitreihen und Guardrails.
Erfahren Sie, wie Sie das für Ihren Anwendungsfall am besten geeignete KI Foundation Model auswählen.
Lesen Sie Artikel, Blogs und Tutorials von IBM Developer, um Ihr Wissen über LLMs zu vertiefen.
Erfahren Sie, wie Sie Teams durch den Einsatz neuester KI- Technologien und -Infrastrukturen zur kontinuierlichen Verbesserung der Modell-Leistung und Steigerung des Wettbewerbsvorsprungs motivieren können.
1 The fastest-growing open-source startups in Q2 2023 (Link befindet sich außerhalb von ibm.com), Runa Capital, 2023
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com