Administrator
发布于 2024-08-05 / 259 阅读
0
0

操作服务器基本命令和知识

pip install python镜像

pip install <package_name> -i https://pypi.tuna.tsinghua.edu.cn/simple

单次使用

pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

全局

nano ~/.pip/pip.conf

[global]
index-url = https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

ssh chenyongyuan@10.82.77.110 -p 8899

wget -c 'https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh' -P /home/chenyongyuan/Downloads

export PATH=$PATH:/home/chenyongyuan/anaconda3/bin

source /home/chenyongyuan/anaconda3/bin/activate RETRO_Py310

清华镜像https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

github镜像

原本是git clone https://github.com/huggingface/transformers.git

把github.com替换成github.ocyy.top

git clone https://github.com/huggingface/transformers.git

下载huggingface权重文件/huggingface镜像

linux终端

linux方法1

HF_ENDPOINT=https://hf-mirror.com python -c "
from datasets import load_dataset
load_dataset('natural_questions', cache_dir='./nq_data')
"

linux方法2

HF_ENDPOINT=https://hf-mirror.com  huggingface-cli login --token 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
HF_ENDPOINT=https://hf-mirror.com  huggingface-cli download meta-llama/Llama-3.1-8B-Instruct --local-dir /data1/chenyongyuan/llm/model/meta-llama/Llama-3.1-8B-Instruct

windows终端

windows方法1

set HF_ENDPOINT=https://hf-mirror.com&& huggingface-cli download runwayml/stable-diffusion-v1-5 --local-dir checkpoints_tmp/stable-diffusion-v1-5

windows方法2

set HF_ENDPOINT=https://hf-mirror.com&& python -c "
from datasets import load_dataset
load_dataset('natural_questions', cache_dir='./nq_data')
"

带token的。

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 可下载llama3.1全系列

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可下载llama3全系列、llama3.2全系列

终端一键完成

HF_ENDPOINT=https://hf-mirror.com  huggingface-cli login --token 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
HF_ENDPOINT=https://hf-mirror.com  huggingface-cli download meta-llama/Meta-Llama-3-8B --local-dir /data/zhangzw/meta-llama/Meta-Llama-3-8B
os.environ['HUGGINGFACE_TOKEN'] = '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'
!huggingface-cli login --token $HUGGINGFACE_TOKEN
HF_ENDPOINT=https://hf-mirror.com  huggingface-cli login
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
HF_ENDPOINT=https://hf-mirror.com  huggingface-cli download meta-llama/Meta-Llama-3-8B --local-dir /data/zhangzw/meta-llama/Meta-Llama-3-8B

python代码

os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
os.environ['HUGGINGFACE_TOKEN'] = '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'

终端挂代理

端口要自己看,clashx默认7890

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

docker镜像

这里有很多镜像https://github.com/tech-shrimp/docker_installer
在要安装的docker镜像前面加hub.rat.dev/就行了

sudo docker run -d \

--name navidrome \

--restart=unless-stopped \

--user $(id -u):$(id -g) \

-v /mnt/mydisk/navidromeMusic/music:/music \

-v /mnt/mydisk/navidromeMusic/data:/data \

-p 4533:4533 \

-e ND_LOGLEVEL=info \

-e ND_LASTFM_SECRET=xxxx \

-e ND_LASTFM_APIKEY=xxxx \

-e ND_LASTFM_ENABLED=true \

-e ND_LASTFM_LANGUAGE=zh \

-e ND_TRANSCODINGCACHESIZE=200 \

-e ND_ENABLETRANSCODINGCONFIG=true \

-e ND_LOGLEVEL=info \

hub.rat.dev/deluan/navidrome:latest

scp本机文件复制到服务器

scp -P 8899 psgs_w100.tsv.gz.1 chenyongyuan@10.82.77.110:/home/chenyongyuan/replug

scp -P 8899 RETRO-pytorch.zip chenyongyuan@10.82.77.110:/home/chenyongyuan/retro

npm安装

npm install express --registry=https://registry.npmmirror.com

大文件、中断续传

支持断点续传和更好的传输性能,特别适合大文件或目录的传输

rsync -avz -e "ssh -p 45220" /data/chenyongyuan/diagramLlama root@connect.nma1.seetacloud.com:/root/autodl-tmp

rsync -avz -e "ssh -p 8899" /data/chenyongyuan/diagramLlama chenyongyuan@10.82.77.107:/data/chenyongyuan/diagramLlama

服务器数据区

In-s/data/user/coco ./coco

服务器fq

export http_proxy="http://127.0.0.1:7890"

export https_proxy="http://127.0.0.1:7890"

查看文件夹大小,建立软链接

du -sh /home/chenyongyuan 查看文件夹的总大小

du -h --max-depth=1 /home/chenyongyuan 查看文件夹内各子文件夹的大小

mv /home/chenyongyuan/replug/REPLUG/nq_data /data/chenyongyuan/replug/REPLUG/nq_data 移动文件

In -s /data/chenyongyuan/DrawGPT/MiniCPM-V/finetune/output /home/chenyongyuan/DrawGPT/MiniCPM-V/finetune/output

tensor文件存取

torch.save(tensor, 'tensor.pt')

loaded_tensor = torch.load('tensor.pt')

jupynb显示内存使用量

需要安装 pip install psutil

import os, psutil; print(f"Current notebook is using {psutil.Process(os.getpid()).memory_info().rss / (1024 ** 3):.2f} GB of memory.")

或者pip install memory_profiler %load_ext memory_profiler %memit

tensorboard

.代表当前目录,可换成目标目录

tensorboard --logdir=.

文件的读取和保存

	import time
	from datetime import datetime
	import os
	time_now = datetime.now().strftime("%Y%m%d_%H%M%S")
    file_name = f"{image_name}_耗时{elapsed_time:.2f}s_时间{time_now}_长度{answer_length}.drawio"
    save_path=os.path.join(sava_path,file_name)
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    with open(save_path, 'w') as file:
        file.write(answer)

tmux防掉ssh

tmux上下滑动 - 陈永园的博客 (ocyy.top)

断开连接,可以按 Ctrl+b,然后按 d 来分离 tmux 会话。要重新连接到这个会话:

tmux attach -t replug

tmux new -s replugNqData

tmux attach -t replugNqData

tmux new -s replugTnqData

tmux attach -t replugTnqData

triviaqa_data = load_dataset('trivia_qa', 'wikipedia')

HF_ENDPOINT=https://hf-mirror.com python -c "from datasets import load_dataset

triviaqa_data = load_dataset('trivia_qa', 'web')

"

tmux new -s replugData

tmux attach -t replugData

tmux new -s retro

tmux attach -t retro

import openai

openai.base_url='https://api.onechats.top'

openai.api_key = 'sk-Jv0z6mtvxgSPWN5U279e8c33EcE948358b1dC8CfFfE817B5'

response = openai.Completion.create(

engine='code-davinci-002',

prompt='hello',

max_tokens=10,

logprobs=4,

temperature=0,

stream=False,

stop="\n"

)

tmux new -s replugLlama3

断开连接,可以按 Ctrl+b,然后按 d 来分离 tmux 会话。要重新连接到这个会话:

tmux attach -t replugLlama3

tmux new -s replugLlama3Qa

断开连接,可以按 Ctrl+b,然后按 d 来分离 tmux 会话。要重新连接到这个会话:

tmux attach -t replugLlama3Qa

tmux new -s replug

断开连接,可以按 Ctrl+b,然后按 d 来分离 tmux 会话。要重新连接到这个会话:

tmux attach -t replug

tmux new -s replugNqData

tmux attach -t replugNqData

tmux new -s replugTnqData

tmux attach -t replugTnqData

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

复制、拷贝conda环境

conda create --name replugLlama3Py310Finetune --clone replugLlama3Py310

conda activate replugLlama3Py310Finetune

创建python环境

conda create -n AnimateDiff python=3.10

连接服务器

ssh chenyongyuan@10.82.77.110 -p 8899

获取公钥

要获取电脑的公钥(通常是用于加密或身份验证的目的,如SSH密钥对),你可以按照以下步骤操作,具体取决于你使用的操作系统:

1. 在Linux/MacOS上获取SSH公钥

如果你需要获取已经存在的SSH公钥,通常可以在终端中执行以下命令:

cat ~/.ssh/id_rsa.pub

如果文件存在,它会显示出你的公钥内容。它通常以 ssh-rsa 开头,并以用户名和主机名结尾。

如果你还没有生成密钥对,可以使用以下命令生成一个新的密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

此命令会生成一个新的RSA密钥对,并保存到 ~/.ssh/ 目录中。执行过程中,系统会提示你输入文件名和是否设置密码保护(可以直接回车使用默认值和无密码)。

2. 在Windows上获取SSH公钥

如果你在Windows上使用Git Bash或WSL,你可以像在Linux/MacOS上一样,通过相同的命令来获取公钥。

如果你使用PuTTY,你需要使用PuTTYgen工具生成或查看SSH密钥:

  1. 打开PuTTYgen。

  2. 如果你已经生成过密钥,可以点击“Load”来加载私钥文件,然后点击“Save public key”来保存公钥。

  3. 如果没有密钥,点击“Generate”生成一个新的密钥对,并在生成完成后点击“Save public key”来保存公钥。

3. 获取GPG公钥(如果你指的是GPG/PGP公钥)

如果你指的是GPG(GNU Privacy Guard)公钥,而不是SSH公钥,可以使用以下命令来导出你的GPG公钥:

gpg --list-keys
gpg --export -a "your_email@example.com"

这会输出你指定的邮件地址对应的GPG公钥。如果你还没有生成GPG密钥对,可以使用以下命令生成:

gpg --gen-key

按照提示完成生成过程后,再使用上面的导出命令获取公钥。

总结

你可以根据需求获取对应的公钥(SSH或GPG),并将其用于需要的加密、身份验证或其他安全相关的场景。如果有进一步的特定需求或问题,请告知,我可以提供更详细的帮助。

服务器这里添加

nano ~/.ssh/authorized_keys

git clone

把github.com换成github.ocyy.top(自己搭建的镜像,目前还能用)

git clone https://github.ocyy.top/guoyww/AnimateDiff.git

指定gpu

export CUDA_VISIBLE_DEVICES=0 # 指定使用GPU 0

最常用的办法是通过设置环境变量CUDA_VISIBLE_DEVICES来指定一张或多张卡在Pytorch中可见

export CUDA_VISIBLE_DEVICES=0 # 指定使用GPU 0

另外单个训练一般不要超过两星期,定期注意看下有没有因为内存泄漏或者其他原因跑崩掉,跑实验在建议tmux下进行

os.environ['CUDA_VISIBLE_DEVICES'] = '1'
print(os.getenv('CUDA_VISIBLE_DEVICES'))
print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0))

gpt3.5 API

https://shop.onechat.club/

https://query.onechats.top/


import openai
from time import sleep
from openai import OpenAI


def call_gpt(prompt):
    response = None
    while response is None:
        try:
            client = OpenAI(base_url='https://api.zhizengzeng.com/v1',api_key='sk-*********')
            response = client.chat.completions.create(
                model='gpt-4o-mini',
            messages=[
                {"role": "user", "content": prompt}
            ],
                # max_tokens=10,
                # logprobs=True,
                # temperature=0,
                # stream=False,
                stop="\n"
            )
            # print(response)
            return response.choices[0].message.content

        except:
            sleep(1)
            continue
print(call_gpt('hello'))
   response = None

    while response is None:

        try:

            client = OpenAI(base_url='https://api.onechats.top/v1',api_key='*****')

            response = client.chat.completions.create(

                model='gpt-3.5-turbo',

            messages=[

                {"role": "user", "content": prompt}

            ],

                max_tokens=10,

                logprobs=True,

                temperature=0,

                stream=False,

                stop="\n"

            )

            

        except:

            sleep(1)

            continue

如何在终端执行ipynb文件

使用 papermill 执行

papermill 是一个工具,专门用于参数化和执行 Jupyter Notebooks。它非常适合自动化和批处理任务。

  1. 安装 papermill(如果尚未安装):

    bash

    复制代码

    pip install papermill

  2. 执行 Notebook: 使用 papermill 执行一个 Notebook 可以这样做:

    bash

    复制代码

    papermill your_notebook.ipynb output_notebook.ipynb

    这将执行 your_notebook.ipynb 并将执行后的 Notebook 保存到 output_notebook.ipynb。你也可以传递参数到 Notebook 中,使得执行更加灵活。

命令行执行ipynb文件

pip install papermill

papermill cyy_make_fintuned_data.ipynb cyy_make_fintuned_data_output_notebook.ipynb > cyy_make_fintuned_data_execution_log.txt 2>&1

papermill cyy_make_fintuned_data.ipynb cyy_make_fintuned_data_output_notebook.ipynb | tee cyy_make_fintuned_data_execution_log.txt

python cyy_make_fintuned_data.py | tee cyy_make_fintuned_data_execution.log

压缩和解压文件夹

在 Ubuntu 中,你可以使用 tar 命令来压缩和解压文件夹。下面是如何压缩和解压 /data/chenyongyuan/diagramLlama 文件夹的步骤。

1. 压缩文件夹

你可以使用 tar 命令将文件夹压缩为 .tar.gz 文件。假设你要将 /data/chenyongyuan/diagramLlama 文件夹压缩为 diagramLlama.tar.gz 文件:

tar -czvf diagramLlama.tar.gz /data/chenyongyuan/diagramLlama

解释:

  • -c:创建一个新的归档文件。

  • -z:使用 gzip 压缩。

  • -v:显示正在处理的文件列表(可选)。

  • -f:指定输出的文件名。

2. 解压文件夹

解压刚才创建的 diagramLlama.tar.gz 文件到指定目录,可以使用以下命令:

tar -xzvf diagramLlama.tar.gz -C /data/chenyongyuan/

解释:

  • -x:解压归档文件。

  • -z:使用 gzip 解压。

  • -v:显示正在处理的文件列表(可选)。

  • -f:指定归档文件名。

  • -C:指定解压的目标目录。

这个命令会将 diagramLlama 文件夹解压到 /data/chenyongyuan/ 目录下。解压后,你将在 /data/chenyongyuan/ 目录下看到 diagramLlama 文件夹。

解压zip包

在 Ubuntu 上解压 .zip 压缩包非常简单。你可以通过命令行或图形界面来完成。以下是两种方法的详细步骤:

1. 使用命令行解压

Ubuntu 中自带了 unzip 工具,但有时候这个工具可能没有安装。你可以按照以下步骤操作:

步骤 1: 安装 unzip

如果系统上没有安装 unzip,可以使用以下命令进行安装:

sudo apt update
sudo apt install unzip

步骤 2: 解压缩 zip 文件

假设你有一个名为 file.zip 的压缩包,解压步骤如下:

  1. 打开终端 (Ctrl + Alt + T)。

  2. 使用以下命令解压:

    unzip file.zip
    

解压到指定目录

如果你想将文件解压到指定的目录,可以使用以下命令:

unzip file.zip -d /path/to/directory

其中 /path/to/directory 是你想解压到的目录路径。

列出压缩包内容而不解压

如果你想查看 .zip 文件中的内容而不解压,可以使用以下命令:

unzip -l file.zip

2. 使用图形界面解压

如果你不喜欢使用命令行,你也可以通过 Ubuntu 的图形界面来解压 zip 文件。具体步骤如下:

  1. 打开文件管理器,找到你要解压的 .zip 文件。
  2. 右键点击 这个 .zip 文件,选择“解压到此处”或者“Extract Here”。
  3. 如果你想将其解压到某个特定文件夹,选择“Extract to...”或“解压到...”,然后选择目标文件夹。

总结

  • 命令行:使用 unzip file.zip,并可使用 -d 指定解压路径。
  • 图形界面:右键点击压缩包,选择“解压到此处”或“解压到...”。

这样就可以方便地在 Ubuntu 上解压 .zip 文件了。

pip装特殊的包

pip install mpi4py会报错

conda install -c conda-forge mpi4py没问题

跨机器挪conda环境

将一个 conda 环境从一个 Ubuntu 系统迁移到另一个系统时,主要有两个步骤:导出环境在新系统上重新创建环境。具体操作如下:

1. 在原系统上导出 conda 环境

  1. 首先,打开终端,激活你想要迁移的 conda 环境(假设环境名称是 my_env):

    conda activate my_env
    
  2. 然后导出环境到一个 .yml 文件:

    conda env export > my_env.yml
    

    这个文件会包含所有包的名称和版本信息,存储在当前目录中。

  3. (可选)如果你不想导出某些平台相关的包,可以通过 --no-builds 参数忽略构建信息:

    conda env export --no-builds > my_env.yml
    

    my_env.yml 文件将会比较通用,在不同平台间更容易迁移。

2. 在新系统上重新创建 conda 环境

  1. 将生成的 my_env.yml 文件复制到新系统(可以使用 scprsync 等命令,或通过 USB 等方式)。

  2. 在新系统上安装 conda(如果还未安装),然后使用下面的命令从 .yml 文件重新创建环境:

    conda env create -f my_env.yml
    
  3. 确保环境创建成功后,激活环境:

    conda activate my_env
    

3. 检查环境是否正常工作

一旦新系统上的 conda 环境创建成功,确保所有包已经正确安装并且你的项目可以正常运行。如果有某些包因为平台差异而无法安装,可能需要手动调整一些依赖项。

注意事项

  • conda 环境导出的 .yml 文件包含了操作系统相关的包,建议在不同的操作系统间迁移时使用 --no-builds 选项,以确保跨平台兼容性。
  • 如果环境非常大,或者存在一些手动编译的包,可能需要手动调试某些包的安装问题。

conda添加到环境变量

每次都要运行 source /data/chenyongyuan/conda/bin/activate 才能使用 conda,这说明你的 conda 安装路径还没有被正确添加到系统的环境变量中。你可以通过以下步骤解决这个问题,让 conda 自动配置好环境。

1. 修改 .bashrc 文件

conda 需要正确的环境变量配置。通过修改 .bashrc 文件,你可以让系统每次启动终端时自动设置这些环境变量。

  1. 打开终端,使用文本编辑器(如 nanovim)编辑你的 .bashrc 文件:

    nano ~/.bashrc
    
  2. .bashrc 文件末尾添加以下内容:

    # Add conda to PATH
    export PATH="/data/chenyongyuan/conda/bin:$PATH"
    
    # Initialize conda
    source /data/chenyongyuan/conda/bin/activate
    
  3. 保存并退出编辑器(在 nano 中按 Ctrl+O 保存,然后按 Ctrl+X 退出)。

  4. 然后使用下面的命令使 .bashrc 文件立即生效:

    source ~/.bashrc
    

2. 使用 conda init 命令(可选)

conda 提供了一个命令 conda init,它会自动修改 .bashrc 文件以加载 conda 环境。你可以尝试以下步骤来让 conda 自动初始化环境。

  1. 确保你能够访问 conda 命令,运行以下命令:

    /data/chenyongyuan/conda/bin/conda init
    
  2. 运行后,它会自动修改你的 .bashrc 文件,以便每次启动终端时自动加载 conda 环境。之后,你只需重新启动终端,或者运行:

    source ~/.bashrc
    

如果这两种方法都配置成功,那么你应该可以直接在每次打开新终端时使用 conda,而不需要手动 source /data/chenyongyuan/conda/bin/activate


评论