Llama 3.2 评测方法论全解析:llama-models 仓库中的评估设置、提示词与生成参数详解
2026/9/16 17:23:23 网站建设 项目流程

Llama 3.2 评测方法论全解析:llama-models 仓库中的评估设置、提示词与生成参数详解

【免费下载链接】llama-modelsUtilities intended for use with Llama models.项目地址: https://gitcode.com/GitHub_Trending/ll/llama-models

导读:本文以 models/llama3_2/eval_details.md 为骨架,系统梳理 Meta 在评估 Llama 3.2 文本模型(1B/3B)与视觉模型(11B/90B)时所采用的全部评测设置——包括每个基准的 few-shot 配置、提示词形式、指标口径与最大生成长度,并结合 models/sku_list.py、models/cli/describe.py 等仓库源码,说明这些评测配置与模型注册、生成管线之间的对应关系。读完本文,你将能完整理解 Llama 3.2 官方分数背后的评测协议,并掌握在本地复现或对比评估时所需的全部关键参数。

一、评估总则:跨模型一致的协议与三条核心原则

models/llama3_2/eval_details.md 开篇即声明了官方评估方法论的总体原则,这是理解后续所有基准设置的基石:

  1. 设置一致性:对于给定的 benchmark,官方会在所有模型(包括外部对比模型)之间尽量采用一致的评估设置,避免因提示词、采样或解析方式差异造成不可比。
  2. 外部模型最优分数:官方会尽力为外部模型争取最优分数,包括处理模型特有的解析(parsing)与分词(tokenization)需求;若外部模型在可比或更保守设置下的得分低于其自报分数,则采用该外部模型的自报分数。这意味着结果表中的外部模型分数并不总是"同一套设置跑出来的",而是"取其最优口径"。
  3. 数据公开:官方将评估过程中使用公开基准产生的数据一并发布(llama-32-evals 评估数据集合),供社区核查与复现。

这套原则贯穿全文所有基准。例如,文本与视觉基准分别使用了"生成式任务"与"选项似然比较"两类截然不同的判分方式,且针对不同任务设定了从 10 token 到 5120 token 不等的最大生成长度——这些细节都会直接影响分数高低,也是复现评估时最容易出偏差的地方。

二、通用知识与语言理解类基准

2.1 MMLU:从 NLL 判分到生成判分

MMLU 是 Llama 3.2 评估中配置最复杂的基准之一,预训练与后训练模型采用两套不同的协议:

  • 预训练模型:使用 5-shot 配置。评估时采用标准 MMLU 提示词,将全部选项放入 prompt,通过比较各选项字符的**负对数似然(NLL)**来判定答案,而不是让模型直接生成文本。
  • 后训练模型:同时报告 5-shot 与 0-shot 分数。此时改为让模型生成最佳选项字符;其中 0-shot 使用思维链(CoT)提示词。
  • 最大生成长度:5-shot 配置为10 tokens,0-shot 配置为1024 tokens(CoT 需要更长空间)。
  • 指标口径:除非特别说明,报告macro average(宏平均)。文档同时记录了 micro average 数据点:预训练 8B、70B、405B 模型 5-shot 分别为65.6、79.0、85.4;后训练对应模型分别为69.44、84.0、87.71

需要说明的是,这组 8B/70B/405B 数据点来自对更大尺寸模型的评估(对应 Llama 3.1 系列对照),而 Llama 3.2 文本模型家族本身为 1B/3B 规模;关于 1B/3B 的实际分数,可参见 models/llama3_2/MODEL_CARD.md 中的基准表格(如 5-shot MMLU macro_avg/acc 上,1B 为 49.3、3B 为 63.4,含 SpinQuant、QLoRA 等量化变体对照)。

2.2 Multilingual MMLU:七种非英语语言的逐项报告

针对后训练模型,使用5-shot配置,以生成式任务运行,最大生成长度为 10 tokens。分数按葡萄牙语、西班牙语、意大利语、德语、法语、印地语、泰语七种语言分别报告并取平均——这与 Llama 3.2 官方支持的八种语言(英、德、法、意、葡、印地、西、泰)保持一致。多语言维度的完整分数表位于 models/llama3_2/MODEL_CARD.md 的 "Multilingual Benchmarks" 一节。

2.3 AGIEval English:预训练模型的通用推理

仅对预训练模型评估,使用 AGIEval 官方默认的 few-shot 与提示词设置(3-5 shots),分数在英语子任务上取平均最大生成长度为 10 tokens

2.4 ARC-Challenge:两套判分路径

ARC-Challenge 取自 ARC benchmark 的 Arc-Challenge 子集:

  • 预训练模型:使用25-shot配置,复用 MMLU 的评估方式——把全部选项写进 prompt,对选项字符计算似然(likelihood)判分。
  • 后训练模型:使用0-shot配置,直接让模型生成选项字符。
  • 最大生成长度:统一为100 tokens

2.5 GPQA:零样本思维链精确匹配

仅针对后训练模型,使用0-shot + CoT配置,在 main set 上对候选选项报告exact match(精确匹配)分数,最大生成长度为 2048 tokens

三、数学与推理类基准

3.1 GSM8K:与 Wei et al. (2022) 一致的 8-shot CoT

预训练与后训练模型使用同一套 8-shot CoT 配置,提示词与 Wei et al. (2022) 的 maj@1 设置一致,最大生成长度为 1024 tokens。这是少数预训练/后训练完全共用一套协议的基准。

3.2 MATH:从 4-shot 到 0-shot + 符号判分

MATH 是配置差异最大的基准之一:

  • 预训练模型:沿用 Lewkowycz et al. (2022) 的4-shot配置(maj@1),最大生成长度为 512 tokens
  • 后训练模型:改为0-shot + CoT配置,并对判分做了工程化增强——先用sympy增强 exact match(将模型输出规范化后再做符号级比较),再使用equality template + judge(裁判模型)解析复杂数学表达式,以处理"形式不同但数学上等价"的答案。最大生成长度放宽到 5120 tokens
  • 分数口径:MATH 分数基于完整数据集;MATH-HARD(Lvl 5)分数为 8B、70B、405B 分别25.4、43.8、53.4

3.3 MGSM:十一语言平均的多语言数学

针对后训练模型,使用0-shot + CoT配置,报告 exact match(maj@1),最大生成长度为 2048 tokens。分数在 MGSM 基准的全部十一种语言上取平均——包括 Llama 模型官方不支持的语种,因此该分数是跨语言泛化能力的保守度量。

四、阅读理解、改写与摘要类基准

这一类基准全部面向预训练模型(TLDR9+ 与 Open-Rewrite 面向后训练模型),且统一采用生成式任务并设定较短的生成长度:

基准模型阶段Shots指标最大生成长度说明
SQuAD(v2)预训练1-shotexact match32 tokens生成式任务
QuAC预训练1-shotF132 tokens生成式任务
DROP预训练3(随机抽取)F132 tokens每个验证样例从 train split 随机抽 3 个 few-shot 样例
TLDR9+后训练1-shotrougeL512 tokensReddit 帖子摘要,test 集
Open-Rewrite后训练0-shotmicro_avg rougeL512 tokens覆盖 elaborate、formality、others、paraphrase、shorten、wiki 六类改写

几个值得注意的细节:DROP 的 few-shot 样例是随机抽取的(每个验证样例独立抽样,而非固定模板),这意味着每次运行的结果可能存在轻微波动;SQuAD 使用 v2 版本(含不可回答问题);Open-Rewrite 的六类改写任务共享同一 0-shot 提示词协议,最终分数为六类 micro_avg rougeL 的汇总。

五、指令遵循与工具调用类基准

5.1 IFEval:三级指标取平均

针对后训练模型,使用论文(2311.07911)规定的默认设置。计算prompt level分数以及instruction level 的 strict 与 loose 准确率,最终报告所有这些分数的平均值。IFEval 考察的是模型对格式化指令(如"以 JSON 输出""恰好 3 段"等)的遵循度,与生成式开放评测口径完全不同。

5.2 BFCL v2:固定提交点的 AST 摘要指标

Berkeley Function Calling Leaderboard v2 的结果通过运行开源评估仓库 gorilla(固定 commit70d6722)得到,报告"AST Summary"指标。固定 commit 的目的在于保证函数调用解析逻辑的可复现性——AST(抽象语法树)级比较对解析器版本高度敏感。

5.3 Nexus:开源 prompt + 裁判评估

使用 NexusRaven 的开源 prompt 与评估函数,配合开源评估 notebook(GPT4 裁判评估流程)计算分数。与 BFCL 类似,Nexus 也强调"完全可复现的第三方评估管线"。

六、长上下文类基准

6.1 InfiniteBench:128k 截断的"干净"数据集

官方在 InfiniteBench 上报告两个子任务:

  • EN.MC:基于"假书"(fake book)的自由问答;
  • EN.QA:基于同一本书的多选题。

两个子任务的平均输入 token 数分别约为184.4k192.6k,远超常规上下文窗口。官方处理方式是:使用自家的 tokenizer将数据集截断到 128k 输入 token,从而得到一个"干净"数据集——保证正确答案不会在截断过程中被误删。后训练模型使用0-shot配置,EN.QA 与 EN.MC 的最大生成长度均为 20 tokens。这一截断策略正是对 models/sku_list.py 中 Llama 3.2 系列 128k 上下文长度能力的直接检验。

6.2 NIH/Multi-needle:十档长度的召回测试

针对后训练模型,使用0-shot配置。上下文长度在2000 到 131072之间均匀分布10 个区间(含端点)——对 llama 模型而言;非 llama 模型则为2000 到 128000最大生成长度为 256 tokens。该基准衡量模型在超长上下文中"检索多根针"的召回能力。

6.3 RULER:超越检索的长上下文综合评估

RULER 用于在检索类任务之外更全面地评估长上下文能力。官方在不同长度的上下文区间上合成数据集,并在以下能力维度上比较各长度桶的均值

  • retrieval(检索):single needle、multi needle、multi-value per multiple keys;
  • multi-hop tracing(多跳追踪):variable tracking;
  • aggregation(聚合):common words、frequency extraction;
  • question-answering(问答)

RULER 的价值在于它揭示了"检索到就能答对"与"真正理解并聚合信息"之间的差距,是纯 Needle-in-a-Haystack 测试的有效补充。

七、视觉基准:提示词与逐模型差异

视觉类基准全部面向后训练视觉模型(11B/90B),统一使用0-shot配置,但不同基准、甚至同一基准的不同模型尺寸使用不同的 system prompt,这是视觉评估中最容易复现出错的部分。

7.1 MMMU:CoT 逐步推理

  • 配置:0-shot + CoT,validation set,2048 tokens
  • system prompt
<|image|>Look at the image carefully and solve the following question step-by-step. {question} Options: {options} Indicate the correct answer at the end.

7.2 MMMU-Pro standard:十选项多选

  • 配置:0-shot,十个选项的多选题,test set;单 prompt 含多张图时拼接为一张图2048 tokens
  • system prompt
<|image|>{question} Options: {options}

7.3 MMMU-Pro vision:从图中提取问题再作答

  • 配置:0-shot,test set,2048 tokens
  • system prompt:要求模型先明确陈述图中问题与全部选项,再逐步分析、作答,并强制以The best answer is X.(X 为唯一选项字母)收尾:
<|image|>Your job is to extract the question from the image the user attached, reason about it, and then answer the question. Follow these steps: 1. Always start by Clearly stating the question shown in the image, and also state all of the options. 2. Then, Carefully review the information beyond the question shown in the image and analyze it without making any assumptions. 3. Next, use your understanding of the image to answer the question you listed out in the first step. Use a step-by-step process 4. Finally, write the answer in the following format where X is exactly one of the option letters: The best answer is X. Always follow the steps above, printing out everything. Let's think step by step. Your response must be among the given options.

7.4 AI2D:11b 与 90b 使用不同提示词

  • 配置:0-shot,test set,400 tokens
  • 11b 的 system prompt:要求逐步思考并以FINAL ANSWER形式只输出正确选项编号:
<|image|>Look at the scientific diagram carefully and answer the following question: {question} Think step by step and finally respond to the question with only the correct option number as "FINAL ANSWER". Let's think step by step.
  • 90b 的 system prompt:更简洁,只要求输出正确选项数字:
<|image|>Look at the scientific diagram carefully and answer the following question: {question} Respond only with the correct option digit.

7.5 ChartQA:从简短 CoT 到六步流程

  • 配置:0-shot + CoT,test set,512 tokens
  • 11b 的 system prompt:要求思考并给出逐步解答,最终以FINAL ANSWER:收尾:
<|image|>You are provided a chart image and will be asked a question. You have to think through your answer and provide a step-by-step solution. Once you have the solution, write the final answer in at most a few words at the end with the phrase "FINAL ANSWER:". The question is: {question}<|cot_start|>Let's think step by step.
  • 90b 的 system prompt:展开为 Step 1–Step 6 的完整流程,强调"直接从图中读取数据、不做多余假设",并同样以FINAL ANSWER:收尾(完整六步文本较长,核心是逐步骤定位图表中的对应数据点并简洁作答)。

7.6 DocVQA:逐字读文与极简回答约束

  • 配置:0-shot,test set,512 tokens
  • system prompt:强制"按图中原文逐字回答",yes/no 只答 Yes 或 No,数字只答数字,多词答案只答单词、禁止成句:
<|image|> Read the text in the image carefully and answer the question with the text as seen exactly in the image. For yes/no questions, just respond Yes or No. If the answer is numeric, just respond with the number and nothing else. If the answer has multiple words, just respond with the words and absolutely nothing else. Never respond in a sentence or a phrase. Question: {question}

7.7 VQAv2:最短答案约束

  • 配置:0-shot,test set,25 tokens
  • system prompt:与 DocVQA 相同的极简回答约束,并追加"尽量少词":
<|image|> Look at the image carefully and answer this visual question. For yes/no questions, just respond Yes or No. If the answer is numeric, just respond with the number and nothing else. If the answer has multiple words, just respond with the words and absolutely nothing else. Never respond in a sentence or a phrase. Respond with as few words as possible. Question: {question}

7.8 MathVista:LLM 判分器提取答案

  • 配置:0-shot,testmini set,2048 tokens
  • 判分方式:按照 MathVista 论文(Lu et al., 2024)的建议,使用LLM-based answer extractor从模型输出中提取答案,以应对数学题答案形式多样的问题。
  • system prompt
<|image|>{question}

7.9 视觉模型的结构性背景

视觉评估之所以需要如此多的提示词工程,与 Llama 3.2-Vision 的架构直接相关。根据 models/sku_list.py 中 11B/90B Vision 模型的注册参数(vision_chunk_sizevision_max_num_chunksvision_num_cross_attention_layers),视觉模型并非"早期融合"结构,而是通过一组交叉注意力层把图像编码器表示注入语言模型主干。<|image|>标记在 prompt 中的位置决定了图像只 attend 到其后的文本 token,这正是上文各 system prompt 都把<|image|>放在最前面、且 MMMU-Pro 多图拼接策略存在的原因。完整视觉评估结果(VQAv2、TextVQA、DocVQA、MMMU、ChartQA、InfographicsQA、AI2D 等)可查看 models/llama3_2/MODEL_CARD_VISION.md。

八、评估配置速查总表

下表汇总 models/llama3_2/eval_details.md 中全部基准的关键配置,方便复现时快速对照:

基准适用模型Shots提示词类型判分指标最大生成长度
MMLU预训练5标准 MMLUNLL 判选项
MMLU后训练5 / 00-shot 用 CoT生成选项字符10 / 1024
Multilingual MMLU后训练5生成式各语言分别报告10
AGIEval English预训练默认 few-shot默认英语子任务平均10
ARC-Challenge预训练25MMLU 式选项似然100
ARC-Challenge后训练0生成式选项字符100
GPQA后训练0CoTexact match2048
GSM8K预训练+后训练8CoT(Wei et al.)maj@11024
MATH预训练4Lewkowycz et al.maj@1512
MATH后训练0CoT + sympy + judgefinal_em5120
MGSM后训练0CoTmaj@1,11 语言平均2048
SQuAD v2预训练1生成式exact match32
QuAC预训练1生成式F132
DROP预训练3(随机)生成式F132
TLDR9+后训练1生成式rougeL512
Open-Rewrite后训练0生成式micro_avg rougeL512
IFEval后训练0默认Prompt/Instruction 平均默认
BFCL v2后训练0固定 commit 评估AST Summary默认
Nexus后训练0开源 promptGPT4 裁判默认
InfiniteBench后训练0128k 截断EN.QA/EN.MC20
NIH/Multi-needle后训练010 档长度recall256
RULER后训练0合成数据集各能力桶均值默认
MMMU后训练(视觉)0CoT选项 acc2048
MMMU-Pro standard/vision后训练(视觉)0定制 prompt选项 acc2048
AI2D后训练(视觉)011b/90b 不同 promptacc400
ChartQA后训练(视觉)011b/90b 不同 CoTacc512
DocVQA后训练(视觉)0极简回答约束ANLS512
VQAv2后训练(视觉)0极简回答约束acc25
MathVista后训练(视觉)0LLM 判分器acc2048

九、评测协议与仓库源码的对应关系

评估文档中的设置并非孤立的实验细节,它们与 llama-models 仓库的模型注册与推理管线一一对应:

9.1 模型家族的注册与上下文能力

models/sku_list.py 中的llama3_2_family()完整注册了 Llama 3.2 家族:基础模型(Llama3.2-1BLlama3.2-3BLlama3.2-11B-VisionLlama3.2-90B-Vision)、指令模型(-Instruct)以及 INT4 量化变体(QLORA_INT4_EO8SpinQuant_INT4_EO8)。所有模型共用LLAMA3_VOCAB_SIZE = 128256词表,这正是 InfiniteBench 用"自家 tokenizer"截断到 128k 的原因——词表与上下文窗口能力均由同一套 tokenizer 体系决定。

9.2 用 describe 命令核对评估对象

仓库提供了llama-model describe子命令(models/cli/describe.py),可查看任意注册模型的上下文长度、权重格式与params.json架构参数:

llama-model describe -m Llama3.2-3B-Instruct

输出包含 Hugging Face ID、描述、上下文长度(以 K tokens 显示)以及完整的arch_argsdimn_layersn_headsn_kv_headsrope_thetause_scaled_rope等)。在复现评估时,先用该命令确认目标模型的上下文长度与架构,是避免"配置与模型不匹配"的第一步。

9.3 生成管线中的 max_seq_len 与生成长度

评估文档反复强调的"最大生成长度"(10~5120 tokens)对应推理时的生成终止条件;而上下文能力则由 models/llama3/generation.py 中Llama3.build()max_seq_len参数控制(默认调用链中由 CLI 脚本传入,例如 models/llama3/scripts/chat_completion.py 的run_main默认max_seq_len=512temperature=0.6top_p=0.9)。注意:评估采用的温度与采样策略会显著影响 CoT 类任务(GSM8K、MATH、GPQA、MGSM)的 maj@1 分数,复现时应显式设置采样参数。

9.4 特殊 token 与提示词格式的落地

评估文档中出现的<|image|>、CoT 提示词等,最终由 models/llama3/tokenizer.py 定义的特殊 token 体系承载(<|begin_of_text|><|end_of_text|><|reserved_special_token_0|>等,基于 tiktoken BPE,词汇表 128256)。视觉模型的双流结构(文本主干 + 交叉注意力视觉适配器)也决定了<|image|>标记位置对评估结果的影响——这也是为何各视觉基准的 system prompt 都把图像标记严格置于开头。

9.5 分数在哪里查看

评估文档只给出方法论,实际分数分布在两个模型卡中:

  • 文本模型:models/llama3_2/MODEL_CARD.md 的 "Benchmarks - English Text"(含基础模型表与指令模型表,后者覆盖 bf16、Vanilla PTQ、SpinQuant、QLoRA 四种权重变体)与 "Multilingual Benchmarks"(七种语言 × 四种变体)。
  • 视觉模型:models/llama3_2/MODEL_CARD_VISION.md 的 "Benchmarks - Image Reasoning"(基础模型表与指令模型表,覆盖 MMMU 系列、ChartQA、AI2D、DocVQA、VQAv2、MathVista 等)。

十、复现评估时的注意事项

结合本文整理的协议与仓库源码,在本地复现 Llama 3.2 官方评估时有几点必须注意:

  1. 区分预训练/后训练协议:MMLU、ARC-Challenge、MATH 三类基准对预训练与后训练模型使用完全不同的判分方式(NLL 似然 vs 生成判分),不能混用。
  2. 遵守生成长度上限:短输出任务(MMLU 10、SQuAD/QuAC/DROP 32、InfiniteBench 20)若放宽长度,模型可能输出多余文本导致解析失败;长输出任务(MATH 后训练 5120、GPQA/MGSM 2048)若截断过短,则可能丢失推理过程。
  3. 按模型尺寸切换提示词:AI2D 与 ChartQA 对 11b/90b 使用不同的 system prompt,评估时必须以目标模型尺寸为准。
  4. 固定第三方评估版本:BFCL v2 固定 gorilla 仓库 commit,Nexus 固定评估 notebook 版本——工具链版本漂移会直接改变分数。
  5. 长上下文必须正确截断:InfiniteBench 需用 Llama 3.2 自家的 tokenizer(models/llama3_2/tokenizer.model)将数据截断至 128k,不能使用其他 tokenizer 的截断结果。
  6. 理解外部模型分数的口径:按评估总则,外部对比模型的分数可能取自其自报分数,而非完全相同的评估设置,横向对比时需留意脚注说明。

综上,models/llama3_2/eval_details.md 是一份将"评估公平性"落实为具体工程参数的规范文档:从 NLL 与生成两种判分范式的选择,到逐基准、逐模型尺寸的提示词与生成长度配置,再到第三方评估管线的版本锁定。理解这套协议,是正确解读 models/llama3_2/MODEL_CARD.md 与 models/llama3_2/MODEL_CARD_VISION.md 中全部分数、乃至开展自有模型对比评估的前提。

【免费下载链接】llama-modelsUtilities intended for use with Llama models.项目地址: https://gitcode.com/GitHub_Trending/ll/llama-models

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询