何為GPT4All
GPT4All 官網(wǎng)給自己的定義是:一款免費(fèi)使用、本地運(yùn)行、隱私感知的聊天機(jī)器人,無需GPU或互聯(lián)網(wǎng)。
從官網(wǎng)可以得知其主要特點(diǎn)是:
- 本地運(yùn)行(可包裝成自主知識產(chǎn)權(quán)??)
- 無需GPU(窮人適配)
- 無需聯(lián)網(wǎng)(某國也可運(yùn)行)
- 同時(shí)支持Windows、MacOS、Ubuntu Linux(環(huán)境要求低)
- 是一個(gè)聊天工具
模型介紹
GPT4All支持多種不同大小和類型的模型,用戶可以按需選擇。
序號 | 模型 | 許可 | 介紹 |
---|---|---|---|
1 | ggml-gpt4all-j-v1.3-groovy.bin | 商業(yè)許可 | 基于GPT-J,在全新GPT4All數(shù)據(jù)集上訓(xùn)練 |
2 | ggml-gpt4all-113b-snoozy.bin | 非商業(yè)許可 | 基于Llama 13b,在全新GPT4All數(shù)據(jù)集上訓(xùn)練 |
3 | ggml-gpt4all-j-v1.2-jazzy.bin | 商業(yè)許可 | 基于GPT-J,在v2 GPT4All數(shù)據(jù)集上訓(xùn)練。 |
4 | ggml-gpt4all-j-v1.1-breezy.bin | 商業(yè)許可 | 基于GPT-J,在v1 GPT4All數(shù)據(jù)集上訓(xùn)練 |
5 | ggml-gpt4all-j.bin | 商業(yè)許可 | 基于GPT-J,在v0 GPT4All數(shù)據(jù)集上訓(xùn)練 |
6 | ggml-vicuna-7b-1.1-q4_2.bin | 非商業(yè)許可 | 基于Llama 7b,由加州大學(xué)伯克利分校、加州大學(xué)醫(yī)學(xué)院、斯坦福大學(xué)、麻省理工大學(xué)和加州大學(xué)圣地亞哥分校的團(tuán)隊(duì)訓(xùn)練。 |
7 | ggml-vicuna-13b-1.1-g4_2.bin | 非商業(yè)許可 | 基于Llama 13b,由加州大學(xué)伯克利分校、加州大學(xué)醫(yī)學(xué)院、斯坦福大學(xué)、麻省理工大學(xué)和加州大學(xué)圣地亞哥分校的團(tuán)隊(duì)訓(xùn)練。 |
8 | ggml-wizardLM-7B.q4_2.bin | 非商業(yè)許可 | 基于Llama 7b,由微軟和北京大學(xué)訓(xùn)練。 |
9 | ggml-stable-vicuna-13B.q4_2.bin | 非商業(yè)許可 | 基于Llama 13b和RLHF,由Stable AI訓(xùn)練 |
GPT4All的模型是一個(gè) 3GB - 8GB 的??文件,目前由Nomic AI進(jìn)行維護(hù)。
nomic.ai 公司
模型的維護(hù)公司nomic.ai是怎樣一家公司,它為什么要免費(fèi)開發(fā)和維護(hù)這些模型呢?它在官網(wǎng)上是這樣寫的:
現(xiàn)在,由于人工智能的興起,我們的世界正在發(fā)生巨大的變化?,F(xiàn)代人工智能模型在互聯(lián)網(wǎng)規(guī)模的數(shù)據(jù)集上進(jìn)行訓(xùn)練,并以前所未有的規(guī)模制作內(nèi)容。它們正在迅速滲透到地球上的每一個(gè)行業(yè)——從國防、醫(yī)藥、金融到藝術(shù)。
對這些模型的訪問由少數(shù)資金充足、越來越隱秘的人工智能實(shí)驗(yàn)室控制。如果這種趨勢持續(xù)下去,人工智能的好處可能會(huì)集中在極少數(shù)人手中。
我們的 GPT4All 產(chǎn)品實(shí)現(xiàn)了前所未有的AI訪問,讓任何人都能從AI技術(shù)中受益,而不受硬件、隱私或地緣政治限制。
一句話來說:擔(dān)心AI技術(shù)被少數(shù)人控制,并且對此付諸實(shí)際行動(dòng)。
LLM大語言模型
gpt4all使用的模型是大語言模型(Large Language Model),它采用深度學(xué)習(xí)方法來理解和生成自然語言文本。這些模型通過在大量文本數(shù)據(jù)上進(jìn)行訓(xùn)練,學(xué)習(xí)到豐富的語言知識和基于上下文的語義理解。一旦訓(xùn)練完成,大語言模型可以用來完成問題回答、文本生成、語言翻譯等多種任務(wù)。
最常用的大語言模型架構(gòu)是Transformer,它由Google Brain的一個(gè)團(tuán)隊(duì)在2017年提出。這種架構(gòu)采用自注意力機(jī)制(Self-Attention Mechanism),能夠捕捉文本中長距離的依賴關(guān)系。隨著模型大小和訓(xùn)練數(shù)據(jù)量的增加,大語言模型的性能也在不斷提高。
例如,OpenAI發(fā)布了如GPT(Generative Pre-trained Transformer)等一系列大語言模型。GPT-3是其中的一個(gè)代表性模型,擁有1750億個(gè)參數(shù),表現(xiàn)出了強(qiáng)大的生成能力和多任務(wù)學(xué)習(xí)能力。
GPT-J語言模型
gpt4all使用的語言模型主要分兩類:GPT-J和LLaMA。
GPT-J 是一個(gè)在 Pile 上訓(xùn)練的 60 億參數(shù)開源英語自回歸語言模型。由 EleutherAI 在2021年發(fā)布,它遵循了GPT-2的架構(gòu),在發(fā)布時(shí),它是世界上最大的公開可用的 GPT-3 風(fēng)格語言模型。GPT-J的任務(wù)表現(xiàn)和OpenAI的GPT-3版本非常相似,甚至在代碼生成水平上還要略勝一籌。
最新版本GPT-J-6B是基于一個(gè)開源的825GB精選語言建模數(shù)據(jù)集The Pile生成。
LLaMA語言模型
LLaMA(Large Language Model Meta AI)是一種大語言模型,它是由Meta AI研究團(tuán)隊(duì)2023年開發(fā)的,用于自然語言處理任務(wù)。LLaMA 使用 transformer 架構(gòu)。
LLaMA 的開發(fā)人員曾報(bào)告說,LLaMA使用130億參數(shù)的模型在大多數(shù)NLP基準(zhǔn)測試中的性能超過了更大的GPT-3(具有1750億參數(shù))
本地部署的環(huán)境要求:AVX
本地部署的環(huán)境要求很容易達(dá)成,如下:
- CPU支持AVX
- 4GB內(nèi)存
AVX是Intel在2011年推出的一種指令集擴(kuò)展,全稱是Advanced Vector Extensions,用于加速浮點(diǎn)運(yùn)算和整數(shù)運(yùn)算。它擴(kuò)展了SSE指令集,可以同時(shí)對多個(gè)數(shù)據(jù)進(jìn)行操作。帶有AVX的CPU可以獲得很大的性能提升,特別是在圖像處理、科學(xué)計(jì)算等方面。支持AVX的CPU可以利用AVX指令集和YMM寄存器來執(zhí)行更強(qiáng)大和更高效的向量化運(yùn)算,從而獲得更高的性能。
AVX2完全兼容AVX指令集并有所擴(kuò)展。所以,AVX2特性是向過去兼容AVX的,具有AVX2特性的CPU可以運(yùn)行使用AVX指令集編譯的代碼。
要想了解自己的CPU是否支持AVX,可以使用如下命令:
Linux下:
cat /proc/cpuinfo | grep avx
MacOS下:
sysctl -a | grep machdep.cpu|grep AVX
如果輸出中包含AVX字樣,說明處理器支持AVX技術(shù);如果沒有輸出,則說明當(dāng)前主機(jī)不支持AVX技術(shù)。
本地部署
本地部署有兩種方式可選:
- 直接運(yùn)行官方提供的二進(jìn)制包(需要使用最新的系統(tǒng))
- 源代碼本地編譯
有AVX2支持
官方提供的bin的編譯環(huán)境版本非常高,以至于在老一些的系統(tǒng)上均無法運(yùn)行,所以如果你的系統(tǒng)不夠新,推薦使用源碼編譯的方式。
以支持AVX2的蘋果電腦為例:
蘋果電腦:系統(tǒng)需要macOS 12.6以上
下載 https://gpt4all.io/installers/gpt4all-installer-darwin.dmg 運(yùn)行即可
只有AVX支持
git clone --depth=1 https://github.com/zanussbaum/gpt4all.cpp.git
cd gpt4all.cpp
mkdir build; cd build
cmake -D LLAMA_NO_AVX2=1 -D LLAMA_NO_FMA=1 ..
make
wget "https://the-eye.eu/public/AI/models/nomic-ai/gpt4all/gpt4all-lora-quantized.bin"
./chat -m ./gpt4all-lora-quantized.bin
輸出
main: seed = 1683710151
llama_model_load: loading model from './gpt4all-lora-quantized.bin' - please wait ...
llama_model_load: ggml ctx size = 6065.35 MB
llama_model_load: memory_size = 2048.00 MB, n_mem = 65536
llama_model_load: loading model part 1/1 from './gpt4all-lora-quantized.bin'
llama_model_load: .................................... done
llama_model_load: model size = 4017.27 MB / num tensors = 291
system_info: n_threads = 4 / 8 | AVX = 1 | AVX2 = 0 | AVX512 = 0 | FMA = 0 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 |
main: interactive mode on.
sampling parameters: temp = 0.100000, top_k = 40, top_p = 0.950000, repeat_last_n = 64, repeat_penalty = 1.300000
== Running in chat mode. ==
- Press Ctrl+C to interject at any time.
- Press Return to return control to LLaMA.
- If you want to submit another line, end your input in '\'.
>
沒有AVX支持
git clone --depth=1 https://github.com/zanussbaum/gpt4all.cpp.git
cd gpt4all.cpp
make
wget "https://the-eye.eu/public/AI/models/nomic-ai/gpt4all/gpt4all-lora-quantized.bin"
./chat -m gpt4all-lora-quantized.bin
實(shí)驗(yàn)記錄
下面實(shí)驗(yàn)下gpt4all的效果。
打個(gè)招呼,10分鐘就得到了回復(fù),挺好:
> hello
Hello World!
問個(gè)天文問題(雙機(jī)測試):
> How long does it take for the moon to orbit once?
The Moon takes 27 days, 8 hours and 43 minutes (or about one month) to complete its orbital cycle around Earth. This is because of tidal locking which keeps only half of the lunar surface permanently illuminated by sunlight.
> How long does it take for the moon to orbit once
The time taken by Moon to complete one revolution around Earth is called lunar day and its duration depends on various factors such as distance between Sun, Moon &Earth. On average Lunar Day lasts 27 days but can vary from 24 hours (lunation) or even less than a hour in some cases due to the elliptical orbit of moon around Earth.
AI思考了半個(gè)小時(shí)后給出了答案,大山侃得不錯(cuò),科普尚需調(diào)教。
問個(gè)編程問題:
> Write a helloworld program using rust
\`\`\`rust
fn main() {
println!("Hello, world!"); // Outputs "hello" to stdout and exits with status 0 (success)
}
\`\`\`
兩個(gè)小時(shí)給出答案。。。
最后來個(gè)中文問題:
> 為什么哪里都有”存在”而沒有絕對的虛無?
因?yàn)椤按嬖凇笔且环N感知,所以我們能看到其中,但不會(huì)說明那個(gè)物體或者事件完全停止。這樣就算了!
> 為什么哪里都有”存在”而沒有絕對的虛無?
因?yàn)椤按嬖凇笔且环N概念,不能用于表示真實(shí)性或物理地位。 這個(gè)概快側(cè)面就像說:絕對的虛無可以有相應(yīng)的透明度和形狀,而“存在”是一種概念,不能用于表示真實(shí)性或物理地位。 因此,當(dāng)人們想象出了絕對的虛無時(shí),他們就會(huì)逃過這個(gè)問題,而且也是為了保持概念中心主義和不能用于物理地位。
這是個(gè)困難的問題,計(jì)算機(jī)計(jì)算了幾個(gè)小時(shí)才輸出答案,不過還沒有超過750萬年。。。[1]
總結(jié)
gpt4all在優(yōu)秀模型的支持下,也是相當(dāng)厲害的。但沒有高配服務(wù)器的話,由于性能問題,又不好弄到生產(chǎn)環(huán)境中提供實(shí)際服務(wù)。大家有什么好的解決方法,歡迎評論區(qū)留言。
(GPU服務(wù)器會(huì)火一波嗎?)文章來源:http://www.zghlxwxcb.cn/news/detail-438276.html
附錄
[1]. 750萬年
在《銀河系漫游指南》中,為了回答關(guān)于“生命,宇宙以及萬事萬物的終極問題”的答案,超級計(jì)算機(jī)“深思”運(yùn)行了整整750萬年才計(jì)算出最終的答案。文章來源地址http://www.zghlxwxcb.cn/news/detail-438276.html
Reference
- https://en.wikipedia.org/wiki/LLaMA
- https://en.wikipedia.org/wiki/EleutherAI#The_Pile
- https://en.wikipedia.org/wiki/Transformer_(machine_learning_model)
- https://www.eleuther.ai/
- https://gpt4all.io/
- https://github.com/facebookresearch/llama
- https://github.com/nomic-ai/gpt4all
到了這里,關(guān)于跑在筆記本里的大語言模型 - GPT4All的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!