與其他開源技術(shù)一樣,我們應(yīng)該最關(guān)注的兩個指標是社區(qū)活躍度(星級數(shù))和其背后的組織。
對比核心的幾個開源模型:
以上數(shù)據(jù)截止至2024年04月10日,僅代表個人使用經(jīng)驗。后續(xù)我會進行一些簡單的評測,如果有其他模型你們想了解的,也可以私信我。
通過以上的比較,我認為LLama2和通義千問Qwen絕對是開源模型界的領(lǐng)導(dǎo)者。無論是社區(qū)活躍度,參數(shù)規(guī)模支持程度,還是更新頻率,這兩個模型都領(lǐng)先于其他的開源模型。我建議大家在學(xué)習(xí)和研究的時候選擇這兩個模型。
參考資料:
https://github.com/wgwang/awesome-LLMs-In-China?tab=readme-ov-file
https://github.com/eugeneyan/open-llms
https://chat.lmsys.org/?leaderboard
-
不同參數(shù)規(guī)模模型效果對比
我們來看一下,對于同一個問題,在同一個模型下不同參數(shù)規(guī)模的回答效果如何。
我們選擇了通義千問模型,從左到右依次是4B模型,7B模型,72B模型。
比較可以看出,4B模型未能給出答案,而7B模型提供了步驟說明和代碼。72B模型不僅給出了步驟說明和代碼,而且其步驟更具結(jié)構(gòu)化,標題加粗,使用分號等,使人更容易理解。它給出的代碼也更優(yōu)秀,首先在數(shù)據(jù)部分采用了類似占位符的形式,便于我們填充。其次,它在餅圖上提供了標題和數(shù)據(jù)格式化。
通過比較,我們可以得出這樣的結(jié)論:對于同一個模型,參數(shù)越大,模型的效果通常越好。
那么,對于不同模型呢?會出現(xiàn)越級的情況嗎?文章結(jié)尾有彩蛋
當(dāng)然,越大規(guī)模的參數(shù),對內(nèi)存需求越大。
-
內(nèi)存不夠怎么辦
模型參數(shù)的規(guī)模與內(nèi)存(實際上指的是顯存)強烈相關(guān),模型的參數(shù)需全部加載到內(nèi)存中才能進行推理。簡單地說,1B參數(shù)大約需要4GB,那么7B的模型需要28G的內(nèi)存,70B的模型則需要280G的內(nèi)存。算下來,24G內(nèi)存的4090顯卡都甚至無法運行7B的模型,這還如何玩!
先別急,內(nèi)存問題可以通過模型量化來解決。量化是通過降低參數(shù)的精度來減少對內(nèi)存的需求。量化后的7B模型僅需3.8G,足以輕松在任何一臺PC上運行。
從Ollama支持的模型庫中可以看出,大型模型在量化后對內(nèi)存的需求,如下表:
模型 參數(shù) 對內(nèi)存需求 LLama2 7B 7B 3.8G LLama2 13B 13B 7.3G LLama2 70B 70B 39G 但是,量化也會帶來新的問題,不同程度的參數(shù)精度損失會增加模型的困惑度(俗稱:變傻)。因此,我們需要找到一個平衡,選擇最經(jīng)濟且最可用的量化后的模型。
我們可以在HuggingFace上找到量化模型,一般開源模型都會說明量化后的困惑度,并推薦大家選擇合適的量化模型。如果你對此感興趣,可以跳到附錄查看
-
沒有顯卡怎么辦
感謝萬能的Docker,借助Ollama的Docker鏡像,我們可以輕松地在CPU上運行應(yīng)用程序,無需進行任何復(fù)雜的配置。即使沒有高端顯卡,我們也無需擔(dān)心。
親測,在Macbook Air M1上使用docker運行,如下圖:
參考地址:https://ollama.com/blog/ollama-is-now-available-as-an-official-docker-image
-
推理速度達到多少算可用
Reddit上的一項調(diào)研。多數(shù)人認為7-10 Token/s是一種可用的速度。這個速度大概等于每秒5-7.5個單詞,因為一般來說,1個單詞等于1.3個Token。我認為10 Token/s是一個可用的臨界點。然而,也有一些人持極端觀點,他們認為每秒1個Token也是可以接受的。這個討論非常有趣,有興趣的人可以去看看。
Reddit關(guān)于Token速度的討論:https://www.reddit.com/r/LocalLLaMA/comments/162pgx9/what_do_yall_consider_acceptable_tokens_per/
-
使用llama.cpp測試模型的推理速度
筆者用兩臺電腦測試,配置如下:
- MacBook Air:16G內(nèi)存,M1芯片
- Mac Studio:128G內(nèi)存,M1 ultra芯片,性能≈英偉達3090
測試結(jié)果如下:
電腦 模型參數(shù) Token MacBook Air 4B 19.9 T/s MacBook Air 7B 12.5 T/s Mac Studio 4B 83.6 T/s Mac Studio 7B 71.2 T/s Mac Studio 70B 13.7 T/s
從測試結(jié)果來看,16G內(nèi)存的MacBook Air能夠輕松運行7B模型。而對于Mac Studio,它足以應(yīng)對市場上的任何一個開源模型
-
選擇對應(yīng)語種的模型
在中文環(huán)境下,建議選擇國內(nèi)的模型,而不是國外的中文版本。目前,支持中文的模型較少。如果對應(yīng)的模型不支持中文,一種建議的方法是把問題翻譯成英文進行提問,獲取答案后再將答案翻譯成中文。當(dāng)然,如果你的英文能力強,可以忽略這個建議。從目前的情況來看,中文大模型的整體效果不如英文模型,這一方面是因為訓(xùn)練語料相對較少;另一方面,中文的復(fù)雜性較高,想要取的更好的效果比較困難。
-
選擇專用模型
一般用途選擇通用模型,聊天用途選擇Chat模型,編碼等用途選擇專用模型。不同的模型訓(xùn)練的語料是不同的,各有其優(yōu)勢。根據(jù)用途選擇對應(yīng)的模型,可以達到最好的效果。
在考慮擴展性時,我們需要考慮兩個方面:運行環(huán)境的適應(yīng)性和有沒有優(yōu)秀的應(yīng)用框架。
-
運行環(huán)境的適配性
Ollama是一個優(yōu)秀的開源項目,提供模型基座,屏蔽環(huán)境差異,可以在Windows、MacOS、Linux上運行,甚至可以在無GPU的情況下,僅用CPU運行。
Ollama支持服務(wù)器端,通過使用Rest API接口,向外部提供統(tǒng)一的大模型服務(wù)。這些接口使上層應(yīng)用可以輕松接入,極大地提高了系統(tǒng)的可用性。
目前,Ollama支持的模型眾多,主流的開源模型都可以在Ollama庫中找到。此外,Ollama還支持自定義模型。你可以從HuggingFace上下載更多模型,然后加載到Ollama中,這使得Ollama的應(yīng)用更加豐富。
!https://prod-files-secure.s3.us-west-2.amazonaws.com/6cdb6123-fe4f-4c2d-888c-dcc64931d8b1/dbdfb663-a517-4f2c-a691-9a9372a11397/Untitled.png
Ollama模型庫:https://ollama.com/library
-
是否支持優(yōu)秀的應(yīng)用框架
目前最優(yōu)秀的應(yīng)用框架就是Langchain,后面我們會單獨介紹Langchain。好消息是Langchain支持了Ollama,這意味著只要Ollama提供支持的模型,Langchain就可以支持。以下是Langchain集成Ollama的示例
從代碼中,我們可以看出,Langchain支持Ollama的調(diào)用。
參考地址:https://python.langchain.com/docs/integrations/chat/ollama/