Multilingual-Multimodal-NLP/LoopCoder-V2 · Hugging Face
摘要
LoopCoder-V2 是一个基于 Parallel Loop Transformer (PLT) 构建的 7B 参数指令调优代码模型,展示了非单调测试时扩展特性,其中两个循环提供了最佳的收益-成本权衡,并在代码生成和推理基准测试上显著优于基线模型。
查看缓存全文
缓存时间: 2026/06/17 19:19
Multilingual-Multimodal-NLP/LoopCoder-V2 · Hugging Face
Source: https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#loopcoder-v2LoopCoder-V2
LoopCoder-v2 是一个基于并行循环变换器(Parallel Loop Transformer,PLT)的 7B 指令微调代码模型。该模型通过重复应用共享 Transformer 模块来研究测试时计算缩放,同时保持参数数量固定。
发布的检查点是两循环 PLT 变体(plt_num_loops=2)。在随附的论文中,这种配置提供了最佳的收益-成本权衡:第二个循环提供了大部分有用的潜在细化,而额外循环则显示收益递减或更新不稳定。
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#highlights高亮特性
- 从零开始训练的 7B 密集 PLT 编码器,基于 18T 混合文本和代码数据。
- 使用匹配的有监督微调方案进行指令微调。
- 采用跨循环位置偏移和共享 KV 门控滑动窗口注意力。
- 面向代码生成、多语言代码、代码推理、代理软件工程和工具使用工作流。
- 论文中最强的循环次数配置:两个循环,并非更多。
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#model-details模型详情
| 项目 | 值 |
|---|---|
| 架构 | IQuestPLTCoderForCausalLM |
| 参数 | 约 7B |
| 隐藏层大小 | 5120 |
| 层数 | 14 共享层 |
| 注意力头数 | 40 |
| KV 头数 | 8 |
| 头维度 | 128 |
| 中间层大小 | 27648 |
| 激活函数 | SwiGLU |
| 归一化 | RMSNorm, epsilon 1e-5 |
| 位置嵌入 | RoPE, theta 500000 |
| 词表大小 | 76800 |
| 最大位置嵌入 | 131072 |
| 精度 | bfloat16 |
| PLT 循环数 | 2 |
| PLT 窗口大小 | 64 |
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#evaluation-summary评估摘要
以下展示论文中的部分结果。所有 LoopCoder-v2 变体均采用相同的 7B 共享参数设置和匹配的训练、微调及评估协议。
| 模型 | HumanEval+ | MultiPL-E | BigCodeBench | LiveCodeBench | SWE-bench Verified | Multi-SWE | Terminal-Bench | Terminal-Bench 2.0 | Mind2Web | BFCL V3 | 平均 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 基线,1 循环 | 81.1 | 69.5 | 40.1 | 27.4 | 43.0 | 14.0 | 26.3 | 11.2 | 35.3 | 32.2 | 38.0 |
| LoopCoder-v2,2 循环 | 84.1 | 73.9 | 46.1 | 35.4 | 64.4 | 31.0 | 34.2 | 21.0 | 34.5 | 40.1 | 46.5 |
| LoopCoder-v2,3 循环 | 75.0 | 69.8 | 43.3 | 28.6 | 27.6 | 11.0 | 30.0 | 12.2 | 35.1 | 36.3 | 36.9 |
| LoopCoder-v2,4 循环 | 76.8 | 67.3 | 40.8 | 24.5 | 22.4 | 9.3 | 26.3 | 9.0 | 41.4 | 39.5 | 34.3 |
论文的主要发现是 PLT 循环次数缩放是非单调的。两循环模型相比单循环基线有广泛提升,包括 SWE-bench Verified 从 43.0 提升至 64.4,Multi-SWE 从 14.0 提升至 31.0,而三个或更多循环则在许多任务上出现退化。
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#usage使用
此检查点使用自定义 PLT 模型架构。请在支持 IQuestPLTCoderForCausalLM 以及本仓库中自定义分词器/配置文件的环境中加载它。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo_id = "Multilingual-Multimodal-NLP/LoopCoder-V2"
tokenizer = AutoTokenizer.from_pretrained(repo_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
repo_id,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True,
)
messages = [
{"role": "user", "content": "Write a Python function that checks whether a string is a palindrome."}
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(
inputs,
max_new_tokens=512,
do_sample=True,
temperature=0.6,
top_p=0.95,
top_k=20,
)
print(tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True))
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#training-data训练数据
LoopCoder-v2 从零开始训练,基于内部去重后的文本和代码混合数据,总计 18T 令牌,文本与代码令牌比例为 1:1。代码部分涵盖超过 100 种编程语言。论文中报告的最大语言份额包括 Java、Python、JavaScript、Markdown、TypeScript、C、C++、PHP、C# 和 HTML。
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#intended-use预期用途
LoopCoder-v2 适用于代码生成、代码推理、仓库级软件工程辅助以及工具使用研究。它特别有助于研究在固定参数数量下循环潜在计算如何改变模型行为。
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#limitations局限性
LoopCoder-v2 可能生成不正确、不安全或不完整的代码,不得未经审查即用于生产系统。发布的模型针对编码和工具使用工作负载进行了优化;在无关的开放域任务上的性能可能有所不同。论文还表明,将 PLT 循环数增加到超过两循环配置可能会损害性能,因此应将此检查点视为推荐的循环数配置,而非证明更多循环总是更好的证据。
https://huggingface.co/Multilingual-Multimodal-NLP/LoopCoder-V2#citation引用
@misc{loopcoder_v2_2026,
title = {LoopCoder-v2: Only Loop Once for Efficient Test-Time Computation Scaling},
author = {Yang, Jian and Guo, Shawn and Zhang, Wei and Zheng, Tianyu and Du, Yaxin and Li, Haau-Sing and Wu, Jiajun and Song, Yue and Xing, Yan and Cai, Qingsong and Huang, Zelong and Hao, Chuan and Tao, Ran and Liu, Xianglong and Zhao, Wayne Xin and Tang, Mingjie and Lv, Weifeng and Zhou, Ming and Dai, Bryan},
year = {2026}
}
相似文章
@DorothyDDU: LoopCoder-v2 已发布 Loop Transformers 重复使用同一个块进行循环隐藏状态优化——让模型“思考”更多……
本文介绍了LoopCoder-v2,一个70亿参数的并行循环变换器系列,用于代码生成,并研究了最优循环次数,发现两个循环能带来显著提升,而更多循环则会导致性能下降。
LoopCoder-v2:仅一次循环实现高效的测试时计算扩展
LoopCoder-v2 提出了并行循环变换器(Parallel Loop Transformers,PLT),用于在代码生成中实现高效的测试时计算扩展,证明两次循环能带来显著增益,而更多循环则导致收益递减和位置错位成本。
@HuggingPapers: LoopCoder-v2 已发布。一个基于 18T token 训练的 7B 模型,仅用两次循环就在 SWE-bench Verified 上取得了 64.4 的高分,击败了...
LoopCoder-v2 是一个基于 18T token 训练的 7B 模型,仅用两次循环就在 SWE-bench Verified 上取得了 64.4 的成绩,性能超越 30 倍参数规模的模型。模型和代码已在 Hugging Face 上开源。
Code2LoRA:超网络生成的适配器,用于软件演进中的代码语言模型
Code2LoRA 引入了一个超网络,该超网络能够从代码仓库中一次性前向传播生成 LoRA 适配器,使得冻结的代码大语言模型无需额外 token 即可适应仓库上下文,并高效支持不断演进的代码库。此外,它还提供了 RepoPeftBench,一个用于仓库条件代码建模的基准测试。
@_akhaliq: Code2LoRA 软件演化下代码语言模型的超网络生成适配器
本文介绍了Code2LoRA,一种基于超网络的方法,用于生成代码语言模型的适配器,以应对软件演化中的挑战。