lla-3 带扩展上下文的 instruct
77 拉取 更新于 3 个月前
3 个月前更新
3 个月前
d9650b444606 · 43GB
README
语言
- en
pipeline_tag: 文本生成
标签
- 元数据
- llama-3
许可证: llama3
Llama-3 70B Gradient Instruct 524K
加入我们的定制代理和长上下文(262k-1M+)等待列表: https://forms.gle/L6TDY7dozx8TuoUv7
梯度包含您的数据,以部署自动化助手,支持您的业务关键操作。如果您想构建定制的AI模型或代理,请发送邮件至 contact@gradient.ai。
更多信息请查看我们的定制LLMs和AI系统端到端开发服务
该模型将Llama-3 70B的上下文长度从8k扩展到> 524K,由Gradient开发,由Crusoe Energy的算力资助。[Crusoe Energy 的链接](https://hugging-face.cn/crusoeai)。它表明,SOTA LLMs可以通过适当地调整RoPE theta来以最小训练在长上下文中运行。我们在这个阶段训练了2.1亿个token,全部阶段总共大约4亿个token,这是Llama-3原始预训练数据的<0.003%。
方法
- meta-llama/Meta-Llama-3-70B-Instruct 作为基础
- NTK感知的插值[4],根据缩放定律[2]设置RoPE theta的最佳进度
- 在增加的上下文长度上进行渐进式训练,类似于Large World Model 1
Infrastructure
我们基于EasyContext Blockwise RingAttention库[5],在Crusoe Energy高性能L40S集群上可扩展且高效地训练非常长的上下文。
我们通过定制的网络拓扑在环型注意力上叠加并行性,以更好地利用大型GPU集群,应对设备间传递大量KV块时的网络瓶颈。
Data
对于训练数据,我们通过增强SlimPajama来生成长上下文。我们也基于UltraChat[3]的聊天数据集微调,按照与[1]类似的数据增强配方。
渐进式训练细节
65K | 262K | 524K | |
---|---|---|---|
初始化来源 | Llama-3-70B-Instruct | 65K | 262K |
序列长度 2^N | 16 | 18 | 19 |
RoPE theta | 15296098 | 207112184 | 1062356830 |
批次大小 | 64 | 16 | 8 |
梯度累积步数 | 1 | 1 | 2 |
步骤 | 20 | 25 | 25 |
总token数 | 83886080 | 104857600 | 209715200 |
学习率 | 2.00E-05 | 2.00E-05 | 2.00E-05 |
GPU数量 | 512 | 512 | 512 |
GPU类型 | NVIDIA L40S | NVIDIA L40S | NVIDIA L40S |
训练时间(墙时间) | 100 | 170 | 284 |
评估细节
EVAL_MAX_CONTEXT_LENGTH=640000
EVAL_MIN_CONTEXT_LENGTH=100
EVAL_CONTEXT_INTERVAL=32000
EVAL_DEPTH_INTERVAL=0.2
EVAL_NUM_SAMPLES=2
EVAL_RND_NUMBER_DIGITS=8
HAYSTACK:
EVAL_GENERATOR_TOKENS=925000
Haystack是“haystack 3”,在此博客文章中有更详细的介绍。
量
The Gradient AI 团队
Gradient正在加速各行各业的AI转型。我们的AI Foundry通过整合您数据来部署自动化助手,支持您业务中的关键操作。
联系我们
发送邮件至 contact@gradient.ai
参考文献
[1] Liu, Hao, et al. “World Model on Million-Length Video And Language With RingAttention.” arXiv preprint arXiv:2402.08268 (2024).
[2] Liu, Xiaoran, et al. “Scaling laws of rope-based extrapolation.” arXiv preprint arXiv:2310.05209 (2023).
[3] Ning Ding, Yulin Chen, Bokai Xu, Yujia Qin, Zhi Zheng, Shengding Hu, Zhiyuan
Liu, Maosong Sun, and Bowen Zhou. Enhancing chat language models by scaling
high-quality instructional conversations. arXiv preprint arXiv:2305.14233, 2023.
[4] Peng, Bowen, et al. “Yarn: Efficient context window extension of large language models.” arXiv preprint arXiv:2309.00071 (2023).
[5] https://github.com/jzhang38/EasyContext
基础模型
模型细节
Meta 开发了并发布了 Meta Llama 3 系列大型语言模型(LLM),这是一组大小为 8B 和 70B 的预训练和指令微调生成文本模型。Llama 3 指令微调模型针对对话场景进行了优化,并在常见的行业基准测试中优于许多可用的开源聊天模型。此外,在开发这些模型时,我们格外注重优化帮助性和安全性。
模型开发者 Meta
变体 Llama 3 有两种大小——8B 和 70B 参数,包括预训练和指令微调版本。
输入 模型仅接受文本输入。
输出 模型仅生成文本和代码。
模型架构 Llama 3 是一个自回归语言模型,采用优化的 Transformer 架构。微调版本使用监督式微调(SFT)和人类反馈强化学习(RLHF)与人类的友好性和安全性偏好相一致。
训练数据 | Params | 上下文长度 | GQA | 标记计数 | 知识截止时间 | |
Llama 3 | 一种新的公开在线数据混合。 | 8B | 8k | 是 | 15T+ | 2023年3月 |
70B | 8k | 是 | 2023年12月 |
Llama 3 系列模型。标记计数仅指预训练数据。8 和 70B 版本都使用分组查询关注(GQA)来提高推理的可扩展性。
模型发布日期 2024年4月18日。
状态 这是一个在离线数据集上训练的静态模型。随着我们通过社区反馈提高模型安全性,未来将发布微调模型的版本。
许可 可在以下链接获取定制商业许可:[https://llama.meta.com/llama3/license](https://llama.meta.com/llama3/license)
如何提出问题和评论关于该模型有关如何提供模型反馈或评论的说明可在模型的 [README](https://github.com/meta-llama/llama3) 中找到。有关生成参数的技术信息以及如何将 Llama 3 用于应用程序的食谱,请参阅 [这里](https://github.com/meta-llama/llama-recipes)。
预期用途
预期用途案例 Llama 3 预计用于英文的商业和研究用途。指令微调模型用于类似助手的聊天,而预训练模型可以适应各种自然语言生成任务。
范围外 违法使用任何违反适用法律或法规的方式(包括贸易合规法规)。使用其他任何违反可接受使用政策和 Llama 3 社区许可证的方式。使用除英语之外的语言**。
**注意:开发者可以微调超出英语的 Llama 3 模型,前提是它们符合 Llama 3 社区许可证和可接受使用政策**。
如何使用
该存储库包含两个版本的 Meta-Llama-3-70B-Instruct,用于与 transformers 和原始 llama3
代码库一起使用。
与 transformers 使用
请参考以下与 Transformers 一起使用的示例片段
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-70B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
prompt = pipeline.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])
与 llama3
使用
请按照 [repository](https://github.com/meta-llama/llama3) 中的说明操作。
要下载原始检查点,请参阅以下使用 huggingface-cli
的示例命令
huggingface-cli download meta-llama/Meta-Llama-3-70B-Instruct --include "original/*" --local-dir Meta-Llama-3-70B-Instruct
对于 Hugging Face 支持,我们建议使用 transformers 或 TGI,但类似的命令也可以使用。
硬件和软件
训练因素 我们使用了定制的训练库,Meta 的研究超级集群和生产集群进行预训练。微调、标注和评估也在第三方云计算上完成。
预训练的碳足迹使用了累计的 7.7M GPU 小时的计算,硬件类型为 H100-80GB(TDP 为 700W)。估计的总排放量为 2290 tCO2eq,100% 由 Meta 的可持续发展计划抵消。
时间(GPU 小时) | 功耗(W) | 碳排放(tCO2eq) | |
羊驼3 8B | 130万 | 700 | 390 |
羊驼3 70B | 640万 | 700 | 1900 |
总计 | 770万 | 2290 |
预训练期间的二氧化碳排放量。时间:训练每个模型所需的总GPU时间。功耗:用于的GPU设备的峰值电力容量,根据功率使用效率进行调整。100%的排放量都由Meta的可持续发展项目直接抵消,因为我们公开释放这些模型,所以其他人无需承担预训练成本。
训练数据
概述 羊驼3在来自公开来源的超过150万亿标记的数据上进行预训练。微调数据包括公开可用的指令数据集,以及超过1000万个人工标注的示例。预先训练和微调数据集都不包括Meta用户数据。
数据新鲜度 对于70B和70B模型,预训练数据截止于2023年3月,12月2023年。
基准测试
在本节中,我们报告了Llama 3模型在标准自动基准测试中的结果。对于所有评估,我们使用我们内部的评估库。有关方法论的详细信息,请参阅此处。
基础预训练模型
类别 | 基准测试 | 羊驼3 8B | 羊驼2 7B | 羊驼2 13B | 羊驼3 70B | 羊驼2 70B |
通用 | MMLU(5次射击) | 66.6 | 45.7 | 53.8 | 79.5 | 69.7 |
AGIEval英语(3-5次射击) | 45.9 | 28.8 | 38.7 | 63.0 | 54.8 | |
常识问答(7次射击) | 72.6 | 57.6 | 67.6 | 83.8 | 78.7 | |
Winogrande(5次射击) | 76.1 | 73.3 | 75.4 | 83.1 | 81.8 | |
BIG-Bench Hard(3次射击,CoT) | 61.1 | 38.1 | 47.0 | 81.3 | 65.7 | |
ARC-Challenge(25次射击) | 78.6 | 53.7 | 67.6 | 93.0 | 85.3 | |
知识推理 | TriviaQA-Wiki(5次射击) | 78.5 | 72.1 | 79.6 | 89.7 | 87.5 |
阅读理解 | SQuAD(1次射击) | 76.4 | 72.2 | 72.1 | 85.6 | 82.6 |
QuAC(1次射击,F1) | 44.4 | 39.6 | 44.9 | 51.1 | 49.4 | |
BoolQ(无数据) | 75.7 | 65.5 | 66.9 | 79.0 | 73.1 | |
DROP(3次射击,F1) | 58.4 | 37.9 | 49.8 | 79.7 | 70.2 |
指令微调模型
基准测试 | 羊驼3 8B | 羊驼2 7B | 羊驼2 13B | 羊驼3 70B | 羊驼2 70B |
MMLU(5次射击) | 68.4 | 34.1 | 47.8 | 82.0 | 52.9 |
GPQA(无数据) | 34.2 | 21.7 | 22.3 | 39.5 | 21.0 |
HumanEval(无数据) | 62.2 | 7.9 | 14.0 | 81.7 | 25.6 |
GSM-8K(8次射击,CoT) | 79.6 | 25.7 | 77.4 | 93.0 | 57.5 |
MATH(4次射击,CoT) | 30.0 | 3.8 | 6.7 | 50.4 | 11.6 |
责任与安全
我们相信,对AI的开放方法可以产生更好的、更安全的产物,实现更快的技术创新,以及更大规模的市场。我们致力于负责任的人工智能开发,并采取了一系列步骤来限制误用和伤害,并支持开源社区。
基础模型是广泛的应用技术,旨在用于各种应用。它们不是为了满足所有开发者对各种使用场景安全级别的偏好而设计的,因为这取决于不同的应用。
相反,负责任地应用LLM需要在整个应用开发过程中实施一系列安全最佳实践,从模型预训练、微调到部署包括预防措施的保障系统,以便根据具体使用案例和受众量身定制安全需求。
作为Llama 3发布的一部分,我们更新了我们的《负责任使用指南》,概述了开发者实施其应用程序的模型和系统级安全性的步骤和最佳实践。我们还提供了一系列资源,包括Meta Llama Guard 2和Code Shield保障措施。这些工具已被证明可以大幅降低LLM系统的残余风险,同时保持高水平的有用度。我们鼓励开发者根据其需求调整和部署这些保障措施,同时我们提供了一个参考实现以供开始。
Llama 3-Instruct
如负责任使用指南中所述,模型的有用性和对齐之间可能存在一定的权衡。开发者在权衡其特定使用案例和受众的对齐和有用性时需要谨慎处理。使用Llama模型时,开发者应注意到残余风险,并在必要时利用额外的安全工具以达到其用例的正确安全标准。
安全
对于我们定制的指令模型,我们进行了广泛的红队演练,进行了对抗性评估并采用了安全缓解技术来降低残余风险。与任何大型语言模型一样,残余风险很可能会继续存在,我们建议开发者在使用场景的背景下评估这些风险。同时,我们正在与社区合作,使人工智能安全基准标准透明、严格且可解释。
拒绝
除了残余风险外,我们高度重视模型对良性提示的拒绝。过度拒绝不仅可能影响用户体验,而且在某些情况下甚至可能是有害的。我们已经收到了开发者社区的反馈,并改进了微调,以确保Llama 3比Llama 2更不可能错误地拒绝回答提示。
我们建立了内部基准,并开发了缓解措施以限制错误拒绝,使Llama 3成为我们迄今为止最有帮助的模型。
负责任发布
除了上述负责任使用的考虑因素外,我们还遵循了一个严格的过程,要求我们在做出发布决定之前采取额外措施来防止滥用和关键风险。
滥用
如果您访问或使用Llama 3,您同意接受使用政策。该政策的最新副本可在此处找到:https://llama.meta.com/llama3/use-policy/。
关键风险
CBRNE(化学、生物、辐射、核和高效能爆炸物)
我们对模型在该领域的安全性进行了双重评估。
- 在模型训练期间进行迭代测试,以评估与CBRNE威胁和其他对抗性风险相关的响应的安全性。
- 邀请外部CBRNE专家进行增值测试,评估模型准确地提供专业知识并降低潜在CBRNE滥用障碍的能力,以参考使用网络搜索(不使用模型)可达到的成果。
网络安全
我们使用Meta的网络安全评估套件CyberSecEval评估了Llama 3,衡量了当用作编码助手时,建议不安全代码的程度以及Llama 3遵守协助进行网络攻击请求的倾向,其中攻击由行业标准的MITRE ATT&CK网络攻击本体定义。在我们的不安全编码和网络攻击者帮助性测试中,Llama 3表现得与具有等效编码能力的模型处于相同范围或更安全。
儿童安全
儿童安全风险评估由专家团队进行,以评估模型产生可能导致儿童安全风险输出的能力,并通过微调通知任何必要的和适当的风险缓解措施。我们利用那些专家红队演练来通过Llama 3模型开发扩大我们的评估基准覆盖范围。对于Llama 3,我们进行了新的深入会话,使用基于目标的方法从多个攻击向量评估模型风险。我们还与内容专家合作,进行红队演练以评估可能违反的内容,同时考虑到特定市场的细微差别或经验。
社区
生成式人工智能的安全需要专业知识和工具,我们相信开放的社区能够加速其进步。我们是开放联盟的积极成员,包括AI联盟、AI与机器学习合作伙伴关系和MLCommons,积极贡献于安全标准化和透明度。我们鼓励社区采用分类法,如MLCommons概念验证评估,以促进安全和内容评估方面的合作和透明度。我们的紫色小牛工具已开源供社区使用,并在包括云服务提供商在内的生态系统合作伙伴中广泛分布。我们鼓励对我们的Github存储库做出社区贡献。
最后,我们建立了一套资源,包括一个输出报告机制和漏洞奖励计划,以帮助社区持续改进Llama技术。
道德考虑和限制
Llama 3的核心价值观是开放性、包容性和帮助性。它旨在服务于所有人,并适用于广泛的用例。因此,它被设计得易于被来自不同背景、经验和观点的人使用。Llama 3旨在满足用户的需求,而不添加不必要的判断或规范性。同时,它反映出一个理解,即某些情况下可能看似有问题内容,可能在其他情况下也能产生有价值的作用。它尊重所有用户的尊严和自主性,特别是在涉及自由思想和表达的价值方面,这些价值推动了创新和进步。
但Llama 3是一项新技术,如同任何新技术一样,其使用存在风险。迄今为止的测试均为英文测试,并未涵盖所有场景,也无法涵盖所有场景。因此,如同所有LLM一样,Llama 3的潜在输出无法提前预测,模型在某些情况下可能对用户提示产生不准确、有偏见或其他让人反感的回应。因此,在部署任何Llama 3模型的实际应用之前,开发者应进行针对特定模型应用的安全测试和调优。如《负责任使用指南》所述,我们建议将Purple Llama解决方案集成到工作流程中,并特别集成Llama Guard,该方案提供了一个基础模型,用于过滤输入和输出提示,以在模型级别安全的基础上增加系统级别安全性。
请参阅可在http://llama.meta.com/responsible-use-guide获得的《负责任使用指南》。
引用说明
@article{llama3modelcard,
title={Llama 3 模型卡},
author={Meta AI},
year={2024},
url = {https://github.com/meta-llama/llama3/blob/main/MODEL_CARD.md}
}
贡献者
Aaditya Singh; Aaron Grattafiori; Abhimanyu Dubey; Abhinav Jauhri; Abhinav Pandey; Abhishek Kadian; Adam Kelsey; Adi Gangidi; Ahmad Al-Dahle; Ahuva Goldstand; Aiesha Letman; Ajay Menon; Akhil Mathur; Alan Schelten; Alex Vaughan; Amy Yang; Andrei Lupu; Andres Alvarado; Andrew Gallagher; Andrew Gu; Andrew Ho; Andrew Poulton; Andrew Ryan; Angela Fan; Ankit Ramchandani; Anthony Hartshorn; Archi Mitra; Archie Sravankumar; Artem Korenev; Arun Rao; Ashley Gabriel; Ashwin Bharambe; Assaf Eisenman; Aston Zhang; Aurelien Rodriguez; Austen Gregerson; Ava Spataru; Baptiste Roziere; Ben Maurer; Benjamin Leonhardi; Bernie Huang; Bhargavi Paranjape; Bing Liu; Binh Tang; Bobbie Chern; Brani Stojkovic; Brian Fuller; Catalina Mejia Arenas; Chao Zhou; Charlotte Caucheteux; Chaya Nayak; Ching-Hsiang Chu; Chloe Bi; Chris Cai; Chris Cox; Chris Marra; Chris McConnell; Christian Keller; Christoph Feichtenhofer; Christophe Touret; Chunyang Wu; Corinne Wong; Cristian Canton Ferrer; Damien Allonsius; Daniel Kreymer; Daniel Haziza; Daniel Li; Danielle Pintz; Danny Livshits; Danny Wyatt; David Adkins; David Esiobu; David Xu; Davide Testuggine; Delia David; Devi Parikh; Dhruv Choudhary; Dhruv Mahajan; Diana Liskovich; Diego Garcia-Olano; Diego Perino; Dieuwke Hupkes; Dingkang Wang; Dustin Holland; Egor Lakomkin; Elina Lobanova; Xiaoqing Ellen Tan; Emily Dinan; Eric Smith; Erik Brinkman; Esteban Arcaute; Filip Radenovic; Firat Ozgenel; Francesco Caggioni; Frank Seide; Frank Zhang; Gabriel Synnaeve; Gabriella Schwarz; Gabrielle Lee; Gada Badeer; Georgia Anderson; Graeme Nail; Gregoire Mialon; Guan Pang; Guillem Cucurell; Hailey Nguyen; Hannah Korevaar; Hannah Wang; Haroun Habeeb; Harrison Rudolph; Henry Aspegren; Hu Xu; Hugo Touvron; Iga Kozlowska; Igor Molybog; Igor Tufanov; Iliyan Zarov; Imanol Arrieta Ibarra; Irina-Elena Veliche; Isabel Kloumann; Ishan Misra; Ivan Evtimov; Jacob Xu; Jade Copet; Jake Weissman; Jan Geffert; Jana Vranes; Japhet Asher; Jason Park; Jay Mahadeokar; Jean-Baptiste Gaya; Jeet Shah; Jelmer van der Linde; Jennifer Chan; Jenny Hong; Jenya Lee; Jeremy Fu; Jeremy Teboul; Jianfeng Chi; Jianyu Huang; Jie Wang; Jiecao Yu; Joanna Bitton; Joe Spisak; Joelle Pineau; Jon Carvill; Jongsoo Park; Joseph Rocca; Joshua Johnstun; Junteng Jia; Kalyan Vasuden Alwala; Kam Hou U; Kate Plawiak; Kartikeya Upasani; Kaushik Veeraraghavan; Ke Li; Kenneth Heafield; Kevin Stone; Khalid El-Arini; Krithika Iyer; Kshitiz Malik; Kuenley Chiu; Kunal Bhalla; Kyle Huang; Lakshya Garg; Lauren Rantala-Yeary; Laurens van der Maaten; Lawrence Chen; Leandro Silva; Lee Bell; Lei Zhang; Liang Tan; Louis Martin; Lovish Madaan; Luca Wehrstedt; Lukas Blecher; Luke de Oliveira; Madeline Muzzi; Madian Khabsa; Manav Avlani; Mannat Singh; Manohar Paluri; Mark Zuckerberg; Marcin Kardas; Martynas Mankus; Mathew Oldham; Mathieu Rita; Matthew Lennie; Maya Pavlova; Meghan Keneally; Melanie Kambadur; Mihir Patel; Mikayel Samvelyan; Mike Clark; Mike Lewis; Min Si; Mitesh Kumar Singh; Mo Metanat; Mona Hassan; Naman Goyal; Narjes Torabi; Nicolas Usunier; Nikolay Bashlykov; Nikolay Bogoychev; Niladri Chatterji; Ning Dong; Oliver Aobo Yang; Olivier Duchenne; Onur Celebi; Parth Parekh; Patrick Alrassy; Paul Saab; Pavan Balaji; Pedro Rittner; Pengchuan Zhang; Pengwei Li; Petar Vasic; Peter Weng; Polina Zvyagina; Prajjwal Bhargava; Pratik Dubal; Praveen Krishnan; Punit Singh Koura; Qing He; Rachel Rodriguez; Ragavan Srinivasan; Rahul Mitra; Ramon Calderer; Raymond Li; Robert Stojnic; Roberta Raileanu; Robin Battey; Rocky Wang; Rohit Girdhar; Rohit Patel; Romain Sauvestre; Ronnie Polidoro; Roshan Sumbaly; Ross Taylor; Ruan Silva; Rui Hou; Rui Wang; Russ Howes; Ruty Rinott; Saghar Hosseini; Sai Jayesh Bondu; Samyak Datta; Sanjay Singh; Sara Chugh; Sargun Dhillon; Satadru Pan; Sean Bell; Sergey Edunov; Shaoliang Nie; Sharan Narang; Sharath Raparthy; Shaun Lindsay; Sheng Feng; Sheng Shen; Shenghao Lin; Shiva Shankar; Shruti Bhosale; Shun Zhang; Simon Vandenhende; Sinong Wang; Seohyun Sonia Kim; Soumya Batra; Sten Sootla; Steve Kehoe; Suchin Gururangan; Sumit Gupta; Sunny Virk; Sydney Borodinsky; Tamar Glaser; Tamar Herman; Tamara Best; Tara Fowler; Thomas Georgiou; Thomas Scialom; Tianhe Li; Todor Mihaylov; Tong Xiao; Ujjwal Karn; Vedanuj Goswami; Vibhor Gupta; Vignesh Ramanathan; Viktor Kerkez; Vinay Satish Kumar; Vincent Gonguet; Vish Vogeti; Vlad Poenaru; Vlad Tiberiu Mihailescu; Vladan Petrovic; Vladimir Ivanov; Wei Li; Weiwei Chu; Wenhan Xiong; Wenyin Fu; Wes Bouaziz; Whitney Meers; Will Constable; Xavier Martinet; Xiaojian Wu; Xinbo Gao; Xinfeng Xie; Xuchao Jia; Yaelle Goldschlag; Yann LeCun; Yashesh Gaur; Yasmine Babaei; Ye Qi; Yenda Li; Yi Wen; Yiwen Song; Youngjin Nam; Yuchen Hao; Yuchen Zhang; Yun Wang; Yuning Mao; Yuzi He; Zacharie Delpierre Coudert; Zachary DeVito; Zahra Hankir; Zhaoduo Wen; Zheng Yan; Zhengxing Chen; Zhenyu Yang; Zoe Papakipos