8 điểm bởi GN⁺ 2025-08-15 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Một kỹ sư phần mềm hiệu quả xây dựng và duy trì mô hình tinh thần rõ ràng về yêu cầu và mã nguồn, rồi thực hiện một vòng lặp liên tục để so sánh và cập nhật chúng
  • LLM có thể viết và sửa mã, tạo bài kiểm thử, gỡ lỗi, nhưng thiếu khả năng duy trì mô hình tinh thần chính xác, nên dễ rơi vào rối loạn trong các tác vụ phức tạp
  • Hiện tại, LLM có những hạn chế trong việc xác định chính xác khác biệt giữa mã nguồn và yêu cầu rồi sửa cho phù hợp do các vấn đề thiếu ngữ cảnh, thiên kiến gần đây, và ảo giác
  • Con người có thể linh hoạt chuyển đổi cách tư duy tùy tình huống, như tạm lưu toàn bộ ngữ cảnh hoặc tạm ẩn chi tiết để nhìn bức tranh lớn, nhưng LLM chưa làm được điều này
  • LLM hữu ích với các công việc có yêu cầu đơn giản, nhưng trong phát triển phần mềm phức tạp, cuối cùng kỹ sư phần mềm vẫn phải trực tiếp chịu trách nhiệm về độ rõ ràng của yêu cầu và cách mã nguồn vận hành, còn LLM đóng vai trò công cụ hỗ trợ

Vòng lặp kỹ thuật phần mềm

  • Kỹ sư giàu kinh nghiệm làm việc bằng cách lặp lại các bước sau
    1. Xây dựng mô hình tinh thần về yêu cầu
    2. Viết mã theo mô hình đó
    3. Hiểu điều mà đoạn mã đã viết thực sự thực hiện
    4. Xác định khác biệt và sửa mã hoặc sửa yêu cầu
  • Trọng tâm của vòng lặp này là khả năng sở hữu mô hình tinh thần chính xác và có thể duy trì

Giới hạn của LLM

  • LLM có thể thực hiện các chức năng như viết mã, xác định vấn đề rồi sửa, viết và chạy kiểm thử, thêm log, sử dụng debugger
  • Tuy nhiên, do không thể duy trì mô hình tinh thần, các vấn đề sau phát sinh
    • Giả định rằng mã do chính nó viết hoạt động tốt
    • Khi kiểm thử thất bại, dựa vào phỏng đoán để quyết định nên sửa mã hay sửa bài kiểm thử
    • Khi bị rối, xóa toàn bộ mã rồi viết lại từ đầu
  • Không giống con người, khi kiểm thử thất bại, LLM thiếu sự linh hoạt để kiểm tra lại mô hình và quyết định hướng sửa, hoặc tháo gỡ vấn đề thông qua đối thoại khi gặp bế tắc
  • Kỹ sư phần mềm thường chạy kiểm thử trong quá trình làm việc, và khi có vấn đề phát sinh, họ có thể xác định rõ phần nào cần sửa
  • Đôi khi, ngay cả khi phải làm lại toàn bộ công việc, kết quả vẫn là mức độ hiểu vấn đề sâu sắc hơn

Khả năng trong tương lai

  • Dù sau này mô hình có thể tiến bộ hơn, kỹ thuật phần mềm vẫn đòi hỏi nhiều hơn việc chỉ tạo mã
  • Khi giải quyết vấn đề quan trọng, con người có thể tạm lấy toàn bộ ngữ cảnh từ trí nhớ ra để xử lý, rồi tập trung vào từng vấn đề hoặc nhìn ở cấp độ tổng thể
  • Điều quan trọng không phải là cứ liên tục mở rộng thông tin ngữ cảnh, mà là cách tư duy xử lý có chọn lọc những thông tin cần thiết
  • LLM thiếu khả năng như con người trong việc tạm lưu và khôi phục ngữ cảnh, hoặc luân chuyển tư duy giữa bức tranh lớn và chi tiết
  • Các ràng buộc chính của LLM hiện nay
    • Thiếu ngữ cảnh (Context omission): Không giỏi tìm ra những phần thiếu thông tin cần thiết
    • Thiên kiến gần đây (Recency bias): Quá chú trọng thông tin mới nhất trong cửa sổ ngữ cảnh
    • Ảo giác (Hallucination): Tạo ra các chi tiết không tồn tại
  • Nếu được bổ sung tính năng bộ nhớ thì có thể cải thiện phần nào, nhưng khi vượt quá ngưỡng phức tạp, LLM vẫn thất bại trong việc hiểu ngữ cảnh và duy trì mô hình
  • Nó thiếu khả năng duy trì hai mô hình tinh thần tương tự nhau để phân tích khác biệt và quyết định nên sửa yêu cầu hay sửa mã ở đâu

Vai trò và cách sử dụng hiện tại

  • LLM mạnh ở khả năng tạo mã nhanh và tổng hợp yêu cầu, tài liệu, nên hoàn toàn có thể được tận dụng cho các công việc đơn giản, rõ ràng
  • Nhưng với các vấn đề không đơn giản, việc duy trì đủ ngữ cảnh và cải thiện lặp đi lặp lại là rất khó
  • Vì vậy, các việc như làm rõ yêu cầu, kiểm chứng mã nguồn vẫn là trách nhiệm của kỹ sư phần mềm
  • Mục tiêu là hướng tới môi trường nơi con người và tác nhân (LLM) cùng tạo ra phần mềm, nhưng ở thời điểm hiện tại, kỹ sư phải giữ vai trò chủ đạo, còn LLM là công cụ

Chưa có bình luận nào.

Chưa có bình luận nào.