在GpuMall智算云平台如何优化云实例以支持长期训练

发布时间:2024年01月16日

#3090# #4090# #GPU#

#AI# #GpuMall智算云# #算力#?

体验入口:GpuMall智算云

在高速发展的AI行业,机器学习深度学习的研究需要大量的计算资源。GPU训练推理已经成为许多数据专家和AI研究人员必不可少的工具。随着算力需求的不断增加,服务如GpuMall、智算云、GpuMall智算云提供了GPU租赁服务,允许用户根据自己的需求租用高性能的GPU实例。本文将详细介绍如何实例后台运行训练或任务。

在正常情况下,使用命令?python train.py?运行机器学习的训练或推理任务时,该进程会挂载到系统的前台,这意味着如果您通过SSH连接到远程实例进行操作,一旦SSH连接因网络延迟或波动等原因中断,与SSH会话关联的前台进程(包括您的训练任务)也将被终止,这会导致您失去所有未保存的训练进度。 为了防止由于网络中断导致训练进程意外关闭,推荐通过?SSH登录实例?后,使用诸如?Tmux、SCREEN?或?nohup?等工具来运行长时间的任务,这些工具可以帮助您将训练/推理/长时间运行的进程放到后台运行,从而在断开SSH连接后仍能保持运行。

使用这些工具,您可以确保即使发生网络问题,您的训练任务也不会中断,并且在网络恢复后可以继续监控进程的状态。

Tmux?

tmux?是一个强大的终端复用器,它允许您在一个窗口中运行多个终端会话,并且可以在断开连接后继续保持这些会话运行;以下是基本的?tmux?使用方法,以及如何使用它将训练进程放到后台的示例:

1. 基本 Tmux 使用?

1. 启动一个新的 tmux 会话

tmux new -s session_name

这里?session_name?是您给新会话指定的名字

2. 分离 tmux 会话?在?tmux?会话中,按下?Ctrl + b然后按?d?,这将?分离?您的 tmux 会话,让它在后台运行。

3. 列出所有 tmux 会话

tmux ls

这个命令将显示所有正在运行的 tmux 会话。

4. 重新连接到现有的 tmux 会话

tmux attach -t session_name
tmux a -t session_name

使用您之前创建的会话名字来重新连接

5. 关闭当前 tmux 会话?在?tmux?会话中,可以通过输入?exit?或者按下?Ctrl + d?来退出会话;当最后一个窗口被关闭时,tmux?会话也会结束。

2. 使用 Tmux 运行训练进程示例?

1. 启动一个新的 tmux 会话

tmux new -s training

这将创建一个名为?training?的新会话。

2. 在?tmux?会话中,启动您的训练进程

python train.py

这将开始运行您的训练脚本,并且训练过程中的日志输出也会在这个tmux会话中打印。

3. 一旦训练开始运行,您可以通过按?Ctrl + b?然后按?d?来从?tmux?会话中分离,让训练进程在后台继续运行。

4. 关闭您的SSH连接或关闭终端,您的训练进程将在 tmux 会话中继续运行

5. 之后当您想要检查训练进程的状态时,可以重新连接到tmux会话

tmux attach -t training

这样,即使您的SSH连接被中断,您的训练进程也不会受到影响;通过?tmux?您可以随时重新连接到会话来查看进程的状态或输出。

SCREEN?

screen 是一个功能强大的工具,它允许您在单个终端窗口中运行多个虚拟终端会话,并且可以在断开连接后保持这些会话运行,以下是 screen 的基本使用方法,以及如何使用 screen 将训练进程放到后台的示例:

1. 基本 Screen 使用?

1. 启动新的 screen 会话

screen -S session_name

这里?session_name?是您给新会话指定的名字

2. 分离 screen 会话?在 screen 会话中,按下?Ctrl + a?然后按?d?,这将?分离?您的?screen?会话,让它在后台运行。

3. 列出所有 screen 会话

screen -ls

4.重新连接到现有的 screen 会话?在?screen?会话中,可以通过输入?exit?来退出会话,当最后一个窗口被关闭时,screen?会话也会结束。

2. 使用 Screen 运行训练进程示例?

1. 首先,启动一个新的 screen 会话

screen -S training

这将创建一个名为?training?的新会话。

2. 在 screen 会话中,启动您的训练进程

python train.py

这将开始运行您的训练脚本。

3. 一旦训练开始运行,您可以通过按?Ctrl + a?然后按?d?来从?screen?会话中分离,让训练进程在后台继续运行

4. 关闭您的?SSH?连接或关闭终端,您的训练进程将在?screen?会话中继续运行

5. 之后当您想要检查训练进程的状态时,可以重新连接到?screen?会话

screen -r training

通过使用?screen,即使您的 SSH 连接被中断,您的训练进程也不会受到影响,通过?screen?您可以随时重新连接到会话来查看进程的状态或输出。

nohup?

nohup?是一个命令行工具,用于在注销或关闭终端后继续运行命令,它可以将输出重定向到一个文件中,使得在后台运行的进程的输出不会丢失,以下是如何使用?nohup?将训练进程放到后台并持续记录日志的示例:

1. 使用 nohup 运行训练进程示例?

1.使用 nohup 运行训练并重定向输出

nohup python train.py > train.log 2>&1 &

这将在后台启动?train.py`` 脚本,并将标准输出(stdout)和标准错误(stderr)都重定向到?train.log`` 文件中。

2. 检查训练日志?训练过程的输出将被写入到?train.log,您可以使用以下命令动态查看日志。

tail -f train.log

这将显示日志文件的最新内容,并实时更新。

2. 结束通过 nohup 启动的进程?

要结束通过?nohup?启动的进程,您需要先找到该进程的进程?ID(PID),然后使用?kill?命令终止它。

1. 查找进程ID

ps aux | grep train.py

这将列出所有包含?train.py?的进程,查找相应的进程ID(通常是列出的第二列)。

2. 结束进程?使用找到的PID来终止进程

#假设 PID 为 63832
kill 63832
#执行后上述命令后,如果还可以通过 ps aux | grep train.py 看到进程,则需要使用 -9 参数来强制终止
kill -9 63832

注意

请注意,直接使用?kill?命令通常会发送一个优雅的终止信号(SIGTERM),允许进程安全地清理和关闭,如果进程没有响应,需要使用?kill -9 PID?强制终止。

综上,大模型训练规模与参数量、数据量及训练轮数等紧密相关。很多服务商开始通过使用算力租赁、算力租用、算力出租方式,GpuMall智算云平台通过提供算力租赁和竞价实例,AI算法的开发变得更加高效和经济,同时也允许用户将算力出租,从而实现AI算力AI算法变现和优化闲置算力的使用,平台通过向AI研发团队和个人开发者提供GPU训练推理能力,使他们得以租用到高性能GPU实例,为深度学习和机器学习任务带来了前所未有的便利。欢迎关注我们的官网:https://gpumall.com/index,我们将提供更多的GPU实例和开发者工具支持。

文章来源:https://blog.csdn.net/GpuMall/article/details/135506980
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。