一夕之間,世界最強開源大模式Falcon 180B引爆全網!
1800億參數,Falcon在3.5兆token完成訓練,直接登上Hugging Face排行榜。
基準測試中,Falcon 180B在推理、編碼、熟練度和知識測試各種任務中,一舉擊敗Llama 2。
甚至,Falcon 180B能夠與GooglePaLM 2不差上下,效能直逼GPT-4。
不過,英偉達資深科學家Jim Fan對此表示質疑,
#- Falcon-180B的訓練資料中,程式碼只佔5%。
而程式碼是迄今為止對提升推理能力、掌握工具使用和增強AI智能體最有用的資料。事實上,GPT-3.5是在Codex的基礎上微調的。
- 沒有編碼基準。
沒有程式碼能力,就不能宣稱「優於GPT-3.5」或「接近GPT-4」。它本應是預訓練配方中不可或缺的一部分,而不是事後的微調。
- 對於參數大於30B的語言模型,是時候採用混合專家系統(MoE)了。 到目前為止,我們只看到OSS MoE LLM
一起來看看,Falcon 180B究竟是什麼來頭?
之前,Falcon已經推出了三種模型大小,分別是1.3B、7.5B、40B。
官方介紹,Falcon 180B是40B的升級版本,由阿布達比的全球領先技術研究中心TII推出,可免費商用。
這次,研究人員在基底模型上技術上進行了創新,例如利用Multi-Query Attention等來提高模型的可擴展性。
對於訓練過程,Falcon 180B基於亞馬遜雲端機器學習平台Amazon SageMaker,在多達4096個GPU上完成了對3.5萬億token的訓練。
總GPU計算時,大約7,000,000個。
Falcon 180B的參數規模是Llama 2(70B)的2.5倍,而訓練所需的計算量是Llama 2的4倍。
特定訓練資料中,Falcon 180B主要是RefinedWe資料集(約佔85%) 。
此外,它還在對話、技術論文,以及一小部分程式碼等經過整理的混合資料的基礎上進行了訓練。
這個預訓練資料集夠大,即使是3.5兆個token也只佔不到一個epoch。
官方自稱,Falcon 180B是目前「最好」的開源大模型,具體表現如下:
在MMLU基準上,Falcon 180B的效能超過了Llama 2 70B和GPT-3.5。
在HellaSwag、LAMBADA、WebQuestions、Winogrande、PIQA、ARC、BoolQ、CB、COPA、RTE、WiC、WSC 及ReCoRD上,與Google的PaLM 2-Large不相上下。
另外,它在Hugging Face開源大模型榜單上,是目前評分最高(68.74分)的開放式大模型,超越了LlaMA 2(67.35)。
同時,研究人員也發布了聊天對話模型Falcon-180B-Chat。該模型在對話和指令資料集上進行了微調,資料集涵蓋了Open-Platypus、UltraChat和Airoboros。
現在,每個人都可以進行demo體驗。
網址:https://huggingface.co/tiiuae/falcon-180B-chat
基礎模型沒有Prompt格式,因為它並不是對話型大模型,也不是透過指令進行的訓練,所以它並不會以對話形式回應。
預訓練模型是微調的絕佳平台,但或許你不該直接使用。其對話模型則設有簡單的對話模式。
System: Add an optional system prompt hereUser: This is the user inputFalcon: This is what the model generatesUser: This might be a second turn inputFalcon: and so on
從Transfomers 4.33開始,Falcon 180B可以在Hugging Face生態中使用和下載。
確保已登入Hugging Face帳號,並安裝了最新版本的transformers:
pip install --upgrade transformershuggingface-cli login
bfloat16
#以下是如何在bfloat16 中使用基礎模型的方法。 Falcon 180B是一個大模型,所以請注意它的硬體需求。
對此,硬體需求如下:
可以看出,若想對Falcon 180B進行全面微調,至少需要8X8X A100 80G,如果僅是推理的話,也得需要8XA100 80G的GPU。
from transformers import AutoTokenizer, AutoModelForCausalLMimport transformersimport torchmodel_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)
可能會產生以下輸出結果:
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
此外,Falcon 180B的8位元和4位元量化版本在評估方面與bfloat16幾乎沒有差別!
這對推理來說是個好消息,因為使用者可以放心地使用量化版本來降低硬體需求。
注意,在8位元版本進行推理要比4位元版本快得多。要使用量化,你需要安裝「bitsandbytes」函式庫,並在載入模型時啟用對應的標誌:
model = AutoModelForCausalLM.from_pretrained(model_id,torch_dtype=torch.bfloat16,**load_in_8bit=True,**device_map="auto",)
對話模型
如上所述,為追蹤對話而微調的模型版本,使用了非常直接的訓練模板。我們必須遵循同樣的模式才能運行聊天式推理。
作為參考,你可以看看聊天示範中的[format_prompt] 函數:
###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
一位新創公司的CEO表示,我測試了Falcon-180B對話機器人,它並不比Llama2-70B聊天系統好。 HF OpenLLM排行榜也顯示了好壞參半的結果。考慮到它的規模更大,訓練集也更多,這種情況令人驚訝。
舉個栗子:
給一些條目,讓Falcon-180B和Llama2-70B分別回答,看看效果如何?
Falcon-180B誤將馬鞍算作動物。而Llama2-70B回答簡潔,也給了正確答案。
#以上是1800億參數,世界頂級開源大模型Falcon官宣!碾壓LLaMA 2,性能直逼GPT-4的詳細內容。更多資訊請關注PHP中文網其他相關文章!