文章目录
- 概要
- 整体架构流程
概要
部署Qwen-14B开源模型安装到本地(学习笔记)
整体架构流程
1、前期准备
2、中期准备
3、后期准备
我的版本为:
CUDA 版本为:12.1
PyTorch版本为:2.1.2
Python版本为:3.10.0
安装 miniconda 根据自己实际的版本进行安装
Miniconda下载地址:https://docs.conda.io/en/latest/miniconda.html
这里根据自己的电脑和自己现在电脑当中安装 Python 的版本来安装
这里安装完成后
默认安装地址:C:\Users\ADMIN\AppData\Roaming\Microsoft\Windows\Start
Menu\Programs\Miniconda3 (64-bit)
在文件里会出现一个名为 Anaconda Powershell Prompt (Miniconda3)的一个控制终端
双击打开 Anaconda Powershell Prompt (Miniconda3)
输入代码来更新策略
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
输入之后 输入大写字母 A 回车。
然后输入,然后回车。
conda init
完成之后下载Visual Studio Code:https://code.visualstudio.com/
下载源设置:(懂的都懂)很多源都在国外 所以国内有时候访问不了国外 就算能有幸访问下载速度也很慢需要一部分的国内源下载
校园网联合镜像站:https://help.mirrors.cernet.edu.cn/
阿里巴巴开源镜像站:https://developer.aliyun.com/mirror/
Conda 更换镜像源
打开输入代码输入代码后会弹出一个文档,如果没有新建的话那么选择新建文档:
notepad .condarc
上面的网址可能谷歌浏览器可能打不开会报错,换一个浏览器就可以 我是使用win自带的浏览器打开的
把复制的代码粘贴到这个地方保存
还是在刚刚的控制终端输入代码重置一下
conda clean -i
返回清华大学的镜像网站点击
返回刚刚的终端 Anaconda Powershell Prompt (miniconda3) 输入刚刚复制的代码
这就替换了一个源,相同的办法替换剩下的俩源
https://help.mirrors.cernet.edu.cn/anaconda-extra/
https://help.mirrors.cernet.edu.cn/pypi/
还是打开那个 Anaconda Powershell Prompt (miniconda3) 的终端输入代码:
conda create -n aiai python=3.10
这里的 -n aiai 是我给创建的虚拟环境命名为:aiai 只要不忘记自己想起啥名字就啥名字
后面的 python = 3.10 代表着指定为python 3.10版本
输入代码激活环境:
conda activate aiai
其他代码,这个只是告诉你这俩代码可以退出环境和删除环境别瞎搞我没让你删:
conda deactivate # 退出该环境
conda remove -n aiai –all # 删除整个环境
安装软件包代码为在Anaconda Powershell Prompt (Miniconda3)的控制端运行:
# 数据挖掘pip install scikit-learn # 使用pip安装一个名字为:scikit-learn的包pip install numpy # 使用pip安装一个名字为:numpy的包pip install pandas # 使用pip安装一个名字为:pandaspip install tqdm # 使用pip安装一个名字为:tqdmpip install lightgbm # 使用pip安装一个名字为:lightgbm# CVpip install nibabel # 使用pip安装一个名字为:nibabelpip install pillow # 使用pip安装一个名字为:pillow
以上的包安装完成后 需要安装一个工具,这个工具的作用是可以调用英伟达的显卡也就是GPU进行计算。
首先在 Anaconda Powershell Prompt 中输入:
nvidia-smi # 查看当前 GPU 支持的最高 CUDA 版本`
查看完后安装Pytorch:https://pytorch.org/get-started/locally/
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
下载qwen-14B-Chat 模型 注意!魔搭这里下载的是 Qwen-14B-Chat 模型的底座(也就是权重模型)不是源代码
安装好之后可以摸魔搭下载Qwen-14B-Chat 的底座 这个底座就是整个模型的训练数据的权重文件 并非源代码
然后下载Qwen-14B-Chat 的源代码 下载之后为了方便操作,把它解压到根目录当中
解压到根目录当中之后 找到之前下载好的Qwen-14B-Chat 模型的底座 把他复制粘贴进qwen的源代码当中
复制粘贴进来后,就可以返回去找我们的老朋友
双击打开运行代码进入我们之前创建的虚拟环境的系统
conda activate aiai # 这个代码的 aiai 是我创建虚拟环境的名称 替换成自己当时起的名字就可以
进入系统之后在输入代码:
cd qwen
这个时候就进入了我们把源代码放置的文件夹了
这个时候我们找到qwen的文件夹找到一个名称 openai_api.py 的文件打开
打开后我们往下翻找到大约400行代码
然后点击保存
返回之前的控制端我们运行代码:
python openai_api.py
就可以开始调用api了
然后我们需要安装一个虚拟环境:wsl 这个需要去下载
网址:https://learn.microsoft.com/zh-cn/windows/wsl/install
那么下载的前期我们进行一些准备活动把需要的支持做好!
点击应用、点击可选功能、找到更多Windows功能
把这三个勾选上wsl没有这三项驱动不起来
打开微软商店搜索 wsl
选择下载然后运行,他会让你新建:然后输入用户名这个自己起名字、输入密码。在此输入密码确认(备注:这里的密码输入的时候密码的字符不会再控制端出现,但是其实是能输入进去的输入之后回车)结束。
下载Docker Desktop:https://www.docker.com/products/docker-desktop/
安装的时候一定要把wsl2勾选上、第一次进入界面会很慢会一直转圈圈不需要开魔法
可能十来分钟就能打开,
下一步下载两个文件为了方便解压到根目录,
在这个地方唤出cmd 输入代码:
docker-compose pull
拉取镜像文件,拉取完成之后。执行代码,启动docker镜像
docker-compose up -d
这个时候返回之前的软件,这个地方就会出现一个3000端口的地方。
点击软件上的3000端口 登录默认密码:root 密码:1234
这里其实就是大模型训练的知识库! 日后的更新,备份所有的文件,再更新,这里不过多阐述,更新备份的方式正在后面说
docker-compose pulldocker-compose up -d
这俩代码不用执行 只是写在这里 备份和更新。到此成功部署本地,但是现在知识库还不能工作,因为没有介入大模型到知识库里。
打开cmd 或者是打开 wsl 的窗口都可以运行代码:
docker run --name one-api -d --restart always -p 13000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
打开之前的软件
老规矩点击13000的地方会出现一个浏览器网页,这里是管理界面
默认账号:root 密码:123456
点击令牌,创建新的令牌,名字按照你之前的虚拟环境名字起,设置永不失效,设置无限额度保存,在此点击令牌,选择复制。
然后打开cmd 输入代码来查询我们自己的ip地址
ipconfig
记住这俩。反正我是记不住,所以我就留在我的笔记里来记录了
打开之前的文件夹
这里没有s 是http:不是https:输错了后面会报错,我其实是写错了这个地方。
全部需要英文字符,输入法要切换成英文的才可以 中文输入法输入进去的字符看起来一样但是其实不一样。
在重新配置一下文件
还是在这个地方 唤出cmd 输入代码:
docker-compose pulldocker-compose up -d
这样就可以了,这个时候知识库就打通了,我们就可以用它来介入我们本地的大模型。
点击第一个13000端口、点击渠道、新建
注意 这个网址没有是http:不是https 我自己输错了,输错了会报错的后面,创建成功返回渠道,点击测试
返还信息为绿色的200ok就是启动成功了
打开软件
重启之后点击 3000的那个端口
点击应用
新建
选择第一个对话
自己起个名字
这个时候大模型就和知识库打通了。但是现在知识库还不能工作,因为没有介入嵌入模型,只能简单对话,还暂时不能接入自己的数据。在这个界面 在调用API的情况下其实就可以聊天了
在这个页面提问就可以运行 调用的那个控制台不能关 一关你在这个网址提问就不能调动API了!
实测:RTX 4070 Ti 运行拉胯,运行贼慢,稍微复杂一些的比如让他写一个代码要十几分钟的运行时间。