模型简介
模型特点
模型能力
使用案例
🚀 Llama-3.1-8B-Instruct
Llama-3.1-8B-Instruct 是 Meta 推出的多语言大语言模型,具备强大的文本生成能力。它经过预训练和指令微调,适用于多种语言的商业和研究场景,在常见行业基准测试中表现出色。
🚀 快速开始
本仓库包含两个版本的 Meta-Llama-3.1-8B-Instruct,可配合 transformers
库或原始的 llama
代码库使用。
部署
此模型可在 vLLM、Red Hat Enterprise Linux AI 和 Openshift AI 上高效部署,示例如下:
在 vLLM 上部署
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "RedHatAI/Llama-3.1-8B-Instruct"
number_gpus = 4
sampling_params = SamplingParams(temperature=0.7, top_p=0.8, max_tokens=256)
tokenizer = AutoTokenizer.from_pretrained(model_id)
prompt = "Give me a short introduction to large language model."
llm = LLM(model=model_id, tensor_parallel_size=number_gpus)
outputs = llm.generate(prompt, sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)
vLLM 还支持 OpenAI 兼容的服务,更多详情请参阅 文档。
在 Red Hat AI Inference Server 上部署
$ podman run --rm -it --device nvidia.com/gpu=all -p 8000:8000 \
--ipc=host \
--env "HUGGING_FACE_HUB_TOKEN=$HF_TOKEN" \
--env "HF_HUB_OFFLINE=0" -v ~/.cache/vllm:/home/vllm/.cache \
--name=vllm \
registry.access.redhat.com/rhaiis/rh-vllm-cuda \
vllm serve \
--tensor-parallel-size 8 \
--max-model-len 32768 \
--enforce-eager --model RedHatAI/Llama-3.1-8B-Instruct
更多详情请参阅 Red Hat AI Inference Server 文档。
在 Red Hat Enterprise Linux AI 上部署
# 通过 docker 从 Red Hat Registry 下载模型
# 注意:若未指定 --model-dir,模型将下载到 ~/.cache/instructlab/models
ilab model download --repository docker://registry.redhat.io/rhelai1/llama-3-1-8b-instruct:1.5
# 通过 ilab 提供模型服务
ilab model serve --model-path ~/.cache/instructlab/models/llama-3-1-8b-instruct
# 与模型进行对话
ilab model chat --model ~/.cache/instructlab/models/llama-3-1-8b-instruct
更多详情请参阅 Red Hat Enterprise Linux AI 文档。
在 Red Hat Openshift AI 上部署
# 使用 ServingRuntime 设置 vllm 服务器
# 保存为:vllm-servingruntime.yaml
apiVersion: serving.kserve.io/v1alpha1
kind: ServingRuntime
metadata:
name: vllm-cuda-runtime # 可选修改:设置唯一名称
annotations:
openshift.io/display-name: vLLM NVIDIA GPU ServingRuntime for KServe
opendatahub.io/recommended-accelerators: '["nvidia.com/gpu"]'
labels:
opendatahub.io/dashboard: 'true'
spec:
annotations:
prometheus.io/port: '8080'
prometheus.io/path: '/metrics'
multiModel: false
supportedModelFormats:
- autoSelect: true
name: vLLM
containers:
- name: kserve-container
image: quay.io/modh/vllm:rhoai-2.20-cuda # 如有需要可更改。若使用 AMD:quay.io/modh/vllm:rhoai-2.20-rocm
command:
- python
- -m
- vllm.entrypoints.openai.api_server
args:
- "--port=8080"
- "--model=/mnt/models"
- "--served-model-name={{.Name}}"
env:
- name: HF_HOME
value: /tmp/hf_home
ports:
- containerPort: 8080
protocol: TCP
# 将模型附加到 vllm 服务器。这是一个 NVIDIA 模板
# 保存为:inferenceservice.yaml
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
annotations:
openshift.io/display-name: llama-3-1-8b-instruct # 可选修改
serving.kserve.io/deploymentMode: RawDeployment
name: llama-3-1-8b-instruct # 指定模型名称。此值将用于在有效负载中调用模型
labels:
opendatahub.io/dashboard: 'true'
spec:
predictor:
maxReplicas: 1
minReplicas: 1
model:
modelFormat:
name: vLLM
name: ''
resources:
limits:
cpu: '2' # 这是特定于模型的
memory: 8Gi # 这是特定于模型的
nvidia.com/gpu: '1' # 这是特定于加速器的
requests: # 此块同理
cpu: '1'
memory: 4Gi
nvidia.com/gpu: '1'
runtime: vllm-cuda-runtime # 必须与上述 ServingRuntime 名称匹配
storageUri: oci://registry.redhat.io/rhelai1/modelcar-llama-3-1-8b-instruct:1.5
tolerations:
- effect: NoSchedule
key: nvidia.com/gpu
operator: Exists
# 确保首先进入要部署模型的项目
# oc project <项目名称>
# 应用两个资源以运行模型
# 应用 ServingRuntime
oc apply -f vllm-servingruntime.yaml
# 应用 InferenceService
oc apply -f qwen-inferenceservice.yaml
# 替换下面的 <推理服务名称> 和 <集群入口域名>:
# - 若不确定,请运行 `oc get inferenceservice` 查找 URL。
# 使用 curl 调用服务器:
curl https://<推理服务名称>-predictor-default.<域名>/v1/chat/completions
-H "Content-Type: application/json" \
-d '{
"model": "llama-3-1-8b-instruct",
"stream": true,
"stream_options": {
"include_usage": true
},
"max_tokens": 1,
"messages": [
{
"role": "user",
"content": "How can a bee fly when its wings are so small?"
}
]
}'
更多详情请参阅 Red Hat Openshift AI 文档。
配合 transformers 使用
从 transformers >= 4.43.0
版本开始,你可以使用 Transformers 的 pipeline
抽象或借助 generate()
函数的 Auto 类进行对话推理。
确保通过 pip install --upgrade transformers
更新你的 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()
、辅助生成、量化等的详细指南。
使用 transformers 进行工具调用
LLaMA-3.1 支持多种工具使用格式。你可以在 此处 查看完整的提示格式指南。
通过 Transformers 中的 聊天模板 也支持工具使用。以下是一个展示单个简单工具的快速示例:
# 首先,定义一个工具
def get_current_temperature(location: str) -> float:
"""
获取指定位置的当前温度。
参数:
location: 要获取温度的位置,格式为 "城市, 国家"
返回:
指定位置的当前温度,以浮点数表示。
"""
return 22. # 实际函数应获取真实温度!
# 接下来,创建一个聊天并应用聊天模板
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
✨ 主要特性
- 多语言支持:支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语等多种语言。
- 高性能表现:在常见行业基准测试中,优于许多现有的开源和闭源聊天模型。
- 灵活的使用场景:适用于商业和研究用途,可用于对话、自然语言生成等多种任务。
📦 安装指南
文档未提及具体安装步骤,可参考上述快速开始部分的部署和使用说明。
💻 使用示例
基础用法
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:
"""
获取指定位置的当前温度。
参数:
location: 要获取温度的位置,格式为 "城市, 国家"
返回:
指定位置的当前温度,以浮点数表示。
"""
return 22. # 实际函数应获取真实温度!
# 创建一个聊天并应用聊天模板
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}]})
# 调用工具并追加结果
messages.append({"role": "tool", "name": "get_current_temperature", "content": "22.0"})
# 再次生成文本
outputs = pipeline(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型开发者 | Meta |
模型架构 | Llama 3.1 是一个自回归语言模型,使用了优化的 Transformer 架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)来与人类的有用性和安全性偏好对齐。 |
训练数据 | 新的公开可用在线数据混合。 |
支持语言 | 英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。 |
模型发布日期 | 2024 年 7 月 23 日。 |
状态 | 这是一个基于离线数据集训练的静态模型。随着我们通过社区反馈改进模型安全性,未来将发布微调模型的新版本。 |
许可证 | 自定义商业许可证,Llama 3.1 社区许可证,可在 此处 获取。 |
预期用途
预期用例
Llama 3.1 旨在用于多种语言的商业和研究用途。仅经过指令微调的文本模型适用于类似助手的聊天,而预训练模型可用于各种自然语言生成任务。Llama 3.1 模型系列还支持利用其模型输出改进其他模型,包括合成数据生成和蒸馏。Llama 3.1 社区许可证允许这些用例。
超出范围的使用
- 以任何违反适用法律法规(包括贸易合规法律)的方式使用。
- 以任何违反可接受使用政策和 Llama 3.1 社区许可证的方式使用。
- 使用此模型卡中未明确支持的语言。
⚠️ 重要提示
Llama 3.1 已在比 8 种支持语言更广泛的语言集合上进行了训练。开发者可以针对 8 种支持语言之外的语言微调 Llama 3.1 模型,前提是他们遵守 Llama 3.1 社区许可证和可接受使用政策,并负责确保以安全和负责任的方式使用 Llama 3.1 处理其他语言。
硬件和软件
训练因素
我们使用自定义训练库、Meta 定制的 GPU 集群和生产基础设施进行预训练。微调、标注和评估也在生产基础设施上进行。
训练计算资源
训练总共使用了 3930 万 GPU 小时的 H100 - 80GB(TDP 为 700W)类型硬件计算资源,具体如下表所示。训练时间是训练每个模型所需的总 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.1 在来自公开可用来源的约 15 万亿个标记数据上进行了预训练。微调数据包括公开可用的指令数据集,以及超过 2500 万个合成生成的示例。
数据新鲜度
预训练数据的截止日期为 2023 年 12 月。
基准测试分数
基础预训练模型
类别 | 基准测试 | 样本数 | 指标 | 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 支持的用例部署有用、安全和灵活的体验。
- 保护开发者免受试图利用 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 和完整性方面的专家以及在特定地理市场具有完整性问题背景的多语言内容专家组成。
关键和其他风险
我们特别致力于减轻以下关键风险领域:
1. CBRNE(化学、生物、放射性、核和爆炸物材料)有用性 为了评估与化学和生物武器扩散相关的风险,我们进行了提升测试,旨在评估使用 Llama 3.1 模型是否会显著增强恶意行为者使用此类武器计划或实施攻击的能力。
2. 儿童安全 我们使用专家团队进行了儿童安全风险评估,以评估模型产生可能导致儿童安全风险的输出的能力,并通过微调提供必要和适当的风险缓解建议。我们利用这些专家红队测试扩展了我们在 Llama 3 模型开发过程中的评估基准测试范围。对于 Llama 3,我们使用基于目标的方法进行了新的深入测试,以评估模型在多个攻击向量上的风险,包括 Llama 3 训练的其他语言。我们还与内容专家合作进行红队测试,评估潜在违规内容,同时考虑特定市场的细微差别或经验。
3. 网络攻击支持 我们的网络攻击提升研究调查了大语言模型是否能在技能水平和速度方面增强人类在黑客任务中的能力。
我们的攻击自动化研究专注于评估大语言模型作为自主代理在网络攻击行动中的能力,特别是在勒索软件攻击的背景下。此评估与之前将大语言模型视为交互式助手的研究不同。主要目标是评估这些模型是否能在没有人类干预的情况下有效作为独立代理执行复杂的网络攻击。
我们对 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 是一项新技术,与任何新技术一样,其使用存在风险。到目前为止进行的测试并未涵盖,也不可能涵盖所有场景。因此,与所有大语言模型一样,Llama 3.1 的潜在输出无法提前预测,模型在某些情况下可能会产生不准确、有偏见或其他令人反感的响应。因此,在部署 Llama 3.1 模型的任何应用之前,开发者应针对其特定应用对模型进行安全测试和调优。请参考可用资源,包括我们的 《负责任使用指南》、信任和安全 解决方案以及其他 资源,以了解更多关于负责任开发的信息。
🔧 技术细节
文档未提供足够详细的技术实现细节。
📄 许可证
Llama 3.1 使用自定义商业许可证,即 Llama 3.1 社区许可证,可在 此处 获取。



