Thejas CR

447 posts

Thejas CR

Thejas CR

@thejascr

Founder of an early stage enterprise AI startup, ex-Engineering Manager at Arista Networks

Katılım Haziran 2018
911 Takip Edilen133 Takipçiler
Thejas CR
Thejas CR@thejascr·
It has been 3 years to the day since I left my job at Arista Networks and jumped full time to build my startup. If I reflect back on the most important progress I have made in these 3 years, it is my mental taste for what a good startup is. The best way I can put this is using a photography analogy. I started bird photography as a hobby 15 years ago and when I started out, what passed for a good picture resembled the photo on the left. All I needed to get excited was to have a bird captured in the frame and I would show it off to people as the greatest photo ever taken. Over time, and a few thousands of photographs later, the mind evolves and matures its definition of what a good photograph is. It now resembles the picture on the right. Same goes for my startup. 3 years ago my mental definition of startup in its totality resembled the picture on the left. Today I would say it has evolved somewhat :)
Thejas CR tweet media
English
0
0
1
70
Thejas CR
Thejas CR@thejascr·
@stevesi My analogy goes even further back. I think we are in the equivalent of early 80s where programming is mostly done in assembly. That's prompting and LLMs are the CPUs. Everything that was built on top of assembly will be rebuilt on top of prompts and LLMs :)
English
0
0
1
17
Thejas CR
Thejas CR@thejascr·
@stevesi I absolutely think this will happen :)
English
1
0
1
37
Thejas CR
Thejas CR@thejascr·
I would love to hear opinion from folks in this thread. I think of LLMs as general purpose computers of the AI world. Prompts are analogous to assembly language. Since we are so early we are still using this primitive form of interfacing with LLMs. I believe we will reinvent all the layers that was invented on top of CPUs (higher level languages, operating systems etc) once again in some form on top of the prompt layer. (eg: @DSPyOSS) In this mental model, I see prompt verification as an engineering discipline that will have a huge ecosystem of software built around it just like test driven and observability driven development had in traditional programming. Do you all see it to be different ? Traditionally we have always moved away from vibing, manual verification, text scraping towards structured, typed and reliably engineered systems. Why would AI system evolution be any different ?
English
0
0
1
16
Andrej Karpathy
Andrej Karpathy@karpathy·
Good post from @balajis on the "verification gap". You could see it as there being two modes in creation. Borrowing GAN terminology: 1) generation and 2) discrimination. e.g. painting - you make a brush stroke (1) and then you look for a while to see if you improved the painting (2). these two stages are interspersed in pretty much all creative work. Second point. Discrimination can be computationally very hard. - images are by far the easiest. e.g. image generator teams can create giant grids of results to decide if one image is better than the other. thank you to the giant GPU in your brain built for processing images very fast. - text is much harder. it is skimmable, but you have to read, it is semantic, discrete and precise so you also have to reason (esp in e.g. code). - audio is maybe even harder still imo, because it force a time axis so it's not even skimmable. you're forced to spend serial compute and can't parallelize it at all. You could say that in coding LLMs have collapsed (1) to ~instant, but have done very little to address (2). A person still has to stare at the results and discriminate if they are good. This is my major criticism of LLM coding in that they casually spit out *way* too much code per query at arbitrary complexity, pretending there is no stage 2. Getting that much code is bad and scary. Instead, the LLM has to actively work with you to break down problems into little incremental steps, each more easily verifiable. It has to anticipate the computational work of (2) and reduce it as much as possible. It has to really care. This leads me to probably the biggest misunderstanding non-coders have about coding. They think that coding is about writing the code (1). It's not. It's about staring at the code (2). Loading it all into your working memory. Pacing back and forth. Thinking through all the edge cases. If you catch me at a random point while I'm "programming", I'm probably just staring at the screen and, if interrupted, really mad because it is so computationally strenuous. If we only get much faster 1, but we don't also reduce 2 (which is most of the time!), then clearly the overall speed of coding won't improve (see Amdahl's law).
Balaji@balajis

AI PROMPTING → AI VERIFYING AI prompting scales, because prompting is just typing. But AI verifying doesn’t scale, because verifying AI output involves much more than just typing. Sometimes you can verify by eye, which is why AI is great for frontend, images, and video. But for anything subtle, you need to read the code or text deeply — and that means knowing the topic well enough to correct the AI. Researchers are well aware of this, which is why there’s so much work on evals and hallucination. However, the concept of verification as the bottleneck for AI users is under-discussed. Yes, you can try formal verification, or critic models where one AI checks another, or other techniques. But to even be aware of the issue as a first class problem is half the battle. For users: AI verifying is as important as AI prompting.

English
133
537
4.4K
844.1K
Thejas CR
Thejas CR@thejascr·
'Staring at the code' (I think of it as internalizing) is exactly right. Code has a large spectrum of functions and routines - the struts, the scaffolding, the mandatory error checks etc which take up close to 80% of the code bases in most cases. AI coding helps me to not waste my time there and instead focus on the core behavior.
English
0
0
0
736
Andrej Karpathy
Andrej Karpathy@karpathy·
Related tweet from earlier where I was describing my own (developing) workflow of "AI Assisted coding" where among other things I try really hard to structure it to decrease verification. x.com/karpathy/statu…
Andrej Karpathy@karpathy

Noticing myself adopting a certain rhythm in AI-assisted coding (i.e. code I actually and professionally care about, contrast to vibe code). 1. Stuff everything relevant into context (this can take a while in big projects. If the project is small enough just stuff everything e.g. `files-to-prompt . -e ts -e tsx -e css -e md --cxml --ignore node_modules -o prompt.xml`) 2. Describe the next single, concrete incremental change we're trying to implement. Don't ask for code, ask for a few high-level approaches, pros/cons. There's almost always a few ways to do thing and the LLM's judgement is not always great. Optionally make concrete. 3. Pick one approach, ask for first draft code. 4. Review / learning phase: (Manually...) pull up all the API docs in a side browser of functions I haven't called before or I am less familiar with, ask for explanations, clarifications, changes, wind back and try a different approach. 6. Test. 7. Git commit. Ask for suggestions on what we could implement next. Repeat. Something like this feels more along the lines of the inner loop of AI-assisted development. The emphasis is on keeping a very tight leash on this new over-eager junior intern savant with encyclopedic knowledge of software, but who also bullshits you all the time, has an over-abundance of courage and shows little to no taste for good code. And emphasis on being slow, defensive, careful, paranoid, and on always taking the inline learning opportunity, not delegating. Many of these stages are clunky and manual and aren't made explicit or super well supported yet in existing tools. We're still very early and so much can still be done on the UI/UX of AI assisted coding.

English
10
4
383
132.3K
Thejas CR
Thejas CR@thejascr·
There is also an important outcome of this. For the better part of last 15 years, github commit graph was the vanity metric developers would show off as their output. With AI coding, that no longer matters. What you shipped and what was its impact to end users is all that matters from now on. I would say that's a great outcome.
English
0
0
3
433
Thejas CR
Thejas CR@thejascr·
As somebody who has been coding for 20 years myself, I couldn't agree more. Historically, every time a new technology (or a layer of abstraction) changed a long practiced craft, people complained about how the previous craft was glorious and honorable. I am sure when assembly was replaced by higher level languages and compilers, there were people who grumbled for a long time about losing the craft of interacting directly with the machine.
English
0
0
2
223
Thejas CR
Thejas CR@thejascr·
@martin_casado @HingumTringum The single biggest value LLMs added to the computing equation is differentiability - the ability to deal with a full range of incremental inputs and outputs (probabilistic) where the prior paradigm was stuck with discrete values.
English
0
0
0
41
Thejas CR
Thejas CR@thejascr·
In my mental model, I don't distinguish between a LLM and a computer. LLMs *are* general purpose computers just with probabilistic behavior. The hardware and software is fused in my mind into one computing machine which processes input symbols and produces output symbols. So any statement that can be applied to a traditional CPU can also be attributed to LLMs.
English
1
0
0
23
martin_casado
martin_casado@martin_casado·
Knuth shows us the way. Again:
martin_casado tweet media
English
13
19
185
17.5K
Thejas CR
Thejas CR@thejascr·
I absolutely agree. I think of LLMs as the general purpose computers of the AI world. Natural language is the lowest level of interface we have just started with. It is analogous to what assembly was for general purpose computers. I think we will soon move to formal languages for all serious programming interfaces to AI systems. There is no way we can build production systems at scale without a formal layer. @DSPyOSS is one of the first attempts towards this. But I am sure it is only the beginning. I think almost every layer that was invented in the 80s on top of general purpose computers will be reinvested with AI.
martin_casado@martin_casado

I think there is a good chance natural languages become more formal because of AI. AI makes formalism more accessible than ever. The next pidgin could be a natural / formal hybrid.

English
0
0
3
419
Thejas CR
Thejas CR@thejascr·
I absolutely agree. I think of LLMs as the general purpose computers of the AI world. Natural language is the lowest level of interface we have just started with. It is analogous to what assembly was for general purpose computers. I think we will soon move to formal languages for all serious programming interfaces to AI systems. There is no way we can build production systems at scale without a formal layer. @DSPyOSS is one of the first attempts towards this. But I am sure it is only the beginning. I think almost every layer that was invented in the 80s on top of general purpose computers will be reinvested with AI.
English
0
1
3
48
martin_casado
martin_casado@martin_casado·
I think there is a good chance natural languages become more formal because of AI. AI makes formalism more accessible than ever. The next pidgin could be a natural / formal hybrid.
English
39
9
164
21.9K
Thejas CR
Thejas CR@thejascr·
@martin_casado I just kicked off a deep research thread on chatgpt ...let's see what it comes up with :)
English
1
0
0
73
martin_casado
martin_casado@martin_casado·
If you ever wondered what the late 90s felt like in the Bay Area during the .com boom ... this is as close as I've seen it in the last 25+ years.
English
158
304
7.8K
1.2M
Thejas CR
Thejas CR@thejascr·
Software systems are built for repeatability, reliability and controllability. The opposite of "intelligence" (non-deterministic behavior). We want intelligence in the right places, but we wouldn't know what to do with intelligence whose behavior we cannot predict and control. Engineering is all about achieving that and will continue to exist long after AGI is achieved
Omar Khattab@lateinteraction

We don’t program software because we lack AGI. We program software because we want *reliable systems*. We already have unreliable general intelligence (8 billion of us!). Reliable systems are about SUBTRACTING intelligence in the right places — for robust control.

English
0
0
1
94
Thejas CR
Thejas CR@thejascr·
Brilliantly put! Whenever I see people talking about AGI 'solving everything magically', I ask myself, would a human-being with all the world's knowledge solve it without detailed specification of what needs to be solved (inputs) and what the definition of 'solved' (outputs) even means ? One gets a lot of clarity when one replaces AGI with super-smart humans.
Omar Khattab@lateinteraction

We don’t program software because we lack AGI. We program software because we want *reliable systems*. We already have unreliable general intelligence (8 billion of us!). Reliable systems are about SUBTRACTING intelligence in the right places — for robust control.

English
0
0
1
89
Thejas CR
Thejas CR@thejascr·
when analyzing civilizational history, we tend to overestimate their technology and underestimate their craft
English
0
0
0
27