语言:
- 英语
- 德语
- 法语
- 意大利语
- 葡萄牙语
- 印地语
- 西班牙语
- 泰语
许可证: llama3.1
基础模型: meta-llama/Meta-Llama-3.1-8B-Instruct
管道标签: 文本生成
标签:
- facebook
- meta
- pytorch
- llama
- llama-3
Llama 3.1模型信息
Meta Llama 3.1系列是多语言大语言模型(LLMs)的集合,包括8B、70B和405B大小的预训练和指令调优生成模型(文本输入/文本输出)。Llama 3.1指令调优的纯文本模型(8B、70B、405B)针对多语言对话用例进行了优化,在常见的行业基准测试中优于许多开源和闭源聊天模型。
模型开发者: Meta
模型架构: Llama 3.1是一种自回归语言模型,使用了优化的Transformer架构。调优版本使用监督微调(SFT)和人类反馈强化学习(RLHF)来与人类偏好对齐,以提高帮助性和安全性。
|
训练数据
|
参数
|
输入模态
|
输出模态
|
上下文长度
|
GQA
|
令牌计数
|
知识截止
|
Llama 3.1(纯文本)
|
公开可用的在线数据的新组合。
|
8B
|
多语言文本
|
多语言文本和代码
|
128k
|
是
|
15T+
|
2023年12月
|
70B
|
多语言文本
|
多语言文本和代码
|
128k
|
是
|
405B
|
多语言文本
|
多语言文本和代码
|
128k
|
是
|
支持的语言: 英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
Llama 3.1模型系列. 令牌计数仅指预训练数据。所有模型版本都使用分组查询注意力(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种支持语言更广泛的语言进行了训练。开发者可以在遵守Llama 3.1社区许可证和可接受使用政策的情况下,对超出8种支持语言的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": "巴黎, 法国"}}
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
一起使用
请按照存储库中的说明操作
要下载