这就翻车了?Reflection 70B遭质疑基模为Llama 3,作者:重新训练

最近,开源大模型社区再次「热闹」了起来,主角是 AI 写作初创公司 HyperWrite 开发的新模型 Reflection 70B。它的底层模型建立在 Meta Llama 3.1 70B Instruct 上,并使用原始的 Llama chat 格式,确保了与现有工具和 pipeline 的兼容性。这个模型横扫了 MMLU、MATH、IFEval、GSM8K,在每项基准测试上都超过了 GPT-4o,还击败了 405B 的 Llama 3.1。凭借如此惊艳的效果,Reflection 70B 被冠以开源大模型新王

最近,开源大模型社区再次「热闹」了起来,主角是 AI 写作初创公司 HyperWrite 开发的新模型 Reflection 70B。

它的底层模型建立在 Meta Llama 3.1 70B Instruct 上,并使用原始的 Llama chat 格式,确保了与现有工具和 pipeline 的兼容性。

这个模型横扫了 MMLU、MATH、IFEval、GSM8K,在每项基准测试上都超过了 GPT-4o,还击败了 405B 的 Llama 3.1。

图片

凭借如此惊艳的效果,Reflection 70B 被冠以开源大模型新王。该模型更是由两位开发者(HyperWrite CEO Matt Shumer 和 Glaive AI 创始人 Sahil Chaudhary)花了 3 周完成,效率可谓惊人。

Reflection 70B 能不能经受住社区的考验呢?今天 AI 模型独立分析机构 Artificial Analysis 进行了独立评估测试,结果有点出乎意料。

该机构表示,Reflection Llama 3.1 70B 的 MMLU 得分仅与 Llama 3 70B 相同,并且明显低于 Llama 3.1 70B

图片

                                          图源:https://x.com/ArtificialAnlys/status/1832505338991395131

还有科学推理与知识(GPQA)和定量推理(MATH)基准测试的结果,同样不如 Llama 3.1 70B。

图片

                                    图源:https://x.com/ArtificialAnlys/status/1832457791010959539

此外,Reddit 上 LocalLLaMA 社区的一个帖子比较了 Reflection 70B 与Llama 3.1、Llama 3 权重的差异,结果显示,Reflection 模型似乎是使用了经过 LoRA 调整的 Llama 3 而不是 Llama 3.1

图片

图片

贴主还提供了以上模型权重比较结果的代码来源。

from transformers 
import AutoModelForCausalLM, AutoTokenizer
import torch
import matplotlib.pyplot as plt
import seaborn as sns

base_model_name = "meta-llama/Meta-Llama-3-70B-Instruct"
chat_model_name = "mattshumer/Reflection-Llama-3.1-70B"
base_model = AutoModelForCausalLM.from_pretrained(base_model_name, torch_dtype=torch.bfloat16)
chat_model = AutoModelForCausalLM.from_pretrained(chat_model_name, torch_dtype=torch.bfloat16)

def calculate_weight_diff(base_weight, chat_weight):
    return torch.abs(base_weight - chat_weight).mean().item()

def calculate_layer_diffs(base_model, chat_model):
    layer_diffs = []
    for base_layer, chat_layer in zip(base_model.model.layers, chat_model.model.layers):
        layer_diff = {
            'input_layernorm': calculate_weight_diff(base_layer.input_layernorm.weight, chat_layer.input_layernorm.weight),
            # 'mlp_down_proj': calculate_weight_diff(base_layer.mlp.down_proj.weight, chat_layer.mlp.down_proj.weight),
            # 'mlp_gate_proj': calculate_weight_diff(base_layer.mlp.gate_proj.weight, chat_layer.mlp.gate_proj.weight),
            # 'mlp_up_proj': calculate_weight_diff(base_layer.mlp.up_proj.weight, chat_layer.mlp.up_proj.weight),
            'post_attention_layernorm': calculate_weight_diff(base_layer.post_attention_layernorm.weight, chat_layer.post_attention_layernorm.weight),
            'self_attn_q_proj': calculate_weight_diff(base_layer.self_attn.q_proj.weight, chat_layer.self_attn.q_proj.weight),
            'self_attn_k_proj': calculate_weight_diff(base_layer.self_attn.k_proj.weight, chat_layer.self_attn.k_proj.weight),
            'self_attn_v_proj': calculate_weight_diff(base_layer.self_attn.v_proj.weight, chat_layer.self_attn.v_proj.weight),
            'self_attn_o_proj': calculate_weight_diff(base_layer.self_attn.o_proj.weight, chat_layer.self_attn.o_proj.weight)
        }
        layer_diffs.append(layer_diff)
    return layer_diffs

def visualize_layer_diffs(layer_diffs):
    num_layers = len(layer_diffs)
    num_components = len(layer_diffs[0])

    fig, axs = plt.subplots(1, num_components, figsize=(24, 8))
    fig.suptitle(f"{base_model_name} <> {chat_model_name}", fontsize=16)

    for i, component in enumerate(layer_diffs[0].keys()):
        component_diffs = [[layer_diff[component]] for layer_diff in layer_diffs]
        sns.heatmap(component_diffs, annot=True, fmt=".6f", cmap="YlGnBu", ax=axs[i], cbar_kws={"shrink": 0.8})
        axs[i].set_title(component)
        axs[i].set_xlabel("Layer")
        axs[i].set_ylabel("Difference")
        axs[i].set_xticks([])
        axs[i].set_yticks(range(num_layers))
        axs[i].set_yticklabels(range(num_layers))
        axs[i].invert_yaxis()

    plt.tight_layout()
    plt.show()

layer_diffs = calculate_layer_diffs(base_model, chat_model)

visualize_layer_diffs(layer_diffs)

还有人贴出了 Matt Shumer 在 Hugging Face 对 Reflection 70B 配置文件名称的更改,可以看到从 Llama 3 70B Instruct 到 Llama 3.1 70B Instruct 的变化。

图片

这样的事实摆在眼前,似乎让人不得不信。各路网友也开始发声附和,有人表示自己从一开始就怀疑它是 Llama 3,当用德语问模型一些事情时,它却用英语回答。这种行为对于 Llama 3 非常常见。

图片

还有人奇怪为什么 Reflection 70B 模型一开始就得到了如此多的炒作和关注,毕竟第一个谈论它是「顶级开源模型」的人是开发者本人(Matt)。而且更确切地说,模型是微调的。

图片

更有人开始质疑开发者(Matt),认为他只是这家公司(GlaiveAI)的利益相关者,试图通过炒作来增加价值,实际上却对这项技术一无所知。

图片

在被质疑 Reflection 70B 的基础模型可能是 Llama 3 而非 Llama 3.1 70B 时,Matt Shumer 坐不住了,现身进行了澄清,并表示是 Hugging Face 权重出现了问题

图片

就在几个小时前,Matt Shumer 称已经重新上传了权重,但仍然存在问题。同时他们开始重新训练模型并上传,从而消除任何可能出现的问题,应该很快就会完成

图片

当被问到为何需要重新训练时,Matt Shumer 表示本不需要这样做,但已经尝试了所有方法。无论做什么,Hugging Face 上 Reflection 70B 模型都会出现问题,导致离预期中的性能差得远。

图片

当然 Matt Shumer 还面临更多质疑,比如对 GlaiveAI 的投资情况、为什么 Hugging Face 上的基础模型为 Llama 3 而不是 Llama 3.1 以及基准中有关 LORAing 的问题。

图片

Matt Shumer 一一进行了解释。(以下标引用)

1. 我是一个超级小的投资者(1000 美元),只是一次支持性的投资,因为我认为 Sahil Chaudhary 很棒。

2. 至于为什么基础模型是 Llama 3,我们不知道。这就是为什么我们从头开始再训练,应该很快完成。 

3. 那些尝试了 Playground 并拥有早期访问权限的用户获得了与托管 API 截然不同的体验,我们需要弄清楚这一点。 

4. 不确定什么是 LORAing,但我们检查了污染,将在下周与 405B(或更早)一起发布数据集,到时候可以查看。

至于重新训练后的 Reflection 70B 表现如何?我们拭目以待。

参考链接:

https://www.reddit.com/r/LocalLLaMA/comments/1fb6jdy/reflectionllama3170b_is_actually_llama3/

相关资讯

刚刚,开源大模型的新王诞生了:超越GPT-4o,模型还能自动纠错

快速更迭的开源大模型领域,又出现了新王:Reflection 70B。横扫 MMLU、MATH、IFEval、GSM8K,在每项基准测试上都超过了 GPT-4o,还击败了 405B 的 Llama 3.1。这个新模型 Reflection 70B,来自 AI 写作初创公司 HyperWrite。HyperWrite 公司的 CEO Matt Shumer 表示,Reflection-70B 现在是「世界上最顶级的开源 AI 模型」。Reflection 70B 的底层模型建立在 Meta 的 Llama 3.1 7

开源大模型新王 Reflection 70B 超越 GPT-4o:新技术可纠正自己幻觉,数学 99.2 分刷爆测试集

开源大模型王座突然易主,居然来自一家小创业团队,瞬间引爆业界。新模型名为 Reflection 70B,使用一种全新训练技术,让 AI 学会在推理过程中纠正自己的错误和幻觉。比如最近流行的数 r 测试中,一开始它犯了和大多数模型一样的错误,但主动在 反思 标签中纠正了自己。在官方评测中,70B 模型全面超越最强开源 Llama 3.1 405B、GPT-4o、Claude 3 Opus、Gemini 1.5 Pro,特别是数学基准 GSM8K 上直接刷爆,得分 99.2%。这个结果也让 OpenAI 科学家、德扑

两个人,三周做出开源模型新王Reflection 70B?靠谱吗?

技术报告下周公布。昨天,开源模型领域迎来一匹黑马 —— 一个名为 Reflection 70B 的模型横扫 MMLU、MATH、IFEval、GSM8K,在每项基准测试上都超过了 GPT-4o,还击败了 405B 的 Llama 3.1,成为开源模型新王。(参见《刚刚,开源大模型的新王诞生了:超越 GPT-4o,模型还能自动纠错》)模型发布后,社区反应强烈。官宣推文目前已经有了超过 270 万浏览量。另外,该项目也是目前 HuggingFace 上最热门的项目:Hugging Face::,该模型仅由两位开发者在