|
--- |
|
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) |
|
``` |
|
|