Model arguments
(parser)
| 30 | _GLOBAL_RANDOM_SEED = None |
| 31 | |
| 32 | def add_model_config_args(parser): |
| 33 | """Model arguments""" |
| 34 | |
| 35 | group = parser.add_argument_group('model', 'model configuration') |
| 36 | |
| 37 | # --------------- Core hyper-parameters --------------- |
| 38 | group.add_argument('--num-layers', type=int, default=6, |
| 39 | help='num of layers') |
| 40 | group.add_argument('--hidden-size', type=int, default=1024, |
| 41 | help='transformer hidden size') |
| 42 | group.add_argument('--num-attention-heads', type=int, default=16, |
| 43 | help='num of transformer attention heads') |
| 44 | group.add_argument('--vocab-size', type=int, default=100, |
| 45 | help='vocab size for tokenization. the size of word_embeddings.') |
| 46 | group.add_argument('--max-sequence-length', type=int, default=512, |
| 47 | help='maximum number of position embeddings to use') |
| 48 | |
| 49 | # --------------- Optional hyper-parameters --------------- |
| 50 | # for developers: |
| 51 | # if you want to add more optional arch hyper-parameters, please also add them in model_io.py, base_model.py, and of course, transformer.py and anywhere in use. |
| 52 | |
| 53 | group.add_argument('--layernorm-order', type=str, default='pre', |
| 54 | help='choose from "pre", "post", "sandwich".', |
| 55 | choices=['post', # In the original Transformer. |
| 56 | 'pre', # Used by most current frameworks. |
| 57 | 'sandwich' # More stable. |
| 58 | ]) |
| 59 | # The inner-hidden-size in MLP, default "None" means 4*hidden-size |
| 60 | group.add_argument('--inner-hidden-size', type=int, default=None, |
| 61 | help='inner hidden size for transformer FFN, None means 4*hidden-size') |
| 62 | # The hidden-size-per-attention-head in Self and Cross Attention, |
| 63 | # default "None" means hidden-size/num-attention-heads. |
| 64 | group.add_argument('--hidden-size-per-attention-head', type=int, default=None) |
| 65 | # TODO: fully test it, support the generation. |
| 66 | group.add_argument('--model-parallel-size', type=int, default=1, |
| 67 | help='size of the model parallel. only use if you are an expert.') |
| 68 | |
| 69 | group.add_argument('--skip-init', action='store_true', |
| 70 | help='skip model initialization') |
| 71 | |
| 72 | group.add_argument('--use-gpu-initialization', action='store_true', |
| 73 | help='initialize model on gpu') |
| 74 | |
| 75 | group.add_argument('--num-multi-query-heads', type=int, default=0, |
| 76 | help='use multi-query attention, num of kv groups. 0 means multi-head attention.') |
| 77 | group.add_argument('--is-gated-mlp', action='store_true', |
| 78 | help='use gated MLP (GLU), common in LLAMA etc.') |
| 79 | group.add_argument('--is-rotary-emb', action='store_true', |
| 80 | help='use rotary embedding, common in LLAMA etc.') |
| 81 | |
| 82 | # --------------- Inessential hyper-parameters --------------- |
| 83 | |
| 84 | # Dropout and eps hyper-parameters |
| 85 | group.add_argument('--layernorm-epsilon', type=float, default=1e-5, |
| 86 | help='layer norm epsilon') |
| 87 | group.add_argument('--hidden-dropout', type=float, default=0.1, |
| 88 | help='dropout probability for hidden state transformer') |
| 89 | group.add_argument('--attention-dropout', type=float, default=0.1, |
no outgoing calls
no test coverage detected