16 Punkte von xguru 2023-07-16 | 4 Kommentare | Auf WhatsApp teilen
  • LangChain: eine Python- und JavaScript-Bibliothek, die für die KI-Textgenerierung mit der GPT-API von OpenAI interagiert
    • Eine Implementierung des ReAct-Papers, die bekanntermaßen die Qualität der von LLMs erzeugten Texte verbessert
    • Der ReAct-Workflow war besonders effektiv mit InstructGPT/text-davinci-003, ist aber teuer und für kleine Projekte nicht leicht einzusetzen
  • LangChain wurde mit zunehmender Popularität recht umfangreich finanziert, obwohl es weder eigene Einnahmen noch einen Plan zur Monetarisierung gibt
  • Es sollte tatsächlich bei BuzzFeed zum Bau eines Chatbots eingesetzt werden
    • Weil LangChain ein populäres Tool für RAG (Retrieval-Augmented Generation) war
    • Nach eingehender Untersuchung funktionierte es jedoch nicht gut. Es gab viele Bugs und die Qualität war ebenfalls nicht gut
    • Als man wieder auf Low-Level-Ebene ging und direkt selbst entwickelte, kamen deutlich bessere Ergebnisse als mit LangChain heraus
    • Durch den Hacker-News-Beitrag "LangChain in 100 Zeilen Code bauen" und die Kommentare mit Kritik an LangChain wurde klar, dass es nicht nur ein Einzelfall war
  • Das Problem mit LangChain ist, dass es dem KI-Ökosystem unnötige Komplexität und Voreingenommenheit hinzufügt
    • Anfänger, die lernen wollen, wie man mit ChatGPT interagiert, sollten auf keinen Fall mit LangChain anfangen
    • Beispiele und Code sind komplexer als bei der Nutzung der offiziellen Python-Bibliothek von OpenAI
    • Das Prompt Engineering von LangChain ist faktisch nur f-strings mit eingebauten Zusatzschritten
    • Agent-Workflows und Gesprächsspeicher sind nicht gut dokumentiert und können in der Nutzung verwirrend sein
    • Die System-Prompt-Funktion ist nicht sauber in die Agent-Workflows integriert
    • Dokumentation und Beispiele haben in der Praxis mehr Probleme als Vorteile, was den realen Einsatz erschwert
  • LangChain-Agenten verwenden über Prompt Engineering und JSON-Ausgabe eine eigentümliche Methode zur Werkzeugauswahl
    • Änderungen an der normalen Ausgabestruktur können dazu führen, dass Agenten nicht funktionieren und Parsing-Fehlerbehandlung nötig wird
    • Der Chatbot kann Rezepte korrekt extrahieren und formatieren, aber die Ausgabe ist langweilig
    • Es gibt zwar Funktionen für benutzerdefinierte Agenten und Chains, diese machen den Prozess jedoch komplexer
    • Mit Utility-Funktionen wie Text-Splittern und integrierten Vector Stores schränkt LangChain ein, sodass nur LangChain-basierter Code genutzt werden kann
  • LangChain erhöht bei den meisten populären Anwendungsfällen Overhead und Komplexität
    • Es wirkt, als setze es die Philosophie um: „it’s complicated, so it must be better!“
  • Der Autor hat als Alternative zu LangChain das deutlich einfachere Python-Paket simpleaichat entwickelt
  • Es geht nicht darum, simpleaichat zu bewerben, sondern darum, dass Anfänger aus Sorge am Ende zu LangChain greifen könnten

4 Kommentare

 
sungwoo 2023-07-18

Auch ich hatte nach einer Analyse von langchain stark den Eindruck, dass es over-engineered ist.
http://swcho.github.io/blogs/2023-07-15-langchainjs-part-3

Ich denke, man sollte seine Bedeutung darin sehen, dass langchain은 llm echosystem을 어떻게 구성할 것인가? als erstes Open-Source-Projekt die Frage aufgeworfen hat.

Auch wenn die Usability von langchain zu wünschen übrig lässt, bleibt das Problem, das langchain lösen wollte, weiterhin bestehen.

 
ohyecloudy 2023-07-17

Jetzt ist GN+ also auch im RSS enthalten. Vielen Dank. @xguru, ich werde es aufmerksam lesen.

 
xguru 2023-07-16

LangChain ist sinnlos

Ich denke, das ist ein Folgeartikel zu diesem Beitrag.
Der Autor dieses Blogs, Max Woolf, hat in den Kommentaren zum obigen Artikel kritisiert, dass LangChain wirklich nutzlos sei, und dann mit simpleaichat eine Alternative entwickelt und veröffentlicht.
Diesmal hat er sogar noch einen Artikel veröffentlicht, in dem er die Probleme zusammenfasst.

 
GN⁺ 2023-07-16
Hacker-News-Meinungen
  • LangChain wird als Schrottsoftware bewertet, und es ist geplant, alles neu zu schreiben.
  • Dem LLM-CLI-Tool wurde eine Python-Bibliotheks-API hinzugefügt, sodass leichtgewichtige Modellaufrufe möglich geworden sind.
  • LangChain wird dafür kritisiert, als Zwischenschicht unnötig zu sein und die Coding-Erfahrung nicht zu verbessern.
  • Trotz der Probleme nutzen viele Anwender LangChain mit Freude und als nützliches Werkzeug zum Bauen mit LLMs.
  • LangChain bietet interessante Tools und Example Selectors, aber die Codequalität ist unzureichend.
  • Dieser Artikel ist kritisch und wird dafür kritisiert, die Arbeit des ursprünglichen Autors schlechtzumachen.
  • Um Ideen zu bekommen und Prototypen zu erstellen, ist LangChain nützlich, aber oft ist es einfacher, alles direkt selbst zu implementieren.
  • Prototyping mit LangChain hilft dabei, Ideen zu validieren, bevor wichtige Ressourcen investiert werden.
  • Als alternativer Ansatz zur Implementierung ähnlicher Funktionen wird die Verwendung von lambda over let over lambda vorgeschlagen.