0


【书生】Task1~4 入门(linux/python/git/huggingface)

!前言:作业审判官可以直接点击目录查看作业更加方便哦~

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

①条件断点

  1. 条件断点:在断点标记上右键,选择条件断点(conditional breakpoint)。VSCode 中常用的条件断点主要有三种类型: 1. 表达式(Expression):输入一个 Python 表达式,每次触发断点时运行该表达式,当表达式的值为 True 时 VS Code 会暂停执行。例如:x == 102. 触发计数(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平台了,后面摸熟了反过来弄吧,先睡觉了嘿嘿。

标签: 数据库

本文转载自: https://blog.csdn.net/m0_74163093/article/details/143352292
版权归原作者 Hanqi.i 所有, 如有侵权,请联系我们删除。

“【书生】Task1~4 入门(linux/python/git/huggingface)”的评论:

还没有评论