win10,win11 下部署Vicuna-7B,Vicuna-13B模型,gpu cpu运行

2023-10-26

运行Vicuna-7B需要RAM>30GB或者14GB的显存
运行Vicuna-13B需要RAM>60GB或者28GB的显存

如果没有上面的硬件配置请绕行了,我笔记本有64G内存,两个都跑跑看,使用python3.9,当时转换13b时一直崩溃后来发现是没有设定虚拟内存,后来加上了9个G,才可以跑起来

下载llama原始模型 

nyanko7/LLaMA-7B at mainWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://huggingface.co/nyanko7/LLaMA-7B/tree/mainhuggyllama/llama-13b at mainWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://huggingface.co/huggyllama/llama-13b/tree/main也可以用迅雷下载下面的链接,注只要7b,13b就可以了

磁力链接:magnet:?xt=urn:btih:b8287ebfa04f879b048d4d4404108cf3e8014352&dn=LLaMA

下载的文件如下:

下载vicuna-7b-delta-v1.1 和vicuna-13b-delta-v1.1 

https://huggingface.co/lmsys/vicuna-7b-delta-v1.1/tree/mainWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://huggingface.co/lmsys/vicuna-7b-delta-v1.1/tree/mainlmsys/vicuna-13b-delta-v1.1 at mainWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://huggingface.co/lmsys/vicuna-13b-delta-v1.1/tree/main 

 安装相关软件

pip install fschat
pip install protobuf==3.20.0
git clone https://github.com/huggingface/transformers.git
cd transformers
python setup.py install

转换llaMA模型

7b

python transformers/src/transformers/models/llama/convert_llama_weights_to_hf.py  --input_dir LLaMA/  --model_size 7B  --output_dir ./output/llama-7b

13b

python transformers/src/transformers/models/llama/convert_llama_weights_to_hf.py  --input_dir LLaMA/  --model_size 13B  --output_dir ./output/llama-13b

 

 合并生成Vicuna模型,13b的64g内存罩不住,得要设定虚拟内存16G-64G左右就够了

python -m fastchat.model.apply_delta --base ./output/llama-7b --target ./vicuna-7b --delta ./vicuna-7b-delta-v1.1

python -m fastchat.model.apply_delta --base ./output/llama-13b --target ./vicuna-13b --delta ./vicuna-13b-delta-v1.1

 参数介绍:

base 转换llaMA模型后的路径
target 合并生成后的保存路径
delta 下载的vicuna-7b-delta-v1.1路径

 

运行模型,使用半浮点数16位

python -m fastchat.serve.cli --model-path ./vicuna-7b --device cpu

python -m fastchat.serve.cli --model-path ./vicuna-13b --device cpu

 7b的占用约26G内存,在64G内存上,i9 12900h运行、响应速度还可以,

13b的占用大约50G内存,在64G内存上,i9 12900h运行缓慢

使用量化版本,就是把32位的浮点参数压缩成8位 ,速度会快,占用内存变小,智商会下降

python -m fastchat.serve.cli --model-path ./vicuna-7b --device cpu --load-8bit

python -m fastchat.serve.cli --model-path ./vicuna-13b --device cpu --load-8bit

 7B占了7个G

 13B占了13个G

 总结:尽管小点的模型可以运行了,如果想自己进行微调还是要使用gpu ,推荐A100显卡,或者A800. 先期不投硬件先租用可以用矩池云 - 专注于人工智能领域的云服务商矩池云是一家专注于人工智能领域的GPU云服务商。提供稳定的人工智能云服务器、人工智能教学实训环境、高速网盘等服务,支持公有云、私有云、专有云、硬件直采等专业级人工智能解决方案。https://matpool.com/

不过在上述机器上cpu运行得很慢,于是想尝试一下gpu版本,我手里只有一张1080ti,11g内存的,就只能勉强运行一下6B的再加上量化才可以。如何部署呢?

Start Locally | PyTorchhttps://pytorch.org/get-started/locally/

由于这台电脑 之前的NVIDIA GPU Computing Toolkit是 v10.0的这个pytorch 2.0.1 要求的是11.8的,于是要更新一下CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archive

要注册帐号下载,11.8的版本

 下载完这个以后安装,这时环境变量也发生了变化。

 然后必须再下载cuDNN,也要下载对应的版本

cuDNN Archive | NVIDIA Developerhttps://developer.nvidia.com/rdp/cudnn-archive

上图中红框的都可以。下载完成后解压缩,

 然后把这个目录的东西全部拷贝到

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

目录会重合,这样就不用再配一次环境变量了。

装好这两个应用后,我们再到最上面下载pytorch gpu版本 

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

之后写个代码testgpu.py看看gup是否有效

import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))

输出为true时,就表示可以用了 

运行gpu执行,因为我的1080ti只有11G,只能用--load-8bit

python -m fastchat.serve.cli --model-path ./vicuna-7b --load-8bit

如果有12G以上显存的 运行

python -m fastchat.serve.cli --model-path ./vicuna-7b 

 

模型推理(Web UI方式)
如果想要以web UI方式提供服务,则需要配置3个部分。

web servers,用户的交互界面
model workers,托管模型
controller,用以协调web server和model worker
启动控制器

python -m fastchat.serve.controller --host 0.0.0.0

启动model worker,使用cpu 

python -m fastchat.serve.model_worker  --model-path ./vicuna-7b --model-name vicuna-7b --host 0.0.0.0 --device cpu --load-8bit

使用gpu 

python -m fastchat.serve.model_worker --model-path ./vicuna-7b --model-name vicuna-7b --host 0.0.0.0  --load-8bit 

等到该过程完成加载模型,您会看到“Uvicorn 正在运行......".模型工作者会将自身注册到控制器。

要确保您的模型工作人员已正确连接到控制器,请使用以下命令发送测试消息:

python -m fastchat.serve.test_message --model-name vicuna-7b

 l输出如下就表示可以了

 然后启动一个web服务器

python -m fastchat.serve.gradio_web_server --port 8809

这时在浏览器上输入

http://localhost:8809

就可以使用了!好像用gpu可以支持多路用户并行访问!下图两个请求是同时发的

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

win10,win11 下部署Vicuna-7B,Vicuna-13B模型,gpu cpu运行 的相关文章

  • 如何撤消 git pull?

    由于远程源上不需要的提交 我想撤消 git pull 但我不知道必须重置回哪个版本 我怎样才能回到在远程源上执行 git pull 之前的状态 或者使其比其他答案更明确 git pull whoops git reset keep HEAD
  • 如何在git中返回到之前的版本

    我的工作站中有一个远程 git 存储库的签出副本 我不小心在本地进行了更改并推送到了远程 现在我想删除最后一次提交并返回到上一次提交 并且应将其推送到远程 如果这是带有提交消息的新提交 我没问题 怎么做 我建议不要用 force 推动另一种
  • git rebase -i --retain-empty-commits

    默认情况下 当您使用git rebase i它注释掉了空提交 我必须取消注释它们 它们对我有帮助 rebase 命令是否有一个选项可以防止这种我不想保留它们的不必要的假设 好吧 这比预期的要容易 git rebase i keep empt
  • 字符串比较在 PowerShell 函数中不起作用 - 我做错了什么?

    我正在尝试创建一个别名git commit它还将消息记录到单独的文本文件中 然而 如果git commit回报 nothing to commit working directory clean 它不应该将任何内容记录到单独的文件中 这是我
  • Git 处理大文件

    情况 我有两台服务器 生产服务器和开发服务器 在生产服务器上 有两个应用程序和多个 6 数据库 MySQL 我需要将它们分发给开发人员进行测试 所有源代码都存储在GitLab http gitlab org在开发服务器上 开发人员仅使用此服
  • Git 正在运行 - 添加的未添加的文件

    因此 在名为 beta 的分支上执行以下操作 git checkout master error The following untracked working tree files would be overwritten by chec
  • Git 合并顺序有何不同?

    有什么区别吗 git merge c1 c2 and git merge c2 c1 另外 两者之间有什么区别吗 git checkout c1 git merge c2 and git checkout c2 git merge c1 在
  • 显示按日期排序的 git 标签

    如何列出git标签按时间顺序排列 首先是最近的标签 git tag只显示字母顺序 正确答案是 git tag sort taggerdate taggerdate是适当的字段 根据git 标签手册页 https git scm com do
  • 如何在不丢失 Git 中上次提交的情况下返回到上一个提交?

    这就是我想做的 我想回到之前的 2 个提交 也许将该提交中更改的文件作为新的提交返回 但我不想失去最后一次提交 我上次提交的代码中有一些错误 但我想暂时保留该错误 我读过一些文档 但没有一个文档清楚地说明了当你重置头部时会发生什么 例如 您
  • 我可以直接将树读入工作目录并遍历索引吗

    我正在探索 git 的内部结构 我想知道是否有一个 GIT 命令可以让我直接将树读入工作树而不使用index 例如我创建了一棵树 echo f1 content git hash object w stdin a1deaae8f9ac984
  • 如何将裸仓库分支推送到另一个远程?

    我正在使用分散式工作流程 Central Fork 有时 我想快速转发我的分支上的所有远程分支 以及中央存储库上相应分支的最新更改 我已经创建了我的中央存储库的第二个克隆 它只是一个裸版本 与一个单一的git push命令 是否可以将所有分
  • 我如何在 Bitbucket 上制作/关注发布公告?

    在 GitHub 上 您可以使用 git 标签来发布发布公告 https developer github com v3 repos releases create a release然后将出现在发布页面上 例子 https github
  • 使用 Git 在本地保存文件的不同版本与在主存储库中保存文件的不同版本

    我有一个 PHP 配置文件 我想在本地操作 但忽略期间的这些更改git commits到我的主存储库 我曾有一个 gitignore文件曾经忽略这个 PHP 文件 但发生了不好的事情 现在config php文件不再被忽略 我不记得如何重新
  • 对暂存区中未提交的文件撤消 git reset --hard

    我正在努力恢复我的工作 我愚蠢地做了git reset hard 但在此之前我只做过get add 并没有做git commit 请帮忙 这是我的日志 MacBookPro api user git status On branch mas
  • 如何在Openshift中打开数据库连接? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这是我的 PHP dbcon 文件 基本上 我需要将我的 PHP 应用程序与 openshift MySQL DB 连接 这就是我所做的
  • 如何忽略文件的后续修改

    我有一个database json 它应该包含我的Zend项目的数据库凭证 我想知道我是否可以使用示例凭证提交该文件 然后忽略它 以避免其他新的提交 这是文件 development resources db adapter PDO MYS
  • git 切换分支而不丢弃本地更改

    好吧 假设有一天我们碰巧做了一堆修改 当我们去提交它们时 我们注意到我们正在错误的分支上工作 我们如何强制git切换分支不丢弃本地更改 在等待回复时 我可能会以一种天真的方式解决这个问题 但我想知道是否有正确的程序 因为如果我说这之前没有发
  • Git-SVN克隆这一切什么时候结束?

    我开始关注this https stackoverflow com questions 79165 how to migrate svn repository with history to a new git repository发布以执
  • pip 从私人 github 仓库安装wheel版本

    我已经将我的私人仓库打包成一个轮子 轮子有不同的版本 是否可以使用 pip 从命令行并通过 requests txt 文件安装特定的 Wheel 版本的存储库 此功能pip 文档中没有提到 https pip pypa io en late
  • 一个文件可以在 Git 中同时暂存和取消暂存吗?

    在处理另一个文件时 我编辑了README md然后跑了git add README md 当进行 git commit 时 我看到README md都在 要提交的更改 和 未暂存进行提交的更改 中 这有道理吗 在哪里 git我可以查看该文件

随机推荐

  • 算法训练营第三十六天(8.26)

    目录 Leecode 198 打家劫舍 Leecode 213 打家劫舍 II Leecode 337 打家劫舍III Leecode 198 打家劫舍 题目地址 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题目类型 打家劫舍
  • Android Studio快捷键的设置

    设置好主题和字体之后 http blog csdn net yzzdmzdfq article details 51291322 很多小伙伴们开始迫不及待的编程了 很快就会发现 好像快捷键用起来不太舒服 于是想要设置一下快捷键 那么问题来了
  • JS原型、原型链到底是什么?

    前言 在js的学习中 原型毫无疑问是一个难点 但也是一个不可忽视的重点 在前端面试中也是一个高频考题 在接下来的深入学习中 你会发现原型 原型链等知识点其实并不难 1 一切皆为对象 JavaScript是一个面向 原型 对象的语言 对象是属
  • Linux网络基础 — 网络层

    目录 IP协议 IP协议报头格式 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 补充 网络层 在复杂的环境中确定一个合适的路径 IP协议 ip具有将数据从 主机A 跨网络送到 主机B 的能力 主机 配有IP
  • 如何在CMD下增加IP地址

    1 修改IP地址 注意事项 如果是设置有多IP的情况下 将清除其它IP 只保留此次命令中设置的IP地址 netsh interface ip set address name 本地连接 source static addr 192 168
  • 最大区间交

    先将所有区间按照左端点排序 然后遍历所有区间进行以下操作 第i个区间 a b ans max ans min maxr b a 1 maxr max maxr b
  • 从零开始实现C++ TinyWebServer(九)---- 项目知识点总结

    文章目录 前言 项目介绍 为什么要做这样一个项目 项目背景 项目描述 项目功能 项目流程 项目重难点 项目效果 解决方案 个人收获 线程池 线程的同步机制有哪些 线程池中的工作线程是一直等待的吗 如果同时1000个客户端进行访问请求 线程数
  • com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼...

    Spring boot使用MyBatis mysql配置运行时报错com mysql cj exceptions InvalidConnectionAttributeException The server time zone value
  • Odoo的XMLRPC调用

    Odoo的XMLRPC调用 使用场景 需要运行脚本调用odoo的模型方法 对数据库进行修改 企业内部有多个系统服务 系统间互相调用模型方法 基本调用过程 服务端定义好模型和方法 服务端odoo orm方法能被调用 加了 api model装
  • pytorch 详解NLLloss 与crossEntry

    NLLloss 与CrossEntry
  • 【Java进阶】多线程&高并发(一)<线程概述>

    一 线程相关概念 1 进程 进程 process 是计算机中的程序关于某数据集合上的一次运行活动 是操作系统进行资源分配与调度的基本单位 进程可以简单理解为正在操作系统中运行的一个程序 2 线程 线程 thread 是进程的一个执行单元 一
  • qt自定义带参数的构造函数(构造函数传参)

    源文件 h中 class Test public QMainWindow Q OBJECT public explicit Test QString path QWidget parent 0 构造函数有默认值的要放右边 新添加的参数需要放
  • 《软件工程》第七章 实现 作业

    1 什么是模块测试和集成测试 它们各有什么特点 1 模块测试 指把每个模块作为一个单独的实体来测试 目的是发现模块内部可能存在的差错 保证每个模块作为一个单元能正确运行 所以又称单元测试 对多个模块的测试可以并发进行 在这个测试步骤中所发现
  • vscode安装go插件以及语言开发包

    vscode安装go插件及语言安装包过程 没有go环境和vscode的可以先安装go和vscode 接下来步骤主要通过vscode插件的方式安装go的插件以及语言开发包 vscode安装go插件 启动vscode选择插件 gt 搜go选择G
  • [分布式]:分布式系统的CAP理论

    2000年7月 加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想 2年后 麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP 之后 CAP理论正式成为分布式计算领域的公认定
  • Latex(texlive)安装配置教程(详细)

    1 下载安装及打开方式 在浏览器里输入 texlive mirror 一般会找到清华大学的镜像网站 我这里是选择texlive2021 20210325 iso文件下载的 iso文件其实就像一个硬盘 下载好以后在你下载的目录双击打开这个is
  • 关于linux下android studio更新下载SDK和加速访问Github的方法

    文章参照以下的两篇文章 这里做一下总结 Linux中加速访问github zonyZhang 博客园 解决连不上dl google com的问题 简书 1 登录 dl google com A记录 cname检测结果 Dns查询 dns查询
  • 数据挖掘是如何解决问题的

    数据挖掘是如何解决问题的 本节通过几个数据挖掘实际案例来诠释如何通过数据挖掘解决商业中遇到的问题 2 1 1节中关于 啤酒和尿不湿 的故事是数据挖掘中最经典的案例 而Target公司通过 怀孕预测指数 来预测女顾客是否怀孕的案例也是近来为数
  • 一个完整的测试流程包括哪些?测试人员需要做什么?

    目录 前言 1 需求交接 2 编写测试用例 3 冒烟测试 4 SIT测试 5 数据升级测试 视情况而定 6 系统培训 视情况而定 7 UAT测试 8 上线 结语 前言 在实际工作中 其实很少有公司把一个完整的测试流程一步一步走下来 大多会执
  • win10,win11 下部署Vicuna-7B,Vicuna-13B模型,gpu cpu运行

    运行Vicuna 7B需要RAM gt 30GB或者14GB的显存 运行Vicuna 13B需要RAM gt 60GB或者28GB的显存 如果没有上面的硬件配置请绕行了 我笔记本有64G内存 两个都跑跑看 使用python3 9 当时转换1