Linux 基础知识
完成SSH连接与端口映射并运行hello_world.py
-
完成SSH连接
ssh连接
查看基本信息
1.1 配置公钥免密登录
输入命令后一路回车就可以了,这里的密钥默认情况下是生成在/.ssh/目录下的,表示的是家目录,如果是windows就是C:\Users{your_username}
在windows power shell中生成rsa密码,配置到云环境的控制台
ssh-keygen -t rsa
开发机添加公钥
1.2 打开远程文件夹
- 端口映射
在本地机器运行以下命令,可以将本机的7860端口映射到开发机的7860端口方便后续程序调试
ssh -p 34934 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
- 运行hello_world.py
3.1 安装gradio
root@intern-studio-80004604:~# pip install gradio==4.29.0
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端口映射
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环境选择框,选择自己需要使用的环境
Python 基础知识
leetcode 383提交记录
使用两种方法提交
调用书生浦语API
Vscode连接InternStudio debug笔记
debug书生浦语API
该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)
2,直接截取json
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之后的链接: https://github.com/guojiangwei/Tutorial
将项目clone到本地
git clone https://github.com/guojiangwei/Tutorial.git
查看有那些分支
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'.
编写个人介绍文件
提交到仓库
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
实践项目:构建个人项目
当前建了一个空项目:https://github.com/guojiangwei/bookGPT
玩转HF/魔搭/魔乐社区
模型下载
huggingface下载
huggingface网址:https://huggingface.co/
注册huggingface账号
使用github 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执行结果
魔塔下载
# 激活环境
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文件。
- 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
在codespaces中设置token
git config --global credential.helper store
huggingface-cli login
运行huggingface-cli login 后会提示输入输入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的仓库
提交文件
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
从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
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