书生浦语大模型实战营Camp4-L0:Linux前置基础
- 教程地址:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/linux
- 任务地址:https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/linux/task.md
任务描述 | 完成所需时间 | |
---|---|---|
闯关任务 | 完成SSH连接与端口映射并运行hello_world.py | 10min |
可选任务 1 | 将Linux基础命令在开发机上完成一遍 | 10min |
可选任务 2 | 使用 VSCODE 远程连接开发机并创建一个conda环境 | 10min |
可选任务 3 | 创建并运行test.sh 文件 | 10min |
闯关任务
完成SSH连接与端口映射并运行hello_world.py
第一步:首先按照教程创建开发机,然后点击ssh连接
第二步:按照教程配置ssh公钥以及配置vscode
然后就可以愉快地通过vscode连接开发机了,非常丝滑:
第三步:创建环境并安装gradio,主要命令如下
conda create -n py10 python=3.10 -y
conda activate py10
pip install gradio
第四步:新建文件夹homework,用于保存作业,新建hello_world.py,输入相应代码:
import socket
import re
import gradio as gr# 获取主机名
def get_hostname():hostname = socket.gethostname()match = re.search(r'-(\d+)$', hostname)name = match.group(1)return name# 创建 Gradio 界面
with gr.Blocks(gr.themes.Soft()) as demo:html_code = f"""<p align="center"><a href="https://intern-ai.org.cn/home"><img src="https://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg" alt="Logo" width="20%" style="border-radius: 5px;"></a></p><h1 style="text-align: center;">☁️ Welcome {get_hostname()} user, welcome to the ShuSheng LLM Practical Camp Course!</h1><h2 style="text-align: center;">😀 Let’s go on a journey through ShuSheng Island together.</h2><p align="center"><a href="https://github.com/InternLM/Tutorial/blob/camp3"><img src="https://oss.lingkongstudy.com.cn/blog/202406301604074.jpg" alt="Logo" width="20%" style="border-radius: 5px;"></a></p>"""gr.Markdown(html_code)demo.launch()
运行hello_world.py:
python hello_world.py
第五步:使用ssh做端口转发,或者直接用vscode地端口转发即可,命令行端口转发如下:
ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no
例如:
ssh -p 37367 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
说明:
个人PC会远程连接到开发机唯一暴露在外的37367端口,(这个在SSH的时候提到过每个人的开发机暴露的端口都不一样),并设置隧道选项。暴露端口是作为中转站进行流量的转发。
-C
:启用压缩,减少传输数据量。-N
:不执行远程命令,只建立隧道。-g
:允许远程主机连接到本地转发的端口。当在个人PC上执行这个SSH命令后,SSH客户端会在本地机器的7860端口上监听。
任何发送到本地7860端口的流量,都会被SSH隧道转发到远程服务器的127.0.0.1地址上的7860端口。
这意味着,即使开发机的这个端口没有直接暴露给外部网络,我们也可以通过这个隧道安全地访问远程服务器上的服务。
划重点:强烈建议配置ssh公钥,然后配置好vscode,用vscode做端口自动转发很方便
运行结果如下:
可选任务1
将Linux基础命令在开发机上完成一遍
这个按照教程跑一遍即可,这里做个记录:
文件管理
- 创建文件:可以使用
touch
命令创建空文件。 - 创建目录:使用
mkdir
命令。 - 目录切换:使用
cd
命令。 - 显示所在目录:使用
pwd
命令。 - 查看文件内容:如使用
cat
直接显示文件全部内容,more
和less
可以分页查看。 - 编辑文件:如
vi
或vim
等编辑器。 - 复制文件:用
cp
命令。 - 创建文件链接:用
ln
命令。 - 移动文件:通过
mv
命令。 - 删除文件:使用
rm
命令。 - 删除目录:
rmdir
(只能删除空目录)或rm -r
(可删除非空目录)。 - 查找文件:可以用
find
命令。 - 查看文件或目录的详细信息:使用
ls
命令,如使用ls -l
查看目录下文件的详细信息。 - 处理文件:进行复杂的文件操作,可以使用
sed
命令。
进程管理
进程管理命令是进行系统监控和进程管理时的重要工具,常用的进程管理命令有以下几种:
- ps:查看正在运行的进程
- top:动态显示正在运行的进程
- pstree:树状查看正在运行的进程
- pgrep:用于查找进程
- nice:更改进程的优先级
- jobs:显示进程的相关信息
- bg 和 fg:将进程调入后台
- kill:杀死进程
工具使用
- 这里介绍了tmux,本人还是更喜欢screen这个工具,选择其一就好
- conda,环境管理
- shell,基本操作
可选任务2
使用 VSCODE 远程连接开发机并创建一个conda环境
这个在做闯关任务的时候,已经完成了,用vscode很是方便
可选任务3
**创建并运行test.sh
文件 **
创建一个test.sh文件,用于安装xtuner环境,内容如下
# 创建虚拟环境
conda create -n llamaindex python=3.10 -y
conda activate llamaindex
pip install llama-index==0.10.38
运行bash test.sh
即可。