语言:
- 英语
任务标签: 文本生成
标签:
- meta
- llama-3
许可证: llama3

Llama-3 8B 指令微调版 Gradient 4194K (v0.1)
加入我们的定制智能体和长上下文(262k-1M+)等待列表:https://forms.gle/L6TDY7dozx8TuoUv7
Gradient 整合您的数据,部署自主助手以驱动企业关键运营。如需构建定制AI模型或智能体,请发送邮件至 contact@gradient.ai。
更多信息请参阅我们的定制LLM和AI系统端到端开发服务
本模型由Gradient开发,由Crusoe Energy提供算力支持,将LLama-3 8B的上下文长度从8k扩展至4194K。研究表明,通过适当调整RoPE theta参数,SOTA级LLM能以极少量训练实现长上下文操作。当前阶段训练使用了2.01亿token,各阶段总计16亿token,约占Llama-3原始预训练数据的0.01%。

技术方案:
基础设施:
基于EasyContext Blockwise RingAttention库[3],在Crusoe Energy高性能L40S集群上实现最高1048k token的高效可扩展训练。
特别地,我们在Ring Attention基础上叠加并行策略,通过定制网络拓扑更好地应对多设备间KV块传递带来的网络瓶颈。
数据:
训练数据通过扩展SlimPajama生成长上下文。同时基于UltraChat[4]进行对话微调,数据增强方案与[2]类似。
渐进式训练详情:
|
65K |
262K |
524k |
1048k |
4191k |
初始化来源 |
LLaMA-3 8B |
65K |
262K |
524k |
1048k |
序列长度 2^N |
16 |
18 |
19 |
20 |
22 |
RoPE Theta |
15.3 M |
207.1 M |
1.06B |
2.80B |
45.2B |
批大小 |
1 |
1 |
16 |
8 |
2 |
梯度累积步数 |
32 |
16 |
1 |
1 |
2 |
训练步数 |
30 |
24 |
50 |
50 |
12 (提前终止) |
总token数 |
62914560 |
100663296 |
419430400 |
838860800 |
201326592 |
学习率 |
2.00E-05 |
2.00E-05 |
2.00E-05 |
2.00E-05 |
2.00E-05 |
GPU数量 |
8 |
32 |
512 |
512 |
512 |
GPU类型 |
NVIDIA L40S |
NVIDIA L40S |
NVIDIA L40S |
NVIDIA L40S |
NVIDIA L40S |
训练时长(分钟) |
202 |
555 |
61 |
87 |
433 |
评估配置:
EVAL_MAX_CONTEXT_LENGTH=4194200
EVAL_MIN_CONTEXT_LENGTH=100
EVAL_CONTEXT_INTERVAL=260000
EVAL_DEPTH_INTERVAL=0.2
EVAL_RND_NUMBER_DIGITS=8
使用haystack #3进行评估,详见技术博客。
量化方案:
当前未发布量化版本。建议以fp16精度运行KV Cache以获得更高准确率。
Gradient AI 团队
https://gradient.ai/
Gradient正加速AI跨行业变革。我们的AI代工厂整合您的数据,部署驱动企业关键运营的自主助手。
联系我们
发送邮件至 contact@gradient.ai
引用
@misc{gradientlongcontextllama3,
title={Llama 3 Gradient: 长上下文模型系列},
author={Leonid Pekelis and Michael Feil and Forrest Moret and Mark Huang and Tiffany Peng},
year={2024},
url = {https://gradient.ai/blog/scaling-rotational-embeddings-for-long-context-language-models}
}
参考文献
[1] Peng, Bowen等. "Yarn: 大语言模型的高效上下文窗口扩展." arXiv预印本 arXiv:2309.00071 (2023).
[2] Liu, Hao等. "基于RingAttention的百万长度视频与语言世界模型." arXiv预印本 arXiv:2402.08268 (2024).
[3] https://github.com/jzhang38/EasyContext
[4] Ning Ding等. "通过扩展高质量教学对话增强聊天语言模型." arXiv预印本 arXiv:2305.14233, 2023.
基础模型
模型详情
Meta开发并发布了Meta Llama 3系列大语言模型(LLM),包含80亿和700亿参数的预训练及指令微调文本生成模型。Llama 3指令微调模型专为对话场景优化,在行业基准测试中超越多数开源聊天模型。开发过程中我们特别注重优化实用性与安全性。
开发商 Meta
版本 提供80亿和700亿参数的预训练及指令微调版本
输入 仅接受文本输入
输出 仅生成文本和代码
架构 Llama 3采用优化Transformer架构的自回归语言模型。微调版本使用监督微调(SFT)和人类反馈强化学习(RLHF)来对齐人类偏好。
|
训练数据 |
参数量 |
上下文长度 |
GQA |
Token数量 |
知识截止 |
Llama 3 |
公开网络数据新组合 |
8B |
8k |
是 |
15T+ |
2023年3月 |
|
|
70B |
8k |
是 |
|
2023年12月 |
Llama 3模型家族。Token数量仅统计预训练数据。8B和70B版本均采用分组查询注意力(GQA)提升推理效率。
发布日期 2024年4月18日
状态 基于离线数据集训练的静态模型。后续将通过社区反馈持续优化安全性。
许可 定制商业许可详见:https://llama.meta.com/llama3/license
反馈渠道 模型README提供指南,技术文档见llama-recipes。
使用场景
适用场景 Llama 3适用于英语商业和研究用途。指令微调版适合类助手对话,预训练版可适配多种文本生成任务。
非适用场景 违反法律法规的使用;违反许可协议的使用;非英语场景(开发者可合规微调)。
使用方法
本仓库包含transformers版和原生llama3
代码库两种版本。
transformers使用
pipeline方式
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):])
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 download meta-llama/Meta-Llama-3-8B-Instruct --include "original/*" --local-dir Meta-Llama-3-8B-Instruct
硬件与碳足迹
训练设施 使用定制训练库、Meta研究超级集群及生产集群进行预训练。微调与评估使用第三方云算力。
碳足迹 预训练累计消耗770万H100-80GB GPU小时(TDP 700W),总排放2290吨CO2当量,已通过Meta碳中和计划全额抵消。
训练数据
概述 预训练使用超过15万亿token的公开数据。微调数据包含公开指令数据集及超1000万人工标注样本,均不含Meta用户数据。
数据时效 8B模型预训练数据截止2023年3月,70B模型截止2023年12月。
基准测试
(测试结果表格翻译略,保留原始数值)
责任与安全
我们相信开放方法能带来更安全的产品、更快的创新和更大的市场。我们采取以下措施降低风险:
安全工具
指令模型特点
- 通过红队测试、对抗评估降低残余风险
- 显著减少误拒绝良性提示的情况
- 建立内部基准提升帮助性
关键风险评估
- CBRNE(化生放核爆)领域专家参与测试
- 通过CyberSecEval评估网络安全风险
- 儿童安全专家团队进行内容审核
社区参与
我们积极参与AI联盟、PAI和MLCommons等组织,推动安全标准化。开源Purple Llama工具,鼓励贡献GitHub仓库。提供输出反馈机制和漏洞赏金计划。
伦理考量
Llama 3核心价值是开放、包容与助人。作为新技术,其输出可能存在不准确或偏见。开发者应:
- 进行应用场景专项安全测试
- 集成Purple Llama解决方案
- 使用Llama Guard过滤输入输出
详见责任使用指南:http://llama.meta.com/responsible-use-guide
引用格式
@article{llama3modelcard,
title={Llama 3模型卡},
author={AI@Meta},
year={2024},
url = {https://github.com/meta-llama/llama3/blob/main/MODEL_CARD.md}
}
(贡献者名单翻译略,保留原始姓名)