chore: import upstream snapshot with attribution
This commit is contained in:
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
@@ -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 "$@"
|
||||
Reference in New Issue
Block a user