Problem
mlx_lm.generate() supports max_kv_size parameter, but mlx_lm.server doesn't. This prevents users from controlling KV cache size for memory optimization and performance tuning.
Proposed Solution
Add max-kv-size support in one or more ways:
Option 1: Startup Parameter
bashpython -m mlx_lm.server --model --max-kv-size 4096
Option 2: API Request Parameter
pythonresponse = client.chat.completions.create(
model="local-model",
messages=[...],
extra_body={"max_kv_size": 4096}
)
Option 3: Both (Recommended)
Startup parameter sets default
API requests can override per-request
Use Cases
Memory optimization: Set smaller cache on limited RAM systems
Long context: Increase cache for document processing
Mixed workloads: Different cache sizes for different request types
Benefits
Better memory management
Performance tuning flexibility
Feature parity with mlx_lm.generate()
Aligns with other frameworks (vLLM, TGI, mlx-openai-server)
Related
Issue #1170: Context size configuration
Third-party mlx-openai-server already implements --context-length
Problem
mlx_lm.generate() supports max_kv_size parameter, but mlx_lm.server doesn't. This prevents users from controlling KV cache size for memory optimization and performance tuning.
Proposed Solution
Add max-kv-size support in one or more ways:
Option 1: Startup Parameter
bashpython -m mlx_lm.server --model --max-kv-size 4096
Option 2: API Request Parameter
pythonresponse = client.chat.completions.create(
model="local-model",
messages=[...],
extra_body={"max_kv_size": 4096}
)
Option 3: Both (Recommended)
Startup parameter sets default
API requests can override per-request
Use Cases
Memory optimization: Set smaller cache on limited RAM systems
Long context: Increase cache for document processing
Mixed workloads: Different cache sizes for different request types
Benefits
Better memory management
Performance tuning flexibility
Feature parity with mlx_lm.generate()
Aligns with other frameworks (vLLM, TGI, mlx-openai-server)
Related
Issue #1170: Context size configuration
Third-party mlx-openai-server already implements --context-length