Firefly项目链接:
https://github.com/yangjianxin1/Firefly
firefly-internlm-7b模型权重:
https://huggingface.co/YeungNLP/firefly-internlm-7b
01
书生·浦语InternLM
InternLM ,即书生·浦语大模型,是由上海人工智能实验室开发的,包含面向实用场景的70亿参数基础模型与对话模型 (InternLM-7B)。
https://github.com/InternLM/InternLM
模型具有以下特点:
-
使用上万亿高质量语料,建立模型超强知识体系;
-
支持8k语境窗口长度,实现更长输入与更强推理体验;
-
通用工具调用能力,支持用户灵活自助搭建流程;
该团队还开源了大模型评测工具OpenCompass,并且有OpenCompass大模型排行榜,可以从学科综合能力、语言能力、知识能力、推理能力、理解能力五大能力维度对模型进行评测。
https://github.com/InternLM/opencompass
对于InternLM模型,官方提供的评测结果如下图所示,就该评测结果而言,InternLM-7B相比Baichuan-7B存在一定的优势。
OpenCompass排行榜上有更丰富的模型评测结果,该榜单从学科综合能力、语言能力、知识能力、理解能力、推理能力等多种维度对模型进行评测。我们摘录了部分模型在中文数据集上的综合评分,其中InternLM-7B的表现不俗,超越了XVERSE-13B、Baichuan-7B,逼近Baichuan-13B-Base。
模型 | 中文综合评分 |
GPT-4 | 73.3 |
ChatGPT | 63.5 |
Qwen-7B | 56.5 |
LLaMA-2-13B | 49 |
Baichaun-13B-Base |
46.9 |
InternLM-7B |
46.5 |
LLaMA-2-7B | 42.9 |
XVERSE-13B |
40.8 |
LLaMA-7B | 39.6 |
Baichuan-7B |
38.1 |
上述表格中,除了GPT-4与ChatGPT外,我们只列出了预训练模型,也就是未经过指令微调的模型,各个预训练模型之间的差距还是非常大的。
榜单中出现了几个比较有意思的评测现象,在此抛出来和大家一起分享讨论:
-
Qwen-7B碾压一众中文模型,在所有中文预训练模型中排名第一,并且拉开了非常大的差距。
-
InternLM-7B优于XVERSE-13B,逼近Baichaun-13B-Base。
-
在中文榜单上,部分英文模型优于中文模型。例如LLaMA-7B优于Baichuan-7B,LLaMA-2-13B优于Baichaun-13B-Base。
-
在英文榜单上,Qwen-7B以57.9分,InternLM以53.4分,Baichuan-13B-Base以50.5分,击败LLaMA-2-70B的49.7分。
对于上述现象,在此抛砖引玉,欢迎讨论,一家之言,仅供参考。
-
Qwen-7B碾压一众中文模型,大概率可以归功于其2.2万亿的预训练token。在OpenCompass的英文榜单上,Llama-13B与Llama-2-7B的综合评分分别为36.3和36.8,也出现了以小胜大的情况。这说明通过堆数据,在榜单上以小胜大也是合理的现象。
-
在中文榜单上,LLaMA优于Baichuan;在英文榜单上,一系列13B以下的小模型击败了LLaMA-2-70B。比较反直觉,也许需要深入到综合评分的构成,以及评测方法。
-
如今大模型预训练,大家恨不得把整个互联网的数据都塞进模型里,无可避免,或多或少会有一部分榜单数据,或者类榜单的数据参与训练,造成数据泄露。这也是当前各种开源榜单的局限性。
-
当前很多大模型榜单,很大部分评测集是客观题、常识题,还是以做题的思路评测大模型,对于评测大模型的能力,也许还不够全面。不过也是能够从某一角度,为大模型的能力提供依据。
总而言之,言而总之,大模型的评测工作很困难,目前开源的评测榜单或多或少存在一些局限性。开源评测榜单可以作为参考,但需要结合具体业务进行更加全面的评测工作。
期待国产开源大模型百花齐放,百家争鸣,共同进步。
更多模型的评测结果可以查看OpenCompass排行榜:
https://opencompass.org.cn/leaderboard-llm
02
微调InternLM
<s>input1</s>target1</s>input2</s>target2</s>...
-
一文看懂:如何充分高效训练多轮对话大模型 -
源码解析ChatGLM2多轮对话训练方法的不足,以及改进方法
对于QLoRA,除了embedding和lm_head外,我们在所有全连接层都插入adapter,其中lora_rank为64,lora_alpha为16,lora_dropout为0.05。最终参与训练的参数量约为1.6亿。global batch size为64,为防止过拟合,仅训练一个epoch。
{
"output_dir": "output/firefly-internlm-7b",
"model_name_or_path": "internlm/internlm-7b",
"train_file": "./data/dummy_data.jsonl",
"num_train_epochs": 1,
"per_device_train_batch_size": 8,
"gradient_accumulation_steps": 2,
"learning_rate": 2e-4,
"max_seq_length": 1024,
"logging_steps": 300,
"save_steps": 500,
"save_total_limit": 1,
"lr_scheduler_type": "constant_with_warmup",
"warmup_steps": 3000,
"lora_rank": 64,
"lora_alpha": 16,
"lora_dropout": 0.05,
"gradient_checkpointing": true,
"disable_tqdm": false,
"optim": "paged_adamw_32bit",
"seed": 42,
"fp16": true,
"report_to": "tensorboard",
"dataloader_num_workers": 0,
"save_strategy": "steps",
"weight_decay": 0,
"max_grad_norm": 0.3,
"remove_unused_columns": false
}
torchrun --nproc_per_node={num_gpus} train_qlora.py --train_args_file train_args/qlora/internlm-7b-sft-qlora.json
03
模型效果
更多生成示例,请扫描二维码,或者打开文档链接,查看共享文档的内容:
https://docs.qq.com/sheet/DU3JIcHJlSVZHS2Zl?tab=c5vlid
04
结语
本文主要对书生·浦语InternLM模型进行了介绍,分享了Firefly对InternLM-7B模型进行微调的效果,并且分享了OpenCompass排行榜上一些评测结果。总体而言,书生·浦语InternLM是一个优秀的中文基座模型。
最后期待国产开源大模型百花齐放,百家争鸣。
超燃超嗨!OpenMMLab 首次网友面基大会回顾
2023-08-26
Meta开源史上最强代码工具Code Llama,逼近GPT-4!
2023-08-25
一文带你使用即时编译(JIT)提高 PyTorch 模型推理性能!
2023-08-24
点击下方“阅读原文”直达 InternLM