feat: Add support for minP, repeatLastN, and repeatPenalty model settings
This commit is contained in:
parent
ef40b9a242
commit
aa49f03f63
@ -60,11 +60,11 @@
|
||||
"keepAlive": {
|
||||
"label": "Keep Alive",
|
||||
"help": "controls how long the model will stay loaded into memory following the request (default: 5m)",
|
||||
"placeholder": "Enter Keep Alive duration (e.g. 5m, 10m, 1h)"
|
||||
"placeholder": "e.g. 5m, 10m, 1h"
|
||||
},
|
||||
"temperature": {
|
||||
"label": "Temperature",
|
||||
"placeholder": "Enter Temperature value (e.g. 0.7, 1.0)"
|
||||
"placeholder": "e.g. 0.7, 1.0"
|
||||
},
|
||||
"numCtx": {
|
||||
"label": "Number of Contexts",
|
||||
@ -72,24 +72,36 @@
|
||||
},
|
||||
"numPredict": {
|
||||
"label": "Max Tokens (num_predict)",
|
||||
"placeholder": "Enter Max Tokens value (e.g. 2048, 4096)"
|
||||
"placeholder": "e.g. 2048, 4096"
|
||||
},
|
||||
"seed": {
|
||||
"label": "Seed",
|
||||
"placeholder": "Enter Seed value (e.g. 1234)",
|
||||
"placeholder": "e.g. 1234",
|
||||
"help": "Reproducibility of the model output"
|
||||
},
|
||||
"topK": {
|
||||
"label": "Top K",
|
||||
"placeholder": "Enter Top K value (e.g. 40, 100)"
|
||||
"placeholder": "e.g. 40, 100"
|
||||
},
|
||||
"topP": {
|
||||
"label": "Top P",
|
||||
"placeholder": "Enter Top P value (e.g. 0.9, 0.95)"
|
||||
"placeholder": "e.g. 0.9, 0.95"
|
||||
},
|
||||
"useMMap": {
|
||||
"label": "useMmap"
|
||||
},
|
||||
"minP": {
|
||||
"label": "Min P",
|
||||
"placeholder": "e.g. 0.05"
|
||||
},
|
||||
"repeatPenalty": {
|
||||
"label": "Repeat Penalty",
|
||||
"placeholder": "e.g. 1.1, 1.2"
|
||||
},
|
||||
"repeatLastN": {
|
||||
"label": "Repeat Last N",
|
||||
"placeholder": "e.g. 64, 128"
|
||||
},
|
||||
"numGpu": {
|
||||
"label": "Num GPU",
|
||||
"placeholder": "Enter number of layers to send to GPU(s)"
|
||||
@ -125,4 +137,4 @@
|
||||
"pin": "Pin",
|
||||
"unpin": "Unpin",
|
||||
"generationInfo": "Generation Info"
|
||||
}
|
||||
}
|
@ -76,7 +76,10 @@ export const CurrentChatModelSettings = ({
|
||||
numGpu: cUserSettings.numGpu ?? data.numGpu,
|
||||
numPredict: cUserSettings.numPredict ?? data.numPredict,
|
||||
systemPrompt: cUserSettings.systemPrompt ?? tempSystemPrompt,
|
||||
useMMap: cUserSettings.useMMap ?? data.useMMap
|
||||
useMMap: cUserSettings.useMMap ?? data.useMMap,
|
||||
minP: cUserSettings.minP ?? data.minP,
|
||||
repeatLastN: cUserSettings.repeatLastN ?? data.repeatLastN,
|
||||
repeatPenalty: cUserSettings.repeatPenalty ?? data.repeatPenalty
|
||||
})
|
||||
return data
|
||||
},
|
||||
@ -199,6 +202,34 @@ export const CurrentChatModelSettings = ({
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
name="minP"
|
||||
label={t("modelSettings.form.minP.label")}>
|
||||
<InputNumber
|
||||
style={{ width: "100%" }}
|
||||
placeholder={t("modelSettings.form.minP.placeholder")}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="repeatPenalty"
|
||||
label={t("modelSettings.form.repeatPenalty.label")}>
|
||||
<InputNumber
|
||||
style={{ width: "100%" }}
|
||||
placeholder={t(
|
||||
"modelSettings.form.repeatPenalty.placeholder"
|
||||
)}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="repeatLastN"
|
||||
label={t("modelSettings.form.repeatLastN.label")}>
|
||||
<InputNumber
|
||||
style={{ width: "100%" }}
|
||||
placeholder={t(
|
||||
"modelSettings.form.repeatLastN.placeholder"
|
||||
)}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="useMMap"
|
||||
label={t("modelSettings.form.useMMap.label")}>
|
||||
@ -209,7 +240,10 @@ export const CurrentChatModelSettings = ({
|
||||
}
|
||||
]}
|
||||
/>
|
||||
<SaveButton className="w-full text-center inline-flex items-center justify-center" btnType="submit" />
|
||||
<SaveButton
|
||||
className="w-full text-center inline-flex items-center justify-center"
|
||||
btnType="submit"
|
||||
/>
|
||||
</Form>
|
||||
) : (
|
||||
<Skeleton active />
|
||||
|
@ -122,6 +122,34 @@ export const ModelSettings = () => {
|
||||
placeholder={t("modelSettings.form.numGpu.placeholder")}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="minP"
|
||||
label={t("modelSettings.form.minP.label")}>
|
||||
<InputNumber
|
||||
style={{ width: "100%" }}
|
||||
placeholder={t("modelSettings.form.minP.placeholder")}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="repeatPenalty"
|
||||
label={t("modelSettings.form.repeatPenalty.label")}>
|
||||
<InputNumber
|
||||
style={{ width: "100%" }}
|
||||
placeholder={t(
|
||||
"modelSettings.form.repeatPenalty.placeholder"
|
||||
)}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="repeatLastN"
|
||||
label={t("modelSettings.form.repeatLastN.label")}>
|
||||
<InputNumber
|
||||
style={{ width: "100%" }}
|
||||
placeholder={t(
|
||||
"modelSettings.form.repeatLastN.placeholder"
|
||||
)}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="useMMap"
|
||||
label={t("modelSettings.form.useMMap.label")}>
|
||||
|
@ -143,7 +143,14 @@ export const useMessage = () => {
|
||||
currentChatModelSettings?.numPredict ??
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
|
||||
minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
|
||||
let newMessage: Message[] = []
|
||||
@ -278,7 +285,15 @@ export const useMessage = () => {
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ??
|
||||
userDefaultModelSettings?.useMMap
|
||||
userDefaultModelSettings?.useMMap,
|
||||
minP:
|
||||
currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
const response = await questionOllama.invoke(promptForQuestion)
|
||||
query = response.content.toString()
|
||||
@ -492,7 +507,14 @@ export const useMessage = () => {
|
||||
currentChatModelSettings?.numPredict ??
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
|
||||
minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
|
||||
let newMessage: Message[] = []
|
||||
@ -729,7 +751,14 @@ export const useMessage = () => {
|
||||
currentChatModelSettings?.numPredict ??
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
|
||||
minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
|
||||
let newMessage: Message[] = []
|
||||
@ -780,7 +809,7 @@ export const useMessage = () => {
|
||||
type: "text"
|
||||
}
|
||||
],
|
||||
model: selectedModel,
|
||||
model: selectedModel,
|
||||
useOCR
|
||||
})
|
||||
if (image.length > 0) {
|
||||
@ -961,7 +990,14 @@ export const useMessage = () => {
|
||||
currentChatModelSettings?.numPredict ??
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
|
||||
minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
|
||||
let newMessage: Message[] = []
|
||||
@ -1043,7 +1079,15 @@ export const useMessage = () => {
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ??
|
||||
userDefaultModelSettings?.useMMap
|
||||
userDefaultModelSettings?.useMMap,
|
||||
minP:
|
||||
currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
const response = await questionOllama.invoke(promptForQuestion)
|
||||
query = response.content.toString()
|
||||
@ -1235,7 +1279,14 @@ export const useMessage = () => {
|
||||
currentChatModelSettings?.numPredict ??
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
|
||||
minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
|
||||
let newMessage: Message[] = []
|
||||
|
@ -134,7 +134,14 @@ export const useMessageOption = () => {
|
||||
currentChatModelSettings?.numPredict ??
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
|
||||
minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
|
||||
let newMessage: Message[] = []
|
||||
@ -216,7 +223,15 @@ export const useMessageOption = () => {
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ??
|
||||
userDefaultModelSettings?.useMMap
|
||||
userDefaultModelSettings?.useMMap,
|
||||
minP:
|
||||
currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
const response = await questionOllama.invoke(promptForQuestion)
|
||||
query = response.content.toString()
|
||||
@ -442,7 +457,14 @@ export const useMessageOption = () => {
|
||||
currentChatModelSettings?.numPredict ??
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
|
||||
minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
|
||||
let newMessage: Message[] = []
|
||||
@ -690,7 +712,14 @@ export const useMessageOption = () => {
|
||||
currentChatModelSettings?.numPredict ??
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap
|
||||
currentChatModelSettings?.useMMap ?? userDefaultModelSettings?.useMMap,
|
||||
minP: currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
|
||||
let newMessage: Message[] = []
|
||||
@ -788,7 +817,15 @@ export const useMessageOption = () => {
|
||||
userDefaultModelSettings?.numPredict,
|
||||
useMMap:
|
||||
currentChatModelSettings?.useMMap ??
|
||||
userDefaultModelSettings?.useMMap
|
||||
userDefaultModelSettings?.useMMap,
|
||||
minP:
|
||||
currentChatModelSettings?.minP ?? userDefaultModelSettings?.minP,
|
||||
repeatLastN:
|
||||
currentChatModelSettings?.repeatLastN ??
|
||||
userDefaultModelSettings?.repeatLastN,
|
||||
repeatPenalty:
|
||||
currentChatModelSettings?.repeatPenalty ??
|
||||
userDefaultModelSettings?.repeatPenalty
|
||||
})
|
||||
const response = await questionOllama.invoke(promptForQuestion)
|
||||
query = response.content.toString()
|
||||
|
@ -95,6 +95,8 @@ export class ChatOllama
|
||||
|
||||
topP?: number;
|
||||
|
||||
minP?: number;
|
||||
|
||||
typicalP?: number;
|
||||
|
||||
useMLock?: boolean;
|
||||
@ -142,6 +144,7 @@ export class ChatOllama
|
||||
this.tfsZ = fields.tfsZ;
|
||||
this.topK = fields.topK;
|
||||
this.topP = fields.topP;
|
||||
this.minP = fields.minP;
|
||||
this.typicalP = fields.typicalP;
|
||||
this.useMLock = fields.useMLock;
|
||||
this.useMMap = fields.useMMap;
|
||||
@ -205,6 +208,7 @@ export class ChatOllama
|
||||
tfs_z: this.tfsZ,
|
||||
top_k: this.topK,
|
||||
top_p: this.topP,
|
||||
min_p: this.minP,
|
||||
typical_p: this.typicalP,
|
||||
use_mlock: this.useMLock,
|
||||
use_mmap: this.useMMap,
|
||||
|
@ -17,7 +17,10 @@ export const pageAssistModel = async ({
|
||||
seed,
|
||||
numGpu,
|
||||
numPredict,
|
||||
useMMap
|
||||
useMMap,
|
||||
minP,
|
||||
repeatLastN,
|
||||
repeatPenalty
|
||||
}: {
|
||||
model: string
|
||||
baseUrl: string
|
||||
@ -30,6 +33,9 @@ export const pageAssistModel = async ({
|
||||
numGpu?: number
|
||||
numPredict?: number
|
||||
useMMap?: boolean
|
||||
minP?: number
|
||||
repeatPenalty?: number
|
||||
repeatLastN?: number
|
||||
}) => {
|
||||
if (model === "chrome::gemini-nano::page-assist") {
|
||||
return new ChatChromeAI({
|
||||
@ -86,6 +92,9 @@ export const pageAssistModel = async ({
|
||||
model,
|
||||
numGpu,
|
||||
numPredict,
|
||||
useMMap
|
||||
useMMap,
|
||||
minP: minP,
|
||||
repeatPenalty: repeatPenalty,
|
||||
repeatLastN: repeatLastN,
|
||||
})
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ export interface OllamaInput {
|
||||
tfsZ?: number
|
||||
topK?: number
|
||||
topP?: number
|
||||
minP?: number
|
||||
typicalP?: number
|
||||
useMLock?: boolean
|
||||
useMMap?: boolean
|
||||
|
@ -32,6 +32,7 @@ type ModelSettings = {
|
||||
useMLock?: boolean
|
||||
useMMap?: boolean
|
||||
vocabOnly?: boolean
|
||||
minP?: number
|
||||
}
|
||||
|
||||
const keys = [
|
||||
@ -62,7 +63,8 @@ const keys = [
|
||||
"typicalP",
|
||||
"useMLock",
|
||||
"useMMap",
|
||||
"vocabOnly"
|
||||
"vocabOnly",
|
||||
"minP",
|
||||
]
|
||||
|
||||
export const getAllModelSettings = async () => {
|
||||
|
@ -30,6 +30,7 @@ type CurrentChatModelSettings = {
|
||||
useMMap?: boolean
|
||||
vocabOnly?: boolean
|
||||
seed?: number
|
||||
minP?: number
|
||||
|
||||
setF16KV?: (f16KV: boolean) => void
|
||||
setFrequencyPenalty?: (frequencyPenalty: number) => void
|
||||
@ -65,6 +66,8 @@ type CurrentChatModelSettings = {
|
||||
reset: () => void
|
||||
systemPrompt?: string
|
||||
setSystemPrompt: (systemPrompt: string) => void
|
||||
|
||||
setMinP: (minP: number) => void
|
||||
}
|
||||
|
||||
export const useStoreChatModelSettings = create<CurrentChatModelSettings>(
|
||||
@ -103,6 +106,7 @@ export const useStoreChatModelSettings = create<CurrentChatModelSettings>(
|
||||
seetSeed: (seed: number) => set({ seed }),
|
||||
setX: (key: string, value: any) => set({ [key]: value }),
|
||||
systemPrompt: undefined,
|
||||
setMinP: (minP: number) => set({ minP }),
|
||||
setSystemPrompt: (systemPrompt: string) => set({ systemPrompt }),
|
||||
reset: () =>
|
||||
set({
|
||||
@ -135,7 +139,8 @@ export const useStoreChatModelSettings = create<CurrentChatModelSettings>(
|
||||
useMMap: undefined,
|
||||
vocabOnly: undefined,
|
||||
seed: undefined,
|
||||
systemPrompt: undefined
|
||||
systemPrompt: undefined,
|
||||
minP: undefined,
|
||||
})
|
||||
})
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user