<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          七月論文審稿GPT第2.5和第3版:分別微調(diào)GPT3.5、Llama2 13B以擴(kuò)...

          共 11627字,需瀏覽 24分鐘

           ·

          2024-04-11 11:44

          bc57cab6643afae6903a105ca0b0f571.webp文末 大模型項(xiàng)目開發(fā)線上營 》開搶↓

          前言

          自去年7月份我?guī)ш?duì)成立大模型項(xiàng)目團(tuán)隊(duì)以來,我司至今已有5個項(xiàng)目組:

          • 第一個項(xiàng)目組的AIGC模特生成系統(tǒng)已經(jīng)上線在七月官網(wǎng)

          • 第二項(xiàng)目組的論文審稿GPT則將在今年3 4月份對外上線發(fā)布

          • 第三項(xiàng)目組的RAG知識庫問答第1版則在春節(jié)之前已就緒

          • 第四、第五項(xiàng)目組的大模型機(jī)器人、Agent則正在迭代中

          所有項(xiàng)目均為會對外上線發(fā)布的商用項(xiàng)目,而論文審稿GPT至今在過去的半年已經(jīng)迭代兩個版本,其中第二版的效果甚至超過了GPT4(詳見《七月論文審稿GPT第2版:用一萬多條paper-review數(shù)據(jù)集微調(diào)LLaMA2最終反超GPT4》,且本文所用的模型評估方法均用的該文第六部分所述的評估 ),為了持續(xù)累積與原始GPT4的優(yōu)勢,我們?nèi)缃裾诘?.5版本:包括對GPT3.5 turbo 16K的微調(diào)以及l(fā)lama2 13B的微調(diào),本文也因此而成

          第一部分

          第2.5版之微調(diào)GPT3.5 Tubor 16K

          我們微調(diào)第一版的時候,曾經(jīng)考慮過微調(diào)ChatGPT,不過其開放的微調(diào)接口的上下文長度不夠大部分論文的長度(截止到23年10月底暫只有4K),故當(dāng)時沒來得及,好在23年11.6日,OpenAI在其舉辦的首屆開發(fā)者大會上,宣布開放GPT3.5 16K的微調(diào)接口e796d6ac97acab8c622bc7db4aef2397.webp

          因此,我們在第2.5版便可以微調(diào)ChatGPT了,即我司正在嘗試用我們自己爬取一萬多條的paper-review數(shù)據(jù)集去微調(diào)GPT3.5 16k,最終讓它們大亂斗,看哪個是最強(qiáng)王者

          不過,考慮到可能存在的數(shù)據(jù)泄露給OpenAI的風(fēng)險,故我們打算先用一小部分的數(shù)據(jù) 微調(diào)試下,看能否把這條路徑走通,以及看下勝率對比

          • 如果能超過咱們微調(diào)的開源模型,那ChatGPT確實(shí)強(qiáng)

          • 如果沒超過,則再上全量

          1.1 模型訓(xùn)練:GPT3.5 Tubor 16K的微調(diào)

          1.1.1 微調(diào)GPT3.5的前期調(diào)研:費(fèi)用、微調(diào)流程、格式轉(zhuǎn)換等

          首先,計(jì)算一下微調(diào)GPT所需的費(fèi)用  由于我司爬取的15566條paper-review數(shù)據(jù)集的token數(shù)量為:118689950  根據(jù)OpenAI微調(diào)gpt3.5 turbo的定價策略(Pricing)  

            8e8c08a475e4d16aa04dcd8de2de4abb.webp

          1.  可知,全量樣本Traning階段預(yù)計(jì)要花費(fèi)的費(fèi)用為(按2個epoch):118689950個token × 2個epoch × 0.008 × 匯率7.18 = 13635元

          2. 其次,這是微調(diào)的頁面:https://platform.openai.com/finetune  此外,這是OpenAI官網(wǎng)上關(guān)于微調(diào)的教程:https://platform.openai.com/docs/guides/fine-tuning/fine-tuning-examples

          3. 接著,根據(jù)OpenAI微調(diào)教程給的提示  8cba0eb43474b034047afb0d106d3a3e.webp

          把我們自己爬的數(shù)據(jù)

          8ab955bddccf895f14390b2b9eaa32ba.webp

           轉(zhuǎn)成做成chatml的格式,即  {"messages": [{"role": "system", "content": "xxx"}, {"role": "user", "content": "xxx"}, {"role": "assistant", "content": "zzz"}]}

          從而變成如下適應(yīng)「gpt3.5 16k微調(diào)之用」的paper-review數(shù)據(jù)集

          64c96230fc4e72fcbf36d70e62ebd2ca.webp

           為了方便大家一目了然,我再把轉(zhuǎn)換前后的樣式貼出來 對比下  8569308a788f5ee923ad3c1c9e695f6e.webp

          4. 在微調(diào)頁面上傳自己的數(shù)據(jù)  ee3d3026d0c4f15d74006f8953b89301.webp

           1.1.2 先后用150多條、1500多條、15000多條數(shù)據(jù)微調(diào)GPT3.5 Tubor 16K

          為了先驗(yàn)證一下微調(diào)這個模式,故我們先用了156條paper-review數(shù)據(jù)集去微調(diào)gpt3.5 16k,然后跑完之后,我還和項(xiàng)目組的同事打趣說,搞不好我們是國內(nèi)第一批微調(diào)gpt3.5 16k的呢,畢竟高質(zhì)量的長文本數(shù)據(jù)非常稀缺 69f43caab6c53963a5ffdfb08135f13a.webp效果如何呢,我們先隨機(jī)試一篇訓(xùn)練集之外的論文,做個驗(yàn)證,至于專業(yè)全面的評估下節(jié)詳述

          第二項(xiàng)目組的文弱同學(xué)用傳「七月大模型線上營」群里的10pct那個數(shù)據(jù)集的倒數(shù)第二行的input(因?yàn)?/em>上面用于微調(diào)的156條數(shù)據(jù)只用了群里10%的數(shù)據(jù),所以后面的這個input數(shù)據(jù)可以做驗(yàn)證集),分別讓gpt3.5、微調(diào)過的gpt3.5對該input進(jìn)行審稿意見的輸出,且對比原始的人工審稿意見

          這三個輸出按順序如下從左至右展示1174adf078689db532471175d4fb62b0.webp

          1.2 模型評估:對通過156條數(shù)據(jù)微調(diào)后的gpt3.5 16K的效果評估

          1.2.1 ft后的gpt3.5效果超過不微調(diào)的gpt3.5和GPT4

          如下圖左側(cè)所示,僅才156條數(shù)據(jù)微調(diào)之后的gpt3.5的效果遠(yuǎn)遠(yuǎn)超過不微調(diào)的gpt3.5,且如果下圖右側(cè)所示,也超過了GPT4(對GPT4的勝率達(dá)到61.4%)

          b2a3ffeedcf7eb7c78877c3120407fa9.webp2d658901446c52256d0847500dddd3dc.webp16eeb7f8f3bb8c17022fdfdb51ee7127.webp

          當(dāng)然,上述的表現(xiàn)表面上是證明了微調(diào)的威力,其實(shí)是證明了我司爬取的這份超高質(zhì)量paper-review數(shù)據(jù)的威力

          1.2.2 ft后的gpt3.5依然不敵我司通過longqlora微調(diào)后的llama2

          如下圖所示,ft后的gpt3.5雖然變強(qiáng)了(通過我司爬取的極高質(zhì)量的paper-review數(shù)據(jù)集微調(diào)后接連超過不微調(diào)的gpt3.5和gpt4),但仍不敵我司通過longqlora微調(diào)后的llama209913cb4ad0c9723a36e4d8aa6b2d934.webp


          不過這里還得為gpt3.5說一句公道話,畢竟微調(diào)gpt3.5所用的數(shù)據(jù)暫只用了全部數(shù)據(jù)中的156條(而我司我司通過longqlora微調(diào)時llama2,用了全部數(shù)據(jù)),所以數(shù)據(jù)占了關(guān)鍵性因素

          你可能會說,那為何不用全部的一萬多條數(shù)據(jù)微調(diào)gpt3.5 16K呢?原因在于

          • 一方面 如上文所說,尚不確定有無數(shù)據(jù)泄露給OpenAI的風(fēng)險(畢竟這一萬多條的paper-review數(shù)據(jù)集是目前該審稿項(xiàng)目中最大的資產(chǎn),不敢輕易上傳云端)

          • 另一方面 畢竟也是一萬多塊,故之后再嘗試

          第二部分

          第3版之微調(diào)Llama2 13b chat

          在我司這個論文審稿場景下,對于13B模型的微調(diào),首選還是微調(diào)llama 13B(模型地址: Llama-2-13b-chat-hf)

          其對卡的要求:雙48g的卡或者單卡80g,即13b的話雙A40用longqlora差不多,所以本次微調(diào)方法繼續(xù)用之前微調(diào)過llama2 7B的longqlora(當(dāng)然,longlora也行,不過 考慮到盡可能節(jié)省資源,故還是longqlora了)

          2.1 模型訓(xùn)練:LongQLora微調(diào)Llama2 13b chat

          2.1.1 資源依賴與環(huán)境配置

          以下是所需的資源需求

          1. Linux系統(tǒng)

          2. 支持cuda11.7

          3. 2張A40(即顯存48G+的Ampere架構(gòu)顯卡)

          4. 可訪問HuggingFace/Python官方源(操作前確認(rèn)已開啟)

          5. 至少120GB的空余硬盤空間

          接下來,如下配置環(huán)境

                    
                      
                        # 訓(xùn)練代碼基于LongQLoRA論文的源碼進(jìn)行修改,完整代碼見七月在線的課程
                      
                    
                    
                      cd /path/to/LongQLoRA
                    
                    
                      
                        

          # 創(chuàng)建虛擬環(huán)境 conda create -n longqlora python=3.9 pip

          # 配置虛擬環(huán)境 ## 單獨(dú)安裝pytorch 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 -i https://pypi.org/simple ## 單獨(dú)安裝flash attention pip install flash_attn -i https://pypi.org/simple ## 安裝requirements pip install -r requirements.txt -i https://pypi.org/simple

          b2a3ffeedcf7eb7c78877c3120407fa9.webp

          注意,這個環(huán)境的配置有兩點(diǎn)需要特別注意下
          1. 安裝flash attention的最后階段會需要進(jìn)行聯(lián)網(wǎng)編譯,如果無法有效訪問相關(guān)網(wǎng)絡(luò)可能會導(dǎo)致編譯失敗

          requirements中包含對deepspeed的安裝,使用非python官方源安裝的deepspeed可能會出現(xiàn)必要文件丟失或加載不到相關(guān)驅(qū)動的問題,導(dǎo)致無法正常進(jìn)行多卡訓(xùn)練(時點(diǎn)為2024年2月初)  

           

                    
                      accelerate==0.21.0
                    
                    
                      transformers==4.31.0
                    
                    
                      peft==0.4.0
                    
                    
                      bitsandbytes==0.39.0
                    
                    
                      loguru
                    
                    
                      numpy
                    
                    
                      pandas
                    
                    
                      tqdm
                    
                    
                      deepspeed==0.9.5
                    
                    
                      tensorboard
                    
                    
                      sentencepiece
                    
                    
                      transformers_stream_generator
                    
                    
                      tiktoken
                    
                    
                      einops
                    
                    
                      
                        # torch==1.13.0
                      
                    
                    
                      openpyxl
                    
                    
                      httpx
                    
                    
                      
                        # flash_attn==2.3.3
                      
                    
                    
                      joblib==1.2.0
                    
                    
                      scikit_learn==0.24.2
                    
                  

          2.1.2 前期準(zhǔn)備: 數(shù)據(jù)集與模型文件下載

          1. 創(chuàng)建輸出目錄

          2. 放置數(shù)據(jù)集  0d8dae548bcc40745c4b6436a0c292d3.webp

          3. 下載模型文件  安裝git-lfs  

                    
                      
                        # 安裝git-lfs
                      
                    
                    
                      curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
                    
                    
                      sudo apt-get install git-lfs
                    
                    
                      
                        

          # 激活git-lfs git lfs install

          b2a3ffeedcf7eb7c78877c3120407fa9.webp

           獲取Llama-2-13b-chat-hf模型文件  

                    
                      
                        # 進(jìn)入用于存儲模型文件的目錄
                      
                    
                    
                      cd /path/to/models_dir
                    
                    
                      
                        

          # 獲取Llama-2-13b-chat-hf git lfs clone https://huggingface.co/NousResearch/Llama-2-13b-chat-hf

          b2a3ffeedcf7eb7c78877c3120407fa9.webp2.1.3 定義傳參

          • 修改yaml文件  

          路徑位于“/path/to/LongQLoRA/train_args/llama2-13b-chat-sft-bf16.yaml”,完整配置見七月在線的課程  

          相關(guān)主要參數(shù)說明

          參數(shù)

          釋義

          output_dir

          訓(xùn)練輸出(日志、權(quán)重文件等)目錄,即創(chuàng)建的輸出目錄外加自定義的文件名

          model_name_or_path

          用于訓(xùn)練的模型文件目錄,即獲取的模型文件路徑

          train_file

          訓(xùn)練所用數(shù)據(jù)路徑,即放置數(shù)據(jù)集的路徑。

          deepspeed

          deepspeed參數(shù)路徑,即LongQLoRA目錄下的“train_args/deepspeed/deepspeed_config_s2_bf16.json”

          sft

          是否是SFT訓(xùn)練模式

          use_flash_attn

          是否使用flash attention、attention

          num_train_epochs

          訓(xùn)練輪次

          per_device_train_batch_size

          每個設(shè)備的batch_size

          gradient_accumulation_steps

          梯度累計(jì)數(shù)

          max_seq_length

          數(shù)據(jù)截斷長度

          model_max_length

          模型所支持的最大長度,即本次訓(xùn)練所要擴(kuò)展的目標(biāo)長度

          learning_rate

          學(xué)習(xí)率

          logging_steps

          打印頻率,每logging_steps步打印1次

          save_steps

          權(quán)重存儲頻率,每save_steps步保存1次

          save_total_limit

          權(quán)重存儲數(shù)量上限,超出該上限時自動刪除早期存儲的權(quán)重

          lr_scheduler_type

          學(xué)習(xí)率調(diào)度策略

          warmup_steps

          warmup步數(shù)

          lora_rank

          lora秩的大小

          lora_alpha

          lora的縮放尺度

          lora_dropout

          lora的dropout概率

          gradient_checkpointing

          是否開啟gradient_checkpointing

          optim

          所選用的優(yōu)化器

          bf16

          是否開啟bf16訓(xùn)練

          report_to

          輸出的日志形式

          dataloader_num_workers

          讀取數(shù)據(jù)所用線程數(shù),0為不開啟多線程

          save_strategy

          保存策略,steps為按步數(shù)進(jìn)行保存、epochs為按輪次進(jìn)行保存

          weight_decay

          權(quán)重衰減值

          max_grad_norm

          梯度裁剪閾值

          remove_unused_columns

          是否刪除數(shù)據(jù)集中的無關(guān)列

          • 修改bash文件  

          注意,這里和用修改后的longqlora代碼微調(diào)llama2 7B不一樣,由于本次咱們是用的雙卡微調(diào)llama2 13B( 算是通過DS并行訓(xùn)練 ),所以我們需要加個命令: --num_gpus=2  

          最終,路徑位于“/path/to/LongQLoRA/ run_train_sft_13b_bf16 .sh”,該文件如下所示  

                    
                      export CUDA_LAUNCH_BLOCKING=1
                    
                    
                      deepspeed --num_gpus=2 train.py --train_args_file /root/autodl-tmp/LongQLoRA/train_args/llama2-13b-chat-sft-bf16.yaml
                    
                  
          •  其中--train_args_file,即指訓(xùn)練所用yaml文件的路徑你可以對比下之前微調(diào)llama2 7B的配置
          •   export CUDA_LAUNCH_BLOCKING=1

          •  deepspeed train.py --train_args_file /path/to/LongQLoRA/train_args/llama2-7b-chat-sft-bf16.yaml

          2.1.4 運(yùn)行訓(xùn)練

                    
                      
                        # 進(jìn)入LongQLoRA源碼目錄
                      
                    
                    
                      cd /path/to/LongQLoRA
                    
                    
                      
                        

          # 啟動bash文件進(jìn)行訓(xùn)練 bash run_train_sft_bf16.sh

          b2a3ffeedcf7eb7c78877c3120407fa9.webp 2.2 模型評估:llama2 13B longqlora再次接連超過GPT3.5和GPT4

          為了全面評估我司審稿模型第3版13B,對GPT4在論文審稿方面的勝率,和文弱做了一系列實(shí)驗(yàn)

          • 13B PK GPT4-0125,1106 0125依次裁判

          • 13B PK GPT4-1106,1106 0125依次裁判

          2.2.1 不同裁判下,llama2 13B longqlora與GPT4-0125的PK

          還是用的和第二版一樣的評估方法,只考察命中數(shù),接連超過GPT3.5、GPT4

          不過有一點(diǎn)要強(qiáng)調(diào)下,考慮到如此篇文章《七月論文審稿GPT第2版:用一萬多條paper-review數(shù)據(jù)集微調(diào)LLaMA2 7B最終反超GPT4》的6.3節(jié)開頭所說

          “在同在一個季度的工作 才互相PK,且首選當(dāng)季度最強(qiáng)的裁判去評判”bbde7b3c20037dfca7b9dec9cffe2c32.webp

          故,接下來,GPT3.5之外,面對GPT4時,PK的均是GPT4-0125的生成結(jié)果

          • 下圖無論是左側(cè)還是右側(cè),都是用的GPT4-1106做的裁判b2a3ffeedcf7eb7c78877c3120407fa9.webpbec7fc96c710cb9d99a4dbac057be8db.webp9ccea12a8382f2c681d8b13ff3420ebd.webp

          • 而下圖無論是左側(cè)還是右側(cè),都是用的GPT4-0125做的裁判b2a3ffeedcf7eb7c78877c3120407fa9.webpb2a3ffeedcf7eb7c78877c3120407fa9.webp18a35061b22c39ace2ca10435f823686.webpb71bc7ef5365e5436a5c49c0db1c606e.webp

          上面有個問題是,為何僅僅只是裁判不同,但差距那么大呢?原因在于GPT4-0125做裁判時,會對GPT4-0125生成的結(jié)果有偏心

          舉個例子,對于同一篇文章的同一個review,如下圖所示120a78c12edd40b64427c7d41a9d3953.webp
           b2a3ffeedcf7eb7c78877c3120407fa9.webpc519270208d614ff5546ed761a07f5b0.webpb2a3ffeedcf7eb7c78877c3120407fa9.webp 紅框: 1106判阿荀的時候,把A7-B4的相似度判定為7
          藍(lán)框:0125判阿荀的時候,把A7-B4的相似度判定不足為7,所以藍(lán)框內(nèi)沒有A7-B4
          綠框:0125判0125的時候,把A4-B4的相似度判斷為7,但實(shí)際上 這兩項(xiàng)的相似性如果按照1106的標(biāo)準(zhǔn)的話,不足為7
           啥意思呢,就是0125當(dāng)裁判的時候,對阿荀的生成結(jié)果判定的較嚴(yán),對0125自己的生成結(jié)果判定的較松

          2.2.2 llama2 13B與GPT4-1106、llama2 7B longqlora的對比

          為了驗(yàn)證,GPT4-0125做裁判時,是不是更傾向GPT4本身生成的結(jié)果,故我們再次做了一個實(shí)驗(yàn) 下圖無論左側(cè)還是右側(cè),都是13B對比GPT4-1106的生成結(jié)果,但下圖左側(cè)是GPT4-1106做裁判,下圖右側(cè)是GPT4-0125做裁判7285ae4b17cfd42df8c36a7de183786b.webp

          4bf6e60c0fa89a575db29db6c505ca47.webp

          對于上述這個結(jié)果,我再引用下第二版《 七月論文審稿GPT第2版:用一萬多條paper-review數(shù)據(jù)集微調(diào)LLaMA2 7B最終反超GPT4 》的這個結(jié)果:llama2 7B longqlora PK GPT4-1106(且GPT4-1106做裁判)71e8195fa7f827c7285e6819eee0cb9d.webp
           你能看出什么端倪不(你是不想說,GPT4-0125不太適合做裁判?)
          創(chuàng)作、修訂、完善記錄
          1. 第一階段 第2.5版之微調(diào)GPT3.5 Tubor 16K  2.3日,新增一節(jié)的內(nèi)容,即  1.1.1 微調(diào)GPT3.5的前期調(diào)研:費(fèi)用、微調(diào)流程等
          2. 2.4日,新增一節(jié),即  1.1.2 先后用150多條、1500多條、15000多條數(shù)據(jù)微調(diào)GPT3.5 Tubor 16K
          3. 2.5日,新增一節(jié),即  1.2 對通過156條數(shù)據(jù)微調(diào)后的gpt3.5 16K的效果評估
          4. 第二階段 第3版之微調(diào)Llama2 13b chat  2.7日,新增此節(jié),即  “2.1 模型訓(xùn)練:LongQLora微調(diào)Llama2 13b chat”
          5. 2.15,新增一節(jié),即  2.2 模型評估:llama2 13B longqlora再次接連超過GPT3.5和GPT4
          6. 2.17,更新此節(jié)的內(nèi)容  2.2 模型評估:llama2 13B longqlora再次接連超過GPT3.5和GPT4
          7. 2.21,補(bǔ)充關(guān)于13B的下一步訓(xùn)練計(jì)劃
          8. 2.28,補(bǔ)充關(guān)于“得克薩斯SelfExtended、微軟LongRoPE等長度擴(kuò)展方法”的初步調(diào)研結(jié)果
          更多細(xì)節(jié)見七月在線「大模型項(xiàng)目開發(fā)線上營」中 大模型項(xiàng)目開發(fā)線上營」一上線就受到了學(xué)員和各企業(yè)的青睞,報名數(shù)已破260! 課程進(jìn)度: 已直播前24課(都有回放),每周兩到三次課,均在晚8-10點(diǎn)上課。   本課大綱從10月下旬起,幾乎每周都在新增內(nèi)容(10.11日上線時原定19次課,增加到了現(xiàn)在的35次課。 現(xiàn)在報名加送:
          ① 一年GPU,封裝了諸如ChatGLM3等各大主流大模型
          ② 一個VIP年卡
          ↓↓↓掃碼搶購↓↓↓ 課程咨詢可找蘇蘇老師VX: julyedukefu008 或七月在線其他老師 點(diǎn)擊 閱讀原文 ”了解 課程詳情 ~
          瀏覽 36
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91色情网老熟女 | 日本xxxxxxxxx | 91成人国产综合久久精品 | 欧美日韩中文 | 天天干天天日天天操天天干 |