初始化项目,由ModelHub XC社区提供模型
Model: GPUburnout/GPUburnout-2B-75K-Chat-DPO Source: Original Platform
This commit is contained in:
88
README.md
Normal file
88
README.md
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
license: apache-2.0
|
||||
language:
|
||||
- en
|
||||
tags:
|
||||
- llama
|
||||
- dpo
|
||||
- chat
|
||||
- from-scratch
|
||||
- gpuburnout
|
||||
pipeline_tag: text-generation
|
||||
---
|
||||
|
||||
# GPUburnout-2B-75K-Chat-DPO
|
||||
|
||||
A 1.92 billion parameter Llama-style chat model with DPO alignment. Trained from scratch, expanded from 1B, SFT'd on SlimOrca 50K, then DPO-aligned with 1,078 preference pairs.
|
||||
|
||||
## Model Details
|
||||
|
||||
- **Architecture:** Llama-style decoder-only transformer
|
||||
- **Parameters:** 1.92B
|
||||
- **Hidden dim:** 2304
|
||||
- **Layers:** 24
|
||||
- **Attention:** GQA (36 query heads, 9 KV heads)
|
||||
- **FFN:** SwiGLU (intermediate 9216)
|
||||
- **Position encoding:** RoPE (theta=500000)
|
||||
- **Context length:** 2048 tokens
|
||||
- **Vocabulary:** 32,005 tokens (BPE + 5 special tokens)
|
||||
|
||||
## Training Pipeline
|
||||
|
||||
1. **Pretraining:** 1.04B model trained to Chinchilla-optimal (160K steps, 20.97B tokens)
|
||||
2. **Growth:** Expanded 1B -> 1.92B via weight copying + new layer insertion
|
||||
3. **Continued pretraining:** 75K steps on clean data (contaminated Python-Edu + FineMath replaced)
|
||||
4. **SFT:** SlimOrca 50K, LoRA r=16/alpha=32, 1 epoch
|
||||
5. **DPO:** 1,078 preference pairs, beta=0.1, lr=5e-7, LoRA r=16/alpha=32, 1 epoch
|
||||
|
||||
## DPO Details
|
||||
|
||||
- **Preference data:** 1,200 prompts across 10 categories, 5 responses per prompt at graduated temperatures (0.5-1.3)
|
||||
- **Judge:** Claude (via Claude.ai Max subscription) — evaluation only, no distillation
|
||||
- **Result:** 7/8 clean on garbage token check (vs 4/8 on 1B DPO)
|
||||
- **Key insight:** Clean pretraining data was the prerequisite — 1B DPO failed because garbage tokens were baked in from contaminated pretraining data
|
||||
|
||||
## Garbage Token Check (8 standard prompts)
|
||||
|
||||
| Prompt | Status |
|
||||
|---|---|
|
||||
| Explain how photosynthesis works | CLEAN |
|
||||
| What is the theory of relativity? | CLEAN |
|
||||
| Write a Python function to reverse a string | GARBAGE |
|
||||
| Tell me a creative story about a robot learning to paint | CLEAN |
|
||||
| Solve: If a train travels 60 mph for 2.5 hours, how far does it go? | CLEAN |
|
||||
| What are the ethical implications of AI in healthcare? | CLEAN |
|
||||
| Explain the water cycle to a 10-year-old | CLEAN |
|
||||
| What is the difference between a virus and a bacterium? | CLEAN |
|
||||
|
||||
## Usage
|
||||
|
||||
```python
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
|
||||
model = AutoModelForCausalLM.from_pretrained("GPUburnout/GPUburnout-2B-75K-Chat-DPO", torch_dtype="float16")
|
||||
tokenizer = AutoTokenizer.from_pretrained("GPUburnout/GPUburnout-2B-75K-Chat-DPO")
|
||||
|
||||
messages = [
|
||||
{"role": "system", "content": "You are a helpful assistant."},
|
||||
{"role": "user", "content": "Explain how photosynthesis works."},
|
||||
]
|
||||
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
|
||||
inputs = tokenizer(text, return_tensors="pt").to(model.device)
|
||||
outputs = model.generate(**inputs, max_new_tokens=200, temperature=0.7, top_p=0.9)
|
||||
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
|
||||
```
|
||||
|
||||
## Related Models
|
||||
|
||||
- [GPUburnout-2B-75K](https://huggingface.co/GPUburnout/GPUburnout-2B-75K) — Base pretrained
|
||||
- [GPUburnout-2B-75K-Chat](https://huggingface.co/GPUburnout/GPUburnout-2B-75K-Chat) — SFT only
|
||||
- [GPUburnout-1B-160K](https://huggingface.co/GPUburnout/GPUburnout-1B-160K) — 1B base (Chinchilla-optimal)
|
||||
|
||||
## Blog
|
||||
|
||||
Full training journey documented at [gpuburnout.com](https://gpuburnout.com)
|
||||
|
||||
## Author
|
||||
|
||||
Jun Park ([@GPUburnout](https://github.com/GPUburnout))
|
||||
Reference in New Issue
Block a user