From c724e32573d646c86f8996ac2c5ef800473551cb Mon Sep 17 00:00:00 2001 From: xatier Date: Tue, 23 Apr 2024 20:21:52 -0500 Subject: [PATCH] server: public: move default parameters to its own file This commit enables users to easily update the parameters with desired default values without getting familiar with frontend details. --- examples/server/README.md | 9 +++++++ examples/server/public/index.html | 39 ++++--------------------------- examples/server/public/params.js | 36 ++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 35 deletions(-) create mode 100644 examples/server/public/params.js diff --git a/examples/server/README.md b/examples/server/README.md index 918ac1295..4bd6ceb24 100644 --- a/examples/server/README.md +++ b/examples/server/README.md @@ -690,3 +690,12 @@ You can use html formatting if needed. ``` + +### Update default parameters + +Update with desired values in `examples/server/public/params.js` and set +`--path` flag to the server. For instance, + +```bash +--path /path/to/llama.cpp/examples/server/public/ +``` diff --git a/examples/server/public/index.html b/examples/server/public/index.html index 2961999f2..ba7a1a8c4 100644 --- a/examples/server/public/index.html +++ b/examples/server/public/index.html @@ -203,44 +203,13 @@ import { llama } from './completion.js'; import { SchemaConverter } from './json-schema-to-grammar.mjs'; + + // load default session values and parameters + import { session, params } from './params.js'; + let selected_image = false; var slot_id = -1; - const session = signal({ - prompt: "This is a conversation between User and Llama, a friendly chatbot. Llama is helpful, kind, honest, good at writing, and never fails to answer any requests immediately and with precision.", - template: "{{prompt}}\n\n{{history}}\n{{char}}:", - historyTemplate: "{{name}}: {{message}}", - transcript: [], - type: "chat", // "chat" | "completion" - char: "Llama", - user: "User", - image_selected: '' - }) - - const params = signal({ - n_predict: 400, - temperature: 0.7, - repeat_last_n: 256, // 0 = disable penalty, -1 = context size - repeat_penalty: 1.18, // 1.0 = disabled - penalize_nl: false, - top_k: 40, // <= 0 to use vocab size - top_p: 0.95, // 1.0 = disabled - min_p: 0.05, // 0 = disabled - tfs_z: 1.0, // 1.0 = disabled - typical_p: 1.0, // 1.0 = disabled - presence_penalty: 0.0, // 0.0 = disabled - frequency_penalty: 0.0, // 0.0 = disabled - mirostat: 0, // 0/1/2 - mirostat_tau: 5, // target entropy - mirostat_eta: 0.1, // learning rate - grammar: '', - n_probs: 0, // no completion_probabilities, - min_keep: 0, // min probs from each sampler, - image_data: [], - cache_prompt: true, - api_key: '' - }) - /* START: Support for storing prompt templates and parameters in browsers LocalStorage */ const local_storage_storageKey = "llamacpp_server_local_storage"; diff --git a/examples/server/public/params.js b/examples/server/public/params.js new file mode 100644 index 000000000..df0ca4c31 --- /dev/null +++ b/examples/server/public/params.js @@ -0,0 +1,36 @@ +import { signal } from './index.js'; + +export const session = signal({ + prompt: "This is a conversation between User and Llama, a friendly chatbot. Llama is helpful, kind, honest, good at writing, and never fails to answer any requests immediately and with precision.", + template: "{{prompt}}\n\n{{history}}\n{{char}}:", + historyTemplate: "{{name}}: {{message}}", + transcript: [], + type: "chat", // "chat" | "completion" + char: "Llama", + user: "User", + image_selected: '' +}) + +export const params = signal({ + n_predict: 400, + temperature: 0.7, + repeat_last_n: 256, // 0 = disable penalty, -1 = context size + repeat_penalty: 1.18, // 1.0 = disabled + penalize_nl: false, + top_k: 40, // <= 0 to use vocab size + top_p: 0.95, // 1.0 = disabled + min_p: 0.05, // 0 = disabled + tfs_z: 1.0, // 1.0 = disabled + typical_p: 1.0, // 1.0 = disabled + presence_penalty: 0.0, // 0.0 = disabled + frequency_penalty: 0.0, // 0.0 = disabled + mirostat: 0, // 0/1/2 + mirostat_tau: 5, // target entropy + mirostat_eta: 0.1, // learning rate + grammar: '', + n_probs: 0, // no completion_probabilities, + min_keep: 0, // min probs from each sampler, + image_data: [], + cache_prompt: true, + api_key: '' +})