Llama 3今日发布,提供了8B和70B参数的预训练和指令微调语言模型,而且这些模型很快将在AWS、Google Cloud、Microsoft Azure等主流平台上可用,得到了AMD、Intel等硬件平台的大力支持。
Llama3链接直达:https://llama.meta.com/llama3
Llama中文社区将带你从以下几方面进行深入了解和使用Llama3:
1、Llama3介绍、表现及技术剖析
2、如何体验和下载Llama3模型
3、Llama3的调用方式
4、和行业专家一起聊聊Llama3
1.Llama3介绍
“迄今为止最好的开源大模型”
全新的 Llama 3 模型,包括 8B 和 70B 参数版本,是 Llama 2 的重大升级。Llama3预训练模型和指令微调模型在 8B 和 70B 参数规模中表现卓越,成为当前开源模型最佳。训练后的改进显著降低了错误拒绝率,提高了一致性,并提升了模型响应的多样性。
Llama3模型详细信息一览
性能表现
Llama 3 在推理、代码生成和指令跟踪等功能上也取得了巨大进步,模型更加易于操控。显著提升了模型的性能和用户体验。
Llama 3 8B 在至少9项基准测试中展现了优于其他开源模型的性能,如 Mistral 的 Mistral 7B 和 Google 的 Gemma 7B。这两个模型均包含 70 亿个参数。Llama 3 8B 在以下基准测试中表现优异:
MMLU:多任务语言理解基准测试。
ARC:复杂阅读理解测试。
DROP:数字化阅读理解测试。
GPQA:涵盖生物、物理和化学相关问题的一组问题。
HumanEval:代码生成测试。
GSM-8K:数学单词问题。
MATH:数学基准测试。
AGIEval:解决问题测试集。
BIG-Bench Hard:常识推理评估。
Llama 3 70B 在五项基准测试(包括 MMLU、GPQA、HumanEval、GSM-8K 和 MATH)中均优于 Claude 3 系列中性能较弱的 Claude 3 Sonnet。这些成绩突显了 Llama 3 70B 模型在广泛应用领域中的卓越性能。
在 Llama 3 的开发过程中,不仅关注模型性能,同时也专注于优化实际应用场景中的表现。
团队创建了一套全新的高质量人类评估集,涵盖了 1,800 个提示,涉及 12 个关键用例:建议咨询、头脑风暴、分类、封闭式问答、编程、创意写作、信息提取、角色塑造、开放式问答、推理、重写和总结。
下图展示了针对 Claude Sonnet、Mistral Medium 和 GPT-3.5 在这些类别和提示上的人工测评结果。
并且Llama3-8B模型测试结果表现优于Llama2-70B模型
技术详情
Llama 3 的开发强调了卓越的语言模型设计,聚焦于创新、扩展和优化。该项目围绕四个关键要素展开:模型架构、预训练数据、预训练规模的扩展以及指令微调。
模型架构
Llama 3 采用了相对标准的仅解码器 Transformer 架构,并在 Llama 2 的基础上进行了关键改进。模型使用了 128K 标记词汇表,提高了语言编码的效率,显著提升了性能。
在 8B 和 70B 规模的模型中,Llama 3 引入了分组查询注意力 (GQA),并在 8,192 个标记的序列上训练模型,使用掩码确保自注意力不会跨越文档边界,从而提高了模型的推理效率。
训练数据
为了构建出色的语言模型,管理大型、高质量的训练数据集至关重要。Llama 3 经过超过 15T token 的预训练,数据均来自公开来源,规模是 Llama 2 训练数据集的七倍,并且包含四倍多的代码。
此外,超过 5% 的预训练数据集由涵盖 30 多种语言的高质量非英语数据组成。
为了确保模型接受最高质量的数据训练,Llama 3 开发了一系列数据过滤管道,包括启发式过滤器、NSFW 过滤器、语义重复数据删除方法和文本质量预测器。
扩大预训练规模
Llama 3 在开发过程中投入了大量精力来扩大预训练规模。通过制定详细的缩放法则,团队能够优化数据组合,确保最优的训练计算使用。在 15T tokens 训练后,8B 和 70B 参数模型继续以对数线性方式改进。
此外,通过结合数据并行化、模型并行化和管道并行化三种类型的并行化训练方法,Llama 3 在两个定制的 24K GPU 集群上实现了高效训练。
这些技术和方法的综合应用,确保了Llama 3 的训练效率比 Llama 2 提高了约三倍,为用户提供了更优质的体验和更强大的模型性能。
指令微调
为了充分发挥预训练模型在对话用例中的潜力,Llama 3 团队采用了监督微调 (SFT)、拒绝采样、近端策略优化 (PPO) 和直接策略优化 (DPO) 等多种技术组合。
SFT 中使用的提示质量以及 PPO 和 DPO 中使用的偏好排名对对齐模型的性能有着巨大的影响。通过仔细整理数据并对注释进行质量保证,Llama 3 在推理和编码任务上取得了显著提升。
算力消耗与碳排放
Llama3预训练使用了H100-80GB(热设计功耗TDP为700W),训练需要770万GPU小时。总碳排放量为2290吨二氧化碳当量(tCO2eq),全部通过Meta的可持续性计划得到了抵消。
2.Llama3模型体验和下载
Hugging face体验链接:
https://huggingface.co/chat/
Meta.ai体验链接:
https://www.meta.ai/
模型下载申请:
https://llama.meta.com/llama-downloads
推荐可以先在Hugging face上体验,社区官网 https://llama.family 也正在上线可供国内体验的链接和模型下载。
3.Llama3的调用方式
Llama 3当中采用了几个特殊标记:
<|begin_of_text|>:等价于BOS标记,标识一句话的开始。
<|eot_id|>:等价于EOS标记,标识一句话的结束。
<|start_header_id|>{role}<|end_header_id|>:标识一条消息对应的角色,可以是“system”、“user”和“assistant”(系统、用户、助手)。
基础模型调用
Llama 3基础模型调用较为简单,在起始标记符<|begin_of_text|>后面直接加上用户信息就可以,模型会基于{{ user_message }}信息进行后续文本的生成。
<|begin_of_text|>{{ user_message }}
对话模型调用
对于单轮对话来说,首先需要通过1的部分<|begin_of_text|>来标识prompt的开始,接下来2的部分标识角色(例如“user”),3的部分为具体的对话信息,4的部分<|eot_id|>标识文本的结束,接下来5的部分标识下一个角色(例如“assistant”),模型会在prompt后面生成对话回复信息,即生成 {{assistant_message}} 。
<|begin_of_text|>1<|start_header_id|>user<|end_header_id|>2
{{user_message }}3<|eot_id|>4<|start_header_id|>assistant<|end_header_id|>5
除此之外,还可以在prompt当中加入system信息,例如在system的标识后面,添加{{ system_prompt }}。
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
{{system_prompt }}<leot_id|><|start_header_id|>user<|end_header_id]
{{user_message }}<|eot_id|><|start_header_id|>assistant<lend_header_id]>
对于多轮对话来说也是类似的,通过表示多段user和assistant信息,来让模型进行多轮对话生成。
<|begin_of_text|><|start_header_id|>system<|end_headder_id
{{system_prompt }}<|eot_id|><|start_header_id|>user<|end_header_id]>
{{user_message_1 }}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
{{ model_answer_1}}<|eot_id|><|start_header_id|>user<end_header_id|>
{{user_message_2}}<|eot_id|><|start_header_id|>assisttant<|end_header_id|>
4.下一步计划
Llama3 400B模型正在训练中...