LLM Cost Optimization
Reducing LLM API costs in production through caching and batching
LLM Cost Optimization
Reducing LLM API costs in production through caching and batching
LLM Cost Optimization Overview Reducing LLM API costs in production through caching and batching. This guide covers practical implementation for production ML systems. Why This Matters in MLOps Modern ML systems require rigorous operations practi
LLM Cost Optimization
Overview
Reducing LLM API costs in production through caching and batching. This guide covers practical implementation for production ML systems.
Why This Matters in MLOps
Modern ML systems require rigorous operations practices:
Setup
bash
Install required tools
pip install python mlflow pandas numpy scikit-learnOr with Docker
docker pull python:3.11-slim
Core Implementation
python
import os
import json
import logging
from datetime import datetime
from pathlib import Pathlogger = logging.getLogger(__name__)
class LLMCostOptimization:
"""
LLM Cost Optimization implementation.
Handles: cost management
Tool: python
"""
def __init__(self, config: dict = None):
self.config = config or self._default_config()
self._setup()
def _default_config(self) -> dict:
return {
"tool": "python",
"environment": os.getenv("ENVIRONMENT", "development"),
"log_level": "INFO",
}
def _setup(self):
"""Initialize python connection and resources."""
logging.basicConfig(level=self.config.get("log_level", "INFO"))
logger.info(f"Initialized LLM Cost Optimization with config: {self.config}")
def run(self, **kwargs) -> dict:
"""Execute cost management."""
start = datetime.utcnow()
try:
result = self._execute(**kwargs)
elapsed = (datetime.utcnow() - start).total_seconds()
logger.info(f"LLM Cost Optimization completed in {elapsed:.2f}s")
return {
"status": "success",
"result": result,
"elapsed_seconds": elapsed
}
except Exception as e:
logger.error(f"LLM Cost Optimization failed: {e}")
return {
"status": "failed",
"error": str(e)
}
def _execute(self, **kwargs) -> dict:
"""Core cost management logic. Override to customize."""
return {"completed": True, "tool": "python"}
Configuration
config = {
"tool": "python",
"tracking_uri": os.getenv("MLFLOW_TRACKING_URI", "http://localhost:5000"),
"artifact_root": "./artifacts",
}Initialize
processor = LLMCostOptimization(config)
result = processor.run()
print(json.dumps(result, indent=2))
PYTHON Integration
python
Specific python integration for cost management
import subprocessdef setup_python():
"""Configure python for cost management."""
# Initialize project
print(f"Setting up python for cost management...")
# Example configuration
config = {
"project": "my-ml-project",
"tool": "python",
"specialty": "cost management",
"version": "1.0.0"
}
# Save configuration
Path(".python").mkdir(exist_ok=True)
with open(f".python/config.json", "w") as f:
json.dump(config, f, indent=2)
print(f"python configured for cost management")
return config
config = setup_python()
Monitoring and Alerting
python
from dataclasses import dataclass
import time@dataclass
class MetricSnapshot:
timestamp: float
metric_name: str
value: float
labels: dict
class MLOpsMonitor:
"""Monitor cost management metrics."""
def __init__(self):
self.metrics: list[MetricSnapshot] = []
self.thresholds = {
"error_rate": 0.05,
"latency_p99_ms": 1000,
"data_drift_score": 0.3
}
def record(self, metric: str, value: float, labels: dict = None):
snapshot = MetricSnapshot(
timestamp=time.time(),
metric_name=metric,
value=value,
labels=labels or {}
)
self.metrics.append(snapshot)
self._check_threshold(metric, value)
def _check_threshold(self, metric: str, value: float):
threshold = self.thresholds.get(metric)
if threshold and value > threshold:
logger.warning(f"ALERT: {metric}={value:.3f} exceeds threshold {threshold}")
monitor = MLOpsMonitor()
CI/CD Integration
yaml
.github/workflows/ml-pipeline.yml
name: ML Pipelineon:
push:
paths: ['src/', 'data/']
jobs:
train-and-evaluate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run cost management
run: python -m src.llm_cost_optimization
env:
MLFLOW_TRACKING_URI: ${{ secrets.MLFLOW_URI }}
- name: Check model quality
run: python -m src.validate_model
Best Practices
Resources
相关工具