GPT Neo: open-source GPT model, with pretrained 1.3B & 2.7B weight models
github.com
github.com
Eleuther has a history of claiming to replicate projects when they haven't. For example, they shipped a DALL-E repo a few days after OpenAI announced it (https://twitter.com/theshawwn/status/1348017515897659392) which was broken, and they've walked back their GPT-3 replication claims to replicating 1.5B due to the fact that their architecture doesn't scale.
As far as I can tell, they're generating a large amount of hype with grandiose claims that they can't deliver on.
All I care about is whether you like their models and actually use them in practice. If you do, please let me know and I'll pipe down. But so far, I haven't heard of anyone who uses anything they've produced, and that worries me. Has anyone?
One specific claim they made: https://twitter.com/BlancheMinerva/status/134727697554780980...
"DALL-E is quite straight forward and already coded. We just need data to train it."
No, DALL-E is neither straightforward nor was it successfully coded, especially back on January 7th.
Anyway, carry on. I really don't like speaking badly of AI projects, and I hope that they succeed. The model release today is a good step forward, assuming it works. But it might be better to have the expectation of "the models don't work" until proven otherwise.
I'd also like to point out that there are some capable people doing work at Eleuther. Sid in particular is one of the best TPU hackers in the scene. I just wish they would scale down their claims, release more models, and not claim that they've done X until actually doing X. For example, the readme says they have "the ability to scale up to full GPT3 sizes (and possibly more!), using the mesh-tensorflow library," which they don't.
This is not meant as a goad to you, but more just as more info for everyone, my understanding is it is an open source community of like minded people type project (as opposed to a bigco) and actively solicits contributions (by which I mean code and data) so anyone seeing room for improvement is welcome to step in from what I can tell.
I did find your comment helpful and informative; just adding another angle here.
I'm not really sure how much you gain by attracting tons of people to the discord if you finally release and everyone has unreasonable expectations due to the way you advertise the group as a whole.
Isn't GPT-3 the architecture? Are they doing something different or why would it not scale?
To go from 2.7B to 170B parameters will need more than just a few config tweaks. There's a whole bunch of hacks and tricks needed to coax a model to train at that scale, the Eleuther version is almost guaranteed to fail out-of-the-box.
It's still telling that a "small" GPT-3 model can risk cannibalizing a larger model.
If you don't believe me, consider that many ML researchers track their commits (or exact code versions) extremely carefully, because oftentimes they will make some change (or changes) they think are inconsequential and later find that actually, their model broke. If they made too many changes, whoops, guess you have to binary search over the diff to see what happened since your last "good run".
If the people who spent months (if not years) tuning a model can't tell whether it will work from the code, how could anyone else? Most ML researchers will not bother with most code that doesn't give proof of results (in terms of a model that can actually be evaluated) because it is just so unlikely that it will actually work well. Now, it might "work" in the sense that it converges and does something when you prompt it with examples. But will this GPT-3 reimplementation actually outperform say, the 10x smaller T5 checkpoint that was released by Google, or the other smaller language models others have released? If it doesn't, it's hard to argue that its very useful at all.
I think that's the spirit of why the original commenter said what they did, but I still do applaud the efforts of this team (and hope that their implementation is, in fact, highly performant!)
How do you train a model too big to fit in a single GPU? It's doable, but not simple. How do you update weights across your cluster? etc etc
Enterprise customers that have no idea about the technical details will just hear about OpenAI's success in this fancy new model and assume that Eleuther can deliver.
I mean, most use cases for "big data" projects that are tiny in comparison with Alphabet's datasets will just work with GPT2 fine, probably.
And Enterprise customers that hear those claims and see some code, maybe some demo, is enough for them to start the consultancy process.
In my opinion that's a policy problem that OpenAI introduced by not requiring the absolute reproducability of both the code and model, and both training and dataset of their models upon release.
Stakes are pretty high in the AI industry, and OpenAI actively influences it. My dream was in the beginning that they are a source of verification, audits and "proof" that models are legit...yet I have the feeling lately that they just buzz around like everyone else.
To this date I haven't seen anyone replicate any of the DNC results, for example.
Anyways, just my two cents on this one.
I don't think any single thing you've claimed is factually wrong, and I don't speak for Eleuther nor am I attempting to justify their claims.
But.
As I understand it (mostly from lurking on their discord and reading publicly available materials) this is a group of volunteer academic types trying to replicate something great and awesome, with the only goal of giving it to the world. You could cut them some slack.
I can't speak for you, but as a "for free, weekend project" what they've done certainly makes me feel I need to up my game.
Claiming something that is not true is in itself wrong.
Yes I was wrong. That said, I had hoped that maybe after two an a half months Shawn would stop holding it over my head.
I 100% agree with this.
I also think that one catches more flies with honey than vinegar, and the criticism in the parent comment, while possibly valid, could be phrased more encouragingly and less combatively. It's easy to criticize, it's hard to create, and it's even harder to release.
yup, in any project, and especially the one done for the community where the only you get is satisfaction and fame, the success is super tied to communication. Good, honest communication is what builds trust.
I'm sure they have the best of intentions but "worthiness" is subjective.
Now, the actual owners? I don't believe it for a second
Edit: title improved, thank you!
I suspect they have run into training issues since they are moving to a new repo[2]
[1] https://twitter.com/arankomatsuzaki/status/13737326468119674...
The reality is that GPT-3 was likely "free" to train on Azure, as Microsoft has provided a lot of resources to OpenAI.
The hard part with GPT-3 is it's big enough to make it difficult to actually deploy.
The two published GPT-Neo models follow GPT-3's lead but the repo lets the user pick whether to use global or local attention layers.
I was really excited about OpenAI's original plan and still believe that an open source solution is the best way to prevent the potential negative impacts AI might have on society. I can sort of appreciate why OpenAI went the route of going private and trying to monetize their work instead, it might prevent people from using their work nefariously and will probably provide them with way more capital to continue their efforts. But, I trust humanity as a collective more than any particular group of people in the long run. I'm sure there are many others like me who would be eager to help out if they could.
Edit: EleutherAI has a whole page on their site about how others can contribute: https://www.eleuther.ai/get-involved/. I didn't see anything about accepting donations though, if anyone involved with the project was interested in setting up a crowdfunding account somewhere I'd be eager to donate.
Right on the front they write:
> Hey there fans! We are currently looking for help funding large storage upgrades,
> if you want to help us serve more data see our donation options (crypto, etc)
> Thanks for reading, happy downloading!"Specifically, we train GPT-3, an autoregressive language model with 175 billion parameters"
README:
"1T or bust my dudes [...] An implementation of model & data parallel GPT2 & GPT3 -like models, with the ability to scale up to full GPT3 sizes (and possibly more!)"
It seems the largest model they released is 2.7 billion parameters or ~0.01 the size of GPT-3. The most interesting part about GPT-3 was its size and it seems this is only "GPT-3-like" in architecture.
I also have a translation library with ~100 million (0.001 GPT-3) parameters:
"In a shocking finding, scientists discovered a herd of unicorns living in a remote, previously unexplored valley, in the Andes Mountains. Even more surprising to the researchers was the fact that the unicorns spoke perfect English.
Bebek Uranzoglu, another member of the research team from the University of British Columbia, was working on a project the Latino-Canadian rodeo competition equipos to document a rare and remarkable ecosystem in the Andes Mountains.
His curiosity was piqued when he spotted an adolescent herd of about 10 unicorns foraging in a forest near the valley of the Jumbo Flu Group. The unicorns — whose numbers once swelled to 46,000 — were perched on the forest floor and watched the researchers work.
Urizoglu grew excited when he spotted another group that seemed to be thriving in an area below the herd. The team hoped the apparent population growth would indicate a human presence.
But when a team of researchers set up a camera trap, they were surprised to find the unicorns in the first place, and in a forest near a lake — in fact the forest was almost entirely made up of the animals. Despite their own magical presence, the team could not see the herd was populated by humans.
“The whole place almost smelled like animals,” says Bebek. “We were never able to find human footprints at any of the points we stood at. The trees were so large, you wouldn’t have been able to walk 40 meters through them. We assumed that the truth of the matter was, ‘Well the deer didn’t like this forest at all.’”
edit: the title has been changed, seems good enough
https://huggingface.co/transformers/task_summary.html#extrac... more precisely
I've been building a library that makes solving tasks like conversational Q&A easy.
https://github.com/backprop-ai/backprop
If you need some pointers, we have example notebooks and I'm happy to chat about it as well. Would love to know if it helps!
It seems really good at generating code too
prompt:
class ConvBlock(nn.Module):
def __init__(self, channels, stride=1):
super(ConvBlock, self).__init__()
self.convolution = nn.Conv2d(channels//stride, channels, 3, stride=stride, padding=1)
self.normalization = nn.BatchNorm2d(channels)
#self.activation = nn.LeakyReLU()
def forward(self, x):
output: x =
# x = self.convolution(x)
# x = self.normalization(x)
# x = self.activation(x)
x = self.convolution(x)
x = self.normalization(x)
x = self.activation(x)
return x
class Resblock(nn.Module): def __init__(self, stride=1):
super(Resblock, self).__init__()
self.res = nn.Sequential(
nn.Conv2d(9, 9, 3, stride=stride, padding=1),
nn.BatchNorm2d(9),
nn.LeakyReLU(0.2)
)
self.output = nn.MaxPool2d(2)
def forward(self, x):
return self.res(x)
Also, some "tongue twisters":Big ugly stick.
Bowl full of chicken peas.
New York is universally inadvisable.
Long-eared seagull.
This morning I have a tumor in me.
A dog bark.
Invisible dog hides.
A crow blind.
A cat can’t see if it had a billion eyes.
Bumblebee.
Sheep herder, sheep herder.
A fawns abducts.
Two black birds are trapped.
Bottle on her finger.
Elephant sees another elephant.
Bull.
Mice in a box in the library.
A church swelter.
The door of a hotel opens.
Bosnian honey melons.
Grapes in excess.
Cat is on the loose.
Soil is shoveled into a glass jar
edit: Oh, I see the "generating text" section. Any way to run it on CPU, even if it takes an hour?
tl;dr we are doing pretty much exactly as well as we expected on LAMBADA and WikiText. Results on more sophisticated tasks will take some time, but HuggingFace is currently working on implementing our model in the transformers library and when they do so we can easily run a lot of analyses very quickly.
We actually built an evaluation suite that integrates with HF, but interfacing with the MTF code that GPT-Neo was written in was too much of a pain in the ass because Mesh TensorFlow is the worst. https://github.com/EleutherAI/lm-evaluation-harness
tl;dr we are doing pretty much exactly as well as we expected on LAMBADA and WikiText. Results on more sophisticated tasks will take some time, but HuggingFace is currently working on implementing our model in the transformers library and when they do so we can easily run a lot of analyses very quickly.
We actually built an evaluation suite that integrates with HF, but interfacing with the MTF code that GPT-Neo was written in was too much of a pain in the ass because Mesh TensorFlow is the worst. https://github.com/EleutherAI/lm-evaluation-harness
Anyone can access it and our pricing is usage based. If you use less than 1000 seconds of inference a month then it's completely free.
How to create a hybrid?
You're better off either: 1- Defining common "intents" that a lot of customer queries are categorized into, and having a model map the incoming message to the appropriate canned response. Look at Rasa, for an example of this.
2- if you insist on generating the text, have it be a recommendation to a human agent that either chooses to send it or writes their own response.
If anything, you could build writing assistance that almost automates responses.
I've been co-authoring a library that lets you finetune such models in a single line of code.
https://github.com/backprop-ai/backprop
In specific the text generation finetuning example should be what you are looking for: https://github.com/backprop-ai/backprop/blob/main/examples/F...
Hope this helps, happy to chat more about it. Pretty curious about the results.
ONNX is slightly different; you could export the model to run in the onnxruntime but that has tradeoffs.
Lots of language here I don't understand like what is he referring to when he says 1.5B or 1T weights?
What resources/videos can I watch in order to start tinkering with this?
[1]: https://colab.research.google.com/github/EleutherAI/GPTNeo/b...
I tried to learn ML a few years ago but gave up because I couldn't install CUDA on my machine for some reason. The landscape seems to change dramatically.
I am interested in transformers in particular completing incomplete images like what https://openai.com/blog/image-gpt/ does, is there a project that implements that and can let me start training?
I'm excited but I just get overwhelmed as to where I need to focus my attention on.
My goal is to utilize something like image-gpt but for a more narrow domain (ex. only dealing with cats), how can I build my knowledge and skills towards that goal?
Much thanks for your answers I'm really looking to learn these stuffs