首页 编程 软件学院 查看内容

无需GPU,windows本地部署llama2大模型

2023-11-16 09:49 3278 0

摘要: 大家好,我们今天要讲的内容是,windows本地部署llama2大模型。在本节课中,我们将在windows环境,不使用GPU,只使用CPU的情况下,基于llama.cpp这个库,部署并运行llama2大模型。完成部署后,会直接使用python接口 ...
关键词: 模型 llama 我们 llama2 python 可以 使用 环境 一个 cpp

大家好,我们今天要讲的内容是,windows本地部署llama2大模型。

在本节课中,我们将在windows环境,不使用GPU,只使用CPU的情况下,基于llama.cpp这个库,部署并运行llama2大模型。

完成部署后,会直接使用python接口,进行文本生成。


1.什么是llama2大模型

2023年7月19日,Meta 发布了免费并且可商用的大语言模型Llama 2。

这一举措,足以让大模型领域的格局,发生巨大变化。

Llama 2系列模型,有70 亿、130 亿和700亿,三种不同规模参数的模型。

经过评估Llama2的实际效果,已超过GPT3,甚至已经接近GPT3.5。

关于Llama 2本身,有非常多值得讨论的地方,尤其是对国内AI领域的深远影响,将来我会再专门出视频来讨论。

下面,我们进入正题,就用手头的个人电脑,来体验一下Llama2。


2.llama-cpp和llama-cpp-python

我们都知道,大语言模型,动辄就是上百亿的参数,本身就不是在单机环境下使用的。

即使是Llama系列,最小的也有70亿参数,也需要英伟达RTX4090或A10来运行。

但是,有位超级大神,他基于Meta发布的LLaMA模型,开发出了一个运行llama模型的模块llama.cpp。

该项目纯手工基于C++打造,没有任何第3方编译依赖,使我们可以基于cpu条件,进行大模型推理。

另外,llama.cpp不仅支持llama2模型,还支持Alpaca、chiness-llama、WizardLM等等其他模型,并且还提供了Python、Go、Node.js等其他语言的接口。

接下来,我们来一步步搭建llama-cpp的python环境,实现大语言模型的单机运行。


3.基于anaconda搭建环境

在搭建环境前,需要提前安装visual studio,用于编译llama-cpp。

我们可以直接在VS的官网,下载VS 2022社区版,进行安装。

完成VS的安装后,使用anaconda,创建一个新的python环境,其中python版本选择3.10。

接着打开环境,使用pip install llama-cpp-python命令,安装python接口的llama-cpp。


4.在huggingface上,下载模型

我们可以在huggingface上,下载量化后的llama2模型。

具体登录huggingface后,找到TheBloke这个项目,再在其中找到Llama-2-7B-Chat-GGML模型。

这里要说明的是,Llama-2-7B是原始的7B版本,Chat代表聊天微调版本,而GGML代表量化模型。

所谓模型量化,可以简单的理解为一种模型压缩技术。

在下载列表中,我们选择下载其中的q4_0这个版本。列表中还有很多其他版本。

简单来说,q4_0表示每4个比特一个权重,q5_0就是每5个比特一个权重。

其中的数越大,那么精度就越高,我们选择一个差不多的来使用就可以了。


5.编写python程序,进行文本生成

完成环境的搭建和模型的下载后,就可以编写python代码了。

程序会依赖llama-cpp-python这个模块,它的接口使用方法,可以在项目的文档中找到。

打开项目文档,可以找到接口中的各个参数都怎么使用,这里就不过多介绍了,具体的使用效果,还需要大家自行调试。

下面,我们就来写一个简单的样例程序。

首先导入llama_cpp。

在main函数中,首先创建Llama模型,模型使用我们刚刚下好q4_0模型。

然后对模型输入hello、who are you、how old are you,看一看模型的反应如何。

这里我们实现一个功能函数generate_text。

函数传入模型model和输入信息message,函数返回模型的输出结果。

在函数中,首先需要将message转换为prompt,然后将prompt输入至模型,得到输出output。

输出结果的格式可以参考文档,我们将其中的choices中的text字符串取出,保存到answer中,并将answer返回。

运行程序,可以得到三个测试结果。

发送hello,llama2会回复一个友善的回复。

发送who are you,llama2会自我介绍。

发送how old are you,llama2也会给出合适的结果。

那么到这里,windows本地部署llama2大模型就讲完了,感谢大家的观看,我们下节课再会。

本文出处: https://www.toutiao.com/article/7300850840183767587/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部