自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

消費(fèi)級(jí)GPU成功運(yùn)行1760億參數(shù)大模型

人工智能
語(yǔ)言模型的規(guī)模一直在變大,PaLM 有 540B 參數(shù),OPT、GPT-3 和 BLOOM 有大約 176B 參數(shù),模型還在朝著更大的方向發(fā)展。

在消費(fèi)級(jí) GPU 上運(yùn)行大規(guī)模模型是機(jī)器學(xué)習(xí)社區(qū)正面臨的挑戰(zhàn)。

語(yǔ)言模型的規(guī)模一直在變大,PaLM 有 540B 參數(shù),OPT、GPT-3 和 BLOOM 有大約 176B 參數(shù),模型還在朝著更大的方向發(fā)展。

圖片

?這些模型很難在易于訪問(wèn)的設(shè)備上運(yùn)行。例如,BLOOM-176B 需要在 8 個(gè) 80GB A100 GPU(每個(gè)約 15000 美元)上運(yùn)行才能完成推理任務(wù),而微調(diào) BLOOM-176B 則需要 72 個(gè)這樣的 GPU。PaLM 等更大的模型將需要更多的資源。

我們需要找到方法來(lái)降低這些模型的資源需求,同時(shí)保持模型的性能。領(lǐng)域內(nèi)已經(jīng)開(kāi)發(fā)了各種試圖縮小模型大小的技術(shù),例如量化和蒸餾。

BLOOM 是去年由 1000 多名志愿研究人員在一個(gè)名為「BigScience」的項(xiàng)目中創(chuàng)建的,該項(xiàng)目由人工智能初創(chuàng)公司 Hugging Face 利用法國(guó)政府的資金運(yùn)作,今年 7 月 12 日 BLOOM 模型正式發(fā)布。

使用 Int8 推理會(huì)大幅減少模型的內(nèi)存占用,卻不會(huì)降低模型的預(yù)測(cè)性能?;诖耍瑏?lái)自華盛頓大學(xué)、Meta AI 研究院等(原 Facebook AI Research )機(jī)構(gòu)的研究員聯(lián)合 HuggingFace 開(kāi)展了一項(xiàng)研究,試圖讓經(jīng)過(guò)訓(xùn)練的 BLOOM-176B 在更少的 GPU 上運(yùn)行,并將所提方法完全集成到 HuggingFace Transformers 中。

圖片

?

  • 論文地址:https://arxiv.org/pdf/2208.07339.pdf
  • Github 地址:https://github.com/timdettmers/bitsandbytes

該研究為 transformer 提出了首個(gè)數(shù)十億規(guī)模的 Int8 量化過(guò)程,該過(guò)程不會(huì)影響模型的推理性能。它可以加載一個(gè)具有 16-bit 或 32-bit 權(quán)重的 175B 參數(shù)的 transformer,并將前饋和注意力投影層轉(zhuǎn)換為 8-bit。其將推理所需的內(nèi)存減少了一半,同時(shí)保持了全精度性能。

該研究將向量量化和混合精度分解的組合命名為 LLM.int8()。實(shí)驗(yàn)表明,通過(guò)使用 LLM.int8(),可以在消費(fèi)級(jí) GPU 上使用多達(dá) 175B 參數(shù)的 LLM 執(zhí)行推理,而不會(huì)降低性能。該方法不僅為異常值對(duì)模型性能的影響提供了新思路,還首次使在消費(fèi)級(jí) GPU 的單個(gè)服務(wù)器上使用非常大的模型成為可能,例如 OPT-175B/BLOOM。

圖片

方法簡(jiǎn)介

機(jī)器學(xué)習(xí)模型的大小取決于參數(shù)的數(shù)量及其精度,通常是 float32、float16 或 bfloat16 之一。float32 (FP32) 代表標(biāo)準(zhǔn)化的 IEEE 32 位浮點(diǎn)表示,使用這種數(shù)據(jù)類型可以表示范圍廣泛的浮點(diǎn)數(shù)。FP32 為「指數(shù)」保留 8 位,為「尾數(shù)」保留 23 位,為數(shù)字的符號(hào)保留 1 位。并且,大多數(shù)硬件都支持 FP32 操作和指令。

而 float16 (FP16) 為指數(shù)保留 5 位,為尾數(shù)保留 10 位。這使得 FP16 數(shù)字的可表示范圍遠(yuǎn)低于 FP32,面臨溢出(試圖表示一個(gè)非常大的數(shù)字)和下溢(表示一個(gè)非常小的數(shù)字)的風(fēng)險(xiǎn)。

出現(xiàn)溢出時(shí)會(huì)得到 NaN(非數(shù)字)的結(jié)果,如果像在神經(jīng)網(wǎng)絡(luò)中那樣進(jìn)行順序計(jì)算,那么很多工作都會(huì)崩潰。bfloat16 (BF16) 則能夠避免這種問(wèn)題。BF16 為指數(shù)保留 8 位,為小數(shù)保留 7 位,意味著 BF16 可以保留與 FP32 相同的動(dòng)態(tài)范圍。

理想情況下,訓(xùn)練和推理應(yīng)該在 FP32 中完成,但它的速度比 FP16/BF16 慢,因此要使用混合精度來(lái)提高訓(xùn)練速度。但在實(shí)踐中,半精度權(quán)重在推理過(guò)程中也能提供與 FP32 相似的質(zhì)量。這意味著我們可以使用一半精度的權(quán)重并使用一半的 GPU 來(lái)完成相同的結(jié)果。

但是,如果我們可以使用不同的數(shù)據(jù)類型以更少的內(nèi)存存儲(chǔ)這些權(quán)重呢?一種稱為量化的方法已廣泛用于深度學(xué)習(xí)。

該研究首先在實(shí)驗(yàn)中用 2-byte BF16/FP16 半精度代替 4-byte FP32 精度,實(shí)現(xiàn)了幾乎相同的推理結(jié)果。這樣一來(lái),模型減小了一半。但是如果進(jìn)一步降低這個(gè)數(shù)字,精度會(huì)隨之降低,那推理質(zhì)量就會(huì)急劇下降。

為了彌補(bǔ)這一點(diǎn),該研究引入 8bit 量化。這種方法使用四分之一的精度,因此只需要四分之一模型大小,但這不是通過(guò)去除另一半 bit 來(lái)實(shí)現(xiàn)的。

圖片

兩種最常見(jiàn)的 8-bit 量化技術(shù)為 zero-point 量化和 absmax(absolute maximum)量化。這兩種方法將浮點(diǎn)值映射為更緊湊的 int8(1 字節(jié))值。

例如,在 zero-point 量化中,如果數(shù)據(jù)范圍是 -1.0——1.0,量化到 -127——127,其擴(kuò)展因子為 127。在這個(gè)擴(kuò)展因子下,例如值 0.3 將被擴(kuò)展為 0.3*127 = 38.1。量化通常會(huì)采用四舍五入(rounding),得到了 38。如果反過(guò)來(lái),將得到 38/127=0.2992——在這個(gè)例子中有 0.008 的量化誤差。這些看似微小的錯(cuò)誤在通過(guò)模型層傳播時(shí)往往會(huì)累積和增長(zhǎng),并導(dǎo)致性能下降。

圖片

?

雖然這些技術(shù)能夠量化深度學(xué)習(xí)模型,但它們通常會(huì)導(dǎo)致模型準(zhǔn)確率下降。但是集成到 Hugging Face Transformers 和 Accelerate 庫(kù)中的 LLM.int8(),是第一種即使對(duì)于帶有 176B 參數(shù)的大型模型 (如 BLOOM) 也不會(huì)降低性能的技術(shù)。

LLM.int8()算法可以這樣解釋,本質(zhì)上,LLM.int8()試圖通過(guò)三個(gè)步驟來(lái)完成矩陣乘法計(jì)算:

  • 從輸入隱藏狀態(tài)中,按列提取異常值(即大于某個(gè)閾值的值)。
  • 將 FP16 中的異常值與 int8 中的非異常值進(jìn)行矩陣乘法。
  • 在 FP16 中對(duì)非異常值進(jìn)行去量化,將異常值和非異常值相加,得到完整的結(jié)果。

這些步驟可以在下面的動(dòng)畫(huà)中總結(jié):

圖片

最后,該研究還關(guān)注了一個(gè)問(wèn)題:速度比原生模型更快嗎?

LLM.int8() 方法的主要目的是使大型模型更易于訪問(wèn)而不會(huì)降低性能。但是,如果它非常慢,那么用處也不大了。研究團(tuán)隊(duì)對(duì)多個(gè)模型的生成速度進(jìn)行了基準(zhǔn)測(cè)試,發(fā)現(xiàn)帶有 LLM.int8() 的 BLOOM-176B 比 fp16 版本慢了大約 15% 到 23%——這是完全可以接受的。而較小的模型(如 T5-3B 和 T5-11B)的減速幅度更大。研究團(tuán)隊(duì)正在努力提升這些小型模型的運(yùn)行速度。

? 圖片 ?

責(zé)任編輯:未麗燕 來(lái)源: 機(jī)器之心
相關(guān)推薦

2023-06-07 17:55:01

模型性能

2022-07-20 16:36:02

模型AI

2023-06-02 15:47:49

2023-08-25 09:34:24

模型訓(xùn)練

2023-06-12 11:49:37

GPT-4 API論文

2023-12-13 12:55:39

模型數(shù)據(jù)

2022-06-25 21:17:15

人工智能訓(xùn)練

2023-06-20 13:38:22

2023-07-23 17:27:12

2024-03-07 12:30:56

數(shù)據(jù)模型

2023-04-26 13:56:17

模型ChatGPT

2023-09-13 10:09:00

模型數(shù)據(jù)

2024-08-05 14:36:17

大型語(yǔ)言模型量化

2024-03-12 13:22:00

訓(xùn)練數(shù)據(jù)

2025-01-06 07:00:00

大模型人工智能LLM

2023-08-03 19:11:45

2023-05-19 10:26:01

谷歌模型

2023-04-21 10:37:40

語(yǔ)言模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)