语言:
- 英文
许可证: llama3
标签:
- facebook
- meta
- pytorch
- llama
- llama-3
模型名称: Llama 3.1 8B
基础模型: meta-llama/Meta-Llama-3.1-8B-Instruct
推理: false
模型创建者: Meta
模型类型: llama
管道标签: 文本生成
Llama 3.1 8B Instruct - GGUF
描述
此仓库包含Meta的Llama 3.1 8B Instruct的GGUF格式模型文件。
模型信息
Meta Llama 3.1系列是多语言大语言模型(LLMs)的集合,包括8B、70B和405B大小的预训练和指令调优生成模型(文本输入/文本输出)。Llama 3.1的指令调优纯文本模型(8B、70B、405B)针对多语言对话用例进行了优化,在常见的行业基准测试中优于许多开源和闭源聊天模型。
模型开发者: Meta
模型架构: Llama 3.1是一种自回归语言模型,使用了优化的transformer架构。调优版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)来与人类对帮助性和安全性的偏好对齐。
|
训练数据
|
参数
|
输入模态
|
输出模态
|
上下文长度
|
GQA
|
token数量
|
知识截止
|
Llama 3.1 (纯文本)
|
公开可用的在线数据的新组合。
|
8B
|
多语言文本
|
多语言文本和代码
|
128k
|
是
|
15T+
|
2023年12月
|
70B
|
多语言文本
|
多语言文本和代码
|
128k
|
是
|
405B
|
多语言文本
|
多语言文本和代码
|
128k
|
是
|
支持的语言: 英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
Llama 3.1模型系列。token数量仅指预训练数据。所有模型版本都使用分组查询注意力(GQA)来提高推理可扩展性。
模型发布日期: 2024年7月23日。
状态: 这是一个在离线数据集上训练的静态模型。随着我们根据社区反馈改进模型安全性,将发布调优模型的未来版本。
许可证: 自定义商业许可证,Llama 3.1社区许可证,可在以下网址获取: https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/LICENSE
关于模型的问题或意见发送位置 关于如何提供模型反馈或评论的说明可以在模型README中找到。有关生成参数的技术信息以及如何在应用程序中使用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-Llama-3.1-8B-Instruct,一个用于transformers,另一个用于原始的llama
代码库。
与transformers一起使用
从transformers >= 4.43.0
开始,您可以使用Transformers的pipeline
抽象或利用Auto类与generate()
函数运行对话推理。
确保通过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": "你是一个海盗聊天机器人,总是用海盗语回应!"},
{"role": "user", "content": "你是谁?"},
]
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": "你是一个回应天气查询的机器人。"},
{"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工具使用文档。
与llama
一起使用
请遵循仓库中的说明
要下载原始检查点,请参阅以下使用huggingface-cli
的示例命令:
huggingface-cli download meta-llama/Meta-Llama-3.1-8B-Instruct --include "original/*" --local-dir Meta-Llama-3.1-8B-Instruct
硬件和软件
训练因素 我们使用了自定义训练库、Meta自定义构建的GPU集群和用于预训练的生产基础设施。微调、注释和评估也在生产基础设施上进行。
训练累计使用了 39.3M GPU小时的H100-80GB(700W TDP)类型硬件的计算,如下表所示。训练时间是训练每个模型所需的总GPU时间,功耗是每个使用的GPU设备的峰值功率容量,根据电源使用效率进行调整。
训练温室气体排放 估计的总基于位置的温室气体排放为11,390吨CO2eq用于训练。自2020年以来,Meta在其全球运营中保持了净零温室气体排放,并将其100%的电力使用与可再生能源匹配,因此训练的总基于市场的温室气体排放为0吨CO2eq。
|
训练时间(GPU小时)
|
训练功耗(W)
|
训练基于位置的温室气体排放
(吨CO2eq)
|
训练基于市场的温室气体排放
(吨CO2eq)
|
Llama 3.1 8B
|
1.46M
|
700
|
420
|
0
|
Llama 3.1 70B
|
7.0M
|
700
|
2,040
|
0
|
Llama 3.1 405B
|
30.84M
|
700
|
8,930
|
0
|
总计
|
39.3M
|
|
11,390
|
0
|