计算机知识基础

Linux 基础知识

完成SSH连接与端口映射并运行hello_world.py

  1. 完成SSH连接


    ssh连接

    查看基本信息

1.1 配置公钥免密登录
输入命令后一路回车就可以了,这里的密钥默认情况下是生成在/.ssh/目录下的,表示的是家目录,如果是windows就是C:\Users{your_username}
在windows power shell中生成rsa密码,配置到云环境的控制台

ssh-keygen -t rsa
生成本机公钥

开发机添加公钥


image.png

image.png
vs安装ssh-remote插件

1.2 打开远程文件夹


远程文件夹
  1. 端口映射
    在本地机器运行以下命令,可以将本机的7860端口映射到开发机的7860端口方便后续程序调试
ssh -p 34934 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
  1. 运行hello_world.py
    3.1 安装gradio
root@intern-studio-80004604:~# pip install gradio==4.29.0
image.png

3.2 在本机访问gradio应用


本机端口映射效果

将Linux基础命令在开发机上完成一遍

(base) root@intern-studio-80004604:~# touch test.log
(base) root@intern-studio-80004604:~# sta
start-stop-daemon  stat
(base) root@intern-studio-80004604:~# stat test.log
  File: test.log
  Size: 0               Blocks: 0          IO Block: 1048576 regular empty file
Device: 32h/50d Inode: 1458922765  Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-01-25 09:34:42.242235819 +0800
Modify: 2025-01-25 09:34:42.242235921 +0800
Change: 2025-01-25 09:34:42.242258791 +0800
 Birth: -
(base) root@intern-studio-80004604:~# mkdir gjw
(base) root@intern-studio-80004604:~# cd gjw
(base) root@intern-studio-80004604:~/gjw# pwd
/root/gjw
(base) root@intern-studio-80004604:~/gjw# vi aa
(base) root@intern-studio-80004604:~/gjw# cp aa bb
(base) root@intern-studio-80004604:~/gjw# ln aa.s aa
ln: failed to access 'aa.s': No such file or directory
(base) root@intern-studio-80004604:~/gjw# ln aa aa.s
(base) root@intern-studio-80004604:~/gjw# ll
total 13
drwxr-xr-x  2 root root 4096 Jan 25 09:35 ./
drwxr-xr-x 13 root root 4096 Jan 25 09:35 ../
-rw-r--r--  2 root root    5 Jan 25 09:35 aa
-rw-r--r--  2 root root    5 Jan 25 09:35 aa.s
-rw-r--r--  1 root root    5 Jan 25 09:35 bb
(base) root@intern-studio-80004604:~/gjw# ln -s aa.ss aa
ln: failed to create symbolic link 'aa': File exists
(base) root@intern-studio-80004604:~/gjw# ln -s aa aa.ss
(base) root@intern-studio-80004604:~/gjw# ll
total 13
drwxr-xr-x  2 root root 4096 Jan 25 09:35 ./
drwxr-xr-x 13 root root 4096 Jan 25 09:35 ../
-rw-r--r--  2 root root    5 Jan 25 09:35 aa
-rw-r--r--  2 root root    5 Jan 25 09:35 aa.s
lrwxrwxrwx  1 root root    2 Jan 25 09:35 aa.ss -> aa
-rw-r--r--  1 root root    5 Jan 25 09:35 bb
(base) root@intern-studio-80004604:~/gjw# mv bb cc
(base) root@intern-studio-80004604:~/gjw# rm cc
(base) root@intern-studio-80004604:~/gjw# find ./ -name aa
./aa
(base) root@intern-studio-80004604:~/gjw# vi test.log
(base) root@intern-studio-80004604:~/gjw# sed a test.log
sed: -e expression #1, char 1: expected \ after `a', `c' or `i'
(base) root@intern-studio-80004604:~/gjw# sed "a" test.log
sed: -e expression #1, char 1: expected \ after `a', `c' or `i'
(base) root@intern-studio-80004604:~/gjw# sed '2p' test.log
abc
def
def
(base) root@intern-studio-80004604:~/gjw#
(base) root@intern-studio-80004604:~/gjw# cat test.log
abc
def
(base) root@intern-studio-80004604:~/gjw# sed -n '2p' test.log
def
(base) root@intern-studio-80004604:~/gjw# sed -i 's/a/j/g' test.log
(base) root@intern-studio-80004604:~/gjw# cat test.log
jbc
def

使用 VSCODE 远程连接开发机并创建一个conda环境

在本机vscode可以运行服务器程序


本机运行效果

vscode端口映射


vscode端口映射

conda环境管理

#创建conda环境
conda create --name myenv python=3.9
#查看当前设备上所有的虚拟环境
conda env list
#查看当前环境中安装了的所有包
conda list
#删除环境(比如要删除myenv)
conda env remove myenv
# 激活myenv
conda activate myenv
#退出环境
conda deactivate
#把虚拟环境安装到指定目录
conda create --prefix /root/envs/myenv python=3.9
# 激活指定目录的虚拟环境
conda activate /root/envs/myenv

查看虚拟环境

将vscode链接到远程的新建的conda环境
邮件点击vscode右下角的python运行环境,会弹出python环境选择框,选择自己需要使用的环境


链接远程conda环境

Python 基础知识

leetcode 383提交记录

使用两种方法提交


使用了两个方法

调用书生浦语API


image.png

Vscode连接InternStudio debug笔记

debug书生浦语API


debug截图

该bug的原因是返回值不是json格式,需要截取出json的格式
两种修复方法:
1,修改提示词,截图json

prompt = f"""
请帮我从以下``内的这段模型介绍文字中提取关于该模型的信息,要求包含模型名字、开发机构、提供参数版本、上下文长度四个内容,不要上下文提示,只给出json字符串。
`{content}`
"""
res = internlm_gen(prompt,client)
res = res[7:-3]
res_json = json.loads(res)
print(res_json)
image.png

2,直接截取json


image.png
prompt = f"""
请帮我从以下``内的这段模型介绍文字中提取关于该模型的信息,要求包含模型名字、开发机构、提供参数版本、上下文长度四个内容,以json形式返回。
`{content}`
"""
res = internlm_gen(prompt,client)
res = res.split("\n\n")[1]
res = res[7:-3]
res_json = json.loads(res)
print(res_json)

pip安装到指定目录

使用pip把包安装到指定目录

# 首先激活环境
conda activate /root/share/pre_envs/pytorch2.1.2cu12.1

# 创建一个目录/root/myenvs,并将包安装到这个目录下
mkdir -p /root/myenvs
pip install <somepackage> --target /root/myenvs

# 注意这里也可以使用-r来安装requirements.txt
pip install -r requirements.txt --target /root/myenvs

使用指定目录的python包

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

Git 基础知识

本项目的学习链接:https://github.com/InternLM/Tutorial

学习链接

破冰活动:自我介绍

github账号已有


fork项目

fork之后的链接: https://github.com/guojiangwei/Tutorial
将项目clone到本地
git clone https://github.com/guojiangwei/Tutorial.git

image.png

查看有那些分支

D:\>cd llm\study
D:\llm\study>git clone https://github.com/guojiangwei/Tutorial.git
D:\llm\study>cd Tutorial
D:\llm\study\Tutorial>git branch -r
  origin/HEAD -> origin/camp4
  origin/camp1
  origin/camp2
  origin/camp2_en
  origin/camp3
  origin/camp4
  origin/class
  origin/revert-1303-camp3_2393
D:\llm\study\Tutorial>git checkout -b uid origin/class
Switched to a new branch '7333'
branch '7333' set up to track 'origin/class'.

编写个人介绍文件


个人介绍.png

提交到仓库

PS D:\llm\study\Tutorial> git add .
PS D:\llm\study\Tutorial> git commit -m "git_camp4_7333_introduction"
PS D:\llm\study\Tutorial> git push origin HEAD:class

提交PR


PR

PR2

image.png

实践项目:构建个人项目

当前建了一个空项目:https://github.com/guojiangwei/bookGPT

bookGPT

玩转HF/魔搭/魔乐社区

模型下载

huggingface下载

huggingface网址:https://huggingface.co/
注册huggingface账号

huggingface页面

实例代码

使用github codespace
codespace

# 安装transformers
pip install transformers==4.38
pip install sentencepiece==0.1.99
pip install einops==0.8.0
pip install protobuf==5.27.2
pip install accelerate==0.33.0
下载模型指定文件

下载结果

codespace执行结果


result

魔塔下载

# 激活环境
conda activate /root/share/pre_envs/pytorch2.1.2cu12.1

# 安装 modelscope
pip install modelscope -t /root/env/maas
pip install numpy==1.26.0  -t /root/env/maas
pip install packaging -t /root/env/maas

设置Linux环境变量

export PATH=$PATH:/root/env/maas/bin
export PYTHONPATH=/root/env/maas:$PYTHONPATH

注意:为了保证能够找到我们每次装的依赖,每次新建一个终端之后都需要导出path 如果不改变终端,导出一次就够了

接着创建我们的demo目录

mkdir -p /root/ms_demo

下载指定多个文件

modelscope download \
    --model 'Shanghai_AI_Laboratory/internlm2_5-7b-chat' \
    tokenizer.json config.json model.safetensors.index.json \
    --local_dir '/root/ms_demo'
下载多个文件
  • internlm2_5-7b-chat 考虑到7B的模型文件比较大,这里我们先采用modelscope的cli工具(当然hugging face也有)来下载指定文件,在命令行输入以下命令

刷新一下文件目录,就能看到在ms_demo中下载了指定的json文件。


image.png
  • internlm2_5-1_8b-chat
modelscope download \
    --model 'Shanghai_AI_Laboratory/internlm2_5-1_8b-chat' \
    tokenizer.json config.json model.safetensors.index.json \
    --local_dir '/root/ms_demo'

模型上传

模型文件比较大,需要下载git-lfs

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
# sudo apt-get install git-lfs # CodeSpace里面可能会有aptkey冲突且没有足够权限
git lfs install # 直接在git环境下配置git LFS
pip install huggingface_hub

创建access token


创建的token

在codespaces中设置token

git config --global credential.helper store
huggingface-cli login

运行huggingface-cli login 后会提示输入输入token


输入token

创建模型项目

cd /workspaces/codespaces-jupyter

#intern_study_L0_4就是model_name
huggingface-cli repo create intern_study_L0_4

# 克隆到本地 your_huggingface_name 注意替换成你自己的
本人huggingface spaces地址:https://huggingface.co/spaces/jiangwei01/intern_cobuild
git clone https://huggingface.co/jiangwei01/intern_study_L0_4

刷新codespace后可以看到clone的仓库


webide
添加文件

提交文件

cd intern_study_L0_4
git add .
git commit -m "add:intern_study_L0_4"
git push

如果提示没有权限提交代码,需要配置key
提交成功后,可以在hugging face 模型界面查看到
模型网址:https://huggingface.co/jiangwei01/intern_study_L0_4

模型界面

Space上传

创建space


space
欢迎界面

从codespace下载huggingface space的代码

cd /workspaces/codespaces-jupyter
# 请将<your_username>替换你自己的username
git clone https://huggingface.co/spaces/jiangwei01/intern_cobuild
cd /workspaces/codespaces-jupyter/intern_cobuild
index
git add .
git commit -m "update: colearn page"
git push

git push时会提示没有权限,在提交代码时需要设置token

git remote set-url origin https://username:token@huggingface.co/spaces/jiangwei01/intern_cobuild
更新后的space
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容