| 1310 | } |
| 1311 | |
| 1312 | static bool train_params_parse(int argc, char ** argv, struct train_params * params) { |
| 1313 | bool invalid_param = false; |
| 1314 | std::string arg; |
| 1315 | struct train_params default_params = get_default_train_params(); |
| 1316 | const std::string arg_prefix = "--"; |
| 1317 | |
| 1318 | for (int i = 1; i < argc; i++) { |
| 1319 | arg = argv[i]; |
| 1320 | if (arg.compare(0, arg_prefix.size(), arg_prefix) == 0) { |
| 1321 | std::replace(arg.begin(), arg.end(), '_', '-'); |
| 1322 | } |
| 1323 | |
| 1324 | if (consume_common_train_arg(argc, argv, &i, ¶ms->common, &invalid_param)) { |
| 1325 | if (invalid_param) { |
| 1326 | break; |
| 1327 | } else if (params->common.print_usage) { |
| 1328 | train_print_usage(argc, argv, &default_params); |
| 1329 | exit(0); |
| 1330 | } |
| 1331 | } else if (arg == "--model-base") { |
| 1332 | if (++i >= argc) { |
| 1333 | invalid_param = true; |
| 1334 | break; |
| 1335 | } |
| 1336 | params->fn_model_base = argv[i]; |
| 1337 | } else if (arg == "--lora-out") { |
| 1338 | if (++i >= argc) { |
| 1339 | invalid_param = true; |
| 1340 | break; |
| 1341 | } |
| 1342 | params->fn_lora_out = argv[i]; |
| 1343 | } else if (arg == "--only-write-lora") { |
| 1344 | params->only_write_lora = true; |
| 1345 | } else if (arg == "--norm-rms-eps") { |
| 1346 | if (++i >= argc) { |
| 1347 | invalid_param = true; |
| 1348 | break; |
| 1349 | } |
| 1350 | params->f_norm_rms_eps = std::stof(argv[i]); |
| 1351 | params->custom_f_norm_rms_eps = true; |
| 1352 | } else if (arg == "--rope-freq-base") { |
| 1353 | if (++i >= argc) { |
| 1354 | invalid_param = true; |
| 1355 | break; |
| 1356 | } |
| 1357 | params->rope_freq_base = std::stof(argv[i]); |
| 1358 | params->custom_rope_freq_base = true; |
| 1359 | } else if (arg == "--rope-freq-scale") { |
| 1360 | if (++i >= argc) { |
| 1361 | invalid_param = true; |
| 1362 | break; |
| 1363 | } |
| 1364 | params->rope_freq_scale = std::stof(argv[i]); |
| 1365 | params->custom_rope_freq_scale = true; |
| 1366 | } else if (arg == "--lora-alpha") { |
| 1367 | if (++i >= argc) { |
| 1368 | invalid_param = true; |
| 1369 | break; |
no test coverage detected