open-dcoder-0.5B / README.md
nielsr's picture
nielsr HF Staff
Add paper link and improve model card metadata
c678e54 verified
|
raw
history blame
2.65 kB
---
language:
- code
library_name: transformers
license: apache-2.0
pipeline_tag: text-generation
tags:
- masked-diffusion
- code-generation
- qwen2
---
## Open Diffusion Large Language Models for Code Generation
This repository contains the weights and custom code for the **fredzzp/open-dcoder-0.5B** model, a masked diffusion model for code generation based on the Qwen2 architecture.
The model was introduced in the paper [Don't Retrain, Align: Adapting Autoregressive LMs to Diffusion LMs via Representation Alignment](https://huggingface.co/papers/2605.06885).
- **Code:** [pengzhangzhi/Open-dLLM](https://github.com/pengzhangzhi/Open-dLLM)
- **Blog:** [Notion Blog](https://oval-shell-31c.notion.site/Open-Diffusion-Large-Language-Model-25e03bf6136480b7a4ebe3d53be9f68a?pvs=74)
This model uses bidirectional attention and must be used with the custom `diffusion_generate` method.
## How to Use
First, make sure you have the latest `transformers` library installed.
```bash
pip install transformers torch huggingface_hub
```
You can then use the model for generation. Note: You must pass `trust_remote_code=True` to load the custom model architecture.
```python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "fredzzp/open-dcoder-0.5B"
device = "cuda" if torch.cuda.is_available() else "cpu"
# trust_remote_code=True is essential
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
trust_remote_code=True
).to(device)
prompt = "def fibonacci(n):"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
# The model will use the generation_config.json from the repo by default
# You can also override parameters here
outputs = model.diffusion_generate(
inputs=input_ids,
max_new_tokens=100,
steps=16,
temperature=0.8
)
# Decode the output
prompt_len = input_ids.shape[1]
generated_text = tokenizer.decode(outputs.sequences[0][prompt_len:], skip_special_tokens=True)
print("--- Generated Code ---")
print(generated_text)
```
## Citation
```bibtex
@misc{opendllm2025,
title = {Open-dLLM: Open Diffusion Large Language Models},
author = {Fred Zhangzhi Peng, Shuibai Zhang, Alex Tong, and contributors},
year = {2025},
howpublished = {\url{https://github.com/pengzhangzhi/Open-dLLM}},
note = {Blog: \url{https://oval-shell-31c.notion.site/Open-Diffusion-Large-Language-Model-25e03bf6136480b7a4ebe3d53be9f68a?pvs=74},
Model: \url{https://huggingface.co/fredzzp/open-dcoder-0.5B}}
}
```