模型简介
模型特点
模型能力
使用案例
量化处理由Richard Erkhov完成。
Meta-Llama-3-8B-Instruct - bnb 4位量化
- 模型创建者: https://huggingface.co/meta-llama/
- 原始模型: https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct/
原始模型描述:
语言:
- 英语
任务标签: 文本生成
标签: - meta
- pytorch
- llama
- llama-3
许可证: 其他
许可证名称: llama3
许可证链接: LICENSE
额外授权提示:
META LLAMA 3社区许可协议
Meta Llama 3版本发布日期:2024年4月18日
"协议"指使用、复制、分发和修改Llama材料的条款和条件。
"文档"指Meta在https://llama.meta.com/get-started/发布的Meta Llama 3的规格、手册和文档。
"被许可方"或"您"指您本人、您的雇主或任何其他个人或实体(如果您代表此类个人或实体签订本协议),且年龄符合适用法律、法规要求,能够提供法律同意,并有法律权限约束您的雇主或此类其他个人或实体(如果您代表他们签订本协议)。
"Meta Llama 3"指基础大语言模型及软件和算法,包括机器学习模型代码、训练模型权重、推理代码、训练代码、微调代码及其他在https://llama.meta.com/llama-downloads发布的元素。
"Llama材料"指Meta专有的Meta Llama 3和文档(或其任何部分)在本协议下提供的集合。
"Meta"或"我们"指Meta Platforms爱尔兰有限公司(如果您位于欧洲经济区或瑞士,或作为实体,主要营业地位于欧洲经济区或瑞士)和Meta Platforms, Inc.(如果您位于欧洲经济区或瑞士以外)。
- 许可权利和再分发。
a. 权利授予。根据Meta在Llama材料中体现的知识产权或其他权利,授予您非独占、全球性、不可转让且免版税的有限许可,以使用、复制、分发、复制、创建衍生作品和修改Llama材料。
b. 再分发和使用。
i. 如果您分发或提供Llama材料(或其任何衍生作品),或使用它们的任何产品或服务(包括另一个AI模型),您应(A)随Llama材料提供本协议的副本;(B)在相关网站、用户界面、博客文章、关于页面或产品文档中显著显示"基于Meta Llama 3构建"。如果您使用Llama材料创建、训练、微调或以其他方式改进AI模型,并将其分发或提供,您还应在任何此类AI模型名称的开头包含"Llama 3"。
ii. 如果您从被许可方处接收Llama材料或其任何衍生作品作为集成终端用户产品的一部分,则本协议第2条不适用于您。
iii. 您必须在分发的所有Llama材料副本中保留以下归属声明,作为此类副本的一部分在"通知"文本文件中分发:"Meta Llama 3根据Meta Llama 3社区许可协议授权,版权所有© Meta Platforms, Inc. 保留所有权利。"
iv. 您对Llama材料的使用必须遵守适用的法律法规(包括贸易合规法律法规),并遵守Llama材料的可接受使用政策(可在https://llama.meta.com/llama3/use-policy获取),该政策通过引用并入本协议。
v. 您不得使用Llama材料或其任何输出或结果来改进任何其他大语言模型(不包括Meta Llama 3或其衍生作品)。
-
附加商业条款。如果在Meta Llama 3版本发布日期,由被许可方或其关联公司提供的产品或服务的月活跃用户在前一个日历月超过7亿,您必须向Meta申请许可,Meta可自行决定是否授予您许可,除非或直到Meta明确授予您此类权利,否则您无权行使本协议下的任何权利。
-
免责声明。除非适用法律要求,Llama材料及其任何输出和结果均按"原样"提供,不提供任何形式的保证,Meta否认所有明示或默示的保证,包括但不限于所有权、不侵权、适销性或特定用途适用性的保证。您全权负责确定使用或再分发Llama材料的适当性,并承担与使用Llama材料及其任何输出和结果相关的所有风险。
-
责任限制。在任何情况下,Meta或其关联公司均不对因本协议引起的任何理论下的责任负责,无论是合同、侵权、疏忽、产品责任或其他原因,包括任何利润损失或任何间接、特殊、附带、惩戒性或惩罚性损害赔偿,即使Meta或其关联公司已被告知此类损害的可能性。
-
知识产权。
a. 本协议未授予任何商标许可,且在与Llama材料相关的情况下,Meta和被许可方均不得使用对方或其关联公司拥有或关联的任何名称或标记,除非为合理和惯常使用描述和再分发Llama材料所需或本第5(a)条所述。Meta特此授予您使用"Llama 3"("标记")的许可,仅用于遵守第1.b.i条最后一句话的要求。您将遵守Meta的品牌指南(当前可在https://about.meta.com/brand/resources/meta/company-brand/获取)。您使用标记所产生的所有商誉将归属于Meta。
b. 在Meta对Llama材料及Meta或其代表制作的衍生作品的所有权前提下,对于您制作的Llama材料的任何衍生作品和修改,在您和Meta之间,您是并将是此类衍生作品和修改的所有者。
c. 如果您对Meta或任何实体提起诉讼或其他程序(包括诉讼中的交叉索赔或反诉),指控Llama材料或Meta Llama 3输出或结果或其任何部分构成对您拥有或可许可的知识产权或其他权利的侵权,则本协议授予您的任何许可应自提起诉讼或索赔之日起终止。您将赔偿并使Meta免受因您使用或分发Llama材料而引起的任何第三方索赔的损害。
-
期限和终止。本协议的期限自您接受本协议或访问Llama材料之日起开始,并将持续有效,直至根据本协议的条款和条件终止。Meta可在您违反本协议的任何条款或条件时终止本协议。本协议终止后,您应删除并停止使用Llama材料。第3、4和7条在本协议终止后仍然有效。
-
适用法律和管辖权。本协议将根据加利福尼亚州法律解释和执行,不考虑法律冲突原则,《联合国国际货物销售合同公约》不适用于本协议。加利福尼亚州的法院对本协议引起的任何争议拥有专属管辖权。
Meta Llama 3可接受使用政策
Meta致力于促进其工具和功能的安全和公平使用,包括Meta Llama 3。如果您访问或使用Meta Llama 3,您同意本可接受使用政策("政策")。本政策的最新版本可在https://llama.meta.com/llama3/use-policy找到。
禁止用途
我们希望每个人都能安全、负责任地使用Meta Llama 3。您同意您不会使用或允许他人使用Meta Llama 3进行以下行为:
- 违反法律或他人权利,包括:
- 参与、推广、生成、促成、鼓励、计划、煽动或进一步非法或违法活动或内容,例如:
- 暴力或恐怖主义
- 对儿童的剥削或伤害,包括招揽、创建、获取或传播儿童剥削内容或未报告儿童性虐待材料
- 人口贩卖、剥削和性暴力
- 向未成年人非法分发信息或材料,包括淫秽材料,或未对此类信息或材料实施法律要求的年龄限制
- 性招揽
- 任何其他犯罪活动
- 参与、推广、煽动或便利对个人或群体的骚扰、虐待、威胁或欺凌
- 参与、推广、煽动或便利在就业、就业福利、信贷、住房、其他经济利益或其他基本商品和服务方面的歧视或其他非法或有害行为
- 从事未经授权或无执照的任何职业实践,包括但不限于金融、法律、医疗/健康或相关专业实践
- 未经适用法律要求的权利和同意,收集、处理、披露、生成或推断健康、人口统计或其他敏感个人或私人信息
- 参与或便利任何侵犯、盗用或以其他方式侵犯第三方权利的行为,或生成任何此类内容,包括使用Llama材料的任何产品或服务的输出或结果
- 创建、生成或便利创建恶意代码、恶意软件、计算机病毒或任何其他可能禁用、过载、干扰或损害网站或计算机系统的正常运行、完整性、操作或外观的行为
- 参与、推广、生成、促成、鼓励、计划、煽动或进一步非法或违法活动或内容,例如:
- 参与、推广、煽动、便利或协助计划或开发可能导致个人死亡或身体伤害的活动,包括与以下相关的Meta Llama 3使用:
- 军事、战争、核工业或应用、间谍活动、使用受美国国务院维护的《国际武器贸易条例》(ITAR)约束的材料或活动
- 枪支和非法武器(包括武器开发)
- 非法毒品和受管制/受控物质
- 关键基础设施、交通技术或重型机械的操作
- 自残或伤害他人,包括自杀、自残和饮食失调
- 任何旨在煽动或促进暴力、虐待或对个人造成身体伤害的内容
- 故意欺骗或误导他人,包括与以下相关的Meta Llama 3使用:
- 生成、推广或进一步欺诈或虚假信息的创建或推广
- 生成、推广或进一步诽谤性内容,包括诽谤性陈述、图像或其他内容的创建
- 生成、推广或进一步分发垃圾邮件
- 未经同意、授权或法律权利冒充他人
- 表示Meta Llama 3或其输出是人工生成的
- 生成或便利虚假在线互动,包括虚假评论和其他虚假在线互动手段
- 未向终端用户适当披露您的AI系统的任何已知危险
请通过以下方式之一报告违反本政策的行为、软件"漏洞"或其他可能导致违反本政策的问题:
- 报告模型问题:https://github.com/meta-llama/llama3
- 报告模型生成的风险内容:developers.facebook.com/llama_output_feedback
- 报告漏洞和安全问题:facebook.com/whitehat/info
- 报告违反可接受使用政策或未经许可使用Meta Llama 3的行为:LlamaUseReport@meta.com
额外授权字段:
名字:文本
姓氏:文本
出生日期:日期选择器
国家:国家
所属机构:文本
地理位置:IP定位
通过点击下方的提交按钮,我接受许可条款,并确认我提供的信息将根据Meta隐私政策进行收集、存储、处理和共享:复选框
额外授权描述:您提供的信息将根据Meta隐私政策进行收集、存储、处理和共享。
额外授权按钮内容:提交
小部件:
- 示例标题:你好
消息:- 角色:用户
内容:嘿,我叫Julien!你好吗?
- 角色:用户
- 示例标题:冬季假期
消息:- 角色:系统
内容:你是一个乐于助人且诚实的助手。请简洁、真实地回答。 - 角色:用户
内容:你能推荐一个适合冬季假期的地方吗?
- 角色:系统
- 示例标题:编程助手
消息:- 角色:系统
内容:你是一个乐于助人且诚实的代码和编程助手。请简洁、真实地回答。 - 角色:用户
内容:写一个计算第n个斐波那契数的函数。
- 角色:系统
推理:
参数:
最大新令牌数:300
停止:
- <|end_of_text|>
- <|eot_id|>
模型详情
Meta开发并发布了Meta Llama 3系列大语言模型(LLMs),这是一组预训练和指令调优的生成文本模型,包含8B和70B两种规模。Llama 3指令调优模型针对对话用例进行了优化,在许多常见的行业基准测试中优于许多可用的开源聊天模型。此外,在开发这些模型时,我们非常注重优化帮助性和安全性。
模型开发者 Meta
变体 Llama 3有两种规模——8B和70B参数——包括预训练和指令调优变体。
输入 模型仅输入文本。
输出 模型仅生成文本和代码。
模型架构 Llama 3是一种自回归语言模型,使用优化的Transformer架构。调优版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)来与人类对帮助性和安全性的偏好对齐。
训练数据 | 参数 | 上下文长度 | GQA | 令牌计数 | 知识截止 | |
Llama 3 | 新的公开在线数据混合。 | 8B | 8k | 是 | 15T+ | 2023年3月 |
70B | 8k | 是 | 2023年12月 |
Llama 3模型系列。令牌计数仅指预训练数据。8B和70B版本均使用分组查询注意力(GQA)以提高推理可扩展性。
模型发布日期 2024年4月18日。
状态 这是一个基于离线数据集训练的静态模型。随着我们根据社区反馈改进模型安全性,将发布调优模型的未来版本。
许可证 可在以下网址获取自定义商业许可证:https://llama.meta.com/llama3/license
关于模型的提问或评论发送至何处 有关如何提供模型反馈或评论的说明可在模型README中找到。有关生成参数的技术信息以及如何在应用中使用Llama 3的配方,请访问此处。
预期用途
预期用例 Llama 3适用于英语的商业和研究用途。指令调优模型适用于类似助手的聊天,而预训练模型可适应各种自然语言生成任务。
范围外 以任何方式违反适用法律法规(包括贸易合规法律)的使用。以任何其他被可接受使用政策和Llama 3社区许可禁止的方式使用。以英语以外的语言使用。
注意:开发者可以针对英语以外的语言微调Llama 3模型,前提是他们遵守Llama 3社区许可和可接受使用政策。
使用方法
此存储库包含两个版本的Meta-Llama-3-8B-Instruct,分别用于transformers和原始llama3
代码库。
使用transformers
您可以使用Transformers流水线抽象运行对话推理,或利用Auto类与generate()
函数。让我们看看两者的示例。
Transformers流水线
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
messages = [
{"role": "system", "content": "你是一个海盗聊天机器人,总是用海盗语回答!"},
{"role": "user", "content": "你是谁?"},
]
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):])
Transformers AutoModelForCausalLM
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "你是一个海盗聊天机器人,总是用海盗语回答!"},
{"role": "user", "content": "你是谁?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
使用llama3
请按照存储库中的说明操作。
要下载原始检查点,请参阅以下使用huggingface-cli
的示例命令:
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include "original/*" --local-dir Meta-Llama-3-8B-Instruct
对于Hugging Face支持,我们推荐使用transformers或TGI,但类似的命令也适用。
硬件和软件
训练因素 我们使用自定义训练库、Meta的研究超级计算机和生产集群进行预训练。微调、注释和评估也在第三方云计算上执行。
碳足迹预训练 累计使用了7.7M GPU小时的计算,硬件类型为H100-80GB(TDP为700W)。估计总排放量为2290 tCO2eq,其中100%由Meta的可持续发展计划抵消。
时间(GPU小时) | 功耗(W) | 碳排放(tCO2eq) | |
Llama 3 8B | 1.3M | 700 | 390 |
Llama 3 70B | 6.4M | 700 | 1900 |
总计 | 7.7M | 2290 |
预训练期间的CO2排放。时间:训练每个模型所需的总GPU时间。功耗:所用GPU设备的峰值功率容量,根据功率使用效率调整。100%的排放直接由Meta的可持续发展计划抵消,并且因为我们公开释放这些模型,其他人无需承担预训练成本。
训练数据
概述 Llama 3在超过15万亿令牌的公开可用数据上进行了预训练。微调数据包括公开可用的指令数据集,以及超过1000万个人工标注示例。预训练和微调数据集均不包含Meta用户数据。
数据新鲜度 预训练数据的截止日期为2023年3月(7B模型)和2023年12月(70B模型)。
基准测试
在本节中,我们报告Llama 3模型在标准自动基准测试中的结果。对于所有评估,我们使用内部评估库。有关方法的详细信息,请参阅此处。
基础预训练模型
类别 | 基准 | Llama 3 8B | Llama2 7B | Llama2 13B | Llama 3 70B | Llama2 70B |
通用 | MMLU(5-shot) | 66.6 | 45.7 | 53.8 | 79.5 | 69.7 |
AGIEval英语(3-5 shot) | 45.9 | 28.8 | 38.7 | 63.0 | 54.8 | |
CommonSenseQA(7-shot) | 72.6 | 57.6 | 67.6 | 83.8 | 78.7 | |
Winogrande(5-shot) | 76.1 | 73.3 | 75.4 | 83.1 | 81.8 | |
BIG-Bench Hard(3-shot,CoT) | 61.1 | 38.1 | 47.0 | 81.3 | 65.7 | |
ARC-Challenge(25-shot) | 78.6 | 53.7 | 67.6 | 93.0 | 85.3 | |
知识推理 | TriviaQA-Wiki(5-shot) | 78.5 | 72.1 | 79.6 | 89.7 | 87.5 |
阅读理解 | SQuAD(1-shot) | 76.4 | 72.2 | 72.1 | 85.6 | 82.6 |
QuAC(1-shot,F1) | 44.4 | 39.6 | 44.9 | 51.1 | 49.4 | |
BoolQ(0-shot) | 75.7 | 65.5 | 66.9 | 79.0 | 73.1 | |
DROP(3-shot,F1) | 58.4 | 37.9 | 49.8 | 79.7 | 70.2 |
指令调优模型
基准 | Llama 3 8B | Llama 2 7B | Llama 2 13B | Llama 3 70B | Llama 2 70B |
MMLU(5-shot) | 68.4 | 34.1 | 47.8 | 82.0 | 52.9 |
GPQA(0-shot) | 34.2 | 21.7 | 22.3 | 39.5 | 21.0 |
HumanEval(0-shot) | 62.2 | 7.9 | 14.0 | 81.7 | 25.6 |
GSM-8K(8-shot,CoT) | 79.6 | 25.7 | 77.4 | 93.0 | 57.5 |
MATH(4-shot,CoT) | 30.0 | 3.8 | 6.7 | 50.4 | 11.6 |
责任与安全
我们相信,开放的AI方法会带来更好、更安全的产品、更快的创新和更大的整体市场。我们致力于负责任的AI开发,并采取了一系列措施来限制滥用和危害,并支持开源社区。
基础模型是广泛适用的技术,旨在用于多样化的应用。它们并非设计为开箱即用地满足所有开发者对所有用例的安全级别偏好,因为这些偏好本质上会因不同应用而异。
相反,负责任的LLM应用部署是通过在应用开发的各个阶段实施一系列安全最佳实践来实现的,从模型预训练、微调到部署由保障措施组成的系统,以根据具体用例和受众量身定制安全需求。
作为Llama 3发布的一部分,我们更新了负责任使用指南,概述开发者为其实施模型和系统级安全所需的步骤和最佳实践。我们还提供了一套资源,包括Meta Llama Guard 2和Code Shield保障措施。这些工具已被证明能大幅降低LLM系统的残余风险,同时保持高水平的帮助性。我们鼓励开发者根据其需求调整和部署这些保障措施,并提供参考实现以帮助您入门。
Llama 3-Instruct
如负责任使用指南所述,模型帮助性和模型对齐之间可能存在不可避免的权衡。开发者应根据其具体用例和受众权衡对齐和帮助性的好处。在使用Llama模型时,开发者应警惕残余风险,并根据需要利用额外的安全工具以达到其用例的安全标准。
安全
对于我们的指令调优模型,我们进行了广泛的红队演练,执行了对抗性评估,并实施了安全缓解技术以降低残余风险。与任何大语言模型一样,残余风险可能仍然存在,我们建议开发者在其用例的背景下评估这些风险。同时,我们正在与社区合作,使AI安全基准标准透明、严谨且可解释。
拒绝
除了残余风险外,我们非常重视模型对良性提示的拒绝。过度拒绝不仅会影响用户体验,在某些情况下甚至可能有害。我们听取了开发者社区的反馈,并改进了微调,确保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在用作编码助手时建议不安全代码的倾向,以及Llama 3在帮助执行网络攻击请求时的倾向,其中攻击由行业标准MITRE ATT&CK网络攻击本体定义。在我们的不安全编码和网络攻击者帮助性测试中,Llama 3的行为与同等编码能力的模型相同或更安全。
儿童安全
儿童安全风险评估由专家团队进行,以评估模型产生可能导致儿童安全风险的输出的能力,并通过微调告知任何必要和适当的风险缓解措施。我们利用这些专家红队演练来扩展评估基准的覆盖范围,贯穿Llama 3模型开发。对于Llama 3,我们使用基于目标的方法进行了新的深入会话,评估模型沿多个攻击向量的风险。我们还与内容专家合作,进行红队演练,评估潜在违规内容,同时考虑市场特定的细微差别或经验。
社区
生成式AI安全需要专业知识和工具,我们相信开放社区的力量可以加速其进展。我们是开放联盟的活跃成员,包括AI联盟、AI合作伙伴关系和MLCommons,积极贡献于安全标准化和透明度。我们鼓励社区采用MLCommons概念验证评估等分类法,以促进安全和内容评估的协作和透明度。我们的Purple Llama工具已开源供社区使用,并广泛分布在包括云服务提供商在内的生态系统合作伙伴中。我们鼓励社区贡献到我们的GitHub存储库。
最后,我们建立了一套资源,包括输出报告机制和漏洞赏金计划,以在社区的帮助下持续改进Llama技术。
伦理考虑和限制
Llama 3的核心价值观是开放、包容和帮助性。它旨在服务所有人,并适用于广泛的使用场景。因此,它被设计为对来自不同背景、经验和观点的人们易于访问。Llama 3以用户及其需求为出发点,不插入不必要的判断或规范性,同时反映理解即使在某些情况下看似有问题的内容在其他情况下也可能有宝贵用途。它尊重所有用户的尊严和自主权,尤其是推动创新和进步的自由思想和表达价值观。
但Llama 3是一项新技术,与任何新技术一样,其使用存在风险。迄今为止的测试仅以英语进行,并未涵盖也不可能涵盖所有场景。因此,与所有LLM一样,Llama 3的潜在输出无法提前预测,模型在某些情况下可能对用户提示产生不准确、有偏见或其他令人反感的响应。因此,在部署任何Llama 3模型应用之前,开发者应进行针对其具体应用的安全测试和调优。如负责任使用指南所述,我们建议将Purple Llama解决方案纳入您的工作流程,特别是Llama Guard,它提供了一个基础模型来过滤输入和输出提示,以在模型级安全之上添加系统


