模型介绍
中文整理中文** **English**
基于TencentPretrain的LLaMa推理
本项目主要支持基于TencentPretrain的LLaMa模型量化推理以及简单的微服务部署。也可以扩展至其他模型,持续更新中。
特性
Int8推理 支持bitsandbytes库的int8推理,相比tencentpretrain中的LM推理脚本,加入了Batch推理。
优化推理逻辑 在Multi-head Attention中加入了key和value的cache,每次inference只需要输入新生成的token。
大模型多卡推理 支持张量并行的多卡推理。
微服务部署 支持简单的flask部署以及gradio在线可视化部署。
LoRA模型推理 施工中,计划支持使用LoRA训练的模型。
tips:当前脚本只支持cuda推理,未来计划更多的量化部署推理的功能,敬请期待。
依赖环境
Python >= 3.7
torch >= 1.9
bitsandbytes
argparse
输入参数参考
- -load model path (必填项),预训练好的模型,默认是fp16的(如果需要fp32,修改llama infer.py的L41为对应的精度)
- -test path (必填项),输入的prompts,每一行是一个prompts。
- -prediction path (必填项),输出结果保存的路径。
- -config path (必填项),模型参数配置文件,可以保存在config文件夹中。
- -spm model path (必填项),模型tokenizer存放的路径。
- -batch size (可选),默认为1。批处理大小,注意按需使用,因为attention cache会根据这个大小来构造tensor并且保存在显存中。
- -seq length (可选),默认为128。生成句子的总长度,等于prompts + 模型生成的长度。
- -world size (可选),默认为1。使用多少张卡进行张量并行推理。
- -use int8 (可选),默认为False。是否使用int8推理。
- -top k (可选),默认为40。句子的生成会针对top k做采样,影响生成多样性。
- -top p (可选),默认为0.95。句子的生成会针对累积概率top p做采样,影响生成多样性。
- -temperature (可选),默认为0.8。对最后的probabilities做一次放缩,影响token采样结果。
- -repetition penalty range (可选),默认为1024。重复出现token的惩罚范围。
- -repetition penalty slope (可选),默认为0。重复出现token的惩罚slope。
- -repetition penalty (可选),默认为1.15。重复出现token的惩罚系数。
快速开始
FP16/Int8推理
fp16推理:
如果要使用int8推理的话,加入--use int8:
多轮对话
有可选参数keep length ratio,表示保留多少比例的上下文。输入clear会进行新的一轮对话,输入exit会退出。
gradio部署
需要安装gradio
然后在网页上打开:http://127.0.0.1:7860/
微服务部署
需要安装flask
查询命令:
多卡张量并行推理
需要安装tensor parallel
参数world size为希望使用多少gpu(gpu的id从0开始)
示例代码
优先采用原作者提供的中文模型卡片;仅有英文说明时由闲社AI翻译整理。重要参数、许可证和商用范围请以原文为准。
你将获得什么
完整仓库方式包含该固定版本中的权重、配置、分词器及说明文件;指定版本方式只下载所选文件或整组分片。多模态模型的投影文件、配置等依赖,请按作者说明配齐。
完整仓库可能包含多个权重格式,因此需要的磁盘空间可能大于单一格式的模型大小。下载文件不等于完成模型部署。
使用前须知
运行模型需要的设备、工具与依赖,以原作者说明为准。
是否允许商用、修改和分发,请查看模型许可证。
闲社提供资料与镜像下载方法,不代表已运行模型或完成安全审计。下载的代码应先检查,再执行。
资料或下载有问题?
登录后可提交反馈。
