chore: init max tokens for mindie models
This commit is contained in:
@@ -96,7 +96,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
color: var(--color-logs-text);
|
color: var(--color-logs-text);
|
||||||
font-size: var(--font-size-base);
|
font-size: var(--font-size-small);
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
background-color: var(--color-logs-bg);
|
background-color: var(--color-logs-bg);
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ export const LLM_METAKEYS: Record<string, any> = {
|
|||||||
n_slot: 'n_slot',
|
n_slot: 'n_slot',
|
||||||
max_model_len: 'max_model_len',
|
max_model_len: 'max_model_len',
|
||||||
frequency_penalty: 'frequency_penalty',
|
frequency_penalty: 'frequency_penalty',
|
||||||
presence_penalty: 'presence_penalty'
|
presence_penalty: 'presence_penalty',
|
||||||
|
max_total_tokens: 'max_total_tokens'
|
||||||
};
|
};
|
||||||
|
|
||||||
export const precisionTwoKeys = [
|
export const precisionTwoKeys = [
|
||||||
|
|||||||
@@ -75,6 +75,26 @@ export const useInitLLmMeta = (
|
|||||||
// use for multiple chat
|
// use for multiple chat
|
||||||
return model;
|
return model;
|
||||||
}, [model, modelList, isChat]);
|
}, [model, modelList, isChat]);
|
||||||
|
|
||||||
|
const getMaxTokens = (meta: any) => {
|
||||||
|
const { max_model_len, n_ctx, n_slot, max_total_tokens } = meta || {};
|
||||||
|
|
||||||
|
let max_tokens: number = 0;
|
||||||
|
|
||||||
|
if (n_ctx && n_slot) {
|
||||||
|
max_tokens = _.divide(n_ctx, n_slot);
|
||||||
|
} else if (max_model_len) {
|
||||||
|
max_tokens = max_model_len;
|
||||||
|
} else if (max_total_tokens) {
|
||||||
|
max_tokens = max_total_tokens;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
max_tokens: max_tokens || 16 * 1024,
|
||||||
|
defaultFormValue: max_tokens ? _.divide(max_tokens, 2) : 1024
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
const extractLLMMeta = (meta: any) => {
|
const extractLLMMeta = (meta: any) => {
|
||||||
const towKeys = new Set(precisionTwoKeys);
|
const towKeys = new Set(precisionTwoKeys);
|
||||||
const modelMeta = meta || {};
|
const modelMeta = meta || {};
|
||||||
@@ -87,23 +107,22 @@ export const useInitLLmMeta = (
|
|||||||
return acc;
|
return acc;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
let defaultMaxTokens = 1024;
|
const tokensRes = getMaxTokens(obj);
|
||||||
|
|
||||||
if (obj.n_ctx && obj.n_slot) {
|
|
||||||
defaultMaxTokens = _.divide(obj.n_ctx / 2, obj.n_slot);
|
|
||||||
} else if (obj.max_model_len) {
|
|
||||||
defaultMaxTokens = obj.max_model_len / 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
form: _.merge({}, defaultValues, {
|
form: _.merge({}, defaultValues, {
|
||||||
..._.omit(obj, ['n_ctx', 'n_slot', 'max_model_len']),
|
..._.omit(obj, [
|
||||||
|
'n_ctx',
|
||||||
|
'n_slot',
|
||||||
|
'max_model_len',
|
||||||
|
'max_total_tokens'
|
||||||
|
]),
|
||||||
seed: obj.seed === -1 ? null : obj.seed,
|
seed: obj.seed === -1 ? null : obj.seed,
|
||||||
max_tokens: defaultMaxTokens
|
max_tokens: tokensRes.defaultFormValue
|
||||||
}),
|
}),
|
||||||
meta: {
|
meta: {
|
||||||
...obj,
|
...obj,
|
||||||
max_tokens: obj.max_model_len || _.divide(obj.n_ctx, obj.n_slot)
|
max_tokens: tokensRes.max_tokens
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -132,7 +151,7 @@ export const useInitLLmMeta = (
|
|||||||
...item,
|
...item,
|
||||||
attrs:
|
attrs:
|
||||||
item.name === 'max_tokens'
|
item.name === 'max_tokens'
|
||||||
? { ...item.attrs, max: meta.max_tokens || 16 * 1024 }
|
? { ...item.attrs, max: meta.max_tokens }
|
||||||
: {
|
: {
|
||||||
...item.attrs
|
...item.attrs
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user