Meta-Llama-3.1-70B-Instruct 项目介绍
项目背景
Meta-Llama-3.1-70B-Instruct 是一款由 Meta 公司开发的多语言大规模语言模型(LLM),用于文本生成。该模型包括预训练和指令微调的生成模型,尺寸分别为 8B、70B 和 405B,专注于多语言对话,性能超越许多现存的开源及封闭的聊天模型。
模型信息
- 开发者: Meta
- 模型架构: Llama 3.1 采用自回归语言模型,优化以变压器架构为基础。经过监督式微调 (SFT) 和带有人类反馈的强化学习 (RLHF),以符合人类的需求和安全标准。
- 支持语言: 英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
- 模型版本: 提供 8B、70B 和 405B 参数的模型,适用于文本输入和输出,支持多种语言的文本和代码。
- 发布日期: 2024年7月23日
- 许可证: 使用者需遵守 Llama 3.1 社区许可证,详细信息请参阅 许可证链接。
预期用途
Meta-Llama-3.1-70B-Instruct 适用于商业和研究用途,支持多种语言。指令微调的文本模型为聊天助理设计,而预训练模型可调整为多种自然语言生成任务。此外,Llama 3.1 模型还支持通过其输出提升其他模型的能力,如合成数据生成和蒸馏。其社区许可证允许这些用例,但需遵循相关法律法规及使用指导。
如何使用
该项目在使用上支持包括 transformers 和原始 llama
代码库的运行环境。
使用 transformers
transformers
库版本需大于等于 4.43.0,支持通过pipeline
抽象或使用generate()
函数进行对话推理。建议通过以下命令更新 transformers
:
pip install --upgrade transformers
以下是使用 transformers 的示例:
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3.1-70B-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])
使用 bitsandbytes
为了优化内存使用,模型检查点可以在 8-bit
和 4-bit
环境下使用,需用到 bitsandbytes
和 transformers
:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "meta-llama/Meta-Llama-3.1-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 = "What are we having for dinner?"
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))
使用 llama
查看 仓库指引 获取更多关于 llama
使用的说明。
下载原始检查点的示例命令:
huggingface-cli download meta-llama/Meta-Llama-3.1-70B-Instruct --include "original/*" --local-dir Meta-Llama-3.1-70B-Instruct
硬件和软件
模型训练使用的是 Meta 自建的 GPU 集群和生产基础设施进行预训练,微调、标注和评估也在这些环境中完成。
总体而言,Meta-Llama-3.1-70B-Instruct 项目为行业内的多语言文本生成提供了强大支持,其灵活的多种使用方法和许可证条件使其适合广泛的应用场景。