I'm really puzzled about LangChain. It looks like a lot of cruft and abstraction over something that is very simple. Every senior engineer I know feels the same way. Please explain why I'm wrong.
The only thing good about it in my experience is agents+tools+out-of-the-box wrappers for various LLM providers and such, but if you need to support multiple why not just roll your own adapter pattern?
It adds a cognitive burden, and hides the "magic" and prompts three layers deep with agents, to something already cognitively burdensome if you're looping inputs on themselves or calling multiple agents. In my opinion, of course.
I find langchain complicates more than it helps: abstractions are leaky, API is not consistent across components, and it creates overly complex components.
It's too many layers of over-engineered complexity, and it's for underlying components that are changing very rapidly, so you are getting bogged down with out-dated architecture very quickly.
I'd appreciate the steelman of the opposite too. I want and plan to use LLMs for basic production applications (augmented retrieval mainly - i.e. vector db, do a search, get a summary of results; data cleaning pipelines etc.)
Do I need to learn langchain to be substantially more productive at that stuff?
For those of us that are not on the level of senior engineers or even non-senior engineers, it is an interesting way to get more exposure and practice with all of this. I would have no idea where to start if I wanted to do some of the stuff I can do with langchain. Not that's it is world-changing but my dev knowledge just hasn't reached that point yet (but I would love for it to). Learning to do all this on my own in better and more efficient manners would be incredible but I wouldn't even know where to start.
> Lisp’s unusual syntax is connected to its expressive power. How? Not because of “homoiconicity”, a word that has no meaning but leaves people somewhat impressed, because it sounds fanciful and mathematical. It’s because of uniformity.
No, it _is_ because of homoiconicity, which though a fancy word, does mean something: code is data. That is the reason Lisp syntax works. Clojure is less uniform, but it is still homoiconic, and that is why it has the same powers as CL.
Doug McIlroy coined homoiconic as meaning that the programs are stored in the way that the programmer has entered them.
The POSIX shell is homoiconic because after you have defined some functions, you can execute the command "set" (with no arguments) to see the definitions. They are stored in a form that can be copy and pasted into the shell. (There may be reformatting and comments removed).
The homoiconic feature in Lisp (Common Lisp) is the ED function. It will recall the textual definition of a function, allowing it to be edited.
The big idea in Lisp of using a data structure for manipulating code isn't homoiconic; the data structure definitely isn't in the source code format. It's homoiconic to the extent that uncompiled code can be stored as a data structure and converted back to a character-level of representation. (This is possible due to something that Lisp calls print-read consistency, an important concept in Lisp.)
The code-to-code transformations in Lisp do not work by converting code to text and back
again.
We can take advantage of that even if we go through some front-end that provides a surface syntax, like infix.cl, which loses homoiconicity.
So rather that homoiconicity, the two concepts important in Lisp are print-read consistency and code as a data structure.
Code is also data in C++, because a source file is a vector of bytes, which is a type of data that C++ can manipulate.
I think when people say “code is data” what they really mean is something more specific, like the AST is easy to access and manipulate in the language.
I think the burden is on the proponents. Otherwise anyone could make any assertion - for example, that action potentials cause consciousness, or that influx of ions cause consciousness, or that vibrations cause consciousness, or that only humans are conscious. Like "computation is consciousness" those are just all just, perhaps, correlates of consciousness, not mechanisms for producing it.
Why is "emerging from computation" simple? As an explanation, it seems vastly more complex. I mean, the laws of physics don't even contain terms for defining or valuing computation. Even my examples (which were meant to be bad arbitrary explanations) at least have the benefit of being describable as physical quantities. So at least one side of the explanation is already grounded in things that physics recognizes.
It's a working hypothesis where the element of "HOW does consciousness emerge out of computation" remains unanswered, but you could argue that you shouldn't assume the hypothesis is insufficient until it's shown that the question is not answerable without adding extra assertions (that there is something beyond computation).
Just like we stick to the "planetary orbits are only shaped by gravitational interactions" hypothesis, and if we observe deviations, we try to exhaust all possible explanations that remain gravity based before introducing the possibility of other forces at work.
I’m not sure the analogy to gravity works. At least in the case of gravity we have a model which (largely) explains the planetary orbits. As far as I know, we are not even close to a model in the case of consciousness. And even if we had a model for the “easy problem” it’s possible that the “hard problem” would still remain.
Edit: to be clear, I’m agnostic on this problem. I just don’t really like the emergence “model”, where we have a bunch of supposedly non-conscious matter and if we put enough of it together in the right way consciousness just pops into existence.
But the argument shows it's absurd to think the room is conscious. What if the person in the room takes a coffee break or goes on vacation? What connects the next computational step they do to the previous one and the next... which then somehow gives rise to a fragment of qualia. That seems like an impossibly complex and unlikely scientific theory.
> What if the person in the room takes a coffee break or goes on vacation?
Regular meat-and-bone people lose consciousness all the time, and regain it later. No big deal.
> What connects the next computational step they do to the previous one and the next...
Whatever index card system or similar the operating procedure in the room prescribes for keeping track of state?
> which then somehow gives rise to a fragment of qualia. That seems like an impossibly complex and unlikely scientific theory.
We don't have any 'scientific theory' of qualia. We don't even know if they exist, or how they would manifest in the physical world.
Since we don't know much of anything, I don't know whether a fragment of a figment would be more or less weird than the figment itself. Or whether we would even have fragments.
It's probably too early to try to have a theory of qualia that would apply here?
> Whatever index card system or similar the operating procedure in the room prescribes for keeping track of state?
You're missing the point. A bit is just some electrons. It could be a scribble in a notebook. But consciousness integrates several pieces of information into a coherent experience. The bits in an index card system could as well be some scratchings of graphite in a notebook. How would consciousness arise from graphite in a notebook?
> We don't have any 'scientific theory' of qualia. We don't even know if they exist,
I differ on this. The only thing I know for certain the universe contains is qualia. You, the idea there is a "me", atoms, bits, axons and electric potentials are merely ideas, which "I" apprehend as qualia.
> or how they would manifest in the physical world.
Correct, that is the question. But the Chinese room thought experiment shows it's not merely by information processing. I mean, atoms in a room are processing information - they are computing the next state of all of the atoms in the room. Are they conscious? How about a subset of those atoms? Are those conscious in a different way?
The point is that the consciousness-is-computation idea is just too weak to even be a physical theory.
> Regular meat-and-bone people lose consciousness all the time, and regain it later. No big deal.
So what? There are lots of REAL physical processes that are disrupted in a human being when they lose consciousness.
The point of the Chinese Room is to show that information processing alone is insufficient for consciousness. For example is information processing happening when the person pauses for a minute - or not? For a second, for a millisecond? What about when the pen comes off the paper? What about when he's sharpening his pencil? How exactly does the consciousness=information processing idea work for these situations? It's a nonsense idea that doesn't hold up to careful inspection.
And it's exactly akin to saying we get nuclear power by simulating a nuclear power plant in a computer.
On the other hand, if we believe that consciousness is like an ordinary physical property of the universe, either emergent or fundamental, then it should be related to other physical properties, just as electromagnetism is to mass and energy.
The conscious system is so high above the guy shuffling rulebooks and slips of paper it has no concept of him. A billion years might pass for the Room to experience a second. Just as we have basically no concept of the baroque quantum-molecular-cellular machinery of our brains. There are very roughly 10^15~18 light-sensitive molecules in your eye so you can see. With our best computers it's very hard to precisely simulate a single one of them. Just ponder the insane scale.
You could execute a loop that reflects on an internal model using pen and paper. Is that system conscious? Imagine only one computational step of that loop happening everyday. Does qualia arise from that? What is detecting that that one step is part of a larger series of steps that can be considered a computation? What provides the continuity?
This is why the strange loop idea implemented using traditional computation doesn't make sense to me.
That's just a restating of the Chinese room argument. Like Searle you're bamboozling yourself with scale. If I was put in a magnetic field of some kind that slowed down my physical and neurological processes by 1000x would I be any less conscious? Would I be any less a human being? It would seem so to people observing me for sure, but would it change my essential nature?
And as Searle responded to that argument you are bamboozling yourself with speed. There is nothing that prove that accelerating the computation to a given speed that will make the consciousness emerge.
> One consistent message from redditors has been that performance on the site and native apps could be better. We agree. That’s why the Reddit engineering team is working on making the Reddit platform faster and more reliable.
> A quick heads-up–this section is for engineers and robots. If you like a bit of nerdy tech talk, read on. If you don’t want to get lost in the technical details of what it takes to keep a site likeReddit running, you may want to skip ahead to the ‘Excellent’ section.
> Improving platform stability
> Last year, a major priority was improving feed load times (also known as Cold Start Latency) so that redditors could tap into their feeds and scroll through posts quickly, without waiting or watching little blue spinners tell them the page is loading. Because of those efforts, we saw drops in wait times across the board—iOS went down -11%, Android -19%, and the backend was down -25%. We also made improvements that reduced crashes and errors, resulting in a 64% reduction in downtime and a 97% reduction in background error rate.We’ll continue to invest in these sorts of latency and stability improvements, while also investing in a design system to componentize Reddit’s user interface (UI).
> Making Reddit faster, faster, faster!
> Another big factor in a webpage’s performance is how much stuff it loads. The number of requests for assets, the size of those assets, and how those assets are used are all good indicators of what sort of performance the site will generally have. Reddit’s current web platforms make a lot of requests and the payload sizes are high. This can make the site unwieldy and slow for redditors (especially in places that may already have slower internet service).
> We’ve already begun work on unifying our web (what some of you call new Reddit) and mobile web clients to make them faster, clean up UX debt, and upgrade the underlying tech to a modern technology stack. (For those interested in such things, that stack is Lit element, Web Components, and Baseplate.js. And the core technology choice is server-side rendering using native web components, which allow for faster page loads.) Stay tuned, because we’ll be sharing more on these efforts later in the year, and there’s some exciting stuff on the way.
I'm a founder. I agree, it's a scam. The constraint I bump up against is that VCs expect standard terms which means that stock options will be granted with tight post-exit expiry schedules. The best we've managed to do is to give people the right to 83b election. The whole structure creates such an adverse situation for employees - forcing people who are usually not in a position to take risk (like this guy) into a risk position and a taxable event.
If anyone has good workarounds for seed-Series B level companies, I'd love to hear.
The patent was actually assigned to Stanford University, and Google then licensed it (this is also how most pharmaceutical discovery is patented and licensed). A fundamental problem is that these patents all rely on federal funds from US taxpayers to one extent or the other, and while it may make sense for Stanford to hold the patent, there's a strong argument that any US entity should be able to license it (not just one exclusive license in other words).
Prior to Bayh-Dole legislation in the 1980s, this was the case for university-held patents: they could be not be exclusively licensed. Repealing that legislation would be a good idea to avoid the rise of monopolisitic behemoths like Google/Alphabet.
The patent approval process isn't perfect. Had you violated the patent, and had Google sued you, you could always argue prior art. What would your evidence be?
The patent office could have just missed the prior art, or more likely is that the claims are more narrow than and represent an improvement upon said prior art.
The patent doesn't cover just ranking documents based on their citations; it also covers various ways to extract "citations" from a webpage, weighting the pages to determine their importance, and doing all of this efficiently enough that you can process millions of queries per second.
I was thinking of the Pinski-Narin method, but there are other earlier uses of eigenvector calculations over very similar data: https://arxiv.org/pdf/1002.2858.pdf