第 4 节 · 本站原创中文课程 · 建议 30 分钟
第四集:采样与多数投票
学完能做:比较单次生成和多候选投票的质量与计算代价。
建议时间仅指中文导读与练习,不含官方视频和本地实验。代码请在自己的 Python / PyTorch 环境运行。
一次改变一个采样设置
固定模型和题目,分别比较候选数,再单独比较 temperature 或 top-p。保存全部候选,避免只展示成功样例。候选之间可能重复,多生成几次并不自动带来独立证据。
投票前先明确规则
本站练习假设候选已被人工归一化,用下面的小函数检查平票处理。它只是投票规则示例,不是数学答案验证器;真实实验应接入上一节的提取和等价判断,并单列无有效候选的情况。
from collections import Counter
def vote(normalized_answers):
counts = Counter(a for a in normalized_answers if a is not None)
if not counts:
return {"answer": None, "status": "no_valid_answer"}
best = max(counts.values())
winners = [a for a, n in counts.items() if n == best]
return {"answer": winners[0] if len(winners) == 1 else None,
"status": "ok" if len(winners) == 1 else "tie"}
print(vote(["1/2", "1/2", "2"]))
print(vote(["1/2", "2"])) 正确率和预算放在同一张表
为每个配置同时记录正确题数、候选数、总 token 和耗时。投票多数可能一起错,不能把多数意见当作证明。对比时可先限制总生成预算,再观察增加候选是否仍然值得。
这是本站独立编写的讲解与示例,并非官方课程逐字翻译。理解之后,请完成下面的练习、自测和笔记。
参考来源:Sebastian Raschka · Building Reasoning Models from the Ground Up