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 心脏里~
- 不是所有有才华的人,都想当领导!
- 这些老系统代码,怎么写的这么烂?
- 这些老系统代码,是猪写的么?