@@ -129,13 +129,13 @@ static void common_params_handle_model_default(common_params & params) {
129129 }
130130 params.hf_file = params.model ;
131131 } else if (params.model .empty ()) {
132- params.model = fs_get_cache_file (string_split (params.hf_file , ' /' ).back ());
132+ params.model = fs_get_cache_file (string_split<std::string> (params.hf_file , ' /' ).back ());
133133 }
134134 } else if (!params.model_url .empty ()) {
135135 if (params.model .empty ()) {
136- auto f = string_split (params.model_url , ' #' ).front ();
137- f = string_split (f, ' ?' ).front ();
138- params.model = fs_get_cache_file (string_split (f, ' /' ).back ());
136+ auto f = string_split<std::string> (params.model_url , ' #' ).front ();
137+ f = string_split<std::string> (f, ' ?' ).front ();
138+ params.model = fs_get_cache_file (string_split<std::string> (f, ' /' ).back ());
139139 }
140140 } else if (params.model .empty ()) {
141141 params.model = DEFAULT_MODEL_PATH;
@@ -252,6 +252,9 @@ static bool common_params_parse_ex(int argc, char ** argv, common_params_context
252252 for (auto & antiprompt : params.antiprompt ) {
253253 string_process_escapes (antiprompt);
254254 }
255+ for (auto & seq_breaker : params.sparams .dry_sequence_breakers ) {
256+ string_process_escapes (seq_breaker);
257+ }
255258 }
256259
257260 if (!params.kv_overrides .empty ()) {
@@ -880,7 +883,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
880883 {" --samplers" }, " SAMPLERS" ,
881884 string_format (" samplers that will be used for generation in the order, separated by \' ;\'\n (default: %s)" , sampler_type_names.c_str ()),
882885 [](common_params & params, const std::string & value) {
883- const auto sampler_names = string_split (value, ' ;' );
886+ const auto sampler_names = string_split<std::string> (value, ' ;' );
884887 params.sparams .samplers = common_sampler_types_from_names (sampler_names, true );
885888 }
886889 ).set_sparam ());
@@ -941,13 +944,6 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
941944 params.sparams .min_p = std::stof (value);
942945 }
943946 ).set_sparam ());
944- add_opt (common_arg (
945- {" --tfs" }, " N" ,
946- string_format (" tail free sampling, parameter z (default: %.1f, 1.0 = disabled)" , (double )params.sparams .tfs_z ),
947- [](common_params & params, const std::string & value) {
948- params.sparams .tfs_z = std::stof (value);
949- }
950- ).set_sparam ());
951947 add_opt (common_arg (
952948 {" --xtc-probability" }, " N" ,
953949 string_format (" xtc probability (default: %.1f, 0.0 = disabled)" , (double )params.sparams .xtc_probability ),
@@ -998,6 +994,64 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
998994 params.sparams .penalty_freq = std::stof (value);
999995 }
1000996 ).set_sparam ());
997+ add_opt (common_arg (
998+ {" --dry-multiplier" }, " N" ,
999+ string_format (" set DRY sampling multiplier (default: %.1f, 0.0 = disabled)" , (double )params.sparams .dry_multiplier ),
1000+ [](common_params & params, const std::string & value) {
1001+ params.sparams .dry_multiplier = std::stof (value);
1002+ }
1003+ ).set_sparam ());
1004+ add_opt (common_arg (
1005+ {" --dry-base" }, " N" ,
1006+ string_format (" set DRY sampling base value (default: %.2f)" , (double )params.sparams .dry_base ),
1007+ [](common_params & params, const std::string & value) {
1008+ float potential_base = std::stof (value);
1009+ if (potential_base >= 1 .0f )
1010+ {
1011+ params.sparams .dry_base = potential_base;
1012+ }
1013+ }
1014+ ).set_sparam ());
1015+ add_opt (common_arg (
1016+ {" --dry-allowed-length" }, " N" ,
1017+ string_format (" set allowed length for DRY sampling (default: %d)" , params.sparams .dry_allowed_length ),
1018+ [](common_params & params, int value) {
1019+ params.sparams .dry_allowed_length = value;
1020+ }
1021+ ).set_sparam ());
1022+ add_opt (common_arg (
1023+ {" --dry-penalty-last-n" }, " N" ,
1024+ string_format (" set DRY penalty for the last n tokens (default: %d, 0 = disable, -1 = context size)" , params.sparams .dry_penalty_last_n ),
1025+ [](common_params & params, int value) {
1026+ params.sparams .dry_penalty_last_n = value;
1027+ }
1028+ ).set_sparam ());
1029+ add_opt (common_arg (
1030+ {" --dry-sequence-breaker" }, " STRING" ,
1031+ string_format (" add sequence breaker for DRY sampling, clearing out default breakers (%s) in the process; use \" none\" to not use any sequence breakers\n " ,
1032+ params.sparams .dry_sequence_breakers .empty () ? " none" :
1033+ std::accumulate (std::next (params.sparams .dry_sequence_breakers .begin ()),
1034+ params.sparams .dry_sequence_breakers .end (),
1035+ std::string (" '" ) + (params.sparams .dry_sequence_breakers [0 ] == " \n " ? " \\ n" : params.sparams .dry_sequence_breakers [0 ]) + " '" ,
1036+ [](const std::string& a, const std::string& b) {
1037+ std::string formatted_b = (b == " \n " ) ? " \\ n" : b;
1038+ return a + " , '" + formatted_b + " '" ;
1039+ }).c_str ()),
1040+ [](common_params & params, const std::string & value) {
1041+ static bool defaults_cleared = false ;
1042+
1043+ if (!defaults_cleared) {
1044+ params.sparams .dry_sequence_breakers .clear ();
1045+ defaults_cleared = true ;
1046+ }
1047+
1048+ if (value == " none" ) {
1049+ params.sparams .dry_sequence_breakers .clear ();
1050+ } else {
1051+ params.sparams .dry_sequence_breakers .emplace_back (value);
1052+ }
1053+ }
1054+ ).set_sparam ());
10011055 add_opt (common_arg (
10021056 {" --dynatemp-range" }, " N" ,
10031057 string_format (" dynamic temperature range (default: %.1f, 0.0 = disabled)" , (double )params.sparams .dynatemp_range ),
@@ -1014,7 +1068,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
10141068 ).set_sparam ());
10151069 add_opt (common_arg (
10161070 {" --mirostat" }, " N" ,
1017- string_format (" use Mirostat sampling.\n Top K, Nucleus, Tail Free and Locally Typical samplers are ignored if used.\n "
1071+ string_format (" use Mirostat sampling.\n Top K, Nucleus and Locally Typical samplers are ignored if used.\n "
10181072 " (default: %d, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)" , params.sparams .mirostat ),
10191073 [](common_params & params, int value) {
10201074 params.sparams .mirostat = value;
0 commit comments