樹莓派上部署RAG!微軟Phi-3技術報告揭示「小而美」模型如何誕生
![](/Uploads/Article/202406/18/6670c5d0ad7b9.png)
這個月的微軟Build大會上,微軟正式官宣了Phi-3家族新成員:Phi-3-vision、Phi-3-small,Phi-3-medium。
此外,還有上個月就發布技術報告的Phi-3-mini,剛推出時,就讓許多開發者印象深刻。
例如,Xenova基於Phi-3-mini開發了一個完全在本地運行的瀏覽器聊天應用WebGPU,demo看起來的效果像是經過加速的影片:
結果Xenova還要刻意出來聲明:影片沒加速,部署的模型就是這麼快,平均每秒鐘產生69.85個token。
在人人追求LLM的大環境下,微軟卻始終沒有放棄SLM這條路。
從去年6月Phi-1面世,到Phi-1.5、Phi-2,再到如今Phi-3,微軟小模型已經完成四次迭代升級。
這次3.8B參數的Phi-3-mini、7B的small和14B的medium,比起規模更大的模型,都展現了更強的能力。
而作為開源模型,可以在手機上、甚至在樹莓派上部署,微軟簡直太寵愛開發者了。
昨天,微軟Gen AI Research的副總裁Sebastien Bubeck在推特上宣布更新了Phi-3的技術報告,增加了small和medium版本的最終得分,以及視覺模型的評估結果。
在評論區,網友們盡情表達對Phi-3這種開源且強大的小模型的喜愛之情。
甚至有人形容,這是「微軟給開源世界的禮物」。
或許,微軟在SLM這條路上真的賭對了?讓有強大能力的模式真正落地、滲透到各種應用中,才能帶來真正的改變。
Phi-3結果提示我們,用如此少的記憶體足跡可以實現多少可能性,現在有真正的機會可以讓模型擴展到各種app了
那麼,Phi-3系列的實力到底如何?我們可以從最新版的技術報告一探究竟。
Phi-3語言模型:小而美
Phi-3-mini與small都使用了標準的純解碼器Transformer架構。
為了最大程度方便開源社區,Phi-3-mini使用了和Llama 2相同的分詞器和類似的區塊結構,這意味著所有部署在Llama 2上的軟體包都可以無縫遷移。
small版模型則使用OpenAI的tiktoken分詞器,更適合多語言任務,此外為了實現高效的訓推,也在模型架構上做了許多改進:
- 用GEGLU激活函數代替GELU
- 使用最大更新參數化策略(Maximal Update Parameterization)在代理模型上調整超參數,確保模型訓練時的參數穩定
- 採用分組查詢注意力
- 設計了塊稀疏注意力模組(blocksparse attention module),用較少的KV快取處理更長的上下文
- 為訓練和推理分別實現不同的kernel,真正發揮塊稀疏機制的優勢,實現部署後的模型加速
Phi-3-mini部署時可採用INT4量化,僅需佔用約1.8GB的記憶體。量化後部署在搭載A16晶片的iPhone 14上時,離線運作可以達到12 tokens/s的生成速度。
訓練後也使用了多樣化的高品質數據,進行SFT和DPO微調,涵蓋數學、編碼、推理、對話、模型身份和安全等多個領域。此外,在這個階段也將mini版本的上下文長度擴展到了128k。
透過使用少樣本提示,技術報告將不同參數量的Phi-3模型和Mistral、Gemma以及Llama 3、Mixtral(8X7B)、GPT-3.5等模型對比,在21個基准上進行測試。
相較於2.7B的Phi-2模型,Phi-3模型的參數成長了1.1B,但在所有測試中幾乎都實現了10分及以上的性能提升,基本可以和8B的Llama 3打成平手。
整體來看,7B參數的small版本可以和GPT-3.5對標,除了在TriviaQA和TrufulQA上有較大差距,其餘測試的分數基本上持平,甚至在GSM-8K、SociQA、BigBench-Hard、WinoGrande等測試上還有大幅度領先。
而medium模型的表現不如意,雖然比起small多了7B的參數,但用的是Phi-3-mini同款架構,在各個測試中都沒有明顯優勢,在ANLI和OpenBookQA上還有效能倒退。
Phi-3-Vision:4.2B的強大多模態
Phi-3-V依舊堅持了語言模型的「小參數」策略,參數量只有4.2B,可以接受圖像或文字提示作為輸入,然後產生文字輸出。
模型架構也非常簡潔,包含圖像編碼器CLIP ViT-L以及文字解碼器Phi-3-mini-128K-instruct。
預訓練過程總共涉及0.5T token的數據,包含純文字、表格、圖表以及圖像和文字相交錯的數據,預訓練後同樣進行了SFT和DPO微調,也是多模態任務和純文字任務同時進行。
透過完全相同的pipeline產生的結果,技術報告將Phi-3-Vision與通義千問、Claude、Gemini 1.0 Pro和GPT-4V Turbo等模型進行了比較。
在總共12個基準測試中,在ScienceQA、POPE、AI2D、ChartQA和TextVQA這5個任務上,Phi-3-V都取得了比GPT-4V-Turbo更高的分數。
其中圖表問答任務ChartQA中,Phi-3相較GPT-4V提升了19分,ScienceQA則領先15分達到了90.8分。
而在其他任務上,雖然分數不敵GPT-4V,但也可以高到與Claude 3和Gemini 1.0 Pro對打,甚至超過這些更大的模型。
例如MathVista和Inter-GPS上,都領先Gemini約10分左右。
Phi-3-Vision在圖像理解和推理方面的能力
數據換參數
Phi-3為什麼能用較少的參數得到強大的能力?技術報告從側面揭示了答案。
微軟在Phi系列模型的探索中發現了一種訓練資料「配方」,可以在小模型中實現更大模型才有的效能。
這種配方就是LLM過濾後的公開網路數據,與LLM合成數據結合。這可以啟發我們,數據內容與品質到底能在多大程度上影響模型效能。
这完全是通过更改训练数据实现的...开发出一种更紧凑的语言模型,可以与ChatGPT的能力媲美,同时能在手机上运行,这证明了数据启动的机器学习的力量。通过精心策划并优化训练数据集,可以在不影响性能的情况下显著缩小模型规模。
Phi-1模型就是用「教科書品質」的數據,首次實現了SLM的效能突破。
論文網址:https://arxiv.org/abs/2306.11644
技術報告將這種資料驅動的方法稱為「資料最優機制」(Data Optimal Regime)。在給定規模的情況下,嘗試「校準」訓練數據,使其更接近SLM的「數據最佳」狀態。
這意味著在樣本層級進行資料的篩選,不僅要包含正確的「知識」,還要能最大程度提升模型的推理能力。
而Phi-3-medium在提升7B參數後效能沒有明顯進步,一方面可能由於架構與參數規模不適配,另一方面也可能緣於「資料混合」的工作沒有達到14B模型的最佳狀態。
然而,天下沒有免費的午餐,即使有架構和訓練策略的改進,參數的縮小也不是沒有代價的。
例如,沒有多餘的參數來隱式儲存太多「事實知識」,這可能導致了Phi-3語言模型在TriviaQA上的低分,視覺模型的推理能力也被限制。
雖然團隊在數據、訓練和紅隊工作上付出了大量努力,也看到了顯著成效,但模型的幻覺和偏見問題依舊有很大改進空間。
此外,訓練和基準測試主要以英語進行,SLM的多語言能力仍有待探索。