模型简介
模型特点
模型能力
使用案例
base_model: meta-llama/Llama-3.3-70B-Instruct language:
- en library_name: transformers license: llama3.3 tags:
- llama-3
- llama
- meta
- unsloth
- transformers
- pytorch
查看我们的模型集合,获取Llama 3.3所有版本,包括GGUF、4-bit和原始16-bit格式。
通过Unsloth,以5倍速度和70%更低内存微调Llama 3.3、Gemma 2、Mistral 2!
我们为Llama 3.1(8B)提供了一个免费的Google Colab Tesla T4笔记本:https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama3.1_(8B)-Alpaca.ipynb
unsloth/Llama-3.3-70B-Instruct-GGUF
有关该模型的更多详情,请访问Meta的原始模型卡片
✨ 免费微调
所有笔记本都适合初学者!添加您的数据集,点击“全部运行”,您将获得一个速度提升2倍的微调模型,可以导出为GGUF、vLLM或上传到Hugging Face。
Unsloth支持 | 免费笔记本 | 性能 | 内存使用 |
---|---|---|---|
Llama-3.2 (3B) | ▶️ 在Colab上开始 | 2.4倍速度 | 减少58% |
Llama-3.2 (11B视觉) | ▶️ 在Colab上开始 | 2倍速度 | 减少60% |
Qwen2 VL (7B) | ▶️ 在Colab上开始 | 1.8倍速度 | 减少60% |
Qwen2.5 (7B) | ▶️ 在Colab上开始 | 2倍速度 | 减少60% |
Llama-3.1 (8B) | ▶️ 在Colab上开始 | 2.4倍速度 | 减少58% |
Phi-3.5 (迷你) | ▶️ 在Colab上开始 | 2倍速度 | 减少50% |
Gemma 2 (9B) | ▶️ 在Colab上开始 | 2.4倍速度 | 减少58% |
Mistral (7B) | ▶️ 在Colab上开始 | 2.2倍速度 | 减少62% |
- 这个Llama 3.2对话笔记本适用于ShareGPT ChatML / Vicuna模板。
- 这个文本补全笔记本用于原始文本。这个DPO笔记本可以复制Zephyr。
- * Kaggle有2个T4,但我们只使用1个。由于开销,1个T4的速度是5倍。
特别感谢
非常感谢Meta和Llama团队创建并发布了这些模型
模型信息
Meta Llama 3.3多语言大语言模型(LLM)是一个预训练和指令调优的生成模型,70B(文本输入/文本输出)。Llama 3.3指令调优的纯文本模型针对多语言对话用例进行了优化,在许多常见的行业基准测试中优于可用的开源和闭源聊天模型。
模型开发者: Meta
模型架构: Llama 3.3是一个自回归语言模型,使用了优化的transformer架构。调优版本使用监督微调(SFT)和人类反馈强化学习(RLHF)来与人类偏好对齐,以提高帮助性和安全性。
训练数据 | 参数 | 输入模态 | 输出模态 | 上下文长度 | GQA | 标记数量 | 知识截止 | |
---|---|---|---|---|---|---|---|---|
Llama 3.3 (纯文本) | 新的公开在线数据混合。 | 70B | 多语言文本 | 多语言文本和代码 | 128k | 是 | 15T+ | 2023年12月 |
支持的语言: 英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
Llama 3.3模型。标记数量仅指预训练数据。所有模型版本都使用分组查询注意力(GQA)以提高推理可扩展性。
模型发布日期:
- 70B Instruct: 2024年12月6日
状态: 这是一个在离线数据集上训练的静态模型。未来版本的调优模型将根据社区反馈改进模型安全性后发布。
许可证 一个定制的商业许可证,Llama 3.3社区许可证协议,可在以下地址获取:https://github.com/meta-llama/llama-models/blob/main/models/llama3_3/LICENSE
关于模型的问题或意见发送到哪里 有关如何提供反馈或意见的说明可以在模型README中找到。有关生成参数的技术信息和如何在应用程序中使用Llama 3.3的配方,请访问这里。
预期用途
预期用例 Llama 3.3适用于多种语言的商业和研究用途。指令调优的纯文本模型适用于类似助手的聊天,而预训练模型可以适应各种自然语言生成任务。Llama 3.3模型还支持利用其输出来改进其他模型,包括合成数据生成和蒸馏。Llama 3.3社区许可证允许这些用例。
超出范围 以任何违反适用法律或法规(包括贸易合规法律)的方式使用。以其他方式使用,违反可接受使用政策和Llama 3.3社区许可证。在超出本模型卡片明确引用的支持语言之外的语言中使用**。
**注意:Llama 3.3已经训练了比8种支持语言更广泛的语言集合。开发者可以在遵守Llama 3.3社区许可证和可接受使用政策的情况下,为超出8种支持语言的语言微调Llama 3.3模型,并负责确保在额外语言中使用Llama 3.3是以安全和负责任的方式进行的。
如何使用
此存储库包含两个版本的Llama-3.3-70B-Instruct,用于transformers和原始的llama
代码库。
与transformers一起使用
从transformers >= 4.43.0
开始,您可以使用Transformers的pipeline
抽象或利用Auto类与generate()
函数运行对话推理。
确保通过pip install --upgrade transformers
更新您的transformers安装。
查看以下代码片段以了解与Transformers的使用:
import transformers
import torch
model_id = "meta-llama/Llama-3.3-70B-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": "你是谁?"},
]
outputs = pipeline(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
与transformers的工具使用
LLaMA-3.3支持多种工具使用格式。您可以在此处查看完整的提示格式化指南here。
工具使用也通过Transformers中的聊天模板支持。 这里是一个快速示例,展示了一个简单的工具:
# 首先,定义一个工具
def get_current_temperature(location: str) -> float:
"""
获取某个位置的当前温度。
参数:
location: 要获取温度的位置,格式为“城市,国家”
返回:
指定位置的当前温度,单位为浮点数。
"""
return 22. # 实际函数应该真正获取温度!
# 接下来,创建一个聊天并应用聊天模板
messages = [
{"role": "system", "content": "你是一个回答天气查询的机器人。"},
{"role": "user", "content": "嘿,巴黎现在的温度是多少?"}
]
inputs = tokenizer.apply_chat_template(messages, tools=[get_current_temperature], add_generation_prompt=True)
然后,您可以像往常一样从这个输入生成文本。如果模型生成了一个工具调用,您应该像这样将其添加到聊天中:
tool_call = {"name": "get_current_temperature", "arguments": {"location": "Paris, France"}}
messages.append({"role": "assistant", "tool_calls": [{"type": "function", "function": tool_call}]})
然后调用工具并附加结果,使用tool
角色,像这样:
messages.append({"role": "tool", "name": "get_current_temperature", "content": "22.0"})
之后,您可以再次generate()
让模型在聊天中使用工具结果。请注意,这是一个非常简短的工具调用介绍 - 更多信息,
请参阅LLaMA提示格式文档和Transformers的工具使用文档。
与bitsandbytes
一起使用
模型检查点可以用于8-bit
和4-bit
,以使用bitsandbytes
和transformers
进行进一步的内存优化
查看以下代码片段以了解使用:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "meta-llama/Llama-3.3-70B-Instruct"
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
quantized_model = AutoModelForCausalLM.from_pretrained(
model_id, device_map="auto", torch_dtype=torch.bfloat16, quantization_config=quantization_config)
tokenizer = AutoTokenizer.from_pretrained(model_id)
input_text = "我们晚餐吃什么?"
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
output = quantized_model.generate(**input_ids, max_new_tokens=10)
print(tokenizer.decode(output[0], skip_special_tokens=True))
要加载4-bit,只需传递load_in_4bit=True
与llama
一起使用
请遵循存储库中的说明。
要下载原始检查点,请参阅以下使用huggingface-cli
的示例命令:
huggingface-cli download meta-llama/Llama-3.3-70B-Instruct --include "original/*" --local-dir Llama-3.3-70B-Instruct
硬件和软件
训练因素 我们使用了自定义训练库、Meta自定义构建的GPU集群和生产基础设施进行预训练。微调、注释和评估也在生产基础设施上进行。
训练能源使用 训练累计使用了39.3M GPU小时的计算,在H100-80GB(TDP为700W)类型的硬件上,如下表所示。训练时间是训练每个模型所需的总GPU时间,功耗是每个使用的GPU设备的峰值功率容量,根据电源使用效率进行调整。
训练温室气体排放 基于位置的温室气体排放估计总量为11,390吨CO2eq用于训练。自2020年以来,Meta在全球运营中保持了净零温室气体排放,并100%匹配了其电力使用与可再生能源,因此训练的市场温室气体排放总量为0吨CO2eq。
训练时间(GPU小时) | 训练功耗(W) | 训练基于位置的温室气体排放(吨CO2eq) | 训练市场温室气体排放(吨CO2eq) | |
---|---|---|---|---|
Llama 3.3 70B | 7.0M | 700 | 2,040 | 0 |
用于确定训练能源使用和温室气体排放的方法可以在此处找到here。 由于Meta公开释放了这些模型,其他人不会产生训练能源使用和温室气体排放。
训练数据
概述: Llama 3.3在公开可用的来源上预训练了约15万亿标记的数据。微调数据包括公开可用的指令数据集,以及超过25M的合成生成示例。
数据新鲜度: 预训练数据的截止日期为2023年12月。
基准测试 - 英文文本
在本节中,我们报告了Llama 3.3相对于我们之前模型的结果。
指令调优模型
类别 | 基准 | # 样本 | 指标 | Llama 3.1 8B Instruct | Llama 3.1 70B Instruct | Llama-3.3 70B Instruct | Llama 3.1 405B Instruct |
---|---|---|---|---|---|---|---|
MMLU (CoT) | 0 | macro_avg/acc | 73.0 | 86.0 | 86.0 | 88.6 | |
MMLU Pro (CoT) | 5 | macro_avg/acc | 48.3 | 66.4 | 68.9 | 73.3 | |
可操控性 | IFEval | 80.4 | 87.5 | 92.1 | 88.6 | ||
推理 | GPQA Diamond (CoT) | 0 | acc | 31.8 | 48.0 | 50.5 | 49.0 |
代码 | HumanEval | 0 | pass@1 | 72.6 | 80.5 | 88.4 | 89.0 |
MBPP EvalPlus (base) | 0 | pass@1 | 72.8 | 86.0 | 87.6 | 88.6 | |
数学 | MATH (CoT) | 0 | sympy_intersection_score | 51.9 | 68.0 | 77.0 | 73.8 |
工具使用 | BFCL v2 | 0 | overall_ast_summary/macro_avg/valid | 65.4 | 77.5 | 77.3 | 81.1 |
多语言 | MGSM | 0 | em | 68.9 | 86.9 | 91.1 | 91.6 |
责任与安全
作为我们负责任发布方法的一部分,我们遵循了三管齐下的策略来管理信任与安全风险:
- 使开发者能够为目标受众和Llama支持的用例部署有帮助、安全和灵活的体验。
- 保护开发者免受旨在利用Llama能力可能造成伤害的对抗性用户的侵害。
- 为社区提供保护,帮助防止我们的模型被滥用。
负责任部署
Llama是一项基础技术,设计用于各种用例,Meta的Llama模型如何负责任部署的示例可以在我们的社区故事网页中找到。我们的方法是构建最有帮助的模型,使世界受益于技术力量,通过对通用用例的标准危害集进行模型安全对齐。然后,开发者处于主导地位,为他们的用例定制安全性,定义自己的政策,并在其Llama系统中部署必要的保障措施。Llama 3.3是按照我们的负责任使用指南中的最佳实践开发的,您可以参考负责任使用指南了解更多。
Llama 3.3 instruct
我们进行安全微调的主要目标是为研究社区提供一个有价值的资源,用于研究安全微调的鲁棒性,并为开发者提供一个现成的、安全和强大的模型,用于各种应用程序,以减少开发者部署安全AI系统的工作量。有关实施的安全缓解措施的更多详情,请阅读Llama 3论文。
微调数据
我们采用多方面的数据收集方法,结合来自我们供应商的人工生成数据和合成数据,以减轻潜在的安全风险。我们开发了许多基于大型语言模型(LLM)的分类器,使我们能够深思熟虑地选择高质量的提示和响应,增强数据质量控制。
拒绝和语气
基于我们与Llama 3开始的工作,我们非常重视模型对良性提示的拒绝以及拒绝语气。我们在安全数据策略中包括了边界和对抗性提示,并修改了我们的安全数据响应以遵循语气指南。
Llama 3.3系统
大型语言模型,包括Llama 3.3,不是设计为孤立部署,而是应作为具有额外安全护栏的整体AI系统的一部分部署。 开发者在构建代理系统时应部署系统保障措施。保障措施是实现正确的帮助性-安全性对齐以及减轻系统和任何模型或系统与外部工具集成的固有安全和安全风险的关键。
作为我们负责任发布方法的一部分,我们为社区提供了保障措施,开发者应与Llama模型或其他LLMs一起部署,包括Llama Guard 3、Prompt Guard和Code Shield。我们所有的参考实现演示默认包含这些保障措施,因此开发者可以开箱即用地受益于系统级安全性。
新能力
请注意,此发布引入了新能力,包括更长的上下文窗口、多语言输入和输出,以及开发者可能与第三方工具的集成。构建这些新能力需要特定的考虑,除了通常适用于所有生成AI用例的最佳实践。 工具使用: 就像标准软件开发一样,开发者负责将LLM与他们选择的工具和服务集成。他们应为其用例定义明确的政策,并评估他们使用的第三方服务的完整性,以在使用此能力时了解安全和安全的限制。有关第三方保障措施安全部署的最佳实践,请参阅负责任使用指南。 多语言性: Llama 3.3支持除英语外的7种语言:法语、德语、印地语、意大利语、葡萄牙语、西班牙语和泰语。Llama可能能够输出超出安全和帮助性性能阈值的其他语言的文本。我们强烈建议开发者在不实施微调和系统控制的情况下,不要使用此模型以非支持语言进行对话,以符合其政策和负责任使用指南中分享的最佳实践。
评估
我们评估了Llama模型的常见用例以及特定能力。常见用例评估测量了为最常见构建的应用程序(包括聊天机器人、编码助手、工具调用)的系统的安全风险。我们构建了专门的对抗性评估数据集,并评估了由Llama模型和Llama Guard 3组成的系统,以过滤输入提示和输出响应。在上下文中评估应用程序非常重要,我们建议为您的用例构建专门的评估数据集。Prompt Guard和Code Shield也可用,如果与应用程序相关。
能力评估测量了Llama模型对特定能力的漏洞,为此我们制作了专门的基准测试,包括长上下文、多语言、工具调用、编码或记忆。
红队测试
对于这两种情况,我们进行了定期红队测试,目的是通过对抗性提示发现风险,并利用学习成果改进我们的基准测试和安全调优数据集。
我们早期与关键风险领域的主题专家合作,了解这些现实世界危害的性质,以及这些模型如何可能对社会造成意外伤害。基于这些对话,我们为红队测试制定了一组对抗性目标,例如提取有害信息或重新编程模型以潜在有害的方式行动。 红队由网络安全、对抗性机器学习、负责任AI和完整性专家组成,此外还有多语言内容专家,具有特定地理市场完整性问题的背景。 .
关键和其他风险
我们特别专注于缓解以下关键风险领域:
1- CBRNE(化学、生物、放射、核和爆炸材料)帮助性
为了评估与化学和生物武器扩散相关的风险,我们进行了提升测试,旨在评估使用Llama 3.3模型是否会显著增加恶意行为者计划或执行使用这些类型武器的攻击的能力。
2. 儿童安全
儿童安全风险评估由专家团队进行,以评估模型产生可能导致儿童安全风险的输出的能力,并通过微调通知任何必要和适当的风险缓解措施。我们利用这些专家红队测试会话来扩展我们的评估基准测试覆盖范围,通过Llama 3模型开发。 对于Llama 3,我们使用基于目标的方法进行了新的深入会话,以评估模型沿多个攻击向量的风险,包括Llama 3训练的其他语言。我们还与内容专家合作,进行红队测试练习,评估潜在的违规内容,同时考虑市场特定的细微差别或经验。
3. 网络攻击启用
我们的网络攻击提升研究调查了LLMs是否可以在黑客任务中增强人类能力,无论是在技能水平还是速度方面。
我们的攻击自动化研究专注于评估LLMs在作为网络进攻操作中的自主代理时的能力,特别是在勒索软件攻击的背景下。此评估与之前考虑LLMs作为交互助手的研究不同。主要目标是评估这些模型是否可以在没有人为干预的情况下有效地作为独立代理执行复杂的网络攻击。
社区
生成AI安全需要专业知识和工具,我们相信开放社区的力量可以加速其进展。我们是开放联盟的活跃成员,包括AI联盟、Partnership on AI和MLCommons,积极贡献于安全标准化和透明度。我们鼓励社区采用像MLCommons概念验证评估这样的分类法,以促进安全和内容评估的协作和透明度。我们的Purple Llama工具是开源的,供社区使用,并广泛分布在包括云服务提供商在内的生态系统合作伙伴中。我们鼓励社区贡献到我们的Github存储库。 我们还设立了Llama Impact Grants计划,以识别和支持Meta的Llama模型在社会利益方面的最引人注目的应用,跨越三个类别:教育、气候和开放创新。来自数百个申请的20个决赛入围者可以在此处找到here。 最后,我们建立了一组资源,包括输出报告机制和漏洞赏金计划,以在社区的帮助下不断改进Llama技术。
伦理考虑和限制
Llama 3.3的核心价值观是开放、包容和帮助性。它旨在为每个人服务,并适用于广泛的用例。因此,它被设计为对许多不同背景、经验和观点的人开放。Llama 3.3以用户及其需求为出发点,不插入不必要的判断或规范性,同时反映了理解,即使在某些情况下看起来有问题


