設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

谷歌沒開源的 PaLM,網(wǎng)友給開源了,千億參數(shù)微縮版:最大只有 10 億,8k 上下文

新智元 2023/5/13 12:22:13 責(zé)編:夢澤

萬萬沒想到,谷歌 PaLM 竟被開源了,但是微縮版的。

谷歌未開源的 PaLM,網(wǎng)友竟給開源了。

昨天,一位開發(fā)者在 GitHub 上開源了三種微縮版的 PaLM 模型:參數(shù)分別為 1.5 億(PalM-150m),4.1 億(PalM-410m)和 10 億(PalM-1b)。

項目地址:https://github.com/ conceptofmind / PaLM

這三種模型在谷歌 C4 數(shù)據(jù)集進(jìn)行了訓(xùn)練,上下文長度為 8k。未來,還有 20 億參數(shù)的模型正在訓(xùn)練中。

谷歌 C4 數(shù)據(jù)集

開源 PaLM

使用 4.1 億參數(shù)模型生成的示例:

My dog is very cute, but not very good at socializing with other dogs. The dog loves all new people and he likes to hang out with other dogs. I do need to take him to the park with other dogs. He does have some bad puppy breath, but it is only when he runs off in a direction he doesn't want to go. currently my dog is being very naughty. He would like to say hi in the park, but would rather take great care of himself for a while. He also has bad breath. I am going to have to get him some oral braces. It's been 3 months. The dog has some biting pains around his mouth. The dog is very timid and scared. The dog gets aggressive towards people. The dog is very playful and they are a little spoiled. I am not sure if it's a dog thing or if he is spoiled. He loves his toys and just wants to play. He plays with his toys all the time and even goes on walks. He is a little picky, not very good with other dogs. The dog is just a little puppy that goes to the park. He is a super friendly dog. He has not had a bad mouth or bad breath

我的狗很可愛,但是不善于和其他狗交際。這只狗喜歡所有新來的人,他喜歡和其他的狗一起玩。我確實需要帶他和其他狗一起去公園。他確實有點小狗的口臭,但只有當(dāng)他往不想去的方向跑的時候?,F(xiàn)在我的狗很淘氣。他想在公園里打個招呼,但寧愿好好照顧自己一段時間。他還有口臭。我得給他買個口腔矯正器,已經(jīng)過去三個月了。這條狗嘴邊有些咬痕疼痛。這只狗非常膽小和害怕。這只狗對人有攻擊性。這條狗非常頑皮,他們有點被寵壞了。我不確定是狗的問題還是他被寵壞了。他喜歡他的玩具,只是想玩。他總是玩他的玩具,甚至去散步。他有點挑剔,不太會和其他狗相處。那只狗只是一只去公園的小狗。它是一只超級友好的狗。他沒有口臭問題了。

雖然參數(shù)確實有點少,但這生成的效果還是有些一言難盡……

這些模型兼容許多 Lucidrain 的流行倉庫,例如 Toolformer-pytorch、PalM-rlhf-pytorch 和 PalM-pytorch。

最新開源的三種模型都是基線模型,并將在更大規(guī)模數(shù)據(jù)集上進(jìn)行訓(xùn)練。

所有的模型將在 FLAN 上進(jìn)一步調(diào)整指令,以提供 flan-PaLM 模型。

開源的 PaLM 模型通過 Flash Attention、 Xpos Rotary Embeddings 進(jìn)行訓(xùn)練,從而實現(xiàn)了更好的長度外推,并使用多查詢單鍵值注意力機(jī)制進(jìn)行更高效的解碼。

在優(yōu)化算法方面,采用的則是解耦權(quán)重衰減 Adam W,但也可以選擇使用 Mitchell Wortsman 的 Stable Adam W。

目前,模型已經(jīng)上傳到 Torch hub,文件也存儲在 Huggingface hub 中。

如果模型無法從 Torch hub 正確下載,請務(wù)必清除  .cache/ torch / hub/ 中的檢查點和模型文件夾。如果問題仍未解決,那么你可以從 Huggingface 的倉庫下載文件。目前,Huggingface 的整合工作正在進(jìn)行中。

所有的訓(xùn)練數(shù)據(jù)都已經(jīng)用 GPTNEOX 標(biāo)記器進(jìn)行了預(yù)標(biāo)記,并且序列長度被截止到 8192。這將有助于節(jié)省預(yù)處理數(shù)據(jù)的大量成本。

這些數(shù)據(jù)集已經(jīng)以 parquet 格式存儲在 Huggingface 上,你可以在這里找到各個數(shù)據(jù)塊:C4 Chunk 1,C4 Chunk 2,C4 Chunk 3,C4 Chunk 4,以及 C4 Chunk 5。

在分布式訓(xùn)練腳本中還有另一個選項,不使用提供的預(yù)標(biāo)記 C4 數(shù)據(jù)集,而是加載和處理另一個數(shù)據(jù)集,如 openwebtext。

安裝

在嘗試運行模型之前,需要先進(jìn)行一波安裝。

git clone https://github.com/conceptofmind/PaLM.git
cd PaLM/
pip3 install -r requirements.txt

使用

你可以通過使用 Torch hub 加載預(yù)訓(xùn)練的模型進(jìn)行額外的訓(xùn)練或微調(diào):

model = torch.hub.load("conceptofmind/PaLM", "palm_410m_8k_v0").cuda()

另外,你還可以通下面的方式直接加載 PyTorch 模型檢查點:

from palm_rlhf_pytorch import PaLMmodel = PaLM(
    num_tokens=50304, dim=1024, depth=24, dim_head=128, heads=8, flash_attn=True, qk_rmsnorm = False,
  ).cuda()
model.load('/palm_410m_8k_v0.pt')

要使用模型生成文本,可以使用命令行:

prompt-用于生成文本的提示。

seq _ len-生成文本的序列長度,默認(rèn)值為 256。

temperature-采樣溫度,默認(rèn)為 0.8

filter_thres-用于采樣的過濾器閾值。默認(rèn)值為 0.9。

model-用于生成的模型。有三種不同的參數(shù)(150m,410m,1b):palm_150m_8k_v0,palm_410m_8k_v0,palm_1b_8k_v0。

python3 inference.py "My dog is very cute" --seq_len 256 --temperature 0.8 --filter_thres 0.9 --model "palm_410m_8k_v0"

為了提高性能,推理使用 torch.compile ()、  Flash Attention 和 Hidet。

如果你想通過添加流處理或其他功能來擴(kuò)展生成,作者提供了一個通用的推理腳本「inference.py」。

訓(xùn)練

這幾個「開源 PalM」模型是在 64 個 A100(80GB)GPU 上完成訓(xùn)練的。

為了方便模型的訓(xùn)練,作者還提供了一個分布式訓(xùn)練腳本 train_distributed.py。

你可以自由改變模型層和超參數(shù)配置以滿足硬件的要求,并且還可以加載模型的權(quán)重并改變訓(xùn)練腳本來微調(diào)模型。

最后,作者表示會在將來加入一個具體的微調(diào)腳本,并對 LoRA 進(jìn)行探索。

數(shù)據(jù)

可以通過運行 build_dataset.py 腳本,以類似于訓(xùn)練期間使用的 C4 數(shù)據(jù)集的方式預(yù)處理不同的數(shù)據(jù)集。這將對數(shù)據(jù)進(jìn)行預(yù)標(biāo)記,將數(shù)據(jù)分成指定序列長度的塊,并上傳到 Huggingface hub。

比如:

python3 build_dataset.py --seed 42 --seq_len 8192 --hf_account "your_hf_account" --tokenizer "EleutherAI/gpt-neox-20b" --dataset_name "EleutherAI/the_pile_deduplicated"

PaLM 2 要來了

2022 年 4 月,谷歌首次官宣了 5400 億參數(shù)的 PaLM。與其他 LLM 一樣,PaLM 能執(zhí)行各種文本生成和編輯任務(wù)。

PaLM 是谷歌首次大規(guī)模使用 Pathways 系統(tǒng)將訓(xùn)練擴(kuò)展到 6144 塊芯片,這是迄今為止用于訓(xùn)練的基于 TPU 的最大系統(tǒng)配置。

它的理解能力拔群,不僅連笑話都能看懂,還能給看不懂的你解釋笑點在哪。

就在 3 月中,谷歌首次開放其 PaLM 大型語言模型 API。

這意味著,人們可以用它來完成總結(jié)文本、編寫代碼等任務(wù),甚至是將 PaLM 訓(xùn)練成一個像 ChatGPT 一樣的對話聊天機(jī)器人。

在即將召開的谷歌年度 I / O 大會上,劈柴將公布公司在 AI 領(lǐng)域的最新發(fā)展。

據(jù)稱,最新、最先進(jìn)的大型語言模型 PaLM 2 即將推出。

PaLM 2 包含 100 多種語言,并一直在內(nèi)部代號「統(tǒng)一語言模型」(Unified Language Model)下運行。它還進(jìn)行了廣泛的編碼和數(shù)學(xué)測試以及創(chuàng)意寫作。

上個月,谷歌表示,其醫(yī)學(xué) LLM「Med-PalM2」,可以回答醫(yī)學(xué)考試的問題,在「專家醫(yī)生水平」,準(zhǔn)確率為 85% 。

此外,谷歌還將發(fā)布大模型加持下的聊天機(jī)器人 Bard,以及搜索的生成式體驗。

最新 AI 發(fā)布能否讓谷歌挺直腰板,還得拭目以待。

參考資料:

  • https://github.com/conceptofmind/PaLM

本文來自微信公眾號:新智元 (ID:AI_era)

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會買 要知