| 关键词: 模型 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/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|