from transformers import AutoConfig, AutoModel, logging
from transformers import AutoModel, AutoTokenizer
import torch
from PIL import Image
import os

logging.set_verbosity_error()  # silence HF info spam

MODEL_ID = "openbmb/MiniCPM-o-2_6"

device = "cpu"
cfg = AutoConfig.from_pretrained(MODEL_ID, trust_remote_code=True)

cfg.hidden_size = 24 * 6
#cfg.hidden_size = 128
cfg.num_heads = 1
cfg.num_hidden_layers = 28
cfg.intermediate_size = 16
cfg.num_attention_heads=24

cfg.vision_config.hidden_size = 8
cfg.vision_config.num_hidden_layers = 1
cfg.vision_config.num_attention_heads = 1
cfg.vision_config.intermediate_size = 8
#cfg.vision_config.image_size = 100

cfg.audio_config.encoder_layers = 1
cfg.audio_config.decoder_layers = 1
cfg.audio_config.decoder_ffn_dim = 1024
#cfg.audio_config.d_model = 32
#cfg.audio_config.encoder_ffn_dim = 1024
#cfg.audio_config.use_bfloat16=True

cfg.tts_config.llm_dim = 16
cfg.tts_config.hidden_size = 12

cfg.tts_config.llm_dim = 4      # keep small (interface with LM)
cfg.tts_config.hidden_size = 8  # shrink internal TTS width
cfg.tts_config.intermediate_size = 4   # shrink FFN
cfg.tts_config.num_layers = 1    # minimum, keeps a single block
cfg.tts_config.num_heads = 1     # avoid multi-head blowup
cfg.tts_config.num_hidden_layers = 1
cfg.tts_config.num_mel_bins = 10
cfg.tts_config.num_attention_heads = 1
cfg.tts_config.num_text_tokens = 20
cfg.tts_config.num_audio_tokens = 10
#cfg.tts_config.use_bfloat16=True

model = AutoModel.from_config(cfg, trust_remote_code=True)

# cast to bfloat16
model = model.to(dtype=torch.bfloat16, device=device)

print("Built tiny MiniCPM-o model on", device)

tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, trust_remote_code=True)

output_dir = "./tiny-random-minicpmo-new-version"
os.makedirs(output_dir, exist_ok=True)
model.save_pretrained(output_dir, safe_serialization=True)
tokenizer.save_pretrained(output_dir)
model.processor.save_pretrained(output_dir)
Downloads last month
11,325
Safetensors
Model size
84.3M params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support