当前位置:AIGC资讯 > AIGC > 正文

LLaMA、Baichuan、ChatGLM、Qwen、天工等大模型对比

12.10更新:Qwen技术报告核心解读

Baichuan

Baichuan 2: Open Large-scale Language Models

数据处理:数据频率和质量,使用聚类和去重方法,基于LSH和dense embedding方法 tokenizer:更好的压缩率,对数字的每一位分开,添加空格token 位置编码:7B Rope,13B ALiBi 使用了SwiGLU激活函数,因为SwiGLU是一个双线性层,多引入一个门控矩阵,参数量
更多,hidden_size从4减少到了8/3 使用了更高效的基于xFormers的attention实现 使用RMSNorm,对transformer的block输入进行了Layer Norm 使用了AdamW优化器,为了稳定训练和提高模型性能,对输出embedding进行了归一化
即对header进行了归一化;训练中logits值偏大,在推理时,对重复惩罚参数比较
敏感,因此加入了max-z loss 使用了有监督微调和RLHF

Baichuan v1 7b

https://github.com/baichuan-inc/Baichuan-7B 数据:开源的中英文数据和互联网数据,使用了启发式的数据过滤,然后使用了去重和
质量打分策略来进一步筛选数据 分词:重新训练了BPE模型,更好的压缩率;对数字的每一位分开,避免出现数字不一
致问题;支持UTF-8 character的byte编码,对未知词全覆盖 模型:同LLama,Rope位置编码,SwiGLU,基于RMSNorm的Pre-Norm

Baichuan v1 13b

使用ALiBi位置编码,更多的训练数据

ChatGLM

ChatGLM:千亿基座的对话模型开启内测⸺对应单卡版本开源

GLM

GLM: General Language Model Pretraining with Autoregressive Blank Infilling 使用了blank filling的自回归方式来统一所有任务目标。其通过mask spans来自回归的预测被mask的span,非span区域是互见的,span之间的可见性取决于span的随机排列顺序 为了获得更好的生成性能,通过mask更长span,以及对整句进行mask 使用的2D位置编码:被mask的序列绝对位置; 非span区域位置为0,span内部位置从1开始编码 https://github.com/THUDM/GLM

https://github.com/THUDM/GLM-130B

https://github.com/THUDM/ChatGLM-6B

1T token; 监督微调、反馈自助、人类反馈强化学习 Rope; Layer Norm; GLUE激活函数; prefix模型的mask方式 使用2d的position_id和block_position_id:block_position_id是把input的pos_id全部置为0;计算attention时需要把query和key chunk成2块

https://github.com/THUDM/ChatGLM2-6B

1.4T; 人类偏好对; 使用GLM的混合目标函数 更长的上下文;使用multi-query attention Rope; preNorm; RMSNorm; SwiGLU激活函数(与LLama相同)

https://github.com/THUDM/ChatGLM3

更多样的训练数据、更充分的训练步数和更合理的训练策略;采用了全新设计的Prompt格式,支持工具调用、代码执行、Agent 模型配置与chatglm2相同

其他开源项目

https://github.com/lich99/ChatGLM-finetune-LoRA

基于alpaca数据集,使用Lora技术微调ChatGLM-6B

https://github.com/mymusise/ChatGLM-Tuning

基于alpaca数据集,使用Lora技术微调ChatGLM-6B

https://github.com/liangwq/Chatglm_lora_multi-gpu

支持多机多卡训练

https://huggingface.co/silver/chatglm-6b-slim

是在ChatGLM-6B的基础上通过裁剪词表构建的。因为ChatGLM-6B使用了icetk,在其词表中,前20000个token是预留给图片的

https://github.com/MediaBrain-SJTU/MedicalGPT-zh

一个基于ChatGLM的在高质量指令数据集微调的中文医疗对话语言模型

https://github.com/hiyouga/ChatGLM-Efficient-Tuning

LLaMA

LLaMA: Open and Efficient Foundation Language Models

数据处理:质量过滤,重复过滤 共1.4T tokens,除了高质量的book和wikipedia数据训练两个epoch,其他数据都训练1个epoch 模型:Rope; preNorm; RMSNorm; SwiGLU激活函数

Llama 2: Open Foundation and Fine-Tuned Chat Models

相比llama1,数据增加40%,长度增加一倍,使用了group-query attention llama2-chat是在llama2基础版本的基础上使用有监督微调和RLHF llama2-chat使用3w条高质量SFT数据,更小学习率,2epoch,user_prompt不计算loss llama-chat的RLHF训练 使用二分比较模式;为了最大化生成数据的多样性,对同一个prompt,使用不同的模型、使用不同的温度参数;新模型迭代需要使用新模型生成的偏好数据 奖励模型:使用两个奖励模型,helpfulness和safety,使用chat model checkpoint来初始化;奖励模型与chat model不同地方就是分类header替换成regression header,
损失使用的是binary ranking loss,使用了margin进一步优化 为了提高多轮对话的一致性,提出可Ghost Attention

Qwen

3T tokens;语言判别工具;去重工具;低质量数据过滤(rule-based & machine-learning-based);上采样部分数据;在预训练阶段添加部分指令数据 BPE tokenizer(基于tiktoken);使用常用chinese token增强;数字细粒度切分 基础模型:主要基于llama,改进的地方:embedding和output project不在共享权重;使用FP32的Rope;移去所有的bias,但是QKV添加了bias;
使用Pre-Norm & RMSNorm;SwiGLU激活函数 推理长度扩展:NTK-Rope;LogN-Scaling;window attention(lower layer对window size更加敏感,因此lower layer使用更小的window size) SFT finetune and RLHF: 为了提高泛化性,去掉了固定prompt格式的数据;使用了OpenAI的chatML-style format;RLHF基本同llama2 TOOL USE, CODE INTERPRETER, AND AGENT:使用了self-instruce+人工纠正,训练时也添加了其他通用目的的SFT数据 Code-Qwen:基于基础模型用code data进一步预训练,然后使用Code SFT数据微调

点击查看我的更多AI学习笔记github

更新时间 2024-02-03