Thuật Ngữ Testing

Trong AI, non-deterministic là gì?

🤖 Trong quá trình tìm hiểu và tham gia kiểm thử các phần mềm có sử dụng AI, mình nhận ra một điều khá thú vị: AI đôi khi rất “khó đoán”.

Non-deterministic là gì?

Với “phần mềm truyền thống” (không sử dụng AI), hầu hết các chức năng của nó đều có tính xác định (deterministic). Nghĩa là cùng một tập giá trị đầu vào thì kết quả đầu ra luôn giống nhau. Ví dụ như gọi một API với cùng dữ liệu đầu vào, hoặc đơn giản là phép tính cộng hai số (1 + 1) thì kết quả lúc nào cũng là 2.

Nhưng với các mô hình AI thì không hẳn như vậy. Các bạn có thể đã từng gặp trường hợp cùng một câu hỏi nhưng AI sẽ trả lời theo nhiều cách khác nhau ở mỗi lần hỏi. Khái niệm này được gọi là phi xác định (non-deterministic).

Ví dụ khi mình hỏi ChatGPT: “Giải thích edge case là gì?”.

Kết quả lần đầu tiên có thể là: “Những trường hợp ở ranh giới của dữ liệu”. Lần thứ hai hỏi lại câu đó, kết quả có thể là “Những tình huống hiếm gặp ngoài luồng xử lý thông thường”. Về mặt nội dung thì có thể là vẫn đúng, nhưng cách diễn đạt hoặc ý tổng thể thì khác nhau.

Kết quả khác nhau cho cùng một câu hỏi

Nguyên nhân của non-deterministic

Dưới đây là một số nguyên nhân dẫn đến tính “khó đoán” của các mô hình AI:

1. Sampling / probability

Các mô hình ngôn ngữ lớn (Large Language Models – LLM) như GPT-4 hoạt động dựa trên xác suất khi dự đoán token tiếp theo.

Trong AI, đặc biệt là với các mô hình ngôn ngữ lớn, chúng chọn từ tiếp theo dựa trên xác suất thay vì luôn chọn một kết quả cố định.

Mỗi khi mô hình tạo câu trả lời, nó sẽ:

  1. Tính xác suất của nhiều từ có thể xuất hiện tiếp theo.
  2. Sau đó lấy mẫu (sampling) từ danh sách đó.
  3. Từ được chọn sẽ trở thành phần tiếp theo của câu.

2. Temperature

Temperature là tham số điều chỉnh mức độ ngẫu nhiên khi mô hình AI (như ChatGPT) chọn từ tiếp theo trong quá trình sinh/tạo nội dung.

  • Temperature thấp (gần 0) 👉 mô hình chọn từ có xác suất cao nhất, nên câu trả lời ổn định và ít thay đổi.
  • Temperature cao (> 0) 👉 mô hình cho phép chọn cả những từ có xác suất thấp hơn, nên kết quả đa dạng và có tính ngẫu nhiên hơn.

Ví dụ cùng một câu lệnh: “Giải thích kiểm thử phần mềm”

  • Temperature thấp: câu trả lời gần giống nhau mỗi lần.
  • Temperature > 0: kết quả có randomness.
  • Temperature cao: câu trả lời có thể khác nhau về cách diễn đạt hoặc ví dụ

3. Model architecture

Đây là cấu trúc và cách tổ chức các thành phần bên trong một mô hình AI để xử lý dữ liệu và tạo ra kết quả cho các câu lệnh prompt.

Với các mô hình ngôn ngữ lớn như ChatGPT hay GPT-4, kiến trúc thường dựa trên Transformer (trình biến đổi ngữ cảnh), gồm nhiều lớp xử lý giúp mô hình:

  • hiểu ngữ cảnh của câu
  • học mối quan hệ giữa các từ
  • dự đoán token tiếp theo dựa trên xác suất

Do kiến trúc này hoạt động dựa trên xác suất và quá trình sinh từng token, nên cùng một câu hỏi đầu vào vẫn có thể tạo ra nhiều câu trả lời khác nhau. Góp phần làm cho hệ thống AI có tính khó đoán (non-deterministic).

Non-deterministic ảnh hưởng đến cách kiểm thử?

👉 Điều này xảy ra vì các mô hình AI có sẵn một câu trả lời cố định được lưu trong “cơ sở dữ liệu của nó”, về mặt bản chất của AI, nó sẽ tìm câu trả lời dựa trên xác suất (đã được lập trình sẵn qua quá trình “đào tạo”). Vì vậy, cùng một câu hỏi nhưng mỗi lần hỏi bạn sẽ nhận được câu trả lời có thể hơi khác nhau.

Với tester chúng ta, điều này làm “tăng độ khó cho game” trong quá trình kiểm thử các mô hình AI hay các ứng dụng có sử dụng AI. Lúc này, một trong những cách đánh giá “chất lượng” của một chức năng sẽ dựa vào thước đo “độ chính xác”.

Thay vì so sánh kết quả trả về phải giống 100%, chúng ta phải đánh giá xem câu trả lời có đúng ý, hợp lý, và phù hợp với ngữ cảnh hay không.

Xem thêm Edge case là gì?

Vì vậy khi kiểm thử hệ thống AI, tester cần đánh giá tính đúng, tính liên quan, và chất lượng câu trả lời, thay vì chỉ mong đợi một kết quả trả về cố định.

Thước đo độ chính xác trong kiểm thử

Có nhiều cách để đánh giá, trong đó có thước đo như accuracy (độ chính xác), precision (độ nhất quán), v.v…

  • Độ nhất quán = TP / (TP + FP) * 100%
  • Độ chính xác = (TP + TN) / (TP +TN + FP + FN) * 100%

ℹ️ Trích từ tài liệu ISTQB CT-AI Testing. Mình sẽ viết bài chia sẻ chi tiết về vấn đề này sau. Đây là các từ viết tắt trong công thức:

  • true positive (TP)
  • true negative (TN)
  • false positive (FP)
  • false negative (FN)

Khi ai đó hỏi về tính khó đoán định này của AI, mình thường lấy ví dụ đơn giản thế này:

  • Phần mềm truyền thống giống máy tính bỏ túi — bấm gì ra nấy, luôn giống nhau.
  • Còn AI 🤖 giống một chuyên gia tư vấn — hỏi cùng một câu, chúng ta có thể nhận được trả lời theo nhiều cách khác nhau, nhưng ý chính vẫn vậy.

Vì AI có tính non-deterministic, khi kiểm thử các hệ thống AI tester không thể chỉ so sánh kết quả thực tế với một kết quả mong đợi cố định, mà cần đánh giá tính đúng, tính liên quan và chất lượng của câu trả lời.

You Might Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *