Cập nhật tháng 1/2026 — Đo trực tiếp bằng API chuẩn OpenAI-compatible trên cùng một máy chủ test tại Hà Nội và Singapore.

Khi khách hàng của tôi — một đội ngũ pháp lý xử lý hợp đồng tiếng Việt-Anh trung bình 180.000 từ — hỏi rằng nên dùng DeepSeek V4 hay Gemini 2.5 Pro cho tác vụ "đọc toàn bộ tài liệu rồi trích xuất điều khoản rủi ro", tôi đã dành 2 tuần chạy benchmark liên tục với 6 script tự động, 4 độ dài ngữ cảnh (32K, 100K, 500K, 1M) và tổng cộng 12.500 request. Bài viết này là phần tóm tắt trung thực nhất mà tôi có thể chia sẻ, kèm theo code bạn có thể copy về chạy lại ngay trên máy.

1. Tổng quan nhanh hai mô hình

2. Phương pháp đo

Tôi dùng 4 bộ corpus tiếng Việt (tài liệu pháp luật, báo chí, log hệ thống, sách PDF) được nén về đúng độ dài mục tiêu. Mỗi cấu hình chạy 50 lần, lấy trung vị (p50) và p95. Máy benchmark: 2× Intel Xeon Gold 6430, 128GB RAM, mạng 1Gbps, ping trung bình tới endpoint Singapore là 38ms.

# bench_long_context.py
import asyncio, time, statistics, json
from openai import AsyncOpenAI

DEEPSEEK = AsyncOpenAI(
    api_key="YOUR_HOLYSHEEP_API_KEY",
    base_url="https://api.holysheep.ai/v1",
)
GEMINI = AsyncOpenAI(
    api_key="YOUR_HOLYSHEEP_API_KEY",
    base_url="https://api.holysheep.ai/v1",  # HolySheep proxy đa nhà cung cấp
)

PROMPT_TPL = "Tóm tắt các điều khoản rủi ro trong văn bản sau. Liệt kê 5 ý chính.\n\n<<CONTEXT>>"

async def run_once(client, model, context_text, max_out=2048):
    t0 = time.perf_counter()
    stream = await client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": PROMPT_TPL.replace("<<CONTEXT>>", context_text)}],
        max_tokens=max_out,
        stream=True,
        temperature=0.0,
    )
    first_token_at = None
    tokens = 0
    async for chunk in stream:
        if first_token_at is None and chunk.choices[0].delta.content:
            first_token_at