Skip to content

Commit 8070120

Browse files
authored
fix(etl): map AMD Kimi-K2.7-Code identifiers to kimik2.7-code (#619)
1 parent 6bf76b0 commit 8070120

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

packages/db/src/etl/normalizers.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,21 @@ describe('resolveModelKey', () => {
135135
expect(resolveModelKey({ infmax_model_prefix: 'dsv4pro-fp8' })).toBe('dsv4');
136136
});
137137

138+
it('resolves AMD Kimi-K2.7-Code identifiers to the canonical kimik2.7-code key', () => {
139+
// AMD AgentX sweeps emit the bare prefix `kimik2.7` (no `-code`) and the
140+
// MXFP4 model path `amd/Kimi-K2.7-Code-MXFP4`; both must fold into the
141+
// canonical `kimik2.7-code` DB bucket. Regression for GitHub Actions run
142+
// 29975243963, whose overlay rendered nothing because every row was skipped
143+
// as an unmapped model.
144+
expect(resolveModelKey({ infmax_model_prefix: 'kimik2.7' })).toBe('kimik2.7-code');
145+
expect(resolveModelKey({ infmax_model_prefix: 'kimik2.7-fp4' })).toBe('kimik2.7-code');
146+
expect(resolveModelKey({ model_prefix: 'kimik2.7' })).toBe('kimik2.7-code');
147+
expect(resolveModelKey({ model: 'amd/Kimi-K2.7-Code-MXFP4' })).toBe('kimik2.7-code');
148+
// Canonical identifiers still resolve to the same bucket.
149+
expect(resolveModelKey({ infmax_model_prefix: 'kimik2.7-code' })).toBe('kimik2.7-code');
150+
expect(resolveModelKey({ model: 'moonshotai/Kimi-K2.7-Code' })).toBe('kimik2.7-code');
151+
});
152+
138153
it('falls back to MODEL_TO_KEY when prefix not present', () => {
139154
expect(resolveModelKey({ model: 'deepseek-ai/DeepSeek-R1' })).toBe('dsr1');
140155
expect(resolveModelKey({ model: 'nvidia/Llama-3.3-70B-Instruct-FP8' })).toBe('llama70b');

packages/db/src/etl/normalizers.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ const PRECISION_SUFFIX = /-(?:fp4|fp8|mxfp4|nvfp4)(?:-.*)?$/iu;
4545
const PREFIX_ALIASES: Record<string, string> = {
4646
gptoss: 'gptoss120b',
4747
dsv4pro: 'dsv4',
48+
// AMD AgentX sweeps emit the bare prefix `kimik2.7` instead of the canonical
49+
// `kimik2.7-code` DB key; alias it so those rows resolve (and precision-suffixed
50+
// forms like `kimik2.7-fp4` fold in via PRECISION_SUFFIX stripping too).
51+
'kimik2.7': 'kimik2.7-code',
4852
};
4953

5054
function resolvePrefixToKey(prefix: string): string | null {
@@ -94,6 +98,7 @@ export const MODEL_TO_KEY: Record<string, string> = {
9498
'moonshotai/Kimi-K2.5': 'kimik2.5',
9599
'moonshotai/Kimi-K2.6': 'kimik2.6',
96100
'moonshotai/Kimi-K2.7-Code': 'kimik2.7-code',
101+
'amd/Kimi-K2.7-Code-MXFP4': 'kimik2.7-code',
97102
// MiniMax-M2.5
98103
'MiniMaxAI/MiniMax-M2.5': 'minimaxm2.5',
99104
// MiniMax-M3 (428B, distinct architecture from the M2 series)

0 commit comments

Comments
 (0)