Multilingual-Multimodal-NLP/LoopCoder-V2 · Hugging Face

Reddit r/LocalLLaMA 模型

摘要

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-EBigCodeBenchLiveCodeBenchSWE-bench VerifiedMulti-SWETerminal-BenchTerminal-Bench 2.0Mind2WebBFCL V3平均
基线,1 循环81.169.540.127.443.014.026.311.235.332.238.0
LoopCoder-v2,2 循环84.173.946.135.464.431.034.221.034.540.146.5
LoopCoder-v2,3 循环75.069.843.328.627.611.030.012.235.136.336.9
LoopCoder-v2,4 循环76.867.340.824.522.49.326.39.041.439.534.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}
}

相似文章

LoopCoder-v2:仅一次循环实现高效的测试时计算扩展

Hugging Face Daily Papers

LoopCoder-v2 提出了并行循环变换器(Parallel Loop Transformers,PLT),用于在代码生成中实现高效的测试时计算扩展,证明两次循环能带来显著增益,而更多循环则导致收益递减和位置错位成本。

Code2LoRA:超网络生成的适配器,用于软件演进中的代码语言模型

Hugging Face Daily Papers

Code2LoRA 引入了一个超网络,该超网络能够从代码仓库中一次性前向传播生成 LoRA 适配器,使得冻结的代码大语言模型无需额外 token 即可适应仓库上下文,并高效支持不断演进的代码库。此外,它还提供了 RepoPeftBench,一个用于仓库条件代码建模的基准测试。