如何在linux系统上创建一个虚拟环境用于专门的大模型训练 #78

Open
opened 2024-09-13 12:11:30 +08:00 by 11423366901cs · 1 comment
No description provided.
在Linux操作系统中,root用户有最高管理权限,但是所有的操作都由root用户来完成就会造成安全隐患,所以一般来说针对某一个专业的操作都需要专门的用户来对应,比如操作数据库我们可以生成一个db_user,操作大模型我们可以生成一个llm_user(新创建的用户名可以随便取,便于自己记忆和管理就行)等等。 下面举例创建一个llm_user。 当我们进入linux到终端,在命令行看到“root”说明现在正在以root用户登录。 (base) root@dsw-439352-64bf97c9c5-swt6m:/mnt/workspace# 下面是创建新用户的命令“adduser”,“adduser”后面跟新创建的用户名,根据提示完成用户创建。 (base) root@dsw-439352-64bf97c9c5-swt6m:/mnt/workspace# adduser llm_user Adding user `llm_user' ... Adding new group `llm_user' (1000) ... Adding new user `llm_user' (1000) with group `llm_user' ... Creating home directory `/home/llm_user' ... Copying files from `/etc/skel' ... 新的密码: 重新输入新的密码: passwd:已成功更新密码 正在改变 llm_user 的用户信息 请输入新值,或直接敲回车键以使用默认值 全名 []: 房间号码 []: 工作电话 []: 家庭电话 []: 其它 []: Is the information correct? [Y/n] y 所以信息填完以后输入y,新用户的创建就完成了。 要切换到其它用户就用“su”命令。su+新用户名 (base) root@dsw-439352-64bf97c9c5-swt6m:/mnt/workspace# su llm_user 可以看到执行了“su llm_user”以后命令行的用户名就变成了llm_user了。 llm_user@dsw-439352-64bf97c9c5-swt6m:/mnt/workspace$ 用“cat /etc/passwd | cut -d: -f1”命令能看到现在系统上的所以用户 llm_user@dsw-439352-64bf97c9c5-swt6m:/mnt/workspace$ cat /etc/passwd | cut -d: -f1 root daemon bin : : llm_user 为该用(llm_user)户安装一个conda环境,这里可以选择从本地上传一个安装文件到云端服务器来安装,也可以用命令行来安装,但是下载最好用root用户,其它用户可能会因为权限原因而导致下载失败。 (base) root@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace# cd ~/ && wget https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-x86_64.sh--2024-09-13 10:36:21-- https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-x86_64.sh 正在解析主机 repo.anaconda.com (repo.anaconda.com)... 104.16.191.158, 104.16.32.241, 2606:4700::6810:bf9e, ... 正在连接 repo.anaconda.com (repo.anaconda.com)|104.16.191.158|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度: 93614234 (89M) [application/x-sh] 正在保存至: ‘Miniconda3-py38_23.5.2-0-Linux-x86_64.sh.2’ Miniconda3-py38_23.5.2-0-Linux-x86_6 100%[===================================================================>] 89.28M 21.3MB/s 用时 4.9s 2024-09-13 10:36:26 (18.2 MB/s) - 已保存 ‘Miniconda3-py38_23.5.2-0-Linux-x86_64.sh.2’ [93614234/93614234]) 也可以通过以下地址下载到本地电脑,然后再上传到云端服务器 https://repo.anaconda.com/miniconda/ https://www.anaconda.com/download Miniconda是一个精简版,只包含conda包管理器和基础的Python环境,而Anaconda则包含了丰富的科学计算软件包,因此安装包体积通常比Miniconda大,Anaconda预装了大量的科学计算库和工具。可根据自己的用途选择安装哪个文件。 root用户下载的文件由其它用户执行安装会因为权限不足而导致安装失败,比如: (base) root@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace# ls -l 总计 1032068 -rw-r--r-- 1 root root 1056829859 9月 13 09:36 Miniconda3-py38_23.5.2-0-Linux-x86_64.sh 这里显示该文件对于非root用户来说,它只有读取(r)权限,没有执行(x)权限。所以需要通过以下命令赋予它执行权限。 (base) root@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace# chmod +x Miniconda3-py38_23.5.2-0-Linux-x86_64.sh (base) root@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace# ls -l 总计 1032068 -rwxr-xr-x 1 root root 1056829859 9月 13 09:36 Miniconda3-py38_23.5.2-0-Linux-x86_64.sh 这样其它用户就可以执行该文件了。 现在再切换到llm-user用户。 (base) root@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace# su llm_user llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ ls -l 总计 1032068 -rwxr-xr-x 1 root root 1056829859 9月 13 09:36 Miniconda3-py38_23.5.2-0-Linux-x86_64.sh 执行该文件 llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ ./Miniconda3-py38_23.5.2-0-Linux-x86_64.sh Welcome to Miniconda3 py38_23.5.2-0 In order to continue the installation process, please review the license agreement. Please, press ENTER to continue >>> ====================================== End User License Agreement - Miniconda ====================================== : : 根据提示完成程序的安装 检查conda命令是否能正确执行, llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ conda --version bash: conda: 未找到命令 有可能conda命令没有被添加进path,下面可以查看该用户的path情况 llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 用以下命令让conda添加进path llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ export PATH="/home/llm_user/miniconda3/bin:$PATH" 再次检查,能看到conda命令能够正确执行了。 llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ echo $PATH /home/llm_user/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ conda --version conda 23.5.2 接下来就可以创建虚拟环境了。myenv是自己想命名的环境名称,可以根据自己的需求命名。python=x.xx是需要安装的python版本号,根据系统需求来设定。 llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ conda create --name myenv python=3.11 Collecting package metadata (current_repodata.json): done Solving environment: done : : zlib pkgs/main/linux-64::zlib-1.2.13-h5eee18b_1 Proceed ([y]/n)? y <-这里输入“y”,大小写都可以。 出现以下信息安装就完成了 Downloading and Extracting Packages Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate myenv # # To deactivate an active environment, use # # $ conda deactivate 要启动虚拟环境之前需要先执行conda init llm_user@dsw-439352-5f5cb67f8-xgllp:/mnt/workspace$ conda init no change /home/llm_user/miniconda3/condabin/conda no change /home/llm_user/miniconda3/bin/conda no change /home/llm_user/miniconda3/bin/conda-env no change /home/llm_user/miniconda3/bin/activate no change /home/llm_user/miniconda3/bin/deactivate no change /home/llm_user/miniconda3/etc/profile.d/conda.sh no change /home/llm_user/miniconda3/etc/fish/conf.d/conda.fish no change /home/llm_user/miniconda3/shell/condabin/Conda.psm1 no change /home/llm_user/miniconda3/shell/condabin/conda-hook.ps1 no change /home/llm_user/miniconda3/lib/python3.8/site-packages/xontrib/conda.xsh no change /home/llm_user/miniconda3/etc/profile.d/conda.csh no change /home/llm_user/.bashrc No action taken. 执行完之后需要重新打开一个终端再执行“conda activate myenv” (base) llm_user@dsw-439352-5f5cb67f8-xgllp:/root$ conda activate myenv (myenv) llm_user@dsw-439352-5f5cb67f8-xgllp:/root$ 可以看到用户名前面从(base)变成了(myenv) ,说明虚拟环境已经启动成功了。接下来就可以用非专门管理大模型的用户操作大模型了。
[https://hsw-git.huishiwei.cn/HswOAuth/llm_course/issues/79](url)
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: HswOAuth/llm_course#78
No description provided.