|
- using LLama.Common;
-
- namespace LLama.Examples.Examples
- {
- // This example shows how to save/load state of the executor.
- public class LoadAndSaveState
- {
- public static async Task Run()
- {
- string modelPath = UserSettings.GetModelPath();
-
- var prompt = (await File.ReadAllTextAsync("Assets/chat-with-bob.txt")).Trim();
-
- var parameters = new ModelParams(modelPath)
- {
- ContextSize = 1024,
- Seed = 1337,
- GpuLayerCount = 5
- };
- using var model = LLamaWeights.LoadFromFile(parameters);
- using var context = model.CreateContext(parameters);
- var ex = new InteractiveExecutor(context);
-
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("The executor has been enabled. In this example, the prompt is printed, " +
- "the maximum tokens is set to 64 and the context size is 256. (an example for small scale usage)");
-
- Console.ForegroundColor = ConsoleColor.White;
- Console.Write(prompt);
-
- var inferenceParams = new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "User:" } };
-
- while (true)
- {
- await foreach (var text in ex.InferAsync(prompt, inferenceParams))
- {
- Console.Write(text);
- }
-
- prompt = Console.ReadLine();
- if (prompt == "save")
- {
- Console.Write("Your path to save model state: ");
- var modelStatePath = Console.ReadLine();
- ex.Context.SaveState(modelStatePath);
-
- Console.Write("Your path to save executor state: ");
- var executorStatePath = Console.ReadLine();
- await ex.SaveState(executorStatePath);
-
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("All states saved!");
- Console.ForegroundColor = ConsoleColor.White;
-
- var ctx = ex.Context;
- ctx.LoadState(modelStatePath);
- ex = new InteractiveExecutor(ctx);
- await ex.LoadState(executorStatePath);
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("Loaded state!");
- Console.ForegroundColor = ConsoleColor.White;
-
- Console.Write("Now you can continue your session: ");
- Console.ForegroundColor = ConsoleColor.Green;
- prompt = Console.ReadLine();
- Console.ForegroundColor = ConsoleColor.White;
- }
- }
- }
- }
- }
|