亚洲中文字幕无码日韩精品,亚洲一区制服无码中字,亚洲精品第一国产综合精品99 ,一本大道中文日本香蕉

微立頂科技

新聞資訊

創(chuàng)新 服務(wù) 價(jià)值

  Baichuan-13B學(xué)習(xí)與實(shí)戰(zhàn)

發(fā)布日期:2023/7/28 9:47:10      瀏覽量:


  1. Baichuan-13B學(xué)習(xí)與實(shí)戰(zhàn)

  1. Baichuan
  2. 論文地址:
  3. Github 代碼:
  4. baichuan-inc/Baichuan-13B:https://github.com/baichuan-inc/Baichuan-13B
  5. mark1879/Baichuan-13B-Finetuning:https://github.com/mark1879/Baichuan-13B-Finetuning
  6. 模型:
  7. 官方微調(diào)過(guò)(指令對(duì)齊):https://huggingface.co/baichuan-inc/Baichuan-13B-Chat
  8. 預(yù)訓(xùn)練大模型(未經(jīng)過(guò)微調(diào)):https://huggingface.co/baichuan-inc/Baichuan-13B-Base
  9. 體驗(yàn)網(wǎng)站:


一、前言

1.1 Baichuan 介紹


Baichuan-13B 是由百川智能繼 Baichuan-7B 之后開(kāi)發(fā)的包含 130 億參數(shù)的開(kāi)源可商用的大規(guī)模語(yǔ)言模型,在權(quán)威的中文和英文 benchmark 上均取得同尺寸最好的效果。Baichuan-13B 有如下幾個(gè)特點(diǎn):

  1. 更大尺寸、更多數(shù)據(jù):Baichuan-13B 在 Baichuan-7B 的基礎(chǔ)上進(jìn)一步擴(kuò)大參數(shù)量到 130 億,并且在高質(zhì)量的語(yǔ)料上訓(xùn)練了 1.4 萬(wàn)億 tokens,超過(guò) LLaMA-13B 40%,是當(dāng)前開(kāi)源 13B 尺寸下訓(xùn)練數(shù)據(jù)量最多的模型。支持中英雙語(yǔ),使用 ALiBi 位置編碼,上下文窗口長(zhǎng)度為 4096。
  2. 同時(shí)開(kāi)源預(yù)訓(xùn)練和對(duì)齊模型:預(yù)訓(xùn)練模型是適用開(kāi)發(fā)者的“基座”,而廣大普通用戶對(duì)有對(duì)話功能的對(duì)齊模型具有更強(qiáng)的需求。因此本次開(kāi)源同時(shí)發(fā)布了對(duì)齊模型(Baichuan-13B-Chat),具有很強(qiáng)的對(duì)話能力,開(kāi)箱即用,幾行代碼即可簡(jiǎn)單的部署。
  3. 更高效的推理:為了支持更廣大用戶的使用,本次同時(shí)開(kāi)源了 int8 和 int4 的量化版本,相對(duì)非量化版本在幾乎沒(méi)有效果損失的情況下大大降低了部署的機(jī)器資源門(mén)檻,可以部署在如 Nvidia 3090 這樣的消費(fèi)級(jí)顯卡上。
  4. 開(kāi)源免費(fèi)可商用:Baichuan-13B 不僅對(duì)學(xué)術(shù)研究完全開(kāi)放,開(kāi)發(fā)者也僅需郵件申請(qǐng)并獲得官方商用許可后,即可以免費(fèi)商用。


1.2 軟件資源


  1. CUDA 11.7
  2. Python 3.10
  3. pytorch 1.13.1+cu117


1.3 硬件要求


  1. LoRA 顯存:>= 32G
  2. QLoRA 顯存:>= 12G


二、環(huán)境搭建

2.1 下載代碼

$ git clone https://github.com/mark1879/Baichuan-13B-Finetuning.git
$ cd Baichuan-13B-Finetuning

2.2 構(gòu)建環(huán)境

$ conda create -n py310_chat python=3.10 # 創(chuàng)建新環(huán)境
$ source activate py310_chat # 激活環(huán)境

2.3 安裝依賴

$ pip install -r requirements.txt

三、Baichuan-13B 大模型

3.1 Baichuan-13B 大模型 介紹

baichuan-13B 大模型 包含 兩種:

  1. 第一種:Baichuan-13B-Chat 官方微調(diào)過(guò)(指令對(duì)齊)
  2. 第二種:Baichuan-13B-Base 預(yù)訓(xùn)練大模型(未經(jīng)過(guò)微調(diào))

3.2 Baichuan-13B 大模型 下載

# 在根目錄 /data 下 保存大模型
cd /data
git lfs install

# 官方微調(diào)過(guò)(指令對(duì)齊)
git clone https://huggingface.co/baichuan-inc/Baichuan-13B-Chat

# 預(yù)訓(xùn)練大模型(未經(jīng)過(guò)微調(diào))
#git clone https://huggingface.co/baichuan-inc/Baichuan-13B-Base

四、Baichuan-13B 模型 LoRA 微調(diào)

4.1 準(zhǔn)備訓(xùn)練數(shù)據(jù)

data 目錄下存儲(chǔ)了訓(xùn)練數(shù)據(jù),可根據(jù)業(yè)務(wù)需要自行準(zhǔn)備數(shù)據(jù),數(shù)據(jù)格式如下:

  1. instruction:任務(wù)指令,不能為空。
  2. input:任務(wù)輸入,可為空。如果不為空,項(xiàng)目?jī)?nèi)部處理訓(xùn)練數(shù)據(jù)時(shí),會(huì)將 instruction、input 拼接在一起作為任務(wù)的輸入。
  3. output:任務(wù)輸出,不能為空。
[
{
"instruction": "什么是三原色?",
"input": "",
"output": [
"三原色是紅、藍(lán)、黃。這些顏色被稱為原色,因?yàn)樗鼈儾荒芡ㄟ^(guò)混合其他顏色來(lái)創(chuàng)建,所有其他顏色都可以通過(guò)將它們按不同比例組合而成。在用于光的加色系統(tǒng)中,原色是紅色、綠色和藍(lán)色 (RGB)。",
"紅色、黃色和綠色。"
]
},
{
"instruction": "寫(xiě)一段關(guān)于一個(gè)人特點(diǎn)的描述",
"input": "姓名:阿比蓋爾\n喜歡的東西:動(dòng)作電影、法國(guó)菜、熱衷于商業(yè)",
"output": "阿比蓋爾是一個(gè)冒險(xiǎn)的靈魂,喜歡看動(dòng)作電影和吃法國(guó)美食。她對(duì)商業(yè)充滿熱情,并努力培養(yǎng)。她閱讀投資新聞,密切關(guān)注股市。每當(dāng)有機(jī)會(huì)出現(xiàn),阿比蓋爾總是迅速行動(dòng),不會(huì)猶豫利用她的商業(yè)知識(shí)。她是那種喜歡經(jīng)歷商業(yè)起伏、善于追求交易并與志同道合的人交流的人。"
}
]

4.2 Baichuan-13B 模型 LoRA 微調(diào)

運(yùn)行命令

CUDA_VISIBLE_DEVICES=0 python finetune_lora.py
--do_train
--model_name_or_path /data/Baichuan-13B-Chat
--dataset_dir data
--dataset alpaca_gpt4_zh
--output_dir baichuan_lora_checkpoint
--source_prefix ""
--max_source_length 256
--max_target_length 512
--per_device_train_batch_size 1
--gradient_accumulation_steps 1
--lr_scheduler_type cosine
--logging_steps 10
--save_steps 1000
--learning_rate 5e-5
--num_train_epochs 1.0
--plot_loss
--fp16
--lora_target W_pack
--lora_rank 8
  1. 參數(shù)介紹:
  2. CUDA_VISIBLE_DEVICES=0: 單卡運(yùn)行;
  3. do_train: 是否執(zhí)行訓(xùn)練。
  4. model_name_or_path: 預(yù)訓(xùn)練模型路徑。
  5. dataset_dir: 訓(xùn)練數(shù)據(jù)存儲(chǔ)目錄。
  6. dataset: 訓(xùn)練數(shù)據(jù)集名稱,可在 data/dataset_info.json 中增加自定義數(shù)據(jù)集。
  7. output_dir: 微調(diào)后的模型保存路徑。
  8. source_prefix: 訓(xùn)練時(shí)每個(gè)輸入序列添加的前綴,可為空。
  9. max_source_length: 輸入序列的最大長(zhǎng)度,即 source_prefix + instruction + input 的長(zhǎng)度。
  10. max_target_length: 輸出序列的最大長(zhǎng)度,即 output 的長(zhǎng)度。
  11. per_device_train_batch_size: 用于訓(xùn)練的批處理大小??筛鶕?jù) GPU 顯存大小自行設(shè)置。
  12. gradient_accumulation_steps: 梯度累加次數(shù)。
  13. logging_steps: 多少步輸出一次 log。
  14. save_steps: 多少步保存一次參數(shù)。
  15. learning_rate: AdamW 優(yōu)化器的初始學(xué)習(xí)率。
  16. num_train_epochs: 訓(xùn)練輪數(shù)(若非整數(shù),則最后一輪只訓(xùn)練部分?jǐn)?shù)據(jù))
  17. plot_loss: 微調(diào)后繪制損失函數(shù)曲線,圖片保存在 output_dir 中 。
  18. fp16: 使用半精度(混合精度)訓(xùn)練。
  19. lora_target: 大模型內(nèi)將要進(jìn)行 LoRA 微調(diào)的模塊名稱。
  20. lora_rank: LoRA 微調(diào)中的秩大小。

五、Baichuan-13B 模型 LoRA 微調(diào)后模型測(cè)試

運(yùn)行命令

CUDA_VISIBLE_DEVICES=0 python finetune_lora.py
--do_eval
--model_name_or_path /data/Baichuan-13B-Chat
--checkpoint_dir baichuan_lora_checkpoint
--dataset_dir data
--dataset alpaca_gpt4_zh_test
--output_dir baichuan_lora_eval_result
--per_device_eval_batch_size 4
--predict_with_generate
  1. 參數(shù)介紹:
  2. CUDA_VISIBLE_DEVICES=0: 單卡運(yùn)行。
  3. do_eval: 是否執(zhí)行測(cè)試。
  4. model_name_or_path: 預(yù)訓(xùn)練模型路徑。
  5. checkpoint_dir: 微調(diào)模型路徑。
  6. dataset_dir: 測(cè)試數(shù)據(jù)存儲(chǔ)目錄。
  7. dataset: 測(cè)試數(shù)據(jù)集名稱,可在 data/dataset_info.json 中增加自定義數(shù)據(jù)集。
  8. output_dir: 測(cè)試結(jié)果保存路徑。
  9. per_device_eval_batch_size: 測(cè)試數(shù)據(jù)的批處理大小??筛鶕?jù) GPU 顯存大小,自行設(shè)置。
  10. predict_with_generate: 是否生成序列用于計(jì)算 ROUGE 或 BLEU 分?jǐn)?shù)。

六、Baichuan-13B 模型 部署

python cli_demo.py
--model_name_or_path baichuan-inc/Baichuan-13B-Chat
--checkpoint_dir baichuan_lora_checkpoint
  1. 參數(shù)介紹:
  2. model_name_or_path: 預(yù)訓(xùn)練模型路徑。
  3. checkpoint_dir: 微調(diào)模型路徑。

填坑筆記


參考


  1. baichuan-inc/Baichuan-13B:https://github.com/baichuan-inc/Baichuan-13B
  2. mark1879/Baichuan-13B-Finetuning:https://github.com/mark1879/
  3. 官方微調(diào)過(guò)(指令對(duì)齊):https://huggingface.co/baichuan-inc/Baichuan-13B-Chat
  4. 預(yù)訓(xùn)練大模型(未經(jīng)過(guò)微調(diào)):https://huggingface.co/baichuan-inc/Baichuan-13B-Base





  業(yè)務(wù)實(shí)施流程

需求調(diào)研 →

團(tuán)隊(duì)組建和動(dòng)員 →

數(shù)據(jù)初始化 →

調(diào)試完善 →

解決方案和選型 →

硬件網(wǎng)絡(luò)部署 →

系統(tǒng)部署試運(yùn)行 →

系統(tǒng)正式上線 →

合作協(xié)議

系統(tǒng)開(kāi)發(fā)/整合

制作文檔和員工培訓(xùn)

售后服務(wù)

馬上咨詢: 如果您有業(yè)務(wù)方面的問(wèn)題或者需求,歡迎您咨詢!我們帶來(lái)的不僅僅是技術(shù),還有行業(yè)經(jīng)驗(yàn)積累。
QQ: 39764417/308460098     Phone: 13 9800 1 9844 / 135 6887 9550     聯(lián)系人:石先生/雷先生