It's effectively the same thing: given some words it predicts which word should come next.
But unlike the iPhone keyboard it's been trained for months on multiple TBs of text, and has the ability to use ~4,000 previous words as the input to its prediction.
Is the power of predictive text that crazy?
That's what I find so interesting about large language models: they consistently demonstrate abilities that were not predicted when they were first invented.
I don't think anyone working on them initially expected them to be able to write Lisp and Pascal, certainly not as well as they can already.
> It turns out it is!
Intelligence was in the data, we were just its vehicles.
The same happens with the huge volume of text this model has been trained off. We cannot even begin to grasp its size. It is more. More than that. Yes, even more.
Let’s say you train a predictive engine on the entirety of fiction and nonfiction works of the 19th century. You ask it to produce C code, and it does! That would be obviously crazy.
On the other extreme, imagine a predictive engine that has been trained on every bit of C code that has ever been written. You ask to produce C code, and it does! Maybe not so crazy this time.
https://github.com/fastai/fastai
What's going on here is the exact same thing, just much, much larger.
Why it works: these absolute madmen downloaded the internet.
In the end, we are not really in the business of copying the brain but creating models that learn from data. If we arrive at a model that can solve the problem we are interested in through different means than a human would, e.g. first pre-train on half of the internet and then fine tune on your taks, we would be quite happy and it would not be seen as a dealbreaker. Of course, we would really like to have models that learn faster or have more skills, but it's amazing what's possible right now. What I find inspiring is how simple the fundamental building blocks are that our models are composed of, from gradient descent to matrix multiplication to Relus (just a max(x,0)). It's not magic, just research.
Transformers famously employ the Softmax activation inside the attention matrix. Very rare to see Softmax anywhere other than the final layer.
Like, I saw the other day it creates a C code that creates a Lisp code that creates a Pascal code. Is this based on an entirely previous creation?
The code examples are perfect case studies, they don't actually work. They aren't just slightly wrong, they're completely nonsensical.
Another example is "is <number> prime?", it can't answer things like that, and it will make up something that may or may not be accurate.
The model has no concept of what is true or false, it's essentially trying to predict what is the most likely token to come next.
It seems to know stuff because the knowledge comes from the dataset, hence techniques like zero-shot, few-shot and prompt-based learning.
Language models are unsuitable for anything where the output needs to be "correct" for some definition of "correct" (code, math, legal advice, medical advice).
This is a well-known limitation that doesn't make those systems any less impressive from a technical point of view.
Can we fix it?
Because earlier today it told me that George VI was currently king of England. And I asked it a simple arithmetic question, which it got subtly wrong. And it told my friend there were a handful of primes less than 1000.
Everyone’s talking about it being a Google replacement. What’s the idea? That we train it over time by telling it when things are wrong? Or is the reality that these types of language models will only be useful for generating creative output?
If you ask a chat interface a question and it says "this is true", that's very different from a search engine containing a list of results where one of them might be untrue.
For one thing, you can look at all the queries and take a majority vote etc. Second, you can look at the source to see if it's trustworthy.
Then each token’s embedding is roughly multiplied with a set of matrices called “attention head” that yield three lists: query, key, value, each of 128 numbers behaving somewhat like a fragment of an embedding. We then take the query lists for the past 2048 tokens, and multiply each with the key lists of each of those 2048 tokens: the result indicates how much a token influences another. Each token’s value list get multiplied by that, so that the output (which is a fragment of an embedding associated with that token, as a list of 128 numbers) is somewhat proportional to the value list of the tokens that influence it.
We compute 96 attention heads in parallel, so that we get 128×96 = 12288 numbers, which is the size of the embedding we had at the start. We then multiply each with weights, sum the result, pass it through a nonlinear function; we do it 49152 times. Then we do the same again with other weights, but only 12288 times, so that we obtain 12288 numbers, which is what we started with. This is the feedforward layer. Thanks to it, each fragment of a token’s embedding is modified by the other fragments of that token’s embedding.
Then we pass that output (a window of 2048 token embeddings, each of 12288 numbers) through another multi-attention head, then another feedforward layer, again. And again. And again. 96 times in total.
Then we convert the output to a set of 50257 numbers (one for each possible next token) that give the probability of that token being the next syllable.
The token embedding matrix, multi-head attention weights, etc. have been learned by computing the gradient of the cross-entropy (ie. roughly the average likelihood of guessing the next syllable) of the model’s output, with respect to each weight in the model, and nudging the weights towards lower entropy.
So really, it works because there is a part of the embedding space that knows that a song is lyrical, and that a part of the attention head knows that sponge and bob together represent a particular show, and that a part of the feedforward layer knows that this show is near “underwater” in the embedding space, and so on.
This is not technically true. It can and does create things that are new. There are lots of new poems and jokes right here in this thread. I asked it, for example, to give me its top 10 reasons why Bigfoot knocks on camper trailers, and one of its answers was "because it likes to play with its food." I did a lot of searching to try to find this joke out there on the internet, and could not. I've also had it create Weird Al style songs for a variety of things, and it does great.
If these aren't new creations, I'm not sure what your threshold is for creating something new. In a sense I can see how you can say that it only "looks" new, but surely the essays generated by students worldwide mostly only "look" new, too...
A good idea when dismissing those machine learning models is to check whether a human would pass your standards. I miss the aspect when the dismissive "they only interpolate or memorise" arguments come. I am also quite bounded by my knowledge or what I have seen. Describe something I have never seen to me and ask me to draw it, I would fail in a quite hilarious way.
Hilariously, ChatGPT is also quite bad at arithmetic, like myself. I thought this is what machines are supposed to be good at!
Thats not so different from how humans do this. When we need to add or multiply we switch from freeform thought to executing the Maths programs that were uploaded into our brains at school.
A human might have a thought process that starts with the idea that people are food for Bigfoot, and then connects that to phrase of "playing with your food".
But GPT generates responses word by word. And it operates at a word (token) level, rather than thinking about the concepts abstractly. So it starts with "Because it likes to play" which is a predictable continuation that could end in many different ways. But it then delivers the punchline of "with its food".
Was it just a lucky coincidence that it found an ending to the sentence that paid off so well? Or is the model so sophisticated that it can suggest word "plays" because it can predict the punchline related to "food".
The best source would be the GPT-3 paper itself: https://paperswithcode.com/method/gpt-3
I know there were some deep learning papers on how to train a model to pass the PIQ portion without human-coded heuristics (because, you could easily write a program to solve such questions if you knew ahead of time the format of the questions). I don't remember the outcomes however.
Do you know language models can use external toys, such as a calculator. They just need to write <calc>23+34=</calc> and they get the result "57" automatically added. The same, they can run <search>keyword</search> and get up to date snippets of information. They could write <work>def is_prime(x): ... print(is_prime(57))</work> and get the exact answer.
I think the correlation pattern in language is enough to do real work, especially when fortified with external resources. Intelligence is most likely a property of language, culture and tools, not of humans and neural networks.
No, 4021 is not a prime number. A prime number is a whole number greater than 1 that is divisible only by 1 and itself. 4021 is divisible by 17, which is a number other than 1 and itself, so it is not considered to be a prime number.
I guess I only tried the first few single digit primes. Fair enough!
Every integer is interesting. "[...] if there exists a non-empty set of uninteresting natural numbers, there would be a smallest uninteresting number – but the smallest uninteresting number is itself interesting because it is the smallest uninteresting number [...]" (https://en.wikipedia.org/wiki/Interesting_number_paradox)
One way of checking what makes a number interesting is seeing what sequences it is in in the OEIS[1]. Interesting properties (squares, primes, palindromes, friendly numbers, etc) all have the first hundred or so numbers with those properties in a list. So I downloaded the dataset of all sequences from OEIS, and iterated through all integers to find the first one that is not in any sequence in the OEIS.
So, I present the smallest uninteresting number: 20,067. Every number before it is in at least one of the sequences - for example, 20,066 is 'a partial sum for a coordination sequence for the "pcu-i" 3D uniform tiling'. It is the first number that has no interesting properties other than trivial ones (like being a multiple of 3). It is the first uninteresting number, but one could say that makes it meta-interesting rather than being interesting in and of itself.
Edit: and after doing all that work I saw that someone else has already done so and put it in the wikipedia article. Oh well, at least I learned about set processing in Python.
Who does? This is nothing but a "God of the Gaps" argument in reverse.
Not only that, but the imprint is also amenable to gradient descent, possessing a spectrum from easy- and difficult-to-predict structures.
If you start a sentence with a few words, think about the probability for what the next word might be. Imagine a vector (list) with a probability for every single other word in the language, proper nouns included. This is a huge list, and the probabilities of almost everything are near zero. If you take the very highest probability word, you'll get a fairly predictable thing. But if you start taking things a little lower down the probability list, you start to get what amounts to "creativity" but is actually just applied statistics plus randomness. (The typical threshold to use for how high the probability of a selected word should be is called the "temperature" and is a tunable parameter in these models usually.) But when you consider the fact that it has a lot of knowledge about how the world works and those things get factored into the relative probabilities, you have true creativity. Creativity is, after all, just trying a lot of random thoughts and throwing out the ones that are too impractical.
Some models, such as LaMDA, will actually generate multiple random responses, and run each of those responses through another model to determine how suitable the response is based on other criteria such as how on-topic things are, and whether it violates certain rules.
> Is this based on an entirely previous creation?
Yes, it's based entirely on its knowledge of basically everything in the world. Basically just like us, except we have personal volition and experience to draw from, and the capability to direct our own experiments and observe the results.
... reads like
A monad is just a monoid in the category of endofunctors.
> In category theory, a monad is a structure that is similar to a monoid in the category of endofunctors. A monoid is a mathematical object that consists of a set of elements, along with a binary operation that combines the elements in a specific way. For example, the set of integers, with the operation of addition, forms a monoid.
> In the category of endofunctors, a monad is a similar structure, but it is defined in terms of functions instead of elements. An endofunctor is a function that takes a mathematical object, called the "domain," and maps it to another mathematical object, called the "codomain." For example, the function that maps a set to its power set (the set of all subsets of the set) is an endofunctor.
> A monad in the category of endofunctors is a structure that consists of an endofunctor, along with two natural transformations that satisfy certain conditions. A natural transformation is a function that maps one endofunctor to another, in a way that is consistent with the structure of the domain and codomain of the endofunctors. The two natural transformations that are part of a monad are called the "unit" and the "multiplication" natural transformations.
> The unit natural transformation is a function that maps an object in the domain of the endofunctor to the endofunctor itself. The multiplication natural transformation is a function that maps the endofunctor to itself, in a way that is consistent with the structure of the domain and codomain of the endofunctor. The unit and multiplication natural transformations must satisfy certain conditions in order for the structure to be a monad.
> Overall, a monad in the category of endofunctors is a structure that is similar to a monoid in the category of sets. It consists of an endofunctor, along with two natural transformations that satisfy certain conditions. This structure is useful in category theory and related fields, because it allows us to abstract away from the specific details of the endofunctors and focus on the general properties of the structure.
pretty good explanation, actually
>Please describe the similarities and differences of the following two items: A beach ball and a howitzer cannon.
What follows is the response from ChatGPT. For just about the first time I legitimately feel like this beats the turing test.
>A beach ball and a howitzer cannon are two very different objects, and they have very few similarities. A beach ball is a small, inflatable ball that is typically used for recreational purposes, such as playing on the beach or in a pool. A howitzer cannon, on the other hand, is a large, heavy artillery weapon that is used to fire shells over long distances.
>One of the main differences between a beach ball and a howitzer cannon is their size and weight. A beach ball is small and lightweight, while a howitzer cannon is large and extremely heavy. Another difference is their intended use. A beach ball is designed for play and entertainment, while a howitzer cannon is designed for warfare and destruction.
>One possible similarity between the two objects is that they both can be inflated, although this is done for very different reasons. A beach ball is inflated with air to make it bouncy and fun to play with, while a howitzer cannon is typically loaded with gunpowder and other explosives, which are ignited to launch a shell. However, even this similarity is quite tenuous, as the methods of inflation and the materials used are vastly different for the two objects.
ChatGPT is not wrong!
This is the sort of interesting leap that makes AI super interesting to me. I could see it being very useful in helping humans move the state of the art forward in areas where human lexical taxonomy has caused us to make some assumptions which blind us to other potential solutions.
> ChatGPT: No, a cannon does not inflate when it fires. Inflate means to fill something with air or gas, whereas a cannon uses gunpowder to create an explosion that propels a projectile out of the barrel. The explosion in a cannon is a rapid release of gas, which can cause the barrel of the cannon to expand slightly, but it does not inflate in the sense of being filled with air or gas.
ChatGPT produces really great sounding answers, but consistency is not a goal.
If anything, this answer is extraordinarily impressive because, although it decided to be a stickler for definitions this time, it reaffirms the metaphor that it invented last time. In other words, it seems reasonable to conclude that in some sense it "knows" that the barrel of the cannon expands slightly (a fact it implied but neglected to mention last time), and can use this to make inferences.
First thing I asked it for was a picture of a dragon. I've subsequently a few different models and all sorts of prompt engineering (but perhaps I still haven't found the right one?)... I cannot get it to draw something anatomically coherent.
Are there some tricks I am missing? Do I need to run it through a pipeline of further steps to refine the mangled creature into something that makes sense?
i.e. regions of the image are locally impressive, it has understood the prompt well, but the overall picture is incoherent... the head or one or more legs may be missing, or legs or wings sprout from odd places
like, it gets the 'texture' spot on but the 'structure' is off
Should I be asking it for a picture of a cat in the style and setting I want and then use image-to-image to replace the cat with a dragon?
For example, if a new comic/movie/video game character came out tomorrow that had a very unique physical look, Stable Diffusion would have difficulty even approximating it (i.e. its training data wouldn't have what was needed to reproduce the appearance.) But it can produce a decent Darth Vader because it's probably been fed at least thousands of drawings/photos of this very well known fictional character.
[1] https://twitter.com/pic/orig/media%2FFi4HMw9WQAA3j-m.jpg
But this...it's an actual assistant.
I wanted to know how to figure out device type based on screen width. Google sent me down half a dozen articles. I asked this AI and it spat out a function.
I can see myself using this very regularly and even paying a fee for it.
It's a big hash table, turns out human intelligence can be cashed and interpolated.
You may be disappointed to know that the exact inner workings of the model are still largely unknown. We understand the basics of how it works, such as how changes in the model size and data size will affect its performance, or how to combine various supervised datasets to train it to solve tasks and what the model probabilities are supposed to mean, but the complexity of the model is such that it cannot be fully simulated or imagined. It is similar to the workings of a cell, the brain, or even a protein - we know the basics, but the full complexity of it is beyond our current understanding.
The true complexity is in the weights, and in the dynamic activation patterns. This excellent visualisation article will show you the state of the art in interpreting transformers.
https://www.lesswrong.com/posts/mkbGjzxD8d8XqKHzA/the-singul...
I asked it to build an, albeit simple, redstone building in Minecraft of all things. It didn't get everything quite right (namely, torches can't be used in redstone circuits), but most everything else was correct!
> How would you design a simple Minecraft building, which had 4 rooms? Each room would have a single light which could be turned on or off via a switch near the entrance of that room. The redstone used to connect the switches to the lights would not be visible, except for the switches and lights themselves.
> To design a simple Minecraft building with 4 rooms and a light switch for each room, I would start by creating a basic structure with 4 walls, a ceiling, and a floor. Each wall would have a door that leads to one of the rooms.
Next, I would add a light source in each of the 4 rooms, such as a torch or a lamp. These lights would be placed in the center of the room for maximum visibility.
To connect the light switches to the lights, I would use redstone wire and repeaters to create a hidden circuit that connects each switch to the light in its corresponding room. The redstone wire would be hidden behind the walls or under the floor, and the repeaters would be hidden behind blocks or furniture to keep the circuit hidden.
Finally, I would add the light switches near the entrance of each room, using a lever or button that players can interact with to turn the lights on or off. This would allow players to easily control the lighting in each room without having to see the redstone wiring.
Overall, this simple Minecraft building would have 4 rooms, each with its own light source that can be controlled by a hidden redstone circuit and a visible switch near the entrance of the room. This design would provide a functional and visually appealing lighting system for the building.
I really want to know how it works. It is like magic.