缘起

自从 ChatGPT 之后,大语言模型犹如雨后春笋般出现在我们的生活中。微软直接抱 OpenAI 的大腿,将 ChatGPT 引入到 Microsoft Edge 浏览器和 Copilot 中,直接就可以使用;Google 一开始推出的是 Bard ,后来又推出更出色且免费的 Gemini Pro,并且免费可用 API ;前不久又有一个新推出的大语言模型——Claude ,从目前的使用体验来说,这些模型完成日常的写作和文书工作已经完全没问题,不仅能够快速相应,还非常聪明。

对于平时工作就能方便访问网络的朋友而言,ChatGPT、Gemini、Claude 确实方便好用,AI 大模型还能访问网络资源,着实不错。不过我们希望能够使用到开源的大语言模型,并且能够在本地使用,直接使用自己的笔记本就能让自己的计算机回答常见的问题,提供文章写作思路。从某种意义上来说,就是提供一个轻量级的人工智能助手,而更加复杂的内容再交由 ChatGPT,Gemini 亦或是 Claude 处理。于是乎我在网络上苦苦寻找了很多相关的项目,直到 Ollama 的出现,这个愿望算是真正达成了。

简介

我们先大致了解下大语言模型,这个概念其实并没有非常正式的定义,一般认为,大语言模型是一个通用的模型,由数以十亿或者更多数量级参数很多朋友不理解参数,我们可以用最简单的方法理解,就是用大量的权重去控制神经网络反馈)进行深度学习后得到的。普遍认为大语言模型是在2018年左右出现的,也就是我们现在知道的 OpenAI 公司推出的首个 GPT ,后来随着指令微调,出现了后续的人工智能大语言模型 GPT-3 ,到现在最广为人知的 GPT-4 。

在同一个赛道,不同时间点涌现出很多大语言模型,包括且不限于 Meta(前身是 Facebook) LLaMa,Google 的 PaLM,Gemini,国内大学推出的 ChatGLM,MOSS 等等。

显卡——一条出乎预料又在情理之中的赛道

人工智能大语言模型训练中用得最多的硬件,想必不用我多说,那就是显卡,而且神奇的是,这个显卡最好用的、最高效的、兼容性最好的,就是 Nvidia,对,就是 Linus 竖中指的那个。

有趣的是,训练大语言模型最好用、最高效、最方便配置的操作系统还是 Linux 。

好的,回到正题,为什么 Nvidia 成为最好用的硬件设备?最主要的原因,我认为是显卡具有更高效的并行运算性能。我们都知道 Nvidia 从前的主要业务是什么,就是卖显卡,我们平时玩游戏都需要它,没有显卡,估计很多游戏都跑不流畅,从前的 PS3上面使用的是 NVIDIA 显卡,MacBook 也有一段时间用的是 Nvidia 显卡,显卡的特点就是利用小核心跑大规模矩阵和向量计算,而且都是并行运行,不需要像中央处理器(CPU)那样需要调度,并行效率非常高。另外就是显卡的硬件加速能力,显卡非常适合进行浮点运算和线性代数运算。当然啦,CPU 也可以做以上的这些运算,但是因为 CPU 的工作主要是通用运算,所以核心数不会那么多,另外就是 CPU 需要调度,并不能将非常多的工作用在一个方面,那样很多软件就不响应了,也不会专门为浮点运算和线性代数优化,从我们的目的出发来看,是要弱于 GPU 的。

有谁能够想象到,在2022年以后,Nvidia 的显卡逐渐成为大国较量中的战略储备。当然,这又是另一个故事了。

另一个故事

中美贸易战以来,Nvidia 显卡对中国就开始禁售那些高端型号,主要是人工智能的加速卡,在这条赛道,我们国家的主要策略是弯道超车(目前还没有超,还在追赶)。弯道超车最好的例子是 RISCV 处理器,是的,即 x86、ARM 架构之后的第三大 CPU 架构,目前作为一款通用处理器而言,性能还差很多,不过 RV 的优势在于可以在有限的硅圆上堆核心,而处理矢量运算的 rvv 指令集正好对应的就是 Nvidia 的 CUDA,从某种意义上来说,同样是大模型训练,RV 的核心如果足够多,多到和 CUDA 同等粒度,确实可以实现 CPU 赶超 GPU,不过这种想法还是太乐观了。

本地大语言模型

Ollama 的出现,几乎在一夜之间,让所有操作系统平台获得了在本地使用人工智能的后台框架。

Ollama 集创建、管理、服务于一身,能够将大语言模型转换成本地可用的体积,并且可以在不同模型自由切换,在显存足够大的情况下,还能够同时使用这些模型。

我来和大家聊一聊在 Linux 操作系统下的一般用法。

目前 x86 架构的 Linux 发行版基本上都能够从源安装 ollama ,安装完成后可以使用 systemd 管理 ollama 是否随系统运行,参考 ollama 的 Linux 安装 wiki 文档,非常方便管理。

我们来看看 ollama 的基本命令:

一般来说最常用的命令是 ollama pullollama run 这两个命令,前者是拉取模型,后者是终端运行模型。而现阶段 ollama 支持的模型,大家可以到这个网址去看下,其中大部分都是可以使用中文交流的,最方便的肯定是 qwen 模型,直接使用中文交流,无需在 prompt 中强调使用中文。

另一个大家关心的问题是 ollama 的模型运行在显卡中需要多大的显存,一般来说,7b 的模型,显存在 8G及其以上的都能放心运行,不用担心会不会爆掉,14b 的模型,一般来说 12G 及其以上的显存也不会有问题。

今天最后聊一聊前端,ollama 是一个后端管理程序,当然也能通过终端进行操作和交互,不过我相信不会所有人都从终端敲命令问 AI 问题,有个功能强大的前端,漂亮的图形化会更加方便,ollama 的 github 里面提供了前端支持的 Apps 和 Web 应用列表,大家可以去看看。

未完,待续第二部分

第二部分我准备给大家介绍导入和转换没有被 ollama 目前支持的语言模型,另外测试下 RISCV 是否能够运行。

Tagged:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注