Don't force immediate interactive without `-i` (#354)
* Don't force immediate interactive without -i Sometimes we might want to use a reverse prompt but we want to let the model generate tokens right after the initial prompt. So we don't force user input mode if the -i flag wasn't specified and instead let it run until we encounter the reverse prompt. This gives use some more flexibility, since it doesn't force the user to enter a newline if they want to let the model generate text right after the initial prompt and only be asked for input if the reverse prompt is encountered. The `--interactive-first` flag is reintroduced to force the old behavior. `-r` behaves like `-i` plus introduces a reverse prompt (it can be specified more than once). * Update help output. --------- Co-authored-by: Johnman <tjohnman@github>
This commit is contained in:
		
							parent
							
								
									4122dffff9
								
							
						
					
					
						commit
						305ba6f0e6
					
				
							
								
								
									
										6
									
								
								main.cpp
								
								
								
								
							
							
						
						
									
										6
									
								
								main.cpp
								
								
								
								
							|  | @ -254,6 +254,10 @@ int main(int argc, char ** argv) { | |||
|         params.interactive = true; | ||||
|     } | ||||
| 
 | ||||
|     if (params.interactive_start) { | ||||
|         params.interactive = true; | ||||
|     } | ||||
| 
 | ||||
|     fprintf(stderr, "\n"); | ||||
|     fprintf(stderr, "%s: prompt: '%s'\n", __func__, params.prompt.c_str()); | ||||
|     fprintf(stderr, "%s: number of tokens in prompt = %zu\n", __func__, embd_inp.size()); | ||||
|  | @ -296,7 +300,7 @@ int main(int argc, char ** argv) { | |||
| #endif | ||||
|                " - Press Return to return control to LLaMa.\n" | ||||
|                " - If you want to submit another line, end your input in '\\'.\n\n"); | ||||
|         is_interacting = true; | ||||
|         is_interacting = params.interactive_start; | ||||
|     } | ||||
| 
 | ||||
|     int input_consumed = 0; | ||||
|  |  | |||
|  | @ -63,6 +63,8 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { | |||
|             params.model = argv[++i]; | ||||
|         } else if (arg == "-i" || arg == "--interactive") { | ||||
|             params.interactive = true; | ||||
|         } else if (arg == "--interactive-first") { | ||||
|             params.interactive_start = true; | ||||
|         } else if (arg == "-ins" || arg == "--instruct") { | ||||
|             params.instruct = true; | ||||
|         } else if (arg == "--color") { | ||||
|  | @ -96,9 +98,10 @@ void gpt_print_usage(int /*argc*/, char ** argv, const gpt_params & params) { | |||
|     fprintf(stderr, "options:\n"); | ||||
|     fprintf(stderr, "  -h, --help            show this help message and exit\n"); | ||||
|     fprintf(stderr, "  -i, --interactive     run in interactive mode\n"); | ||||
|     fprintf(stderr, "  --interactive-first   run in interactive mode and wait for input right away\n"); | ||||
|     fprintf(stderr, "  -ins, --instruct      run in instruction mode (use with Alpaca models)\n"); | ||||
|     fprintf(stderr, "  -r PROMPT, --reverse-prompt PROMPT\n"); | ||||
|     fprintf(stderr, "                        in interactive mode, poll user input upon seeing PROMPT (can be\n"); | ||||
|     fprintf(stderr, "                        run in interactive mode and poll user input upon seeing PROMPT (can be\n"); | ||||
|     fprintf(stderr, "                        specified more than once for multiple prompts).\n"); | ||||
|     fprintf(stderr, "  --color               colorise output to distinguish prompt and user input from generations\n"); | ||||
|     fprintf(stderr, "  -s SEED, --seed SEED  RNG seed (default: -1, use random seed for <= 0)\n"); | ||||
|  |  | |||
							
								
								
									
										2
									
								
								utils.h
								
								
								
								
							
							
						
						
									
										2
									
								
								utils.h
								
								
								
								
							|  | @ -38,7 +38,7 @@ struct gpt_params { | |||
|     bool random_prompt     = false; // do not randomize prompt if none provided
 | ||||
|     bool use_color         = false; // use color to distinguish generations and inputs
 | ||||
|     bool interactive       = false; // interactive mode
 | ||||
|     bool interactive_start = false; // reverse prompt immediately
 | ||||
|     bool interactive_start = false; // wait for user input immediately
 | ||||
|     bool instruct          = false; // instruction mode (used for Alpaca models)
 | ||||
|     bool ignore_eos        = false; // do not stop generating after eos
 | ||||
|     bool perplexity        = false; // compute perplexity over the prompt
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue