当前位置: 首页 > news >正文

【数据合成】Socratic-Zero 自动合成数据 指导课程学习

Socratic-Zero能自动合成训练数据,帮助模型进行“易错题”的深入学习,并对“简单题”进行延展,帮助模型全面提升能力,在数学类题目上收获了很好的成绩,相信这一方法也能用于其他题目的学习。

Socratic-Zero 论文深度解读:数据构造、训练机制与多智能体协作

本文面向专业计算机工程师,系统解析《Socratic-Zero: Bootstrapping Reasoning via Data-Free Agent Co-evolution》中数据构造机制的核心设计。我们将聚焦三点:

  1. 三个智能体(Teacher、Solver、Generator)如何协同构造高质量训练数据
  2. 训练方法的数学形式化表达与实现细节
  3. 关键实验发现及其工程启示

所有引用均来自原文(arXiv:2509.24726),并辅以精准中文翻译与技术解读。


1. 三智能体协作机制:一个闭环的“苏格拉底式”数据工厂

Socratic-Zero 的核心创新在于构建了一个无需外部标注、仅靠100个种子问题即可自举高质量数学推理数据的闭环系统。该系统由三个角色构成,其协作逻辑可概括为:

Solver 犯错 → Teacher 诊断并出新题 → Generator 学会出题 → 新题喂给 Solver → 循环提升

1.1 Solver:推理执行者,通过偏好学习进化

  • 角色定义:Solver 是待训练的模型(如 Qwen3-8B),其策略为 πθS(y∣q)\pi_{\theta_S}(y|q)πθS(yq),将问题 qqq 映射为推理轨迹 yyy
  • 训练信号来源:它不依赖人工标签,而是从 正确 vs 错误解法的偏好对 中学习。
  • 关键机制:对每个问题 qqq,Solver 生成 k=8k=8k=8 条解法轨迹 {yS(i)}i=1k\{y_S^{(i)}\}_{i=1}^k{yS(i)}i=1k。Teacher 的验证函数 V(q,y)∈{0,1}V(q, y) \in \{0,1\}V(q,y){0,1} 将其分为:
    • 胜者集(winning):Yw(q)={y∣V(q,y)=1}∪{yref}Y_w(q) = \{ y \mid V(q,y)=1 \} \cup \{y_{\text{ref}}\}Yw(q)={yV(q,y)=1}{yref}(若全错,则用参考解)
    • 败者集(losing):Yl(q)={y∣V(q,y)=0}Y_l(q) = \{ y \mid V(q,y)=0 \}Yl(q)={yV(q,y)=0}
  • 训练目标:使用 DPO(Direct Preference Optimization) 最大化胜者相对于败者的对数似然比:
    LDPO=−Eq,yw,yl[log⁡σ(βlog⁡πθS(yw∣q)πθref(yw∣q)−βlog⁡πθS(yl∣q)πθref(yl∣q))] \mathcal{L}_{\text{DPO}} = -\mathbb{E}_{q, y_w, y_l} \left[ \log \sigma\left( \beta \log \frac{\pi_{\theta_S}(y_w|q)}{\pi_{\theta_{\text{ref}}}(y_w|q)} - \beta \log \frac{\pi_{\theta_S}(y_l|q)}{\pi_{\theta_{\text{ref}}}(y_l|q)} \right) \right] LDPO=Eq,yw,yl[logσ(βlogπθref(ywq)πθS(ywq)βlogπθref(ylq)πθS(ylq))]
    其中 πθref\pi_{\theta_{\text{ref}}}πθref 是迭代开始时的冻结策略,β\betaβ 为温度系数。

原文佐证:“The Solver’s policy πθS\pi_{\theta_S}πθS is improved through online preference learning… updated using the Direct Preference Optimization (DPO) loss”(Section 3.2)。

1.2 Teacher:固定专家,负责诊断与出题

  • 角色定义:Teacher 是一个冻结的、高能力 LLM(如 Qwen3-235B),不参与训练,仅提供两个确定性函数:
    1. 验证函数 V(q,y)V(q, y)V(q,y):判断解法是否正确;
    2. 问题精炼函数 G(q,yfail)→(q′,yref′)G(q, y_{\text{fail}}) \to (q', y'_{\text{ref}})G(q,yfail)(q,yref):基于 Solver 的错误解法 yfaily_{\text{fail}}yfail,生成一个新问题 q′q'q 及其参考解。
  • 出题策略:不是随机增强,而是针对性地暴露 Solver 的弱点
    • 若原题 Solver 偶尔能解(0<sq<10 < s_q < 10<sq<1),则基于其错误尝试生成新题,直击错误根源;
    • 若原题 Solver 已掌握(sq=1s_q = 1sq=1),则基于其正确解法生成更难变体。

原文例子(E.1 节)

  • 原题:“求满足 2x−3x+5≥2\frac{2x-3}{x+5} \geq 2x+52x32 的所有实数 xxx(区间表示)。”
  • 增强题(第3轮):“求满足 2x−5x2−9+1x+3≤4x+1(x−3)2\frac{2x-5}{x^2-9} + \frac{1}{x+3} \leq \frac{4x+1}{(x-3)^2}x292x5+x+31(x3)24x+1 的所有实数 xxx。”
  • 增强分析:“引入多个复杂因子:(1) 需要定义域分析的因式分母,(2) 多个有理项需通分,(3) 分母含平方项,(4) 更复杂的代数操作。该题针对学生在有理不等式求解中的常见错误。”

此例清晰展示了 Teacher 如何将一个简单分式不等式,升级为考察定义域、通分、符号判断、代数变形的综合题,且直接源于 Solver 的失败模式

1.3 Generator:可扩展的“教师学徒”,学习出题策略

  • 角色定义:Generator 是一个可训练模型(如 Qwen3-32B),目标是模仿 Teacher 的出题行为,从而实现低成本、大规模数据生成
  • 训练方法:采用 价值加权监督微调(Weighted Supervised Fine-Tuning, WSFT)
  • 核心思想:并非所有 Teacher 生成的问题都同等重要。Generator 应优先学习那些对当前 Solver 难度适中的问题。
  • 价值函数设计
    U(q′∣πθS)=exp⁡(−(sq′−μ)22σ2) U(q' | \pi_{\theta_S}) = \exp\left( -\frac{(s_{q'} - \mu)^2}{2\sigma^2} \right) U(qπθS)=exp(2σ2(sqμ)2)
    其中 sq′s_{q'}sq 是 Solver 在 q′q'q 上的成功率,μ=0.5\mu=0.5μ=0.5 表示目标难度为“50%成功率”(即最近发展区),σ=0.2\sigma=0.2σ=0.2 控制容忍度。
  • 训练目标
    LWSFT=−E(q,yfail,q′)∼DG[U(q′∣πθS)⋅log⁡πθG(q′∣q,yfail)] \mathcal{L}_{\text{WSFT}} = -\mathbb{E}_{(q, y_{\text{fail}}, q') \sim \mathcal{D}_G} \left[ U(q'|\pi_{\theta_S}) \cdot \log \pi_{\theta_G}(q' | q, y_{\text{fail}}) \right] LWSFT=E(q,yfail,q)DG[U(qπθS)logπθG(qq,yfail)]
    即:高价值(难度适中)的问题在损失函数中权重更高

原文佐证:“The Generator is trained via weighted supervised fine-tuning (WSFT) to mimic the Teacher’s generation of high-utility problems… incentivize problems at the frontier of the Solver’s capabilities”(Section 3.3)。

1.4 三智能体协作的典型实例(来自原文)

为帮助读者直观理解 Socratic-Zero 中三个智能体如何协同工作,我们从原文附录 E 中摘取两个典型增强案例,并还原其协作流程。

示例 1:有理不等式的针对性增强(原文 E.1)

  • 原始问题(Solver 失败)
    “求满足 2x−3x+5≥2\frac{2x - 3}{x + 5} \geq 2x+52x32 的所有实数 xxx(区间表示)。”

  • Solver 的典型错误
    忽略分母符号对不等式方向的影响,或未正确处理定义域 x≠−5x \neq -5x=5

  • Teacher 的诊断与增强(第3轮):
    生成新题:“求满足 2x−5x2−9+1x+3≤4x+1(x−3)2\frac{2x - 5}{x^2 - 9} + \frac{1}{x + 3} \leq \frac{4x + 1}{(x - 3)^2}x292x5+x+31(x3)24x+1 的所有实数 xxx。”

  • 增强分析(原文翻译)

    “该增强引入多重复杂性因子:(1) 因式分解的分母要求定义域分析;(2) 多个有理项需通分;(3) 分母含平方项;(4) 更复杂的代数操作。新题精准针对学生在有理不等式求解中的常见错误,同时保留核心数学概念。”

  • Generator 的学习目标
    通过 WSFT 学习 Teacher 的这种“从错误中提炼结构性难点”的出题策略,而非简单增加数值复杂度。

示例 2:数论问题的结构迁移(原文 E.2)

  • 原始问题
    “求 gcd⁡(10!+6, 11!+14)\gcd(10! + 6,\ 11! + 14)gcd(10!+6, 11!+14)。”

  • Solver 的失败模式
    无法识别 11!=11×10!11! = 11 \times 10!11!=11×10! 的关系,导致无法使用欧几里得算法简化。

  • Teacher 的增强
    “求 gcd⁡(12!+8, 13!+26)\gcd(12! + 8,\ 13! + 26)gcd(12!+8, 13!+26),其中第二个数可写为 13⋅12!+2613 \cdot 12! + 261312!+26。”

  • 增强意图
    保持 GCD 结构不变,但提升阶乘规模,并显式提示关系,迫使 Solver 主动应用模运算与递推思想。


2. 训练过程详解:从偏好学习到价值加权蒸馏

Socratic-Zero 的训练是一个三阶段交替优化过程,每轮迭代包含 Solver 的在线策略更新、Teacher 的课程增强、Generator 的离线策略蒸馏。以下按执行顺序展开。

2.1 初始化:种子课程与 SFT 基线

  • 种子选择:从 MATH 数据集选取 100 个 Level 2–4 问题,覆盖 7 个数学子领域(见 Table 8),确保初始课程既非过易也非过难。
  • Solver 预训练:所有 Solver(如 Qwen3-8B)先在 1,500 个 Level 5 问题上进行 LoRA 微调(SFT),学习基础推理格式(如分步推导、答案框定)。
    【我认为,此步至关重要。Table 6a 显示,无 SFT 的 Solver 三轮后仅提升 2.34%,而有 SFT 则提升 18.38%。这说明 RL 阶段依赖 SFT 提供的“推理语法骨架”,否则偏好信号过于稀疏。】

2.2 Solver 训练:基于 DPO 的在线偏好优化

对当前课程 Dt={(q,yref)}D_t = \{(q, y_{\text{ref}})\}Dt={(q,yref)} 中的每个问题 qqq

  1. 轨迹采样:Solver 生成 k=8k=8k=8 条独立解法 {yS(i)}i=1k\{y_S^{(i)}\}_{i=1}^k{yS(i)}i=1k(温度 T=0.7T=0.7T=0.7)。
  2. 正确性验证:Teacher 的验证函数 V(q,y)∈{0,1}V(q, y) \in \{0,1\}V(q,y){0,1} 对每条轨迹打分。
  3. 构建偏好对
    • 败者集:Yl(q)={yS(i)∣V(q,yS(i))=0}Y_l(q) = \{ y_S^{(i)} \mid V(q, y_S^{(i)}) = 0 \}Yl(q)={yS(i)V(q,yS(i))=0}
    • 胜者集:Yw(q)={yS(i)∣V(q,yS(i))=1}∪{yref}Y_w(q) = \{ y_S^{(i)} \mid V(q, y_S^{(i)}) = 1 \} \cup \{ y_{\text{ref}} \}Yw(q)={yS(i)V(q,yS(i))=1}{yref}(若全错,则用参考解)
  4. DPO 优化:最小化以下损失:
    LDPO=−Eq,yw,yl[log⁡σ(β(log⁡πθS(yw∣q)πθref(yw∣q)−log⁡πθS(yl∣q)πθref(yl∣q)))] \mathcal{L}_{\text{DPO}} = -\mathbb{E}_{q, y_w, y_l} \left[ \log \sigma\left( \beta \left( \log \frac{\pi_{\theta_S}(y_w|q)}{\pi_{\theta_{\text{ref}}}(y_w|q)} - \log \frac{\pi_{\theta_S}(y_l|q)}{\pi_{\theta_{\text{ref}}}(y_l|q)} \right) \right) \right] LDPO=Eq,yw,yl[logσ(β(logπθref(ywq)πθS(ywq)logπθref(ylq)πθS(ylq)))]
    其中 πθref\pi_{\theta_{\text{ref}}}πθref 是本轮开始时的冻结策略,β=0.05∼0.2\beta=0.05\sim0.2β=0.050.2(见 Table 7)。

关键设计:即使 Solver 全错,仍能构造有效偏好对(参考解 vs 错误解),避免训练中断。

2.3 Teacher 行为:动态课程增强

Teacher(固定 Qwen3-235B)基于 Solver 失败案例 (q,yfail)(q, y_{\text{fail}})(q,yfail) 执行:

  • 问题分类(Appendix C.1):

    • sq=0s_q = 0sq=0(全错):暂不生成,避免过难;
    • 0<sq<10 < s_q < 10<sq<1(部分正确):用 错误解 yfaily_{\text{fail}}yfail 作为输入,生成纠错型新题
    • sq=1s_q = 1sq=1(全对):用 正确解 ysuccy_{\text{succ}}ysucc 作为输入,生成进阶型新题
  • 增强函数 GGG:调用 A.3 中的 Prompt,要求:

    “基于错误分析生成增强问题,提供完整解答,确保可解性与正确性,针对具体错误点,保持数学本质。”

  • 输出:新问题-解对 (q′,yref′)=G(q,yfail)(q', y'_{\text{ref}}) = G(q, y_{\text{fail}})(q,yref)=G(q,yfail),加入 DnewD_{\text{new}}Dnew

2.4 Generator 训练:价值加权监督微调(WSFT)

目标:让 Generator πθG(q′∣q,yfail)\pi_{\theta_G}(q'|q, y_{\text{fail}})πθG(qq,yfail) 学会模仿 Teacher 的高价值出题行为,从而摆脱对昂贵、固定 Teacher 模型的持续依赖。在训练中,Generator 的数据并不会直接使用,未来不熟的时候有可能会用到

  1. 构建训练集
    DG={(q,yfail,q′)∣(q,yfail)∈Ft, (q′,yref′)=G(q,yfail)} \mathcal{D}_G = \{ (q, y_{\text{fail}}, q') \mid (q, y_{\text{fail}}) \in F_t,\ (q', y'_{\text{ref}}) = G(q, y_{\text{fail}}) \} DG={(q,yfail,q)(q,yfail)Ft, (q,yref)=G(q,yfail)}

  2. 定义问题价值(Utility):

    • 用更新后的 Solver 评估新题 q′q'q 的成功率 sq′=1k∑i=1kV(q′,yS(i))s_{q'} = \frac{1}{k} \sum_{i=1}^k V(q', y_S^{(i)})sq=k1i=1kV(q,yS(i))
    • 价值函数(高斯):
      U(q′∣πθS)=exp⁡(−(sq′−μ)22σ2),μ=0.5, σ=0.2 U(q'|\pi_{\theta_S}) = \exp\left( -\frac{(s_{q'} - \mu)^2}{2\sigma^2} \right),\quad \mu=0.5,\ \sigma=0.2 U(qπθS)=exp(2σ2(sqμ)2),μ=0.5, σ=0.2
      即:50% 成功率的问题价值最高
  3. WSFT 损失
    LWSFT=−E(q,yfail,q′)∼DG[U(q′∣πθS)⋅log⁡πθG(q′∣q,yfail)] \mathcal{L}_{\text{WSFT}} = -\mathbb{E}_{(q, y_{\text{fail}}, q') \sim \mathcal{D}_G} \left[ U(q'|\pi_{\theta_S}) \cdot \log \pi_{\theta_G}(q' | q, y_{\text{fail}}) \right] LWSFT=E(q,yfail,q)DG[U(qπθS)logπθG(qq,yfail)]
    高价值样本在梯度更新中占更大权重。

实验验证(Table 6b):μ=0.5\mu=0.5μ=0.5 时性能最优(35.72%),偏离后下降,证明“最近发展区”假设成立。

2.5 课程更新与重分类

  • 新课程Dt+1=Dt∪DnewD_{t+1} = D_t \cup D_{\text{new}}Dt+1=DtDnew
  • 历史回放:每批训练包含 25% 历史问题,防止灾难性遗忘(Table 7)。
  • 动态重分类:所有问题按新 Solver 的 sqs_qsq 重新划入 Mastered / Learning / Difficult 区(Appendix C.3),指导下一轮增强方向。

【我认为,该框架的课程进化机制极为精巧,但依赖 Teacher 的强验证能力。若将 Teacher 替换为弱模型,可能因误判导致错误增强。一个潜在改进是引入“验证置信度”或多个 Teacher 投票机制,提升鲁棒性。】

2.6 三区机制:动态课程调度的核心

Socratic-Zero 将课程中每个问题 qqq 按 Solver 成功率 sq=1k∑i=1kV(q,yS(i))s_q = \frac{1}{k}\sum_{i=1}^k V(q, y_S^{(i)})sq=k1i=1kV(q,yS(i)) 动态划分为三区(Appendix C.1):

  • Mastered 区sq=1s_q = 1sq=1):Solver 已掌握。
    → Teacher 基于正确解法生成更难题(如将 gcd⁡(10!+6,11!+14)\gcd(10!+6, 11!+14)gcd(10!+6,11!+14) 升级为 gcd⁡(12!+8,13!+26)\gcd(12!+8, 13!+26)gcd(12!+8,13!+26),见 E.2)。

  • Learning 区0<sq<10 < s_q < 10<sq<1):Solver 偶尔成功,存在可纠错误。
    → Teacher 基于错误解法生成针对性纠错题(如将简单分式不等式升级为需通分、分析定义域的复杂题,见 E.1)。

  • Difficult 区sq=0s_q = 0sq=0):Solver 完全失败。
    暂停增强,避免生成超纲题(Appendix C.2)。

原 Difficult 区问题可能随 Solver 进步进入 Learning 区,重新激活并开始进行学习(此时Solver面对一些原本不会做的题目,已经可以有所思路并开始学习了);Learning 区问题被掌握后转入 Mastered 区,用于进阶出题(即出一些更难的变体题目,让Solver的能力更上一层楼)。


3. 关键实验发现与工程启示

3.1 数据构造质量惊人

  • 有效性:仅用 100 个种子,Socratic-Generator-32B 生成的数据,让 8B 学生模型在7个数学基准上平均达到 37.72% 准确率,超越 GPT-5 (36.62%)、Claude-4.1-Opus (37.63%) 等商业巨头(Table 5)。
  • 问题有效性:生成问题的可解率(Validity Rate)达 95.6%,与 671B 的 DeepSeek-V3.1(96.5%)相当(Table 4)。

3.2 初始 SFT 至关重要

  • 消融实验(Table 6a)显示:若 Solver 未经 SFT 初始化,三轮训练后仅从 9.64% 提升至 11.98%;而经 SFT 后,可提升至 28.02%
  • 启示:SFT 提供了基础推理“语法”,RL 阶段在此之上优化“策略”。跳过 SFT 会导致 RL 信号稀疏且无效

3.3 高斯价值函数最优

  • 实验对比了线性奖励和不同 μ\muμ 的高斯函数,发现 μ=0.5\mu=0.5μ=0.5 时性能最佳(35.72%),偏离后性能下降(Table 6b)。
  • 证明:“50% 成功率”确实是模型学习效率最高的难度点。

【我认为,论文未探讨价值函数的在线自适应调整。例如,随着 Solver 能力提升,μ\muμ 是否应动态下调?这可能是未来提升样本效率的方向。】


总结

Socratic-Zero 通过 Solver(执行)- Teacher(诊断/出题)- Generator(学出题) 的三元闭环,实现了完全自主、高质量、可扩展的数学推理数据构造。其核心在于:

  • 以错误为燃料:Solver 的失败是课程进化的唯一驱动力;
  • 以难度为标尺:通过价值函数确保新数据始终处于学习前沿;
  • 以模仿为杠杆:Generator 将昂贵的 Teacher 能力蒸馏为可复用的出题策略。

该框架不仅在性能上超越了依赖海量人工数据的传统方法,更提供了一种数据高效、模型自主进化的新范式,对资源受限场景下的大模型训练具有重大工程价值。

在 Socratic-Zero 框架中,将课程中的问题动态划分为 Mastered(掌握区)Learning(学习区)Difficult(困难区) 三个区域,是实现自适应课程进化(adaptive curriculum evolution)的核心机制。其作用可从以下三个层面理解:


1. 指导 Teacher 的增强策略:精准出题

Teacher 并非对所有失败问题一视同仁地增强,而是根据问题所属区域采取不同策略(Appendix C.2):

  • Learning 区0<sq<10 < s_q < 10<sq<1):
    Solver 偶尔能解,说明已具备部分能力但存在特定错误模式
    → Teacher 基于 错误解法 yfaily_{\text{fail}}yfail 生成新题,针对性暴露并纠正该错误

    例(E.1):Solver 在分式不等式中忽略定义域 → Teacher 生成含多个因式分母、需通分的新题。

  • Mastered 区sq=1s_q = 1sq=1):
    Solver 已完全掌握,继续训练收益低。
    → Teacher 基于 正确解法 ysuccy_{\text{succ}}ysucc 生成更难变体,推动能力边界。

    例(E.2):Solver 能解 gcd⁡(10!+6,11!+14)\gcd(10!+6, 11!+14)gcd(10!+6,11!+14) → Teacher 升级为 gcd⁡(12!+8,13!+26)\gcd(12!+8, 13!+26)gcd(12!+8,13!+26),要求识别阶乘递推关系。

  • Difficult 区sq=0s_q = 0sq=0):
    Solver 完全无法解决,增强可能生成超纲难题,导致训练信号无效。
    暂不用于生成新题,避免课程难度失控(Appendix C.1)。

【我认为,这种“按区施策”机制极大提升了数据构造的教学有效性。传统方法(如随机增强)无法区分“可教之错”与“不可逾越之难”,而 Socratic-Zero 通过三区划分,确保每道新题都落在 Solver 的“最近发展区”。】


2. 保障课程难度动态平衡:避免过易或过难

三区划分使课程难度自动匹配 Solver 的当前能力

  • 若 Solver 能力提升,原 Difficult 区问题可能进入 Learning 区,重新激活增强;
  • 若增强过猛,Learning 区问题可能滑入 Difficult 区,系统自动暂停对其增强;
  • Mastered 区作为“能力基座”,持续提供进阶素材。

实验证据(Appendix J, Table 9):
Solver 的平均正确率从 Stage 1 的 52.1% 降至 Stage 2 的 48.7%,再回升至 Stage 3 的 50.1%。
这种“先降后升”表明:Teacher 的增强主动拉高难度,而 Solver 通过训练逐步适应,形成良性对抗。


3. 支撑 Generator 的价值学习:定义“好问题”标准

Generator 的价值函数 U(q′)=exp⁡(−(sq′−μ)22σ2)U(q') = \exp(-\frac{(s_{q'} - \mu)^2}{2\sigma^2})U(q)=exp(2σ2(sqμ)2) 依赖对 sq′s_{q'}sq(新题成功率)的评估,而 sq′s_{q'}sq 的计算直接基于三区划分逻辑

  • 目标:生成 sq′≈0.5s_{q'} \approx 0.5sq0.5 的问题(即 Learning 区中心);
  • 实现:通过三区动态重分类(Appendix C.3),确保价值函数始终以最新 Solver 能力为基准。

消融实验(Table 6b):
μ=0.5\mu=0.5μ=0.5 时性能最优(35.72%),偏离后下降,证明 Learning 区 = 最优训练区


总结:三区是“智能课程调度器”

区域Solver 成功率 sqs_qsqTeacher 行为教学目的
Masteredsq=1s_q = 1sq=1基于正确解生成更难题拓展能力上限
Learning0<sq<10 < s_q < 10<sq<1基于错误解生成纠错题修复具体弱点
Difficultsq=0s_q = 0sq=0暂停增强避免无效训练

这一机制将哲学层面的“苏格拉底式提问”转化为可计算的动态课程调度策略,是 Socratic-Zero 仅用 100 个种子问题就实现超越商业大模型性能的关键所在。

http://www.dtcms.com/a/525844.html

相关文章:

  • 2024包河初中组
  • “我店 + 微团“ 如何做到 “高频带低频“?拆解用户终身价值挖掘路径
  • 企业网站内容模块站酷官网入口
  • 沈阳做一个网站需要多少钱做c语言题目的网站
  • 涪城移动网站建设分销平台搭建
  • 想做个网站 怎么做建设企业网站电话
  • 网站优化推广公司织梦电影网站源码
  • 企业签合同,已进入“快签时代”
  • 【小白笔记】两数之和
  • 个人域名网站可以做企业站吗无广告自助建站
  • 网站下载的wordpress模板如何添加05网英语书
  • 从零使用vue脚手架开发一个简易的计算器
  • 兰州做网站价格网站开发成本计算
  • 1024水个贴
  • 怎么将自己做的网站放到网上seo外链推广平台
  • 产品策划书模板南昌seo排名
  • 韩国做美食的视频网站购物网站首页界面设计
  • 做海报图片的网站丽江网站开发
  • 深圳建设网站联系电话手机商城积分兑换
  • 网站程序元郑州网络推广公司排名
  • 福建南平网站建设厦门建设局官网首页
  • AI辅助需求分析:AI大模型将自然语言需求转化为技术规格
  • Unreal从入门到精通之虚幻引擎如何做测试和测试驱动开发
  • 自用提示词01 || Prompt Engineering || 学习路线大纲 || 作用:通过启发式的问题来带动学习
  • 网上免费注册网站事件营销的步骤
  • 那个合作网站做360推广比较好应用商店app下载安装最新版
  • 奇异值分解(SVD):数据科学的“瑞士军刀“
  • 服装网站搭建计划书基础微网站开发代理
  • 西安响应式网站建设服务提供商泉州关键词自动排名
  • Qt QProcess基于Linux的命令管道符号无效问题【已解决】