Chuyển tới nội dung chính

Chapter 2 — LLM Abilities & Limitations

Phase 1

Chapter trước bạn đã hiểu LLM hoạt động thế nào. Chapter này trả lời câu hỏi thực tế hơn: dùng model nào, cho bài toán nào, với budget bao nhiêu?

Đây là kỹ năng sẽ tiết kiệm cho bạn (hoặc công ty bạn) hàng nghìn đô mỗi tháng.


2.1 — Multimodal: không chỉ text nữa

Nếu năm 2023, LLM chỉ đọc/viết text, thì từ 2024 trở đi, các model hàng đầu đều xử lý được ảnh, audio, thậm chí video. Report State of AI 2024 highlight đây là bước tiến lớn nhất trong năm.

Với bạn — Software Engineer — điều này có nghĩa: nhiều bài toán trước đây cần model riêng biệt, giờ chỉ cần một API call.

Ai mạnh cái gì?

Cảnh báo: bảng này thay đổi rất nhanh. Check Artificial Analysis để xem data cập nhật.

Khả năngGPT-4oClaude Sonnet 4Gemini 2.5 Pro
Text✅ Tốt✅ Tốt✅ Tốt
Đọc ảnh✅ Tốt✅ Tốt✅ Tốt
Đọc PDF✅ OKNative PDF — rất tốt✅ OK
Nghe audioNative✅ Native
Xem videoNative
Tạo ảnh✅ Native✅ Native

Use case thực tế cho engineer

Đây không phải demo cool — đây là những thứ bạn dùng hàng ngày khi build product:

Bạn cầnInputOutputTrước đây phảiGiờ chỉ cần
OCR hóa đơnẢnh chụpJSON fieldsTesseract + regex1 API call
Debug từ screenshotẢnh lỗiGiải thích + fixGõ lại error messagePaste ảnh vào
Tóm tắt meetingFile audioBullet pointsWhisper + GPT riêng1 API call
Phân tích dashboardScreenshot GrafanaAnomaly reportManual1 API call

🧪 Lab 1: Cho LLM đọc ảnh

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Mô tả những gì bạn thấy trong ảnh này."},
{"type": "image_url", "image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg"
}}
]
}],
max_tokens=300,
)
print(response.choices[0].message.content)

Tham khảo OpenAI Vision Guide để xem thêm options.

Mẹo debug bằng vision

Thử chụp screenshot một stack trace rồi hỏi: "Lỗi này là gì và fix thế nào?". Bạn sẽ thấy nó hiểu lỗi tốt hơn bạn tưởng. Austin Henley có viết bài Using GPT-4 Vision for Bug Reports rất hay về topic này.


2.2 — Reasoning model vs Standard model

Đây là decision quan trọng nhất khi chọn model cho production — và cũng là chỗ nhiều người đốt tiền vô ích nhất.

Hai loại model

Standard model (GPT-4o, Claude Sonnet): nhận input, trả output ngay. Nhanh, rẻ.

Reasoning model (o3, Claude với extended thinking): tạo thinking tokens trước — model "tự nói chuyện với mình" để suy luận — rồi mới output. OpenAI giới thiệu concept này vào tháng 9/2024.

Khi nào dùng cái nào?

Rule đơn giản: nếu con người cũng cần "suy nghĩ kỹ" trước khi trả lời, dùng reasoning model. Nếu không, dùng standard.

✅ Reasoning model đáng tiền❌ Standard model là đủ
Debug logic phức tạpTóm tắt email
Giải toán, proofDịch văn bản
Lên kế hoạch multi-stepViết marketing copy
Agent cần planningClassify intent
Code architecture từ specExtract data từ form

Cái giá phải trả

Thinking tokens không miễn phí — và chúng thường gấp 5-20x output tokens. Tham khảo pricing cập nhật tại OpenAIAnthropic.

Standard model — 1 request:
Input: 1,000 tokens → $0.0025
Output: 500 tokens → $0.005
─────────────────────────────
Total: $0.0075

Reasoning model — cùng request đó:
Input: 1,000 tokens → $0.0025
Thinking: 5,000 tokens → $0.05 ← đây
Output: 500 tokens → $0.005
─────────────────────────────────
Total: $0.0575 (~8x đắt hơn)
Tính nhanh cho production

1,000 request/ngày × $0.05 = $50/ngày = $1,500/tháng — chỉ cho reasoning.

Cùng workload với standard model: $7.50/ngày = $225/tháng.

Chênh lệch $1,275/tháng. Hãy chắc chắn bạn cần reasoning thật sự trước khi bật lên.


2.3 — Chọn size model

Bạn không cần model đắt nhất cho mọi task. Đây là framework giúp bạn chọn đúng.

3 tier

Giá cập nhật tại Artificial Analysis:

TierVí dụDùng khi
🔴 FrontierClaude Opus, GPT-4oTask khó, cần quality cao nhất, volume thấp
🟡 Mid-tierClaude Sonnet, GPT-4o-miniPhần lớn mọi thứ — sweet spot
🟢 SmallClaude HaikuClassify, route, high-volume, cần nhanh

Hỏi 3 câu trước khi chọn

Ví dụ:

Bài toánNgười mất bao lâu?Volume→ Model
Classify email intentVài giây10K/ngày🟢 Haiku
Tóm tắt meeting notesVài phút50/ngày🟡 Sonnet
Generate code từ specNửa tiếng20/ngày🔴 Opus
Route support ticketVài giây50K/ngày🟢 Haiku

Cascade pattern — tiết kiệm thông minh

Trong production, bạn thường kết hợp nhiều tier. Anthropic mô tả pattern này trong bài Building Effective Agents:

80% request chạy model rẻ, chỉ 5% request dùng frontier. Chi phí trung bình giảm 60-70%. Bạn sẽ implement pattern này ở Chapter 5 — Workflow Patterns.

🧪 Lab 2: So sánh model trên cùng task

import time
from openai import OpenAI

client = OpenAI()

task = """
Phân tích code Python sau và tìm bug:

def calculate_average(numbers):
total = 0
for num in numbers:
total += num
return total / len(numbers)

print(calculate_average([]))
"""

for model in ["gpt-4o-mini", "gpt-4o"]:
start = time.time()
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": task}],
temperature=0,
)
elapsed = time.time() - start
print(f"\n{'='*50}")
print(f"Model: {model} | Time: {elapsed:.2f}s | Tokens: {r.usage.total_tokens}")
print(f"{'='*50}")
print(r.choices[0].message.content[:400])

Chạy xong, tự hỏi: Cả 2 model đều tìm ra bug (division by zero) không? Nếu model nhỏ cũng tìm được, tại sao lại trả gấp 10x cho frontier?


2.4 — Benchmark: đọc thế nào cho đúng

Mỗi tuần lại có model mới "phá kỷ lục MMLU". Đây là cách đọc benchmark mà không bị hype.

Các benchmark chính

BenchmarkĐo cái gìLink
MMLUKiến thức chung (57 chủ đề)Paper
HumanEvalCode gen PythonPaper
GPQACâu hỏi khoa học PhD-levelPaper
Chatbot ArenaCon người vote model nào tốt hơnLeaderboard

Tại sao bạn không nên tin 100%

Paper Are We Done With MMLU?Rethinking Benchmark Contamination chỉ ra nhiều vấn đề:

  1. Data contamination — model có thể đã "thấy" câu hỏi benchmark trong training data. Giống sinh viên học tủ đúng đề.
  2. Benchmark gaming — model được optimize để score cao trên test cụ thể, nhưng fail ở bài toán thật.
  3. Narrow scope — HumanEval chỉ test function Python nhỏ. Code ở production phức tạp hơn nhiều.

"Vibe check" — phương pháp tốt nhất

Lấy 20-50 test cases từ bài toán thật của bạn. Chạy trên 2-3 model. So sánh output. 30 phút làm việc này cho bạn insight tốt hơn đọc 10 bài benchmark review.

Đọc thêm: How to Evaluate LLMs (Confident AI).

🧪 Lab 3: Vibe check với data thật

from openai import OpenAI
import anthropic

oa = OpenAI()
an = anthropic.Anthropic()

tests = [
"Phân loại email: 'Tôi muốn hoàn tiền cho đơn hàng #12345'",
"Viết SQL: Top 10 khách hàng có tổng đơn cao nhất tháng 3",
"Tóm tắt: 'Họp Q2 — team A lo migration, team B frontend, deadline 30/6'",
]

for i, t in enumerate(tests):
print(f"\n{'='*60}\nTest {i+1}: {t}\n{'='*60}")

r1 = oa.chat.completions.create(
model="gpt-4o-mini", temperature=0,
messages=[{"role": "user", "content": t}],
)
print(f"\n[GPT-4o-mini]\n{r1.choices[0].message.content[:300]}")

r2 = an.messages.create(
model="claude-sonnet-4-20250514", max_tokens=300,
messages=[{"role": "user", "content": t}],
)
print(f"\n[Claude Sonnet]\n{r2.content[0].text[:300]}")

Tổng kết Chapter 2

4 điều mang về:

  1. Multimodal giúp bạn giảm complexity. OCR, audio transcription, image analysis — giờ chỉ cần 1 API call thay vì pipeline 3-4 model riêng biệt.

  2. Reasoning model chỉ đáng tiền khi task thật sự cần suy luận. Classify email? Standard model. Debug logic phức tạp? Reasoning model. Chi phí chênh ~8x — đừng dùng bừa.

  3. Bắt đầu với mid-tier, điều chỉnh sau. Sonnet/GPT-4o-mini là sweet spot cho hầu hết mọi thứ. Scale lên frontier khi cần quality, xuống small khi cần speed/cost.

  4. Đừng chọn model bằng benchmark. Chọn bằng vibe check. 30 phút test với data thật > 3 giờ đọc bài so sánh trên Chatbot Arena.


Checkpoint — Tự kiểm tra

  • "OCR hóa đơn tiếng Việt" — bạn chọn model nào, modality nào?
  • Tính cost: 1,000 request/ngày, mỗi request tạo 5K thinking tokens. Bao nhiêu $/tháng?
  • Startup có 50K request classify/ngày, latency < 500ms. Tier nào? Model nào?
  • "Model X đạt 95% MMLU" — bạn có tin nó sẽ tốt cho bài toán của bạn không? Tại sao?

Đọc thêm

Tài liệuLoạiTại sao nên đọc
Building Effective AgentsBlogAnthropic chia sẻ pattern thiết kế agent & cascade (2025)
Chatbot ArenaToolXếp hạng model bằng human preference — thực tế nhất
Artificial AnalysisToolSo sánh giá, tốc độ, quality giữa providers
Anthropic Model ComparisonDocsSo sánh model Anthropic chính thức
State of AI 2024ReportTổng quan toàn cảnh AI

Phase 1 xong! 🎉

Bạn đã nắm được "con dao": LLM hoạt động thế nào, giới hạn ở đâu, và cách chọn model phù hợp.

Phase 2 sẽ dạy bạn cách dùng con dao đó: viết prompt ổn định, cho model gọi API, và xây pipeline nhiều bước.

Tiếp theo: Chapter 3 — Prompt Engineering →