我司第二项目组一直在迭代论文审稿GPT(对应的第二项目组成员除我之外,包括:阿荀、阿李、鸿飞、文弱等人),比如
所以每个星期都在关注各大公司和科研机构推出的最新技术、最新模型
而Google作为曾经的AI老大,我司自然紧密关注,所以当Google总算开源了一个gemma 7b,作为有技术追求、技术信仰的我司,那必须得支持一下,比如用我司的paper-review数据集微调试下,彰显一下gemma的价值与威力
此外,去年Mistral instruct 0.1因为各种原因导致没跑成功时(详见此文的4.2.2节直接通过llama factory微调Mistral-instruct),我总感觉Mistral应该没那么拉胯,总感觉得多实验几次,所以打算再次尝试下Mistral instruct 0.2
最后,本文只展示部分细节,更多细节则见七月的《大模型商用项目审稿GPT微调实战》——七月论文审稿GPT:微调llama2/mistral/gemma/mixtral 8×7B,历经9个月,连续迭代9个版本,以不断超越GPT4,但如下图所示,过程中也走了不少弯路
关于Mistral 7B的介绍,请看此文《从Mistral 7B到MoE模型Mixtral 8x7B的全面解析:从原理分析到代码解读》的1.1节Mistral 7B:通过分组查询注意力 + 滑动窗口注意力超越13B模型
由于Mistral 7B-Instruct和Mistral 7B一样,其长下文长度都只有8096,而论文审稿GPT这个项目对模型上下文的长度要求12K以上,故需要扩展Mistral 7B-Instruct的上下文长度,如何扩展呢
考虑到如此文《七月论文审稿GPT第2版:用一万多条paper-review数据集微调LLaMA2 7B最终反超GPT4》4.1节所介绍的
- Yarn-Mistral-7b-64k自己实现了modeling,即把mistral的sliding windows attention改了,相当于把sliding windows的范围从滑窗大小直接调到了65536即64K(即直接滑65536那么个范围的滑窗,其实就是全局)
那类似的,给Mistral 7B–Instruct加YaRN行不行?
然问题是不好实现:YaRN-Mistral 7B – Instruct,因为Yarn是全量训的方案,而大滑窗范围+全量很吃资源- 受LongLora LLaMA的启发,既然没法给Mistral 7B–Instruct加YaRN,那可以给其加longlora么?
然问题是mistral又没法享有longlora,因为mistral的sliding windows attention和longlora的shift short attention无法同时兼容,但要对原chat模型的上下文长度进行有效扩展又会需要shift short attention
不得已,故再考察下它所用的RoPE,毕竟RoPE可以使得模型的上下文长度直接外推10-20%
然,在我们后续实际微调Mistral 7B-Instruct 0.2时,实际支持其获得更长上下文能力的还是归结于其滑动窗口注意力(sliding window attention,简称SWA),毕竟SWA可以有效处理任意长度的序列
本次Mistral-7b-Instruct-v0.2的微调主要由我司第二项目组的鸿飞负责
把训练数据,格式是:
{"input":"论文内容", "output": "review data"}}的数据,
按照LLama-Factory目录下面的dataset_info_zh.md中的步骤,把数据整理成为羊驼alpaca的格式以后
以下是训练过程中的其他细节
- {
- 'loss': 1.9611,
- 'grad_norm': tensor(4.6666),
- 'learning_rate': 2.5e-05,
- 'epoch': 0.0
- },
最后通过安装 deepspeed==0.13.1 解决如鸿飞如说
更多见七月的《大模型商用项目审稿GPT微调实战》
// 待更
Google在聊天机器人这个赛道上,可谓被双向夹击
终于在24年2.21,按耐不住推出了开源模型gemma(有2B、7B两个版本,这是其技术报告,这是其解读之一),试图对抗与llama、Mistral在开源场景上形成三足鼎立之势
Gemma 7B在 18 个基于文本的任务中的 11 个上优于相似参数规模的开放模型,例如除了问答上稍逊于llama 13B,其他诸如常识推理、数学和科学、编码等任务上的表现均超过了llama2 7B/13B(关于llama2的介绍请看此文的第三部分)、Mistral 7B
Gemma 模型架构基于 Transformer 解码器
此外,gemma还在原始 transformer 论文的基础上进行了改进,改进的部分包括:
对于 7B 模型,谷歌在 16 个pod(共计4096 个TPUv5e)上训练模型,他们通过 2 个pod对2B模型进行预训练,总计 512 TPUv5e
在一个 pod 中,谷歌对 7B 模型使用 16 路模型分片和 16 路数据复制,对于 2B 模型,只需使用 256 路数据复制
优化器状态使用类似 ZeRO-3 的技术进一步分片。在 pod 之外,谷歌使用了 Pathways 方法通过数据中心网络执行数据复制还原
本次gemma 7B的微调由我司第二项目组的阿李负责
以下是一些关键结论
以下是一些关键的微调细节
以下是本次微调所涉及到的环境配置
- conda create -n gemma python=3.9 pip
- source activate
- conda activate gemma
- pip install torch==1.13.0+cu117 torchvision==0.14.0+cu117 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu117
- pip install accelerate==0.27.2 trl==0.7.11 transformers==4.38.2 datasets==2.16.0 peft==0.9.0
- per_device_train_batch_size=1
- per_device_eval_batch_size=1
- gradient_accumulation_steps=16
- learning_rate=2e-4
- max_grad_norm=0.3
- weight_decay=0.001
- lora_alpha=16
- lora_dropout=0.1
- lora_r=64
- max_seq_length=1024*8
- dataset_name="./data/paper_review/paper_review_data_longqlora_15565.jsonl"
- fp16=False
- bf16=True
- packing=False
- gradient_checkpointing=True
- use_flash_attention_2=True
- optim="paged_adamw_32bit"
- lr_scheduler_type="constant"
- warmup_ratio=0.03
- save_steps=10
- save_total_limit=3
- logging_steps=10
- num_train_epochs=2
- def formatting_func(example):
- # text = f"### USER: {example['data'][0]}\n### ASSISTANT: {example['data'][1]}"
- text = """
- Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
- ### Instruction:
- You are a professional machine learning conference reviewer who reviews a given paper and considers 4 criteria: ** importance and novelty **, ** potential reasons for acceptance **, ** potential reasons for rejection **, and ** suggestions for improvement **. The given paper is as follows.
- ### Input:
- {paper}
- ### Response:
- {review}
- """.format(example[0],example[1])
- return text
最终的评估结果告诉我们,大家不要小看Google的gemma,在同样的论文审稿场景下、同样的数据集下,微调后取得了目前最好的效果
且略微超过之前微调llama2的结果(在GPT4-1106做裁判的情况下,之前微调过后的llama2 7B对GPT4-1106的胜率仅为63.16%,微调过后的llama2 13B对GPT4-1106胜率仅为75.44%)
所以,当微调后审稿效果超过GPT4 1106(裁判也使用的gpt-4-1106-preview),则很自然了