头图

在代码生成与数学推理领域,大模型的能力边界不断被突破。最近,OpenCSG正式推出 OpenCSG-R1-Qwen2.5-Code-3B-V1——一个基于 Qwen2.5-Coder-3B-Instruct 微调的轻量级模型,专为代码生成与复杂问题解决设计!它结合去噪后的高质量数据集与先进的训练方法,在推理效率与逻辑严谨性上表现卓越。
图片

下载链接:

OpenCSG社区:
https://opencsg.com/models/AIWizards/OpenCSG-R1-Qwen2.5-Code-...
hf社区:https://huggingface.co/opencsg/OpenCSG-R1-Qwen2.5-Code-3B-V1

模型亮点

轻量高效,专注代码场景基于 Qwen2.5-Coder-3B-Instruct 微调,参数量仅 3B,适配消费级显卡,部署成本低,响应速度快。
去噪数据集训练使用 OpenThoughts-114k-Code_decontaminated 数据集,过滤低质量数据,提升模型生成可靠性。
GRPO 训练方法加持引入 DeepSeekMath 提出的 GRPO(梯度回传策略优化),强化模型对数学逻辑与代码结构的理解能力。

为什么选择AutoHub和OpenCSG-Qwen2.5-3B-GUI的结合?

训练方法:GRPO 的革新实践
本模型的核心训练方法采用了 GRPO(Gradient-based Return Policy Optimization),这一技术源自 DeepSeekMath 论文中对数学推理任务的优化策略。与传统的 PPO(Proximal Policy Optimization)相比,GRPO 在梯度更新机制上进行了创新:
梯度回传效率优化
GRPO 通过动态调整策略梯度回传的权重,优先强化模型在关键推理步骤(如数学公式推导、代码逻辑分支判断)的表现,而非均匀优化所有 token。这种聚焦式训练显著提升了模型对复杂问题的“关键路径”推理能力。
低资源适配性
传统 PPO 在小型模型(如 3B 参数量级)上容易因策略更新不稳定导致训练崩溃,而 GRPO 通过引入梯度裁剪阈值自适应机制,在有限算力下仍能保持稳定的收敛性,特别适合轻量级模型的微调场景。与代码生成任务的适配针对代码生成的特性(如严格的语法结构、长程依赖),GRPO 在损失函数中增加了代码结构一致性惩罚项。例如,当模型生成未闭合的代码块(如缺少括号、缩进错误)时,会触发更强的梯度修正信号,从而减少语法错误率。

数据集:OpenThoughts-114k-Code_decontaminated的精心构建
训练数据的质量直接影响模型性能。我们采用的 OpenThoughts-114k-Code_decontaminated 数据集,经历了严格的清洗与重构流程:
数据去噪技术
语法过滤使用 AST(抽象语法树)解析器对代码片段进行静态分析,剔除无法通过编译或存在高危操作(如无限循环、未处理异常)的样本,确保代码逻辑正确性。

语义对齐验证
通过对比问题描述与代码解决方案的语义一致性,利用 CodeBERT 模型计算文本-代码嵌入相似度,过滤“答非所问”的低质量数据。
多样性增强
对重复问题(如“排序数组”“反转链表”)进行去重,保留最优实现方案,并补充涵盖算法、数据结构、数学建模等 12 个领域的专项问题集。数据格式设计
数据集中的每条样本均遵循 “问题描述 → 分步推理 → 代码实现” 的统一结构


{
  "problem": "用 Python 实现快速排序算法,要求支持降序排列", 
  "deepseek_reasoning":"Okay, let's see. 我需要一个输入输出接口,和排序算法部分" 
  "deepseek_solution": "<think>快速排序的核心是分治策略:1. 选择基准值...需注意递归终止条件。</think><answer>def quick_sort(arr):\n    if len(arr) <= 1:\n        return arr\n    pivot = arr[len(arr)//2]\n    left = [x for x in arr if x > pivot]\n    middle = [x for x in arr if x == pivot]\n    right = [x for x in arr if x < pivot]\n    return quick_sort(left) + middle + quick_sort(right)</answer>"  
}

这种结构化设计让模型在训练时自然学会先推理后编码的思维链(Chain-of-Thought),输出结果可直接通过正则表达式提取 <think> 和 <answer> 内容,便于下游应用集成。 

快速上手:3行代码调用模型

只需以下几步,即可体验模型的代码生成能力:

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
import pandas as pd
model_name = "/data/project/pj/r1/opencsg-r1/open-r1/train/Qwen2.5-3B-Open-R1-Code-GRPO/checkpoint-150"
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=False)
df = pd.read_parquet('/data/project/pj/r1/opencsg-r1/OpenThoughts-114k-Code_decontaminated/train-00000-of-00006.parquet')
data = df['problem'][0]
messages = [
    {
        "role": "user",
         "content": f"Please help me solve the problem: {data}.Output the thinking process within the <think> </think> tags,and then return the final result within the <answer> </answer> tags.",
    },
    {
        "role": "assistant",
        "content": "Let's solve the problem step by step.\n<think>",
    },
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    continue_final_message=True,
    # add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=1024,
    temperature=0.6
)
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]
print(response)

 

总结

OpenCSG-R1-Qwen2.5-Code-3B-V1 以轻量化的设计、清晰的逻辑推理能力,成为开发者与教育领域的得力助手。无论是代码生成还是数学问题求解,它都能提供结构化、可解释的解决方案。立即访问 Hugging Face 仓库,体验高效推理的魅力!

🚀 立即尝试,解锁智能编程新体验!

OpenCSG开源社区介绍OpenCSG作为一家大模型开源社区,基于线上线下一体的CSGHub平台上开源了丰富的训练数据资产、模型资产可以供广大的爱好者免费获取。其中OpenCSG的 Open是开源开放;C 代表 Converged resources,整合和充分利用的混合异构资源优势,算力降本增效;S 代表 Software Refinement,重新定义软件的交付方式,通过大模型驱动软件开发,人力降本增效;G 代表 Generative LM,大众化、普惠化和民主化的可商用的开源生成式大模型。OpenCSG的愿景是让每个行业、每个公司、每个人都拥有自己的模型。我们坚持开源开放的原则,将OpenCSG的大模型软件栈开源到社区。欢迎使用、反馈和参与共建,欢迎关注和Star⭐️


OpenCSG
1 声望0 粉丝

OpenCSG 成立于2023年,致力于大模型生态社区建设,汇集人工智能行业上下游企业链,共同为大模型在垂直行业的应用提供平台产品和解决方案帮助企业在打造大模型及其应用落地的过程中的算力、人效多方面的降本增效。