天天看點

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

作者:新智元

編輯:編輯部

【新智元導讀】就在剛剛,340億參數的國産大模型悟道·天鷹Aquila2強勢沖上榜首,成為最強開源中英雙語大模型。更YYDS的是,這次智源不僅開源了明星模型,還贈送了非常有口碑的模型周邊!

最強中英雙語大模型,開源了!

今天,悟道·天鷹Aquila大語言模型系列已經全面更新到Aquila2,并且再添了一位重量級新成員——340億參數的Aquila2-34B。

在代碼生成、考試、了解、推理、語言四個次元的22個評測基準上,Aquila2-34B強勢霸占了多個榜單TOP 1。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

不過,「全面超越Llama 2」這樣的字眼,早已不再是新聞。相比分數,業内更看重的是大模型的能力。

而在這些實際能力上,AquilaChat2的表現依然十分搶眼——

它不僅具有超強的推理能力,長文本處理能力也大大提升;強大的泛化能力,讓它可以适應各類真實應用場景,包括AI Agent、代碼生成、文獻檢索。

更驚喜的是,智源不僅Aquila2模型系列全部開源,而且還同步開源了Aquila2的創新訓練算法,包括FlagScale架構和FlagAttention算子集,以及語義向量模型BGE的新版本。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

可以說,創新訓練算法和最佳實踐同步開放,在行業内是史無前例的。這種全家桶級别的開源,堪稱是大模型開源界的業界良心了。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

Aquila2模型全系開源位址:

https://github.com/FlagAI-Open/Aquila2

https://model.baai.ac.cn/

https://huggingface.co/BAAI

最強中英雙語大模型,開源!

22項綜合排名領先,僅憑1/2的參數量和2/3的訓練資料量,就超越了Llama2-70B和其餘開源基座模型,Aquila2-34B是怎樣做到的?

這背後,當然要歸功于智源多年積累的高品質語料。經過這些語料預訓練後的模型,綜合能力十分強大,超越了通義千問和Llama 2。

架構更新、算法創新、資料疊代,也使Aquila2在中英文綜合能力方面進一步突破。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

而Aquila2基座模型,為AquilaChat2對話模型提供了強大的基礎。

經過高品質指令微調資料集訓練之後,AquilaChat2-34B一躍而成為當今最強的開源中英雙語對話模型, 主觀及客觀評測結果,都做到了全面領先。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

SFT模型評測結果

并且,AquilaChat2-34B呈現出了幾個有趣的特點——它不僅具備豐富的中文世界原生知識,并且提供的回答更加準确全面、富有人情味。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

對于中文世界的掌握,AquilaChat2-34B甚至可以完爆GPT-4。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

對于「如何用螺絲釘炒蕃茄」這樣的問題,AquilaChat2-34B立刻聰明地猜到,使用者應該是想問「蕃茄炒雞蛋」。

相比之下,GPT-4隻能了解到「螺獅粉炒蕃茄」這一層。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

如果問大模型「研究什麼專業的大學生容易找到工作時,分析機關是什麼」,GPT-4的回答就很簡單粗暴——專業。

而AquilaChat2-34B則富有洞見地表示,分析機關可以是行業、公司類型、職級、地域、薪資水準、專業比對度等。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

推理超越Llama 2,僅次于GPT-4

我們能在哪一年實作AGI,是如今業内相當熱門的話題。

如何實作AGI呢?這其中最關鍵的,就是大模型的推理能力。

在評測基準Integrated Reasoning Dataset(IRD)上,十幾個當紅模型在歸納推理、演繹推理、溯因推理和因果推理次元上的結果和過程的準确性上,進行了全面比拼。

結果顯示,AquilaChat2-34B在IRD評測基準中排名第一,超越了LLama2-70B-Chat、GPT-3.5等模型,僅次于GPT-4。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

SFT模型在IRD資料集上的評測結果

上下文視窗長度,擴至16K

長文本輸入,是行業現在迫切需要解決的問題。

能夠接收多少文本輸入,直接決定了大模型有多大的記憶體,它和參數量一起,共同決定了模型的應用效果。

對此,智源以Aquila2-34B為基座,經過位置編碼内插法處理,并在20W條優質長文本對話資料集上做了SFT,直接将模型的有效上下文視窗長度擴充至16K。

在LongBench的四項中英文長文本問答、長文本總結任務的評測效果顯示,AquilaChat2-34B-16K處于開源長文本模型的領先水準,已經接近GPT-3.5。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

長文本了解任務評測

另外,我們都知道,大模型普遍存在着長度外延能力不足的問題,這個問題嚴重制約了大模型的長文本能力。

智源聯合北大團隊,對多個語言模型處理超長文本的注意力分布做了可視化分析。他們發現:所有語言模型均存在固定的相對位置瓶頸,且顯著小于上下文視窗長度。

為此,智源團隊創新性地提出了NLPE(Non-Linearized Position Embedding,非線性位置編碼)方法,在RoPE方法的基礎上,通過調整相對位置編碼、限制最大相對長度,來提升模型外延能力。

在代碼、中英文Few-Shot Leaning、電子書等多個領域的文本續寫實驗顯示,NLPE可以将4K的Aquila2-34B模型外延到32K長度,且續寫文本的連貫性遠好于Dynamic-NTK、位置插值等方法。

如下圖所示,在長度為5K~15K的HotpotQA、2WikiMultihopQA等資料集上的指令跟随能力測試顯示,經過NLPE外延的AquilaChat2-7B(2K)準确率為17.2%,而Dynamic-NTK外延的AquilaChat2-7B準确率僅為0.4%。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

NLPE與主流Dynamic-NTK外延方法在SFT模型上的能力對比

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

NLPE與主流Dynamic-NTK外延方法在Base模型上的能力對比(ppl值越低越好)

同時,智源團還開發了适配長文本推理的分段式Attention算子PiecewiseAttention,來高效地支援NLPE等面向Attention Map的優化算法,進一步減少顯存占用、提升運算速度。

泛化能力超強,絕不「高分低能」

說起來,許多大模型雖然在标準測試中表現出色,一到實際應用的時候卻抓瞎了。

相比之下,Aquila2模型在考試上成績優異,在真實應用場景的表現又如何呢?

要知道,大模型泛化能力,也就是舉一反三的能力至關重要。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

這意味着,LLM在訓練資料之外,依然能夠有效應對沒有見過的任務,給出準确的響應。

若是這個大模型在基準測試中取得高分,但在實際應用中表現很差,也就是擅長考題但不善于解決實際問題,是「高分低能」的表現。

為了評估Aquila2模型的泛化能力,智源團隊從三個真實應用場景下對其進行了驗證。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

AI智能體在「我的世界」自主思考

通用智能體,能夠在開放式的環境中學習多種任務,是模型重要能力的展現。

一提到智能體任務的測試,我們能想到的最常見的開放世界遊戲,當然就是「我的世界」了。

這裡有着無限生成的複雜世界和大量開放的任務,為智能體提供豐富的互動接口。

今年3月,智源團隊曾提出了在無專家資料的情況下,高效解決「我的世界」多任務的方法——Plan4MC。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

Plan4MC通過内在獎勵的強化學習方法,訓練智能體的基本技能。

然後,智能體利用大模型AquilaChat2的推理能力,完成任務規劃。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

比如,當智能體收到「伐木并制作工作台放在附近」的任務後,就會與AquilaChat2進行多輪對話互動。

首先,智能體明确自己的主任務是——建造工作台,由此輸入prompt,包括「目前環境狀态」、「需要完成的任務」。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

然後AquilaChat2收到指令後,便開始做出回報,告訴智能體「下一步使用什麼技能」,同時還确定了下一個子任務為:尋找附近的木頭。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

智能體找到木頭後,下一個子任務便是伐木。繼續将環境資訊作為輸入,由此,AquilaChat2給出了下個技能名稱。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

以此往複,智能體繼續推進自己朝着總目标方向,與AquilaChat2進行互動,完成任務。

就這樣,在AquilaChat2的幫助下,智能體搭出了完美的工作台。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

Aquila2+BGE2,複雜文獻也能檢索

複雜文獻的檢索,讓不少科研工作者頭秃。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

基于傳統向量庫的檢索方式,大模型能夠在一些簡單問題上表現出色。

然而,當面對複雜、需要深度了解的問題時,它的能力就很有限。

智源将Aqiula2與開源的語義向量模型BGE2結合,徹底解決了這一大難題。

當你想要檢索某位作者,關于某個主題的論文時,又或者要求大模型針對一個主題的多篇論文的生成總結文本,就不是難題了。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

舉個栗子,讓Aqiula2給出Mirella Lapata所著關于「總結」的論文。

Aqiula2立馬給出了符合要求的複雜文獻。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

Aquila2+BGE2文獻檢索場景複雜查詢示例

AquilaSQL:最優「文本-SQL語言」生成模型

而AquilaSQL,則可以充當「翻譯員」,将使用者發出的自然語言指令,準确翻譯為合格的SQL查詢語句。

這樣,資料查詢分析的門檻,就大大降低了。

在實際應用場景中,使用者還可以基于AquilaSQL進行二次開發,将其嫁接至本地知識庫、生成本地查詢SQL。

另外,還可以進一步提升模型的資料分析性能,讓模型不僅傳回查詢結果,更能進一步生成分析結論、圖表等。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

Aquila基座模型本身就具有優秀的代碼生成能力。

在此基礎上,AquilaSQL經過了SQL語料的繼續預訓練和SFT兩階段訓練,最終以67.3%準确率,超過「文本-SQL語言生成模型」排行榜Cspider上的SOTA模型,而未經SQL語料微調的GPT4模型。準确率僅為30.8%。

在下圖中,我們讓AquilaSQL從身高(height)、收入(income)和位置(location)三個資料表中,篩選「居住在北京的收入大于1000的人平均身高」。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

AquilaSQL開源倉庫位址:https://github.com/FlagAI-Open/FlagAI/tree/master/examples/Aquila/Aquila-sql

AquilaSQL順利地生成了多表查詢語句,完成了這個複雜查詢任務。

「全家桶」級别開源,業界良心

一個冷知識是,雖然Llama2也開源,但它的商用許可協定,對中文使用者并不那麼友好。

而且,Llama2不僅在中文商用上設限,連對商用的月活都有限制。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

Llama 2商業協定明确表示不允許英文以外的商業

相比之下,Aquila在全球範圍内都可商用——既不像Llama2那樣限制重重,也不像其他可商用模型一樣需要填表登記。

此外,很多模型團隊在開源時,并不會開源模型訓練的超參、優化方案等關鍵資料。而Aquila2此次卻是全部開源創新訓練算法,BGE、FlagScale、FlagAttention,都全部分享給了開發者。

通過這套工具,開發者就以輕松複現Aquila2了。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

這種史無前例的「全家桶」開源,簡直是大模型開源界的YYDS!

之是以毫無保留地開源訓練工具和算法,是基于智源非盈利機構的定位——通過徹底、全面的開源分享,促進全球大模型生态的繁榮。

新一代語義向量模型BGE2

BGE(BAAI General Embedding)是智源在今年8月全新開源的語義向量模型。

這次,新一代BGE2也将随着Aquila2同步開源。

BGE2中的BGE-LLM Embedder模型內建了「知識檢索」、「記憶檢索」、「示例檢索」、「工具檢索」四大能力。

它首次實作了單一語義向量模型對大語言模型主要檢索訴求的全面覆寫。

結合具體的使用場景,BGE-LLM Embedder将顯著提升大語言模型在處理知識密集型任務、長期記憶、指令跟随、工具使用等重要領域的表現。

高效并行訓練架構FlagScale

FlagScale是Aquila2-34B使用的高效并行訓練架構,能夠提供一站式語言大模型的訓練功能。

得益于智源團隊的分享,大模型開發者便可以通過FlagScale項目擷取Aquila2模型的訓練配置、優化方案和超參數。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

FlagScale開源代碼倉庫:https://github.com/FlagOpen/FlagScale

是以,智源也成為「國内首個」完整開源訓練代碼和超參數的大模型團隊。

FlagScale是在Megatron-LM基礎上擴充而來,提供了一系列功能增強,包括分布式優化器狀态重切分、精确定位訓練問題資料,以及參數到Huggingface轉換等。

經過實測,Aquila2訓練吞吐量和GPU使用率均達到業界領先水準。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

FlagScale訓練吞吐量與GPU使用率

此外,FlagScale還采用了多種并行技術,如資料并行、張量并行和1F1B流水線并行等,加速訓練過程,并使用BF16進行混合精度進行訓練。

在性能優化方面,FlagScale采用了FlashAttn V2、計算與通信重疊、梯度累積等技術,顯著提升了計算效率。

未來,FlagScale将繼續保持與上遊項目Megatron-LM最新代碼同步,引入更多定制功能,融合最新的分布式訓練與推理技術以及主流大模型、支援異構AI硬體。

這樣就可以建構一個通用、便捷、高效的分布式大模型訓練推理架構,以滿足不同規模和需求的模型訓練任務。

開源算子集FlagAttention

另外,FlagAttention是首個支援長文本大模型訓練、使用Triton語言開發的定制化高性能Attention開源算子集。

針對大模型訓練的需求,對Flash Attention系列的Memory Efficient Attention算子進行擴充。

目前已實作分段式Attention算子——PiecewiseAttention,已經适配了國産晶片天數,後續還會适配更多異構晶片。

開源一哥再登場,雙語LLM全家桶級開源!340億參數超越Llama2-70B

FlagAttention開源代碼倉庫:https://github.com/FlagOpen/FlagAttention

PiecewiseAttention主要解決了帶旋轉位置編碼Transformer模型(Roformer)的外推問題。

大模型推理時的序列長度超出訓練時最大序列長度時,距離較遠的token之間的Attention權重異常增高。

而Flash Attention對Attention Score的計算采用分段式的處理時無法做到高效實作,是以智源團隊自研了分段式PiecewiseAttention算子,大模型開發者可利用該開源算子實作更加靈活的前處理。

簡單來說,PiecewiseAttention有以下幾個特點:

- 通用性:對使用分段式計算Attention的模型具有通用性,可以遷移至Aquila之外的大語言模型。

- 易用性:FlagAttention基于Triton語言實作并提供PyTorch接口,建構和安裝過程相比CUDA C開發的Flash Attention更加便捷。

- 擴充性:同樣得益于Triton語言,FlagAttention算法本身的修改和擴充門檻較低,開發者可以便捷地在此之上拓展更多新功能。

未來,FlagAttention項目也将繼續針對大模型研究的需求,支援其他功能擴充的Attention算子,進一步優化算子性能,并适配更多異構AI硬體。

開發者指南:快速上手Aquila2

Aquila2模型權重&代碼倉庫:

使用方式一(推薦):通過FlagAI加載Aquila2系列模型

https://github.com/FlagAI-Open/Aquila2

使用方式二:通過FlagOpen模型倉庫單獨下載下傳權重

https://model.baai.ac.cn/

使用方式三:通過Hugging Face加載Aquila2系列模型

https://huggingface.co/BAAI

Aquila2全系列相容多個大模型生态開源項目:

• LoRA/QLoRA:輕量化的模型微調訓練技術,既加速了大模型訓練,同時也降低了顯存占用。

• vLLM:支援建構高吞吐量的大語言模型服務,支援流式輸出,支援單機多卡、分布式并行推理。

• llama.cpp:支援非GPU端和4-bit 量化,進一步降低開發者的的使用門檻。