1800億參數(shù),世界頂級(jí)開源大模型Falcon官宣!碾壓LLaMA 2,性能直逼GPT-4
一夜之間,世界最強(qiáng)開源大模型Falcon 180B引爆全網(wǎng)!
1800億參數(shù),F(xiàn)alcon在3.5萬(wàn)億token完成訓(xùn)練,直接登頂Hugging Face排行榜。
基準(zhǔn)測(cè)試中,F(xiàn)alcon 180B在推理、編碼、熟練度和知識(shí)測(cè)試各種任務(wù)中,一舉擊敗Llama 2。
甚至,F(xiàn)alcon 180B能夠與谷歌PaLM 2不差上下,性能直逼GPT-4。
不過(guò),英偉達(dá)高級(jí)科學(xué)家Jim Fan對(duì)此表示質(zhì)疑,
- Falcon-180B的訓(xùn)練數(shù)據(jù)中,代碼只占5%。
而代碼是迄今為止對(duì)提高推理能力、掌握工具使用和增強(qiáng)AI智能體最有用的數(shù)據(jù)。事實(shí)上,GPT-3.5是在Codex的基礎(chǔ)上進(jìn)行微調(diào)的。
- 沒(méi)有編碼基準(zhǔn)數(shù)據(jù)。
沒(méi)有代碼能力,就不能聲稱「優(yōu)于GPT-3.5」或「接近GPT-4」。它本應(yīng)是預(yù)訓(xùn)練配方中不可或缺的一部分,而不是事后的微調(diào)。
- 對(duì)于參數(shù)大于30B的語(yǔ)言模型,是時(shí)候采用混合專家系統(tǒng)(MoE)了。到目前為止,我們只看到OSS MoE LLM < 10B。
一起來(lái)看看,F(xiàn)alcon 180B究竟是什么來(lái)頭?
世界最強(qiáng)開源大模型
此前,F(xiàn)alcon已經(jīng)推出了三種模型大小,分別是1.3B、7.5B、40B。
官方介紹,F(xiàn)alcon 180B是40B的升級(jí)版本,由阿布扎比的全球領(lǐng)先技術(shù)研究中心TII推出,可免費(fèi)商用。
這次,研究人員在基底模型上技術(shù)上進(jìn)行了創(chuàng)新,比如利用Multi-Query Attention等來(lái)提高模型的可擴(kuò)展性。
對(duì)于訓(xùn)練過(guò)程,F(xiàn)alcon 180B基于亞馬遜云機(jī)器學(xué)習(xí)平臺(tái)Amazon SageMaker,在多達(dá)4096個(gè)GPU上完成了對(duì)3.5萬(wàn)億token的訓(xùn)練。
總GPU計(jì)算時(shí),大約7,000,000個(gè)。
Falcon 180B的參數(shù)規(guī)模是Llama 2(70B)的2.5倍,而訓(xùn)練所需的計(jì)算量是Llama 2的4倍。
具體訓(xùn)練數(shù)據(jù)中,F(xiàn)alcon 180B主要是RefinedWe數(shù)據(jù)集(大約占85%) 。
此外,它還在對(duì)話、技術(shù)論文,以及一小部分代碼等經(jīng)過(guò)整理的混合數(shù)據(jù)的基礎(chǔ)上進(jìn)行了訓(xùn)練。
這個(gè)預(yù)訓(xùn)練數(shù)據(jù)集足夠大,即使是3.5萬(wàn)億個(gè)token也只占不到一個(gè)epoch。
官方自稱,F(xiàn)alcon 180B是當(dāng)前「最好」的開源大模型,具體表現(xiàn)如下:
在MMLU基準(zhǔn)上,F(xiàn)alcon 180B的性能超過(guò)了Llama 2 70B和GPT-3.5。
在HellaSwag、LAMBADA、WebQuestions、Winogrande、PIQA、ARC、BoolQ、CB、COPA、RTE、WiC、WSC 及ReCoRD上,與谷歌的PaLM 2-Large不相上下。
另外,它在Hugging Face開源大模型榜單上,是當(dāng)前評(píng)分最高(68.74分)的開放式大模型,超越了LlaMA 2(67.35)。
Falcon 180B上手可用
與此同時(shí),研究人員還發(fā)布了聊天對(duì)話模型Falcon-180B-Chat。該模型在對(duì)話和指令數(shù)據(jù)集上進(jìn)行了微調(diào),數(shù)據(jù)集涵蓋了Open-Platypus、UltraChat和Airoboros。
現(xiàn)在,每個(gè)人都可以進(jìn)行demo體驗(yàn)。
地址:https://huggingface.co/tiiuae/falcon-180B-chat
Prompt 格式
基礎(chǔ)模型沒(méi)有Prompt格式,因?yàn)樗⒉皇且粋€(gè)對(duì)話型大模型,也不是通過(guò)指令進(jìn)行的訓(xùn)練,所以它并不會(huì)以對(duì)話形式回應(yīng)。
預(yù)訓(xùn)練模型是微調(diào)的絕佳平臺(tái),但或許你不該直接使用。其對(duì)話模型則設(shè)有一個(gè)簡(jiǎn)單的對(duì)話模式。
System: Add an optional system prompt here
User: This is the user input
Falcon: This is what the model generates
User: This might be a second turn input
Falcon: and so on
Transformers
從Transfomers 4.33開始,F(xiàn)alcon 180B可以在Hugging Face生態(tài)中使用和下載。
確保已經(jīng)登錄Hugging Face賬號(hào),并安裝了最新版本的transformers:
pip install --upgrade transformers
huggingface-cli login
bfloat16
以下是如何在 bfloat16 中使用基礎(chǔ)模型的方法。Falcon 180B是一個(gè)大模型,所以請(qǐng)注意它的硬件要求。
對(duì)此,硬件要求如下:
可以看出,若想對(duì)Falcon 180B進(jìn)行全面微調(diào),至少需要8X8X A100 80G,如果僅是推理的話,也得需要8XA100 80G的GPU。
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
model_id = "tiiuae/falcon-180B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
prompt = "My name is Pedro, I live in"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
output = model.generate(
input_ids=inputs["input_ids"],
attention_mask=inputs["attention_mask"],
do_sample=True,
temperature=0.6,
top_p=0.9,
max_new_tokens=50,
)
output = output[0].to("cpu")
print(tokenizer.decode(output)
可能會(huì)產(chǎn)生如下輸出結(jié)果:
My name is Pedro, I live in Portugal and I am 25 years old. I am a graphic designer, but I am also passionate about photography and video.
I love to travel and I am always looking for new adventures. I love to meet new people and explore new places.
使用8位和4位的bitsandbytes
此外,F(xiàn)alcon 180B的8位和4位量化版本在評(píng)估方面與bfloat16幾乎沒(méi)有差別!
這對(duì)推理來(lái)說(shuō)是個(gè)好消息,因?yàn)橛脩艨梢苑判牡厥褂昧炕姹緛?lái)降低硬件要求。
注意,在8位版本進(jìn)行推理要比4位版本快得多。要使用量化,你需要安裝「bitsandbytes」庫(kù),并在加載模型時(shí)啟用相應(yīng)的標(biāo)志:
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
**load_in_8bit=True,**
device_map="auto",
)
對(duì)話模型
如上所述,為跟蹤對(duì)話而微調(diào)的模型版本,使用了非常直接的訓(xùn)練模板。我們必須遵循同樣的模式才能運(yùn)行聊天式推理。
作為參考,你可以看看聊天演示中的 [format_prompt] 函數(shù):
def format_prompt(message, history, system_prompt):
prompt = ""
if system_prompt:
prompt += f"System: {system_prompt}\n"
for user_prompt, bot_response in history:
prompt += f"User: {user_prompt}\n"
prompt += f"Falcon: {bot_response}\n"
prompt += f"User: {message}\nFalcon:"
return prompt
從上可見(jiàn),用戶的交互和模型的回應(yīng)前面都有 User: 和 Falcon: 分隔符。我們將它們連接在一起,形成一個(gè)包含整個(gè)對(duì)話歷史的提示。這樣,就可以提供一個(gè)系統(tǒng)提示來(lái)調(diào)整生成風(fēng)格。
網(wǎng)友熱評(píng)
對(duì)于Falcon 180B的真正實(shí)力,許多網(wǎng)友對(duì)此展開熱議。
絕對(duì)難以置信。它擊敗了GPT-3.5,與谷歌的PaLM-2 Large不相上下。這簡(jiǎn)直改變游戲規(guī)則!
一位創(chuàng)業(yè)公司的CEO表示,我測(cè)試了Falcon-180B對(duì)話機(jī)器人,它并不比Llama2-70B聊天系統(tǒng)好。HF OpenLLM排行榜也顯示了好壞參半的結(jié)果??紤]到它的規(guī)模更大,訓(xùn)練集也更多,這種情況令人驚訝。
舉個(gè)栗子:
給出一些條目,讓Falcon-180B和Llama2-70B分別回答,看看效果如何?
Falcon-180B誤將馬鞍算作動(dòng)物。而Llama2-70B回答簡(jiǎn)潔,還給出了正確答案。