Warum haben Sie LangChain aufgegeben?

WBOY
Freigeben: 2024-06-24 14:20:32
Original
1025 Leute haben es durchsucht

Vielleicht war LangChain vom Tag seiner Geburt an dazu bestimmt, ein Produkt mit polarisierendem Ruf zu sein.

Diejenigen, die gegenüber LangChain optimistisch sind, schätzen die umfangreichen Tools und Komponenten sowie die einfache Integration. Diejenigen, die gegenüber LangChain nicht optimistisch sind, glauben, dass es zum Scheitern verurteilt ist – in einer Zeit, in der sich die Technologie so schnell verändert, ist dies einfach nicht machbar Erstellen Sie alles mit LangChain.

Einige Übertreibung:

„In meiner Beratungstätigkeit verbringe ich 70 % meiner Energie damit, Menschen davon zu überzeugen, Langchain oder Lamaindex nicht zu verwenden. Das löst 90 % ihrer Probleme.“ Im Mittelpunkt heißer Diskussionen:

Warum haben Sie LangChain aufgegeben?Der Autor, Fabian Both, ist Deep-Learning-Ingenieur beim KI-Testtool Octomind. Das Octomind-Team verwendet einen KI-Agenten mit mehreren LLMs, um automatisch End-to-End-Tests in Playwright zu erstellen und zu reparieren.

Warum haben Sie LangChain aufgegeben?Dies ist eine Geschichte, die mehr als ein Jahr dauerte, angefangen bei der Auswahl von LangChain bis hin zum Eintritt in die Phase des hartnäckigen Kampfes mit LangChain. Im Jahr 2024 beschlossen sie schließlich, sich von LangChain zu verabschieden.

Mal sehen, was sie durchgemacht haben:

„LangChain war die beste Wahl“

Wir verwendeten LangChain über 12 Monate lang in der Produktion, begannen Anfang 2023 und entfernten es dann im Jahr 2024.

Im Jahr 2023 scheint LangChain unsere beste Wahl zu sein. Es verfügt über eine beeindruckende Auswahl an Komponenten und Werkzeugen und erfreut sich immer größerer Beliebtheit. LangChain versprach, „Entwicklern zu ermöglichen, innerhalb eines Nachmittags von einer Idee zum ausführbaren Code zu gelangen“, aber als unsere Anforderungen immer komplexer wurden, tauchten Probleme auf.

LangChain wird eher zu einer Quelle des Widerstands als zu einer Quelle der Produktivität.

Als sich die Unflexibilität von LangChain zeigte, begannen wir, tiefer in die Interna von LangChain einzutauchen, um das zugrunde liegende Verhalten des Systems zu verbessern. Da LangChain jedoch absichtlich viele Details abstrahiert, können wir den erforderlichen zugrunde liegenden Code nicht einfach schreiben.

Wie wir alle wissen, verändern sich KI und LLM schnell in den Bereichen, in denen jede Woche neue Konzepte und Ideen auftauchen. Allerdings ist das Framework-Design von LangChain, einem abstrakten Konzept, das auf mehreren neuen Technologien basiert, schwierig, den Test der Zeit zu bestehen.

Warum LangChain so abstrakt ist

Zunächst kann LangChain auch dann helfen, wenn unsere einfachen Bedürfnisse mit den Nutzungsannahmen von LangChain übereinstimmen. Aber seine Abstraktionen auf hoher Ebene machten unseren Code schnell schwieriger zu verstehen und frustrierend in der Wartung. Es ist kein gutes Zeichen, wenn das Team so viel Zeit damit verbringt, LangChain zu verstehen und zu debuggen, wie mit der Entwicklung von Funktionen.

Das Problem mit dem abstrakten Ansatz von LangChain lässt sich am trivialen Beispiel der „Übersetzung eines englischen Wortes ins Italienische“ veranschaulichen.

Hier ist ein Python-Beispiel, das nur das OpenAI-Paket verwendet:

Warum haben Sie LangChain aufgegeben?Dies ist ein einfacher und leicht verständlicher Code, der nur eine Klasse und einen Funktionsaufruf enthält. Der Rest ist Standard-Python-Code.

Vergleichen Sie dies mit der Version von LangChain:

Warum haben Sie LangChain aufgegeben?Der Code ist ungefähr derselbe, aber hier endet die Ähnlichkeit.

Wir haben jetzt drei Klassen und vier Funktionsaufrufe. Besorgniserregend ist jedoch, dass LangChain drei neue abstrakte Konzepte einführt:

    Prompt-Vorlage: Bietet Prompt für LLM;
  • Ausgabeparser: Verarbeitet die Ausgabe von LLM; deckt den |-Operator von Python ab.
  • LangChain erhöht lediglich die Komplexität des Codes ohne offensichtliche Vorteile.
  • Diese Art von Code eignet sich möglicherweise für frühe Prototypen. Für den Produktionseinsatz muss jedoch jede Komponente angemessen verstanden werden, damit sie unter tatsächlichen Einsatzbedingungen nicht unerwartet abstürzt. Sie müssen sich an die vorgegebenen Datenstrukturen halten und Ihre Anwendung um diese Abstraktionen herum entwerfen.

  • Sehen wir uns einen weiteren abstrakten Vergleich in Python an, diesmal mit JSON von einer API.

Verwenden Sie das integrierte http-Paket:

Verwenden Sie das Requests-Paket:

Warum haben Sie LangChain aufgegeben?

Der Unterschied ist offensichtlich. So fühlt sich gute Abstraktion an.

Natürlich sind das triviale Beispiele. Was ich damit sagen möchte, ist, dass gute Abstraktionen den Code vereinfachen und die kognitive Belastung reduzieren, die zum Verständnis erforderlich ist.

Warum haben Sie LangChain aufgegeben?LangChain versucht, Ihnen das Leben zu erleichtern, indem es die Details verbirgt und mit weniger Code mehr erreicht. Wenn dies jedoch auf Kosten der Einfachheit und Flexibilität geht, verliert die Abstraktion an Wert.

LangChain hat auch die Angewohnheit, Abstraktionen zusätzlich zu anderen Abstraktionen zu verwenden, sodass Sie oft in verschachtelten Abstraktionen denken müssen, um die API richtig zu verwenden. Dies führt unweigerlich dazu, dass Sie große Stapelspuren verstehen und internen Framework-Code debuggen, den Sie nicht geschrieben haben, anstatt neue Funktionen zu implementieren.

Auswirkungen von LangChain auf Entwicklungsteams

Im Allgemeinen nutzen Anwendungen in hohem Maße KI-Agenten, um verschiedene Arten von Aufgaben auszuführen, wie z. B. das Erkennen von Testfällen, das Generieren von Playwright-Tests und automatische Korrekturen.

Wenn wir von einer einzelnen Sequential Agent-Architektur zu einer komplexeren Architektur wechseln möchten, wird LangChain zu einem limitierenden Faktor. Generieren Sie beispielsweise Subagenten und lassen Sie sie mit dem ursprünglichen Agenten interagieren. Oder mehrere professionelle Agenten interagieren miteinander.

In einem anderen Beispiel müssen wir die Verfügbarkeit von Tools, auf die der Agent zugreifen kann, basierend auf der Geschäftslogik und der Ausgabe des LLM dynamisch ändern. Allerdings bietet LangChain keine Methode zur Beobachtung des Agent-Status von außen, was dazu führte, dass wir den Umfang der Implementierung reduzieren mussten, um uns an die eingeschränkte Funktionalität von LangChain Agent anzupassen.

Sobald wir es entfernen, müssen wir unsere Bedürfnisse nicht mehr in eine für LangChain geeignete Lösung übersetzen. Wir müssen nur Code schreiben.

Welches Framework sollten Sie verwenden, wenn Sie LangChain nicht verwenden? Vielleicht brauchen Sie überhaupt kein Framework.

Brauchen wir wirklich ein Framework zum Erstellen von KI-Anwendungen?

LangChain stellte uns in den frühen Tagen LLM-Funktionalität zur Verfügung, sodass wir uns auf die Entwicklung von Anwendungen konzentrieren konnten. Aber im Nachhinein betrachtet wären wir ohne den Rahmen langfristig besser dran gewesen.

LangChain Die lange Liste der Komponenten erweckt den Eindruck, dass die Erstellung einer LLM-basierten Anwendung sehr komplex ist. Aber die für die meisten Anwendungen benötigten Kernkomponenten sind normalerweise wie folgt:

  • Client für LLM-Kommunikation

  • Funktionen/Tools für Funktionsaufrufe

  • Vektordatenbank für RAG

  • Observability-Plattform für Tracking, Bewertung, und mehr.

Der Agentenbereich entwickelt sich rasant weiter und bringt aufregende Möglichkeiten und interessante Anwendungsfälle mit sich, aber unser Rat: Halten Sie es vorerst einfach, bis sich die Nutzungsmuster der Agenten verfestigt haben. Ein Großteil der Entwicklungsarbeit im Bereich der künstlichen Intelligenz wird durch Experimente und Prototyping vorangetrieben.

Das Obige ist die persönliche Erfahrung von Fabian Both im letzten Jahr, aber LangChain ist nicht ganz unbegründet.

Ein anderer Entwickler, Tim Valishev, sagte, dass er noch eine Weile bei LangChain bleiben wird:

Ich mag Langsmith wirklich:

  • Visuelle Protokollierung sofort einsatzbereit

  • Prompt-Spielplatz, Sie können Eingabeaufforderungen sofort beheben aus den Protokollen und sehen Sie, wie es unter den gleichen Eingaben funktioniert

  • Erstellen Sie ganz einfach Testdatensätze direkt aus den Protokollen, mit der Option, einfache Testsätze in Eingabeaufforderungen mit einem Klick (oder im Code) durchgängig auszuführen Testen)

  • Testergebnisverlauf

  • Prompte Versionskontrolle

und es bietet gute Unterstützung für das Streaming der gesamten Kette, es dauert einige Zeit, dies manuell zu implementieren.

Darüber hinaus reicht es nicht aus, sich ausschließlich auf APIs zu verlassen. Die APIs jedes großen Modellherstellers sind unterschiedlich und ein „nahtloser Wechsel“ ist nicht möglich.

Warum haben Sie LangChain aufgegeben?

Warum haben Sie LangChain aufgegeben?

Warum haben Sie LangChain aufgegeben?

Was meint ihr?

Originallink: https://www.octomind.dev/blog/why-we-no-longer-use-langchain-for-building-our-ai-agents

Das obige ist der detaillierte Inhalt vonWarum haben Sie LangChain aufgegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jiqizhixin.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage