Edit model card

This model is for debugging. It is randomly initialized using the config from meta-llama/Llama-3.2-90B-Vision-Instruct but with smaller size.

Codes:

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)
Downloads last month
8
Safetensors
Model size
2.53M 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/llama-3.2-vision-tiny-random