0門檻克隆方案再升級,開源模型完整復現,線上體驗無需註冊
以 ChatGPT、GPT4 為代表的 AI 應用和大模型火爆全球,被視為開啟了新的科技工業革命和 AGI (通用人工智慧)的新起點。不只科技巨頭間你追我趕,爭相推出新品,許多學術界、工業界的 AI 大佬也紛紛投入相關創業浪潮。生成式 AI 正以 「天」 為單位,快速迭代,持續狂飆!
然而,OpenAI 並未將其開源,它們背後的技術細節有哪些?如何快速跟進、追趕並參與此輪科技浪潮?如何降低 AI 大模型建置和應用的高成本?如何保護核心資料與智慧財產權不會因使用第三方大模型 API 外洩?
作為當下最受歡迎的開源AI 大模型解決方案,Colossal-AI 率先建立了包含監督資料集收集-> 監督微調-> 獎勵模型訓練-> 強化學習微調的完整RLHF 流程,以LLaMA 為基礎預訓練模型,推出ColossalChat,是目前最接近ChatGPT 原始技術方案的實用開源專案!
開源位址:https://github.com/hpcaitech/ColossalAI
#包含以下內容:
1. Demo:可直接線上體驗模式效果,無需註冊或waitinglist
#2. 訓練程式碼:開源完整RLHF 訓練程式碼,已開源至含7B 和13B 兩種模型
#3. 資料集:開源104K 中、英雙語資料集
4. #推理部署: 4bit 量化推理70 億參數模型只需4GB 顯存
#5. 模型權重:只需單台伺服器少量算力即可快速復現
6. 更大規模模型、資料集、其他最佳化等將保持高速迭代添加
平價模型,強大能力
ColossalChat 僅需不到百億參數,在大語言模型的基礎上進行RLHF 微調,即可掌握中、英雙語能力,達到與ChatGPT 和GPT-3.5 類似的效果。
例如常識問答:
中文回應:
寫一封郵件:
#寫個演算法:
完整ChatGPT 克隆方案
儘管ChatGPT 和GPT-4 等GPT 系列模型非常強大,但是它們不太可能完全開源。幸運的是,開源社群一直在不斷努力。
例如Meta 開源了LLaMA 模型,該模型的參數量從70 億到650 億不等,130 億參數即可勝過1750 億的GPT-3 模型在大多數基準測試的表現。但由於沒有被指令微調(instruct tuning),因此實際生成效果不夠理想。
史丹佛的Alpaca 透過呼叫OpenAI API,以self-instruct 方式產生訓練數據,使得僅有70 億參數的輕量級模型以極低成本微調後,即可獲得媲美GPT-3.5 這樣千億參數的超大規模語言模型的對話效果。
但是現有開源方案都可以被視為只得到了人類反饋強化學習(RLHF)中第一步的監督微調模型 #,沒有進行後續的對齊和微調工作。同時 Alpaca 的訓練資料集太小,語料只有英文,也在一定程度上限制了模型的效能。
而 ChatGPT 和 GPT-4 的驚人效果,還在於將 RLHF 引入訓練過程,使得生成內容更符合人類價值。
#RLHF 的三個階段
##基於LLaMA 模型,Colossal-AI 首個開源包含完整RLHF 流程的類別Chat 模型複現方案ColossalChat,是目前最接近ChatGPT 原始技術路線的實用開源專案!
訓練資料集開源ColossalChat 開源了包含約 10 萬個問答的中、英雙語資料集。該數據集收集並清洗了社交平台上人們的真實提問場景作為種子數據集,利用 self-instruct 技術擴充數據,花費約 900 美元進行標註。比較其他 self-instruct 方法產生的資料集,該資料集的種子資料更加真實、豐富,產生的資料集涵蓋的主題更多。這些數據可以同時用於微調和 RLHF 訓練。透過高品質的數據,ColossalChat 能進行更好地對話交互,同時支援中文。
ColossalChat 資料集收集流程
RLHF 演算法複現
RLHF-Stage1 是supervised-fintuning,也就是使用上文提到的資料集進行模型微調。
RLHF-Stage2 訓練了獎勵模型,它透過對於同一個 prompt 的不同輸出進行手動排序,得到對應分數,監督訓練獎勵模型。
RLHF-Stage3 使用了強化學習演算法,是訓練流程中最複雜的一部分:
RLHF-Stage3 演算法流程圖
#在PPO 部分,ColossalChat 分成兩個階段進行:首先是Make Experience 部分,利用SFT 、Actor、RM、Critic 模型計算生成Experience 存入buffer 中;之後是參數更新部分,利用Experience 計算策略損失和價值損失。
在PTX 部分,ColossalChat 計算Actor 輸出response 和輸入語料的回答部分的交叉熵損失函數,用來在PPO 梯度中加入預訓練梯度,以保持語言模型原有性能防止遺忘。最後將策略損失、價值損失和 PTX 損失加和進行反向傳播和參數更新。
快速上手
#ColossalChat 開源了基於 LLaMA 模型,復現訓練 ChatGPT 三個階段的完整程式碼。
第一階段,訓練SFT 模型:
# Training with a 4-GPU servers colossalai run --nproc_per_node=4 train_sft.py --pretrain "/path/to/LLaMa-7B/" --model 'llama' --strategy colossalai_zero2 --log_interval 10 --save_path/path/to/Coati-7B --dataset /path/to/data.json --batch_size 4 --accimulation_steps 8 --lr 2e-5
第二階段,訓練獎勵模型:
# Training with a 4-GPU servers colossalai run --nproc_per_node=4 train_reward_model.py --pretrain "/path/to/LLaMa-7B/" --model 'llama' --strategy colossalai_zero2 --dataset /path/to/datasets
第三階段,使用RL 訓練:
# Training with a 8-GPU servers colossalai run --nproc_per_node=8 train_prompts.py prompts.csv --strategy colossalai_zero2 --pretrain "/path/to/Coati-7B" --model 'llama' --pretrain_dataset /path/to/dataset
在獲得最終模型權重後,還可透過量化降低推理硬體成本,並啟動線上推理服務,僅需單張約4GB 顯存的GPU 即可完成70 億參數模型推理服務部署。
python server.py/path/to/pretrained --quant 4bit --gptq_checkpoint /path/to/coati-7b-4bit-128g.pt --gptq_group_size 128
系统性能优化与开发加速
ColossalChat 能够快速跟进 ChatGPT 完整 RLHF 流程复现,离不开 AI 大模型基础设施 Colossal-AI 及相关优化技术的底座支持,相同条件下训练速度相比 Alpaca 采用的 FSDP (Fully Sharded Data Parallel) 可提升三倍左右。
系统基础设施 Colossal-AI
AI 大模型开发系统 Colossal-AI 为该方案提供了基础支持,它可基于 PyTorch 高效快速部署 AI 大模型训练和推理,从而降低 AI 大模型应用的成本。Colossal-AI 由加州伯克利大学杰出教授 James Demmel 和新加坡国立大学校长青年教授尤洋领导开发。自从它开源以来,Colossal-AI 已经多次在 GitHub 热榜位列世界第一,获得 GitHub Star 约两万颗,并成功入选 SC、AAAI、PPoPP、CVPR、ISC 等国际 AI 与 HPC 顶级会议的官方教程。
减少内存冗余的 ZeRO + Gemini
Colossal-AI 支持使用无冗余优化器 (ZeRO) 提高内存使用效率,低成本容纳更大模型,同时不影响计算粒度和通信效率。自动 Chunk 机制可以进一步提升 ZeRO 的性能,提高内存使用效率,减少通信次数并避免内存碎片。异构内存空间管理器 Gemini 支持将优化器状态从 GPU 显存卸载到 CPU 内存或硬盘空间,以突破 GPU 显存容量限制,扩展可训练模型的规模,降低 AI 大模型应用成本。
使用 LoRA 低成本微调
Colossal-AI 支持使用低秩矩阵微调(LoRA)方法,对 AI 大模型进行低成本微调。LoRA 方法认为大语言模型是过参数化的,而在微调时,参数改变量是一个低秩矩阵。因此,可以将这个矩阵分解为两个更小的矩阵的乘积。在微调过程中,大模型的参数被固定,只有低秩矩阵参数被调整,从而显著减小了训练所需的参数量,并降低成本。
低成本量化推理
GPTQ 量化
为降低推理部署成本,Colossal-AI 使用 GPTQ 4bit 量化推理。在 GPT/OPT/BLOOM 类模型上,它比传统的 RTN (rount-to-nearest) 量化技术能够获得更好的 Perplexity 效果。相比常见的 FP16 推理,它可将显存消耗降低 75%,只损失极少量的吞吐速度与 Perplexity 性能。
以 ColossalChat-7B 为例,在使用 4bit 量化推理时,70 亿参数模型仅需大约 4GB 显存即可完成短序列(生成长度为 128 )推理,在普通消费级显卡上即可完成(例如 RTX 3060 Laptop),仅需一行代码即可使用。
if args.quant == '4bit': model = load_quant (args.pretrained, args.gptq_checkpoint, 4, args.gptq_group_size)
如果采用高效的异步卸载技术 (offload),还可以进一步降低显存要求,使用更低成本的硬件推理更大的模型。
ColossalChat和Alpaca的区别
1. ColossalChat 开源了第一个完整的RLHF pipeline,斯坦福Alpaca没有做 RLHF,也就是没有做 Stage 2 和 Stage 3。
2. ColossalChat 采用了更多的指令数据,质量更好,范围更大,并使用强化学习做alignment 使回答更接近人类。
3. ColossalChat訓練流程整合了Colossal-AI的許多系統最佳化,同等資料集和模型大小的訓練速度可以比Alpaca快3約倍率,讓科學研究人員和中小企業也能獨立訓練部署自己的會話系統。
4.ColossalChat 團隊自己收集了更多資料集:訓練的英文總共 24M tokens,中文大約 30M tokens,總共約 54M tokens。其中 ColossalChat 自己收集的資料集英文 6M,中文 18M tokens。
以下是 ColossalChat 和 Alpaca 在語言對話上的一些表現 (上面是ColossalChat,下面是Alpaca)。
用Python 寫Quicksort:
##給教授寫郵件請求推薦信:
儘管已經進一步引入RLHF,但由於算力和資料集有限,在部分場景下的實際效能仍有提升空間。
幸運的是,不同以往AI 大模型與前沿技術僅由少數科技巨頭壟斷,PyTorch、Hugging Face 和OpenAI 等開源社群與新創企業在這波浪潮中也扮演了關鍵角色。借鏡開源社群的成功經驗,Colossal-AI 歡迎各方參與共建,擁抱大模型時代!
可透過以下方式聯絡或參與:
1. 在GitHub 發布issue 或提交pull request (PR)
2. 加入Colossal-AI 用戶微信或Slack 群交流
3. 發送正式合作提案到郵箱youy@comp.nus.edu.sg
開源位址:
https://github.com/hpcaitech/ColossalAI#
以上是0門檻克隆方案再升級,開源模型完整復現,線上體驗無需註冊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...
