--- library_name: transformers pipeline_tag: text-generation inference: true widget: - text: Hello! example_title: Hello world group: Python --- This model is for debugging. It is randomly initialized with the config from [Qwen/QwQ-32B-Preview](https://huggingface.co/Qwen/QwQ-32B-Preview) but is of smaller size. Codes: ```python 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) ```