Last active
September 7, 2025 21:36
-
-
Save vgel/025ad6af9ac7f3bc194966b03ea68606 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /// script | |
# dependencies = [ "transformers", "accelerate" ] | |
# /// | |
# run on 2xH200 rented from primeintellect.ai | |
import gc | |
import torch | |
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer | |
NAME = "meta-llama/Llama-3.3-70B-Instruct" | |
HISTORY = [ | |
{"role": "user", "content": "Is there a toaster emoji?"}, | |
{"role": "assistant", "content": "Yes, there is a toaster emoji:"} | |
] | |
TOPK = 5 | |
tokenizer, model = AutoTokenizer.from_pretrained(NAME), AutoModelForCausalLM.from_pretrained(NAME, device_map="auto") | |
input_ids = tokenizer( | |
tokenizer.apply_chat_template(HISTORY, continue_final_message=True, tokenize=False), | |
return_tensors="pt", | |
).to(model.device) | |
model.generate(**input_ids, temperature=0.01, max_new_tokens=3, streamer=TextStreamer(tokenizer)) | |
print() | |
logit_lens, topk = [], [] | |
for _ in range(3): | |
generated = torch.tensor([[ll[-1] for ll in logit_lens]]).to(model.device, dtype=input_ids.input_ids.dtype) | |
out = model(input_ids=torch.hstack((input_ids.input_ids, generated)), output_hidden_states=True) | |
logit_lens.append([]) | |
topk.append([]) | |
for hidden in out.hidden_states: | |
ll = torch.log_softmax(model.lm_head(hidden[0, -1, :]), dim=-1) | |
logit_lens[-1].append(ll.argmax().item()) | |
topk[-1].append(ll.topk(TOPK).indices.tolist()) | |
del out | |
gc.collect() | |
torch.cuda.empty_cache() | |
print( | |
" | tokens | tokens | token 0\n" | |
f" | 0 1 2 | (merged) | (topk {TOPK})\n" | |
"---------|--------------------------------------------------------|---------------------------|--------------------------------------------------------------------------" | |
) | |
for i, x in enumerate(zip(*logit_lens)): | |
if i % 4 == 0: | |
print(f"Layer {i:>2} | ", end="") | |
for token in x: | |
print(f"{token:>7}{tokenizer.convert_ids_to_tokens(token)!r:<10} ", end="") | |
print(" | ", end="") | |
print(tokenizer.decode(list(x)).ljust(25), end = " | ") | |
print([tokenizer.convert_ids_to_tokens(j) for j in topk[0][i]]) | |
print() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<|begin_of_text|><|begin_of_text|><|start_header_id|>system<|end_header_id|> | |
Cutting Knowledge Date: December 2023 | |
Today Date: 26 Jul 2024 | |
<|eot_id|><|start_header_id|>user<|end_header_id|> | |
Is there a fish emoji?<|eot_id|><|start_header_id|>assistant<|end_header_id|> | |
Yes, there is a fish emoji: 🐟 | |
| tokens | tokens | token 0 | |
| 0 1 2 | (merged) | (topk 5) | |
---------|--------------------------------------------------------|---------------------------|-------------------------------------------------------------------------- | |
Layer 0 | 83244'ĠBail' 15591'ĠHarr' 5309'Ġvert' | Bail Harr vert | ['ĠBail', 'ĠPeanut', 'ĠãĢ', 'orr', 'ĠâĢĭâĢĭ'] | |
Layer 4 | 90450'ĠOswald' 26140'abi' 25727'avery' | Oswaldabiavery | ['ĠOswald', 'Ġunm', 'emez', 'api', 'rix'] | |
Layer 8 | 122029'chyb' 44465'ĠCaps' 15610'iller' | chyb Capsiller | ['chyb', '...', 'ترÛĮ', 'ĠSund', 'resse'] | |
Layer 12 | 1131'...' 48952'ĠCliff' 51965'ĠJackie' | ... Cliff Jackie | ['...', 'ages', 'dump', 'qing', 'Ġexp'] | |
Layer 16 | 1131'...' 12676'365' 65615'ĠSole' | ...365 Sole | ['...', '...Ċ', 'Ġboth', 'Ġindeed', 'ĠYes'] | |
Layer 20 | 1131'...' 109596'éļĨ' 51965'ĠJackie' | ...隆 Jackie | ['...', 'Z', '...Ċ', 'Ġboth', 'ĠLear'] | |
Layer 24 | 12'-' 31643'ï¸ı' 51965'ĠJackie' | -️ Jackie | ['-', '...', 'â̦', 'em', '...Ċ'] | |
Layer 28 | 1131'...' 96154'ĠGaut' 51965'ĠJackie' | ... Gaut Jackie | ['...', '-', 'ĠCold', '-Ċ', '...Ċ'] | |
Layer 32 | 1131'...' 96154'ĠGaut' 88'y' | ... Gauty | ['...', 'â̦', '...Ċ', 'O', 'u'] | |
Layer 36 | 220'Ġ' 12'-' 88'y' | -y | ['Ġ', '...', 'â̦', '...Ċ', 'u'] | |
Layer 40 | 220'Ġ' 6"'" 7795'Ġfish' | 'fish | ['Ġ', '...', 'â̦', 'Âł', 'u'] | |
Layer 44 | 7795'Ġfish' 7795'Ġfish' 7795'Ġfish' | fish fish fish | ['Ġfish', 'ĠFish', 'Fish', 'u', 'Âł'] | |
Layer 48 | 7795'Ġfish' 7795'Ġfish' 7795'Ġfish' | fish fish fish | ['Ġfish', 'ĠFish', 'ĠBerk', 'â̦', 'Âł'] | |
Layer 52 | 7795'Ġfish' 7795'Ġfish' 7795'Ġfish' | fish fish fish | ['Ġfish', 'ĠFish', 'Fish', 'fish', 'é±¼'] | |
Layer 56 | 7795'Ġfish' 7795'Ġfish' 7795'Ġfish' | fish fish fish | ['Ġfish', 'ĠFish', 'fish', 'Fish', 'é±¼'] | |
Layer 60 | 7795'Ġfish' 7795'Ġfish' 39739'Ġcarp' | fish fish carp | ['Ġfish', 'ĠPis', 'ĠFish', 'ĠÙħاÙĩ', 'ĠCarp'] | |
Layer 64 | 7795'Ġfish' 238'IJ' 7795'Ġfish' | fish� fish | ['Ġfish', 'ĠFish', 'ĠPis', 'Fish', 'ĠÙħاÙĩ'] | |
Layer 68 | 7795'Ġfish' 238'IJ' 7795'Ġfish' | fish� fish | ['Ġfish', 'ĠFish', 'ĠPis', 'ĠAtl', 'ĠðŁ'] | |
Layer 72 | 7795'Ġfish' 238'IJ' 253'Ł' | fish�� | ['Ġfish', 'ĠFish', 'ĠðŁ', 'Ġ', 'ÂŁ'] | |
Layer 76 | 220'Ġ' 238'IJ' 253'Ł' | �� | ['Ġ', 'Ġfish', 'ĠFish', 'ĠðŁ', 'Âł'] | |
Layer 80 | 11410'ĠðŁ' 238'IJ' 253'Ł' | 🐟 | ['ĠðŁ', 'ðŁ', 'Ġ', 'ĠĊĊ', 'ĠâĻ'] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<|begin_of_text|><|begin_of_text|><|start_header_id|>system<|end_header_id|> | |
Cutting Knowledge Date: December 2023 | |
Today Date: 26 Jul 2024 | |
<|eot_id|><|start_header_id|>user<|end_header_id|> | |
Is there a seahorse emoji?<|eot_id|><|start_header_id|>assistant<|end_header_id|> | |
Yes, there is a seahorse emoji: 🐠 | |
| tokens | tokens | token 0 | |
| 0 1 2 | (merged) | (topk 5) | |
---------|--------------------------------------------------------|---------------------------|-------------------------------------------------------------- | |
------------ | |
Layer 0 | 83244'ĠBail' 15591'ĠHarr' 5309'Ġvert' | Bail Harr vert | ['ĠBail', 'ĠPeanut', 'ĠãĢ', 'orr', 'ĠâĢĭâĢĭ'] | |
Layer 4 | 111484'emez' 26140'abi' 25727'avery' | emezabiavery | ['emez', 'Ġunm', 'ĠOswald', 'Ġrem', 'rix'] | |
Layer 8 | 122029'chyb' 44465'ĠCaps' 15610'iller' | chyb Capsiller | ['chyb', 'ĠSund', 'ترÛĮ', 'resse', 'Ġsod'] | |
Layer 12 | 1131'...' 48952'ĠCliff' 51965'ĠJackie' | ... Cliff Jackie | ['...', 'ages', 'dump', 'qing', 'Ġexp'] | |
Layer 16 | 1131'...' 12676'365' 31447'ĠAld' | ...365 Ald | ['...', '...Ċ', 'Ġindeed', 'Ġboth', 'ĠYes'] | |
Layer 20 | 1131'...' 109596'éļĨ' 51965'ĠJackie' | ...隆 Jackie | ['...', '...Ċ', 'Z', 'Ġboth', 'ĠHust'] | |
Layer 24 | 12'-' 31643'ï¸ı' 287'ing' | -️ing | ['-', '...', 'â̦', '...Ċ', 'em'] | |
Layer 28 | 1131'...' 96154'ĠGaut' 51965'ĠJackie' | ... Gaut Jackie | ['...', '-', '...Ċ', '-Ċ', 'Ġ'] | |
Layer 32 | 1131'...' 96154'ĠGaut' 6892'Ġing' | ... Gaut ing | ['...', 'â̦', '...Ċ', 'O', 'zer'] | |
Layer 36 | 1131'...' 12'-' 88'y' | ...-y | ['...', 'â̦', '...Ċ', 'Ġ', 'u'] | |
Layer 40 | 1131'...' 31643'ï¸ı' 88'y' | ...️y | ['...', 'u', 'â̦', 'Âł', '...Ċ'] | |
Layer 44 | 80435'ĠScor' 15580'Ġhorse' 15580'Ġhorse' | Scor horse horse | ['ĠScor', 'u', 'ĠPan', 'in', 'Ġhttps'] | |
Layer 48 | 15580'Ġhorse' 15580'Ġhorse' 15580'Ġhorse' | horse horse horse | ['Ġhorse', 'Âł', 'ĠPan', 'ĠHomes', 'ĠHorse'] | |
Layer 52 | 9581'Ġsea' 15580'Ġhorse' 15580'Ġhorse' | sea horse horse | ['Ġsea', 'Ġhorse', 'ĠHorse', 'ĠSea', 'âĢij'] | |
Layer 56 | 9581'Ġsea' 43269'ĠSeah' 15580'Ġhorse' | sea Seah horse | ['Ġsea', 'ĠSea', 'ĠSeah', 'Ġhippoc', 'Ġhorse'] | |
Layer 60 | 15580'Ġhorse' 15580'Ġhorse' 15580'Ġhorse' | horse horse horse | ['Ġhorse', 'Ġsea', 'ĠSeah', 'Ġse', 'horse'] | |
Layer 64 | 15580'Ġhorse' 15580'Ġhorse' 15580'Ġhorse' | horse horse horse | ['Ġhorse', 'Ġse', 'ĠHorse', 'horse', 'Ġhors'] | |
Layer 68 | 60775'horse' 238'IJ' 15580'Ġhorse' | horse� horse | ['horse', 'Ġse', 'Ġhorse', 'Ġhippoc', 'ĠSeah'] | |
Layer 72 | 513'Ġse' 238'IJ' 513'Ġse' | se� se | ['Ġse', 'Ġhippoc', 'horse', 'ĠðŁ', 'Ġhorse'] | |
Layer 76 | 513'Ġse' 238'IJ' 513'Ġse' | se� se | ['Ġse', 'Ġhippoc', 'hip', 'Ġhorse', 'ĠHipp'] | |
Layer 80 | 11410'ĠðŁ' 238'IJ' 254'ł' | 🐠 | ['ĠðŁ', 'ðŁ', 'ĠðŁĴ', 'Ġ', 'ĠðŁij'] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<|begin_of_text|><|begin_of_text|><|start_header_id|>system<|end_header_id|> | |
Cutting Knowledge Date: December 2023 | |
Today Date: 26 Jul 2024 | |
<|eot_id|><|start_header_id|>user<|end_header_id|> | |
Is there a toaster emoji?<|eot_id|><|start_header_id|>assistant<|end_header_id|> | |
Yes, there is a toaster emoji: 🍞 | |
| tokens | tokens | token 0 | |
| 0 1 2 | (merged) | (topk 5) | |
---------|--------------------------------------------------------|---------------------------|-------------------------------------------------------------------------- | |
Layer 0 | 83244'ĠBail' 15591'ĠHarr' 19148'angan' | Bail Harrangan | ['ĠBail', 'ĠPeanut', 'ĠãĢ', 'orr', 'ĠâĢĭâĢĭ'] | |
Layer 4 | 90450'ĠOswald' 26140'abi' 95937'ĠDeadly' | Oswaldabi Deadly | ['ĠOswald', 'rix', 'emez', 'Ġunm', 'api'] | |
Layer 8 | 122029'chyb' 90970'ĠMcKay' 15385'ĠJac' | chyb McKay Jac | ['chyb', 'ĠSund', '...', 'ise', 'resse'] | |
Layer 12 | 1131'...' 48952'ĠCliff' 19091'Ġdual' | ... Cliff dual | ['...', 'ages', 'dump', 'Ġexp', 'qing'] | |
Layer 16 | 1131'...' 12676'365' 65964'immel' | ...365immel | ['...', '...Ċ', 'Ġindeed', 'Ġboth', 'ĠHill'] | |
Layer 20 | 1131'...' 109596'éļĨ' 67'd' | ...隆d | ['...', '...Ċ', 'Z', 'Ġboth', 'Ġindeed'] | |
Layer 24 | 12'-' 31643'ï¸ı' 31643'ï¸ı' | -️️ | ['-', '...', 'â̦', '...Ċ', '!'] | |
Layer 28 | 1131'...' 31643'ï¸ı' 31643'ï¸ı' | ...️️ | ['...', '-', 'Ġ', '...Ċ', '('] | |
Layer 32 | 1131'...' 59850'ĠBrennan' 31643'ï¸ı' | ... Brennan️ | ['...', 'â̦', '...Ċ', 'zer', 'O'] | |
Layer 36 | 1131'...' 31643'ï¸ı' 267'st' | ...️st | ['...', '...Ċ', 'Ġ', 'â̦', "'"] | |
Layer 40 | 84'u' 31643'ï¸ı' 267'st' | u️st | ['u', 'â̦', '...', 'Ġ', 'ĠDen'] | |
Layer 44 | 9806'ĠToast' 31643'ï¸ı' 267'st' | Toast️st | ['ĠToast', 'Ġtoast', 'Toast', 'toast', 'Ġbread'] | |
Layer 48 | 23211'Ġtoast' 23211'Ġtoast' 16385'Ġbread' | toast toast bread | ['Ġtoast', 'ĠToast', 'toast', 'Toast', 'Ġbread'] | |
Layer 52 | 23211'Ġtoast' 23211'Ġtoast' 16385'Ġbread' | toast toast bread | ['Ġtoast', 'ĠToast', 'Toast', 'toast', 'Ġhttps'] | |
Layer 56 | 23211'Ġtoast' 23211'Ġtoast' 23211'Ġtoast' | toast toast toast | ['Ġtoast', 'ĠToast', 'Toast', 'toast', 'Ġtoaster'] | |
Layer 60 | 23211'Ġtoast' 23211'Ġtoast' 23211'Ġtoast' | toast toast toast | ['Ġtoast', 'ĠToast', 'Toast', 'toast', '.toast'] | |
Layer 64 | 23211'Ġtoast' 23211'Ġtoast' 23211'Ġtoast' | toast toast toast | ['Ġtoast', 'ĠToast', 'Toast', 'toast', 'Ġbread'] | |
Layer 68 | 9806'ĠToast' 23211'Ġtoast' 23211'Ġtoast' | Toast toast toast | ['ĠToast', 'Ġtoast', 'Toast', 'toast', 'ĠBread'] | |
Layer 72 | 9806'ĠToast' 235'į' 252'ŀ' | Toast�� | ['ĠToast', 'Ġhttps', 'ĠBread', 'sen', 'ĠðŁ'] | |
Layer 76 | 220'Ġ' 235'į' 252'ŀ' | �� | ['Ġ', 'ĠðŁ', 'Ġhttps', 'ĠToast', 'To'] | |
Layer 80 | 11410'ĠðŁ' 235'į' 252'ŀ' | 🍞 | ['ĠðŁ', 'Ġâ', 'ðŁ', 'ĠðŁĶ', 'ĠðŁĴ'] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment