利用 llama.cpp 在本地部署 AI 大模型的一次实验

打印 上一主题 下一主题

主题 522|帖子 522|积分 1566

对于刚刚落下帷幕的2023年,人们曾经给予其高度评价——AIGC元年。随着 ChatGPT 的火爆出圈,大语言模型、AI 生成内容、多模态、提示词、量化…等等名词开始相继频频出现在人们的视野当中,而在这场足以引发第四次工业革命的技术浪潮里,人们对于人工智能的态度,正从一开始的惊喜慢慢地酿成担忧。由于 AI 在生成笔墨、代码、图像、音频和视频等方面的能力越来越强大,强大到必要 “冷门歌手” 孙燕姿亲自发文回应,强大到连山姆·奥特曼都被 OpenAI 解雇。在履历过 OpenAI 套壳、New Bing、GitHub Copilot 以及各式 AI 应用、各类大语言模型的持续轰炸后,我们终于迎来了人工智能的 “安卓时候”,即除了 ChatGPT、Gemini 等专有模型以外,我们现在有更多的开源大模型可以选择。可这难免会让我们感到狐疑,人工智能的尽头到底是什么呢?2013年的时间,我以为未来属于提示词工程(Prompt Engineering),可厥后好像是 RAG 以及 GPTs 更受接待?
从那里开始

在履历过早期调用 OpenAI API 各种停滞后,我以为大语言模型,最终还是必要回归到私有化部署这条路上来。究竟,连近来新上市的手机都开始内置大语言模型了,我先后在手机上体验了有大语言模型加持的小爱同砚,以及抖音的豆包,不能说体验有多好,可终归是聊胜于无。现在,整个人工智能范畴大致可以分为三个条理,即:算力、模型和应用。此中,算力,本质上就是芯片,对大模型来说特指高性能显卡;模型,现在在 Hugging Face 可以找到各种开源的模型,即便可以节省练习模型的成本,可对这些模型的微调和改进依然是 “最后一公里” 的痛点;应用,现在 GPTs 极大地推动了各类 AI 应用的落地,而像 Poe 这类聚合式的 AI 应用功能要更强大一点。最终,我决定先在 CPU 环境下利用 llama.cpp 部署一个 AI 大模型,等买通上下游关节后,再思量利用 GPU 环境实现最终落地。从头开始练习一个模型是不大现实的,可如果通过 LangChain 这类框架接入本地知识库还是有希望的。
编译 llama.cpp

llama.cpp 是一个纯 C/C++ 实现的 LLaMA 模型推理工具,由于其具有极高的性能,因此,它可以同时在 GPU 和 CPU 环境下运行,这给了像博主这种寻常百姓可操纵的空间。在 Meta 半开源了其 LLaMA 模型以后,斯坦福大学发布了其基于 LLaMA-7B 模型微调而来的模型 Alpaca,在开源社区的积极响应下,在 Hugging Face 上面相继衍生出了更多的基于 LLaMA 模型的模型,这意味着这些由 LLaMA 衍生而来的模型,都可以交给 llama.cpp 这个项目来进行推理。对硬件要求低、可供选择的模型多,这是博主选择 llama.cpp 的重要原因。在这篇文章里,博主利用的是一台搭配 i7-1360P 处置惩罚器、32G 内存的条记本,按照 LLaMA 的性能要求,运行 GGML 格式的 7B 模型至少必要 13G 内存,而运行 GGML 格式的 13B 模型至少必要 24G 内存,各人可以根据自身设置选择合适的模型,个人发起选择 7B 即可,由于 13B 运行时间一长以后还是会感到吃力,哎。

准备工作

在正式开始前,请确保你可以熟练利用 Git,以及具备科学上网的条件,由于我们必要从 Hugging Face 上下载模型。此外,你还必要下载并安装以下软件:


  • Python: 官方网站、华为镜像,发起选择 3.9 及其以上版本
  • w64devkit:便携式 C/C++ 编译环境,集成了 gcc、make 等常见的工具
  • OpenBLAS(可选): 可以提供 CPU 加速的高性能矩阵计算库,发起安装
w64devkit 和 OpenBLAS 下载下来都是压缩包,直接解压即可,发起将 w64devkit 解压在一个不含空格和中文的路径下,例如:C:\w64devkit。接下来,我们还必要 OpenBLAS 的库文件和头文件,请将其 include 目次下的内容,全部复制到 C:\w64devkit\x86_64-w64-mingw32\include 目次下;请将其 lib 目次下的 libopenblas.a 文件复制到 C:\w64devkit\x86_64-w64-mingw32\lib 目次下。保险起见,个人发起将 C:\w64devkit 目次添加到 Path 环境变量中,如下图所示:

至此,我们就完成了全部的准备工作。必要说明的是,这里是以 Windows + Make + OpenBLAS 为例进行演示和写作。如果你是 Mac 或者 Linux 系统用户,或者你想 CMake 或者 CUDA,请参考官方文档:https://github.com/ggerganov/llama.cpp,虽然这份文档是纯英文的,但是我信赖这应该难不倒屏幕前的各位步伐员朋友,哈哈。
编译过程

好的,对于 llama.cpp 而言,其实官方提供了预编译的可执行步伐,具体请参考这里:https://github.com/ggerganov/llama.cpp/releases。通常环境下,普通的 Windows 用户只必要选择雷同 llama-b2084-bin-win-openblas-x64.zip 如许的发行版本即可。如果你拥有高性能显卡,可以选择雷同 llama-b2084-bin-win-cublas-cu12.2.0-x64.zip 如许的发行版即可,此中的 cu 表现 CUDA,这是由显卡厂商 Nvdia 推出的运算平台。什么样的显卡算高性能显卡呢?就我朴实无华的游戏史观点而言,只要能流通运行育碧旗下的《刺客信条:大革命》及厥后续作品的,都可以算得上高性能显卡。这里,我们选择手动编译,由于通读整个文档你就会发现,llama.cpp 里面提供了大量的编译参数,这些参数或多或少地会影响

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表