LLMs Unplugged

Understand AI by building it yourself

Acknowledgement of Country

EddieBenColeThomasHannahMaiaSungyeonSafiyaSuiLorennUshiniRob

activity

everyone stand up

sit down if you have

never used ChatGPT/Claude

sit down if you haven’t

used it in the last month

sit down if you haven’t

used it in the last week

sit down if you haven’t

used it in the last day

sit down if you haven’t

used it in the last hour

sit down if you haven’t

used it in the last 5 minutes

What is this about?

you’ll build your own language model—from scratch—with just a kids book, pen & paper, and some dice rolling

you’ll learn how language models work by spotting patterns in text to generate new text

AI ML LLMs Claude ChatGPT Gemini DeepSeek

Training

The recipe

walk through your text and tally up which tokens follow which in a grid

Example

“Hop, Joey, hop. See Joey hop.”

after tidying up:

hop , joey , hop . see joey hop .

The empty grid

hop,joey,hop.seejoeyhop.
Tokenhop,joey.see
hop
,
joey
.
see

Training: hop → ,

hop,joey,hop.seejoeyhop.
Tokenhop,joey.see
hop|
,
joey
.
see

Training: , → joey

hop,joey,hop.seejoeyhop.
Tokenhop,joey.see
hop|
,|
joey
.
see

Training: joey → ,

hop,joey,hop.seejoeyhop.
Tokenhop,joey.see
hop|
,|
joey|
.
see

Training: , → hop

hop,joey,hop.seejoeyhop.
Tokenhop,joey.see
hop|
,||
joey|
.
see

Training: hop → .

hop,joey,hop.seejoeyhop.
Tokenhop,joey.see
hop||
,||
joey|
.
see

Complete model

hop,joey,hop.seejoeyhop.
Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

A few more tips

you don’t have to start at the beginning—any page will do

the last token in one sentence is followed by the first token in the next (even over the page)

you can ignore quotation/speech marks (")

work in pairs and divide the labour however you like—but don’t neglect the tally marks

Your turn

tidy up your text, then for each pair of tokens:

  1. find the row for the first token — no row yet? it gets a row and a column
  2. find the column for the second token — same again if it’s new
  3. add a tally mark in the cell where they meet
  4. move along by one: the second token starts the next pair
10:00

The language of language models

  • model
  • token
  • weights

Generation

The recipe

use your grid to generate new text, rolling dice to choose each next word

Generation: start with see

see joey

one option — no roll needed

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

Generation: from joey

seejoey

2 options — roll the die!

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

How the die chooses: joey

joey → ?  roll a d10

01234
hop 1 tally
56789
, 1 tally

equal tallies → equal chances

How the die chooses: joey

joey → ?  roll a d10

01234
hop 1 tally
56789
, 1 tally

equal tallies → equal chances

rolled 7 → ,

Generation: joey → ,

seejoey ,

rolled 7 → ,

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

Generation: from ,

seejoey,

2 options — roll the die!

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

Generation: , → hop

seejoey, hop

rolled 2 → hop

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

Generation: from hop

seejoey,hop

2 options — roll the die!

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

How the die chooses: hop

hop → ?  roll a d10

012
, 1 tally
3456789
. 2 tallies

more tallies → more faces → more likely

How the die chooses: hop

hop → ?  roll a d10

012
, 1 tally
3456789
. 2 tallies

more tallies → more faces → more likely

rolled 6 → .

Generation: hop → .

seejoey,hop .

rolled 6 → .

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

Generation: from .

seejoey,hop. see

one option — no roll needed

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

Generation: back to see

seejoey,hop.see

one option — no roll needed

Tokenhop,joey.see
hop|||
,||
joey||
.|
see|

Generated text

“see joey, hop. see”

a new sentence — not in the training data!

Your turn

write down a starting token, then repeat:

  1. find the row for the last token you wrote
  2. share the ten faces of the d10 across that row’s cells, by their tallies
  3. roll — the band it lands in names the next token (one option? no roll)
  4. write it down, and look up its row next
10:00

Shareback

The language of language models

  • prompt
  • completion

Pre-trained generation

Why do it again?

same recipe, more training text: yours learnt from a few sentences, this one learnt from a whole novel

first step on the road to the very big ones

The recipe

use the booklet to generate new text, rolling one or more d10s to choose each next word

Pre-trained: start with sleep

sleep again
sleep ♦ 2|,6|.7|again8|as9|with rolled 7
again ♦♦ 45|.61|,68|and76|as84|I'd91|made99|over
I'd ♦ 4|like7|float9|take
float ;

Pre-trained: from again

sleepagain I'd
sleep ♦ 2|,6|.7|again8|as9|with
again ♦♦ 45|.61|,68|and76|as84|I'd91|made99|over rolled 80
I'd ♦ 4|like7|float9|take
float ;

Pre-trained: from I'd

sleepagainI'd float
sleep ♦ 2|,6|.7|again8|as9|with
again ♦♦ 45|.61|,68|and76|as84|I'd91|made99|over
I'd ♦ 4|like7|float9|take rolled 6
float ;

Pre-trained: from float

sleepagainI'dfloat ;
sleep ♦ 2|,6|.7|again8|as9|with
again ♦♦ 45|.61|,68|and76|as84|I'd91|made99|over
I'd ♦ 4|like7|float9|take
float ;

Pre-trained: from ;

sleepagainI'dfloat;
sleep ♦ 2|,6|.7|again8|as9|with
again ♦♦ 45|.61|,68|and76|as84|I'd91|made99|over
I'd ♦ 4|like7|float9|take
float ;

Your turn

same loop, from the booklet:

  1. look up the last word you wrote — the bold words are the entries
  2. read its numbers: one beside each possible next word
  3. roll a d10 — two if the entry runs past 9, read as tens then units
  4. take the first word your roll doesn’t go past, and look that one up next
8:00

Shareback

The language of language models

  • pre-trained model
  • open weight model

Agentic AI

The recipe

an agent is a model that can call tools: pause generation, get information from “outside” the model, and continue

generate from your model as before, but every punctuation token triggers a tool call: a real text message to 3 friends/group chats

Worked example

your text so far is “the cat sat”, and the next dice roll gives you . as the next token—pause, that’s a tool call

text What comes next? "the cat sat..." to 3 friends/group chats; the first reply back might be “out on the verandah”

write out on the verandah, then the . you rolled anyway, and continue generating from .

Your turn

generate as before, but every punctuation token is a tool call:

  1. pause when you roll a . or a ,
  2. text What comes next? "[sentence so far]..." to 3 friends or group chats
  3. write down the whole first reply, then the punctuation token you rolled
  4. carry on generating from that punctuation token
10:00

Shareback

The language of language models

  • agent/agentic loop
  • tool call

Scaling up

Now turn everything up

“Explain the moon landing to a 6 year old in a few sentences.” pre-trained Explain the theory of gravity to a 6 year old. Explain the theory of relativity to a 6 year old in a few sentences. Explain the big bang theory to a 6 year old. Explain evolution to a 6 year old. post-trained People went to the moon, and they took pictures of what they saw, and sent them back to the earth so we could all see them.

same model, same next-word loop—post-training is a second round of training on examples of instructions being followed

still just tokens in → tokens out

Questions

is there a term you’ve heard—that we haven’t covered?

what new questions do you have about large language models?

how will this change the way you think about and use LLMs in the future?

Next sessions

  • Wednesday 25 November 16:00–18:00

Innovation Space, Birch Building, ANU

No public sessions are scheduled right now — get in touch to arrange one.

We’re here to help

this technology isn’t going away—and working out what to do about it is the interesting part

we work with organisations across all of it: how it actually works, how to get something useful out of it, and how to keep people at the centre of the decisions it opens up

lxconvenor.cybernetics@anu.edu.au