Solo perché qualcosa è complicato non significa necessariamente che sia buono o migliore. LangChain è un esempio lampante di ciò. Fondamentalmente, l’obiettivo principale di LangChain è fornire un’astrazione che semplifichi l’integrazione degli LLM (Language Model) nei programmi per i programmatori. Anche se offre un’interfaccia relativamente semplice per gli LLM, molti sviluppatori si rifiutano di utilizzare LangChain in un ambiente di produzione a causa delle sue imperfezioni.
A causa della complessità del software, gli sviluppatori stanno mettendo in dubbio le intenzioni che si celano dietro l’esistenza di LangChain. In una discussione su Reddit, un utente di LangChain ha affermato che “il problema con LangChain è che risolve le cose facili che potresti facilmente fare da solo, ma non ha pensato molto al design e all’architettura per aiutarti con le cose difficili”. È eccessivamente ingegnerizzato.
Recentemente, Max Woolf ha discusso approfonditamente dei problemi che circondano LangChain in un suo blog. Sostiene che invece di semplificare le cose, LangChain rende le cose relativamente più complesse. “Con quella complessità superflua, LangChain crea una divisione che danneggia l’intero ecosistema emergente dell’IA. Se sei un principiante che vuole semplicemente imparare a interfacciarsi con ChatGPT, sicuramente non iniziare con LangChain”, ha consigliato Woolf.
Pensieri simili vengono espressi su HackerNews, dove le persone dicono che “LangChain è un software di scarso valore”. LangChain come progetto può essere una risorsa preziosa per accelerare il lavoro delle persone, aiutandole a capire il funzionamento interno di vari processi. “Ha funzionato come una sorta di libro di cucina dell’IA, offrendo ricette per diverse attività”.
Tuttavia, l’utente ha affermato che, una volta identificato un approccio adeguato, aveva pianificato di reimplementare tutto utilizzando i componenti sottostanti che LangChain presumibilmente astrae. Attualmente, l’utilizzo di LangChain è più rapido ed efficiente rispetto alla ricerca e all’apprendimento delle singole librerie e delle loro API. Hanno intenzione di continuare a utilizzarlo principalmente all’interno dei loro progetti in corso, ma non per l’implementazione diretta, in quanto lo considerano una “scatola nera”.
Woolf afferma che non intende criticare il software open source, ma sostiene che incoraggiare i principianti ad immergersi in esso non sia giusto. Utilizzando un esempio di traduzione dall’inglese al francese, spiega come LangChain utilizzi approssimativamente la stessa quantità di codice necessaria all’utilizzo della libreria OpenAI ufficiale, tranne per il fatto che incorpora un maggior numero di classi di oggetti per un vantaggio di codice non così evidente. Ciò rende l’apprendimento del machine learning ancora più difficile poiché introduce un’ulteriore fase di apprendimento di LangChain prima di poter creare strumenti di intelligenza artificiale.
La frustrazione tra gli sviluppatori è evidente. Persone su HackerNews, Twitter e Reddit raccontano storie simili su come fossero entusiaste di utilizzare LangChain nei loro progetti, solo per scoprire in seguito che è eccessivamente complesso e disordinato. Alla fine, hanno deciso di eliminarlo completamente dai loro progetti.
Gli sviluppatori affermano che quello che NumPy e Pandas hanno fatto per il machine learning, LangChain lo ha fatto per gli LLM, migliorandone notevolmente la facilità d’uso e le funzionalità. Utilizzando LangChain, gli sviluppatori possono potenziare le proprie applicazioni collegandole a un LLM o sfruttare un ampio set di dati collegandovi un LLM.
LangChain è entrato molto presto nella scena ed è riuscito a raccogliere un’ampia varietà di funzionalità impressionanti. Inoltre, OpenAI ha incorporato la funzione di chiamata di funzione nella propria offerta di base, apprendendo da LangChain. Sebbene alcune persone sostengano che ciò renda LangChain ridondante come strumento separato, è comunque un risultato impressionante.
Quando si tratta di framework come LangChain, è un’evoluzione naturale osservata in molti framework che cercano di adattarsi alle tecnologie emergenti. Tuttavia, gli sviluppatori ritengono che in questa particolare istanza di LangChain, l’abilità del progetto di superare i limiti del design originale sembrasse improbabile senza una riscrittura completa o il rischio di diventare obsoleto rispetto ad altri framework alternativi.
Nel complesso, LangChain sembra incarnare un approccio complesso e intricato, nonostante la sua giovane età. Adattarlo per soddisfare requisiti specifici comporterebbe un considerevole debito tecnico, che non può essere facilmente risolto come spesso avviene per le startup di intelligenza artificiale che possono far fronte a tali problemi grazie al capitale di rischio.
Idealmente, gli wrapper API dovrebbero semplificare la complessità del codice e il carico cognitivo quando si lavora con ecosistemi complessi, dato che l’IA richiede già uno sforzo mentale considerevole. Tuttavia, LangChain si distingue come uno dei pochi software che introduce un ulteriore sovraccarico nei suoi casi d’uso principali.