| | --- |
| | 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 using the config from [meta-llama/Llama-3.2-90B-Vision-Instruct](https://huggingface.co/meta-llama/Llama-3.2-90B-Vision-Instruct) but with smaller size. |
| |
|
| | Codes: |
| | ```python |
| | import os |
| | |
| | import accelerate |
| | import requests |
| | import torch |
| | import transformers |
| | from huggingface_hub import create_repo, upload_folder |
| | from PIL import Image |
| | from transformers import AutoProcessor, MllamaForConditionalGeneration |
| | from transformers.models.mllama import MllamaConfig |
| | |
| | model_id = 'meta-llama/Llama-3.2-90B-Vision-Instruct' |
| | repo_id = 'yujiepan/llama-3.2-vision-tiny-random' |
| | save_path = f'/tmp/{repo_id}' |
| | |
| | os.system(f'rm -rf {save_path}') |
| | |
| | config = transformers.AutoConfig.from_pretrained( |
| | model_id, |
| | trust_remote_code=True, |
| | ) |
| | config.text_config.hidden_size = 8 |
| | config.text_config.intermediate_size = 16 |
| | config.text_config.num_attention_heads = 2 |
| | config.text_config.num_key_value_heads = 1 |
| | config.text_config.num_hidden_layers = 2 |
| | config.text_config.cross_attention_layers = [1] |
| | |
| | config.vision_config.attention_heads = 2 |
| | config.vision_config.hidden_size = 8 |
| | config.vision_config.intermediate_size = 16 |
| | config.vision_config.intermediate_layers_indices = [0] |
| | config.vision_config.num_global_layers = 2 |
| | config.vision_config.num_hidden_layers = 2 |
| | config.vision_config.vision_output_dim = 16 |
| | |
| | |
| | transformers.set_seed(42) |
| | model = MllamaForConditionalGeneration(config) |
| | model.generation_config = transformers.GenerationConfig.from_pretrained( |
| | model_id) |
| | model = model.to(torch.bfloat16) |
| | |
| | transformers.set_seed(42) |
| | with torch.no_grad(): |
| | for p in model.parameters(): |
| | torch.nn.init.normal_(p) |
| | |
| | model.save_pretrained(save_path) |
| | |
| | processor = AutoProcessor.from_pretrained(model_id) |
| | processor.save_pretrained(save_path) |
| | |
| | url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg" |
| | image = Image.open(requests.get(url, stream=True).raw) |
| | |
| | messages = [ |
| | {"role": "user", "content": [ |
| | {"type": "image"}, |
| | {"type": "text", "text": "If I had to write a haiku for this one, it would be: "} |
| | ]} |
| | ] |
| | input_text = processor.apply_chat_template( |
| | messages, add_generation_prompt=True) |
| | inputs = processor(image, input_text, return_tensors="pt").to(model.device) |
| | |
| | output = model.generate(**inputs, max_new_tokens=30) |
| | print(processor.decode(output[0])) |
| | |
| | os.system(f'ls -alh {save_path}') |
| | # os.system(f'rm -rf {save_path}/model.safetensors') |
| | # create_repo(repo_id, exist_ok=True) |
| | # upload_folder(repo_id=repo_id, folder_path=save_path) |
| | ``` |
| |
|