Dedicated Endpoints

Run this model inference on single tenant GPU with unmatched speed and reliability at scale.

Learn more
Container

Run this model inference with full control and performance in your environment.

Learn more

Get help setting up a custom Dedicated Endpoints.

Talk with our engineer to get a quote for reserved GPU instances with discounts.

README

License: mit

Introduction

NextCoder is the latest series of Code-Editing large language models developed using the Qwen2.5-Coder Instruct variants as base and trained with novel Selective Knowledge Transfer finetuning methodology as introduced in the paper. NextCoder family model comes in 3 different sizes 7, 14, 32 billion parameters, to meet the needs of different developers. Following are the key improvements:

  • Significantly improvements in code editing, NextCoder-32B has performing on par with GPT-4o on complex benchmarks like Aider-Polyglot with performance increment of 44% from their base model.
  • No loss of generalizibility, due to our new finetuning method SeleKT
  • Long-context Support up to 32K tokens.

This repo contains the NextCoder-7B model, which has the following features:

  • Type: Causal Language Models
  • Training Stage: Post-training with SeleKT
  • Architecture: transformers with RoPE, SwiGLU, RMSNorm, and Attention QKV bias
  • Number of Parameters: 7.61B
  • Number of Paramaters (Non-Embedding): 6.53B
  • Number of Layers: 28
  • Number of Attention Heads (GQA): 28 for Q and 4 for KV

For more details, please refer to our blog, GitHub, Paper.

Requirements

The code of NextCoder is based on Qwen2.5 base models which has been in the latest Hugging face transformers and we advise you to use the latest version of transformers.

With transformers<4.37.0, you will encounter the following error:

markdown

KeyError: 'qwen2'

Quickstart

Here provides a code snippet with apply_chat_template to show you how to load the tokenizer and model and how to generate contents.

python

from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "microsoft/NextCoder-7B"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = """
Fix the following function that divides two numbers to handle all the edge cases:
def divide(a, b)
returm a/b
"""
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

Evaluation and Performance

ModelsHUMANEVALFIXCANITEDITAIDERPOLYGLOT
QwenCoder-2.5-3B73.237.136.8-
QwenCoder-2.5-3B-LoRA64.636.235.8-
QwenCoder-2.5-3B-SFT76.232.430.1-
NextCoder-3B75.642.437.6-
QwenCoder-2.5-7B73.848.159.4-
QwenCoder-2.5-7B-LoRA70.744.340.6-
QwenCoder-2.5-7B-SFT70.136.748.9-
NextCoder-7B81.150.565.7-
QwenCoder-2.5-14B87.858.166.99.3
QwenCoder-2.5-14B-LoRA78.050.966.25.3
QwenCoder-2.5-14B-SFT79.942.436.83.1
NextCoder-14B89.860.272.212.2
QwenCoder-2.5-32B90.261.072.916.4
QwenCoder-2.5-32B-LoRA82.352.460.26.7
QwenCoder-2.5-32B-SFT81.749.566.98.4
NextCoder-32B88.962.474.723.6

Comparison of base QwenCoder-2.5 models of different sizes and their SELEKT-enhanced versions across three code editing benchmarks.

Detailed evaluation results are reported in this 📑 paper.

Responsible AI Use

The base models (from the QwenCoder-2.5 family) are suspectible to malicious prompts and may generate or execute harmful code. Our finetuning does not enhance or impede such behaviors. The users should use the models and their outputs responsibly and with caution. Model outputs should be subjected to additional analysis, including manual inspection, and sandboxing before execution.

Citation

bibtex

@inproceedings{aggarwal2025nextcoder,
author = {Aggarwal, Tushar and Singh, Swayam and Awasthi, Abhijeet and Kanade, Aditya and Natarajan, Nagarajan},
title = {NextCoder: Robust Adaptation of Code LMs to Diverse Code Edits},
booktitle = {International Conference on Machine Learning},
year = {2025},
url = {https://www.microsoft.com/en-us/research/publication/nextcoder-robust-adaptation-of-code-lms-to-diverse-code-edits/},
}

Model provider

microsoft

microsoft

Model tree

Base

Qwen/Qwen2.5-Coder-7B-Instruct

Fine-tuned

this model

Modalities

Input

Text

Output

Text

Pricing

Dedicated Endpoints

View details

Supported Functionality

Model APIs

Dedicated Endpoints

Container

More information

Explore FriendliAI today