TROISINH
Triển khai thực tếKiến trúc nâng cao

Build Custom LLM Provider: Tích hợp model riêng cho Agent

Tích hợp LLM tự host vào agent platform: PEFT/p-tuning, kiến trúc Perception-Memory-Reasoning-Execution và hybrid routing đảm bảo data sovereignty.

Khi agent platform của bạn bước từ POC lên production, việc phụ thuộc 100% vào OpenAI API hay Claude API trở thành điểm nghẽn chiến lược: chi phí token không kiểm soát, dữ liệu nhạy cảm phải ra nước ngoài, và model "bác sĩ đa khoa" thường ảo tưởng trên domain chuyên sâu. Bài này đào sâu kiến trúc tích hợp LLM tự host — từ kỹ thuật PEFT đến provider layer với hybrid routing — để bạn sở hữu hoàn toàn inference pipeline.

Vấn đề

Public LLMs như GPT-4 hay Claude là "bác sĩ đa khoa" — họ biết nhiều thứ nhưng không chuyên sâu vào domain hẹp của bạn, và quan trọng hơn, họ làm việc ở nước ngoài.

Data sovereignty và compliance: HIPAA, GDPR, và cả luật An ninh mạng Việt Nam 2024 đều yêu cầu dữ liệu cá nhân, y tế, tài chính phải ở lại trong biên giới số. Gửi hồ sơ bệnh án lên API bên ngoài là vi phạm pháp lý nghiêm trọng, không phải chỉ là rủi ro kỹ thuật.

Hallucination trên domain hẹp: Model tổng quát không biết quy trình nghiệp vụ đặc thù của ngân hàng Việt Nam hay cách xử lý "đề thi chuyên Anh" — chúng tự bịa ra luật lệ khi gặp khái niệm chưa từng thấy trong pre-training data.

Vendor lock-in và chi phí biến động: Giá token thay đổi, rate limit cứng nhắc. Khi scale lên 1000+ agents, bill hàng tháng trở thành cơn ác mộng tài chính. Bạn không kiểm soát được latency hay availability.

Integration gap: Fine-tune model xong vẫn chưa đủ — bạn cần kết nối vào tool ecosystem (MCP), memory layer, và evaluation framework của agent platform. Cách tiếp cận "fine-tune rồi host" đơn giản thất bại vì nó xem LLM như static endpoint, trong khi agent cần dynamic reasoning system.

Ý tưởng cốt lõi

Thay vì xây lại bộ não (pre-training tốn hơn 10 triệu USD), chúng ta xây thấu kính chuyên biệthệ thống nhận thức bao quanh bộ não có sẵn.

PEFT: Đào tạo chỉ 0.1% tham số

Parameter-Efficient Fine-Tuning (PEFT) như LoRA hay QLoRA đóng băng 99.9% tham số của model gốc (Llama 3, Qwen 2.5), chỉ huấn luyện các "adapter" hay "soft prompt" nhỏ (steering vectors). Cơ chế này kích hoạt các mạch chuyên môn đã ngủ yên trong model gốc — giống như điều chỉnh tiêu cự kính hiển vi thay vì đúc lại cả ống kính. Prompt tuning đạt 90%+ độ chính xác so với full fine-tuning nhưng chỉ cần dưới 0.1% tài nguyên tính toán.

P-Tuning: Embeddings ảo dẫn lối

P-tuning dùng LSTM encoder nhỏ để sinh ra virtual token embeddings — các vector đặc biệt đóng vai trò "từ khóa tìm kiếm nội bộ", hướng dẫn model truy xuất kiến thức đúng domain mà không thay đổi trọng số gốc. NVIDIA NeMo triển khai pattern này cho enterprise, cho phép specialization mà không tạo bản sao model riêng cho từng task.

Agent Architecture: Từ text generator sang cognitive system

Custom provider không chỉ là endpoint \/generate``. Để agent tự chủ, bạn cần wrapper gồm 4 module:

  • Perception: Multimodal encoders (OCR, speech-to-text) đưa dữ liệu thô vào không gian embedding mà LLM hiểu được
  • Memory: RAG/vector DB cho factual lookup + long-term storage cho session history
  • Reasoning: Chain-of-Thought hay Tree-of-Thought prompting để tránh suy nghĩ tuyến tính
  • Execution: Tool use APIs (MCP, function calling) cho phép agent tác động lên thế giới thực

Điều này biến model từ "text generator" thành "autonomous cognitive system" với đầy đủ giác quan và tay chân.

Provider Layer: Hybrid routing và Gateway

Architecture tách biệt này cho phép hybrid routing: query thường đi qua GPT-4 (tiết kiệm dev cost), query nhạy cảm (hồ sơ bệnh án) đi vào Llama-3-70B self-hosted trong VPC. API gateway xử lý auth, rate limiting, và format normalization giữa các model khác nhau.

Kiến trúc triển khai trong Go (cho GoClaw/OpenClaw ecosystem): Với Go, goroutine pool quản lý hàng nghìn concurrent agent sessions hiệu quả hơn Node.js event loop khi phải chờ inference chậm từ local GPU. Mỗi agent request spawn một goroutine nhẹ (2KB stack), không block thread như Python asyncio hay Node callback hell.

// Conceptual provider router trong Go
type ProviderRouter struct {
    publicClient    *openai.Client  // GPT-4 cho query thường
    privateClient   *llama.Client   // Llama self-hosted
    policy          RoutingPolicy   // HIPAA check, etc.
}

func (r *ProviderRouter) Route(ctx context.Context, query Query) (Response, error) {
    if r.policy.IsSensitive(query) {
        return r.privateClient.Generate(ctx, query) // Không ra khỏi VPC
    }
    return r.publicClient.Generate(ctx, query)
}

Tại sao nó hoạt động

Logic thiết kế dựa trên amortizationsparse activation:

Amortization của ngữ cảnh: Thay vì trả "thuế thiết lập ngữ cảnh" (context establishment tax) cho mỗi lời gọi API — gửi lịch sử hội thoại dài để model "nhớ" — bạn trả một lần khi load PEFT adapter, rồi inference nhanh với ngữ cảnh ngắn. Điều này giảm chi phí token dài hạn cho agent chạy 24/7.

Sparse activation: LLM foundation là mạng sparse — 99% tham số không dùng cho task cụ thể. PEFT không dạy model "điều mới" mà chỉ kích hoạt các mạch chuyên môn đã ngủ yên (pattern completion) và nén các mạch không liên quan. Giống như điều chỉnh microscope focus: slide kiến thức đã có, bạn chỉ đưa đúng phần vào tiêu điểm mà không cần đúc lại thủy tinh.

Tách biệt "năng lực" và "quyền hành": Provider layer tách riêng việc "model có khả năng gì" (capability) khỏi "được phép truy cập dữ liệu nào" (permission). Điều này cho phép cùng một model weights chạy trong môi trường cách ly khác nhau — zero-trust architecture cho AI.

Trade-off Goroutine vs Event Loop: Khi scaling 1000+ agents, Node.js event loop bị block bởi CPU-intensive tokenization hay waiting cho GPU inference. Go goroutine được scheduler quản lý riêng, cho phép multiplex I/O (gọi DB, API) với CPU (pre/post processing) trên cùng thread pool, giảm memory footprint đáng kể so với Python process-per-agent.

Ý nghĩa thực tế

Tiêu chíPublic API (GPT-4)Custom Provider (PEFT + Self-host)
Data sovereigntyDữ liệu ra nước ngoàiỞ lại VPC, on-premise
Domain expertiseGeneralist, hallucinateSpecialist (LoRA adapter riêng)
Chi phí scale$0.03/1K tokens (biến động)CapEx GPU rồi gần $0
LatencyNetwork roundtrip 200-800msLocal inference 50-200ms
MaintenanceZero devopsCần team GPU/K8s

Ai đang dùng?

  • Healthcare: Bệnh viện dùng Llama-3-70B + PEFT cho y văn tiếng Việt, đảm bảo HIPAA compliance, data không ra khỏi server nội bộ.
  • Fintech: Ngân hàng tự host model để xử lý logic giao dịch độc quyền, tránh prompt injection qua API bên ngoài.
  • Research: Behavioral science dùng CLPC system để thu thập dữ liệu nhạy cảm trong sandbox mà không leak thông tin participants.

Hạn chế — những gì không giải quyết được:

  • PEFT không inject kiến thức mới: Nếu model gốc không biết "luật đất đai Việt Nam 2024", LoRA không thể bổ sung fact mới, chỉ cải thiện cách trình bày kiến thức đã có. Bạn vẫn cần RAG cho factual updates.
  • Chi phí khởi tạo: Full pre-training từ scratch vẫn cần hơn 10 triệu USD và cluster GPU lớn. PEFT là fine-tuning, không phải training from scratch.
  • DevOps burden: Self-hosting đòi hỏi expertise về GPU cluster management, continuous safety monitoring (giám sát prompt injection nội bộ), và optimization (quantization, vLLM).
  • Cold start: Lần đầu load 70B model vào GPU VRAM có thể mất 30-60 giây — cần warm pool hoặc persistent deployment, không phù hợp serverless thuần túy.

Đào sâu hơn

Tài liệu chính thức:

Cùng cụm Advanced Architecture:

GoClaw vs OpenClaw Internals

Kiến trúc runtime Go vs Node: tại sao GoClaw chọn goroutine cho agent concurrency

Build Custom Channel

Tương tự như custom provider nhưng cho kênh giao tiếp (Telegram, Zalo, WebSocket)

Agent Evaluation Framework

Đo lường hiệu quả custom provider trên agent benchmarks (trajectory analysis)

Scaling to 1000+ Agents

Triển khai fleet agent với custom provider: Kubernetes, GPU scheduling, etcd bottlenecks

Đọc tiếp:

Production Deployment

Từ development sang staging rồi production: Docker, K8s, và CI/CD cho agent platform

Security & Multi-tenant

Row-Level Security và data isolation khi nhiều tenant dùng chung custom model

Mở rộng:

On this page