A good old Google search followed by reasoning on what you have found is still the most valuable tool. Learn to sift through information, filter, ingest.
Said as someone who waits for the ability to self-host before doubling down on these tools.
Well I hope... I've definitely seen teams and codebases with worse output than GPT so...
The automobile was invented in 1885, but didn't replace the horse until the 1910s.
I've played around with ChatGPT and Copilot a little, and found that they often are subtly, but very confidently wrong in their output when asked to perform a programming task.
Sure you could spend ages refining the prompt etc, but its going to be faster to just write the fucking code yourself in the first place most of the time.
Then there's the privacy/security concerns...
Of course, I'm saying this without actually having used it for programming, so I might be way off base, but the feedback from coworkers who rely even on the now basic GitHub Copilot is that it greatly improves their productivity. I'm envious, of course, but I'm not willing to sacrifice my privacy for that.
It is not just a tool for students to write assignments. In experienced hands it can easily double your productivity.
Here is an example where it helps. I tried to initiate a connection to a Mongodb server using Python. While i have used many databases before, I have never used Python and MongoDB together. So, i knew i would have to have some kind of MongoDB library, a connection Factory and a connection string. I could have googled all of these things.
I did the following in VS Code using CoPilot. def get_db():
"""Initialise a MongoDB connection to a local database"""
It then automatically filled in the rest. db = getattr(g, '_database', None)
if db is None:
db = g._database =
MongoClient('mongodb://localhost:27017/') return db
Notice above, that it knew i was using a flask environment and added the line getattr.Why this is a productivity boost is that i did not have to alt-tab to a browser, search for "pythong mongodb tutorial example" and then type it out. I was able to do the whole thing from VS Code and since i use vsvim, i could do this without taking my fingers off of the keyboard.
This is the next jump since autocompletion. I like it.
Sure it may take a bit more time to get going, but then you'll get it right the first time and learn something along the way. Your copilot example is just another iteration of copy-and-paste some random snippet from StackOverflow in the hope that it will work, but without having seen its context, like from when is the post and what comments, good or bad, did it get.
I'd actually be pretty afraid of a codebase that is created like that.
We have 50+ years of software engineering wisdom to deal with these issues. Testing, Fuzzing, version control, code reviews, the whole gauntlet.
I can't know that my code will be free of critical flaws, but I do understand the common sources of flaws and techniques to avoid them, and I'm quite confident I can build small features like this that simply aren't vulnerable to SQL injection, on the first try and without requiring fuzzers or code review: https://infosec.exchange/@malwaretech/110029899620668108
But I have a feeling for both, which is one of the key components of the skill in our trade.
For idionmatic code, I know the degree to which I'm following how things "should" be done or are "usually" done in a given language. If I'm uncertain, I know that. GPT won't tell me this. Worse, it will confidently claim things, possibly even if presented with evidence to the contrary.
For critical flaws, I know the "dark corners" of the code. Cases which were not obvious to handle or required some trick, etc. I'll test those specifically. With GPTs code, I have no idea what the critical cases are. I can read the code and can try to guess. But it's like outsourcing writing tests to a QA department. Never donna be as effective as the original author of the code. And if I can't trust GPT to write correct code, I can't trust it to write a good test for the code. So, neither the original author of the code (GPT) nor somebody external (me) will be able to test the result properly
Yes because tutorial info on some rando's webpage is never out of date. /s
Essentially, GPT is that rando's webpage but with the metadata stripped away that allowed me to make judgement calls about its trustworthyness. No author, no time, no style to see if somebody is trolling.
"response has issue A" -> point out issue A to GPT "response has issue B" -> point out issue B to GPT
GPT replies with the response that had issue A ...
This is not a tool that is going to be good at performing generic tasks. It just isn't.
Specifically, I was using this to support the statement "In very near future your IDE will send the whole codebase as context to LLMs." I'm not talking about loops or accuracy.
It can't even explain small code to me unless it is something that it has been trained on. Often it gets even simple things wrong, either obviously, or worse, subtly wrong.
I still think we will get useful things from scaling up current models though. I've already got a lot of value out of Copilot, for instance, and I'm looking forward to the next version based on GPT-4. Recently, I've been using the GPT-3 Copilot to write a lot of pandas/matplotlib code, which is fairly straightforward and repetitive, but as mainly a Java developer, I just don't have the APIs at my fingertips. Copilot helps a lot with this sort of thing.
Right, but it's no more known than before GPT models IMO. It's the same unknown.
I don't mean to imply these language models are not impressive. They are pretty impressive.
Identifying hose problems will bring a LOT of value - but it isn't going to program and do general problem solving for you! It just has no signs of being able to do that.
But, it will be a tool - it won't be something that will solve general problems for you. It won't make an average programmer a great programmer.
- https://news.ycombinator.com/item?id=35236275
Not faster or slower but at what quality?
At least every time I've tried to ask GPT 3 & 4 to write anything it's always missing things or not even close to the optimal way that I have to look up the docs and fill in the gaps, which often takes just as long as starting from scratch.
> now basic GitHub Copilot is that it greatly improves their productivity
Perhaps it depends on what you're working on. If it's quick iterations that isn't that concerned about what code goes in and whether it's maintainable then sure.
It's impressive but for now still has lots of gaps. However it is over confident and often misleading.
When I tried it I'd often have to go back to it and keep telling it to use a different way of doing things because the world moved on. By that time there wasn't much point.
I see praises by those that have never coded in a language. They try ChatGPT, see it produce "ok" output and call it a day. If that's where we're going the web will be even more bloated than Electron and everything will be 10x worse. It's like low code but even lower (in quality).
[1] https://github.com/topics/go https://github.com/topics/rust
At work we have really worked hard to minimise boilerplate and manually-written/repetitive tests, so I don't write much of that. Getting GPT to write it would certainly be worse: we would still have the deadweight of boilerplate/repetition even if we didn't have to write it, and some of it would be incorrect. Maybe this varies a lot by company — if you're often writing a lot of repetitive code, and for whatever reason you can't fix the deeper issues, then something like GPT/Copilot could be a godsend.
About documentation lookups, I don't know if this varies by language, but I've had very little luck with using GPT for this. For the languages I use regularly, I can find anything I need in the documentation very rapidly. When I've tried to use GPT to answer the same questions, it occasionally gives completely wrong answers (wasting my time if I believe it), and almost always misses out some subtlety that turned out to be important. It just doesn't seem to be very good for this purpose yet.
There's boilerplate in any codebase, even if you make an effort to minimize it. There are always patterns, repeated code structure, CI and build tool configuration, etc.
If nothing else, just being able to say "write a test for this function", which covers all code paths, mocking, fuzzing, etc., would be a huge timesaver, even if you have to end up fixing the code manually. From what I've seen, this is already possible with current tools; imagine how the accuracy will improve with future generations. Today it's not much different from reviewing code from a coworker, but soon you'll just be able to accept the changes with a quick overview, or right away.
Dismissing them on the basis that they just save you typing time is not seeing their full potential.
- https://news.ycombinator.com/item?id=35236275
- https://news.ycombinator.com/item?id=35248704
- https://news.ycombinator.com/item?id=35228808
And this is with the GPT-4 limitation of 32k input tokens. Imagine what will be possible in the next generation that increases the context size.
In practice the stuff it will suggest to me is sort of random, it may or may not be the best choice for the task at hand, but it's a form of discovery I didn't have previously. The fact that when it tells me about e.g. a new library it can also mock up some sample code that might or might not work is a pleasant bonus.
I suspect the people who find this amazing tech don't program much or are using this very differently than we are. Or program very differently than us.
In my experience these things need a little nuance communicated as a part of the problem, but GPT can't get there. It just starts looping over incorrect solutions (rather than modifying them slightly to get it right like a person would).
These aren't crazy advanced things, either. I'm not a genius. I solved the problems when GPT couldn't. I was just trying out GPT4.
If you're only expecting it to solve your hard problem completely and from scratch entirely from a prompt that's probably not going to succeed, but I can't see how you're possibly faster typing 80-90 extra characters of a log statement than a Copilot user who just presses tab to get the same thing. Those little things add up to significant time savings over a week. Same for mocking services in a test, or manipulating lists of data or any number of things it autocompletes where you'd previously need to author a short script to perform or learn advanced vim movements and recording macros to emulate.
Interestingly, my point to The Verge was exactly that. https://twitter.com/theshawwn/status/1633456289639542789
Me:
> So, imagine it. You'll have a ChatGPT on your laptop -- your very own, that you can use for whatever purposes you want. Personally, I'll be hooking it up to read my emails and let me know if anything comes in that I need to pay attention to, or hook it up to the phone so that it can schedule doctor's appointments for me, or deal with AT&T billing department, or a million other things. The tech exists right now, and I'd be shocked if no one turns it into a startup idea over the next few years. (There's already a service called GhostWrite, where you can let GPT write your emails on your behalf. So having one talk on the phone on your behalf isn't far behind.)
The article:
> Presser imagines future versions of LLaMA could be hosted on your computer and trained on your emails; able to answer questions about your work schedules, past ideas, to-do lists, and more. This is functionality that startups and tech companies are developing, but for many AI researchers, the idea of local control is far more attractive. (For typical users, tradeoffs in cost and privacy for ease of use will likely swing things the other way.)
Notice how they turned the point around from "you can host it yourself" to "but typical users probably won't want that," like this is some esoteric concern that only three people have.
So like, it's not just you. If you feel like you're "in the minority" just because you want to run these models yourself, know that even as an AI researcher I, too, feel like an outsider. We're in this together.
And I have no idea why things are like this. But I just wanted to at least reassure you that the frustrations exist at the researcher level too.
Though I draw the line with using these tools at helping me out with the drudgery of daily work. I don't want them to impersonate me, or write emails on my behalf. I cringe whenever Gmail suggests the next phrase it thinks I want to write. It's akin to someone trying to end your sentences for you. Stop putting words in my mouth!
The recent Microsoft 365 Copilot presentation, where the host had it ghost write a speech for their kid's graduation party[1]—complete with cues about where to look(!)—is unbelievably cringey. Do these people really think AI should be assisting with such personal matters? Do they really find doing these things themselves a chore?
> And I have no idea why things are like this.
Oh, I think it's pretty clear. The amount of resources required to run this on personal machines is still prohibitively high. I saw in one of your posts you mentioned you use 8xA100s. That's a crazy amount of compute unreachable by most people, not to mention the disk space it requires. Once the resource requirements are lowered, and our personal devices are _much_ more powerful, then self-hosting would be feasible.
Another, perhaps larger, reason, is that AI tools are still a business advantage for companies, so it's no wonder that they want to keep them to themselves. I think this will change and open source LLMs will be widespread in a few years, but proprietary services will still be more popular.
And lastly, most people just don't want/like/know how to self-host _anything_. There's a technical barrier to entry, for sure, but even if that is lowered, most people are entirely willing to give up their personal data for the convenience of using a proprietary service. You can see this today with web, mail, file servers, etc.; self-hosting is still done by a very niche group of privacy-minded tech-literate people.
Anyway, thanks for leading the way, and spreading the word about why self-hosting these tools is important. I hope that our vision becomes a reality for many soon.
FWIW LLaMA 65B can run on a single MacBook Pro now. Things move crazy fast. (Or did, before Facebook started DMCA'ing everyone.)
I did a bad job of explaining that personal GPUs will be sufficient in the near future. Thanks for pointing that out.
> thanks for leading the way, and spreading the word about why self-hosting these tools is important. I hope that our vision becomes a reality for many soon.
Thanks for talking about the issue at all. The whole reason I got into AI was to run these myself. It'll be a shame if only massive corporations can run models anyone cares about.
Propaganda. These tools are not for the people, and I'm convinced the idea of how much better our lives could be if technology was thoughtfully designed to truly serve the user is purposely and subtly filtered from the collective conversation.
I’d love to have more privacy on everything, but realistically, the ship’s sailed on most of it.
I'm not doing the kind of work that lends itself to AI tools, or at least what I've been focussing on hasn't lent itself to such tools. Not yet.
The places I'd use it are rough drafting in an area where a community of basic people with more knowledge than me could get the job done. For instance, at one point I got Stable Diffusion to generate a bunch of neat album covers in various styles, like I was an art director. Also asked it to draw toys of certain kinds as starting points for game characters. I wanted some prompts.
In my job I quickly get to where I have to start coming up with ideas most people don't think of. That said, I see marketing possibilities: 'this is the category in which I work, tell me what you need out of it'. Then, when you have the thing made, 'this is the thing, why do you want to buy it?'
ChatGPT would be able to answer that. It's least capable of coming up with an idea outside the mainstream, but it ought to be real good at tapping the zeitgeist because that's all it is, really! It's a collective unconscious.
It's ONLY a collective unconscious. Sometimes what you need to do is surprise that collective unconscious, and AI won't be any better at that than you can be. But sometimes you need to frame something to make sense to the collective unconscious, and AI does that quite easily.
If you asked your average person 'what is great art?' they would very likely fall back on something like Greg Rutkowski, rather than say Basquiat. If you ask AI to MAKE art, it can mimic either, but will gravitate towards formulas that express what its collective unconscious approves of. So you get a lot of Rutkowski, and impress a lot of average people.
I’m waiting for the whole thing to evolve enough to have self hosted stuff to run at home.
Your argument of "I don't trust it with my data and won't until you can self host" should apply to google search as well, no?
And alternative take is that for whatever reason you've decided you didn't want to use new tools, a posteriori created an argument to justify that, and haven't realized the same argument applies to your old tools.
GP identifies an action that analogous and holds certain properties as the original action, in the process illuminating how the issues of approach A exist in approach B.
> Agree to disagree then
Since you're discussing what I was expressing, I can tell you who's correct, since I know what I was expressing. And you're wrong. I wasn't expressing that the concerns are invalid. They're very valid.
Instead, what I was expressing was that OP doesn't actually have those concerns, not that they're invalid.
I may use Google to look up if that slight itch I feel is a symptom of cancer (I'm exaggerating), and I store mails with personal details, my calendar, and messages on Google. But I also assume they're not using those texts to train an AI.
When you enter a code snippet or a personal question in ChatGPT, and press the little thumbs up/down next to the answer, you're adding your data to a training set. The next generation of the model might regurgitate that text verbatim.
Is your concern simply that it might spit out the same thing you typed in? That’s highly unlikely unless you and thousands of other people type in exactly the same thing. I don’t see how that’s anymore worrisome than Google having all of your documents and email on its servers.
These are partly the same reasons I don't voluntarily use proprietary services at all. I don't want to train someone else's model, nor help them build a profile on me. Even if they're not involved in adtech—a rarity nowadays—you have no guarantees of how this data will be used in the future.
For AI tools, there's currently no alternative. Large corporations are building silos around their models, and by using their services you're giving them perpetual access to your inputs. Even if they later comply with data protection laws and allow you to delete your profile, they won't "untrain" their models, so your data is still in there somewhere. Considering that currently we're talking about 32,000 tokens worth of input, and soon people uploading their whole codebases to it, that's an unprecedented amount of data they can learn from, instead of what they can gather from web search terms. No wonder adtech is salivating at opening up the firehose for you to feed them even more data.
The use cases of AI tools are also different, and more personal. While we use search engines for looking things up on the web, and some personal information can be extracted from that, LLMs are used in a conversational way, and often involve much more personal information. It's an entirely different ballpark of privacy concerns.
I use it for re-writing content better, writing ideas, simplifying text (legal/verbose -- simplifying terms is a killer feature really) and context even though trust is limited of the output it is helpful.
I love the art / computer vision side of AI/ML. Though I only like to do that with tools on my machine than rely on a dataset or company that is very closed, that is harder to do with AI/ML because of the storage/processing needed.
I hate blackboxes and magic I don't have access to, though I am a big fan of stable unchanging input/output atomic apis, as long as I have access to the flow. The chat input/output is so simple it will win as it will never really have a breaking change. Until commercial AI/ML GPTs are more open in reality it can't be trusted to not be a trojan horse or trap. What happens when it goes away or the model changes or the terms change?
As far as company/commercial, Google seems to be the most open and Google Brain really started this whole thing with transformers.
Transformers, the T in GPT was invented at Google during Google Brain [1][2]. They made possible this round of progress.
> Transformers were introduced in 2017 by a team at Google Brain and are increasingly the model of choice for NLP problems, replacing RNN models such as long short-term memory (LSTM). The additional training parallelization allows training on larger datasets. This led to the development of pretrained systems such as BERT (Bidirectional Encoder Representations from Transformers) and GPT (Generative Pre-trained Transformer), which were trained with large language datasets, such as the Wikipedia Corpus and Common Crawl, and can be fine-tuned for specific tasks.
Google also gave the public TensorFlow [3] and DeepDream [4] that really started the intense excitement of AI/ML. I was super interested when the AI art / computer vision side started to come up. The GANs for style transfer and stable diffusion are intriguing and euphoric almost in output.
In terms of GPT/chat, Bard or some iteration of it, will most likely win long term, though I wish it was just called Google Brain. Bard is a horrible name.
ChatGPT basically used Google Brain created AI tech, transformers. These were used to build ClosedGPT. For that reason it is NopeGPT. ChatGPT is really just datasets, which no one knows, these could swap at any time run some misinformation then swap the next day. This is data blackboxing and gaslighting at the up most level. Not only that it is largely funded by private sources and it could be some authoritarian money. Again, blackboxes create distrust.
Microsoft is trusting OpenAI and that is a risk. Maybe their goal is embrace, extend, extinguish here but it seems with Google and Apple that Microsoft may be a bit behind on this. Github Co-pilot is great though. Microsoft usually comes along later and make an accessible version. The AI/ML offerings on Azure are already solid. AI/ML is suited for large datasets so cloud companies will benefit the most, it also is very, very costly and this unfortunately keeps it in BigCo or wealthy only arenas for a while.
Google Brain and other tech is way more open already than "Open"AI.
ChatGPT/OpenAI just front ran the commercial side, but long term they aren't really innovating like Google is on this. They look like a leader from the marketing/pump but they are a follower.
[1] https://en.wikipedia.org/wiki/Google_Brain
[2] https://en.wikipedia.org/wiki/Transformer_(machine_learning_...
Also, OpenAI is not the only company in this market anymore. Google, Facebook and Microsoft have competing products, and we know the privacy track record of these companies.
I have an extreme take on this, since for me this applies to all "free" proprietary services, which I avoid as much as possible. The difference with AI tools is that they ask for a much deeper insight into your mind, so the profile they build can be far more accurate. This is the same reason I've never used traditional voice assistant tools either. I don't find them more helpful than doing web searches or home automation tasks manually, and I can at least be somewhat in control of my privacy. I might be deluding myself and making my life more difficult for no reason, but I can at least not give them my data voluntarily. This is why I'll always prefer self-hosting open source tools, over using a proprietary service.
I don't need it to write documents or emails for me. It mostly generates filler, which... nobody needs.
Most of the energy I put into code is about what it should do and how to make it clear to the next person, not typing. I was able to use it once to look up a complex SQL fix that I was having a hard time Googling the syntax on, but that's it.
Perhaps it would be useful if I was working in a language I'm not familiar with, BUT in that scenario I really need it to cite its sources, because that's exactly the case where I wouldn't know when it's making a mistake.
There's something useful here, but it's probably more like a library help desk meets a search engine on steroids. It would be pretty cool to run an AI on my laptop that knows my own code and notes where I can ask "I did something like this three years ago, go find it."
I don't trust it with my data, and won't rely on such tools until I can self-host them, and they can be entirely offline. There is some progress in this space, but they're not great yet, and I don't have the resources to run them. I'm hoping that the requirements will go down, or I might just host it on a cloud provider.
The amount of people who don't think twice about sending these services all kinds of private data, even in the tech space, is concerning. Keyloggers like Grammarly are particularly insidious.