| 1140 | } |
| 1141 | |
| 1142 | bool consume_common_train_arg( |
| 1143 | int argc, char ** argv, int * idx, struct train_params_common * params, bool * invalid_param |
| 1144 | ) { |
| 1145 | int& i = *idx; |
| 1146 | std::string arg = argv[i]; |
| 1147 | const std::string arg_prefix = "--"; |
| 1148 | if (arg.compare(0, arg_prefix.size(), arg_prefix) == 0) { |
| 1149 | std::replace(arg.begin(), arg.end(), '_', '-'); |
| 1150 | } |
| 1151 | if (arg == "--train-data") { |
| 1152 | if (++i >= argc) { |
| 1153 | *invalid_param = true; |
| 1154 | return true; |
| 1155 | } |
| 1156 | params->fn_train_data = argv[i]; |
| 1157 | } else if (arg == "--checkpoint-in") { |
| 1158 | if (++i >= argc) { |
| 1159 | *invalid_param = true; |
| 1160 | return true; |
| 1161 | } |
| 1162 | params->fn_checkpoint_in = argv[i]; |
| 1163 | } else if (arg == "--checkpoint-out") { |
| 1164 | if (++i >= argc) { |
| 1165 | *invalid_param = true; |
| 1166 | return true; |
| 1167 | } |
| 1168 | params->fn_checkpoint_out = argv[i]; |
| 1169 | } else if (arg == "--pattern-fn-it") { |
| 1170 | if (++i >= argc) { |
| 1171 | *invalid_param = true; |
| 1172 | return true; |
| 1173 | } |
| 1174 | params->pattern_fn_it = argv[i]; |
| 1175 | } else if (arg == "--fn-latest") { |
| 1176 | if (++i >= argc) { |
| 1177 | *invalid_param = true; |
| 1178 | return true; |
| 1179 | } |
| 1180 | params->fn_latest = argv[i]; |
| 1181 | } else if (arg == "--save-every") { |
| 1182 | if (++i >= argc) { |
| 1183 | *invalid_param = true; |
| 1184 | return true; |
| 1185 | } |
| 1186 | params->save_every = std::stoi(argv[i]); |
| 1187 | } else if (arg == "-s" || arg == "--seed") { |
| 1188 | if (++i >= argc) { |
| 1189 | *invalid_param = true; |
| 1190 | return true; |
| 1191 | } |
| 1192 | params->seed = std::stoi(argv[i]); |
| 1193 | } else if (arg == "-c" || arg == "--ctx") { |
| 1194 | if (++i >= argc) { |
| 1195 | *invalid_param = true; |
| 1196 | return true; |
| 1197 | } |
| 1198 | params->n_ctx = std::stoi(argv[i]); |
| 1199 | params->custom_n_ctx = true; |