Downloads · 30 days
718
26% of all-time downloads
yujiepan/baguettotron-tiny-random
baguettotron-tiny-random is a text generation model from yujiepan. Use it when you need the model to write or continue text. It is set up for transformers.
This tiny model is intended for debugging. It is randomly initialized using the configuration adapted from PleIAs/Baguettotron.
Downloads · 30 days
718
26% of all-time downloads
All-time downloads
2.8K
Public
Parameters
552K
1.1 MB on disk
Likes
0
Public
Click a slice to open those files.
.json4.7 MB · 81%
From the Hugging Face model README
This tiny model is intended for debugging. It is randomly initialized using the configuration adapted from PleIAs/Baguettotron.
from transformers import pipeline
model_id = "yujiepan/baguettotron-tiny-random"
pipe = pipeline(
"text-generation", model=model_id, device="cuda",
trust_remote_code=True, max_new_tokens=3,
)
print(pipe("Hello World!"))
import torch
from transformers import (
AutoConfig,
AutoModelForCausalLM,
AutoTokenizer,
GenerationConfig,
pipeline,
set_seed,
)
source_model_id = "PleIAs/Baguettotron"
save_folder = "/tmp/yujiepan/baguettotron-tiny-random"
tokenizer = AutoTokenizer.from_pretrained(
source_model_id, trust_remote_code=True,
)
tokenizer.chat_template = "{% for m in messages %}<|im_start|>{{ m['role'] }}\n{{ m['content'] }}<|im_end|>\n{% endfor %}{% if add_generation_prompt %}<|im_start|>assistant\n<think>\n{% endif %}"
tokenizer.eos_token = "<|im_end|>"
tokenizer.bos_token = "<|im_start|>"
tokenizer.stop_token = "<|im_end|>"
tokenizer.save_pretrained(save_folder)
config = AutoConfig.from_pretrained(
source_model_id, trust_remote_code=True,
)
config.hidden_size = 8
config.intermediate_size = 64
config.num_attention_heads = 16
config.num_key_value_heads = 8
config.head_dim = 32
config.num_hidden_layers = 2
model = AutoModelForCausalLM.from_config(
config,
torch_dtype=torch.bfloat16,
trust_remote_code=True,
)
model.generation_config = GenerationConfig.from_pretrained(
source_model_id, trust_remote_code=True,
)
set_seed(42)
model = model.cpu()
with torch.no_grad():
for name, p in sorted(model.named_parameters()):
torch.nn.init.normal_(p, 0, 0.1)
print(name, p.shape)
model.save_pretrained(save_folder)
LlamaForCausalLM(
(model): LlamaModel(
(embed_tokens): Embedding(65536, 8)
(layers): ModuleList(
(0-1): 2 x LlamaDecoderLayer(
(self_attn): LlamaAttention(
(q_proj): Linear(in_features=8, out_features=512, bias=False)
(k_proj): Linear(in_features=8, out_features=256, bias=False)
(v_proj): Linear(in_features=8, out_features=256, bias=False)
(o_proj): Linear(in_features=512, out_features=8, bias=False)
)
(mlp): LlamaMLP(
(gate_proj): Linear(in_features=8, out_features=64, bias=False)
(up_proj): Linear(in_features=8, out_features=64, bias=False)
(down_proj): Linear(in_features=64, out_features=8, bias=False)
(act_fn): SiLUActivation()
)
(input_layernorm): LlamaRMSNorm((8,), eps=1e-05)
(post_attention_layernorm): LlamaRMSNorm((8,), eps=1e-05)
)
)
(norm): LlamaRMSNorm((8,), eps=1e-05)
(rotary_emb): LlamaRotaryEmbedding()
)
(lm_head): Linear(in_features=8, out_features=65536, bias=False)
)