Downloads · 30 days
1.1K
14% of all-time downloads
yujiepan/QwQ-preview-tiny-random
QwQ-preview-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 model is for debugging. It is randomly initialized with the config from Qwen/QwQ-32B-Preview but is of smaller size.
Downloads · 30 days
1.1K
14% of all-time downloads
All-time downloads
8.2K
Public
Parameters
2.4M
16.3 MB on disk
Likes
0
Public
Click a slice to open those files.
.json14.2 MB · 68%
From the Hugging Face model README
This model is for debugging. It is randomly initialized with the config from Qwen/QwQ-32B-Preview but is of smaller size.
Codes:
from transformers import AutoModelForCausalLM, AutoTokenizer
import transformers
import torch
import os
from huggingface_hub import create_repo, upload_folder
import accelerate
model_id = 'Qwen/QwQ-32B-Preview'
save_path = '/tmp/yujiepan/QwQ-preview-tiny-random'
repo_id = 'yujiepan/QwQ-preview-tiny-random'
os.system(f'rm -rf {save_path}')
config = transformers.AutoConfig.from_pretrained(
model_id,
trust_remote_code=True,
)
config._name_or_path = model_id
config.hidden_size = 8
config.intermediate_size = 16
config.num_key_value_heads = 1
config.num_attention_heads = 2
config.num_hidden_layers = 2
config.max_window_layers = 1
model = transformers.AutoModelForCausalLM.from_config(
config,
trust_remote_code=True,
)
model.generation_config = transformers.GenerationConfig.from_pretrained(
model_id)
model = model.to(torch.bfloat16)
transformers.set_seed(42)
num_params = 0
with torch.no_grad():
for name, p in sorted(model.named_parameters()):
print(name, p.shape)
torch.nn.init.uniform_(p, -0.5, 0.5)
num_params += p.numel()
print("Total number of parameters:", num_params)
model.save_pretrained(save_path)
tokenizer = transformers.AutoTokenizer.from_pretrained(
model_id,
trust_remote_code=True,
)
tokenizer.save_pretrained(save_path)
os.system(f'ls -alh {save_path}')
create_repo(repo_id, exist_ok=True)
upload_folder(repo_id=repo_id, folder_path=save_path)
def try_example(model, tokenizer):
prompt = "How many r in strawberry."
messages = [
{"role": "system", "content": "You are a helpful and harmless assistant. You should think step-by-step."},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
try_example(model, tokenizer)