Views
No views yet
1from transformers import AutoTokenizer, AutoModelForCausalLM
2import torch
3
4model_id = "snwy/frankenqwen3-8B-235B-dense-conversion-interleaved-untuned"
5tok = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
6model = AutoModelForCausalLM.from_pretrained(
7 model_id,
8 torch_dtype=torch.bfloat16,
9 device_map="auto",
10 trust_remote_code=True,
11)
12
13# ...1# 1) Convert MoE -> dense (average is safer than concat)
2python moe_to_dense.py \
3 --model_id Qwen/Qwen3-235B-A22B-Instruct-2507 \
4 --target_model Qwen/Qwen3-8B \
5 --output_path ./qwen3-235b-dense-avg \
6 --method average \
7 --low_memory
8
9# 2) Build composite (example: 48 layers)
10python moe_to_dense.py \
11 --compose_interleaved \
12 --base_model Qwen/Qwen3-8B \
13 --moe_converted ./qwen3-235b-dense-avg \
14 --composite_output_path ./qwen3-8b-plus-moe-48L \
15 --final_layers 48 \
16 --interleave_strategy even \
17 --cast_dtype bfloat16 \
18 --low_memory
19
20# 3) Validate shapes/load
21python moe_to_dense.py --validate_model ./qwen3-8b-plus-moe-48L@misc{qwen3-8b-plus-moe-<FINAL_LAYERS>L,
title = {Qwen3 8B + MoE Interleaved Composite (64 Layers)},
author = {snwy},
year = {2025},
url = {https://huggingface.co/snwy/frankenqwen3-8B-235B-dense-conversion-interleaved-untuned}
}