File size: 3,144 Bytes
0ab2566
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from dataclasses import dataclass, field
from typing import Optional


@dataclass
class CoTArguments:
    r"""
    CoT embedding 训练特有的参数,与 utils.arguments 中已有的参数类配合使用。
    """
    infonce_weight: Optional[float] = field(
        default=1.0,
        metadata={"help": "weight of the embedding infonce loss"},
    )
    cot_weight: Optional[float] = field(
        default=1.0,
        metadata={"help": "weight of the cot cross entropy loss"},
    )
    max_cot_length: Optional[int] = field(
        default=192,
        metadata={"help": "max token length of the cot text, longer cot will be truncated"},
    )
    cot_emb_suffix: Optional[str] = field(
        default="<|im_end|>",
        metadata={"help": "suffix appended after the cot text, its hidden state is pooled as query embedding"},
    )
    doc_append_eos: Optional[bool] = field(
        default=False,
        metadata={"help": "also append cot_emb_suffix to doc side so that query/doc pool on the same token"},
    )
    train_lm_head: Optional[bool] = field(
        default=False,
        metadata={
            "help": "whether to finetune lm_head. lm_head is weight-tied with embed_tokens: "
                    "under full finetuning both are unfrozen/frozen together; "
                    "under LoRA a decoupled copy of lm_head is trained via modules_to_save "
                    "while embed_tokens stays frozen"
        },
    )
    query_image_type: Optional[str] = field(
        default=None,
        metadata={"help": "image type of query side: full / crop / both. fall back to data_args.image_type"},
    )
    doc_image_type: Optional[str] = field(
        default=None,
        metadata={"help": "image type of doc side: full / crop / both. fall back to data_args.image_type"},
    )

    # ------------------------------------------------------------------
    # wandb 设置:登录 key / project 等在此填写,use_wandb 打开后生效
    # ------------------------------------------------------------------
    use_wandb: Optional[bool] = field(
        default=False,
        metadata={"help": "enable wandb logging"},
    )
    wandb_api_key: Optional[str] = field(
        default="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",  # TODO: 在此填写 wandb 登录 key
        metadata={"help": "wandb login api key"},
    )
    wandb_project: Optional[str] = field(
        default="cot_embedding",  # TODO: 在此填写 wandb project 名称
        metadata={"help": "wandb project name"},
    )
    wandb_entity: Optional[str] = field(
        default="",  # 可选:wandb 团队/用户名,不填用账号默认值
        metadata={"help": "wandb entity (team or username), optional"},
    )
    wandb_run_name: Optional[str] = field(
        default="lora_alpha128_train_head_local",
        metadata={"help": "wandb run name, fall back to training_args.run_name"},
    )
    wandb_mode: Optional[str] = field(
        default="online",
        metadata={"help": "wandb mode: online / offline, use offline when workers have no internet access"},
    )