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. 有些程式設計師,本質是一群羊!

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