Improved profiles by adding 'separator' field to the profile format, improved vicuna-v0 profile, removed default profile from frontend-server cli, updated README

This commit is contained in:
Julian Müller (ChaoticByte) 2023-05-30 10:55:31 +02:00
parent bd44e45801
commit ae0058bdee
5 changed files with 10 additions and 8 deletions

View file

@ -15,7 +15,7 @@ For memory and disk requirements for the different models, see [llama.cpp - Memo
## Supported Models ## Supported Models
- [🐨 Koala](https://bair.berkeley.edu/blog/2023/04/03/koala/) - [🐨 Koala](https://bair.berkeley.edu/blog/2023/04/03/koala/)
- [🦙 Vicuna](https://lmsys.org/blog/2023-03-30-vicuna/) - [🦙 Vicuna v0](https://lmsys.org/blog/2023-03-30-vicuna/)
see `./profiles/` see `./profiles/`

View file

@ -9,10 +9,9 @@ import uvicorn
from frontend.app import app from frontend.app import app
if __name__ == "__main__": if __name__ == "__main__":
koala_profile_path = Path(__file__).parent / "profiles" / "koala.json"
# CLI # CLI
ap = ArgumentParser() ap = ArgumentParser()
ap.add_argument("--profile", help="Path to a profile file that includes settings for a specific model (default: ./profiles/koala.json)", type=Path, default=koala_profile_path) ap.add_argument("--profile", help="Path to a profile file that includes settings for a specific model", type=Path, required=True)
ap.add_argument("--host", help="Address to listen on (default: localhost)", type=str, default="localhost") ap.add_argument("--host", help="Address to listen on (default: localhost)", type=str, default="localhost")
ap.add_argument("--port", help="Port to listen on (default: 8080)", type=int, default=8080) ap.add_argument("--port", help="Port to listen on (default: 8080)", type=int, default=8080)
ap.add_argument("--api", help="URL of the API Server (default: 'http://localhost:7331')", type=str, default="http://localhost:7331") ap.add_argument("--api", help="URL of the API Server (default: 'http://localhost:7331')", type=str, default="http://localhost:7331")
@ -34,6 +33,7 @@ if __name__ == "__main__":
"conversation_prefix": profile["conversation_prefix"], "conversation_prefix": profile["conversation_prefix"],
"user_keyword": profile["user_keyword"], "user_keyword": profile["user_keyword"],
"assistant_keyword": profile["assistant_keyword"], "assistant_keyword": profile["assistant_keyword"],
"separator": profile["separator"],
"stop_sequences": profile["stop_sequences"] "stop_sequences": profile["stop_sequences"]
} }
} }

View file

@ -111,10 +111,10 @@ fetch("/config")
function addMessage(message, role) { function addMessage(message, role) {
if (role == Roles.USER) { if (role == Roles.USER) {
conversation.push( conversation.push(
" " + frontend_config.profile.user_keyword + " " frontend_config.profile.user_keyword + " "
+ message + " " + frontend_config.profile.assistant_keyword); + message + frontend_config.profile.separator + frontend_config.profile.assistant_keyword);
} }
else { conversation.push(message); } else { conversation.push(message + frontend_config.profile.separator); }
// UI // UI
let messageRoleElem = document.createElement("div"); let messageRoleElem = document.createElement("div");
messageRoleElem.classList.add("message-type"); messageRoleElem.classList.add("message-type");
@ -181,7 +181,7 @@ fetch("/config")
let prompt = conversation.join(""); let prompt = conversation.join("");
let settings = getSettings(); let settings = getSettings();
apiCompletion(prompt, settings).then(r => { apiCompletion(prompt, settings).then(r => {
addMessage(r, Roles.ASSISTANT); addMessage(r.trim(), Roles.ASSISTANT);
enableInput(); enableInput();
}); });
} }

View file

@ -3,5 +3,6 @@
"conversation_prefix": "BEGINNING OF CONVERSATION: ", "conversation_prefix": "BEGINNING OF CONVERSATION: ",
"user_keyword": "USER:", "user_keyword": "USER:",
"assistant_keyword": "GPT:", "assistant_keyword": "GPT:",
"separator": " ",
"stop_sequences": ["</s>"] "stop_sequences": ["</s>"]
} }

View file

@ -1,7 +1,8 @@
{ {
"name": "Vicuna", "name": "Vicuna",
"conversation_prefix": "A chat between a curious user and a helpful AI assistant. ", "conversation_prefix": "A chat between a curious user and a helpful AI assistant.\n\n",
"user_keyword": "### Human:", "user_keyword": "### Human:",
"assistant_keyword": "### Assistant:", "assistant_keyword": "### Assistant:",
"separator": "\n",
"stop_sequences": ["### Human:"] "stop_sequences": ["### Human:"]
} }