ChatGPT 生態,毀滅人性的一次開源!

語言: CN / TW / HK

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,歡迎添加好友,進一步交流。

推薦閲讀:

1. 玩轉Linux
2. 什麼味道專輯

3. 藍牙如夢
4. 殺機!
5. 失聯的架構師,只留下一段腳本
6. 架構師寫的BUG,非比尋常
7. 有些程序員,本質是一羣羊!

本文正在參加 人工智能創作者扶持計劃