Skip to content

提供一个极简的服务器使用介绍,为初入AI科研的同学提供些许帮助,更快上手。

License

Notifications You must be signed in to change notification settings

xiao10ma/Easy-AI-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 

Repository files navigation

AI服务器极简入门 Easy-AI-Server

本文将综合介绍AI科研服务器的一些工具的使用,供大家入门。如果在学习过程中,遇到一些问题,可以问问GPT/Deepseek这类AI工具或Google。若文章有错误,欢迎提issue指正 :D

Contents - 目录

🐧 Linux 常用命令与基础知识

为便于说明,以下示例中使用了通用占位符,如 {username}、{dirname} 等,表示你需要根据自己的实际情况进行替换。例如,如果你的用户名是 mazipei,则应将 {username} 替换为 mazipei。

为提升可读性,我会用花括号 {} 标注需要替换的内容,请根据实际情况进行修改。

🌐 一、远程登录

ssh {username}@{ip}
# example: ssh [email protected]

如果没有设置过钥匙,第一次登陆时通常会有:

❯ ssh [email protected]
no such identity: /Users/mazipei/.ssh/id_rsa: No such file or directory
[email protected]'s password:

输入密码即可(linux在输入密码时不会显示)

(可选)服务器免密登陆

每次登录服务器都需要输入密码,比较麻烦。可以通过设置 SSH 密钥实现免密登录:

  1. 在本地生成 SSH 密钥对

    ssh-keygen -t rsa -b 4096 -C {"[email protected]"}
    
    # example: ssh-keygen -t rsa -b 4096 -C [email protected]

    回车后系统会提示你保存路径,默认是:

    /Users/{username}/.ssh/id_rsa
    

    可以直接回车使用默认路径,或者输入你自定义的路径。接着提示你设置密码,可以直接回车跳过。

    生成成功后,会看到两份文件:

    • /Users/{username}/.ssh/id_rsa:私钥(不要泄露)
    • /Users/{username}/.ssh/id_rsa.pub:公钥(可以共享给服务器)
  2. 将公钥上传到服务器 运行以下命令,把公钥追加到服务器的 /Users/{username}/.ssh/authorized_keys 文件中:

    ssh-copy-id {username}@{ip}
    

    如果你使用的是自定义密钥路径,可以加 -i 参数:

    ssh-copy-id -i {your_path}/id_rsa.pub {username}@{ip}
    
  3. 测试免密登录

    ssh {username}@{ip}

    如果不再提示输入密码,则说明配置成功。

🧠 附加技巧:多服务器共享一个 SSH 密钥 如果你有多台服务器,其实无需为每台都生成不同的密钥。只要将同一个公钥添加到每台服务器的 ~/.ssh/authorized_keys 中,即可通过 同一个私钥实现免密登录多个服务器。 为方便管理和免密登录,可以在本地的 ~/.ssh/config 文件中添加如下配置:

# ~/.ssh/config

Host {alias1}
    HostName {ip_address1}
    User {username1}
    IdentityFile {private_key_path}

Host {alias2}
    HostName {ip_address2}
    User {username2}
    IdentityFile {private_key_path}

例如:

Host 3090
    HostName 10.10.10.10
    User mazipei
    IdentityFile ~/.ssh/id_rsa

Host 4090
    HostName 10.10.10.11
    User zipeima
    IdentityFile ~/.ssh/id_rsa

然后你就可以通过以下命令直接登录:

ssh 3090
ssh 4090

或者用 VS Code:

ssh.mov

📁 二、文件与目录操作

这一部分建议大家可以跟着一起在终端敲一遍。

操作 命令 说明
查看当前路径 pwd 显示当前所在的目录(print working directory)
列出文件 ls 列出当前目录下的文件和文件夹
列出详细信息 ls -l 显示包含权限、大小、时间等信息的文件列表
切换目录 cd {dirname/} 进入某个目录,比如 cd data/
👉 注意:这里的 dirname 是你服务器实际文件夹名字,不是固定写法
返回上级目录 cd .. 返回到当前目录的上一级目录(父目录)
当前目录 . 表示当前目录,常用于路径组合或执行脚本,例如 ./run.sh
上级目录 .. 表示当前目录的上一级,例如 ../data/ 表示父目录下的 data 文件夹
创建目录 mkdir {new_folder/} 创建一个文件夹,名字可以自己起
👉 例如:mkdir results
删除文件 rm {file.txt} 删除文件(不可恢复)
删除目录 rm -r {folder/} 递归删除目录及其内容
复制文件 cp {a.txt} {b.txt} a.txt 复制为 b.txt
移动/重命名 mv {a.txt} {b.txt} 改名或移动文件
✏️ 补充:Vim 文件编辑器(最基本用法)

在服务器中,经常需要快速编辑配置文件或脚本,推荐使用轻量级编辑器 vim

vim {filename}
# 例如:vim run.sh

进入 vim 后,你会看到文件内容,但不能直接输入内容。Vim 有三个常用模式

模式 功能 如何进入
普通模式 浏览 / 删除 / 复制等 打开 vim 默认就是普通模式
插入模式 输入文本 i 进入插入模式
命令模式 保存、退出等命令操作 Esc 回到普通模式,再输入 :

常用操作速查:

操作 命令 说明
进入插入模式 i 开始输入内容
退出插入模式 Esc 返回普通模式
保存并退出 :wq + Enter 写入文件并退出
强制退出 :q! + Enter 不保存修改直接退出(⚠️ 慎用)
仅保存 :w + Enter 保存但不退出

🖥 三、服务器资源查看

操作 命令 说明
查看显卡信息 nvidia-sminvitop 查看 GPU 状态;强烈推荐使用 nvitop,下文将说明 nvitop的安装
查看CPU信息 tophtop 实时查看CPU/内存/进程占用
查看硬盘空间 df -h . 查看各挂载点的磁盘使用
查看当前路径下空间占用 du -sh * 各文件/文件夹大小(简洁)

🧼 四、实用技巧

  • Tab 自动补全命令或文件名
  • Ctrl + C 强制终止当前运行的命令

一般来说,服务器上会有两个常见的工作目录:

  1. 用户主目录:即 ~,对应路径通常为 /home/{username}/User/{username},主要用于存放个人配置文件(如 .bashrc.ssh/ 等)以及轻量级的数据或脚本。
  2. 数据目录:用于存放数据、代码或实验结果等大型文件。该目录结构在不同实验室的服务器上可能有所不同,建议向实验室同学或管理员确认具体路径。

本文以 HDD_DISK/users/mazipei 为例,将其作为数据目录,用于存放项目代码和实验数据等文件。


🧩 Git 与 GitHub 使用简明指南

📌 一、Git 是什么?

Git 是一个分布式版本控制工具,用于追踪代码历史、协作开发。简单来说,它可以:

  • 记录你对文件做的每一次修改
  • 回退到之前的某个状态
  • 与别人一起协作开发(配合 GitHub 使用)

☁️ 二、GitHub 是什么?

GitHub 是一个基于 Git 的远程代码托管平台。你可以:

  • 把本地代码上传到 GitHub 上备份
  • 与他人协作开发项目
  • 克隆别人的开源项目到本地使用

🛠 三、常见 Git 命令

操作 命令 说明
初始化仓库 git init 在当前目录创建一个 Git 仓库
克隆项目 git clone {repo_url} 下载远程仓库到本地
查看状态 git status 查看当前修改了哪些文件
添加文件到暂存区 git add {filename}git add . 将修改加入“待提交”列表
提交修改 git commit -m "提交说明" 提交修改并写入说明
查看历史记录 git log 查看提交记录
推送到远程仓库 git push 把本地修改推送到远程仓库
拉取远程更新 git pull 下载并合并远程仓库的内容

这里建议搭配 VS Code 的 Git 可视化功能使用,上述大部分命令在图形界面中都可以轻松完成。


🌐 四、使用 SSH 方式连接 GitHub

在开始使用 Git 和 GitHub 之前,我们先来配置 SSH 连接。这样可以避免每次 push 代码时都需要输入用户名和密码,既安全又省心。

✅ 1. 生成 SSH 密钥(服务器端)

ssh-keygen -t rsa -b 4096 -C "{[email protected]}"

一路回车,生成 ~/.ssh/id_rsaid_rsa.pub

✅ 2. 添加公钥到 GitHub

  1. 登录 GitHub
  2. 点击右上角头像 → Settings
  3. 选择 SSH and GPG keysNew SSH key
  4. 把本地的 id_rsa.pub 内容复制进去:

cat 查看 id_rsa.pub

cat ~/.ssh/id_rsa.pub

✅ 3. 测试 SSH 连接

如果出现 Hi {username}! You've successfully authenticated, but GitHub does not provide shell access. 则说明连接成功。


📝 五、实战:创建自己的 Git 仓库并上传代码(配合 VS Code 使用)

完成 SSH 配置后,现在我们来创建并使用自己的 Git 仓库:

  1. 在Github上创建一个仓库

    • 点击右上角 "➕" → New repository
    • 填写仓库名(比如:my-first-repo),可以选择 Public 或 Private
    • 勾选 "Initialize with README",这样仓库中会有一个初始文件README.md

  1. 克隆仓库到本地

    • 点击 "Code" -> "SSH" -> 复制链接(注意:现在我们使用 SSH 链接而不是 HTTPS)
    • 用VS Code连接服务器,在终端执行:
    git clone {repo_url}
    # example: git clone [email protected]:xiao10ma/my-first-repo.git

  1. 修改文件并上传

    • 修改文件,比如在README.md中添加一行内容
    • 在左侧栏,源代码管理处,点击加号,添加文件到暂存区
    • 写好提交信息(比如:修改了README文件),点击"✓提交"
    • 点击 "同步更改" 按钮,将提交内容推送至 GitHub
    • 此时,在GitHub上,可以看到文件被修改了


💡 六、额外Tips - Extra Tips:

建议写法:配合 .gitignore

为了避免不必要的文件上传到 GitHub(如模型权重、日志文件等),建议你在项目根目录添加 .gitignore 文件,例如:

*.pyc
*.log
*.pt
__pycache__/
checkpoints/

GitLens 插件

VS Code 的 GitLens 插件可以方便地查看文件的修改历史、比较差异等。

GitHub 镜像

编辑 ~/.gitconfig :

vim ~/.gitconfig

添加以下内容:

[url "https://bgithub.xyz/"]
    insteadOf = https://github.com/

[url "[email protected]:"]
    insteadOf = [email protected]:

🐍 Anaconda / Miniconda 安装与配置

在服务器上使用 Anaconda(或更轻量的 Miniconda)可以方便地管理 Python 环境和依赖库。由于不同项目通常依赖不同版本的 Python、PyTorch、CUDA 等组件,使用 Conda 环境进行隔离是一种推荐的做法。

📦 一、安装位置建议

深度学习项目常常依赖较大的包(如 torchtransformersdiffusers 等),安装体积可能达到数 GB。为了避免占用主目录空间(尤其是 /home/{username} 容量较小的情况),建议将 Conda 安装至数据目录

🛠 二、安装步骤(以 Miniconda 为例)

  1. 下载 Miniconda 安装脚本

    可在官网下载对应版本或使用 wget 命令:

    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  2. 运行安装脚本

    bash Miniconda3-latest-Linux-x86_64.sh

    安装过程中会提示输入安装路径,建议填写你自己的数据目录路径:

    /HDD_DISK/users/{username}/miniconda3
    

    其余一律回车。安装完成后,source ~/.bashrc

  3. 测试 Conda 是否安装成功

    conda --version

    会输出类似下面的内容,表示 Conda 已正常安装并可用:

    conda 24.3.0

🚀 三、加速安装:配置国内镜像源

由于服务器访问 PyPI 官方源速度较慢,可能导致安装 Python 包时超时或下载缓慢,建议配置国内镜像源以提升安装速度。

# 升级 pip
python -m pip install --upgrade pip
# 设置 pip 使用清华源
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

你也可以查看配置是否生效:

pip config list

💡 常见国内源列表(可选)

镜像源 地址
清华大学 https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
中科大 https://pypi.mirrors.ustc.edu.cn/simple
阿里云 https://mirrors.aliyun.com/pypi/simple/

📝 四、实战:使用 Conda 配置环境

配置项目环境的方式通常取决于该项目的 README.md 文档说明,建议每次都先通读一遍再动手。

PVG 项目 为例,配置环境:

conda create -n pvg python=3.9 -y
conda activate pvg

pip install -r requirements.txt

...

⚠️ 注意:PyTorch 与 CUDA 版本匹配

项目中常常会指定特定版本的 torch,而该版本只能搭配某些 CUDA 版本使用。如果你的服务器上 CUDA 版本不兼容,可能会安装失败或运行报错。

✅ 如何查找对应关系?

请前往 PyTorch 官网版本选择页,查找项目要求的 torch 版本所支持的 CUDA 版本。 例如,PVG 项目requirements.txt 中要求:

torch==2.0.1

查阅官网可知,torch==2.0.1 支持:

  • CUDA 11.7
  • CUDA 11.8

🔍 查看服务器当前 CUDA 版本

使用以下命令查看当前默认 CUDA 版本:

nvcc -V

示例输出:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Fri_Dec_17_18:16:03_PST_2021
Cuda compilation tools, release 11.6, V11.6.55
Build cuda_11.6.r11.6/compiler.30794723_0

说明当前默认版本是 CUDA 11.6,不满足 torch==2.0.1 的最低要求。

📦 查看服务器已安装的 CUDA 版本

ls /usr/local

输出示例:

bin  cuda  cuda-10.1  cuda-11.6  cuda-11.8  cuda-12.1  cuda-12.2  cuda-12.6  cuda-12.8  etc  games  include  lib  man  sbin  share  src  zed

🔧 切换至指定 CUDA 版本(以 11.8 为例)

编辑 ~/.bashrc,添加以下内容:

export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

执行 source ~/.bashrc 使配置生效,验证切换是否成功:

nvcc -V

应输出:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

✅ 安装 PyTorch

根据查到的版本信息,在终端中运行:

pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

🧱 可选:手动安装 CUDA(无 sudo 权限)

如果服务器没有你需要的 CUDA 版本(如 11.8),你也可以将其安装到数据目录中。

  1. 下载安装包

    cd /HDD_DISK/users/mazipei
    mkdir cuda_install
    cd cuda_install
    wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
  2. 运行安装程序(无需 sudo)

    chmod +x cuda_11.8.0_520.61.05_linux.run
    
    ./cuda_11.8.0_520.61.05_linux.run \
    --toolkit \
    --toolkitpath=/HDD_DISK/users/{username}/cuda-11.8 \
    --defaultroot=/HDD_DISK/users/{username}/cuda-11.8

    命令说明:

    • --toolkit 表示只安装CUDA工具包
    • --toolkitpath 指定安装路径
    • --defaultroot 指定默认根目录

    安装界面选项说明:

    • 取消勾选 [ ] Driver(无 sudo 权限安装不了驱动)
    • 保留 [X] CUDA Toolkit 和 [X] Documentation
    • 用方向键选中 Install → 回车开始安装
  3. 安装完成后:配置环境变量

    编辑 ~/.bashrc,添加以下内容:

    export PATH=/HDD_DISK/users/{username}/cuda-11.8/bin:$PATH
    export LD_LIBRARY_PATH=/HDD_DISK/users/{username}/cuda-11.8/lib64:$LD_LIBRARY_PATH
    export CUDA_HOME=/HDD_DISK/users/{username}/cuda-11.8

    执行 source ~/.bashrc 使配置生效。nvcc -V 查看是否切换成功。


🔥 五、实验推荐安装工具

  1. nvitop,方便查看GPU使用情况:

    pip install nvitop

    效果如下,可以实时查看GPU, CPU, 内存使用情况:

  2. ExpOven,方便提醒实验进度:

    具体安装见 ExpOvenREADME.md 文件。


🤗 Hugging Face 配置

Hugging Face 是一个流行的模型与数据集共享平台,但由于服务器访问其官网速度较慢,默认的下载路径也可能占用主目录空间。因此建议进行以下配置。

  1. 设置下载缓存目录到数据盘 Hugging Face 默认将模型、数据集等缓存到 ~/.cache/huggingface,可能占用主目录空间较大。你可以将其重定向到数据目录:

    export HF_HOME=/HDD_DISK/users/{username}/huggingface

    将这行添加到你的 ~/.bashrc~/.zshrc 中,并执行:

    source ~/.bashrc

    这样下载的模型和数据将会缓存在 /HDD_DISK/users/{username}/huggingface 下,避免挤满系统盘。

  2. 设置国内镜像加速 如果你访问 Hugging Face 较慢,可以尝试配置国内镜像:

    export HF_ENDPOINT=https://hf-mirror.com

    同样建议将其加入 ~/.bashrc~/.zshrc,以便永久生效。


About

提供一个极简的服务器使用介绍,为初入AI科研的同学提供些许帮助,更快上手。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published