fLlama 2为Llama 2模型扩展了函数调用能力,能返回结构化JSON响应,包含函数名称及参数。本版本采用GPTQ方法训练,提供快速推理和良好精度。
下载量 53
发布时间 : 7/24/2023
模型介绍
内容详情
替代品
模型简介
基于Llama 2的对话优化模型,增加了函数调用功能,可返回结构化JSON数据,适用于需要与外部API交互的聊天应用场景。
模型特点
函数调用能力
可返回结构化JSON响应,包含函数名称及参数,便于与外部API集成
GPTQ量化
采用GPTQ方法训练,在保持良好精度的同时提升推理速度
对话优化
基于Llama-2-Chat微调,针对对话场景进行了优化
模型能力
文本生成
函数调用
结构化JSON输出
对话交互
使用案例
智能助手
API集成助手
通过函数调用能力与Bing搜索、ArXiv等API集成,扩展助手知识范围
可自动调用外部API获取实时信息
研究辅助
论文搜索助手
自动搜索学术论文并返回结构化结果
提高研究效率,快速获取相关文献
language:
- en pipeline_tag: text-generation inference: false tags:
- meta
- pytorch
- llama
- llama-2
- functions
- function calling
- sharded
- ggml
- gptq
v2版本现已发布
支持函数调用的Llama 2(第2版)已正式发布,可通过此链接获取。
# fLlama 2 - 支持函数调用的Llama 2
- fLlama 2为Hugging Face的Llama 2模型扩展了函数调用能力
- 模型会返回结构化JSON响应,包含函数名称及参数
可用模型:
- fLlama-7B ([bitsandbytes NF4量化版](https://huggingface.co/Trelis/Llama-2-7b-hf-function-calling)) - 免费
- fLlama-7B-chat ([bitsandbytes NF4量化版](https://huggingface.co/Trelis/Llama-2-7b-chat-hf-function-calling)), ([GGML版](https://huggingface.co/Trelis/Llama-2-7b-chat-hf-function-calling-GGML)), ([GPTQ版](https://huggingface.co/Trelis/Llama-2-7b-chat-hf-function-calling-GPTQ)), ([GPTQ训练版](https://huggingface.co/Trelis/Llama-2-7b-chat-hf-function-calling-GPTQ-trained)) - 免费
- fLlama-13B-chat ([bitsandbytes NF4量化版](https://huggingface.co/Trelis/Llama-2-13b-chat-hf-function-calling)), ([GPTQ版](https://huggingface.co/Trelis/Llama-2-13b-chat-hf-function-calling-GPTQ)) - 付费
## 使用Google Colab和HuggingFace进行推理 🤗
**GPTQ训练版(最快+最佳精度)- 本仓库**
所有其他模型均采用bitsandbytes NF4训练。本模型专门使用GPTQ方法训练。
当前运行较复杂,因其为适配器模型。可尝试:
```
!pip install -q git+https://github.com/SunMarc/transformers.git@gptq_integration
!pip install -q git+https://github.com/SunMarc/optimum.git@add-gptq-marc
!pip install -q git+https://github.com/SunMarc/peft.git@peft_gptq
!pip install -q git+https://github.com/fxmarty/AutoGPTQ.git@patch-act-order-exllama #建议使用wheel加速,当前安装约需5分钟
import transformers
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, pipeline
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from auto_gptq.nn_modules.qlinear.qlinear_cuda_old import QuantLinear
# 使用适配器时的模型加载脚本
model_name_or_path = "ybelkada/llama-7b-GPTQ-test"
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, device_map="auto") # 必须设为auto,不能设为cpu
adapter_model_name = 'Trelis/Llama-2-7b-chat-hf-function-calling-GPTQ-trained-adapters'
```
**GPTQ版(快速+良好精度)**
通过保存[函数调用聊天机器人](https://colab.research.google.com/drive/1u8x41Jx8WWtI-nzHOgqTxkS3Q_lcjaSX?usp=sharing)的副本来开始使用。
选择GPU运行时即可在免费Colab笔记本上运行推理。详见笔记本说明。
**Bits and Bytes NF4版(推理速度最慢)**
尝试此笔记本[fLlama推理笔记本](https://colab.research.google.com/drive/1Ow5cQ0JNv-vXsT-apCceH6Na3b4L7JyW?usp=sharing)
**GGML版(最适合笔记本运行,Mac体验佳)**
运行需安装ggerganov的llamaccp:
- 从上方"可用模型"处的ggml链接下载ggml文件
- 推荐运行命令:
```
./server -m fLlama-2-7b-chat.ggmlv3.q3_K_M.bin -ngl 32 -c 2048
```
该命令将在浏览器中运行聊天机器人。-ngl参数将层卸载到Mac的GPU,可获得优异的token生成速度。
## 许可与使用条款
fLlama-7B:
- 遵循Llama 2许可
fLlama-13B:
- 提供更高精度的函数调用能力
- 购买访问权限:[fLlama-13b: 19.99欧元/用户席位](https://buy.stripe.com/9AQ7te3lHdmbdZ68wz)
- 许可不可转让给其他用户/实体
- 大模型商业许可需申请 - 联系ronan[at]trelis[dot]com
- 使用fLlama模型还需遵守[Meta许可协议](https://ai.meta.com/resources/models-and-libraries/llama-downloads/)条款
### 训练数据集
训练所用数据集见[Trelis扩展函数调用数据集](https://huggingface.co/datasets/Trelis/function_calling_extended)。
## 提示与响应格式
发起函数调用时,输入应格式化为:
```
<s>[INST] <<SYS>>
你是一个乐于助人的研究助理。以下函数可供你获取更多数据来回答用户问题(如适用):
{
"function": "search_bing",
"description": "在Bing上搜索网络内容。允许用户在线/互联网/网络上搜索内容。",
"arguments": [
{
"name": "query",
"type": "string",
"description": "搜索查询字符串"
}
]
}
{
"function": "search_arxiv",
"description": "在ArXiv上搜索研究论文。适当使用AND、OR和NOT运算符连接查询项。",
"arguments": [
{
"name": "query",
"type": "string",
"description": "搜索查询字符串"
}
]
}
调用函数时,请立即且仅用以下格式的JSON对象响应:
{
"function": "function_name",
"arguments": {
"argument1": "argument_value",
"argument2": "argument_value"
}
}
<</SYS>>
查找关于高压批量反渗透的论文[/INST]
```
注意functionMetadata应为JSON对象的字符串表示,例如:
```
"functionMetaData": {
"function": "search_bing",
"description": "在Bing上搜索网络内容。允许用户在线/互联网/网络上搜索内容。",
"arguments": [
{
"name": "query",
"type": "string",
"description": "搜索查询字符串"
}
]
}
'''
```
语言模型应返回如下格式的json对象:
```
{
"function": "function_name",
"arguments": {
"argument1": "argument_value",
"argument2": "argument_value"
}
}
```
建议处理以下情况:
- 响应中不包含json对象
- 响应除json外还包含文本
## 训练过程
训练使用的`bitsandbytes`量化配置:
- 量化方法: gptq
- 位数: 4
- 分词器: 无
- 数据集: 无
- 组大小: 128
- 阻尼百分比: 0.01
- 描述激活: False
- 对称: True
- 真顺序: True
- 使用cuda fp16: False
- 模型序列长度: 无
- 量化块名称: 无
- 首块前置模块名: 无
- 批大小: 1
- 填充token id: 无
- 禁用exllama: True
### 框架版本
- PEFT 0.5.0.dev0
~
以下是原始Llama 2模型信息...
~
# **Llama 2**
Llama 2是一系列从70亿到700亿参数的预训练和微调生成文本模型集合。本仓库是70亿参数对话优化版本,已转换为Hugging Face Transformers格式。其他模型链接见底部索引。
## 模型详情
*注意:使用本模型需遵守Meta许可协议。下载模型权重和分词器前,请访问[官网](https://ai.meta.com/resources/models-and-libraries/llama-downloads/)接受许可协议。*
Meta开发并公开发布了Llama 2系列大语言模型(LLMs),包含从70亿到700亿参数的预训练和微调生成文本模型。我们的微调LLMs称为Llama-2-Chat,针对对话场景优化。在多数测试基准上,Llama-2-Chat模型优于开源聊天模型,在人类评估的实用性和安全性方面,与ChatGPT和PaLM等流行闭源模型相当。
**开发团队** Meta
**变体** Llama 2提供多种参数规模——7B、13B和70B——以及预训练和微调版本。
**输入** 模型仅接受文本输入。
**输出** 模型仅生成文本。
**架构** Llama 2是基于优化Transformer架构的自回归语言模型。微调版本使用监督微调(SFT)和人类反馈强化学习(RLHF)来对齐人类偏好。
||训练数据|参数量|内容长度|GQA|Token数|学习率|
|---|---|---|---|---|---|---|
|Llama 2|*公开网络数据新混合*|7B|4k|✗|2.0T|3.0 x 10<sup>-4</sup>|
|Llama 2|*公开网络数据新混合*|13B|4k|✗|2.0T|3.0 x 10<sup>-4</sup>|
|Llama 2|*公开网络数据新混合*|70B|4k|✔|2.0T|1.5 x 10<sup>-4</sup>|
*Llama 2模型系列* Token数仅指预训练数据。所有模型均以400万token的全局批大小训练。更大模型——70B——使用分组查询注意力(GQA)提升推理扩展性。
**训练时间** Llama 2训练于2023年1月至7月。
**状态** 这是基于离线数据集的静态模型。未来将根据社区反馈发布改进安全性的微调版本。
**许可** 自定义商业许可见:[https://ai.meta.com/resources/models-and-libraries/llama-downloads/](https://ai.meta.com/resources/models-and-libraries/llama-downloads/)
**研究论文** ["Llama-2: 开放基础与微调聊天模型"](arxiv.org/abs/2307.09288)
## 预期用途
**适用场景** Llama 2适用于英语商业和研究用途。微调模型适用于助手式聊天,预训练模型可适配多种自然语言生成任务。
要获得聊天版本的预期特性和性能,需遵循特定格式,包括`INST`和`<<SYS>>`标签、`BOS`与`EOS`标记,以及间隔的空白和换行(建议对输入调用`strip()`避免双空格)。详见GitHub参考代码:[`chat_completion`](https://github.com/facebookresearch/llama/blob/main/llama/generation.py#L212)。
**非适用场景** 任何违反适用法律或法规(包括贸易合规法律)的使用。非英语场景使用。违反Llama 2可接受使用政策和许可协议的其他用途。
## 硬件与软件
**训练因素** 我们使用定制训练库、Meta研究超级集群和生产集群进行预训练。微调、标注和评估也使用第三方云计算。
**碳足迹** 预训练累计使用330万A100-80GB显卡小时(TDP 350-400W)。总排放量估计为539吨CO2当量,100%通过Meta可持续发展计划抵消。
||时间(显卡小时)|功耗(W)|碳排放量(吨CO<sub>2</sub>当量)|
|---|---|---|---|
|Llama 2 7B|184320|400|31.22|
|Llama 2 13B|368640|400|62.44|
|Llama 2 70B|1720320|400|291.42|
|总计|3311616||539.00|
**预训练期间的CO<sub>2</sub>排放** 时间:训练每个模型所需的总GPU时间。功耗:所用GPU设备的峰值功率容量,根据电源使用效率调整。100%排放直接由Meta可持续发展计划抵消,且由于我们公开这些模型,他人无需承担预训练成本。
## 训练数据
**概述** Llama 2预训练使用2万亿token的公开数据。微调数据包括公开指令数据集和100多万条新的人工标注示例。预训练和微调数据集均不包含Meta用户数据。
**数据时效性** 预训练数据截止于2022年9月,但部分微调数据更新至2023年7月。
## 评估结果
本节报告Llama 1和Llama 2模型在标准学术基准上的结果。所有评估均使用内部评估库。
|模型|规模|代码|常识推理|世界知识|阅读理解|数学|MMLU|BBH|AGI评估|
|---|---|---|---|---|---|---|---|---|---|
|Llama 1|7B|14.1|60.8|46.2|58.5|6.95|35.1|30.3|23.9|
|Llama 1|13B|18.9|66.1|52.6|62.3|10.9|46.9|37.0|33.9|
|Llama 1|33B|26.0|70.0|58.4|67.6|21.4|57.8|39.8|41.7|
|Llama 1|65B|30.7|70.7|60.5|68.6|30.8|63.4|43.5|47.6|
|Llama 2|7B|16.8|63.9|48.9|61.3|14.6|45.3|32.6|29.3|
|Llama 2|13B|24.5|66.9|55.4|65.8|28.7|54.8|39.4|39.1|
|Llama 2|70B|**37.5**|**71.9**|**63.6**|**69.4**|**35.2**|**68.9**|**51.2**|**54.2**|
**分组学术基准整体表现** *代码:*报告模型在HumanEval和MBPP上的平均pass@1分数。*常识推理:*报告PIQA、SIQA、HellaSwag、WinoGrande、ARC简单和挑战、OpenBookQA和CommonsenseQA的平均值。CommonSenseQA使用7-shot结果,其他基准使用0-shot结果。*世界知识:*评估NaturalQuestions和TriviaQA的5-shot表现并报告平均值。*阅读理解:*报告SQuAD、QuAC和BoolQ的0-shot平均值。*数学:*报告GSM8K(8 shot)和MATH(4 shot)基准top1的平均值。
|||TruthfulQA|Toxigen|
|---|---|---|---|
|Llama 1|7B|27.42|23.00|
|Llama 1|13B|41.74|23.08|
|Llama 1|33B|44.19|22.57|
|Llama 1|65B|48.71|21.77|
|Llama 2|7B|33.29|**21.25**|
|Llama 2|13B|41.86|26.10|
|Llama 2|70B|**50.18**|24.60|
**预训练LLM在自动安全基准上的评估** TruthfulQA展示既真实又有信息量的生成比例(越高越好)。ToxiGen展示有害生成比例(越低越好)。
|||TruthfulQA|Toxigen|
|---|---|---|---|
|Llama-2-Chat|7B|57.04|**0.00**|
|Llama-2-Chat|13B|62.18|**0.00**|
|Llama-2-Chat|70B|**64.14**|0.01|
**微调LLM在不同安全数据集上的评估** 指标定义同上。
## 伦理考量与限制
Llama 2作为新技术存在使用风险。目前测试仅限于英语,且无法覆盖所有场景。与所有LLM一样,Llama 2的输出无法提前预测,有时可能产生不准确、偏见或其他不当响应。因此在部署Llama 2应用前,开发者应进行针对特定应用场景的安全测试和调优。
请参阅责任使用指南:[https://ai.meta.com/llama/responsible-use-guide/](https://ai.meta.com/llama/responsible-use-guide)
## 问题反馈
请通过以下方式报告模型问题:
- 模型问题:[github.com/facebookresearch/llama](http://github.com/facebookresearch/llama)
- 模型生成问题内容:[developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)
- 漏洞与安全问题:[facebook.com/whitehat/info](http://facebook.com/whitehat/info)
## Llama模型索引
|模型|Llama2|Llama2-hf|Llama2-chat|Llama2-chat-hf|
|---|---|---|---|---|
|7B| [链接](https://huggingface.co/llamaste/Llama-2-7b) | [链接](https://huggingface.co/llamaste/Llama-2-7b-hf) | [链接](https://huggingface.co/llamaste/Llama-2-7b-chat) | [链接](https://huggingface.co/llamaste/Llama-2-7b-chat-hf)|
|13B| [链接](https://huggingface.co/llamaste/Llama-2-13b) | [链接](https://huggingface.co/llamaste/Llama-2-13b-hf) | [链接](https://huggingface.co/llamaste/Llama-2-13b-chat) | [链接](https://huggingface.co/llamaste/Llama-2-13b-hf)|
|70B| [链接](https://huggingface.co/llamaste/Llama-2-70b) | [链接](https://huggingface.co/llamaste/Llama-2-70b-hf) | [链接](https://huggingface.co/llamaste/Llama-2-70b-chat) | [链接](https://huggingface.co/llamaste/Llama-2-70b-hf)|
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型
支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型
英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型
英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型
英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型
支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型
英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型
英语
O
facebook
6.3M
198
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers

支持多种语言
L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型
支持多种语言
T
google-t5
5.4M
702
Xlm Roberta Large
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型
支持多种语言
X
FacebookAI
5.3M
431
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers

支持多种语言
L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers

英语
C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统
中文
R
uer
2,694
98
AIbase是一个专注于MCP服务的平台,为AI开发者提供高质量的模型上下文协议服务,助力AI应用开发。
简体中文