Well, had the community tried analyzing what could be done better? And iterating on the design?
No, the design from an old academic paper was used with a much newer model. And now everyone is just copying that.
It works, because new models are impressive. But the design is far from being elegant or particularly efficient. And now, because tons of data like that is going to be generated, we’ll be stuck with it.
Yes, relatively old. The issue is, this approach is designed to work with the “classical” language model, trained using “The Pile” methods. This particular one was Palm 540b.
So essentially you have an approach, designed to work on these models that are not really instruction following models and that truly are stochastic parrots.
The models had changed substantially since. But the approach of chaining them in this particular way stuck. And is getting copied everywhere, without much thought.
Sure. I’m just expressing my opinion that the design is suboptimal and that the level of design is literally “You are GPT-3 and you suck at math” [quote from the LangChain code base].
I don’t want to see further expansion of this. I’m not offering higher level design, because I’m not sure about safety of all of this.
But having a poor and potentially unstable design like LangChain also doesn’t contribute to it :-/
Sorry to bring up an older thread, but I was looking into LangChain recently, and I was thinking of making something similar but in other languages. Do you have any insight into what direction is better to move in for LangChain-like alternatives?
It seems pretty rare that communities get "stuck with" a framework. Frameworks are pretty fluid. Eg, Python didn't get "stuck on Django," and they didn't get "stuck on flask," and they're not "stuck on FastAPI" now - the ecosystem continued to evolve, and none of these projects even had to die for a different vision of how a framework should be organized to capture the zeitgeist. They've each got dedicated communities which are continuing to improve them.
Similarly, I expect creative hackers to pursue new approaches in the space of LLM frameworks and for some of those to catch on, and that they don't need to uproot langchain to do so.
The difference is, lots of data is being generated. And, open models in particular, are trained on it. So there is a certain level of stickiness.
An analogy of a file format is a close one. Imagine someone invents something nasty and bulky, like a twisted form of XML or something. And, simply because it is early, it catches on. It could be buggy and unstable and ugly, but it still wins, because it is early.
The call here is to try to examine LangChain design a bit closer. And maybe consider that a start from scratch is a good idea.