第1关 Linux 基础知识
1. 完成SSH连接与端口映射并运行hello_world.py
- SSH连接配置
# wsl2中生成密钥对(~/.ssh/id_rsa, ~/.ssh/id_rsa.pub)
ssh-keygen -t rsa# 将id_rsa.pub在internStudio作为公钥导入
- SSH登录
$ ssh -p 38871 root@ssh.intern-ai.org.cn -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
Warning: Permanently added '[ssh.intern-ai.org.cn]:38871,[8.130.47.207]:38871' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.10.134-13.al8.x86_64 x86_64)---------------------------------- 欢迎使用 InternStudio 开发机 ------------------------------+--------+------------+----------------------------------------------------------------------+
| 目录 | 名称 | 简介 |
+--------+------------+----------------------------------------------------------------------+
| / | 系统目录 | 每次停止开发机会将其恢复至系统(镜像)初始状态。不建议存储数据。 |
+--------+------------+----------------------------------------------------------------------+
| /root | 用户家目录 | 您的所有开发机共享此目录,不受开发机的启停影响。强烈建议将 conda |
| | | 环境、代码仓库等所有数据存储在此目录下。 |
| | | 【注意】该目录有存储限额,超过限额后新写入的数据会被静默删除! |
+--------+------------+----------------------------------------------------------------------+
| /share | 共享目录 | 常用微调数据集、模型仓库、教程、xtuner 配置文件都存放在此。 |
+--------+------------+----------------------------------------------------------------------+
Tips:1. 快速从本地上传文件:scp -o StrictHostKeyChecking=no -r -P {端口} {本地目录} root@ssh.intern-ai.org.cn:{开发机目录}*注:在开发机 SSH 连接功能查看端口号2. 避免因终端关闭或 SSH 连接断开导致任务终止, 强烈建议使用 tmux 将实验进程与终端窗口分离:https://www.ruanyifeng.com/blog/2019/10/tmux.html3. 查看 GPU 显存和算力使用率: studio-smi4. 使用InternStudio开箱即用的conda环境:studio-conda -h5. 将conda环境一键添加到jupyterlab:lab add {YOUR_CONDA_ENV_NAME}----------------------------------------------------------------------------------------------
- 运行hello_world.py,并将Gradio的端口通过SSH隧道做端口映射
ssh -p 38871 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
- 浏览器器访问确认(localhost:7860)
第2关 Python 基础知识
请实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出现的次数。
import redef wordcount(text):text = text.lower()text = re.sub(r'[,\.:;"\'?!()\n\r]', ' ', text)words = text.split()count_dict = {}for word in words:if word not in count_dict:count_dict[word] = 1else:count_dict[word] += 1return count_dicttext = """Hello world!
This is an example.
Word count is fun.
Is it fun to count words?
Yes, it is fun!"""word_counts = wordcount(text)for word, count in word_counts.items():print(f"{word}: {count}")
输出
hello: 1
world: 1
this: 1
is: 4
an: 1
example: 1
word: 1
count: 2
fun: 3
it: 2
to: 1
words: 1
yes: 1