模型简介
模型特点
模型能力
使用案例
语言:
- 英语 许可证: apache-2.0 标签:
- 文本生成推理
- 变换器
- unsloth
- llama
- trl
- llama 3 数据集:
- Trelis/function_calling_v3
功能调用微调的Llama 3指令模型
2024年7月23日更新:在使用零样本提示时,基础指令模型的表现优于此模型。视频教程请参见此处。
此模型针对功能调用进行了微调。
- 该模型适合商业用途,并遵循Llama 3社区许可证。
查看其他微调的功能调用模型此处。
快速服务器设置
Runpod一键TGI模板此处。
- 关于使用此模型进行推理的指导,请参见此YouTube视频。
Runpod联盟链接(支持Trelis频道)。
推理脚本
以下为示例提示格式。
完整推理脚本可购买此处:
- 支持TGI、vLLM和Llama.cpp
- 自动捕获、处理和链式功能调用。
提示格式
使用tokenizer.apply_chat_template
为更轻松地应用提示,可按以下方式设置(注意以下对话是完整的,即如果要将对话输入模型,需要删除助手消息):
设置messages
:
[
{
"role": "function_metadata",
"content": "FUNCTION_METADATA"
},
{
"role": "user",
"content": "伦敦当前天气如何?"
},
{
"role": "function_call",
"content": "{\n \"name\": \"get_current_weather\",\n \"arguments\": {\n \"city\": \"London\"\n }\n}"
},
{
"role": "function_response",
"content": "{\n \"temperature\": \"15 C\",\n \"condition\": \"Cloudy\"\n}"
},
{
"role": "assistant",
"content": "伦敦当前天气为多云,气温15摄氏度"
}
]
FUNCTION_METADATA
为:
[
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "此功能获取给定城市的当前天气",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市,例如旧金山"
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "使用的温度单位。"
}
},
"required": ["city"]
}
}
},
{
"type": "function",
"function": {
"name": "get_clothes",
"description": "此功能根据当前天气建议穿着",
"parameters": {
"type": "object",
"properties": {
"temperature": {
"type": "string",
"description": "温度,例如15 C或59 F"
},
"condition": {
"type": "string",
"description": "天气状况,例如'多云'、'晴天'、'雨天'"
}
},
"required": ["temperature", "condition"]
}
}
}
]
然后应用聊天模板获取格式化提示:
tokenizer = AutoTokenizer.from_pretrained('Trelis/Meta-Llama-3-8B-Instruct-function-calling', trust_remote_code=True)
prompt = tokenizer.apply_chat_template(prompt, tokenize=False, add_generation_prompt=True)
如果使用受控模型,需先运行:
pip install huggingface_hub
huggingface-cli login
手动提示:
<|begin_of_text|><|start_header_id|>function_metadata<|end_header_id|>
[
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "获取一组股票的股价",
"parameters": {
"type": "object",
"properties": {
"names": {
"type": "array",
"items": {
"type": "string"
},
"description": "一组股票"
}
},
"required": [
"names"
]
}
}
},
{
"type": "function",
"function": {
"name": "get_big_stocks",
"description": "获取市值最大的N支股票名称",
"parameters": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "要获取的最大股票数量,例如25"
},
"region": {
"type": "string",
"description": "考虑的区域,可以是\"US\"或\"World\"。"
}
},
"required": [
"number"
]
}
}
}
]<|eot_id|><|start_header_id|>user<|end_header_id|>
获取市值最大的五支股票名称<|eot_id|><|start_header_id|>assistant<|end_header_id|>
生成响应:
{
"name": "get_big_stocks",
"arguments": {
"number": 5,
"region": "US"
}
}<|eot_id|>
数据集
原始仓库卡片如下。
模型详情
Meta开发并发布了Meta Llama 3系列大语言模型(LLMs),这是一组8B和70B规模的预训练和指令调优生成文本模型。Llama 3指令调优模型针对对话用例进行了优化,在常见行业基准测试中优于许多开源聊天模型。此外,在开发这些模型时,我们非常注重优化帮助性和安全性。
模型开发者 Meta
变体 Llama 3提供8B和70B参数的预训练和指令调优变体。
输入 模型仅输入文本。
输出 模型仅生成文本和代码。
模型架构 Llama 3是一种自回归语言模型,使用优化的变换器架构。调优版本使用监督微调(SFT)和人类反馈强化学习(RLHF)以符合人类对帮助性和安全性的偏好。
训练数据 | 参数 | 上下文长度 | GQA | 令牌计数 | 知识截止 | |
Llama 3 | 新的公开在线数据混合。 | 8B | 8k | 是 | 15T+ | 2023年3月 |
70B | 8k | 是 | 2023年12月 |
Llama 3模型系列。令牌计数仅指预训练数据。8B和70B版本均使用分组查询注意力(GQA)以提高推理可扩展性。
模型发布日期 2024年4月18日。
状态 这是一个在离线数据集上训练的静态模型。随着我们通过社区反馈改进模型安全性,将发布调优模型的未来版本。
许可证 自定义商业许可证可在以下网址获取:https://llama.meta.com/llama3/license
关于模型的疑问或评论发送位置 有关如何提供模型反馈或评论的说明可在模型README中找到。有关生成参数的技术信息及如何在应用中使用Llama 3的配方,请访问此处。
预期用途
预期用例 Llama 3适用于英语的商业和研究用途。指令调优模型适用于类似助手的聊天,而预训练模型可适应各种自然语言生成任务。
范围外 以任何违反适用法律或法规(包括贸易合规法律)的方式使用。以其他被《可接受使用政策》和Llama 3社区许可证禁止的方式使用。在英语以外的语言中使用**。
**注意:开发者可针对英语以外的语言微调Llama 3模型,前提是遵守Llama 3社区许可证和《可接受使用政策》。
使用方法
此仓库包含两个版本的Meta-Llama-3-8B,分别用于transformers和原始llama3
代码库。
与transformers一起使用
以下为与Transformers一起使用的代码片段:
>>> import transformers
>>> import torch
>>> model_id = "meta-llama/Meta-Llama-3-8B"
>>> pipeline = transformers.pipeline(
"text-generation", model=model_id, model_kwargs={"torch_dtype": torch.bfloat16}, device_map="auto"
)
>>> pipeline("嘿,你今天怎么样?")
与llama3
一起使用
请遵循仓库中的说明。
要下载原始检查点,请参见以下使用huggingface-cli
的示例命令:
huggingface-cli download meta-llama/Meta-Llama-3-8B --include "original/*" --local-dir Meta-Llama-3-8B
对于Hugging Face支持,我们推荐使用transformers或TGI,但类似的命令也适用。
硬件和软件
训练因素 我们使用自定义训练库、Meta的研究超级计算机和生产集群进行预训练。微调、标注和评估也在第三方云计算上进行。
碳足迹预训练累计 使用了7.7M GPU小时的计算,硬件类型为H100-80GB(TDP为700W)。估计总排放量为2290 tCO2eq,100%由Meta的可持续发展计划抵消。
时间(GPU小时) | 功耗(W) | 碳排放(tCO2eq) | |
Llama 3 8B | 1.3M | 700 | 390 |
Llama 3 70B | 6.4M | 700 | 1900 |
总计 | 7.7M | 2290 |


