!前言:作业审判官可以直接点击目录查看作业更加方便哦~
Task1 Linux基础知识
在大二一年的学习路程中,初步会使用一些ubuntu下的操作。因此,只记录一些自己不会的当做笔记,节约时间,并非完整教程,github文档写的非常好,建议直接访问。
1.端口映射
不进行端口映射的结果
(base) root@intern-studio-002836:/home/demo# python hello_world.py
Running on local URL: http://127.0.0.1:7860
IMPORTANT: You are using gradio version 4.29.0, however version 4.44.1 is available, please upgrade.
--------
To create a public link, set `share=True` in `launch()`.
进行映射后:
2.硬链接&软链接
硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
一般使用软连接,它的常用的使用方法如下:
ln [参数][源文件或目录][目标文件或目录]
参数如下:
- -s:创建软链接(符号链接)也是最常用的;
- -f:强制执行,覆盖已存在的目标文件;
- -i:交互模式,文件存在则提示用户是否覆盖;
- -n:把符号链接视为一般目录;
- -v:显示详细的处理过程。
3.mv
mv file1.txt file2.txt
:将文件file1.txt
重命名为file2.txt
。
4.find
5.sed
sed
命令是一种流编辑器,主要用于文本处理,在处理复杂的文件操作时经常用到,
sed
命令常用参数及使用示例如下:
- 参数说明:-
-e<script>
或--expression=<script>
:直接在命令行中指定脚本进行文本处理。--f<script文件>
或--file=<script文件>
:从指定的脚本文件中读取脚本进行文本处理。--n
或--quiet
或--silent
:仅打印经过脚本处理后的输出结果,不打印未匹配的行。 - 动作说明:-
a
:在当前行的下一行添加指定的文本字符串。-c
:用指定的文本字符串替换指定范围内的行。-d
:删除指定的行。-i
:在当前行的上一行添加指定的文本字符串。-p
:打印经过选择的行。通常与-n
参数一起使用,只打印匹配的行。-s
:使用正则表达式进行文本替换。例如,s/old/new/g
将所有 "InternLM" 替换为 "InternLM yyds"。
6.grep
grep
是一个强大的文本搜索工具。常用参数如下:
-i
:忽略大小写进行搜索。-v
:反转匹配,即显示不匹配的行。-n
:显示行号。-c
:统计匹配的行数。
7.进程管理
进程管理命令是进行系统监控和进程管理时的重要工具,常用的进程管理命令有以下几种:
- ps:查看正在运行的进程
- top:动态显示正在运行的进程
- pstree:树状查看正在运行的进程
- pgrep:用于查找进程
- nice:更改进程的优先级
- jobs:显示进程的相关信息
- bg 和 fg:将进程调入后台
- kill:杀死进程
8.熟悉nvidia-smi输出
9.TMUX
使用
lsb_release -a
命令查看ubuntu的系统信息
https://www.ruanyifeng.com/blog/2019/10/tmux.html
【Task1提交作业】
L0G1000
闯关任务完成SSH连接与端口映射并运行
hello_world.py
SSH连接
可选任务 1将Linux基础命令在开发机上完成一遍10min可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境10min
任务1已完成
运行的命令截图,就不一一展示了。
任务2已完成:由第一个任务已经进行ssh连接,现创建一个conda环境
(等待过程中,换了个德古拉背景嘿嘿,所以背景看起来不一样了)
顺利完成第一关!
Task2 Python 基础知识
1.使用特定路径的包
import sys
# 你要添加的目录路径
your_directory = '/root/myenvs'
# 检查该目录是否已经在 sys.path 中
if your_directory not in sys.path:
# 将目录添加到 sys.path
sys.path.append(your_directory)
# 现在你可以直接导入该目录中的模块了
# 例如:import your_module
2.vscode连接开发机进行python debug
①条件断点
- 条件断点:在断点标记上右键,选择条件断点(conditional breakpoint)。VSCode 中常用的条件断点主要有三种类型: 1. 表达式(Expression):输入一个 Python 表达式,每次触发断点时运行该表达式,当表达式的值为 True 时 VS Code 会暂停执行。例如:
x == 10
2. 触发计数(Hit Count):断点触发计数达到输入值时才会暂停运行。3. 记录日志(Log Message):触发该断点时在 Debug Console 中输出指定信息,实际上就是 logpoint。需要输入要输出的信息,如果要用到表达式,可以使用{}
将表达式括起来。例如,每次记录变量i
的值可以写x={i}
。
②命令行debug
#pip install debugpy
python -m debugpy --listen 5678 --wait-for-client ./debug_test.py
简化命令
alias pyd='python -m debugpy --wait-for-client --listen 5678'
成功
运行命令 pyd debug_test.py
3.Python调用InternLM api
api添加到环境变量成功,能够运行示例文件得到回答。
【Task2提交作业】
闯关任务Leetcode 383(笔记中提交代码与leetcode提交通过截图)20mins
class Solution:
def canConstruct(self, ransomNote: str, magazine: str) -> bool:
len1=len(ransomNote)
len2=len(magazine)
if len1>len2:
print("false")
return False
dic1={chr(i): 0 for i in range(ord('a'),ord('z')+1)}
for char in ransomNote:
dic1[char] +=1
dic2={chr(i):0 for i in range(ord('a'),ord('z')+1)}
for char in magazine:
dic2[char] +=1
for char in dic1:
if dic1[char]>dic2[char]:
print("false")
return False
print("true")
return True
运行结果
细枝末节笔记:
#return false 错误 false不是关键字,False才是
return False
return True #而不是true
闯关任务Vscode连接InternStudio debug笔记10mins
开始debug:
启动调试
发现问题,步步调试
上网搜索
json.decoder.JSONDecodeError错误:
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
解析一个空字符串或无效的 JSON 数据
尝试print(res),发现没问题啊调试bug,中途连接断了,再次重新远程debug,出现错误
(base) root@intern-studio-002836:~/L0G# pyd findBug.py
.........(略)
File "/root/.conda/lib/python3.11/site-packages/debugpy/public_api.py", line 31, in wrapper
return wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.conda/lib/python3.11/site-packages/debugpy/server/api.py", line 143, in debug
log.reraise_exception("{0}() failed:", func.name, level="info")
File "/root/.conda/lib/python3.11/site-packages/debugpy/server/api.py", line 141, in debug
return func(address, settrace_kwargs, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.conda/lib/python3.11/site-packages/debugpy/server/api.py", line 262, in listen
raise RuntimeError(str(endpoints["error"]))
RuntimeError: Can't listen for client connections: [Errno 98] Address already in use
解决方案
远程太容易断了,每次断了都要手动kill一下进程,我真不懂怎么解决,最后改为本地调试
在网上搜了一下+chatgpt老师的倾情指导
因为输出的形式是带有一些无关字符''json''和’’\n",采用python的replace函数,替换成功。
根本原因是没有识别到正确的格式。
最后修改的代码为
完美!
可选任务pip安装到指定目录10mins
使用命令
pip install numpy -t /root/L0G/pkgs/
最后安装成功
引用成功:
import sys
# 你要添加的目录路径
your_directory = '/root/L0G/pkgs'
# 检查该目录是否已经在 sys.path 中
if your_directory not in sys.path:
# 将目录添加到 sys.path
sys.path.append(your_directory)
print(sys.path)
# 现在你可以直接导入该目录中的模块了
# 例如:import your_module
import numpy as np
print(np.__file__)
输出信息:系统检测到我在从源码导入。
他希望我能直接pip install numpy 而不是引用源码numpy
Task3 Git基础
嘿嘿,经过半年学习大悟特悟,直接开整!
【Task3 提交作业】
1破冰活动提交一份自我介绍。
成功~
2实践项目创建并提交一个项目。
没看懂这个作业,什么叫“创建并维护一个公开的大模型相关项目或笔记仓库”??
我不知道有哪些公开的大模型相关项目,我也还没有维护人家项目的能力呀~
只能说在git上提交了自己之前写的项目,例如我的作品https://github.com/Hanqi7921/Digital-Signal-Process-Voice.git
不过我最近打算去看一下FastGPT的源码比较下V4.0和当前版本的差异所以
放这儿吧:https://github.com/labring/FastGPT.git
【Task4 社区】
【Task4 提交作业】
任务描述时间模型下载使用Hugging Face平台、魔搭社区平台(可选)和魔乐社区平台(可选)下载文档中提到的模型(至少需要下载config.json文件、model.safetensors.index.json文件),请在必要的步骤以及结果当中截图。20min模型上传(可选)将我们下载好的config.json文件(也自行添加其他模型相关文件)上传到对应HF平台和魔搭社区平台,并截图。10minSpace上传(可选)在HF平台上使用Spaces并把intern_cobuild部署成功,关键步骤截图。10min
模型下载
续写成功
创建新号新项目成功
修改html
果然遇到这个报错
添加token解决成功
看见图片了
模型上传,按照此步配置好了git
导入模型成功:注意每次进入一个新的项目,都会要求set url再输入一遍token
关于部署问题:没有特别弄懂,先去玩一玩huggingface平台了,后面摸熟了反过来弄吧,先睡觉了嘿嘿。
版权归原作者 Hanqi.i 所有, 如有侵权,请联系我们删除。