Docker AIGC等大模型深度学习环境搭建步骤最新详细版

Docker AIGC大模型深度学习环境搭建步骤

简介

Docker是一款虚拟化容器技术,它可以将应用及其依赖打包为一个可移植的容器,从而实现软件环境的一致性和跨平台性。在深度学习领域,Docker不仅可以简化环境搭建的复杂度,也可以减少环境带来的差异性。

AIGC (AI Grand Challenge)是面向深度学习领域的AI竞赛平台,通过在平台上提供大规模计算和高带宽数据传输的能力,实现了大规模、高效的深度学习模型训练。搭建Docker AIGC大模型深度学习环境,即可在AIGC平台上使用GPU和分布式GPU进行大模型深度学习训练。

Docker安装

Ubuntu系统

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
 "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

CentOS系统

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

Windows系统

可以在Docker官网下载安装程序进行安装。

验证Docker是否安装成功

docker --version

Docker AIGC环境搭建

下载Docker AIGC环境镜像

docker pull sungsu55/daigc:gpu

镜像启动

docker run -it --gpus all -v /host_dir:/container_dir sungsu55/daigc:gpu /bin/bash

其中--gpus all参数表示启用全部GPU,-v /host_dir:/container_dir参数表示将宿主机的/host_dir目录映射到容器中的/container_dir目录。此外,sungsu55/daigc:gpu表示Docker AIGC环境的镜像名称和版本号。

容器中环境搭建

Miniconda3环境安装

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash ./Miniconda3-latest-Linux-x86_64.sh -b

echo 'export PATH=/root/miniconda3/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

PyTorch、Tensorflow等深度学习框架安装

conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -y
pip install tensorflow-gpu keras

容器退出

容器退出命令为:

exit

示例说明

示例1:使用Docker AIGC环境进行PyTorch训练

在容器中启动jupyter lab

jupyter lab --ip=0.0.0.0 --port=8888 --allow-root

此时可以在浏览器中使用AIGC平台提供的jupyter lab服务,也可以在本机浏览器中打开http://localhost:8888进行访问。在jupyter lab中新建Python3代码文件,编写PyTorch模型代码:

import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 16 * 5 * 5)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

net = Net()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

然后进行模型训练:

import torchvision
import torchvision.transforms as transforms

transform = transforms.Compose(
    [transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
                                        download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
                                          shuffle=True, num_workers=2)

for epoch in range(2):  # loop over the dataset multiple times

    running_loss = 0.0
    for i, data in enumerate(trainloader, 0):
        # get the inputs; data is a list of [inputs, labels]
        inputs, labels = data

        # zero the parameter gradients
        optimizer.zero_grad()

        # forward + backward + optimize
        outputs = net(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

        # print statistics
        running_loss += loss.item()
        if i % 2000 == 1999:    # print every 2000 mini-batches
            print('[%d, %5d] loss: %.3f' %
                  (epoch + 1, i + 1, running_loss / 2000))
            running_loss = 0.0

print('Finished Training')

示例2:使用Docker AIGC环境进行TensorFlow分布式训练

在容器中启动TensorFlow集群:

python -m torch.distributed.launch --nproc_per_node=4 train.py --model_dir=./model

此时可以在本机浏览器中打开http://localhost:8888进行TensorBoard查看训练情况。在本机终端中启动tensorboard

tensorboard --logdir=./model

总结

本文简单介绍了如何在Docker中搭建AIGC大模型深度学习环境,并提供了两个示例。除此之外,还可以通过使用Docker Compose等技术实现多个容器间的协同工作,进一步提高深度学习模型训练的效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker AIGC等大模型深度学习环境搭建步骤最新详细版 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程

    下面是详细讲解“利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程”的完整攻略。 简介 MoinMoin是一个Python编写的开源Wiki引擎,可用于创建个人或企业内部的Wiki系统。本攻略将介绍如何在Nginx和uwsgi上部署MoinMoin。 准备工作 在开始之前,你需要满足以下准备工作: 在你的服务器上安装好了Nginx和uw…

    人工智能概览 2023年5月25日
    00
  • 一个基于flask的web应用诞生 用户注册功能开发(5)

    本文将详细讲解“一个基于flask的web应用诞生 用户注册功能开发(5)”的完整攻略,主要以代码示例的方式展示开发过程。 一、更新注册表单的模板 首先我们需要更新注册表单的模板,使其能够显示用户名和密码的错误信息。在templates/register.html中,添加以下代码: {% extends ‘base.html’ %} {% block con…

    人工智能概论 2023年5月25日
    00
  • python开发之Docker入门安装部署教程

    Python开发之Docker入门安装部署教程 概述 Docker是一款开源的容器化平台,可以帮助开发者快速地构建、打包和部署应用程序。在Python开发领域中,Docker已经成为了重要的工具之一,通过Docker可以快速搭建Python开发环境,解决了开发环境不一致的问题。本文将介绍Docker的安装部署和使用方法。 Docker的安装 在Linux系统…

    人工智能概览 2023年5月25日
    00
  • Python OpenCV实现3种滤镜效果实例

    关于“Python OpenCV实现3种滤镜效果实例”的完整攻略,我会提供以下几个方面的说明: 1. 准备工作 在开始本项目之前,我们需要先进行一些准备工作: 安装Python 安装OpenCV库 下载示例图片 可以参考以下链接安装Python和OpenCV库: Python安装教程 OpenCV库安装教程 示例图片可以在 GitHub仓库 中下载。 2. …

    人工智能概论 2023年5月25日
    00
  • PyTorch实现重写/改写Dataset并载入Dataloader

    下面是PyTorch实现重写/改写Dataset并载入Dataloader的完整攻略。 1. Dataset的重写/改写 1.1 创建自定义的Dataset 使用PyTorch构建Dataset需要继承torch.utils.data.Dataset类,并重新实现__init__、__len__、__getitem__三个方法。其中,__init__方法用于…

    人工智能概论 2023年5月25日
    00
  • 调试Django时打印SQL语句的日志代码实例

    当我们在使用Django进行开发时,需要查看某些请求的SQL查询语句以进一步优化性能。Django默认提供了ORM系统用于构建和查询SQL语句,同时,Django框架也允许我们对ORM查询的SQL语句进行日志记录。 为了打印SQL查询日志,我们需要在Django的配置文件中添加以下设置: LOGGING = { ‘version’: 1, ‘disable_…

    人工智能概论 2023年5月25日
    00
  • Python操作MongoDB增删改查代码示例

    下面是Python操作MongoDB增删改查的完整攻略: 1. 安装pymongo 在Python中操作MongoDB,需要先安装pymongo模块。可以使用pip命令进行安装: pip install pymongo 2. 连接MongoDB 连接MongoDB需要使用pymongo.MongoClient()方法,代码示例如下: from pymongo…

    人工智能概论 2023年5月25日
    00
  • vivo Z5x极光版值得买吗 vivo Z5x极光版开箱体验及评测

    vivo Z5x极光版值得买吗? vivo Z5x极光版是2020年的新品,相比普通版新增了极光色,在外观上非常吸引眼球。其它方面和普通版基本一致,下面分别从外观、性能、拍照和续航4个方面给出评价,帮助大家了解是否值得购买。 外观 vivo Z5x极光版的外观设计采用了极光色,闪耀迷人,非常耐看。背面采用了AG镀膜工艺,手感较为舒适,且能有效防止指纹的留下。…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部