跳转至

科研Tips

1.针对要从huggingface上下载模型和数据集如何解决?

镜像网站 + huggingface-cli

会将下载的模型和数据集自动链接到默认的目录下

# 首先,pip安装库 huggingface-cli
 pip install -U huggingface_hub
# 然后,设置镜像地址
 export HF_ENDPOINT=https://hf-mirror.com

# 模型下载指令
huggingface-cli download --resume-download gpt2 --local-dir gpt2
# 数据集下载指令
huggingface-cli download --repo-type dataset --resume-download wikitext --local-dir wikitext

local-dir填写本地地址即可

2.使用Jupyter运行程序释放内存指令

ps -ef | grep jupyter | grep -v grep | awk '{print $2}' | xargs kill -9

3. 使用transformers库调用模型进行单机多卡训练

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '1, 2, 3'

from transformers import AutoModelForSeq2SeqLM

model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0pp", device_map="auto", torch_dtype=torch.float16)
  • device_map = ‘auto’ 用来自动使用定义的cuda设别 (这里似乎只能指定3个设备 ≥3时会出现tensor存在于两个device的情况)

  • torch_dtype = torch.float16 通过参数指定模型加载到的精度来节省内存

4. tqdm设置在终端一行内显示

import time
from tqdm import range
# 自动更新
for i in tqdm(range(10)): # 共可以更新10次进度条
    time. Sleep(0.5) # 每次更新间隔0.5s

5. 远程服务器免密登录

# 首先在本机上生成一对公钥和私钥(win+R进入cmd)
ssh-keygen -t rsa
# 一直回车会在./ssh文件得到两个文件
./ssh/id_rsa ==>私钥
./ssh/id_rsa.pub ==>公钥
# 然后将公钥上传到远程服务器上
# 方法一
ssh-copy-id -i ~/.ssh/id_rsa.pub -p port 'username@ip'

# 方法二
scp ~/.ssh/id_rsa.pub -p port username@ip:~/home(主机终端)
cat ~/home/id_rsa.pub >> ~/.ssh/authorizes_keys(远程服务器终端)

powershell无法使用ssh-copy-id 怎么办?

  • bash function ssh-copy-id([string]$userAtMachine, $args){ $publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub" if (!(Test-Path "$publicKey")){ Write-Error "ERROR: failed to open ID file '$publicKey': No such file" } else { & cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1" } }

复制上面脚本,粘贴到终端,回车运行

  • 通过git-bash实现(最简单的方式
  • 暴力复制粘贴😂

6. 网页部署

# 第1步 编译React项目 得到build文件夹
npm run build
# 第2步 安装nginx服务器软件
ssh 服务器用户@公网ip
yum install epel-release -y 
yum install nginx -y
​```
开启防火墙:systemctl start nginx
启动nginx:service nginx start
重启nginx:nginx -s reload
关闭nginx:service nginx stop
​```
服务器输入公网ip查看是否启动成功
# 第3步 上传编译得到的build文件夹到云服务器
eg. /www/sed
# 第4步 在/etc/nginx/conf.d文件夹下创建配置文件 eg. sed.conf(前缀自定义)```
server {
    listen      80; #端口号
    server_name 47.113.223.186; #域名
    root /www/sed; #文件路径
    index index.html; #配置默认访问的界面
    #输入错误路径 跳转到index.html
    location / {
        try_files $uri $uri/    /index.html;
    }
}```
# 第5步 重启nginx服务器 服务器输入公网ip查看是否成功