|
Download README.md from apple/DiffuCoder-7B-Base: direct link, hf CLI and curl.
- Browser
- Download file 2.27 kB
-
https://huggingface.co/apple/DiffuCoder-7B-Base/resolve/refs%2Fpr%2F2/README.md
- Command line
-
hf download hf://apple/DiffuCoder-7B-Base@refs/pr/2/README.md
-
curl -L -o README.md https://huggingface.co/apple/DiffuCoder-7B-Base/resolve/refs%2Fpr%2F2/README.md
2.27 kB
| license: unknown | |
| base_model: | |
| - Qwen/Qwen2.5-Coder-7B | |
| tags: | |
| - code | |
| - text-diffusion-model | |
| - diffusion large language model | |
| ### DiffuCoder-7B-Base | |
| The DiffuCoder-7B-Base model is our foundational masked diffusion LLM for code generation. | |
| - Training recipe: Using [DiffuLLaMA](https://github.com/HKUNLP/DiffuLLaMA)'s adaptation approach, trained on a large corpus of code: with Stage 1 65B tokens and Stage 2 65B tokens. | |
| - Benchmarks: Strong baseline performance on HumanEval, MBPP and BigCodeBench. | |
| #### More details and usage examples: | |
| - Paper: [DiffuCoder: Understanding and Improving Masked Diffusion Models for Code Generation](https://arxiv.org/abs/2506.20639) | |
| - GitHub: https://github.com/apple/ml-diffucoder | |
| ``` | |
| import torch | |
| from transformers import AutoModel, AutoTokenizer | |
| model_path = "apple/DiffuCoder-7B-Base" | |
| model = AutoModel.from_pretrained(model_path, torch_dtype=torch.bfloat16, trust_remote_code=True) | |
| tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True) | |
| model = model.to("cuda").eval() | |
| prompt = """ | |
| from typing import List | |
| def has_close_elements(numbers: List[float], threshold: float) -> bool: | |
| \"\"\" | |
| Check if in given list of numbers, are any two numbers closer to each other than given threshold. | |
| >>> has_close_elements([1.0, 2.0, 3.0], 0.5) | |
| False | |
| >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3) | |
| True | |
| \"\"\" | |
| """ | |
| TOKEN_PER_STEP = 1 # diffusion timesteps * TOKEN_PER_STEP = total new tokens | |
| inputs = tokenizer(prompt, return_tensors="pt") | |
| input_ids = inputs.input_ids.to(device="cuda") | |
| attention_mask = inputs.attention_mask.to(device="cuda") | |
| output = model.diffusion_generate( | |
| input_ids, | |
| attention_mask=attention_mask, | |
| max_new_tokens=256, | |
| output_history=True, | |
| return_dict_in_generate=True, | |
| steps=256//TOKEN_PER_STEP, | |
| temperature=0.2, | |
| top_p=0.95, | |
| alg="entropy", | |
| alg_temp=0., | |
| ) | |
| generations = [ | |
| tokenizer.decode(g[len(p) :].tolist()) | |
| for p, g in zip(input_ids, output.sequences) | |
| ] | |
| print(generations[0].split(tokenizer.eos_token)[0]) | |
| ``` | |
| #### Acknowledgement | |
| To power this HuggingFace model release, we reuse [Dream](https://huggingface.co/Dream-org/Dream-v0-Base-7B)'s modeling architecture and generation utils. |