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)
Downloads last month
22
Safetensors
Model size
2.43M params
Tensor type
BF16
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Collection including yujiepan/QwQ-preview-tiny-random