深入解读 s1 仓库中 GSM8K 评测任务:从 Chain-of-Thought 到 Self-Consistency 的完整实战指南
大模型推理模型微调模型推理服务【免费下载链接】s1s1: Simple test-time scaling项目地址https://gitcode.com/gh_mirrors/s1/s1点击查看免费下载导读本文以 GSM8K 任务说明文档 为主线系统讲解在 lm-evaluation-harness 中评测 GSM8K 数学应用题的全套方案。GSM8KGrade School Math 8K是用于检验语言模型多步数学推理能力的经典基准本仓库中的gsm8k任务族覆盖了普通生成、Chain-of-Thought思维链、Self-Consistency自洽性投票与 Llama 对齐格式共 4 种评测变体。读完本文你将掌握每个 YAML 任务的关键配置、答案抽取与精确匹配的过滤链路以及如何复现 Meta 官方 Llama-3.1 评测设置。一、GSM8K 是什么任务背景与数据集特点GSM8K 数据集源于论文Training Verifiers to Solve Math Word ProblemsCobbe 等人2021其核心论断是即便最先进的 Transformer 模型在许多任务上可以媲美人类但在多步数学推理上仍不稳健。为此论文发布了 GSM8K——一个包含8.5K 道高质量、语言多样化的初中数学应用题grade school math word problems的评测集用于诊断模型失败模式并支持相关研究。尽管该问题分布概念上很简单但论文发现即使是最大的 Transformer 模型也难以取得高测试成绩。在评测时注意GSM8K 官方实现提供了每个样本的计算器标注calculator annotations若要让你自己的语言模型在采样/生成函数中使用这些标注可参考官方 grade-school-math 仓库的calculator.py示例本仓库在 README 中给出了该提示但目前任务族中尚未内置计算器变体见文末 Wishlist 说明。本仓库的 GS8K 相关任务全部位于 eval/lm-evaluation-harness/lm_eval/tasks/gsm8k/ 目录共 5 个 YAML 配置文件。该目录对应的引用信息见 README 中的 Citation 块即上述论文的 BibTeX 条目。二、任务族总览Groups 与 Tasks 的组织结构在 lm-evaluation-harness 中任务通过 YAML 的tag字段与 Group 关联便于按组批量调度。本任务族涉及的三个 GroupGroup含义关联任务math_word_problems数学文字应用题组gsm8k、gsm8k_cot_zeroshotchain_of_thought思维链评测组gsm8k_cot及其变体self_consistency自洽性投票组gsm8k_cot_self_consistency四个核心 Task 变体Task 名说明gsm8k基础 5-shot 生成式评测使用 Question: ... Answer: 模板gsm8k_cot8-shot Chain-of-Thought 评测fewshot 示例内嵌完整推理步骤gsm8k_cot_self_consistency在 CoT 基础上开启 64 次采样 多数投票Maj64gsm8k_cot_llama提示格式对齐 Meta Llama-3.1 官方评测设置其中gsm8k_cot_llama是 README 中特别强调的变体其提示格式依照 Meta 的 Llama-3.1-8B-Instruct 评测设置调整使用该任务时须配合--fewshot_as_multiturn与--apply_chat_template两个命令行参数才能复现 Meta 官方报告的成绩。三、基础任务gsm8k5-shot 生成评测逐字段拆解gsm8k.yaml 是任务族的基石下面逐字段说明其作用tag: - math_word_problems task: gsm8k dataset_path: gsm8k dataset_name: main output_type: generate_until training_split: train fewshot_split: train test_split: test doc_to_text: Question: {{question}}\nAnswer: doc_to_target: {{answer}} metric_list: - metric: exact_match aggregation: mean higher_is_better: true ignore_case: true ignore_punctuation: false regexes_to_ignore: - , - \\$ - (?s).*#### - \\.$ generation_kwargs: until: - Question: - /s - |im_end| do_sample: false temperature: 0.0 repeats: 1 num_fewshot: 5 filter_list: - name: strict-match filter: - function: regex regex_pattern: #### (\\-?[0-9\\.\\,]) - function: take_first - name: flexible-extract filter: - function: regex group_select: -1 regex_pattern: (-?[$0-9.,]{2,})|(-?[0-9]) - function: take_first metadata: version: 3.0关键设计解读数据与划分dataset_path: gsm8k/dataset_name: main对应 HF 上的gsm8k数据集的main子集fewshot 从train划分采样最终在test划分上评测。提示模板doc_to_text将题目组装成Question: ...\nAnswer:期望模型续写出答案doc_to_target直接取数据集的answer字段数据集内答案形如答案\n#### 6####后为最终数值。生成设置generate_until型任务以until中的字符串Question:、/s、|im_end|作为停止符do_sample: false且temperature: 0.0即贪心解码保证可复现性。双路答案过滤这是 GSM8K 评测的精髓所在。filter_list定义两条独立打分管线filter评测时对每条 filter 分别计算指标strict-match用正则#### (\-?[0-9\.\,])在模型原始输出中寻找####之后的数值这与数据集答案格式一致然后take_first取第一个匹配flexible-extract用(-?[$0-9.,]{2,})|(-?[0-9])且group_select: -1取最后一组匹配从答案字段中柔性抽取数值容忍$、逗号、小数等格式差异。精确匹配指标exact_match聚合方式为meanhigher_is_better: trueignore_case: true忽略大小写regexes_to_ignore在比较前剔除逗号、美元符号、####之后的内容和末尾句点。四、Chain-of-Thought 变体gsm8k_cot与零样本触发词4.1 gsm8k_cot8-shot 思维链评测gsm8k-cot.yaml 将任务升级为显式思维链评测提示模板doc_to_text为Q: {{question}}\n\nA:fewshot 示例中每个target都包含完整的逐步推理如There are 15 trees originally. Then there were 21 trees after some more were planted. So there must have been 21 - 15 6. The answer is 6.从而引导模型输出中间推理过程。fewshot 来源使用fewshot_config.sampler: first_n直接内嵌 8 个精选示例不依赖外部 fewshot 采样逻辑保证示例稳定一致。答案目标doc_to_target使用表达式{{answer.split(####)[-1].strip() if answer is defined else target}}即优先取####后的数值部分作为参考答案回退到target字段。过滤strict-match 正则变为The answer is (\-?[0-9\.\,]).匹配模型输出中The answer is ...后的数字tag标记为chain_of_thoughtnum_fewshot: 8。4.2 gsm8k_cot_zeroshot零样本思维链触发gsm8k-cot-zeroshot.yaml 提供零样本评测选项num_fewshot: 0不注入任何示例doc_to_text: Q: {{question}}\nA: Lets think step by step.——通过追加经典的Lets think step by step 触发词在零样本条件下诱导模型展开推理其余配置生成、过滤、指标与gsm8k.yaml保持一致。该变体常用于快速验证模型原生推理能力或作为 CoT 能力的下限参考。五、Self-Consistency 变体Maj64 多数投票的实现细节gsm8k-cot-self-consistency.yaml 通过include: gsm8k-cot.yaml继承基座任务仅做三处关键改动generation_kwargs: until: - Q: - \n\n do_sample: true temperature: 0.2 repeats: 64 filter_list: - name: score-first filter: - function: regex regex_pattern: The answer is (\\-?[0-9\\.\\,]*[0-9]) - function: take_first - name: maj64 filter: - function: regex regex_pattern: The answer is (\\-?[0-9\\.\\,]*[0-9]) - function: majority_vote - function: take_first - name: maj8 filter: - function: take_first_k k: 8 - function: regex regex_pattern: The answer is (\\-?[0-9\\.\\,]*[0-9]) - function: majority_vote - function: take_firstSelf-Consistency 的完整链路如下采样阶段do_sample: true、temperature: 0.2开启随机采样repeats: 64让每个题目独立生成 64 条回答until增加\n\n作为额外停止符避免单条回答内出现多次推理块。三条并行打分管线score-first只取第 1 条回答作为单样本基线指标maj64对全部 64 条回答的抽取结果做majority_vote再take_first得到完整多数投票指标maj8先用take_first_kk8截取前 8 条回答再投票近似计算 Maj8YAML 注释也说明使用更优的估计器会更理想。上述 filter 的底层实现可以在本仓库源码中直接验证take_first / take_first_k / majority_vote 实现TakeFirstFilter.apply对每条 doc 的回答列表丢弃除第一个外的所有回答TakeKFilter会断言len(resps[0]) k否则报错提示增大TaskConfig.repeats并切片取前 k 条MajorityVoteFilter用Counter(resp).most_common(1)[0][0]选出出现次数最多的回答。regex 抽取实现RegexFilter用re.findall对每条回答匹配group_select指定取第几组匹配-1 取最后一组无匹配时返回默认 fallback[invalid]随后由take_first收敛为单个答案字符串。正是这套先抽取答案、再按答案字符串投票的管线让 Self-Consistency 在无需额外奖励模型的前提下显著提升 GSM8K 上的准确率——这是该评测变体在测试时扩展test-time scaling类工作中被广泛采用的原因。六、Llama 对齐变体复现 Meta 官方评测设置gsm8k-cot-llama.yaml 专门用于复现 Meta 在其 Llama-3.1-8B-Instruct-evals 数据集中报告的 GSM8K 成绩与gsm8k_cot的区别在于系统提示模板doc_to_text变为Given the following problem, reason and give a final answer to the problem.\nProblem: {{question}}\nYour response should end with \The final answer is [answer]\ where [answer] is the response to the problem.\n要求输出以The final answer is [answer]结尾示例目标格式fewshot 示例的target均以The final answer is 6这种句式收尾与抽取正则The final answer is ((-?[$0-9.,]{2,})|(-?[0-9]))完全对应停止符until加入 Llama 3 的对话标记|eot_id|与|start_header_id|user|end_header_id|确保生成在对话边界正确截断。使用前提如 README 所述运行该任务必须同时传入--fewshot_as_multiturn将 fewshot 示例按多轮对话组织和--apply_chat_template应用模型的 chat template否则提示格式与 Meta 官方设置不一致无法复现其报告的数字。七、运行方式与验证7.1 命令行运行示例在 lm-evaluation-harness 目录下以本地模型为例# 运行基础 5-shot GSM8K python -m lm_eval \ --model hf \ --model_args pretrainedyour-model \ --tasks gsm8k # 运行 CoT 变体 python -m lm_eval \ --model hf \ --model_args pretrainedyour-model \ --tasks gsm8k_cot # 运行 Self-Consistency64 次采样 Maj64耗时较长 python -m lm_eval \ --model hf \ --model_args pretrainedyour-model \ --tasks gsm8k_cot_self_consistency # 复现 Meta Llama-3.1 官方设置必须带两个额外参数 python -m lm_eval \ --model hf \ --model_args pretrainedyour-model,trust_remote_codeTrue \ --tasks gsm8k_cot_llama \ --fewshot_as_multiturn \ --apply_chat_template需要说明的适用前提以上命令以本仓库配套的 lm-evaluation-harnesslm_eval 主入口为准--fewshot_as_multiturn与--apply_chat_template为 v1.0 起支持的参数运行结果输出中gsm8k_cot_self_consistency会分别报告 score-first、maj64、maj8 三条指标。7.2 任务在仓库中的落位任务定义tasks/gsm8k/5 个 YAML过滤器实现filters/selection.pytake_first / take_first_k / majority_vote、filters/extraction.pyregex组Group元信息README 中列出了math_word_problems、chain_of_thought、self_consistency三个 Group同一 Group 机制也复用于 aime 任务族 等推理类任务。八、维护状态与变体 WishlistREADME 末尾的 Checklist 显示gsm8k任务族已纳入 Eval-harness v1.0但从 v1.0 回归检查与原论文方法等价性检查和主选变体标注三项尚未完成引用或复现时需留意。此外README 列出了三个尚未实现的变体方向Variant Wishlist可作为后续扩展参考带计算器Calculator的变体利用数据集的 calculator annotations官方 grade-school-math 的calculator.py提供了示例实现Verifier验证器变体对应论文标题Training Verifiers to Solve Math Word Problems的训练-验证范式无 CoT 的 Majority voting不借助思维链直接对答案做多数投票。这些方向在gsm8k_cot_self_consistency的 maj8/maj64 管线上已有雏形抽答案 投票只是尚未接入计算器与验证器。结语在 s1 仓库中gsm8k任务族是评测语言模型数学推理能力的标准入口gsm8k提供干净的 5-shot 基线gsm8k_cot与gsm8k_cot_zeroshot覆盖有/无示例的思维链评测gsm8k_cot_self_consistency通过 repeats64 与 majority_vote 过滤器实现测试时扩展而gsm8k_cot_llama则精确复现 Meta 官方口径。理解这 5 个 YAML 的字段语义与过滤器链路即可自行定制采样次数、温度与抽取正则将 GSM8K 评测无缝嵌入自己的推理能力对比实验中。赞分享大模型推理模型微调模型推理服务【免费下载链接】s1s1: Simple test-time scaling项目地址https://gitcode.com/gh_mirrors/s1/s1点击查看免费下载相关推荐OpenCompass 思维链Chain of Thought评测指南从零样本 CoT 到 Tree-of-Thoughts 的完整实战配置OpenCompass 思维链Chain of Thought评测指南从零样本 CoT 到 Tree of Thoughts 的完整实战配置 思维链Ch模型评测人工智能大模型AI 评测N_m3u8DL-RE一条命令搞定 MPD/M3U8/ISM 流媒体下载加密流、直播流都支持N_m3u8DL RE一条命令搞定 MPD/M3U8/ISM 流媒体下载加密流、直播流都支持 N_m3u8DL RE 是一款跨平台的流媒体下载工具MPD、CLI音视频s1 仓库 C-Eval 中文评测实现指南基于 lm-evaluation-harness 的 ceval-valid 任务组深度解析s1 仓库 C Eval 中文评测实现指南基于 lm evaluation harness 的 ceval valid 任务组深度解析 导读 本文以当前仓库中大模型推理模型微调模型推理服务上一篇零宕机指南Dgraph多区域部署的健康检查实践下一篇3步打造专属编辑界面wangEditor 5工具栏自定义完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OLS线性回归实战指南:从核心假设到残差诊断的完整流程

OLS线性回归实战指南:从核心假设到残差诊断的完整流程

1. 为什么我们还在用两百年前的OLS1.1 一个被低估的“老家伙”最小二乘法(Ordinary Least Squares,OLS)线性回归,这个名字听起来像是统计学课本里第一章就会出现的“老古董”。很多人学完就扔,觉得它太简单、太基础&am…

2026/10/9 5:11:21 阅读更多 →
SeaTunnel FieldMapper 字段映射转换:字段删减、重命名与顺序调整实战指南

SeaTunnel FieldMapper 字段映射转换:字段删减、重命名与顺序调整实战指南

数据工程大数据批处理流处理 【免费下载链接】seatunnel SeaTunnel is a next-generation super high-performance, distributed, massive data integration tool. 项目地址: https://gitcode.com/gh_mirrors/sea/seatunnel 点击查看 免费下载 本文以 SeaTunnel 官…

2026/10/9 5:11:21 阅读更多 →
DeepSeek API在RAG客服系统中的可信生成实践

DeepSeek API在RAG客服系统中的可信生成实践

简介:本资源是一份面向企业技术负责人、AI集成工程师与客服系统开发者的实战型技术文档,聚焦DeepSeek大模型API在知识管理与智能客服两大核心场景的工程化落地。文档系统拆解了从需求分析、架构设计、数据预处理、代码实现到测试优化的全流程&#xff0c…

2026/10/9 5:11:16 阅读更多 →

最新新闻

最新IPA在线签名系统源码 全开源版本

最新IPA在线签名系统源码 全开源版本

源码下载:download.csdn.net/download/m0_66047725/93654842简介:最新IPA在线签名系统源码 全开源版本基于Thinkphp8.0VUE3开发 配合Zsign工具签名前台vue 后台使用art design pro管理框架后台带软件源自动拉取支持自助签名 支持在线签名测试环境&…

2026/10/9 5:36:41 阅读更多 →
2026最新版短视频去水印+视频号去水印小程序版本源码

2026最新版短视频去水印+视频号去水印小程序版本源码

源码下载:download.csdn.net/download/m0_66047725/93654835简介:2026最新版短视频去水印+视频号去水印小程序版本源码图片:安装教程:环境:PHP7.4MySQL5.7域名:必须备案,申请SSL证书…

2026/10/9 5:36:41 阅读更多 →
【ENSP】技巧

【ENSP】技巧

ENSP文章合集: https://wwaul.lanzout.com/b01gid75ah 密码:4r01 设备可视化操作 连线 通常,我们使用auto自动链接,但他没法选择端口及线的类型,比如交换机和路由器之前的链接,默认使用了交换机的e 0/0/3口交换机的g 0…

2026/10/9 5:36:41 阅读更多 →
GitHub日榜高效刷法:从star陷阱到技术选型的避坑指南

GitHub日榜高效刷法:从star陷阱到技术选型的避坑指南

每天早上到工位,我第一件事不是查邮件,而是先打开GitHub的Trending页面,看一遍日期最接近的日榜。这个习惯保持了一两年,从中挖到过不少能直接落地到项目的库,也踩过不少看起来很美、实际中看不中用的坑。GitHub热榜说…

2026/10/9 5:36:41 阅读更多 →
随机化学算法在电网连锁故障N-k分析中的Matlab实现

随机化学算法在电网连锁故障N-k分析中的Matlab实现

电网连锁故障分析这件事,做过的人都知道有多头疼。系统规模一上来,想判断哪几种故障组合最容易把电网拖入大停电,暴力枚举几乎不可行,蒙特卡洛又慢得让人失去耐心。去年我在做 N-k 安全分析时接触到了“随机化学”这个思路&#x…

2026/10/9 5:36:41 阅读更多 →
学Simulink——基于反电动势过零检测的直流无刷电机(BLDC)无感控制仿真

学Simulink——基于反电动势过零检测的直流无刷电机(BLDC)无感控制仿真

目录 手把手教你学Simulink——基于反电动势过零检测的直流无刷电机(BLDC)无感控制仿真 一、 引言:当“霍尔传感器”成为过去式——反电动势过零检测如何成就真正的“无感”BLDC? 二、 问题本质:反电动势过零的“物理机制”与“协同逻辑” 1. 核心物理机制 2. 协同逻辑…

2026/10/9 5:35:40 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →