谷歌沒開源的PaLM,網(wǎng)友給開源了!千億參數(shù)微縮版:最大只有10億,8k上下文
谷歌未開源的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ù)集進行了訓練,上下文長度為8k。未來,還有20億參數(shù)的模型正在訓練中。
谷歌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
我的狗很可愛,但是不善于和其他狗交際。這只狗喜歡所有新來的人,他喜歡和其他的狗一起玩。我確實需要帶他和其他狗一起去公園。他確實有點小狗的口臭,但只有當他往不想去的方向跑的時候。現(xiàn)在我的狗很淘氣。他想在公園里打個招呼,但寧愿好好照顧自己一段時間。他還有口臭。我得給他買個口腔矯正器,已經(jīng)過去三個月了。這條狗嘴邊有些咬痕疼痛。這只狗非常膽小和害怕。這條狗非常頑皮,他們有點被寵壞了。我不確定是狗的問題還是他被寵壞了。他喜歡他的玩具,只是想玩。他總是玩他的玩具,甚至去散步。他有點挑剔,不太會和其他狗相處。那只狗只是一只去公園的小狗。它是一只超級友好的狗。他沒有口臭問題了。
雖然參數(shù)確實有點少,但這生成的效果還是有些一言難盡……
這些模型兼容許多Lucidrain的流行倉庫,例如Toolformer-pytorch、PalM-rlhf-pytorch和PalM-pytorch。
最新開源的三種模型都是基線模型,并將在更大規(guī)模數(shù)據(jù)集上進行訓練。
所有的模型將在FLAN上進一步調(diào)整指令,以提供flan-PaLM模型。
開源的PaLM模型通過Flash Attention、 Xpos Rotary Embeddings進行訓練,從而實現(xià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 的整合工作正在進行中。
所有的訓練數(shù)據(jù)都已經(jīng)用GPTNEOX標記器進行了預標記,并且序列長度被截止到8192。這將有助于節(jié)省預處理數(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。
在分布式訓練腳本中還有另一個選項,不使用提供的預標記C4數(shù)據(jù)集,而是加載和處理另一個數(shù)據(jù)集,如 openwebtext。
安裝
在嘗試運行模型之前,需要先進行一波安裝。
git clone https://github.com/conceptofmind/PaLM.git
cd PaLM/
pip3 install -r requirements.txt
使用
你可以通過使用Torch hub加載預訓練的模型進行額外的訓練或微調(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-生成文本的序列長度,默認值為256。
temperature-采樣溫度,默認為0.8
filter_thres-用于采樣的過濾器閾值。默認值為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。
如果你想通過添加流處理或其他功能來擴展生成,作者提供了一個通用的推理腳本「inference.py」。
訓練
這幾個「開源PalM」模型是在64個A100(80GB)GPU上完成訓練的。
為了方便模型的訓練,作者還提供了一個分布式訓練腳本train_distributed.py。
你可以自由改變模型層和超參數(shù)配置以滿足硬件的要求,并且還可以加載模型的權(quán)重并改變訓練腳本來微調(diào)模型。
最后,作者表示會在將來加入一個具體的微調(diào)腳本,并對LoRA進行探索。
數(shù)據(jù)
可以通過運行build_dataset.py腳本,以類似于訓練期間使用的C4數(shù)據(jù)集的方式預處理不同的數(shù)據(jù)集。這將對數(shù)據(jù)進行預標記,將數(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)將訓練擴展到6144塊芯片,這是迄今為止用于訓練的基于TPU的最大系統(tǒng)配置。
它的理解能力拔群,不僅連笑話都能看懂,還能給看不懂的你解釋笑點在哪。
就在3月中,谷歌首次開放其PaLM大型語言模型API。
這意味著,人們可以用它來完成總結(jié)文本、編寫代碼等任務(wù),甚至是將PaLM訓練成一個像ChatGPT一樣的對話聊天機器人。
在即將召開的谷歌年度I/O大會上,劈柴將公布公司在AI領(lǐng)域的最新發(fā)展。
據(jù)稱,最新、最先進的大型語言模型PaLM 2即將推出。
PaLM 2包含100多種語言,并一直在內(nèi)部代號「統(tǒng)一語言模型」(Unified Language Model)下運行。它還進行了廣泛的編碼和數(shù)學測試以及創(chuàng)意寫作。
上個月,谷歌表示,其醫(yī)學LLM「Med-PalM2」,可以回答醫(yī)學考試的問題,在「專家醫(yī)生水平」,準確率為85% 。
此外,谷歌還將發(fā)布大模型加持下的聊天機器人Bard,以及搜索的生成式體驗。
最新AI發(fā)布能否讓谷歌挺直腰板,還得拭目以待。