|
|
--- |
|
|
license: mit |
|
|
datasets: |
|
|
- Tesslate/Rust_Dataset |
|
|
language: |
|
|
- en |
|
|
base_model: |
|
|
- unsloth/phi-4-reasoning |
|
|
pipeline_tag: text-generation |
|
|
library_name: transformers |
|
|
tags: |
|
|
- Rust |
|
|
- code |
|
|
- text-generation-inference |
|
|
- lora |
|
|
- reasoning |
|
|
- quantization |
|
|
--- |
|
|
# 🧠 Rust-Master-thinking |
|
|
|
|
|
This repository contains a fine-tuned version of |
|
|
[**unsloth/phi-4-reasoning**](https://huggingface.co/unsloth/phi-4-reasoning), trained with **LoRA** on the |
|
|
[**Tesslate/Rust_Dataset**](https://huggingface.co/datasets/Tesslate/Rust_Dataset). |
|
|
The goal of this project is to enhance the model's reasoning, |
|
|
explanation, and step-by-step thinking abilities specifically for |
|
|
**Rust-related tasks**. |
|
|
|
|
|
## 🚀 Model Purpose |
|
|
|
|
|
This model was fine-tuned to: |
|
|
|
|
|
- Improve **Rust coding explanations** |
|
|
- Generate **high-quality reasoning traces** |
|
|
- Provide **step-by-step problem solving** |
|
|
- Give **detailed and structured answers** |
|
|
|
|
|
The training format follows: |
|
|
|
|
|
<|user|> |
|
|
{prompt} |
|
|
<|assistant|> |
|
|
<think> |
|
|
{reasoning} |
|
|
</think> |
|
|
{response} |
|
|
|
|
|
## 🔧 How to Use |
|
|
|
|
|
### Install dependencies (if not installed): |
|
|
```bash |
|
|
pip install transformers bitsandbytes |
|
|
``` |
|
|
### Load model normally: |
|
|
|
|
|
``` python |
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
|
import torch |
|
|
|
|
|
model_id = "SkyAsl/Rust-Master-thinking" |
|
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_id) |
|
|
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto") |
|
|
model.eval() |
|
|
|
|
|
prompt = "Explain why Rust ownership prevents data races." |
|
|
|
|
|
input_text = ( |
|
|
f"<|user|>\n{prompt}\n" |
|
|
f"<|assistant|>\n<think>\n" |
|
|
) |
|
|
|
|
|
inputs = tokenizer(input_text, return_tensors="pt").to(model.device) |
|
|
|
|
|
with torch.no_grad(): |
|
|
output = model.generate( |
|
|
**inputs, |
|
|
max_new_tokens=3000, |
|
|
temperature=0.7, |
|
|
top_p=0.9, |
|
|
do_sample=True, |
|
|
repetition_penalty=1.2, |
|
|
) |
|
|
|
|
|
print(tokenizer.decode(output[0], skip_special_tokens=False)) |
|
|
|
|
|
``` |
|
|
|
|
|
## 🧩 Base Model |
|
|
|
|
|
**unsloth/phi-4-reasoning** |
|
|
|
|
|
- 14B parameter reasoning-optimized model |
|
|
- Uses internal `<think>` reasoning |
|
|
- Strong on step-by-step chain-of-thought tasks |
|
|
|
|
|
## 🛠 Fine-Tuning Details |
|
|
|
|
|
| Setting | Value | |
|
|
|----------------|-----------------------------------------| |
|
|
| Method | LoRA (PEFT) | |
|
|
| Rank (r) | 16 | |
|
|
| Alpha | 32 | |
|
|
| Dropout | 0.05 | |
|
|
| Target Modules | q/k/v/o proj, mlp (up/down/gate) | |
|
|
| Max Length | 512 | |
|
|
| Precision | 4-bit QLoRA | |
|
|
| Batch Size | 16 | |
|
|
| Grad Accum | 8 | |
|
|
| LR | 2e-4 | |
|
|
| Scheduler | cosine | |
|
|
| Epochs | 1 | |
|
|
|
|
|
## 🤖 Evaluation |
|
|
| Epoch | Training Loss | Validation Loss | |
|
|
|-------|----------------|------------------| |
|
|
| 1 | 2.251500 | 2.191743 | |
|
|
|
|
|
## 📚 Dataset |
|
|
|
|
|
**Tesslate/Rust_Dataset** |
|
|
|
|
|
Includes: |
|
|
|
|
|
- Rust prompts |
|
|
- Step-by-step reasoning |
|
|
- Final answers |
|
|
|
|
|
This dataset improves the model's ability to produce structured and |
|
|
accurate explanations for Rust programming tasks. |