From d3797e4d6dd8ec91967663936bec929da0faf1e5 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@71dcc7fd-b1f2-4e5d-bb8e-274146e81173> Date: Mon, 16 Dec 2024 23:30:01 +0000 Subject: [PATCH] Fixes; git-svn-id: svn://home0/lm-lib@3605 71dcc7fd-b1f2-4e5d-bb8e-274146e81173 --- .../prompt/AlpacaShortPromptStrategy.java | 43 +++++++++++++++++++ .../client/prompt/MixtralPromptStrategy.java | 27 ++++++------ .../textcompletion/TextCompletionClient.java | 5 +++ 3 files changed, 62 insertions(+), 13 deletions(-) create mode 100644 src/main/java/de/extio/lmlib/client/prompt/AlpacaShortPromptStrategy.java diff --git a/src/main/java/de/extio/lmlib/client/prompt/AlpacaShortPromptStrategy.java b/src/main/java/de/extio/lmlib/client/prompt/AlpacaShortPromptStrategy.java new file mode 100644 index 0000000..c465037 --- /dev/null +++ b/src/main/java/de/extio/lmlib/client/prompt/AlpacaShortPromptStrategy.java @@ -0,0 +1,43 @@ +package de.extio.lmlib.client.prompt; + +public class AlpacaShortPromptStrategy implements PromptStrategy { + + @Override + public StringBuilder start(final String instruction, final String question, final String text) { + final StringBuilder prompt = new StringBuilder(); + prompt.append("### Instruction:\n"); + prompt.append(instruction); + prompt.append("\n\n### Input:\n"); + prompt.append(question); + if (!question.isEmpty() && !text.isEmpty()) { + prompt.append("\n"); + } + prompt.append(text); + prompt.append("\n\n### Response:\n"); + return prompt; + } + + @Override + public void continue_(final StringBuilder prompt, final String assistant) { + this.next(prompt, assistant, "Continue"); + } + + @Override + public void next(final StringBuilder prompt, final String assistant, final String user) { + prompt.append(assistant); + prompt.append("\n\n### Input:\n"); + prompt.append(user); + prompt.append("\n\n### Response:\n"); + } + + @Override + public String removeEOT(final String prompt) { + return prompt.strip().replace("", ""); + } + + @Override + public String getPromptName() { + return "alpaca"; + } + +} diff --git a/src/main/java/de/extio/lmlib/client/prompt/MixtralPromptStrategy.java b/src/main/java/de/extio/lmlib/client/prompt/MixtralPromptStrategy.java index cff09f9..bd1ff70 100755 --- a/src/main/java/de/extio/lmlib/client/prompt/MixtralPromptStrategy.java +++ b/src/main/java/de/extio/lmlib/client/prompt/MixtralPromptStrategy.java @@ -6,22 +6,18 @@ import org.springframework.stereotype.Component; public class MixtralPromptStrategy implements PromptStrategy { @Override - public StringBuilder start(final String system, final String question, final String text) { + public StringBuilder start(final String instruction, final String question, final String text) { final StringBuilder prompt = new StringBuilder(); prompt.append("[INST] "); - if (!system.isEmpty()) { - prompt.append(system); - if (!question.isEmpty() || !text.isEmpty()) { - prompt.append("\n"); - } - } - if (!question.isEmpty()) { - prompt.append(question); - if (!text.isEmpty()) { - prompt.append("\n"); - } + prompt.append(instruction); + if (!instruction.isEmpty() && !question.isEmpty()) { + prompt.append("\n"); } prompt.append(question); + if ((!instruction.isEmpty() || !question.isEmpty()) && !text.isEmpty()) { + prompt.append("\n"); + } + prompt.append(text); prompt.append(" [/INST]"); return prompt; } @@ -40,9 +36,14 @@ public class MixtralPromptStrategy implements PromptStrategy { prompt.append(" [/INST]"); } + @Override + public String removeEOT(final String prompt) { + return prompt.strip().replace("", ""); + } + @Override public String getPromptName() { return "mixtral"; } -} +} \ No newline at end of file diff --git a/src/main/java/de/extio/lmlib/client/textcompletion/TextCompletionClient.java b/src/main/java/de/extio/lmlib/client/textcompletion/TextCompletionClient.java index d431650..1d1bbcc 100755 --- a/src/main/java/de/extio/lmlib/client/textcompletion/TextCompletionClient.java +++ b/src/main/java/de/extio/lmlib/client/textcompletion/TextCompletionClient.java @@ -1,5 +1,6 @@ package de.extio.lmlib.client.textcompletion; +import java.text.DecimalFormat; import java.time.Duration; import java.time.LocalDateTime; import java.util.ArrayDeque; @@ -295,6 +296,10 @@ public class TextCompletionClient implements Client, DisposableBean { builder.append(this.inTokens); builder.append(", outTokens="); builder.append(this.outTokens); + builder.append(", averageTps="); + builder.append(new DecimalFormat("#.##").format(((double) (this.outTokens + this.inTokens) / (double) this.requests) / ((double) this.duration.toMillis() / 1000.0 / (double) this.requests))); + builder.append(", averageOutTps="); + builder.append(new DecimalFormat("#.##").format((double) this.outTokens / ((double) this.duration.toMillis() / 1000.0))); builder.append("]"); return builder.toString(); }