πŸ”§ LLMOps & AI Infrastructure β€” Deep Dive: Langfuse, Prompt Management, Vector DB Ops, Cost Tracking, LLM Observability

Panduan komprehensif operasional LLM di production β€” dari observability (Langfuse, LangSmith, W&B Prompts), prompt versioning & management, vector database operations (indexing strategy, reindex, pruning), cost tracking & optimization (model routing, caching, batching), LLM caching (semantic cache, KV cache), dan production deployment patterns (guardrails, rate limiting, canary deploy). Vault udah punya ai-evaluation-framework (evaluasi RAG β€” RAGAS, LLM-as-Judge), vector-database-internals-optimization (HNSW, IVF, quantization), production-model-serving-optimization (inference serving), dan ai-engineering-stack-roadmap (AI stack high-level). Catatan ini mengisi gap: operational layer β€” bagaimana menjalankan LLM di production dengan monitoring, cost control, dan prompt management.

Posisi di Vault

Nota ini terkait dengan ai-evaluation-framework (RAG evaluation, RAGAS, langfuse evaluation), vector-database-internals-optimization (HNSW/IVF index, quantization, index maintenance), production-model-serving-optimization (vLLM, TensorRT, inference optimization), ai-engineering-stack-roadmap (posisi LLMOps dalam AI stack), rag-pipeline-end-to-end-guide (LLM pipeline production), hallucination-mitigation-grounding (guardrails & grounding), dan query-transformation-rag (query rewrite, routing).


Daftar Isi


LLM Observability Stack

Kenapa Observability untuk LLM Berbeda dari App Biasa?

DimensiApp BiasaLLM App
Error500, timeout, exceptionβœ… Halusinasi ❌ tidak ada exception
Latencyms (predictable)Detik (stochastic β€” tergantung token)
CostCPU/memory (fixed)Per-token (variable β€” tergantung output length)
QualityFunctional correctnessSemantic correctness (subjective)
SecurityInjection, XSSPrompt injection, jailbreak, data exfiltration

Observability Tools

ToolOpen SourceHostedFitur KunciBest For
Langfuseβœ… Yesβœ…Tracing, prompt management, evaluation, cost trackingProduction LLM stack
LangSmithβŒβœ…Tracing, dataset, annotation, A/B testingLangChain-heavy stack
W&B PromptsβŒβœ…Prompt versioning, model comparisonML research teams
Heliconeβœ… Yesβœ…Proxy-based logging, cost analyticsSimple setup, proxy
Arize Phoenixβœ… Yesβœ…LLM tracing, embedding drift, RAG analysisEmbedding-focused
SigNozβœ… Yesβœ…APM + LLM tracingAll-in-one observability
OpenObserveβœ… Yesβœ…Log, metrics, traces β€” LLM supportSRE teams

Langfuse: Core Concepts

Application β†’ Langfuse SDK β†’ Langfuse Backend (self-host / cloud)
                  β”‚
            β”Œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”
            β”‚     β”‚     β”‚
         Trace  Span  Observation

Trace = satu request (e.g., "Jawab pertanyaan user")
  Span = satu langkah (e.g., RAG retrieval, LLM call, tool call)
    Observation = metric tambahan (token count, latency, cost)

Tracing Flow

User Query β†’ [Trace start]
  β”‚
  β”œβ”€ [Span: RAG Retrieval]
  β”‚    Observation: top_k=5, latency=45ms, source=dense+bm25
  β”‚
  β”œβ”€ [Span: LLM Call]
  β”‚    Observation: model=gpt-4, tokens=423, cost=$0.012, latency=1.2s
  β”‚    Input: system + context + query
  β”‚    Output: generated answer
  β”‚
  └─ [Span: Guardrail Check]
       Observation: passed=true, categories checked=[toxicity, PII]
       Score: 0.95

β†’ [Trace end] total_latency=1.3s, total_cost=$0.013

What to Trace (Minimum)

ComponentTrackWhy
LLM CallModel, prompt, response, token count, latency, costBilling, quality, debug
RAG RetrievalQuery, top-k, source scores, document IDsDebug retrieval quality
Tool CallTool name, args, result, latencyDebug agent loop
GuardrailCheck type, passed/failed, scoreSafety monitoring
User FeedbackThumbs up/down, rating 1-5Quality metrics

Prompt Management & Versioning

Masalah tanpa Prompt Management

  • Prompt ada di codebase β€” ganti prompt = deploy ulang (slow)
  • Tidak ada version history β€” β€œsiapa yang ngubah prompt kemarin?”
  • Tidak ada A/B testing β€” β€œapakah prompt baru lebih bagus?”
  • Prompt berantakan β€” inline string panjang di Python file

Prompt Management Tools

ToolVersioningA/B TestDeploy RollbackAPISelf-host
Langfuse Promptsβœ… Git-likeβœ…βœ…βœ… REST/SDKβœ…
LangSmith Hubβœ…βŒβŒβœ…βŒ
Portkeyβœ…βœ…βœ…βœ…βŒ
Agentaβœ…βœ…βœ…βœ…βœ…

Prompt Engineering Workflow di Production

Dev:     Tulis prompt di Langfuse UI atau code β†’ test dengan dataset
Review:  Bandingkan output old vs new prompt
Deploy:  Publish version baru β€” SDK tarik versi terbaru secara real-time
Monitor: Bandingkan skor evaluasi antara prompt version
Rollback: Rollback ke versi sebelumnya 1 klik (tanpa deploy code)

Vector Database Operations

Index Maintenance

OperationFrequencyImpactNotes
Index BuildOnce (initial)Full rebuild β€” semua dataPakai IVFFlat untuk fast build pertama
Incremental InsertContinuousMinimal β€” HNSW support dynamic insertTidak perlu rebuild
Index OptimizeWeekly / after bulk insertMedium β€” rebuild HNSW graphVacuum + optimize
Reindex (full)Monthly / schema changeHigh β€” downtimeSwap index, not rebuild in-place
Prune (delete)As neededMedium β€” tombstone segmentsRebuild after many deletes

Indexing Strategy

StrategyWrite VolumeQuery LatencyMemoryBest For
Immediate indexLowLowHighProduction, <100K docs
Batch index (interval)HighMediumMediumStreaming pipeline
Hybrid (immediate + batch)VariableLow-MediumHighProduction, any scale
Separate indexes (hot/warm)N/AHot=Low, Warm=MediumOptimizedTiered storage (SSD+HDD)

Monitoring Vector DB

MetricWhat It TellsAction If Bad
Recall@kFraction of relevant results in top-kReindex, check embedding model
Index fullness% of capacity usedScale up or prune
Avg query latencySearch speedOptimize HNSW ef_construction, ef_search
Index size on diskStorage costQuantization (SQ/PC)
Delete/update throughputChurn rateSchedule rebuild during low traffic

Cost Tracking & Optimization

LLM Cost Breakdown

Component% of TotalOptimization
LLM API calls60-80%Model routing, caching, prompt compression
Vector DB5-10%Index optimization, tiered storage
Embedding5-15%Cache embeddings, batch embed
GPU serving (self-host)10-30%vLLM, quantization, batching
Infrastructure (network, k8s)5-10%Reserved instances, spot

Cost Optimization Strategies

1. Model Routing

# Cheap model untuk simple task, expensive untuk complex
route = {
    "classification": "gpt-4o-mini",    # $0.15/1M tokens
    "summarization": "claude-3-haiku",   # $0.25/1M
    "complex_reasoning": "claude-3-opus", # $15/1M
    "code_generation": "deepseek-v4",    # $1/1M
}

2. Semantic Caching

Cache response untuk query yang semantically mirip (bukan exact match).

Query: "Apa itu Kubernetes?"
Cached: "Jelaskan K8s" β†’ similarity 0.92 > threshold 0.85 β†’ return cached response

3. Prompt Compression

  • Prefix caching β€” cache system prompt + fixed context
  • Context pruning β€” hapus dokumen RAG dengan relevance score rendah
  • LLMLingua β€” compress prompt dengan lossy compression
  • Chain of thought distillation β€” short CoT β†’ even shorter CoT

4. Batching

# ❌ Buruk: 10 API call sequential
for q in queries:
    llm.call(q)
 
# βœ… Baik: 1 batch call (disk10-30%)
response = llm.batch(queries, max_tokens=512)  # 1 call, 10 queries

5. Self-Hosting GPU

ModelGPU NeededApprox Cost/Month (on-prem)API Cost/Month @ 1M tokens/day
Llama 3 8B1x RTX 4090$200$300-500
Llama 3 70B2x A100$2,000$3,000-5,000
DeepSeek V38x H100$15,000$10,000-20,000

LLM Caching

Types of LLM Cache

Cache TypeGranularityHit RateImplementation
Exact matchFull inputLow (10-20%)Redis: key=hash(input), value=response
SemanticQuery meaningMedium (20-40%)Embed query β†’ nearest neighbor β†’ check similarity
KV CachePer token (self-attention)High (80%+)GPU memory β€” vLLM, TensorRT-LLM
Prefix CacheSystem promptHigh (50%+)Cache compute prefix across requests

KV Cache (Production LLM)

Tanpa KV cache: tiap token baru recompute semua attention β†’ O(nΒ²)
Dengan KV cache: simpan Key/Value dari token sebelumnya β†’ O(n)

Ukuran KV cache per request:
  2 (key+value) Γ— n_layers Γ— d_model Γ— seq_len Γ— precision
  Llama 70B: ~1.5GB per request pada seq_len=4096

Production Deployment

Architecture Reference

User β†’ Load Balancer β†’ Guardrails β†’ Router β†’ LLM Provider
                              β”‚
                     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”
                     β”‚                 β”‚
               Cache Hit         Cache Miss
                     β”‚                 β”‚
               Return Cache      RAG Pipeline
                                    β”‚
                              Vector DB Query
                                    β”‚
                              LLM Call + Observability
                                    β”‚
                              Response + Cost Log
                                    β”‚
                              Return to User

Guardrails

GuardrailFunctionImplementation
Input guardDeteksi prompt injection, jailbreakLLM-as-judge, regex, ML classifier
Output guardDeteksi PII, toxic content, hallucinationPII masking, toxicity classifier, factual consistency
Rate limitBatasi requests/userToken bucket, sliding window
Cost limitBudget per user/session/dayLangfuse cost tracking + alert

Canary Deploy untuk LLM

1. 90% traffic β†’ model v1 (stable)
2. 10% traffic β†’ model v2 (new)
3. Bandingkan metrics: latency, cost, user feedback score
4. Evaluasi: apakah v2 > v1?
5. Jika ya: roll out 25% β†’ 50% β†’ 100%
6. Jika tidak: rollback ke v1, debug, repeat

Tool Comparison

FungsinyaToolsBest For
LLM ObservabilityLangfuse, LangSmith, W&B PromptsProduction tracing & monitoring
Prompt ManagementLangfuse Prompts, Portkey, AgentaVersioning & deploy prompts
Vector DB OpsQdrant, Weaviate, Milvus, pgvectorIndexing, CRUD, scale
Model ServingvLLM, TGI, TensorRT-LLM, OllamaSelf-hosted inference
Cost TrackingLangfuse, Helicone, PortkeyBudget & billing
GuardrailsGuardrails AI, NVIDIA NeMo, Azure AI Content SafetySafety & compliance
EvaluationRAGAS, DeepEval, Langfuse EvalAutomated quality metrics

Koneksi ke Vault