Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
Vivicai1005 2b7400fb2d | 3 weeks ago | |
---|---|---|
apps | 3 months ago | |
docs | 9 months ago | |
image | 3 months ago | |
opencompass | 7 months ago | |
other_infer | 2 months ago | |
train | 9 months ago | |
utils | 6 months ago | |
.gitignore | 6 months ago | |
.project | 11 months ago | |
.pydevproject | 11 months ago | |
LICENSE | 11 months ago | |
README.md | 3 weeks ago | |
README_en.md | 4 months ago | |
infer.py | 3 months ago | |
requirements.txt | 6 months ago |
A cutting-edge foundation for your very own LLM.
以世界级的基础大模型,贡献于中国式的创新。
🌐 TigerBot • 🤗 Hugging Face • 💻ModelScope
中文 | English
[03/18/2024] 虎博TigerBot升级,支持100K上下文长度 (70b and 13b chat) 🔥 [models];TigerBot医疗大模型被AAAI 2024 Spring Symposium on Clinical Foundation Models录取 [paper]。
# 可以根据实际硬件情况调整max_input/generate_length
export PYTHONPATH='./' ; export CUDA_VISIBLE_DEVICES=0 ; streamlit run apps/web_demo.py -- --model_path tigerbot-70b-chat-v6 --rope_scaling yarn --rope_factor 8 --max_input_length 37888 --max_generate_length 62112
[01/18/2024] 新一代的TigerBot基座模型训练了我们认为最大最高质量的中文数据。为了验证,我们做了个有趣的测试:我们让Tigerbot-70b-chat和GPT-4-Turbo对战40局成语接龙,各先出20局。每局中无法成功接龙成语者输(以权威成语词典为准),比分 Tigerbot:GPT-4 = 24:16。
基于此,Tigerbot发布第一款基于大模型的小游戏[TigerBot成语接龙],移动端扫如下二维码参与,有机会赢取顶配iPhone Pro Max. 🔥
[12/29/2023] Tigerbot发表技术报告(arXiv preprint),分享我们在大模型狂飙和应用落地方面的一些技术细节和浅见 🔥 [paper]
[12/08/2023] Tigerbot family新版模型发布,bigger and better 🔥 [模型下载][测评]
[10/19/2023] Long(16k)-Tigerbot 发布
[9/27/2023] Tigerbot-70b-chat-api发布function
calling功能: [tech report][tigerbot-api]
[9/26/2023] Tigerbot-70b-chat(v3)和Tigerbot-13b-chat(v4)更新发布: [模型下载]
[9/15/2023] Tigerbot-70b-chat(v2)和Tigerbot-13b-chat(v3)更新发布: [模型下载]
[9/06/2023]
Tigerbot-70b发布,继续开源和免费商用: [paper][模型下载]:
fire:
[8/25/2023]
TigerBot更新13b-base模型: [模型下载][测评]
[8/21/2023] TigerBot更新发布7b和13b base/chat模型: [模型下载][测评]
[8/19/2023]
TigerBot推理(tigerbot.com和tigerbot-api)启用 TGI,达到3x
QPS和2x 响应速度。
https://github.com/TigerResearch/TigerBot/assets/32117316/0a8c11b9-6a10-4e37-80e8-45b482e76c51
[8/08/2023] TigerBot 2023.08 (V3) release:
虎博很高兴的发布TigerBot-13B大模型,在Llama-2的基础上以虎博积累的技术和数据继续训练,不但保持了Llama-2出色的英文能力,更是在中文能力上填补了Llama-2的不足,各项主流中文任务中超过Llama-2的49%,在开源同类模型中具有竞争力。:
fire: [paper]
python infer.py --model_path TigerResearch/tigerbot-13b-chat
[8/03/2023] TigerBot 兼容 OpenAI
接口。[tigerbot-api]
[7/26/2023] TigerBot 开放 search-api [tigerbot-api]
[7/08/2023] TigerBot 2023.07 (V2)
release [paper] 🔥
tigerbot-7b-base (v2), 在 1.5TB 高质量数据上充分预训练(千卡耗时 4 周,算力成本~ 300 万),在中英文公开数据测评优于
bloom/llama 同等模型 15-30%;[测评][模型下载]
tigerbot-7b-sft (v2), 在 base-v2 基础上微调的 sft-v2 在 2000 万/20G 高质量清洗和配比的数据上充分训练,在 9
项公开语料测评上优于 sft-v1
9.3%;[测评][模型下载]
新模型可通过以下代码加载:
import transformers
# 下载过旧版的用户需要指定`force_download=True`避免使用旧版缓存
model_sft = transformers.AutoModelForCausalLM.from_pretrained('TigerResearch/tigerbot-7b-sft', force_download=True)
model_base = transformers.AutoModelForCausalLM.from_pretrained('TigerResearch/tigerbot-7b-base', force_download=True)
tigerbot 开启搜索模式,对接主流中英文搜索引擎,和结构化工具(如天气,股市,计算器等),打开 LLM+search 的应用场景,同时开放
chat-api with internet search
switch;[TigerBot with search mode (default off) :earth_asia:][paper]
tigerbot 开启流式生成模式,同时开放 chat-api with streaming
switch; [TigerBot][TigerBot-API]
tigerbot-api 全新升级,开放 LLM 应用开发常用的 api 工具,包括:LLM (chat, plugin, finetune), text (embedding,
summarization, pdf2text), vision (text2image)。[TigerBot-API]
[6/27/2023] PEFT TigerBot with QLoRA: 在单张 3090 上使用 qlora 微调 tigerbot-7b-sft,加速 16 倍,和/或减少
GPU3/4,同时防止了对下游数据的过拟合。[code] [paper][模型下载]
conda create --name tigerbot python=3.8
conda activate tigerbot
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
git clone https://github.com/TigerResearch/TigerBot
cd TigerBot
pip install -r requirements.txt
Model | Version | Architecture | Disk size (GB) | Note |
---|---|---|---|---|
tigerbot-70b-base | v2 [🤗][🤖] | llama-2 | 129 | From llama-2-70b weights |
v1 [🤗][🤖] | llama-2 | 129 | From llama-2-70b weights | |
tigerbot-70b-chat | v6 [🤗][🤖] | llama-2 | 129 | From tigerbot-70b-base v2 |
v4-4k [🤗][🤖] | llama-2 | 129 | From tigerbot-70b-base v2 | |
v4 [🤗][🤖] | llama-2 | 129 | From tigerbot-70b-base v2 | |
v3 [🤗][🤖] | llama-2 | 129 | From tigerbot-70b-base v1 | |
v2 [🤗][🤖] | llama-2 | 129 | From tigerbot-70b-base v1 | |
v1 [🤗] | llama-2 | 129 | From tigerbot-70b-base v1 | |
tigerbot-70b-chat-4bit | v6 [🤗] | llama-2 | 37 | From tigerbot-70b-chat v6 |
v4 [🤗] | llama-2 | 37 | From tigerbot-70b-chat v4 | |
v3 [🤗] | llama-2 | 37 | From tigerbot-70b-chat v3 | |
v2 [🤗] | llama-2 | 37 | From tigerbot-70b-chat v2 | |
v1 [🤗] | llama-2 | 37 | From tigerbot-70b-chat v1 | |
tigerbot-13b-base | v3 [🤗][🤖] | llama-2 | 26.6 | From llama-2-13b weights |
v2 [🤗][🤖] | llama-2 | 26.6 | From llama-2-13b weights | |
v1 [🤗] | llama-2 | 26.6 | From llama-2-13b weights | |
tigerbot-13b-chat | v6 [🤗][🤖] | llama-2 | 26.6 | From tigerbot-13b-base v3 |
v5 [🤗][🤖] | llama-2 | 26.6 | From tigerbot-13b-base v3 | |
v5 [🤗][🤖] | llama-2 | 26.6 | From tigerbot-13b-base v3 | |
v4 [🤗][🤖] | llama-2 | 26.6 | From tigerbot-13b-base v2 | |
v3 [🤗][🤖] | llama-2 | 26.6 | From tigerbot-13b-base v2 | |
v2 [🤗] | llama-2 | 26.6 | From tigerbot-13b-base v2 | |
v1 [🤗] | llama-2 | 26.6 | From tigerbot-13b-base v1 | |
tigerbot-13b-chat-4bit | v6 [🤗] | llama-2 | 11.5 | From tigerbot-13b-chat v6 |
v5 [🤗] | llama-2 | 11.5 | From tigerbot-13b-chat v5-4k | |
v4 [🤗] | llama-2 | 11.5 | From tigerbot-13b-chat v4 | |
tigerbot-7b-base | v3 [🤗][🤖] | llama-2 | 13.9 | From llama-2-7b weights |
v2 [🤗] | bloom | 16.2 | From bloom weights | |
v1 [🤗] | bloom | 16.2 | From bloom weights | |
tigerbot-7b-chat | v3 [🤗][🤖] | llama-2 | 13.9 | From tigerbot-7b-base v3 |
v2 [🤗] | bloom | 16.2 | From tigerbot-7b-base v2 | |
v1 [🤗] | bloom | 16.2 | From tigerbot-7b-base v1 | |
tigerbot-7b-chat-8bit | v3 [🤗] | llama-2 | 10.8 | From tigerbot-7b-chat v3 |
tigerbot-7b-chat-4bit | v3 [🤗] | llama-2 | 6.5 | From tigerbot-7b-chat v3 |
tigerbot-180b-base | v2 [🤗][🤖] | bloom | 347.6 | From bloom weights |
tigerbot-180b-chat | v2 [🤗][🤖] | bloom | 347.6 | From tigerbot-180b-chat v2 |
v1 [🤗] | bloom | 347.6 | From bloom weights |
CUDA_VISIBLE_DEVICES=0 python infer.py --model_path tigerbot-13b-chat --max_input_length 1024 --max_generate_length 1024 --streaming True
参数:
--model_path
: 模型路径--model_type=chat
: base/chat--max_input_length=1024
: 最大输入长度--max_generate_length=1024
: 最大输出长度--rope_scaling=None
: 长度外推方法(dynamic/yarn supported now)--rope_factor=8.0
: 外推参数--streaming
: 流式输出输入 clear
可以清空对话历史,输入 exit
终止推理对话。
export PYTHONPATH='./' ; export CUDA_VISIBLE_DEVICES=0 ; streamlit run apps/web_demo.py -- --model_path tigerbot-13b-chat
启动量化模型的web_demo
export PYTHONPATH='./' ; export CUDA_VISIBLE_DEVICES=0 ; streamlit run apps/exllamav2_web_demo.py -- --model_path TigerResearch/tigerbot-70b-chat-v4-4bit-exl2
参数同CLI启动参数
CLI/WebPage均为demo性质。TGI实现了混合batch,request
queue等工程特性,如有大量推理需求,推荐通过TGI镜像提供服务。
docker run --gpus '"device=0,1,2,3"' -d -p 8080:80 -v PATH-TO-MODEL-DIR:/model ghcr.io/huggingface/text-generation-inference:1.1.1 --model-id /model --max-total-tokens=1024 --max-input-length=1024 --max-batch-prefill-tokens=1024
请根据模型规模与硬件情况选择合适的参数。一般来说7B/13B需要A100 40G * 1,70B需要A100 * 4。
注意,TGI部署服务,生成控制参数需要在每个请求中控制。
使用exllamav2加载[TigerResearch/tigerbot-70b-chat-v4-4bit-exl2]进行推理,推理速度加快
# 安装exllamav2
git clone https://github.com/turboderp/exllamav2
cd exllamav2
pip install -r requirements.txt
# 启动推理
CUDA_VISIBLE_DEVICES=0 python other_infer/exllamav2_hf_infer.py --model_path ${MODEL_PATH}
MODEL_PATH
为量化模型路径,如 TigerResearch/tigerbot-70b-chat-v4-4bit-exl2
使用以上量化方式,请将transformers、bitsandbytes等包升级到最新版(目前transformers==4.33.1和bitsandbytes==0.41.1可以正常使用)
pip install -U transformers bitsandbytes
此方式为在线量化与推理
CUDA_VISIBLE_DEVICES=0 python other_infer/quant_infer.py --model_path ${MODEL_DIR} --wbit 8
启动训练前安装 DeepSpeed
git clone git@github.com:microsoft/DeepSpeed.git
cd DeepSpeed
rm -rf build
TORCH_CUDA_ARCH_LIST="8.0" DS_BUILD_CPU_ADAM=1 DS_BUILD_UTILS=1 pip install . \
--global-option="build_ext" --global-option="-j8" --no-cache -v \
--disable-pip-version-check 2>&1 | tee build.log
TORCH_CUDA_ARCH_LIST 根据你运行的 GPU 架构做调整,获取 TORCH_CUDA_ARCH_LIST
CUDA_VISIBLE_DEVICES=0 python -c "import torch; print(torch.cuda.get_device_capability())"
如果返回的结果是(8, 0),那么 TORCH_CUDA_ARCH_LIST="8.0"
启动tigerbot-7b
训练至少需要 1 x A100 (40GB), 启动tigerbot-180b
至少需要 16 x A100 (40GB)
deepspeed \
--include="localhost:0,1,2,3" \
./train_clm.py \
--deepspeed ./ds_config/ds_config_zero3.json \
--model_name_or_path TigerResearch/tigerbot-7b-base \
--dataset_name TigerResearch/dev_pretrain \
--do_train \
--output_dir ./ckpt-clm \
--overwrite_output_dir \
--preprocess_num_workers 8 \
--num_train_epochs 5 \
--learning_rate 1e-5 \
--evaluation_strategy steps \
--eval_steps 10 \
--bf16 True \
--save_strategy steps \
--save_steps 10 \
--save_total_limit 2 \
--logging_steps 10 \
--tf32 True \
--per_device_train_batch_size 2 \
--per_device_eval_batch_size 2
deepspeed \
--include="localhost:0,1,2,3" \
./train_sft.py \
--deepspeed ./ds_config/ds_config_zero3.json \
--model_name_or_path TigerResearch/tigerbot-7b-base \
--dataset_name TigerResearch/dev_sft \
--do_train \
--output_dir ./ckpt-sft \
--overwrite_output_dir \
--preprocess_num_workers 8 \
--num_train_epochs 5 \
--learning_rate 1e-5 \
--evaluation_strategy steps \
--eval_steps 10 \
--bf16 True \
--save_strategy steps \
--save_steps 10 \
--save_total_limit 2 \
--logging_steps 10 \
--tf32 True \
--per_device_train_batch_size 2 \
--per_device_eval_batch_size 2
我们使用经典的中英文benchmark自动评测,共13项任务,涵盖代码,常识推理,阅读理解,数学,自然语言理解等。我们基于opencompass建立自动评测体系(感谢@opencompass)
# 安装
cd opencompass
pip install -e .
# 下载数据集到 data/ 处
wget https://github.com/InternLM/opencompass/releases/download/0.1.1/OpenCompassData.zip
unzip OpenCompassData.zip
#运行测评任务:
CUDA_VISIBLE_DEVICES=0,1,2 python run.py configs/eval_tigerbot_13b.py -w outputs/tigerbot-13b-base
总分为各类任务的平均分
chat模型测评结果
base模型测评结果
英文开源预训练集 -
51G,包含英文书籍、英文互联网、英文百科 - 下载 [hugging face]
类型 | 磁盘占用 | 来源 |
---|---|---|
中文书籍 | 12G | 自研 |
中文互联网 | 25G | 自研 |
中文百科 | 19G | 自研 |
英文书籍 | 22G | 开源 |
英文互联网 | 6.9G | 开源 |
英文百科 | 22G | 开源 |
总量 | 106G |
完整预训练数据占比如图所示:
模型中使用的微调数据的搜集思想如下:
a. 从用户指令的自然分布,人工标注总结 10 大类,120 小类任务,例如,事实性问答,开放式创作,语法分析,代码编辑等;
b. self-instruct: 参考 Alpaca self-instruct 方法,扩充中英文 seed_tasks,增加一些中文习惯种子问题,基于此生成 2M 中文(本次开源
0.5M)及 0.1M 英文(本次开源 50k);
c. human-labeling: 基于人工写题及答案、网络搜集方式,整理加工问答集数据,在开源列表中标识为[自研]部分,本次开放部分数据;
d. open-source data cleaning: 基于各类公开数据集转换清洗,其中[自研*]部分,表示基于原始数据进行二次开发后得到,[开源]
部分数据集一般原始数据即为较规整的问答数据,进行简单清洗得到;
e. 总的数据分布符合用户指令自然分布。
a. 过滤类-敏感词规则:基于积累的敏感词库,清洗丢弃涉政、涉黄、涉暴、涉恐等数据项;
b. 过滤类-无效输入输出:此类规则主要针对 Self-Instruct 生成数据缺陷进行专项清理,根据输入输出分别制定规则,以丢弃一些无效的数据项;
无效输入如"<一段文本>",无效输出如"[图画]";
c. 清洗类-关键词规则:根据整理的关键词/正则列表进行数据的替换,包括:清理特殊标志位字符、清理非可见字符、清理标签、繁简转换等;
d. 清洗类-特殊逻辑规则:此类规则用于清洗一些特殊现象数据,如指令与输入重复等,如下所示:
{"instruction": "描述如何做一道红烧肉。请提供食材和详细的步骤。", "input": "请描述如何做一道红烧肉,提供食材和详细步骤。", ...}
类型 | 语言 | 数据集 | 数量 | 来源 |
---|---|---|---|---|
alpaca 中文 | 中文 | tigerbot-alpaca-zh-0.5m | 0.5m | 自研 |
百科问答 | 中文 | tigerbot-wiki-qa-1k | 1k | 自研 |
名著问答 | 中文 | tigerbot-book-qa-1k | 1k | 自研 |
猜谜语 | 中文 | tigerbot-riddle-qa-1k | 1k | 自研 |
阅读理解 | 中文 | tigerbot-superclue-c3-zh-5k | 5k | 自研* |
问答 | 中文 | tigerbot-HC3-zh-12k | 12k | 开源 |
知乎问答 | 中文 | tigerbot-zhihu-zh-10k | 10k | 开源 |
alpaca 英文 | 英文 | tigerbot-alpaca-en-50k | 50k | 自研 |
头脑风暴 | 英文 | tigerbot-dolly-Brainstorming-en-1.7k | 1.7k | 开源 |
分类 | 英文 | tigerbot-dolly-Classification-en-2k | 2k | 开源 | |
代码 | 英文 | tigerbot-kaggle-leetcodesolutions-en-2k | 2k | 自研* |
食谱生成 | 英文 | tigerbot-kaggle-recipes-en-2k | 2k | 开源 |
病历生成 | 英文 | tigerbot-mt-note-generation-en | 450 | 开源 |
多轮对话 | 英文 | tigerbot-OIG-multichat-en-50k | 50k | 自研* |
综合问答 | 英文 | tigerbot-stackexchange-qa-en-0.5m | 0.5m | 开源 |
wiki 问答 | 英文 | tigerbot-wiki-qa-bart-en-10k | 10k | 开源 |
如何做类教程 | 英文 | tigerbot-youtube-howto-en-50k | 50k | 开源 |
总量 | 120W 条 |
更多数据集陆续整理开放中...
021-63888086
No Description
Python Markdown SVG reStructuredText other
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》