Training supported

#5
by russwest404 - opened

Qwen3 Reranker models can be fine-tuned by SWIFT: https://github.com/modelscope/ms-swift

pip install ms-swift -U
# Pointwise training (binary classification)
nproc_per_node=4
NPROC_PER_NODE=$nproc_per_node \
swift sft \
    --model Qwen/Qwen3-Reranker-4B \
    --task_type generative_reranker \
    --loss_type generative_reranker \
    --train_type full \
    --dataset MTEB/scidocs-reranking \
    --split_dataset_ratio 0.05 \
    --eval_strategy steps \
    --output_dir output \
    --eval_steps 100 \
    --num_train_epochs 1 \
    --save_steps 200 \
    --per_device_train_batch_size 2 \
    --per_device_eval_batch_size 2 \
    --gradient_accumulation_steps 8 \
    --learning_rate 6e-6 \
    --label_names labels \
    --dataloader_drop_last true
# Listwise training (learning relative ranking)
nproc_per_node=4
NPROC_PER_NODE=$nproc_per_node \
swift sft \
    --model Qwen/Qwen3-Reranker-4B \
    --task_type generative_reranker \
    --loss_type listwise_generative_reranker \
    --train_type full \
    --dataset MTEB/scidocs-reranking \
    --split_dataset_ratio 0.05 \
    --eval_strategy steps \
    --output_dir output \
    --eval_steps 100 \
    --num_train_epochs 1 \
    --save_steps 200 \
    --per_device_train_batch_size 2 \
    --per_device_eval_batch_size 2 \
    --gradient_accumulation_steps 8 \
    --learning_rate 6e-6 \
    --label_names labels \
    --dataloader_drop_last true

SWIFT supports both pointwise and listwise training approaches. Pointwise treats each query-document pair as binary classification, while listwise learns relative ranking relationships between documents.

The dataset format is:

{"query": "query", "response": "relevant_doc1", "rejected_response": ["irrelevant_doc1", "irrelevant_doc2", ...]}
{"query": "query", "response": "relevant_doc2", "rejected_response": ["irrelevant_doc1", "irrelevant_doc2", ...]}
...

Documentation here:
https://swift.readthedocs.io/en/latest/BestPractices/Reranker.html

The dataset format is different from https://swift.readthedocs.io/en/latest/BestPractices/Reranker.html. Can you tell the difference?

The dataset format is different from https://swift.readthedocs.io/en/latest/BestPractices/Reranker.html. Can you tell the difference?

Apologies, the documentation here is outdated. Please follow this link for the latest version: https://swift.readthedocs.io/en/latest/BestPractices/Reranker.html

Sign up or log in to comment