自从2023年11月份OpenAI 发布ChatGPT以来, 人们对于这种能够自动生成文字、具备一定的推理能力的人工智能技术非常震惊之余, 也慢慢开始在各个行业进行探索和应用, 但是, ChatGPT 技术本身并不开源,而我们由于种种原因, 又难以购买价格不断增长的GPU,因此, 对于很多开发者来说, 体验ChatGPT固然不容易,而使用一些开源大模型, 例如Meta 公司的开源LLaMA模型, 也经常受限于自己的电脑GPU配置,经常望大模型而兴叹。
现在,好消息来了。2024年2月21日, 谷歌发布了最新的开放大语言模型Gemma, 计算能力强大, 而且开放了模型的参数调整,实在值得一试。
本文推荐一种最为快捷,无需GPU也可以在本地搭建的开语言模型运行方法, 对于大语言模型有兴趣的同学们,值得一试哦!
这个工具名称就是Ollama,一个可以在本地运行大语言模型的AI工具, 看,多么可爱的一只小神兽~~!!!
系统要求作为运行AI 大语言模型的机器, 自然要求要比运行一般应用程序要高一些。 那些普通办公用途的电脑/笔记本可能运行起来有些吃力。
下面是Ollama 官方推荐的配置:
CPU : 推荐11代 Intel CPU 或者 AMD Zen4-based 及以上内存: 16G 内存及以上内存,在运行7B参数等模型时会有更好的体验GPU:不强制要求有, 但是有GPU 能显著增强推理速度。硬盘: 50G以上Ollama官方对于系统要求的总结是:
为了获得 ollama 和 ollama-webui 的最佳性能,请考虑使用具有支持 AVX512 或 DDR5 的 Intel/AMD CPU 的系统,以提高计算速度和效率、至少 16GB RAM 和大约 50GB 可用磁盘空间。
GPU 不是必需的,但建议使用 GPU 以提高性能,特别是对于 7B 参数级别或更高级别的模型。 特别大型或支持量化的 GPU 被认为对于高效运行 13B 参数等大型模型至关重要,同时要牢记不同模型大小和量化级别的 VRAM 要求。
我本人使用的笔记本是前两年买的MacBook Pro, Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz 处理器, 32G 内存, 运行本文中的示例代码, 感觉还是有点慢, 不过也能体验一把流行的LLM 模型。
来感受一下我的运行速度:
在我的这个例子里, 我首先问了一个问题:
“教我一个能让我女朋友开心的笑话”
这个问题,Ollema 运行 Gemma 模型,看起来回答的很快,实际上这不是我第一次提问这个问题了, 第一次提问这个问题, Gemma 回答的速度是很慢的。
接着,我又提问了一个菜谱“糖醋排骨”的做法, Gemma的回复速度略快, 但是质量不是太好, 没有区分排骨和猪肉。
好了,下面开始安装吧。
安装安装Ollama是很简单的,直接登陆到官方网站(https://ollama.com/),点击下载按钮:
目前Ollama提供了Mac、Linux 和Windows 三种操作系统的安装包, Mac和Linux的支持比较完全, 而Windows目前还处在预览版本。
目前Ollama还推出了Docker 镜像(https://hub.docker.com/r/ollama/ollama),允许在Docker 之上运行 Ollama, Ollama在Docker上调用开源大语言模型Llama。
而且在Docker 上运行Ollama ,也支持仅使用CPU 或者加载英伟达显卡(Nvidia GPU)
安装完成之后, 在命令行运行相应的模型就好了
运行模型目前Ollama 做的比较好的是,提供了一个类似Docker 的运行体验, 不需要其他工具还得自己去下载LLM模型, 只需要指定一个模型名称,就可以在本地运行大模型。
例如:
ollama run llama2就是这么简简单单一句话,ollama 就在后台把运行大模型的事情给做了:
如同Docker 一样, Ollama在后台,首先检查本地有没有下载过这个模型, 如果没有,就发起ollama pull 命令,下载大模型文件。
目前大模型文件都比较大, 下载的话需要一定时间;有时候可能还需要一点魔法才行。
耐心等待文件下载完成之后, 就可以愉快的提问了。
目前, Ollama 提供的模型文件有:
在本地运行Gemma 模型打开Ollama网站的模型页面(https://ollama.com/library), 进入Gemma 模型页面,可以看到对于Gemma 模型的描述。
Gemma 模型有两个, 有2b和7b两种参数类型, 分别对应的命令为:
ollama run gemma:2bollama run gemma:7b如果你的电脑配置不是很高,建议运行2b版; 如果觉得配置还可以(起码内存大于16G), 就可以尝试7b版本。
我在本地运行2b的情况:
问了几个问题,感觉这个‘2/b’版本, 不是很聪明的样子:
例如, 我问:
小明今年10岁了, 比他爸爸小20岁, 小明的爸爸今年多大了
就没有得到正确的回答。
但是,如果问一些英语的问题,结果还可以, 当然这两个问题是官方文档中提到过的:
In Bash, how do I list all text files in current directory?
回复还是可以的:
>>> In Bash, how do I list all text files in current directory?```bashls -l```**Explanation:*** `ls -l` stands for "list files and folders with long listing".* `-l` indicates the long listing format.* `.` represents the current directory.再来体验一下7b的版本:
一些编程的问题,还是可以的:
Create an array with 5 items and print to the console. Do this in Rust
答复:
```rustlet my_array = vec![1, 2, 3, 4, 5];println!("{:?}", my_array);```Output:```[1, 2, 3, 4, 5]```还问了一个关于西红柿炒鸡蛋的做法, 属于菜谱, Gemma 想了一会,给出的答案还算是靠谱:
还要求它给我讲一个笑话:
提供一些关于鸡蛋炒西红柿的做法结果, 我感觉这个答案有点‘老司机开车’的味道,自己看吧:
Ollama的Web 界面Ollama除了上面的在命令行的提问之外, 还可以通过Web界面来运行和提问,这样更加友好一些,Web UI 是通过Docker 来启动的:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main下载的东西比较多, 等待下载完成:
打开本地页面,首先要创建一个账号,然后在首页选择一个已经下载的大模型:
之后就可以提问了。页面的功能和命令行的差不多,在此就不展示了。
总结除了命令行, Web 界面之外,Ollama 还提供了Rest API的形式, 可以供开发者用来开发自己的应用, 这里就不再介绍了。
人工智能时代, 还是多多学习一点大模型的东西吧, 经常刷新一下自己的知识库!