机器学习项目部署通用步骤

最近AI浪潮卷土重来,比起上一次WAV2lip川普唱歌项目的开源,这一次AI绘画以及chatGPT的新一波技术浪潮更加迅猛,把很多圈外人也吸引了过来。在这里以项目stable diffusion为例教大家如何部署环境。其他的机器学习项目环境其实大同小异,看完本篇教程以后,复现其他的机器学习项目也会很容易上手。


Warning:在阅读本文之前,请确保你有查询百度的能力。另外由于作者使用的N卡,仅以作者操作过的给出示例。

安装CUDA

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。——[百度百科]

  1. 确认显卡驱动版本

    在命令行中输入nvidia-smi,回车,即可观看到自己的显卡驱动版本

    如图
  2. 确认对应的CUDA版本

    显卡驱动版本和cuda版本对照表,依据页面里的表格查找电脑可用的cuda版本号。在这里请注意,不是最新的就是最好用,千万不要在这里临时更新显卡驱动到最新版。因为后面pytorch有可能不支持更高版本的cuda。可向下兼容。

  3. 确认对应的pytorch版本

    在下载cuda之前,最好还是先去pytorch官网上瞧一瞧,现在稳定版的pytorch支持到哪个版本的cuda了,不然像作者一样没有稳定可用的pytorch版本可用,然后部署环境的时候一直报Error。

  4. 下载对应的CUDA版本

    进入cuda的官网,点击网页CUDA Toolkit的Download now。进去以后可不要傻傻的进开始选择操作系统,因为这是cuda12.0的下载页面。需要点击下面Resource里的 Archive of Previous CUDA Releases进去选择cuda的版本。

    选择版本
  5. 安装CUDA

    这里基本就是一直下一步即可,第一步的解压目录可以不改。如果你稍微有点电脑基础,你可以自行选择安装的目录(后续还有一个让你选择安装目录的地方),查看装的驱动版本号是最新的还是旧的(旧的会在一开始的时候提示你的)。因为这一步没有什么注意事项,就不过多赘述了。

    而且系统的环境变量已经自动添加了,可自行检查。设置–>搜索高级系统设置–>查看环境变量

    系统变量界面1

    如果没有的话,给你留了后手,参考文章还有更详细的教程哈哈哈哈。

  6. 检验是否安装成功

    在命令行中输入nvcc --version或者nvcc -V,检验是否成功。

安装Anaconda

Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpypandas

conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换,用于满足不同项目的需求。

  1. 下载Anaconda

    有以下两种途径下载安装包,这里推荐清华镜像源的,选择对应的版本和对应的系统即可下载。同样的,这个也不建议下载最新版本的。

  2. 安装

    下载完安装包以后就能直接安装了,除了修改安装目录,一直下一步即可

  3. 添加环境变量

    我安装的时候并没有给我自动添加进系统的环境变量,所以需要手动添加

    设置–>搜索高级系统设置–>查看环境变量–>系统变量–>鼠标双击名为”Path”的变量–>选择“新建”

    把刚刚的安装目录和同目录下的script文件夹都添加进去,如图。

    系统变量2
  4. 检验

    在命令行中输入conda --version或者conda -V,检验是否成功。

  5. 修改镜像源

    Anaconda 镜像使用帮助

    把上述网页的代码复制到用户目录下的 .condarc 文件来使用 TUNA 镜像源。这里有可能会失败,需要把复制内容里的https全部改为http。原因不详。

安装pytorch

  1. 创建环境

    打开Anaconda Prompt(Anaconda3),这是刚刚安装的conda命令行,可以在开始菜单里找。

    env_name文件夹可以在Anaconda安装目录 envs文件下找到。也有可能在C盘=,=,喜欢折腾的百度去,可以改环境的位置的。

    1
    2
    #conda create -n <环境名字> python=<版本号>
    conda create -n pytorch python=3.10.6

    该命令创建python版本为3.10.6、名为 pytorch 的环境,后面的是包名,后续可自行增减

  2. 激活环境

    1
    conda activate pytorch   		# 激活环境

    可以看到命令行的开头(base)变为了(pytorch),说明激活环境成功,到这里不要关闭这个窗口,一会要用。

  3. 安装pytorch

    打开pytorch官网,选择对应的OS系统,选择conda,编程语言选择python,选择你所下载的CUDA版本号,表格的最后一行即为bash命令,复制一部分粘贴到刚刚的pytorch环境里运行。

    这里所说的一部分,要注意看好,conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia,这里的-c pytorch -c nvidia是从官方网站下载,所以这个不用复制上,用我们配置好的清华镜像下载即可。如图。

    部分复制
  4. 验证

    我们输入python进入下Python环境,然后输入import torch,如果没有报错说明可以导入成功。

    接着输入torch.cuda.is_available()查看torch是否可以使用显卡,True就代表可以!


至此,我们的环境就已经部署成功了,接下来,需要具体到项目,然后选择创建不同版本的python环境,安装以及requestments.txt文件里的包,这种一般项目的README.mdf文件会进行说明。下面以stable diffusion项目为例进行讲解。


  1. 查看项目

    打开stable diffusion项目地址

  2. 部署项目

    进去网页以后往下滑,找到Automatic Installation on Windows,这个就是自动部署的教程

  3. 他说需要安装python 3.10.6,这个使用我们刚刚创建环境的方法,conda create -n novelai python=3.10.6创建一个名为novelai的环境,然后激活这个环境。什么?怎么激活,我不是刚教过了吗!

  4. 安装git

    没什么好说的,简单得很。一直下一步就行了。

  5. 下载项目

    使用他给的命令下载项目到本地。什么?不知道怎么用命令?那你玩什么GitHub!随便建一个文件夹,把命令粘贴到文件夹地址处,回车即可。不过网络问题总是会下载失败

    也可以直接下载压缩包.zip文件,点击项目页面的绿色的< >code按钮,就看到有个Download ZIP选项,点击下载即可。下载完成解压。

  6. 安装相关依赖包

    并不是所有项目都和这个项目一样有一键部署文件,而且文件里面的配置其实还是要改的,所以我教大家最通用给方法。

    novelai环境里输入以下的pip指令回车即可。

    1
    python -m pip install -r requestments.txt
  7. 运行项目

    novelai环境进入到项目的路径。

    例如我的是E:\python_exec\stable-diffusion-webui-master首先就需要先进入E盘,然后使用cd指令。这里涉及到的是Dos命令,可自行学习,或者翻看我早期的博客文章。

    1
    2
    e:
    cd E:\python_exec\stable-diffusion-webui-master

    接着anaconda命令行输入

    1
    python launch.py

    接着打开他给的网址即可。至此部署完成。


后话,这样子只是部署完成,但是使用方法还是挺麻烦的,因为你缺少了权重文件,模型文件。我这里不详细教了。

参考文章

  1. 还是搞不懂Anaconda是什么?读这一篇文章就够了
  2. CUDA安装教程(超详细)
  3. Python安装Pytorch教程(图文详解)
  4. Anaconda conda常用命令:从入门到精通
  5. stable diffusion模型分享网站
  6. stable diffusion汉化包
Author: 锤子🔨
Link: https://hammer-wh.github.io/posts/2062764165/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.