chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 13:24:13 +08:00
commit 1037506f2e
6050 changed files with 1731598 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
mkdir -p data/
MSMARCO_BM25="msmarco_bm25_official.zip"
if [ ! -e data/$MSMARCO_BM25 ]; then
wget -O data/${MSMARCO_BM25} https://huggingface.co/datasets/intfloat/simlm-msmarco/resolve/main/${MSMARCO_BM25}
unzip data/${MSMARCO_BM25} -d data/
fi
MSMARCO_DISTILL="msmarco_distillation.zip"
if [ ! -e data/$MSMARCO_DISTILL ]; then
wget -O data/${MSMARCO_DISTILL} https://huggingface.co/datasets/intfloat/simlm-msmarco/resolve/main/${MSMARCO_DISTILL}
unzip data/${MSMARCO_DISTILL} -d data/
fi
MSMARCO_RERANK="msmarco_reranker.zip"
if [ ! -e data/$MSMARCO_RERANK ]; then
wget -O data/${MSMARCO_RERANK} https://huggingface.co/datasets/intfloat/simlm-msmarco/resolve/main/${MSMARCO_RERANK}
unzip data/${MSMARCO_RERANK} -d data/
fi
echo "data downloaded"
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd ../../ && pwd )"
echo "working directory: ${DIR}"
MODEL_NAME_OR_PATH=""
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
MODEL_NAME_OR_PATH=$1
shift
fi
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${MODEL_NAME_OR_PATH}"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/dpr/"
fi
mkdir -p "${OUTPUT_DIR}"
PYTHONPATH=src/ python -u src/inference/encode_main.py \
--model_name_or_path "${MODEL_NAME_OR_PATH}" \
--task_type qa \
--do_encode \
--fp16 \
--encode_in_path "${DATA_DIR}/passages.jsonl.gz" \
--encode_save_dir "${OUTPUT_DIR}" \
--encode_batch_size 256 \
--l2_normalize True \
--p_max_len 192 \
--dataloader_num_workers 1 \
--output_dir "${OUTPUT_DIR}" \
--data_dir "${DATA_DIR}" \
--report_to none "$@"
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd ../../ && pwd )"
echo "working directory: ${DIR}"
PRED_DIR=$OUTPUT_DIR
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
PRED_DIR=$1
shift
fi
SPLIT="nq_dev"
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
SPLIT=$1
shift
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/dpr/"
fi
python misc/dpr/format_and_evaluate.py \
--data-dir "${DATA_DIR}" \
--topk 1 5 20 100 \
--topics "${DATA_DIR}/${SPLIT}_queries.tsv" \
--input "${PRED_DIR}/${SPLIT}.msmarco.txt" \
--output "${PRED_DIR}/${SPLIT}.dpr.json" "$@"
@@ -0,0 +1,39 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd ../../ && pwd )"
echo "working directory: ${DIR}"
MODEL_NAME_OR_PATH=""
SPLIT="nq_dev"
DATA_DIR="${DIR}/data/dpr/"
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
MODEL_NAME_OR_PATH=$1
shift
fi
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
DATA_DIR=$1
shift
fi
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
SPLIT=$1
shift
fi
PYTHONPATH=src/ python -u src/inference/gen_teacher_scores.py \
--model_name_or_path "${MODEL_NAME_OR_PATH}" \
--do_kd_gen_score \
--task_type qa \
--fp16 \
--data_dir "${DATA_DIR}" \
--kd_gen_score_split "${SPLIT}" \
--kd_gen_score_batch_size 128 \
--kd_gen_score_n_neg 1000 \
--rerank_max_length 224 \
--dataloader_num_workers 1 \
--output_dir "/tmp/" \
--report_to none "$@"
+57
View File
@@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd ../../ && pwd )"
echo "working directory: ${DIR}"
MODEL_NAME_OR_PATH=""
RERANK_IN_PATH=""
SPLIT="nq_dev"
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
MODEL_NAME_OR_PATH=$1
shift
fi
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
RERANK_IN_PATH=$1
shift
fi
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
SPLIT=$1
shift
fi
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${MODEL_NAME_OR_PATH}"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/dpr/"
fi
mkdir -p "${OUTPUT_DIR}"
PYTHONPATH=src/ python -u src/inference/rerank_main.py \
--model_name_or_path "${MODEL_NAME_OR_PATH}" \
--do_rerank \
--task_type qa \
--fp16 \
--rerank_in_path "${RERANK_IN_PATH}" \
--rerank_out_path "${OUTPUT_DIR}/rerank.${SPLIT}.msmarco.txt" \
--rerank_batch_size 128 \
--rerank_max_length 224 \
--rerank_split "${SPLIT}" \
--rerank_depth 100 \
--dataloader_num_workers 1 \
--output_dir "/tmp/" \
--data_dir "${DATA_DIR}" \
--report_to none "$@"
python -u misc/dpr/format_and_evaluate.py \
--data-dir "${DATA_DIR}" \
--topk 1 5 20 100 \
--topics "${DATA_DIR}/${SPLIT}_queries.tsv" \
--input "${OUTPUT_DIR}/rerank.${SPLIT}.msmarco.txt" \
--output "${OUTPUT_DIR}/${SPLIT}.dpr.json"
+50
View File
@@ -0,0 +1,50 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd ../../ && pwd )"
echo "working directory: ${DIR}"
MODEL_NAME_OR_PATH=""
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
MODEL_NAME_OR_PATH=$1
shift
fi
SPLIT="nq_dev"
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
SPLIT=$1
shift
fi
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${MODEL_NAME_OR_PATH}"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/dpr/"
fi
mkdir -p "${OUTPUT_DIR}"
PYTHONPATH=src/ python -u src/inference/search_main.py \
--model_name_or_path "${MODEL_NAME_OR_PATH}" \
--task_type qa \
--search_split "${SPLIT}" \
--search_batch_size 128 \
--search_topk 100 \
--search_out_dir "${OUTPUT_DIR}" \
--encode_save_dir "${OUTPUT_DIR}" \
--q_max_len 32 \
--l2_normalize True \
--dataloader_num_workers 1 \
--output_dir "/tmp/" \
--data_dir "${DATA_DIR}" \
--report_to none "$@"
python -u misc/dpr/format_and_evaluate.py \
--data-dir "${DATA_DIR}" \
--topk 1 5 20 100 \
--topics "${DATA_DIR}/${SPLIT}_queries.tsv" \
--input "${OUTPUT_DIR}/${SPLIT}.msmarco.txt" \
--output "${OUTPUT_DIR}/${SPLIT}.dpr.json"
+55
View File
@@ -0,0 +1,55 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd ../../ && pwd )"
echo "working directory: ${DIR}"
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${DIR}/checkpoint/nq_$(date +%F-%H%M.%S)"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/dpr/"
fi
mkdir -p "${OUTPUT_DIR}"
PROC_PER_NODE=$(nvidia-smi --list-gpus | wc -l)
# python -u -m torch.distributed.launch --nproc_per_node ${PROC_PER_NODE} src/train_biencoder.py \
deepspeed src/train_biencoder.py --deepspeed dpr_ds_config.json \
--model_name_or_path intfloat/simlm-base-wiki100w \
--task_type qa \
--per_device_train_batch_size 8 \
--per_device_eval_batch_size 32 \
--l2_normalize True \
--t 0.02 \
--t_warmup True \
--seed 5678 \
--do_train \
--fp16 \
--train_file "${DATA_DIR}/nq_train.jsonl,${DATA_DIR}/nq_hard_train.jsonl" \
--validation_file "${DATA_DIR}/nq_dev.jsonl" \
--q_max_len 32 \
--p_max_len 192 \
--train_n_passages 16 \
--use_first_positive True \
--dataloader_num_workers 1 \
--learning_rate 1e-5 \
--use_scaled_loss True \
--loss_scale 1 \
--max_steps 20000 \
--warmup_steps 1000 \
--share_encoder True \
--logging_steps 50 \
--output_dir "${OUTPUT_DIR}" \
--data_dir "${DATA_DIR}" \
--save_total_limit 3 \
--save_strategy steps \
--save_steps 2000 \
--evaluation_strategy steps \
--eval_steps 2000 \
--remove_unused_columns False \
--overwrite_output_dir \
--disable_tqdm True \
--report_to none "$@"
+59
View File
@@ -0,0 +1,59 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd ../../ && pwd )"
echo "working directory: ${DIR}"
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${DIR}/checkpoint/kd_$(date +%F-%H%M.%S)"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/blob-data-files/dpr_nq_it2/"
fi
mkdir -p "${OUTPUT_DIR}"
PROC_PER_NODE=$(nvidia-smi --list-gpus | wc -l)
# python -u -m torch.distributed.launch --nproc_per_node ${PROC_PER_NODE} src/train_biencoder.py \
deepspeed src/train_biencoder.py --deepspeed dpr_ds_config.json \
--model_name_or_path intfloat/simlm-base-wiki100w \
--task_type qa \
--per_device_train_batch_size 8 \
--per_device_eval_batch_size 32 \
--kd_mask_hn False \
--kd_cont_loss_weight 1 \
--seed 123 \
--do_train \
--do_kd_biencoder \
--l2_normalize True \
--t 0.02 \
--t_warmup True \
--fp16 \
--train_file "${DATA_DIR}/kd_nq_train.jsonl,${DATA_DIR}/kd_nq_hard_train.jsonl" \
--validation_file "${DATA_DIR}/kd_nq_dev.jsonl" \
--q_max_len 32 \
--p_max_len 192 \
--train_n_passages 16 \
--use_first_positive True \
--dataloader_num_workers 1 \
--num_train_epochs 15 \
--learning_rate 3e-5 \
--use_scaled_loss True \
--loss_scale 1 \
--warmup_steps 1000 \
--share_encoder True \
--logging_steps 50 \
--output_dir "${OUTPUT_DIR}" \
--data_dir "${DATA_DIR}" \
--save_total_limit 10 \
--save_strategy epoch \
--evaluation_strategy epoch \
--load_best_model_at_end \
--metric_for_best_model mrr \
--greater_is_better True \
--remove_unused_columns False \
--overwrite_output_dir \
--disable_tqdm True \
--report_to none "$@"
+54
View File
@@ -0,0 +1,54 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd ../../ && pwd )"
echo "working directory: ${DIR}"
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${DIR}/checkpoint/nq_rerank_$(date +%F-%H%M.%S)"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/dpr/"
fi
mkdir -p "${OUTPUT_DIR}"
# For electra-large, learning rate > 1e-5 will lead to instability empirically
PROC_PER_NODE=$(nvidia-smi --list-gpus | wc -l)
#python -u -m torch.distributed.launch --nproc_per_node ${PROC_PER_NODE} src/train_cross_encoder.py \
deepspeed src/train_cross_encoder.py --deepspeed ds_config.json \
--model_name_or_path google/electra-base-discriminator \
--per_device_train_batch_size 4 \
--per_device_eval_batch_size 16 \
--gradient_accumulation_steps 1 \
--do_train \
--fp16 \
--seed 987 \
--train_file "${DATA_DIR}/nq_train.jsonl,${DATA_DIR}/nq_hard_train.jsonl" \
--validation_file "${DATA_DIR}/nq_dev.jsonl" \
--rerank_max_length 224 \
--rerank_use_rdrop True \
--use_first_positive True \
--train_n_passages 32 \
--rerank_forward_factor 2 \
--dataloader_num_workers 1 \
--learning_rate 3e-5 \
--warmup_steps 1000 \
--max_steps 20000 \
--logging_steps 50 \
--output_dir "${OUTPUT_DIR}" \
--data_dir "${DATA_DIR}" \
--save_total_limit 5 \
--save_strategy steps \
--save_steps 2000 \
--evaluation_strategy steps \
--eval_steps 2000 \
--load_best_model_at_end \
--metric_for_best_model acc \
--greater_is_better True \
--remove_unused_columns False \
--overwrite_output_dir \
--disable_tqdm True \
--report_to none "$@"
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
MODEL_NAME_OR_PATH=""
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
MODEL_NAME_OR_PATH=$1
shift
fi
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${MODEL_NAME_OR_PATH}"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/msmarco_bm25_official/"
fi
mkdir -p "${OUTPUT_DIR}"
PYTHONPATH=src/ python -u src/inference/encode_main.py \
--model_name_or_path "${MODEL_NAME_OR_PATH}" \
--do_encode \
--fp16 \
--encode_in_path "${DATA_DIR}/passages.jsonl.gz" \
--encode_save_dir "${OUTPUT_DIR}" \
--encode_batch_size 512 \
--p_max_len 144 \
--add_pooler False \
--dataloader_num_workers 1 \
--output_dir "${OUTPUT_DIR}" \
--data_dir "${DATA_DIR}" \
--report_to none "$@"
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
MODEL_NAME_OR_PATH=""
SPLIT="dev"
DATA_DIR="${DIR}/data/msmarco_bm25_official/"
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
MODEL_NAME_OR_PATH=$1
shift
fi
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
DATA_DIR=$1
shift
fi
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
SPLIT=$1
shift
fi
PYTHONPATH=src/ python -u src/inference/gen_teacher_scores.py \
--model_name_or_path "${MODEL_NAME_OR_PATH}" \
--do_kd_gen_score \
--fp16 \
--data_dir "${DATA_DIR}" \
--kd_gen_score_split "${SPLIT}" \
--kd_gen_score_batch_size 256 \
--kd_gen_score_n_neg 1000 \
--rerank_max_length 192 \
--dataloader_num_workers 1 \
--output_dir "/tmp/" \
--report_to none "$@"
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
MODEL_NAME_OR_PATH=""
RERANK_IN_PATH=""
SPLIT="dev"
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
MODEL_NAME_OR_PATH=$1
shift
fi
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
RERANK_IN_PATH=$1
shift
fi
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
SPLIT=$1
shift
fi
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${MODEL_NAME_OR_PATH}"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/msmarco_bm25_official/"
fi
mkdir -p "${OUTPUT_DIR}"
PYTHONPATH=src/ python -u src/inference/rerank_main.py \
--model_name_or_path "${MODEL_NAME_OR_PATH}" \
--do_rerank \
--fp16 \
--rerank_in_path "${RERANK_IN_PATH}" \
--rerank_out_path "${OUTPUT_DIR}/rerank.${SPLIT}.msmarco.txt" \
--rerank_batch_size 256 \
--rerank_max_length 192 \
--rerank_split "${SPLIT}" \
--rerank_depth 200 \
--dataloader_num_workers 1 \
--output_dir "/tmp/" \
--data_dir "${DATA_DIR}" \
--report_to none "$@"
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
MODEL_NAME_OR_PATH=""
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
MODEL_NAME_OR_PATH=$1
shift
fi
SPLIT="dev"
if [[ $# -ge 1 && ! "$1" == "--"* ]]; then
SPLIT=$1
shift
fi
DEPTH=1000
# by default, search top-200 for train, top-1000 for dev
if [ "${SPLIT}" = "train" ]; then
DEPTH=200
fi
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${MODEL_NAME_OR_PATH}"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/msmarco_bm25_official/"
fi
mkdir -p "${OUTPUT_DIR}"
PYTHONPATH=src/ python -u src/inference/search_main.py \
--model_name_or_path "${MODEL_NAME_OR_PATH}" \
--search_split "${SPLIT}" \
--search_batch_size 128 \
--search_topk "${DEPTH}" \
--search_out_dir "${OUTPUT_DIR}" \
--encode_save_dir "${OUTPUT_DIR}" \
--q_max_len 32 \
--add_pooler False \
--dataloader_num_workers 1 \
--output_dir "/tmp/" \
--data_dir "${DATA_DIR}" \
--report_to none "$@"
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${DIR}/checkpoint/biencoder_$(date +%F-%H%M.%S)"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/msmarco_bm25_official/"
fi
mkdir -p "${OUTPUT_DIR}"
PROC_PER_NODE=$(nvidia-smi --list-gpus | wc -l)
# python -u -m torch.distributed.launch --nproc_per_node ${PROC_PER_NODE} src/train_biencoder.py \
deepspeed src/train_biencoder.py --deepspeed ds_config.json \
--model_name_or_path intfloat/simlm-base-msmarco \
--per_device_train_batch_size 16 \
--per_device_eval_batch_size 32 \
--add_pooler False \
--t 0.02 \
--seed 1234 \
--do_train \
--fp16 \
--train_file "${DATA_DIR}/train.jsonl" \
--validation_file "${DATA_DIR}/dev.jsonl" \
--q_max_len 32 \
--p_max_len 144 \
--train_n_passages 16 \
--dataloader_num_workers 1 \
--num_train_epochs 3 \
--learning_rate 2e-5 \
--use_scaled_loss True \
--warmup_steps 1000 \
--share_encoder True \
--logging_steps 50 \
--output_dir "${OUTPUT_DIR}" \
--data_dir "${DATA_DIR}" \
--save_total_limit 2 \
--save_strategy epoch \
--evaluation_strategy epoch \
--remove_unused_columns False \
--overwrite_output_dir \
--disable_tqdm True \
--report_to none "$@"
+53
View File
@@ -0,0 +1,53 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${DIR}/checkpoint/kd_$(date +%F-%H%M.%S)"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/msmarco_distillation/"
fi
mkdir -p "${OUTPUT_DIR}"
PROC_PER_NODE=$(nvidia-smi --list-gpus | wc -l)
# python -u -m torch.distributed.launch --nproc_per_node ${PROC_PER_NODE} src/train_biencoder.py \
deepspeed src/train_biencoder.py --deepspeed ds_config.json \
--model_name_or_path intfloat/simlm-base-msmarco \
--per_device_train_batch_size 16 \
--per_device_eval_batch_size 16 \
--kd_mask_hn False \
--kd_cont_loss_weight 0.2 \
--seed 123 \
--do_train \
--do_kd_biencoder \
--t 0.02 \
--fp16 \
--train_file "${DATA_DIR}/kd_train.jsonl" \
--validation_file "${DATA_DIR}/kd_dev.jsonl" \
--q_max_len 32 \
--p_max_len 144 \
--train_n_passages 24 \
--dataloader_num_workers 1 \
--num_train_epochs 6 \
--learning_rate 3e-5 \
--warmup_steps 1000 \
--share_encoder True \
--logging_steps 50 \
--output_dir "${OUTPUT_DIR}" \
--data_dir "${DATA_DIR}" \
--save_total_limit 10 \
--save_strategy epoch \
--evaluation_strategy epoch \
--load_best_model_at_end \
--metric_for_best_model mrr \
--greater_is_better True \
--remove_unused_columns False \
--overwrite_output_dir \
--disable_tqdm True \
--report_to none "$@"
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${DIR}/checkpoint/rerank_$(date +%F-%H%M.%S)"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/msmarco_reranker/"
fi
mkdir -p "${OUTPUT_DIR}"
# For electra-large, learning rate > 1e-5 will lead to instability empirically
PROC_PER_NODE=$(nvidia-smi --list-gpus | wc -l)
#python -u -m torch.distributed.launch --nproc_per_node ${PROC_PER_NODE} src/train_cross_encoder.py \
deepspeed src/train_cross_encoder.py --deepspeed ds_config.json \
--model_name_or_path google/electra-base-discriminator \
--per_device_train_batch_size 8 \
--per_device_eval_batch_size 16 \
--gradient_accumulation_steps 1 \
--do_train \
--fp16 \
--seed 987 \
--train_file "${DATA_DIR}/train.jsonl" \
--validation_file "${DATA_DIR}/dev.jsonl" \
--rerank_max_length 192 \
--rerank_use_rdrop True \
--train_n_passages 64 \
--rerank_forward_factor 4 \
--dataloader_num_workers 1 \
--num_train_epochs 3 \
--learning_rate 3e-5 \
--warmup_steps 1000 \
--logging_steps 50 \
--output_dir "${OUTPUT_DIR}" \
--data_dir "${DATA_DIR}" \
--save_total_limit 5 \
--save_strategy epoch \
--evaluation_strategy epoch \
--load_best_model_at_end \
--metric_for_best_model acc \
--greater_is_better True \
--remove_unused_columns False \
--overwrite_output_dir \
--disable_tqdm True \
--report_to none "$@"
+54
View File
@@ -0,0 +1,54 @@
#!/usr/bin/env bash
set -x
set -e
DIR="$( cd "$( dirname "$0" )" && cd .. && pwd )"
echo "working directory: ${DIR}"
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="${DIR}/checkpoint/rlm_$(date +%F-%H%M.%S)"
fi
if [ -z "$DATA_DIR" ]; then
DATA_DIR="${DIR}/data/msmarco_bm25_official/"
fi
mkdir -p "${OUTPUT_DIR}"
PROC_PER_NODE=$(nvidia-smi --list-gpus | wc -l)
# python -u -m torch.distributed.launch --nproc_per_node ${PROC_PER_NODE} src/train_rlm.py \
deepspeed src/train_rlm.py --deepspeed ds_config.json \
--model_name_or_path bert-base-uncased \
--per_device_train_batch_size 64 \
--per_device_eval_batch_size 64 \
--gradient_accumulation_steps 4 \
--seed 45678 \
--do_train \
--do_eval \
--fp16 \
--train_file "${DATA_DIR}/passages.jsonl.gz" \
--rlm_max_length 144 \
--rlm_encoder_mask_prob 0.3 \
--rlm_decoder_mask_prob 0.5 \
--rlm_generator_model_name google/electra-base-generator \
--rlm_freeze_generator True \
--rlm_generator_mlm_weight 0.2 \
--all_use_mask_token True \
--dataloader_num_workers 1 \
--max_steps 80000 \
--learning_rate 3e-4 \
--warmup_steps 4000 \
--weight_decay 0.0 \
--remove_unused_columns False \
--logging_steps 50 \
--report_to none \
--output_dir "${OUTPUT_DIR}" \
--save_total_limit 20 \
--save_strategy steps \
--save_steps 10000 \
--evaluation_strategy steps \
--eval_steps 10000 \
--data_dir "${DATA_DIR}" \
--overwrite_output_dir \
--disable_tqdm True "$@"