🚀 NextCoder-7B GGUF模型
NextCoder-7B GGUF模型基於Qwen2.5-Coder-7B-Instruct基礎模型生成,可用於代碼生成、對話等場景。本項目詳細介紹了模型的生成細節、量化方法,還提供了使用示例、評估結果等內容。
🚀 快速開始
環境要求
NextCoder的代碼基於Qwen2.5基礎模型,該模型已集成在最新的Hugging Face transformers
庫中,建議使用最新版本的transformers
。
若使用transformers<4.37.0
,會遇到以下錯誤:
KeyError: 'qwen2'
代碼示例
以下代碼展示瞭如何使用apply_chat_template
加載分詞器和模型,並生成內容:
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]
✨ 主要特性
- 代碼編輯能力強:在複雜基準測試(如Aider-Polyglot)中,NextCoder-32B的表現與GPT-4o相當,相較於基礎模型性能提升了44%。
- 泛化能力無損失:採用新的微調方法SeleKT,保證了模型的泛化能力。
- 長上下文支持:支持長達32K token的上下文。
📦 安裝指南
文檔未提及安裝步驟,可參考Hugging Face transformers
庫的官方文檔進行安裝。
💻 使用示例
基礎用法
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]
📚 詳細文檔
模型生成細節
本模型使用llama.cpp在提交版本5dd942de
下生成。
量化方法
嘗試了一種新的量化方法,可選擇性地提高關鍵層的精度,超越了默認IMatrix配置。在測試中,標準IMatrix量化在低比特深度下表現不佳,特別是對於混合專家(MoE)模型。為解決此問題,使用llama.cpp
中的--tensor-type
選項手動將重要層的精度提高。具體實現可參考👉 Layer bumping with llama.cpp。雖然這會增加模型文件的大小,但顯著提高了給定量化級別的精度。
模型選擇指南
點擊👉 選擇合適的GGUF模型格式 獲取相關信息。
模型信息
屬性 |
詳情 |
模型類型 |
因果語言模型 |
訓練階段 |
使用SeleKT進行後訓練 |
架構 |
具有RoPE、SwiGLU、RMSNorm和注意力QKV偏置的transformers架構 |
參數數量 |
76.1億 |
非嵌入參數數量 |
65.3億 |
層數 |
28 |
注意力頭數量(GQA) |
Q為28,KV為4 |
評估與性能
模型 |
HUMANEVALFIX |
CANITEDIT |
AIDER |
POLYGLOT |
QwenCoder-2.5-3B |
73.2 |
37.1 |
36.8 |
- |
QwenCoder-2.5-3B-LoRA |
64.6 |
36.2 |
35.8 |
- |
QwenCoder-2.5-3B-SFT |
76.2 |
32.4 |
30.1 |
- |
NextCoder-3B |
75.6 |
42.4 |
37.6 |
- |
QwenCoder-2.5-7B |
73.8 |
48.1 |
59.4 |
- |
QwenCoder-2.5-7B-LoRA |
70.7 |
44.3 |
40.6 |
- |
QwenCoder-2.5-7B-SFT |
70.1 |
36.7 |
48.9 |
- |
NextCoder-7B |
81.1 |
50.5 |
65.7 |
- |
QwenCoder-2.5-14B |
87.8 |
58.1 |
66.9 |
9.3 |
QwenCoder-2.5-14B-LoRA |
78.0 |
50.9 |
66.2 |
5.3 |
QwenCoder-2.5-14B-SFT |
79.9 |
42.4 |
36.8 |
3.1 |
NextCoder-14B |
89.8 |
60.2 |
72.2 |
12.2 |
QwenCoder-2.5-32B |
90.2 |
61.0 |
72.9 |
16.4 |
QwenCoder-2.5-32B-LoRA |
82.3 |
52.4 |
60.2 |
6.7 |
QwenCoder-2.5-32B-SFT |
81.7 |
49.5 |
66.9 |
8.4 |
NextCoder-32B |
88.9 |
62.4 |
74.7 |
23.6 |
不同大小的基礎QwenCoder-2.5模型及其SELEKT增強版本在三個代碼編輯基準測試中的比較。
詳細評估結果可參考📑 論文。
負責任的AI使用
基礎模型(來自QwenCoder-2.5系列)容易受到惡意提示的影響,可能會生成或執行有害代碼。微調不會增強或阻礙此類行為。用戶應負責任且謹慎地使用模型及其輸出。在執行模型輸出之前,應進行額外的分析,包括手動檢查和沙箱測試。
引用信息
@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/},
}
🔧 技術細節
文檔未提及技術實現細節。
📄 許可證
本項目採用MIT許可證。
🚀 模型測試邀請
測試內容
正在測試小型開源模型在AI網絡監控方面的極限,具體包括:
- 針對即時網絡服務的函數調用。
- 模型在處理以下任務時的最小規模:
- 自動化Nmap安全掃描。
- 量子就緒性檢查。
- 網絡監控任務。
測試模型
- TestLLM:當前的實驗模型(在Hugging Face Docker空間的2個CPU線程上運行llama.cpp):
- 零配置設置。
- 加載時間30秒(推理速度慢,但無API成本),由於成本低,無token限制。
- 尋求幫助:如果您對邊緣設備AI感興趣,歡迎合作!
- TurboLLM:使用gpt-4.1-mini:
- 性能出色,但OpenAI按token收費,因此token使用受限。
- 可創建自定義cmd處理器,在量子網絡監控代理上運行.net代碼。
- 即時網絡診斷和監控。
- 安全審計。
- 滲透測試(Nmap/Metasploit)。
- HugLLM:最新的開源模型:
- 在Hugging Face推理API上運行,使用Novita託管的最新模型,表現良好。
測試命令示例
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
"Create a cmd processor to .. (what ever you want)"
注意,需要安裝量子網絡監控代理才能運行.net代碼。這是一個非常靈活且強大的功能,請謹慎使用!
支持與貢獻
創建這些模型文件、運行量子網絡監控服務以及支付Novita和OpenAI的推理費用均由個人承擔。模型創建和量子網絡監控項目的所有代碼均為開源。如果您覺得這些工作有幫助,請考慮請我喝杯咖啡 ☕,您的支持將有助於支付服務成本並提高token限制。同時,也歡迎工作機會或贊助。
感謝您的支持!😊