This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# For full-parameter training, please refer to:
|
||||
# https://github.com/modelscope/ms-swift/blob/main/examples/infer/demo_embedding.py
|
||||
|
||||
import torch
|
||||
|
||||
from swift.infer_engine import InferRequest, TransformersEngine
|
||||
|
||||
|
||||
def run_qwen3_emb():
|
||||
engine = TransformersEngine(
|
||||
'Qwen/Qwen3-Embedding-4B',
|
||||
task_type='embedding',
|
||||
attn_impl='flash_attention_2',
|
||||
adapters=['output/vx-xxx/checkpoint-xxx'])
|
||||
|
||||
infer_requests = [
|
||||
InferRequest(messages=[
|
||||
{
|
||||
'role': 'user',
|
||||
'content': 'A dog sleeping under a table.'
|
||||
},
|
||||
]),
|
||||
InferRequest(messages=[
|
||||
{
|
||||
'role': 'user',
|
||||
'content': 'a dog napping under a small table.'
|
||||
},
|
||||
]),
|
||||
InferRequest(messages=[
|
||||
{
|
||||
'role': 'user',
|
||||
'content': 'a cat napping under a small tree.'
|
||||
},
|
||||
])
|
||||
]
|
||||
resp_list = engine.infer(infer_requests)
|
||||
embedding0 = torch.tensor(resp_list[0].data[0].embedding)
|
||||
embedding1 = torch.tensor(resp_list[1].data[0].embedding)
|
||||
embedding2 = torch.tensor(resp_list[2].data[0].embedding)
|
||||
embedding = torch.stack([embedding0, embedding1, embedding2])
|
||||
print(f'scores: {embedding @ embedding.T}')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
run_qwen3_emb()
|
||||
@@ -0,0 +1,39 @@
|
||||
# 2*10GiB
|
||||
# losses: swift/loss
|
||||
# data format: docs/source_en/BestPractices/Embedding.md
|
||||
# --dataloader_drop_last must be true or eval gather will throw error
|
||||
# --model iic/gte-modernbert-base iic/gte_Qwen2-7B-instruct also supported
|
||||
CUDA_VISIBLE_DEVICES=0,1 \
|
||||
INFONCE_TEMPERATURE=0.1 \
|
||||
NPROC_PER_NODE=2 \
|
||||
swift sft \
|
||||
--model Qwen/Qwen3-Embedding-4B \
|
||||
--task_type embedding \
|
||||
--tuner_type lora \
|
||||
--lora_rank 8 \
|
||||
--lora_alpha 32 \
|
||||
--learning_rate 5e-5 \
|
||||
--target_modules all-linear \
|
||||
--dataset sentence-transformers/stsb:positive \
|
||||
--attn_impl flash_attn \
|
||||
--padding_free true \
|
||||
--torch_dtype bfloat16 \
|
||||
--load_from_cache_file true \
|
||||
--split_dataset_ratio 0.02 \
|
||||
--eval_strategy steps \
|
||||
--output_dir output \
|
||||
--save_steps 50 \
|
||||
--eval_steps 50 \
|
||||
--save_total_limit 2 \
|
||||
--logging_steps 5 \
|
||||
--num_train_epochs 5 \
|
||||
--max_length 8192 \
|
||||
--per_device_train_batch_size 8 \
|
||||
--per_device_eval_batch_size 8 \
|
||||
--gradient_accumulation_steps 1 \
|
||||
--dataloader_num_workers 4 \
|
||||
--dataset_num_proc 4 \
|
||||
--warmup_ratio 0.05 \
|
||||
--loss_type infonce \
|
||||
--dataloader_drop_last true \
|
||||
--deepspeed zero2
|
||||
@@ -0,0 +1,35 @@
|
||||
# 2*30GiB
|
||||
CUDA_VISIBLE_DEVICES=0,1 \
|
||||
INFONCE_TEMPERATURE=0.1 \
|
||||
NPROC_PER_NODE=2 \
|
||||
swift sft \
|
||||
--model Qwen/Qwen3-VL-Embedding-8B \
|
||||
--task_type embedding \
|
||||
--tuner_type lora \
|
||||
--lora_rank 8 \
|
||||
--lora_alpha 32 \
|
||||
--learning_rate 5e-5 \
|
||||
--target_modules all-linear \
|
||||
--dataset swift/TextCaps:emb \
|
||||
--attn_impl flash_attn \
|
||||
--padding_free true \
|
||||
--torch_dtype bfloat16 \
|
||||
--load_from_cache_file true \
|
||||
--split_dataset_ratio 0.02 \
|
||||
--eval_strategy steps \
|
||||
--output_dir output \
|
||||
--save_steps 50 \
|
||||
--eval_steps 50 \
|
||||
--save_total_limit 2 \
|
||||
--logging_steps 5 \
|
||||
--num_train_epochs 1 \
|
||||
--max_length 8192 \
|
||||
--per_device_train_batch_size 8 \
|
||||
--per_device_eval_batch_size 8 \
|
||||
--gradient_accumulation_steps 1 \
|
||||
--dataloader_num_workers 4 \
|
||||
--dataset_num_proc 4 \
|
||||
--warmup_ratio 0.05 \
|
||||
--loss_type infonce \
|
||||
--dataloader_drop_last true \
|
||||
--deepspeed zero2
|
||||
@@ -0,0 +1,31 @@
|
||||
nproc_per_node=8
|
||||
|
||||
# losses: swift/loss
|
||||
# 8*40G
|
||||
MAX_PIXELS=1003520 \
|
||||
NPROC_PER_NODE=$nproc_per_node \
|
||||
swift sft \
|
||||
--model iic/gme-Qwen2-VL-2B-Instruct \
|
||||
--tuner_type lora \
|
||||
--dataset 'swift/TextCaps:emb' \
|
||||
--load_from_cache_file true \
|
||||
--split_dataset_ratio 0.01 \
|
||||
--torch_dtype bfloat16 \
|
||||
--num_train_epochs 1 \
|
||||
--per_device_train_batch_size 2 \
|
||||
--per_device_eval_batch_size 2 \
|
||||
--gradient_accumulation_steps $(expr 64 / $nproc_per_node) \
|
||||
--eval_steps 100 \
|
||||
--save_steps 100 \
|
||||
--eval_strategy steps \
|
||||
--save_total_limit 2 \
|
||||
--logging_steps 5 \
|
||||
--output_dir output \
|
||||
--lazy_tokenize true \
|
||||
--warmup_ratio 0.05 \
|
||||
--learning_rate 5e-5 \
|
||||
--deepspeed zero3 \
|
||||
--dataloader_num_workers 4 \
|
||||
--task_type embedding \
|
||||
--loss_type infonce \
|
||||
--dataloader_drop_last true
|
||||
Reference in New Issue
Block a user