--- license: apache-2.0 datasets: - HuggingFaceTB/smol-smoltalk - HuggingFaceH4/no_robots language: - en base_model: - CodeSoft/MetaDiffusion-150M-exp pipeline_tag: text-generation tags: - text-generation - transformer - diffusion-language-model - chat - metadiffusion --- # MetaDiffusion-150M-ChatBase MetaDiffusion-150M-ChatBase is a masked-diffusion language model converted from an autoregressive base model and chat-tuned for downstream experimentation. It uses bidirectional attention with timestep conditioning and generates text through iterative masked denoising with left-to-right block commitment. Built by chat tuning [CodeSoft/MetaDiffusion-150M-exp](https://huggingface.co/CodeSoft/MetaDiffusion-150M-exp) on smol-smoltalk (460K conversations, Apache-2.0) + no_robots (9.5K, Apache-2.0). - Architecture: 16L x 768W, 169.5M params, bidirectional attention, timestep conditioning, 32,010 vocab (ChatML tokens added), context 5120 - Weights: fp16 safetensors (339 MB), untied lm_head - Generation: masked denoising (left-to-right block commit, 128 steps default) ## Intended use Downstream fine-tuning for specific tasks. This is NOT designed for production, instruction following is weak and coherent output is limited to roughly 60-100 tokens. ## Quickstart (chat) ```bash pip install -r scripts/requirements.txt # Interactive, with live denoising view (--watch): python scripts/chat.py --model-path . --watch # One-shot: python scripts/chat.py --model-path . --prompt "What is the capital of France?" ``` The `--watch` flag shows the response denoising in real time: step count, noise level t, masks remaining, and the partial text building into place. Generation defaults live in `generation_config.json` (128 steps, 96-token block, temperature 0.7, repetition penalty 1.5). ## Fine-tune it ```bash # 1. Your data: # a) HF dataset names (no_robots, alpaca, dolly, smol-smoltalk, math) python scripts/prepare_data.py --model-path . \ --data-dir my_data --datasets no_robots # b) Local ChatML files: .jsonl, .json, .parquet (messages/instruction shapes) python scripts/convert_data.py --model-path . --input my_chat.jsonl \ --output my_data python scripts/convert_data.py --model-path . --input ./data_folder \ --output my_data # 2. Train python scripts/train_chat.py --model-path . \ --data-dir my_data --output-dir my_checkpoints \ --lr 7e-5 --epochs 3 --patience 6 # 3. Chat with your model python scripts/chat.py --model-path my_checkpoints/best.pt \ --tokenizer my_data/tokenizer --watch # 4. Export a new release artifact (self-packages the scripts too) python scripts/export_hf.py --checkpoint my_checkpoints/best.pt \ --tokenizer my_data/tokenizer --output ./MetaDiffusion-150M-MyTask --fp16 ``` The whole pipeline runs on a single consumer GPU. ## Behavior The model returns coherent sentences but loses coherence and factuality over multi-turn conversations. ## Generation notes - Left-to-right (semi-autoregressive) block commit: confidence-based unmasking lets `<|im_end|>` win at position 0 and produced empty responses on this architecture at 150M; left-to-right fixed it (verified). - Denoising stops early once `<|im_end|>` is committed. ## Model lineage MetaDiffusion-150M-ChatBase is derived through the following process: 1. Start from `SupraLabs/Supra-1.5-50M-Base-exp`. 2. Convert the autoregressive model into a masked-diffusion architecture. 3. Continue pre-training on FineWeb-EDU. 4. Expand the model to 150M parameters. 5. Continue pretraining on The Pile. 6. Chat-tune on `HuggingFaceTB/smol-smoltalk` and `HuggingFaceH4/no_robots`. The resulting model uses bidirectional attention and timestep conditioning rather than conventional causal attention. ## License details Apache-2.0