From 4d4cf4f33b200bb786324400c719507db1127413 Mon Sep 17 00:00:00 2001 From: smeb y <48400087+a3165458@users.noreply.github.com> Date: Wed, 10 Jul 2024 11:30:18 +0800 Subject: [PATCH] Create Flock.sh --- Flock.sh | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 Flock.sh diff --git a/Flock.sh b/Flock.sh new file mode 100644 index 0000000..daf079b --- /dev/null +++ b/Flock.sh @@ -0,0 +1,113 @@ +#!/bin/bash + +# 检查是否以root用户运行脚本 +if [ "$(id -u)" != "0" ]; then + echo "此脚本需要以root用户权限运行。" + echo "请尝试使用 'sudo -i' 命令切换到root用户,然后再次运行此脚本。" + exit 1 +fi + +# 检查并安装 Conda +function install_conda() { + if command -v conda > /dev/null 2>&1; then + echo "Conda 已安装" + else + echo "Conda 未安装,正在安装..." + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh + bash miniconda.sh -b -p $HOME/miniconda + echo 'export PATH="$HOME/miniconda/bin:$PATH"' >> ~/.bashrc + source ~/.bashrc + conda init + source ~/.bashrc + fi +} + +# 检查并安装 Node.js 和 npm +function install_nodejs_and_npm() { + if command -v node > /dev/null 2>&1; then + echo "Node.js 已安装" + else + echo "Node.js 未安装,正在安装..." + curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - + sudo apt-get install -y nodejs + fi + if command -v npm > /dev/null 2>&1; then + echo "npm 已安装" + else + echo "npm 未安装,正在安装..." + sudo apt-get install -y npm + fi +} + +# 检查并安装 PM2 +function install_pm2() { + if command -v pm2 > /dev/null 2>&1; then + echo "PM2 已安装" + else + echo "PM2 未安装,正在安装..." + npm install pm2@latest -g + fi +} + +function install_node() { + install_conda + install_nodejs_and_npm + install_pm2 + sudo apt update && sudo apt upgrade -y + sudo apt install curl iptables build-essential wget jq make gcc nano -y + read -p "输入Hugging face API: " HF_TOKEN + read -p "输入Flock API: " FLOCK_API_KEY + read -p "输入任务ID: " TASK_ID + # 克隆仓库 + git clone https://github.com/FLock-io/llm-loss-validator.git + # 进入项目目录 + cd llm-loss-validator + # 创建并激活conda环境 + conda create -n llm-loss-validator python==3.10 -y + source activate llm-loss-validator + # 安装依赖 + pip install -r requirements.txt + # 获取当前目录的绝对路径 + SCRIPT_DIR="$(pwd)" + # 创建启动脚本 + cat << EOF > run_validator.sh +#!/bin/bash +source $HOME/miniconda/bin/activate llm-loss-validator +cd $SCRIPT_DIR/src +CUDA_VISIBLE_DEVICES=0 \ +bash start.sh \ +--hf_token "$HF_TOKEN" \ +--flock_api_key "$FLOCK_API_KEY" \ +--task_id "$TASK_ID" \ +--validation_args_file validation_config.json.example \ +--auto_clean_cache False +EOF + chmod +x run_validator.sh + pm2 start run_validator.sh --name "llm-loss-validator" + echo "验证者节点已经启动." +} + +function check_node() { + pm2 logs llm-loss-validator +} + +# 主菜单 +function main_menu() { + clear + echo "脚本以及教程由推特用户大赌哥 @y95277777 编写,免费开源,请勿相信收费" + echo "=========================Flock验证者节点安装=======================================" + echo "节点社区 Telegram 群组:https://t.me/niuwuriji" + echo "节点社区 Telegram 频道:https://t.me/niuwuriji" + echo "请选择要执行的操作:" + echo "1. 安装常规节点" + echo "2. 查看节点日志" + read -p "请输入选项(1-2): " OPTION + case $OPTION in + 1) install_node ;; + 2) check_node ;; + *) echo "无效选项。" ;; + esac +} + +# 显示主菜单 +main_menu