亚洲三级在线播放_国产精品亚洲二区在线_精品国产电影久久久久_免费popnhub国产在线视频 - 美女被艹网站

金財晚報

金財晚報

當前位置:首頁>宏觀經濟>

單個GPU就能跑,UC伯克利領頭,130億參數「小羊駝」權重公布

來源:IT之家 作者:谷小金 發布時間:2023-04-07 21:37   閱讀量:8156   

剛剛,UC 伯克利、CMU、斯坦福等,聯手發布了最新開源模型駱馬的權重。

3 月 31 日,UC 伯克利聯手 CMU、斯坦福、UCSD 和 MBZUAI,推出了 130 億參數的 Vicuna,俗稱「小羊駝」,僅需 300 美元就能實現 ChatGPT 90% 的性能。

今天,團隊正式發布了 Vicuna 的權重 —— 只需單個 GPU 就能跑!

Vicuna 是通過在 ShareGPT 收集的用戶共享對話上對 LLaMA 進行微調訓練而來,訓練成本近 300 美元。

研究人員設計了 8 個問題類別,包括數學、寫作、編碼,對 Vicuna-13B 與其他四個模型進行了性能測試。

測試過程使用 GPT-4 作為評判標準,結果顯示 Vicuna-13B 在超過 90% 的情況下實現了與 ChatGPT 和 Bard 相匹敵的能力。同時,在在超過 90% 的情況下勝過了其他模型,如 LLaMA 和斯坦福的 Alpaca。

訓練

Vicuna-13B 的訓練流程如下:

首先,研究人員從 ChatGPT 對話分享網站 ShareGPT 上,收集了大約 70K 對話。接下來,研究人員優化了 Alpaca 提供的訓練腳本,使模型能夠更好地處理多輪對話和長序列。之后利用 PyTorch FSDP 在 8 個 A100 GPU 上進行了一天的訓練。

?內存優化:

為了使 Vicuna 能夠理解長上下文,將最大上下文長度從 Alpaca 的 512 擴展到 2048,這大大增加了 GPU 內存需求。在此,研究人員通過使用梯度檢查點和閃存注意力來解決內存壓力。

?多輪對話:

通過調整訓練損失以考慮多輪對話,并僅在聊天機器人的輸出上計算微調損失。

?通過 Spot 實例降低成本:

采用 SkyPilot 托管的 Spot 實例來降低成本,將 7B 模型的訓練成本從 500 美元降低到約 140 美元,將 13B 模型的訓練成本從約 1000 美元降低到 300 美元。

評估

在模型的質量評估方面,研究人員創建了 80 個不同的問題,并用 GPT-4 對模型輸出進行了評價。

為了比較不同的模型,研究人員將每個模型的輸出組合成一個單獨的提示,然后讓 GPT-4 評估哪個模型給出的回答更好。

其中,GPT-4 在超過 90% 的問題中更喜歡 Vicuna,而不是現有的 SOTA 開源模型。

在 45% 的問題中,GPT-4 認為 Vicuna 的回答和 ChatGPT 差不多甚至更好。

綜合來看,Vicuna 在總分上達到 ChatGPT 的 92%。

安裝使用安裝

方法一:

方法二:

1. clone 版本庫并變更目錄到 FastChat 文件夾

2. 安裝 Package

pip3install--upgradepip#enablePEP660supportpip3install-e.權重

根據 LLaMA 模型的許可,權重將以 delta 的形式發布。只需將其加到原來的 LLaMA 權重上,就可以獲得最終的 Vicuna 權重。

1. 按照 huggingface 上的說明,獲得原始的 LLaMA 權重

2. 通過腳本,自動從團隊的 Hugging Face 賬戶上下載 delta 權重

python3-mfastchat.model.ly_delta\--base/path/to/llama-13b\--target/output/path/to/vicuna-13b\--deltalmsys/vicuna-13b-delta-v0使用

?單個 GPU

Vicuna-13B 需要大約 28GB 的 GPU 顯存。

python3-mfastchat.serve.cli--model-name/path/to/vicuna/weights

?多個 GPU

如果沒有足夠的顯存,則可以使用模型并行來聚合同一臺機器上多個 GPU 的顯存。

python3-mfastchat.serve.cli--model-name/path/to/vicuna/weights--num-gpus2

?僅用 CPU

如果想在 CPU 上運行,則需要大約 60GB 的內存。

python3-mfastchat.serve.cli--model-name/path/to/vicuna/weights--devicecpuWebUI

?啟動控制器

python3-mfastchat.serve.controller

?啟動 model worker

python3-mfastchat.serve.model_worker--model-path/path/to/vicuna/weights

當進程完成模型的加載后,會看到「Uvicorn running on ...」。

?發送測試消息

python3-mfastchat.serve.test_message--model-namevicuna-13b

?啟動 gradio 網絡服務器

python3-mfastchat.serve.gradio_web_server

現在,你就可以打開瀏覽器和模型聊天了。

微調

?數據

Vicuna 是通過使用從 ShareGPT 收集到的大約 7 萬個用戶共享的對話與公共 API 來微調一個 LLaMA 基礎模型而創建的。

為了確保數據質量,團隊將 HTML 轉換回 markdown,并過濾掉一些不合適或低質量的樣本。此外,團隊還將冗長的對話分成較小的片段,以符合模型的最大上下文長度。

?代碼和超參數

團隊使用斯坦福大學 Alpaca 的代碼對模型進行微調,并做了一些修改以支持梯度檢查點和 Flash 注意力。此外,團隊也使用與斯坦福 Alpaca 相似的超參數。

?用 SkyPilot 在云服務上進行微調

SkyPilot 是由加州大學伯克利分校建立的一個框架,可以在任何與一個云服務上輕松、經濟地運行 ML 工作負載。

Vicuna 可以在 8 個擁有 80GB 內存的 A100 GPU 上進行訓練。下面的命令將自動啟動一個滿足要求的節點,在上面設置并運行訓練作業。

skylaunch-cvicuna-sscripts/train-vicuna.yaml--envWANDB_API_KEY

對于 Alpaca 來說,訓練作業會在具有 4 個 A100-80GB GPU 的單一節點上啟動。

skylaunch-calpaca-sscripts/train-alpaca.yaml--envWANDB_API_KEY

?使用本地 GPU 進行微調

Vicuna 也可以用以下代碼在 8 個 A100 GPU 上訓練,顯存為 80GB。

如果要在更少的 GPU 上訓練,則可以減少 per_device_train_batch_size,并相應地增加 gradient_accumulation_steps,以保持全局批大小不變。要設置環境,可以參見 scripts / train-vicuna.yaml 中的設置部分。

torchrun--nnodes=1--nproc_per_node=8--master_port=lt;your_random_portgt;\fastchat/train/train_mem.py\--model_name_or_pathlt;path-to-llama-model-weightgt;\--data_pathlt;path-to-datagt;\--bf16True\--output_dir./checkpoints\--num_train_epochs3\--per_device_train_batch_size4\--per_device_eval_batch_size4\--gradient_accumulation_steps1\--evaluation_strategy"no"\--save_strategy"steps"\--save_steps1200\--save_total_limit100\--learning_rate2e-5\--weight_decay0.\--warmup_ratio0.03\--lr_scheduler_type"cosine"\--logging_steps1\--fsdp"full_shardauto_wrap"\--fsdp_transformer_layer_cls_to_wrap'LlamaDecoderLayer'\--tf32True\--model_max_length2048\--gradient_checkpointingTrue\--lazy_preprocessTrue

參考資料:

鄭重聲明:此文內容為本網站轉載企業宣傳資訊,目的在于傳播更多信息,與本站立場無關。僅供讀者參考,并請自行核實相關內容。

mangren

財經視界

財經圖文

熱門推薦

金財晚報僅作為用戶獲取信息之目的,并不構成投資建議。市場有風險 投資需謹慎。

網站地圖

Copyright 2018- 金財晚報 All Rights Reserved 聯系我們: 備案號:蜀ICP備13010463號