Bỏ qua để đến nội dung

Xây dựng và triển khai ứng dụng AI - những kỹ năng cần có để đưa AI vào thực tế

The AI Engineering Skills Map In Detail — Building and Deploying AI Applications

Chào các bạn,

Trước đây tôi từng viết về bản đồ kỹ năng AI Engineering của chúng tôi, với các nhóm kỹ năng cấp cao nhất là (i) xây dựng và triển khai ứng dụng AI, (ii) nền tảng kỹ thuật phần mềm, (iii) sử dụng coding agent, và (iv) định hình quá trình xây dựng. Trong bức thư này, tôi sẽ đi sâu vào nhóm kỹ năng đầu tiên.

Giỏi xây dựng và triển khai ứng dụng AI nghĩa là nắm vững:

  • Nền tảng về LLM
  • Cung cấp dữ liệu nền (grounding) cho model
  • Xây dựng hệ thống agentic
  • Phát triển dựa trên đánh giá (evaluation-driven development)
  • Vận hành trong môi trường production
  • Nền tảng về machine learning

Bản đồ kỹ năng này được xây dựng bằng cách phân tích một lượng lớn tin tuyển dụng, phỏng vấn chuyên gia có cấu trúc, và các khảo sát.

Khác biệt then chốt giữa ứng dụng AI và phần mềm truyền thống (không có AI) là đầu ra của ứng dụng AI khó đoán trước hơn nhiều. Bạn không thể biết trước một LLM sẽ trả lời điều gì, hay một thuật toán supervised learning sẽ đưa ra dự đoán nào. Chính vì sự bất định này, xây dựng hệ thống AI là một quá trình lặp đi lặp lại (iterative) nhiều hơn hẳn so với xây dựng phần mềm truyền thống - việc lên kế hoạch trước cho toàn bộ quá trình khó khăn hơn nhiều. Những AI engineer giỏi liên tục xây một phần phần mềm, xem xét kết quả, rồi quyết định bước tiếp theo nên làm gì, với mỗi bước đi chịu ảnh hưởng mạnh từ kết quả trung gian trước đó. Khả năng quyết định khéo léo bước tiếp theo cho phép bạn tạo ra những hệ thống phần mềm đáng tin cậy được xây từ những thành phần AI vốn không đáng tin cậy hoàn toàn. Điều này đòi hỏi bạn phải nắm được:

Nền tảng về LLM. Hiểu cách các mô hình ngôn ngữ lớn tokenize (chia nhỏ) đầu vào và sinh ra đầu ra giúp bạn biết khi nào có thể tin tưởng chúng và khi nào chúng có thể thất bại. Nó cũng giúp bạn hiểu khi nào nên dùng một model đa phương thức (multimodal), cách đánh đổi khi quyết định đưa gì vào context window, và biết suy luận về cache hit, knowledge cutoff (mốc thời gian model được huấn luyện dữ liệu đến đâu), mức độ reasoning effort, các tham số sampling, cũng như khi nào nên dùng những tính năng đặc biệt như tool calling. Hiểu những nền tảng này giúp bạn chọn đúng model hoặc đúng tổ hợp model, và áp dụng các kỹ thuật chuyên sâu khi cần, như fine-tuning hay tự host model.

Cung cấp dữ liệu nền cho model. LLM cần có ngữ cảnh đầu vào tốt để tạo ra đầu ra hữu ích. RAG dùng vector search từng là nỗ lực ban đầu để cấp ngữ cảnh liên quan cho LLM, nhưng tập hợp các kỹ thuật để cung cấp dữ liệu nền cho model giờ đã lớn hơn rất nhiều. Ví dụ, bạn sẽ phải quyết định nên đưa gì vào prompt so với việc để LLM tự truy xuất khi cần bằng tool, và cách biểu diễn nào phù hợp với dữ liệu cùng truy vấn tìm kiếm của bạn: một vector index, một knowledge graph, hay một semantic layer phủ lên trên dữ liệu có cấu trúc (như hồ sơ khách hàng). Bạn cũng sẽ phải biến các tài liệu (văn bản, PDF, HTML, hình ảnh) thành đầu vào sẵn sàng cho LLM, và xây dựng các pipeline để giữ dữ liệu luôn sạch và cập nhật. Khi hiểu được “thực đơn” các kỹ thuật để lấy dữ liệu, bạn sẽ có khả năng cấp ngữ cảnh liên quan tốt hơn cho LLM của mình.

Xây dựng hệ thống agentic. Hệ thống agentic trải dài từ những workflow thực thi một chuỗi lệnh gọi LLM được định sẵn, cho đến những hệ thống dựa trên agent harness cho phép LLM tự quyết định bước tiếp theo của chính nó, lặp đi lặp lại. Bạn sẽ phải chọn kiến trúc - bước nào nên nối chuỗi (chain), bước nào nên chạy song song, khi nào dùng code và khi nào dùng LLM - và xây dựng workflow hoặc harness đó, kèm theo cơ chế dự phòng khi có lỗi (fallback). Khi thiết kế agent loop, bạn cũng sẽ quyết định model được phép gọi những tool nào (bao gồm MCP, CLI, và môi trường thực thi sandbox), dùng kiến trúc bộ nhớ (memory) nào, cách quản lý ngữ cảnh qua các phiên làm việc dài, và khi nào một tác vụ cần điều phối đa agent (multi-agent orchestration) thay vì kiến trúc đơn agent. Bạn cũng sẽ muốn biến những bản prototype đầy triển vọng thành các agent đáng tin cậy, an toàn cho production; điều này đòi hỏi hiểu về guardrail, đầu vào mang tính đối kháng (adversarial input), nhận diện và xử lý những rủi ro then chốt (như rò rỉ dữ liệu - data exfiltration), và quản trị (governance).

Các workflow agentic đang phát triển rất nhanh, và bạn cũng sẽ được lợi nếu hiểu những kỹ thuật tiên tiến nhất liên quan đến lĩnh vực ứng dụng của mình, như voice agent, computer-use agent, hay generative UI.

Phát triển dựa trên đánh giá (evaluation-driven development). Theo kinh nghiệm của tôi, đặc điểm quan trọng nhất phân biệt người giỏi xây dựng hệ thống AI chính là khả năng vận hành một vòng lặp eval/phân tích lỗi (error analysis) một cách kỷ luật để dẫn dắt quá trình phát triển. Điều này cho phép bạn liên tục tập trung nỗ lực vào những hướng đi có khả năng mang lại kết quả cao hơn. Tôi nhận thấy đây là một kỹ năng khó làm chủ, bởi cách tiếp cận đúng đắn thay đổi rất nhiều tùy theo dự án, thậm chí tùy theo từng giai đoạn của cùng một dự án.

Xây dựng eval tốt là một kỹ năng kỹ thuật sâu. Bạn có thể phải xem xét trace và đầu ra của hệ thống, thực hiện phân tích dữ liệu khám phá (exploratory data analysis), rồi kết hợp điều đó với hiểu biết về sản phẩm và kinh doanh để quyết định nên đo lường điều gì. Bạn cũng nên hiểu “thực đơn” các lựa chọn cho việc eval, chẳng hạn khi nào dùng đánh giá xác định (deterministic, dựa trên code), khi nào dùng LLM-làm-giám khảo (LLM-as-a-judge), và khi nào cần con người tham gia vào vòng lặp (human in the loop), cũng như cách đánh giá lại chính các eval của bạn để tiếp tục cải tiến chúng. Những đánh giá này sau đó sẽ nuôi dưỡng một quá trình phát triển lặp đi lặp lại, giúp việc cải tiến trở nên có hệ thống thay vì ngẫu nhiên.

Vận hành trong môi trường production. Vận hành phần mềm AI khác với phần mềm truyền thống vì tính khó đoán, chi phí, và độ trễ của nó. Trước tiên, bạn cần biết cách xây dựng cơ chế quan sát (observability) để hiểu hiệu năng của hệ thống khi sử dụng thực tế. Bạn sẽ theo dõi hiệu năng, phát hiện hiện tượng trôi (drift), và phản ứng nhanh với các lỗi model cũng như sự cố bảo mật như tấn công chèn prompt mang tính đối kháng (adversarial prompt injection). Việc thiết lập regression testing và CI/CD đòi hỏi nhiều đánh giá thống kê hơn so với phần mềm truyền thống, và mức độ đầu tư cho việc kiểm thử nên được cân chỉnh theo rủi ro nếu xảy ra sai sót. Ngoài ra, việc biết cách chọn đúng tổ hợp kỹ thuật - như tối ưu lựa chọn model, distillation và fine-tuning, hay đơn giản hóa workflow agentic - để tối ưu chi phí và độ trễ cũng rất quan trọng, đặc biệt khi ứng dụng của bạn tiếp cận nhiều người dùng.

Nền tảng về machine learning. Các LLM hiện đại được xây dựng bằng các kỹ thuật machine learning bao gồm supervised learning và reinforcement learning. Mọi kỹ sư giỏi xây dựng với LLM mà tôi biết đều hiểu machine learning và deep learning ở một mức độ sâu nhất định. Thêm vào đó, nhiều ứng dụng vẫn đòi hỏi biết cách sử dụng machine learning - dù là một model do người khác huấn luyện hay do chính bạn huấn luyện. Điều này đòi hỏi biết các model machine learning và deep learning phổ biến cùng những đánh đổi về độ chính xác, tốc độ huấn luyện, tốc độ suy luận (inference), v.v., và hiểu cách xây dựng dữ liệu cần thiết để huấn luyện và đánh giá các model này. Các khái niệm machine learning về bias/variance, phân tích lỗi, và xây dựng dữ liệu - tất cả đều là những khung tư duy cốt lõi để định hướng cách làm việc với các hệ thống có đầu ra bất định - cũng vẫn là chìa khóa cho rất nhiều quyết định trong quá trình phát triển hệ thống AI.

Có rất nhiều điều cần học để giỏi xây dựng và triển khai hệ thống AI. Đây là một lĩnh vực có chiều sâu kỹ thuật đáng kể. Nhưng mỗi chút bạn học được sẽ giúp bạn trở nên giỏi hơn trong AI Engineering và xây dựng được những ứng dụng thú vị hơn. Một mảng bổ trợ mạnh mẽ cho những kỹ năng này chính là kỹ thuật phần mềm. Tôi sẽ viết thêm về điều này trong bức thư tiếp theo.

Tiếp tục xây dựng nhé!

Andrew