This is honestly a bit gross, as it's just a marketing piece.<p>The original numbers every programmer should know is a profound piece of pedagogy, aimed at helping programmers be better at their craft.<p>This is just an excerpt from a pitch deck.
Actually, the only numbers every LLM developer should know are their accelerator specs.
For example:<p>A100 specs:<p>- 312e12 BF16 FLOPS<p>- 1555e9 GB/s HBM bandwidth<p>H100:<p>- 1000e12/2000e12 BF16/INT8 FLOPS<p>(apply ~0.7 flops efficiency multiplier because h100s power throttle extremely quickly)<p>- 3000 GB/s HBM bandwidth<p>---<p>For a 13B model on an A100, this nets:<p>13e9 * 2 bytes per param = 26 GB HBM required (at bf16)<p>26e9/1555e9 = 17ms / token small-batch latency (~60 tokens / second)<p>What about large batches?<p>latency for some batch size B is 13e9 * 2 FLOP per param * B / 312e12<p>We want B such that we're just about no longer HBM bound:
26e9/312e12 * B = 17ms<p><=> 17e-3/(26e9/312e12)<p>giving a batch size of 204.<p>At that batch size (and all larger batch sizes), the a100 delivers a throughput of
B * 1/17ms = 12000 tokens / second<p>---<p>KV caching, multi-gpu and -node comms and matmul efficiencies left as an exercise to the reader :)
I clicked because I thought they were defining LLM developer as "someone training LLMs", but instead they define it as "someone integrating LLMs into their application".<p>If you also had the same initial thought as me, this is an excellent article - <a href="https://blog.eleuther.ai/transformer-math/" rel="nofollow noreferrer">https://blog.eleuther.ai/transformer-math/</a> .
What’s this “neural information retrieval system” thing about?<p>I’m just hacking away and presenting the LLM with some JSON data from our metrics database and making it answer user questions as a completion.<p>Is this embedding thing relevant for what I’m doing? Where should I start reading?
I'm curious about the point on the embedding lookup cost... in my experience for an embedding lookup to be accurate, you have to include your entire document dataset to be queried against... obviously this can be just as expensive as querying a full cloud model if your dataset is very large. Interested if anyone had thoughts about this.
The main thing every LLM should know is that ARM will eat x86_64's lunch in ML. Why? Because of the shared/unified memory model. M2 Ultra from apple can use up to 192GB of RAM. Even your smartphone thanks to this model can run networks a lot bigger than you would expect.
Don't think I've ever heard anyone call it "GRAM" instead of VRAM.<p>Another cost saving tip: On API, do combo calls where possible to dual use the input tokens. e.g.<p>"""You are an AI assistant that summarizes text given.<p>After the summarized text, add the word END.<p>After that answer the following questions with Yes or NO:<p>Is the text about Donald Trump?<p>Is the text about Space?
"""<p>Down side is now you need code to parse the output pieces & error handling around that