ChatGPT 生態,毀滅人性的一次開源!
theme: fancy
原創:小姐姐味道(微信公眾號ID:xjjdog),歡迎分享,非公眾號轉載保留此宣告。
很多人可能對百度文心一言
釋出會的現場記憶猶新。幾百億身價的老闆,像小學生一樣彙報自己的 PPT,充滿了忐忑。
其實大可不必,命令列更加富有科技感,也更有說服力。不管對程式設計師來說還是圍觀的群眾來說,能幹什麼並不重要,實際輸出什麼才是大家最關心的。
畢竟把人當傻子的年代慢慢過去了。
這也難怪。ChatGPT 的模型越來越完善,資本家們都很著急。以往,打著開源的遮羞布,他們也可以擁有自己的自主產權。但沒想到 ChatGPT 這麼不識好歹,竟然將自己的核心技術夾的這麼緊。
如果 ChatGPT 的能力,能夠離線,能夠執行在任何小型裝置上,那麼擁有獨立人格的智慧單元就會變成現實。這種設想,比集中化的大腦更有誘惑力。
這裡,就有一個。你可以下載下來實際編譯執行在在自己的MacBook上。
llama.cpp
http://github.com/xjjdog/llama.cpp。文末原文連線也可以直達!
這是一個 C++ 實現的 LLaMA 對話庫。Java 和 Python的同學也不要被嚇倒,它的使用超級簡單。如果你遇到什麼問題,歡迎到公眾號(xjjdog)提問。
熱門問題:
-
本倉庫只是一點點程式碼。想要完整執行,需要 下載模型。
-
輸出效能優化: http://github.com/ggerganov/llama.cpp/issues/64
-
建立一個
llama.cpp
logo: http://github.com/ggerganov/llama.cpp/issues/105
描述
和ChatGPT對比起來,llama的好處是:使用普通的Macbook,Linux,甚至Docker、樹莓派等,就可以執行類比於 ChatGPT 的對話模型。
-
純C++程式碼,程式碼少,而且沒有任何依賴
-
Apple 的M1 晶片也可以跑,而且有效能優化
-
x86架構擁有 AVX2 支援
-
在 CPU 上就能跑,不需要 GPU
支援的平臺:
-
[X] Mac OS
-
[X] Linux
-
[X] Windows (via CMake)
-
[X] Docker
模型下載地址:
``` curl -o ggml-alpaca-7b-q4.bin -C - http://gateway.estuary.tech/gw/ipfs/QmQ1bf2BTnYxq73MFJWu1B7bQ2UD6qG7D7YDCxhTndVkPC curl -o ggml-alpaca-7b-q4.bin -C - http://ipfs.io/ipfs/QmQ1bf2BTnYxq73MFJWu1B7bQ2UD6qG7D7YDCxhTndVkPC curl -o ggml-alpaca-7b-q4.bin -C - http://cloudflare-ipfs.com/ipfs/QmQ1bf2BTnYxq73MFJWu1B7bQ2UD6qG7D7YDCxhTndVkPC
```
那麼,這個工具要怎麼用呢?超級簡單。
首先,將程式碼clone到本地。
``` git clone http://github.com/ggerganov/llama.cpp.git
```
然後,進入到llama.cpp目錄。
``` cd llama.cpp
```
編譯程式碼。
``` make
```
生成後的檔名稱叫做main
,以後,我們只需要執行 ./main
即可。
最重要的一步,你需要下載一個數據模型。否則 llama 是不知道載入什麼資料來進行計算的。為了測試,我們下載一個最小的。這個檔案大小有3.9G,你需要相應大小的記憶體預留。
``` curl -o ggml-alpaca-7b-q4.bin -C - http://gateway.estuary.tech/gw/ipfs/QmQ1bf2BTnYxq73MFJWu1B7bQ2UD6qG7D7YDCxhTndVkPC
```
最後,我們就可以指定這個模型,來進行對話輸出了。
``` ./main -m ./ggml-alpaca-7b-q4.bin -p "Will the future be female?" -n 512 --color
```
-
m 指定的是模型的位置。
-
p 是對話或者問題。比如這裡,我問我是否能夠吃狗肉!
-
n 指定的是輸出的文字數量,預設是128。
-
--color 輸出彩色內容。
下面是一些輸出。首先會將輸入進行切分,然後生成內容,最後將耗時列印。
``` % ./main -m ./ggml-alpaca-7b-q4.bin -p "Can i eat dog?" -n 512 --color
No you cannot! Eating dogs is illegal and against the law. It would be considered animal abuse, so please don’t do it under any circumstances…unless you are a cannibal
main: mem per token = 14368644 bytes main: load time = 743.12 ms main: sample time = 455.50 ms main: predict time = 46903.35 ms / 91.79 ms per token main: total time = 48455.85 ms
```
互動模式
如果你想要和ChatGPT一樣有對話能力的話,也是可以的。需要加上 -i
引數,當然,也可以使用 -r User:
引數輸出一個提示符。
比如:
``` ./main -m ./ggml-alpaca-7b-q4.bin -p "Will the future be female?" -n 128 --color -i -r "User:"
```
授課模式
所謂授課模式,就是提供一個按照順序輸出的檔案列表,讓電腦按照順序把答案輸出。如果liyanhong使用這種模式,而不是ppt,估計效果會更好。
比如:
``` ./main -m ./models/13B/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt
```
記憶體需求
記憶體的需求取決於你使用的模型。我們的測試使用的都是最簡單的模型,所以4GB就夠了。如果想要更精細的輸出,你的記憶體需要更大一些。
| model | original size | quantized size (4-bit) | | --- | --- | --- | | 7B | 13 GB | 3.9 GB | | 13B | 24 GB | 7.8 GB | | 30B | 60 GB | 19.5 GB | | 65B | 120 GB | 38.5 GB |
Android
你甚至可以在Android上跑起來。如果你的記憶體夠大,那麼完全可以做一個小型對話機器人,還是本地的!
後面如果解決了部分載入的問題,Android的嵌入式應用會非常方便。
End
人類有用的知識庫看起來很多,但其實訓練下來,最多也不會超過TB級別。當然也不能這麼說,計算機也是由 0 和 1 組成的,但現在它幾乎什麼都能做。但無疑,除了訓練演算法,對於使用者來說,模型才是最重要的。
把這些有限的資料預裝在小型的裝置中,這就會成為最小的智慧體。在資料中加入人格(目前的Chat系列是可以做到的),這個智慧體就可以充當我們的祕書、代言人,甚至男女朋友。
嗯,一切皆有可能。從現在開始注意養生,活的長一點點,來看看未來世界的樣子!
作者簡介:小姐姐味道 (xjjdog),一個不允許程式設計師走彎路的公眾號。聚焦基礎架構和Linux。十年架構,日百億流量,與你探討高併發世界,給你不一樣的味道。我的個人微信xjjdog0,歡迎新增好友,進一步交流。
推薦閱讀:
3. 藍芽如夢
4. 殺機!
5. 失聯的架構師,只留下一段指令碼
6. 架構師寫的BUG,非比尋常
7. 有些程式設計師,本質是一群羊!
本文正在參加 人工智慧創作者扶持計劃
- ChatGPT 生態,毀滅人性的一次開源!
- 能夠公司呆下去,靠的是一份迷茫!
- 你在公司混的差,可能和組織架構有關!
- 再搞CRUD,就真的變成廢物獠!
- 來來來,快速擼 Redis 一遍!
- 分庫分表,可能真的要退出歷史舞臺了!
- 讓人噁心的多執行緒程式碼,效能怎麼優化!
- 架構師:比起 404,我們更怕 200!
- 完全使用Linux替換Windows之後,我覺得自己非常愚蠢
- sudo,代表了Linux的絕對霸權!
- 讀懂HikariCP一百行程式碼,多執行緒就是個孫子!
- 看到就是賺到!當 LinkedList 不是列表時,速度快的兔子都追不上!
- 讀懂HikariCP一百行程式碼,多執行緒就是個孫子!
- 老闆覺得冷,服務如何縮容?
- 這些傻白甜的Linux命令,不會有人教你!
- 這些傻白甜的Linux命令,不會有人教你!
- 使用systemd,把服務裝進 Linux 心臟裡~
- 不是所有有才華的人,都想當領導!
- 這些老系統程式碼,怎麼寫的這麼爛?
- 這些老系統程式碼,是豬寫的麼?