HN user

nathan-barry

550 karma

https://nathan.rs

Posts30
Comments19
View on HN
nathan.rs 1mo ago

Can gzip be a language model?

nathan-barry
15pts2
www.mattmahoney.net 1mo ago

Large Text Compression Benchmark

nathan-barry
3pts1
nathan.rs 3mo ago

Language Modeling Without Neural Networks

nathan-barry
2pts0
rosettacode.org 3mo ago

Quines in Every Programming Language (Rosetta Code)

nathan-barry
2pts0
www.inceptionlabs.ai 3mo ago

Mercury Edit 2: Fastest next-edit prediction with a diffusion LLM (221ms)

nathan-barry
1pts0
sander.ai 5mo ago

Noise schedules considered harmful (2024)

nathan-barry
1pts0
diffuji.com 5mo ago

Show HN: Diffuji – a diffusion-powered instant camera

nathan-barry
8pts5
nathan.rs 6mo ago

Generating Shakespeare Without Neural Networks

nathan-barry
5pts0
acl2.org 6mo ago

Recursion and Induction: A Self-Contained Course Using ACL2

nathan-barry
2pts0
en.wikipedia.org 6mo ago

Fidenae amphitheatre collapse (27 AD) – 20k dead

nathan-barry
2pts0
github.com 6mo ago

Show HN: Tiny Diffusion – Minimal diffusion LM in 364 lines

nathan-barry
2pts0
anchored-diffusion-llm.github.io 7mo ago

Anchored Diffusion Language Model

nathan-barry
2pts0
nathan.rs 7mo ago

Text Diffusion Models Are Faster at Writing Code

nathan-barry
3pts0
www.enbao.me 7mo ago

Inside ThunderKittens' Python Bindings

nathan-barry
2pts0
github.com 8mo ago

Kickstart.nvim: A minimal, single-file starting point for Neovim configuration

nathan-barry
1pts0
charleshong3.github.io 8mo ago

How we made AWS Trainium 17x faster (for conv1d)

nathan-barry
1pts0
github.com 8mo ago

Show HN: Tiny Diffusion – A character-level text diffusion model from scratch

nathan-barry
172pts20
www.cs.utexas.edu 8mo ago

The Manuscripts of Edsger W. Dijkstra

nathan-barry
268pts125
arxiv.org 8mo ago

Streaming DiLoCo: Towards a Distributed Free Lunch

nathan-barry
2pts0
arxiv.org 9mo ago

Fast-DLLM: Training-Free Acceleration of Diffusion LLM

nathan-barry
70pts4
nathan.rs 9mo ago

BERT is just a single text diffusion step

nathan-barry
455pts110
rustree.snprajwal.com 11mo ago

Rustree: Visualize Rust ASTs in the Browser

nathan-barry
6pts1
www.fabianfalck.com 1y ago

Diffusion is not necessarily Spectral Autoregression

nathan-barry
3pts0
www.cs.utexas.edu 1y ago

The End of Computing Science (2000) – Edsger W. Dijkstra [pdf]

nathan-barry
1pts1
arxiv.org 1y ago

Planner: Generating Diversified Paragraph via Latent Language Diffusion Model

nathan-barry
1pts0
nathan.rs 1y ago

Running GPT-2 in WebGL: Rediscovering the Lost Art of GPU Shader Programming

nathan-barry
157pts41
github.com 1y ago

Show HN: A Poor Man's Apple Intelligence

nathan-barry
2pts2
nathan.rs 1y ago

Intro to Autograd Engines: Karpathy's Micrograd Implemented in Go

nathan-barry
2pts1
github.com 1y ago

Show HN: GPT-2 implemented using graphics shaders

nathan-barry
228pts25
nathan.rs 2y ago

Fixing iOS code-block font-size rendering quirk

nathan-barry
1pts0

LLMs are very good at lossless compression via arithmetic coding. But I didn't know that it was possible to go the reverse direction (do language modeling via a compressor). It's not super great quality, but I'm surprised it worked! Other compression algorithms (like PPMd) use variable n-grams under the hood, and should be much better (although less interesting due to already containing basic language models internally).

Yes, this is the case. During training, the model will get a sequence of text (ex, 512 tokens long) with a percentage of them masked out (with a special <MASK> token). It learns how to unmask those tokens to construct the original text.

In the case that you mentioned, if we had 4 <MASK> tokens in a row, all we are doing for decoding is predicting what those 4 tokens should be.

Generally, this does not seem to be a significant problem, as there are usually multiple ways to express an idea in varying lengths. Also, with confidence-aware parallel decoding, it can usually avoid the scenario you mentioned, as focusing on decoding the highest confident tokens will generally avoid such scenarios with a well trained model.

Thanks for your input. Lots of good points on the technical side. Will go through and make some edits later tonight or tomorrow.

You're not hijacking anything, you are using the old APIs as intended and using the right terms in the description that follows.

When it comes to the use of the word "hijacking", I use it in to refer to the fact that using graphic shaders for general computation wasn't initially intended. When NVIDIA allowed programmable vertex and pixel shaders, they had no idea that it would be used for anything else other than graphics rendering. So when I say I "hijack" a fragment shader to compute layers of a neural network instead of as a part of a rendering pipeline, this is what I mean. I don't see a problem with this use of language.

If you couldn't tell, the post was about using shader programming for general-purpose computation, specifically. Yes, WebGL adds compute shaders, but the point of the article was to use the graphics pipeline specifically. If you say there are statements that are incorrect or inaccurate, pointing them out would be very much appreciated :)

Yeah, right now the weights aren't even pushed to the repo so there's no way for the github page to load them in. I've looked a tiny bit into it and might end up making a fix for it, having it load the weights by fetching them from somewhere else on load, but probably not today.

There is a link to the zipped up folder with the weights here: https://github.com/nathan-barry/gpt2-webgl/releases/download...

If anyone wants to make a PR which fetches the file from there, unzips it, then loads in the weights from there that would be greatly appreciated.