模型简介
模型特点
模型能力
使用案例
🚀 Llama-3.1-8B-Instruct GGUF模型
Llama-3.1-8B-Instruct GGUF模型采用了超低位量化技术,在保持低内存占用的同时,有效提升了模型的性能和准确性。该模型适用于多种硬件环境,能满足不同场景下的使用需求。
🚀 快速开始
使用transformers库
从transformers >= 4.43.0
版本开始,你可以使用Transformers的pipeline
抽象或借助Auto
类的generate()
函数进行对话推理。
确保通过以下命令更新你的transformers库:
pip install --upgrade transformers
以下是使用示例代码:
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3.1-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
outputs = pipeline(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
你还可以在huggingface-llama-recipes
找到关于如何在本地使用该模型、使用torch.compile()
、辅助生成、量化等方面的详细指南。
使用工具调用功能
LLaMA-3.1支持多种工具使用格式。你可以在这里查看完整的提示格式化指南。
在Transformers中,工具使用也可以通过聊天模板实现。以下是一个简单工具调用的示例:
# 首先,定义一个工具
def get_current_temperature(location: str) -> float:
"""
Get the current temperature at a location.
Args:
location: The location to get the temperature for, in the format "City, Country"
Returns:
The current temperature at the specified location in the specified units, as a float.
"""
return 22. # A real function should probably actually get the temperature!
# 接下来,创建一个聊天并应用聊天模板
messages = [
{"role": "system", "content": "You are a bot that responds to weather queries."},
{"role": "user", "content": "Hey, what's the temperature in Paris right now?"}
]
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的工具使用文档。
使用llama
代码库
请遵循仓库中的说明进行操作。
要下载原始检查点,请使用以下示例命令,借助huggingface-cli
:
huggingface-cli download meta-llama/Meta-Llama-3.1-8B-Instruct --include "original/*" --local-dir Meta-Llama-3.1-8B-Instruct
✨ 主要特性
超低位量化技术
我们最新的量化方法为超低位模型(1 - 2位)引入了精度自适应量化,并在Llama-3-8B上通过基准测试验证了其改进效果。该方法采用特定层策略,在保持极高内存效率的同时保留了准确性。
基准测试优势
在所有测试中,均使用标准困惑度评估管道、2048令牌上下文窗口,并在所有量化中使用相同的提示集。通过对比不同量化方式,我们的方法在多个指标上表现出色,如在IQ1_M中困惑度大幅降低43.9%,IQ2_S在仅增加0.2GB的情况下困惑度降低36.9%等。
多模型格式支持
提供多种模型格式,包括BF16、F16、量化模型(Q4_K、Q6_K、Q8等)以及极低比特量化模型(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0),用户可以根据硬件能力和内存限制选择合适的模型格式。
📦 安装指南
确保通过以下命令更新你的transformers库:
pip install --upgrade transformers
💻 使用示例
基础用法
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3.1-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
outputs = pipeline(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
高级用法
# 工具调用示例
# 首先,定义一个工具
def get_current_temperature(location: str) -> float:
"""
Get the current temperature at a location.
Args:
location: The location to get the temperature for, in the format "City, Country"
Returns:
The current temperature at the specified location in the specified units, as a float.
"""
return 22. # A real function should probably actually get the temperature!
# 接下来,创建一个聊天并应用聊天模板
messages = [
{"role": "system", "content": "You are a bot that responds to weather queries."},
{"role": "user", "content": "Hey, what's the temperature in Paris right now?"}
]
inputs = tokenizer.apply_chat_template(messages, tools=[get_current_temperature], add_generation_prompt=True)
# 生成文本
outputs = pipeline(
inputs,
max_new_tokens=256,
)
# 处理工具调用
tool_call = {"name": "get_current_temperature", "arguments": {"location": "Paris, France"}}
messages.append({"role": "assistant", "tool_calls": [{"type": "function", "function": tool_call}]})
# 调用工具并添加结果
messages.append({"role": "tool", "name": "get_current_temperature", "content": "22.0"})
# 再次生成文本
outputs = pipeline(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
📚 详细文档
选择合适的模型格式
选择正确的模型格式取决于你的硬件能力和内存限制。以下是不同模型格式的详细介绍:
模型格式 | 精度 | 内存使用 | 设备要求 | 最佳用例 |
---|---|---|---|---|
BF16 | 最高 | 高 | 支持BF16的GPU/CPU | 高速推理且减少内存占用 |
F16 | 高 | 高 | 支持FP16的设备 | 当BF16不可用时的GPU推理 |
Q4_K | 中低 | 低 | CPU或低VRAM设备 | 内存受限环境的最佳选择 |
Q6_K | 中 | 中等 | 内存较多的CPU | 量化模型中准确性较好的选择 |
Q8_0 | 高 | 中等 | 有足够VRAM的CPU或GPU | 量化模型中准确性最高的选择 |
IQ3_XS | 极低 | 极低 | 超低内存设备 | 极致内存效率但准确性较低 |
Q4_0 | 低 | 低 | ARM或低内存设备 | llama.cpp可针对ARM设备进行优化 |
包含的文件及详情
Llama-3.1-8B-Instruct-bf16.gguf
:模型权重保存为BF16格式。如果你想将模型重新量化为其他格式,或者你的设备支持BF16加速,可使用此文件。Llama-3.1-8B-Instruct-f16.gguf
:模型权重保存为F16格式。如果你的设备支持FP16,尤其是在BF16不可用时,可使用此文件。Llama-3.1-8B-Instruct-bf16-q8_0.gguf
:输出和嵌入层保持为BF16,其他层量化为Q8_0。适用于支持BF16且需要量化版本的设备。Llama-3.1-8B-Instruct-f16-q8_0.gguf
:输出和嵌入层保持为F16,其他层量化为Q8_0。Llama-3.1-8B-Instruct-q4_k.gguf
:输出和嵌入层量化为Q8_0,其他层量化为Q4_K。适合内存有限的CPU推理。Llama-3.1-8B-Instruct-q4_k_s.gguf
:最小的Q4_K变体,以牺牲一定准确性为代价减少内存使用。适用于极低内存设置。Llama-3.1-8B-Instruct-q6_k.gguf
:输出和嵌入层量化为Q8_0,其他层量化为Q6_K。Llama-3.1-8B-Instruct-q8_0.gguf
:完全Q8量化的模型,准确性更高,但需要更多内存。Llama-3.1-8B-Instruct-iq3_xs.gguf
:IQ3_XS量化,针对极致内存效率进行优化。适用于超低内存设备。Llama-3.1-8B-Instruct-iq3_m.gguf
:IQ3_M量化,提供中等块大小以提高准确性。适用于低内存设备。Llama-3.1-8B-Instruct-q4_0.gguf
:纯Q4_0量化,针对ARM设备进行优化。适用于低内存环境,若追求更高准确性可优先选择IQ4_NL。
模型测试与协作
如果你觉得这些模型有用,请点击“点赞”!同时,欢迎帮助我测试我的AI网络监控助手,该助手具备量子就绪安全检查功能: 👉 免费网络监控器
测试方法
- 点击任意页面右下角的聊天图标。
- 选择一个AI助手类型:
TurboLLM
(GPT-4-mini)FreeLLM
(开源)TestLLM
(仅支持CPU的实验性模型)
测试内容
我正在探索小型开源模型在AI网络监控中的极限,具体包括:
- 针对实时网络服务进行函数调用。
- 研究模型在处理以下任务时的最小规模:
- 自动化Nmap扫描
- 量子就绪检查
- Metasploit集成
不同助手特点
- TestLLM:当前的实验性模型(在6个CPU线程上运行llama.cpp):
- ✅ 零配置设置
- ⏳ 30秒加载时间(推理速度较慢,但无API成本)
- 🔧 寻求帮助! 如果你对边缘设备AI感兴趣,让我们一起合作!
- TurboLLM:使用gpt-4-mini进行:
- 实时网络诊断
- 自动化渗透测试 (Nmap/Metasploit)
- 🔑 通过下载我们的免费网络监控代理获取更多令牌。
- HugLLM:开源模型(约80亿参数):
- 比TurboLLM多2倍的令牌
- AI日志分析
- 🌐 在Hugging Face推理API上运行
示例AI命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a quick Nmap vulnerability test"
🔧 技术细节
模型信息
Meta Llama 3.1是一系列多语言大语言模型(LLM),包括8B、70B和405B大小的预训练和指令微调生成模型(文本输入/文本输出)。Llama 3.1指令微调文本模型(8B、70B、405B)针对多语言对话用例进行了优化,在常见行业基准测试中优于许多可用的开源和闭源聊天模型。
属性 | 详情 |
---|---|
模型开发者 | Meta |
模型架构 | Llama 3.1是一种自回归语言模型,采用优化的Transformer架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)来符合人类对有用性和安全性的偏好。 |
训练数据 | Llama 3.1在约15万亿个公开可用来源的令牌数据上进行预训练。微调数据包括公开可用的指令数据集以及超过2500万个合成生成的示例。 |
支持语言 | 英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。 |
模型发布日期 | 2024年7月23日 |
状态 | 这是一个基于离线数据集训练的静态模型。随着我们通过社区反馈改进模型安全性,未来将发布微调模型的新版本。 |
许可证 | 自定义商业许可证,Llama 3.1社区许可证,可在此处获取。 |
硬件和软件
训练因素
我们使用自定义训练库、Meta定制的GPU集群和生产基础设施进行预训练。微调、注释和评估也在生产基础设施上进行。
训练计算资源
训练总共使用了3930万个H100 - 80GB(TDP为700W)类型硬件的GPU小时计算资源,具体如下表所示。训练时间是训练每个模型所需的总GPU时间,功耗是每个GPU设备的峰值功率容量,并根据功率使用效率进行了调整。
模型 | 训练时间(GPU小时) | 训练功耗(W) | 基于位置的训练温室气体排放量(吨CO2eq) | 基于市场的训练温室气体排放量(吨CO2eq) |
---|---|---|---|---|
Llama 3.1 8B | 146万 | 700 | 420 | 0 |
Llama 3.1 70B | 700万 | 700 | 2040 | 0 |
Llama 3.1 405B | 3084万 | 700 | 8930 | 0 |
总计 | 3930万 | - | 11390 | 0 |
确定训练能源使用和温室气体排放量的方法可在此处找到。由于Meta正在公开发布这些模型,其他人不会产生训练能源使用和温室气体排放。
基准测试分数
基础预训练模型
类别 | 基准测试 | 样本数 | 指标 | Llama 3 8B | Llama 3.1 8B | Llama 3 70B | Llama 3.1 70B | Llama 3.1 405B |
---|---|---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc_char | 66.7 | 66.7 | 79.5 | 79.3 | 85.2 |
通用 | MMLU-Pro (CoT) | 5 | macro_avg/acc_char | 36.2 | 37.1 | 55.0 | 53.8 | 61.6 |
通用 | AGIEval English | 3 - 5 | average/acc_char | 47.1 | 47.8 | 63.0 | 64.6 | 71.6 |
通用 | CommonSenseQA | 7 | acc_char | 72.6 | 75.0 | 83.8 | 84.1 | 85.8 |
通用 | Winogrande | 5 | acc_char | - | 60.5 | - | 83.3 | 86.7 |
通用 | BIG - Bench Hard (CoT) | 3 | average/em | 61.1 | 64.2 | 81.3 | 81.6 | 85.9 |
通用 | ARC - Challenge | 25 | acc_char | 79.4 | 79.7 | 93.1 | 92.9 | 96.1 |
知识推理 | TriviaQA - Wiki | 5 | em | 78.5 | 77.6 | 89.7 | 89.8 | 91.8 |
阅读理解 | SQuAD | 1 | em | 76.4 | 77.0 | 85.6 | 81.8 | 89.3 |
阅读理解 | QuAC (F1) | 1 | f1 | 44.4 | 44.9 | 51.1 | 51.1 | 53.6 |
阅读理解 | BoolQ | 0 | acc_char | 75.7 | 75.0 | 79.0 | 79.4 | 80.0 |
阅读理解 | DROP (F1) | 3 | f1 | 58.4 | 59.5 | 79.7 | 79.6 | 84.8 |
指令微调模型
类别 | 基准测试 | 样本数 | 指标 | Llama 3 8B Instruct | Llama 3.1 8B Instruct | Llama 3 70B Instruct | Llama 3.1 70B Instruct | Llama 3.1 405B Instruct |
---|---|---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc | 68.5 | 69.4 | 82.0 | 83.6 | 87.3 |
通用 | MMLU (CoT) | 0 | macro_avg/acc | 65.3 | 73.0 | 80.9 | 86.0 | 88.6 |
通用 | MMLU - Pro (CoT) | 5 | micro_avg/acc_char | 45.5 | 48.3 | 63.4 | 66.4 | 73.3 |
通用 | IFEval | - | - | 76.8 | 80.4 | 82.9 | 87.5 | 88.6 |
推理 | ARC - C | 0 | acc | 82.4 | 83.4 | 94.4 | 94.8 | 96.9 |
推理 | GPQA | 0 | em | 34.6 | 30.4 | 39.5 | 46.7 | 50.7 |
代码 | HumanEval | 0 | pass@1 | 60.4 | 72.6 | 81.7 | 80.5 | 89.0 |
代码 | MBPP ++ base version | 0 | pass@1 | 70.6 | 72.8 | 82.5 | 86.0 | 88.6 |
代码 | Multipl - E HumanEval | 0 | pass@1 | - | 50.8 | - | 65.5 | 75.2 |
代码 | Multipl - E MBPP | 0 | pass@1 | - | 52.4 | - | 62.0 | 65.7 |
数学 | GSM - 8K (CoT) | 8 | em_maj1@1 | 80.6 | 84.5 | 93.0 | 95.1 | 96.8 |
数学 | MATH (CoT) | 0 | final_em | 29.1 | 51.9 | 51.0 | 68.0 | 73.8 |
工具使用 | API - Bank | 0 | acc | 48.3 | 82.6 | 85.1 | 90.0 | 92.0 |
工具使用 | BFCL | 0 | acc | 60.3 | 76.1 | 83.0 | 84.8 | 88.5 |
工具使用 | Gorilla Benchmark API Bench | 0 | acc | 1.7 | 8.2 | 14.7 | 29.7 | 35.3 |
工具使用 | Nexus (0 - shot) | 0 | macro_avg/acc | 18.1 | 38.5 | 47.8 | 56.7 | 58.7 |
多语言 | Multilingual MGSM (CoT) | 0 | em | - | 68.9 | - | 86.9 | 91.6 |
多语言基准测试
类别 | 基准测试 | 语言 | Llama 3.1 8B | Llama 3.1 70B | Llama 3.1 405B |
---|---|---|---|---|---|
通用 | MMLU (5 - shot, macro_avg/acc) | 葡萄牙语 | 62.12 | 80.13 | 84.95 |
通用 | MMLU (5 - shot, macro_avg/acc) | 西班牙语 | 62.45 | 80.05 | 85.08 |
通用 | MMLU (5 - shot, macro_avg/acc) | 意大利语 | 61.63 | 80.4 | 85.04 |
通用 | MMLU (5 - shot, macro_avg/acc) | 德语 | 60.59 | 79.27 | 84.36 |
通用 | MMLU (5 - shot, macro_avg/acc) | 法语 | 62.34 | 79.82 | 84.66 |
通用 | MMLU (5 - shot, macro_avg/acc) | 印地语 | 50.88 | 74.52 | 80.31 |
通用 | MMLU (5 - shot, macro_avg/acc) | 泰语 | 50.32 | 72.95 | 78.21 |
📄 许可证
自定义商业许可证,Llama 3.1社区许可证,可在此处获取。
许可证协议主要内容
许可权利和再分发
- 权利授予:您被授予在Llama材料中体现的Meta知识产权或Meta拥有的其他权利下的非排他性、全球性、不可转让且免版税的有限许可,以使用、复制、分发、拷贝、创作衍生作品并对Llama材料进行修改。
- 再分发和使用:
- 如果您分发或提供Llama材料(或其任何衍生作品),或包含其中任何内容的产品或服务(包括另一个AI模型),您应(A)随任何此类Llama材料提供本协议的副本;(B)在相关网站、用户界面、博客文章、关于页面或产品文档上显著显示“Built with Llama”。如果您使用Llama材料或Llama材料的任何输出或结果来创建、训练、微调或以其他方式改进一个AI模型,并进行分发或提供,您还应在任何此类AI模型名称的开头包含“Llama”。
- 如果您作为集成最终用户产品的一部分从被许可方处接收Llama材料或其任何衍生作品,则本协议第2条不适用于您。
- 您必须在分发的所有Llama材料副本中保留以下归属声明,该声明应包含在作为此类副本一部分分发的“Notice”文本文件中:“Llama 3.1 is licensed under the Llama 3.1 Community License, Copyright © Meta Platforms, Inc. All Rights Reserved.”
- 您对Llama材料的使用必须遵守适用的法律法规(包括贸易合规法律法规),并遵守Llama材料的可接受使用政策(可在https://llama.meta.com/llama3_1/use-policy获取),该政策特此通过引用并入本协议。
额外商业条款
如果在Llama 3.1版本发布日期,被许可方或其关联方提供的产品或服务的月活跃用户在前一个日历月超过7亿,则您必须向Meta请求许可,Meta可自行决定是否授予您许可。在Meta明确授予您此类权利之前,您无权行使本协议下的任何权利。
免责声明
除非适用法律要求,Llama材料及其任何输出和结果均按“原样”提供,不提供任何形式的保证。Meta明确放弃所有形式的明示和暗示保证,包括但不限于所有权、不侵权、适销性或特定用途适用性的保证。您独自负责确定使用或再分发Llama材料的适当性,并承担与使用Llama材料及其任何输出和结果相关的任何风险。
责任限制
在任何情况下,Meta或其关联方均不对因本协议引起的任何责任理论(无论是合同、侵权、疏忽、产品责任还是其他)导致的任何利润损失或任何间接、特殊、后果性、偶发性、示范性或惩罚性损害承担责任,即使Meta或其关联方已被告知此类损害的可能性。
知识产权
- 本协议未授予任何商标许可,与Llama材料相关,除非在描述和再分发Llama材料时进行合理和惯常使用,或如本节5(a)所述,Meta和被许可方均不得使用对方或其任何关联方拥有或关联的任何名称或标记。Meta特此授予您仅为遵守第1.b.i条最后一句的要求而使用“Llama”(“标记”)的许可。您将遵守Meta的品牌指南(目前可在https://about.meta.com/brand/resources/meta/company-brand/获取)。因您使用标记而产生的所有商誉均归Meta所有。
- 鉴于Meta对Llama材料及其衍生作品的所有权,对于您对Llama材料进行的任何衍生作品和修改,在您和Meta之间,您是并将是此类衍生作品和修改的所有者。
- 如果您对Meta或任何实体提起诉讼或其他程序(包括在诉讼中的交叉索赔或反诉),声称Llama材料或Llama 3.1的输出或结果,或上述任何部分构成侵犯您拥有或可许可的知识产权或其他权利,则本协议授予您的任何许可应自提起此类诉讼或索赔之日起终止。您将赔偿并使Meta免受因您使用或分发Llama材料而引起的或与之相关的任何第三方索赔。
期限和终止
本协议的期限自您接受本协议或访问Llama材料时开始,并将持续有效,直至根据本协议的条款和条件终止。如果您违反本协议的任何条款或条件,Meta可终止本协议。本协议终止后,您应删除并停止使用Llama材料。第3、4和7条在本协议终止后仍然有效。
适用法律和管辖权
本协议将受加利福尼亚州法律管辖并依其解释,不考虑法律选择原则,《联合国国际货物销售合同公约》不适用于本协议。加利福尼亚州的法院对因本协议引起的任何争议具有专属管辖权。
Llama 3.1可接受使用政策
Meta致力于促进其工具和功能(包括Llama 3.1)的安全和公平使用。如果您访问或使用Llama 3.1,即表示您同意本可接受使用政策(“政策”)。本政策的最新版本可在https://llama.meta.com/llama3_1/use-policy找到。
禁止使用情况
我们希望每个人都能安全、负责任地使用Llama 3.1。您同意您不会使用或允许他人使用Llama 3.1进行以下行为:
- 违反法律或他人权利,包括:
- 从事、促进、生成、促成、鼓励、计划、煽动或进一步推动非法或违法活动或内容,例如:
- 暴力或恐怖主义
- 对儿童的剥削或伤害,包括招揽、创建、获取或传播儿童剥削内容或未报告儿童性虐待材料
- 人口贩运、剥削和性暴力
- 向未成年人非法分发信息或材料,包括淫秽材料,或未对此类信息或材料采用法律要求的年龄限制
- 性招揽
- 任何其他犯罪活动
- 从事、促进、煽动或便利对个人或群体的骚扰、虐待、威胁或欺凌
- 从事、促进、煽动或便利在就业、就业福利、信贷、住房、其他经济福利或其他基本商品和服务的提供方面的歧视或其他非法或有害行为
- 从事未经授权或无执照的任何专业实践,包括但不限于金融、法律、医疗/健康或相关专业实践
- 在未获得适用法律要求的权利和同意的情况下,收集、处理、披露、生成或推断个人的健康、人口统计或其他敏感个人或私人信息
- 从事或便利任何侵犯、盗用或以其他方式侵犯任何第三方权利的行为或生成任何内容,包括使用Llama材料的任何产品或服务的输出或结果
- 创建、生成或便利创建恶意代码、恶意软件、计算机病毒或进行任何可能禁用、使负担过重、干扰或损害网站或计算机系统的正常运行、完整性、操作或外观的其他操作
- 从事、促进、生成、促成、鼓励、计划、煽动或进一步推动非法或违法活动或内容,例如:
- 从事、促进、煽动、便利或协助计划或开展对个人造成死亡或身体伤害风险的活动,包括与以下方面相关的Llama 3.1使用:
- 军事、战争、核工业或应用、间谍活动、用于受美国国务院维护的《国际武器贸易条例》(ITAR)管制的材料或活动
- 枪支和非法武器(包括武器开发)
- 非法药物和受管制/受控物质
- 关键基础设施、运输技术或重型机械的操作
- 自我伤害或对他人的伤害,包括自杀、自残和饮食失调
- 任何旨在煽动或促进暴力、虐待或对个人造成身体伤害的内容
- 故意欺骗或误导他人,包括与以下方面相关的Llama 3.1使用:
- 生成、促进或进一步推动欺诈或虚假信息的创建或传播
- 生成、促进或进一步推动诽谤性内容,包括创建诽谤性声明、图像或其他内容
- 生成、促进或进一步分发垃圾邮件
- 在未经同意、授权或合法权利的情况下冒充他人
- 表示Llama 3.1的使用或输出是人类生成的
- 生成或便利虚假的在线互动,包括虚假评论和其他虚假在线互动方式
- 未能向最终用户适当披露您的AI系统的任何已知危险
请通过以下方式报告任何违反本政策、软件“漏洞”或其他可能导致违反本政策的问题:
- 报告模型问题:https://github.com/meta-llama/llama-models/issues
- 报告模型生成的风险内容:developers.facebook.com/llama_output_feedback
- 报告漏洞和安全问题:facebook.com/whitehat/info
- 报告违反可接受使用政策或未经授权使用Meta Llama 3的情况:LlamaUseReport@meta.com
责任与安全
负责任的发布
作为我们负责任发布方法的一部分,我们采用了三管齐下的策略来管理信任和安全风险:
- 使开发人员能够为其目标受众和Llama支持的用例部署有用、安全和灵活的体验。
- 保护开发人员免受旨在利用Llama功能可能造成伤害的对抗性用户的侵害。
- 为社区提供保护,帮助防止我们的模型被滥用。
负责任的部署
Llama是一种基础技术,旨在用于各种用例。关于Meta的Llama模型如何负责任地部署的示例,可在我们的社区故事网页找到。我们的方法是构建最有用的模型,通过使我们的模型安全与通用用例对齐,解决一系列标准危害,让世界从技术力量中受益。然后,开发人员可以根据自己的用例定制安全性,定义自己的政策,并在其Llama系统中部署必要的保障措施。Llama 3.1是按照我们的《负责任使用指南》中概述的最佳实践开发的,你可以参考《负责任使用指南》了解更多信息。
Llama 3.1指令微调
我们进行安全微调的主要目标是为研究社区提供一个有价值的资源,用于研究安全微调的鲁棒性,同时为开发人员提供一个随时可用、安全且强大的模型,用于各种应用,以减少开发人员部署安全AI系统的工作量。有关实施的安全缓解措施的更多详细信息,请阅读Llama 3论文。
微调数据
我们采用多方面的数据收集方法,将供应商提供的人类生成数据与合成数据相结合,以减轻潜在的安全风险。我们开发了许多基于大语言模型(LLM)的分类器,使我们能够精心选择高质量的提示和响应,加强数据质量控制。
拒绝和语气
在Llama 3的基础上,我们非常重视模型对良性提示的拒绝以及拒绝语气。我们在安全数据策略中纳入了边界和对抗性提示,并修改了安全数据响应以遵循语气指南。
Llama 3.1系统
大型语言模型,包括Llama 3.1,并非设计用于单独部署,而是应作为整体AI系统的一部分,根据需要配备额外的安全护栏。开发人员在构建自主系统时应部署系统保障措施。保障措施对于实现正确的有用性 - 安全性对齐以及减轻系统固有的安全和风险以及模型或系统与外部工具的任何集成至关重要。
作为我们负责任发布方法的一部分,我们为社区提供了保障措施,开发人员应将其与Llama模型或其他LLM一起部署,包括Llama Guard 3、Prompt Guard和Code Shield。我们所有的参考实现演示默认包含这些保障措施,以便开发人员可以立即从系统级安全中受益。
新功能
请注意,此版本引入了新功能,包括更长的上下文窗口、多语言输入和输出以及开发人员可能与第三方工具的集成。使用这些新功能除了适用于所有生成式AI用例的最佳实践外,还需要特定的考虑因素。
工具使用
就像在标准软件开发中一样,开发人员负责将LLM与他们选择的工具和服务集成。他们应该为自己的用例定义明确的政策,并评估他们使用的第三方服务的完整性,以了解使用此功能时的安全和风险限制。请参考《负责任使用指南》,了解安全部署第三方保障措施的最佳实践。
多语言支持
Llama 3.1除英语外还支持7种语言:法语、德语、印地语、意大利语、葡萄牙语、西班牙语和泰语。Llama可能能够输出其他语言的文本,但这些语言可能未达到安全和有用性的性能阈值。我们强烈建议开发人员在未根据其政策和《负责任使用指南》中分享的最佳实践实施微调系统控制的情况下,不要使用此模型进行不支持语言的对话。
评估
我们评估了Llama模型在常见用例以及特定功能方面的表现。常见用例评估衡量了大多数常见构建应用程序(包括聊天机器人、编码助手、工具调用)的系统安全风险。我们构建了专门的对抗性评估数据集,并评估了由Llama模型和Llama Guard 3组成的系统,以过滤输入提示和输出响应。在上下文中评估应用程序很重要,我们建议为你的用例构建专门的评估数据集。如果适用于应用程序,Prompt Guard和Code Shield也可用。
功能评估衡量了Llama模型特定功能固有的漏洞,为此我们精心设计了专门的基准测试,包括长上下文、多语言、工具调用、编码或记忆。
红队测试
对于上述两种情况,我们进行了定期的红队测试,目标是通过对抗性提示发现风险,并利用这些经验教训改进我们的基准测试和安全微调数据集。
我们早期与关键风险领域的主题专家合作,了解这些现实世界危害的性质以及此类模型可能如何对社会造成意外危害。基于这些对话,我们为红队制定了一组对抗性目标,例如提取有害信息或重新编程模型以可能造成危害。红队由网络安全、对抗性机器学习、负责任AI和完整性方面的专家以及在特定地理市场的完整性问题方面有背景的多语言内容专家组成。
关键和其他风险
我们特别致力于减轻以下关键风险领域:
- CBRNE(化学、生物、放射性、核和爆炸物材料)有用性:为了评估与化学和生物武器扩散相关的风险,我们进行了提升测试,旨在评估使用Llama 3.1模型是否会显著增强恶意行为者计划或实施使用此类武器的攻击的能力。
- 儿童安全:我们使用专家团队进行了儿童安全风险评估,以评估模型产生可能导致儿童安全风险的输出的能力,并通过微调提供任何必要和适当的风险缓解建议。我们利用这些专家红队测试扩展了我们在Llama 3模型开发过程中的评估基准的覆盖范围。对于Llama 3,我们使用基于目标的方法进行了新的深入测试,以评估模型在多个攻击向量上的风险,包括Llama 3训练的其他语言。我们还与内容专家合作进行红队测试,评估可能违反规定的内容,同时考虑特定市场的细微差别或经验。
- 网络攻击启用:我们的网络攻击提升研究调查了LLM是否可以增强人类在黑客任务中的能力,包括技能水平和速度。我们的攻击自动化研究专注于评估LLM作为自主代理在网络攻击行动中的能力,特别是在勒索软件攻击的背景下。此评估与之前将LLM视为交互式助手的研究不同。主要目标是评估这些模型是否可以有效地作为独立代理执行复杂的网络攻击而无需人类干预。我们对Llama - 3.1 - 405B在网络攻击者的社会工程提升方面的研究旨在评估AI模型在协助网络威胁行为者进行鱼叉式网络钓鱼活动中的有效性。请阅读我们的Llama 3.1网络安全白皮书以了解更多信息。
社区
生成式AI安全需要专业知识和工具,我们相信开放社区的力量可以加速其发展。我们是开放联盟的积极成员,包括AI联盟、AI合作组织和MLCommons,积极为安全标准化和透明度做出贡献。我们鼓励社区采用像MLCommons概念验证评估这样的分类法,以促进安全和内容评估的合作和透明度。我们的Purple Llama工具已开源供社区使用,并广泛分发给包括云服务提供商在内的生态系统合作伙伴。我们鼓励社区为我们的GitHub仓库做出贡献。
我们还设立了Llama影响赠款计划,以识别和支持Meta的Llama模型在三个类别中对社会有益的最有吸引力的应用:教育、气候和开放创新。数百份申请中的20名决赛选手可在此处找到。
最后,我们建立了一套资源,包括输出报告机制和漏洞赏金计划,以在社区的帮助下不断改进Llama技术。
伦理考虑和局限性
Llama 3.1的核心价值观是开放性、包容性和有用性。它旨在为所有人服务,并适用于广泛的用例。因此,它设计为对不同背景、经验和观点的人都可访问。Llama 3.1以用户的实际情况和需求为出发点,不插入不必要的判断或规范性,同时认识到即使在某些情况下可能看似有问题的内容,在其他情况下也可能有价值。它尊重所有用户的尊严和自主权,特别是在推动创新和进步的自由思想和表达价值观方面。
然而,Llama 3.1是一项新技术,与任何新技术一样,其使用存在风险。到目前为止进行的测试尚未涵盖,也不可能涵盖所有场景。出于这些原因,与所有LLM一样,Llama 3.1的潜在输出无法提前预测,并且模型在某些情况下可能会对用户提示产生不准确、有偏见或其他令人反感的响应。因此,在部署Llama 3.1模型的任何应用程序之前,开发人员应针对其特定应用程序进行安全测试和微调。请参考可用资源,包括我们的《负责任使用指南》、《信任与安全》解决方案以及其他资源,以了解更多关于负责任开发的信息。



