NCM: o fim dos LLMs? Calma lá (testes locais)
Autoria: Prompt Engineering · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: NCM: The End of LLMs? Not So Fast (Local Tests) · Canal: Prompt Engineering · 14:27 · Assistir no YouTube
Tópicos: Avaliação e benchmarks de IA, Geração de conteúdo com IA, Modelos de IA, Modelos locais e open source
O vídeo apresenta o Next Concept Modeling (NCM), uma técnica que esboça a resposta inteira e depois a refina em níveis, em vez de gerar texto token por token. Nos testes locais do autor, o NCM foi até quatro vezes mais rápido que um modelo autorregressivo de tamanho semelhante ao processar uma solicitação por vez, mas ficou mais lento ao lidar com 64 solicitações simultâneas. O autor também reproduziu o resultado de 86% em Sudoku difícil, mas descobriu que um modelo de difusão com uma regra diferente para escolher as casas chegou perto e alcançou 95% com mais passes. A ideia é promissora, mas ainda tem limitações de qualidade, tamanho dos modelos, custo para respostas curtas e código disponibilizado apenas para avaliação.
Pontos-chave
Seção intitulada “Pontos-chave”- O NCM prevê códigos de conceitos em níveis, do esboço geral aos detalhes, em vez de gerar palavras da esquerda para a direita.
- Em testes citados no artigo, o NCM igualou a qualidade do melhor modelo de difusão avaliado para resumos e foi 31 vezes mais rápido.
- Nos testes locais do autor, o NCM foi quatro vezes mais rápido em tradução e quase duas vezes mais rápido em resumos quando processou uma solicitação por vez.
- Com 64 solicitações simultâneas, o modelo autorregressivo foi mais rápido, pois o NCM executou mais operações e reprocessou o prompt em cada passe.
- O NCM reproduziu o resultado de 86% em Sudoku difícil, mas a vantagem diminuiu quando o modelo de difusão priorizou as casas em que tinha mais confiança.
- O modelo de difusão chegou a 95% no Sudoku ao receber mais passes, sugerindo que a ordem de preenchimento explica boa parte da diferença.
- As respostas do NCM não podem ser transmitidas gradualmente de forma legível: o tabuleiro pode mudar a cada passe e só se estabiliza no final.
- Entre as limitações estão a geração em caixas de tamanho fixo, possíveis trocas de nomes e números, modelos avaliados com menos de 1 bilhão de parâmetros e código sem suporte a treinamento.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:00 | O que é NCM e quais perguntas o artigo deixa em aberto | O vídeo apresenta a geração por níveis do NCM e questiona se sua velocidade e seu desempenho em Sudoku foram comparados de forma suficiente. |
| 02:03 | Por que modelos autorregressivos e de difusão podem ser lentos | O autor explica o custo de gerar tokens sequencialmente e o de refinar todas as posições a cada passe em modelos de difusão. |
| 04:05 | Como o NCM gera texto em níveis | O NCM comprime o texto em códigos de conceitos e usa um transformer para prever cada nível, começando pelo esboço. |
| 07:49 | Testes locais: velocidade e Sudoku | O autor compara o NCM com modelos de tamanho semelhante e testa a geração de Sudoku, observando diferenças entre uso individual e processamento em lote. |
| 10:53 | O que explica o resultado de Sudoku | Um modelo de difusão treinado pelo autor chega perto do NCM com uma regra de preenchimento por confiança e alcança 95% com mais passes. |
| 12:25 | Limitações e conclusão | O vídeo lista limitações de tamanho, qualidade e implementação e conclui que o NCM pode acelerar o uso individual, mas não o processamento de muitas solicitações. |
Citações
Seção intitulada “Citações”Um conceito não é uma ideia humana ou uma frase. É simplesmente um código de compressão aprendido. — 05:10
Você não pode transmitir uma resposta do NCM como transmitiria texto de modelos autorregressivos normais, porque nada fica legível até o último passe terminar. — 08:49
Quando enviei uma solicitação por vez, o NCM foi quatro vezes mais rápido na tradução. — 09:19
Quando deixamos o modelo de difusão executar mais passes, a pontuação subiu para 95%. — 11:55
O NCM é mais rápido que um LM normal do mesmo tamanho quando você envia uma solicitação por vez. — 13:25
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- Next Concept Modeling (NCM) (modelo): Abordagem que gera texto prevendo códigos de conceitos em níveis, do esboço geral aos detalhes.
- diffusion model (conceito): Modelo que parte de uma representação inicial e a refina repetidamente, atualizando posições do texto em paralelo.
- auto-regressive model (conceito): Modelo que gera texto token por token, usando cada token produzido para prever o seguinte.
- DGX Spark (ferramenta): Hardware local usado pelo autor para executar os testes dos modelos.
- H100 (modelo): GPU mencionada como hardware usado nos testes do artigo comparados pelo vídeo.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:00 Veja como este novo modelo de linguagem de Stanford traduz uma frase em alemão para o inglês. Após sua primeira tentativa, o inglês é quase todo incompreensível, mas, 11 tentativas depois, ele se transforma em uma tradução clara. Este modelo se chama NCM, sigla de next concept modeling. A grande ideia é que ele não escreve uma palavra por vez. Em vez de escrever da esquerda para a direita, como todo chatbot que você usa hoje, primeiro ele esboça a resposta inteira, de forma aproximada
00:30 e depois a aprimora toda de uma vez. E não, não é um modelo de difusão. Como o artigo afirma que ele funciona até 31 vezes mais rápido e mostra um pequeno modelo NCM resolvendo 86% dos quebra-cabeças difíceis de Sudoku que um modelo de linguagem comum do mesmo tamanho quase nunca conseguiria resolver, muita gente está chamando isso de fim dos LLMs. Mas, quando li o artigo, notei duas grandes questões que os autores nunca testaram. Primeiro, cada
01:00 número de velocidade no artigo é medido em comparação com modelos de difusão. Em nenhum momento eles testam se o NCM é realmente mais rápido do que modelos autorregressivos comuns, que geram texto palavra por palavra. E, em segundo lugar, naqueles quebra-cabeças difíceis de Sudoku, eu queria saber se a pontuação de 86% realmente se deve à nova arquitetura NCM ou a algo muito mais simples. Então, configurei os modelos disponibilizados no meu próprio DGX Spark, criei um LLM comum exatamente do mesmo tamanho e
01:31 até treinei meu próprio modelo de difusão para testar as duas afirmações, colocando-os frente a frente. Ao final deste vídeo, você saberá exatamente como o NCM escreve uma resposta, por que ele é quatro vezes mais rápido para um único uso, mas mais lento em um servidor muito ocupado, e o que realmente acontece quando você testa a afirmação sobre Sudoku. Vamos começar pelo problema que o NCM tenta resolver: por que os modelos de linguagem comuns são lentos, para começo de conversa. Hoje, todo chatbot que usamos, incluindo os GPTs e Geminis por aí, escreve suas
02:03 respostas token por token. Como são autorregressivos por natureza, o modelo escreve o primeiro token, acrescenta-o ao texto e só então prevê o segundo token. Isso significa que uma resposta de mil tokens leva mil etapas consecutivas. Agora, a parte cara não são os cálculos, é a memória. Em cada uma dessas mil etapas, sua GPU precisa ler da memória todo o conjunto de pesos do modelo só para produzir mais uma palavra ou token. Para um modelo local típico,
02:33 escrever uma resposta longa significa movimentar terabytes de dados pela GPU. Isso significa que a velocidade que você vê na sua própria máquina é determinada principalmente pela rapidez da sua memória, não pela velocidade com que sua GPU consegue fazer cálculos. Se você já se perguntou por que um modelo local escreve mais devagar do que você consegue ler, esse é o principal motivo. Então, a solução óbvia é parar de escrever uma palavra por vez e escrever muitas palavras de uma vez. E é isso que os modelos de difusão fazem,
03:04 como já mostrei neste canal com modelos como Mercury, da Inception, e Diffusion Chama, do Google. Um modelo de difusão começa com uma página inteira em branco, preenche tudo de uma vez com um palpite aproximado para a resposta e depois revisa a página inteira repetidas vezes até que o texto fique claro. Mas a difusão tem um porém. Cada tentativa precisa percorrer todas as posições da resposta. E, para obter uma boa qualidade, geralmente são necessárias 64 tentativas ou mais. Se você reduzir
03:35 o número de tentativas para economizar tempo, a qualidade cai rapidamente porque o modelo pula etapas de refinamento de que precisa. Então, a difusão basicamente permite escrever em paralelo, mas, na prática, você paga por isso redesenhando a página inteira dezenas de vezes, porque é preciso percorrer cada token. E isso leva à pergunta exata que este novo artigo de Stanford tenta responder: dá para escrever em paralelo sem pagar por todas essas passagens pela página inteira? Para
04:05 fazer isso, o NCM pega emprestada uma ideia da geração de imagens. Alguns modelos de imagem primeiro desenham uma versão pequena e borrada da imagem inteira, e depois, a cada etapa, acrescentam uma camada mais nítida por cima. Assim, eles nunca precisam decidir como serão os cílios antes de saber onde está o rosto. O NCM aplica a mesma ideia de partir do grosseiro para o detalhado ao texto. Primeiro, escreve um esboço aproximado da resposta inteira e depois preenche as palavras exatas.
04:38 Para isso funcionar, ele usa dois componentes. O primeiro é um compressor, que aprende a armazenar o trecho de texto como uma pilha de níveis compostos por códigos. O nível superior tem apenas um punhado de códigos, que contêm um contorno impreciso do trecho inteiro. Cada nível abaixo é mais extenso e armazena apenas os detalhes que faltam. Por fim, o nível inferior tem um código para cada palavra. E, quando você combina todos os níveis, o compressor consegue reconstruir o texto original
05:10 quase perfeitamente. É daí que vem o nome Next Concept Modeling. Cada um desses códigos vem de uma lista fixa de cerca de 4.000 códigos aprendidos. E o artigo chama cada código de conceito. Portanto, um conceito não é uma ideia ou frase humana. É simplesmente um código de compressão aprendido, e o modelo prevê o próximo nível de conceitos, de cima para baixo, em vez de prever a próxima palavra, da esquerda para a direita. Isso nos leva ao segundo componente,
05:42 que é o gerador. E o interessante é que o gerador é apenas um transformer comum, como já vimos nos LLMs do dia a dia. A diferença é que, em vez de prever a próxima palavra, ele prevê todos os códigos de um nível ao mesmo tempo, em uma única passagem, e então desce para o próximo nível. Assim, um modelo de resumo com nove níveis leva nove passagens no total, seja o resumo curto ou longo. E é por isso que as frases em alemão no início do vídeo levaram 11 passagens,
06:13 porque o modelo de tradução tem 11 níveis. Agora, aqui está a grande diferença entre o NCM e um modelo de difusão. Um modelo de difusão redesenha todas as posições das palavras em cada passagem. O nível superior do NCM tem apenas alguns códigos. Então, suas primeiras passagens são pequenas e quase não custam nada. E cada novo nível acrescenta apenas os detalhes pelos quais é responsável. Quando os autores testaram o NCM em comparação com um modelo de difusão em uma única H100, os números impressionaram. Ao resumir artigos de notícias, o NCM igualou
06:46 a qualidade do modelo de difusão mais forte, funcionando 31 vezes mais rápido. E então vieram os resultados que deixaram todo mundo animado: os quebra-cabeças difíceis de Sudoku. Um modelo comum, que gera palavra por palavra, ou modelo autorregressivo do mesmo tamanho, resolve apenas 1% dos tabuleiros difíceis, porque, depois que se compromete com um dígito errado no início, não consegue voltar e corrigi-lo. Um pequeno modelo NCM resolveu 86% desses mesmos tabuleiros.
07:18 Mas, ao ler o artigo, notei duas coisas que a maioria das coberturas deixou passar. Primeiro, em tarefas reais de texto, como tradução e escrita aberta, o modelo comum que gera palavra por palavra ainda vence em qualidade nas tabelas dos próprios autores e produz textos que soam melhor. E, em segundo lugar, cada número de velocidade no artigo é medido em comparação com modelos de difusão. Nenhum deles é medido em comparação com um LLM autorregressivo comum, que gera token por token. Certo, então as duas perguntas que
07:49 realmente importam para quem executa modelos localmente continuavam sem resposta. O NCM é mais rápido do que um LLM comum do mesmo tamanho no mesmo hardware? E por que ele realmente venceu no Sudoku? Agora, você pode estar pensando que os modelos de difusão costumam ser mais rápidos do que os modelos autorregressivos, mas será que isso se confirma neste caso? Porque o NCM usa um mecanismo bem diferente. Como os autores disponibilizaram o código e o modelo treinado, configurei tudo no meu DGX Spark e executei três testes
08:19 para descobrir. O primeiro teste é observar como o tabuleiro evolui de passagem em passagem. E foi uma ótima experiência de aprendizado. Primeiro, verifiquei se os números do artigo se confirmavam, e se confirmaram, o que é uma ótima notícia. No Sudoku difícil, obtive praticamente a mesma pontuação de 86%. Depois, imprimi o tabuleiro após cada passagem para ver como ele realmente resolve um quebra-cabeça. O NCM não preenche os espaços vazios uma casa de cada
08:49 vez. Ele redesenha o tabuleiro inteiro em cada passagem. Nas primeiras passagens, ele até erra as pistas iniciais, antes de, no fim, encaixar toda a grade no lugar. E isso revela uma desvantagem imediata para os LLMs comuns. Não dá para transmitir a resposta do NCM em tempo real como se transmite o texto de modelos autorregressivos comuns, porque nada fica legível até que a última passagem termine. Certo, o segundo teste que executei foi para ver como
09:19 como ele se compara a um modelo autorregressivo que gera texto token por token. Então, procurei um modelo exatamente do mesmo tamanho e formato que o modelo NCM. Depois, dei o mesmo prompt aos dois e pedi a mesma quantidade de palavras. Quando enviei uma solicitação por vez, o NCM foi quatro vezes mais rápido na tradução. Em resumos de notícias, em que o prompt é um artigo longo, foi quase duas vezes mais rápido. Então, parece que ele é realmente mais rápido do que os modelos autorregressivos normais, o que
09:50 é ótimo. Mas, então, enviei 64 solicitações de uma vez, como faria um servidor real atendendo a muitos usuários. E os resultados se inverteram completamente. O modelo autorregressivo normal supera o NCM em velocidade. E o motivo nos leva de volta ao gargalo entre memória e processamento que discutimos. Com uma solicitação por vez, sua GPU passa a maior parte do tempo esperando a memória carregar os pesos. Então, fazer apenas nove ou 11 passagens é uma grande vantagem para o
10:20 NCM. Com 64 solicitações de uma vez, a GPU carrega os pesos uma vez para o lote inteiro e passa todo o tempo fazendo cálculos. E, em todos os níveis, o NCM na verdade faz mais cálculos porque processa cerca de quatro vezes mais posições do que as palavras que escreve. Além disso, no código disponibilizado, o NCM executa o prompt inteiro pelo modelo novamente em cada passagem, e é por isso que o artigo longo de notícias foi o que mais o prejudicou. Então, nos meus testes com esses
10:53 modelos pequenos, o NCM realmente acelera as coisas para uma pessoa que executa um modelo na própria GPU, mas fica mais lento em um servidor ocupado. Isso é importante porque, se você quiser usar esses modelos para tarefas agentic, que vão executar vários agents simultaneamente, o NCM ficaria mais lento, pelo menos nos meus experimentos. Agora, o terceiro teste foi o mistério do Sudoku. Para isso, treinei meu próprio modelo de difusão com exatamente o mesmo tamanho
11:24 que o NCM, usando exatamente os mesmos quebra-cabeças de treinamento, e testei-o exatamente nos mesmos tabuleiros difíceis. Quando o executei da maneira padrão, preenchendo as células em uma ordem aleatória, ele resolveu cerca de um quarto dos tabuleiros difíceis, em linha com o que o artigo relatou. Mas eu queria experimentar um pouco mais. Então, quando mudei uma regra no momento do teste, basicamente, em vez de preencher as células aleatoriamente, fiz com que ele preenchesse a célula
11:55 sobre a qual tinha mais confiança primeiro, ele ficou bem próximo do NCM. O engraçado é que, quando deixamos o modelo de difusão fazer mais passagens, a pontuação subiu para 95%, certo? Tenha em mente que estes são experimentos simples que fiz com esses modelos. Mas, nos meus experimentos, isso significa, em certo sentido, que a grande diferença no Sudoku apresentada no artigo se deve principalmente à ordem em que as células são preenchidas. Mas ainda há uma ideia muito inovadora
12:25 do NCM. O que o NCM ainda tem a seu favor é que ele obtém a estrutura do geral para o específico sem custo adicional. Bem, o modelo de difusão precisa dessa regra extra de decodificação. Então, acho que provavelmente precisamos descobrir uma maneira de combinar essas duas técnicas. Agora, algumas outras limitações dos NCMs que observei. A primeira é que todo modelo NCM escreve em um espaço de tamanho fixo. Então, até mesmo respostas de uma linha ainda passam por todos os níveis e, essencialmente, você paga o custo total. A segunda são nomes e números, porque o compressor às vezes os troca ao transformar o texto em código e depois de volta.
12:55 E a terceira é a escala. O maior modelo treinado pelos autores tem menos de 1 bilhão de parâmetros. Então, ainda não sabemos se isso se mantém nos tamanhos de modelo que vocês realmente executam em casa. Pense em
13:25 27 bilhões ou até mesmo centenas de bilhões de parâmetros. E a última limitação é o código disponibilizado. No momento, ele serve apenas para avaliação. Não há código de treinamento, e a opção integrada que armazena o prompt em cache está meio quebrada nos meus experimentos. Certo, então aqui vai, mais ou menos, a conclusão. O NCM é mais rápido do que um LM normal do mesmo tamanho quando você envia uma solicitação por vez. Ele pode ser até quatro vezes mais rápido. Mas, na verdade, é mais lento quando você tenta agrupar muitas solicitações
13:57 em conjunto. Recomendo muito que testem. É uma ideia muito, muito interessante. Mas tem algumas limitações óbvias. Porque esboçar a resposta inteira antes de escrever as palavras exatas é um verdadeiro avanço na velocidade para um único usuário. Agora, se você tem experimentado modelos de difusão ou outras maneiras de gerar texto em paralelo, compartilhe o que descobriu nos comentários abaixo. Estou preparando mais testes práticos de novas arquiteturas de modelos executadas em hardware local.
14:27 Então, se isso interessa a você, inscreva-se no canal. E, se quiser ver como um modelo de difusão funciona na sua própria GPU, assista a este vídeo a seguir. Enfim, espero que este vídeo tenha sido útil. Obrigado por assistir e, como sempre, até o próximo.
Transcrição original
[00:00] Look at how this new language model from Stanford translates a German sentence to English. After its first pass, the English is mostly gibberish, but 11 passes later, it snaps into a clean translation. This model is called NCM, which is short for next concept modeling. And the big idea is that it doesn’t write one word at a time. Instead of writing left to right like every chatbot that you use today, it sketches the whole answer roughly first
[00:30] and then sharpens it all at once. And no, it’s not a diffusion model. And because the paper claims this runs up to 31 times faster and shows a tiny NCM model solving 86% of hard Sudoku puzzles that a normal language model of the same size almost would never be able to solve, a lot of people are calling it the end of LLMs. But when I actually read through the paper, I noticed two huge questions that the authors never tested. First, every a
[01:00] single speed number in the paper is measured against diffusion models. Not once do they test whether NCM is actually faster than normal auto-regressive models that generates text word to word. And second, on those hard Sudoku puzzles, I wanted to know if the 86% score really comes from the new NCM architecture or from something much simpler. So, I set up the release models on my own on my own DGX Spark, built a normal LLM of the exact same size, and
[01:31] even trained my own diffusion model to test both claims head to head. By the end of this video, you will know exactly how NCM writes an answer, why it is four times faster for a single use, yet slower on a busy server, and what actually happens when you test the Sudoku claim. Let’s start with the problem NCM is trying to solve, which is why normal language models are slow in the first place. Today, every chatbot that we use today, including GPTs and Geminis of the world, uh writes its
[02:03] answers token by token. Because they are auto-regressive in nature, the model writes the first token, adds it to the text, and only then it predicts the second token. That means a thousand token answer takes a thousand steps in a row. Now, the expensive part is not the math, it’s the memory. On every single one of those thousand steps, your GPU has to read the model’s entire set of weights out of memory just to produce one more word or token. For a typical local
[02:33] model, writing a long answer means moving terabytes of data through your GPU. That means the speed you see on your own machine is mostly decided how fast your memory is, not by how fast your GPU can do math. If you have ever wondered why a local model writes slower than you can read, it is the main reason. So, the obvious fix is to stop writing one word at a time and write a lot of words at once. And this is what diffusion models do,
[03:04] which I have covered on this channel before with models like Mercury from Inception and Diffusion Chama from Google. A diffusion model starts with a whole page of blanks, fills in a rough guess for the entire answer at once, and then goes back over the full page again and again until the text is clean. But, diffusion has a catch. Every single pass has to touch every position in the answer. And getting good quality usually takes 64 passes or more. If you cut
[03:35] the number of passes to save time, the quality drops quickly because the model skips refinement steps it needs. So, diffusion basically gives you parallel writing, but you actually pay for it by redrawing the whole page dozens of times because it has to touch every single token. And that sets up the exact question this new Stanford paper is trying to answer. Can you write in parallel without paying for all of those full-page passes? To do
[04:05] that, NCM borrows an idea from a image generation. Some image models first draw a tiny, blurry version of the whole picture, and then each step adds a sharper layer on top. That way, uh they never have to decide what the eyelashes look like before they know where the face is. NCM applies the same coarse-to-fine idea to text. It writes a rough sketch of the entire answer first and fills in the exact words la- later.
[04:38] To make that work, it uses two pieces. The first piece is a compressor, which learns to store the passage of text as a stack of levels made of codes. The top level only has handful of codes, which hold a blurry outline of the whole passage. Every level below it gets longer and stores only the missing details. Finally, the bottom level has one code for every word. And when you add all of the levels together, the compressor can rebuild the original text
[05:10] almost perfectly. Now, this is where the name Next Concept Modeling comes from. Each of these codes come from a fixed list of about 4,000 learned codes. And the paper calls each code a concept. So, a concept is not a human idea or sentence. It is simply a learned compression code, and the model predicts the next level of concepts from top to bottom instead of predicting the next word from left to right. That brings us to the second piece,
[05:42] which is the generator. And the interesting thing is that the generator is just a normal transformer, which we have seen in everyday large language models. The difference is that instead of predicting the next word, it predicts every code in a level at the same time in a single pass, and then moves down to the next level. So, a summary model with nine levels take nine passes total, whether this summary is short or long. And that is why the German sentences at the start of the video took 11 passes,
[06:13] because the translation model has 11 levels. Now, here’s the big difference between NCM and a diffusion model. A diffusion model redraws every word position on every single pass. NCM’s top level only have a few codes. So, its early passes are tiny and almost free. And each new level only adds the detail it is responsible for. When the authors tested this against diffusion model on a single H100, the numbers looked huge. On summarizing news articles, NCM matched
[06:46] the quality of strongest diffusion model while running 31 times faster. And then came the results that got everybody excited, uh which is hard Sudoku. A normal word-by-word model or auto regressive model of the same size uh solves only 1% of the hard boards, because once it commits to a wrong digit uh early on, it can never go back and fix it. A tiny NCM model solved 86% of those exact same boards.
[07:18] But, as I went through the paper, I noticed two things that most of the coverage have actually missed. First, on actual text tasks like translation and open-ended writing, the plain word-by-word model in their own tables still wins on quality and produces text that reads better. And second, every single speed number in the paper is measured against diffusion models. Not one of them is measured against a normal token-by-token auto regressive LLM. Okay, so the two questions that
[07:49] actually matters for anyone running models locally were still wide open. Is NCM faster than a normal LLM of the same size on the same hardware? And why did it really win on Sudoku? Now, you might be thinking diffusion models are usually faster than auto regressive models, but does it actually hold in this case? Because NCM uses a very different mechanism. Since the authors released their code and trained model, I set them up on my DGX Spark and run three tests
[08:19] to find out. Test one is how the board evolves pass by pass. And this was a great learning experience. First, I checked whether the paper’s number hold up, and they actually do, which is a great news. On hard Sudoku, I got almost the exact same 86% score. And then, I printed out the board after every pass to see how it actually solves a puzzle. NCM it does not fill in the blanks one square at a
[08:49] time. It redraws the whole board on every pass. On the early passes, it even gets the starting clues wrong before snapping the whole grid into a place at the end. And that shows an immediate catch for normal LLMs. You can’t stream an NCM answer the way you would stream text from normal auto regressive models because nothing is readable until the very last pass finishes. Okay, the second test that I ran was how
[09:19] does it compare to an auto regressive model that generates text token by token. So, I was looking for a model of exact size and shape as the NCM model. And then, give both of them the same prompt and ask both for the same number of words. When I sent one request at a time, NCM was four times faster on translation. On news summaries where the prompt is a long article, it was close to two times faster. So, seems like it’s actually faster than the normal auto regressive models, which
[09:50] is great. But then, I sent 64 requests at once, which is what a real server handling many user would do. And the results completely flipped. The normal auto regressive model beats NCM on speed. And the reason goes right back to the memory versus math bottleneck we talked about On one request at a time, your GPU spends most of the time waiting for on memory to load the weights. So, doing only nine or 11 passes is a huge win for
[10:20] NCM. On 64 requests at once, the GPU loads the weight once for the whole batch and spends all its time doing doing math. And across all the levels, NCM actually does more math because it processes about four times more positions than the words it writes. On top of that, in the release code, NCM runs the whole prompt through the model again on every single pass, which is why the long news article hurt it the most. So, in my tests with these
[10:53] small models, NCM is a real speed-up for one person running a model on their own GPU, and it slows down for a busy server. Now, this is important because if you want to use these models for agentic tasks, which are going to be running multiple agents simultaneously, NCM would slow down, at least in my experiments. Now, the third test was the Sudoku mystery. Now, for this, I trained my own diffusion model with the exact same size
[11:24] as NCM, on the exact same training puzzles, and tested it on the exact same hard boards. When I ran it the standard way, where it fills in cells in a random order, it it solved about a quarter of the hard boards, right in line with what the paper reported. But, I wanted to experiment a little bit more. So, when I change one rule at the test time, which is basically instead of filling cells at random, I had it fill the cell
[11:55] it is most confident about first, it actually is pretty close to NCM. Now, the funny thing is, when we let the diffusion model take more passes, the score actually climbed up to 95%, right? Now, keep in mind, these are simple experiments that I did with these models. But in my experiments, this kind of means that the big Sudoku gap in the paper comes mostly from the order the cells are filled in. But there is still a very novel idea
[12:25] from NCM. Now, what NCM still has it going for it is that it gets the coarse-to-fine built for free. Uh well, the diffusion model needs that extra decoding rule. So, I think we probably need to figure out a way to combine both of these techniques. Now, a few other limitations of uh NCMs that I have noticed. Uh the first one is that every NCM model writes into a fixed-size box. So, even uh one-liner
[12:55] answers still runs through every level, and essentially you’re paying the full cost. The second one is names and numbers because the compressor sometimes swaps them when it turns text into code and back. And the third one is the scale. Uh the biggest model the authors train is smaller than 1 billion parameters. Uh so, we do not know yet if this holds up at the model sizes you actually run at home. Think about
[13:25] uh 27 billion or even like hundreds of billions of parameters. And the last one is the released code. So, right now um it is for evaluation only. There’s no training code, and the built-in option that caches the prompt is kind of broken in my experiments. Okay, so here’s kind of the bottom line. NCM is faster than normal LM of the same size when you send one request at a time. Uh it could be actually up to four times faster. But it’s actually slower when you try to batch many requests
[13:57] together. I’ll highly recommend to test the it out. It’s a really, really neat idea. But there are some obvious limitations. Because sketching the whole answer before writing the exact words is a genuine uh step forward for single-user speeds. Now, if you have been experimenting with the diffusion models or other ways of generating text in parallel, please share what you found in the comment section below. I’m putting together more hands-on tests of new model architectures running on local hardware.
[14:27] So, if you’re interested in that, make sure to subscribe to the channel. And if you want to see how diffusion model actually runs on your own GPU, watch this video next. Anyways, I hope you found this video useful. Thanks for watching, and as always, see you in the next one.