Giải thích về ảo giác AI: Tại sao mô hình ngôn ngữ lại tạo nên mọi thứ và cách giảm thiểu nó
Một mô hình ngôn ngữ có thể đưa ra một câu trả lời tự tin, được viết tốt nhưng lại sai. Tìm hiểu lý do tại sao điều này xảy ra, các hình thức cần thực hiện cũng như các cách thực tế để giảm thiểu và phát hiện nó trong các tính năng AI của riêng bạn.
- Ảo giác AI là kết quả đầu ra nghe có vẻ hợp lý nhưng lại sai hoặc không được hỗ trợ.
- Mô hình dự đoán văn bản có thể xảy ra. Họ không có cách nào sẵn có để biết đâu là sự thật.
- Câu trả lời có căn cứ từ các nguồn đáng tin cậy, lời nhắc rõ ràng và kiểm tra tự động giúp giảm ảo giác.
- Không có kỹ thuật hiện tại nào loại bỏ chúng hoàn toàn, vì vậy các kết quả đầu ra quan trọng vẫn cần được xác minh.
Chatbot hỗ trợ sẽ thông báo cho khách hàng rằng việc hoàn tiền sẽ mất 14 ngày. Chính sách thực tế nói 7. Câu trả lời trôi chảy, lịch sự và sai. Đây là ảo giác về AI và là một trong những lý do chính khiến các tính năng của AI cần được thiết kế và thử nghiệm cẩn thận.
Hướng dẫn này giải thích nguyên nhân một cách dễ hiểu và tập trung vào cách phòng ngừa thực tế. Kiểm tra tự động ở gần cuối là một tập lệnh Python nhỏ mà chúng tôi đã chạy dựa trên các câu trả lời mẫu do chính chúng tôi viết. Nó không chạy trên mô hình AI trực tiếp.
Ảo giác AI là gì?
Ảo giác là khi một hệ thống AI tạo ra nội dung sai về thực tế, bịa đặt hoặc không được hỗ trợ bởi thông tin mà nó cung cấp, trong khi trình bày nội dung đó là đúng. Thuật ngữ này là một phép ẩn dụ. Người mẫu không nhìn thấy gì cả. Nó tạo ra văn bản phù hợp với khuôn mẫu của một câu trả lời hay mà không bị ràng buộc với sự thật.
Phần nguy hiểm là sự tự tin. Một câu trả lời ảo giác thường trông giống hệt một câu trả lời đúng, có cùng giọng điệu, cấu trúc và chi tiết.
Tại sao mô hình ngôn ngữ gây ảo giác
Mô hình ngôn ngữ lớn được đào tạo để dự đoán đoạn văn bản tiếp theo, mã thông báo, dựa trên các mẫu trong một lượng lớn dữ liệu đào tạo. Một số điều tiếp theo từ đó:
- Hợp lý không giống như đúng. Mô hình tìm hiểu xem câu trả lời có xu hướng trông như thế nào. Khi nó thiếu dữ kiện, phần tiếp theo có vẻ hợp lý nhất vẫn có thể được phát minh ra.
- Các khoảng trống và điểm cắt. Dữ liệu đào tạo có các khoảng trống và kết thúc vào một ngày nhất định. Mô hình có thể điền vào những thông tin còn thiếu thay vì nói rằng nó không biết.
- Đào tạo khen thưởng việc trả lời. Nghiên cứu, bao gồm cả bài báo OpenAI năm 2025 về lý do tại sao các mô hình gây ảo giác, lập luận rằng các phương pháp đánh giá và đào tạo thông thường khuyến khích việc đoán thay vì thừa nhận sự không chắc chắn, giống như một bài kiểm tra trắc nghiệm không bị phạt nếu trả lời sai.
- Những lời nhắc mơ hồ. Những câu hỏi mơ hồ mời gọi người mẫu giả định các chi tiết.
- Bối cảnh dài hoặc lộn xộn. Những thông tin quan trọng có thể bị bỏ qua khi bị chôn vùi trong những thông tin đầu vào dài.
Các loại ảo giác thường gặp
| Loại | Ví dụ |
|---|---|
| sự thật được phát minh | Ngày, số hoặc số liệu thống kê sai |
| Nguồn giả | Trích dẫn, bài viết hoặc URL không tồn tại |
| Tóm tắt không trung thực | Một bản tóm tắt bổ sung các tuyên bố không có trong tài liệu |
| Mã tạo thành | Lệnh gọi đến các hàm hoặc gói không tồn tại |
| Lý luận sai | Mỗi bước có vẻ ổn, nhưng kết luận không theo sau |
| Sự tự tin sai lầm | Trả lời một câu hỏi không có câu trả lời đáng tin cậy |
Các nhà nghiên cứu thường chia những lỗi này thành các lỗi tính xác thực mâu thuẫn với thế giới thực và các lỗi tính trung thực mâu thuẫn với tài liệu nguồn mà mô hình được đưa ra. Đối với các ứng dụng kinh doanh được xây dựng trên tài liệu của riêng bạn, tính trung thực thường là điều bạn có thể kiểm tra trực tiếp nhất.
Mã tạo ra xứng đáng được cảnh báo đặc biệt. Nếu trợ lý đề xuất cài đặt một gói không tồn tại, kẻ tấn công có thể xuất bản gói độc hại dưới tên đó. Kiểm tra xem mọi phần phụ thuộc được đề xuất có thật và đáng tin cậy hay không trước khi cài đặt.
Nơi quan trọng nhất
Một sự thật trong phim bị ảo giác là vô hại. Một liều thuốc gây ảo giác, trích dẫn pháp lý, chính sách hoàn tiền hoặc số liệu tài chính thì không. Đã có những trường hợp luật sư nộp hồ sơ tòa án với các trích dẫn vụ án được phát minh bởi các công cụ AI được báo cáo rõ ràng. Xếp hạng các trường hợp sử dụng của bạn theo chi phí của một câu trả lời sai và áp dụng các biện pháp kiểm soát mạnh nhất khi chi phí đó cao.
Cách giảm ảo giác
- Đưa ra câu trả lời dựa trên dữ liệu đáng tin cậy. Cung cấp cho mô hình các thông tin thực tế có liên quan thay vì dựa vào trí nhớ của mô hình.
- Cho phép “Tôi không biết”. Yêu cầu mô hình nói rõ ràng khi không có thông tin và coi đó là kết quả tốt.
- Hãy cụ thể. Những câu hỏi hẹp, rõ ràng sẽ có ít chỗ cho sự sáng tạo hơn. Hướng dẫn kỹ thuật nhanh chóng của chúng tôi trình bày chi tiết về vấn đề này.
- Yêu cầu trích dẫn hoặc trích dẫn từ các nguồn được cung cấp, sau đó tự động xác minh chúng.
- Sử dụng kết quả có cấu trúc, chẳng hạn như JSON với các trường cố định để xác thực câu trả lời dễ dàng hơn.
- Sử dụng các công cụ cho những thứ mà mô hình còn yếu, như tính toán, ngày tháng và tra cứu dữ liệu trực tiếp.
- Theo dõi con người để đưa ra những quyết định quan trọng.
Tiếp đất với dữ liệu của riêng bạn
Thế hệ tăng cường truy xuất (RAG) là kiểu nối đất phổ biến nhất. Hệ thống sẽ tìm kiếm các đoạn văn có liên quan đến câu hỏi trong tài liệu của bạn và đưa chúng vào lời nhắc, kèm theo hướng dẫn chỉ trả lời từ những đoạn văn đó. Nó làm giảm đáng kể những sự thật được phát minh, nhưng nó không phải là cách chữa trị. Mô hình vẫn có thể đọc sai một đoạn văn, kết hợp các đoạn văn sai hoặc dựa vào kiến thức của chính nó và bước tìm kiếm có thể trả về các tài liệu sai. Vì vậy, hệ thống nối đất vẫn cần được kiểm tra.
Mẹo: Ghi lại các đoạn văn được truy xuất cùng với mỗi câu trả lời. Khi một câu trả lời sai được báo cáo, bạn có thể nhanh chóng biết liệu việc truy xuất có thất bại hay mô hình đã bỏ qua ngữ cảnh phù hợp. Cách khắc phục là khác nhau đối với mỗi người.
Kiểm tra tự động đơn giản
Đây là một biện pháp bảo vệ rẻ tiền mà chúng tôi đã xây dựng: gắn cờ bất kỳ số nào trong câu trả lời không xuất hiện trong văn bản nguồn. Nó thô thiển, nhưng những con số như giá cả, ngày và giới hạn chính xác là nơi xuất hiện những ảo giác tốn kém.
import re
SOURCE = """Refunds are paid within 7 days to the original payment method.
Orders over 1000 rupees ship free. Standard delivery takes 3 to 5 working days."""
def unsupported_numbers(answer, source):
found = set(re.findall(r"\d+", answer))
allowed = set(re.findall(r"\d+", source))
return sorted(found - allowed, key=int)
Chúng tôi đã thử nghiệm ba câu trả lời được viết để mô phỏng đầu ra mô hình điển hình:
grounded -> no unsupported numbers
hallucinated -> ['14', '500']
partly -> ['1']
Câu trả lời “ảo giác” yêu cầu hoàn tiền trong 14 ngày và miễn phí vận chuyển hơn 500 rupee, và cả hai con số đều bị bắt. Câu trả lời “một phần” có thời gian giao hàng chính xác nhưng lại thêm “hoặc 1 ngày chuyển phát nhanh”, điều mà chính sách không bao giờ đề cập đến và điều đó cũng bị phát hiện. Kiểm tra thứ hai xác minh rằng các cụm từ được trích dẫn thực sự xuất hiện trong nguồn:
{'paid within 7 days': True, 'no questions asked': False}
Những kiểm tra này có giới hạn rõ ràng. Họ bỏ lỡ các từ, đơn vị và xác nhận quyền sở hữu không được hỗ trợ mà không có số và họ sẽ gắn cờ sai cho một phép tính đúng. Nhiều nhóm thêm bước “LLM với tư cách là giám khảo”, trong đó mô hình thứ hai kiểm tra từng xác nhận quyền sở hữu đối với các nguồn. Điều đó bắt được nhiều hơn, nhưng nó cũng có thể sai, vì vậy hãy đo lường nó.
Kiểm tra ảo giác
Hãy coi tỷ lệ ảo giác như một thước đo chất lượng mà bạn đo lường chứ không phải một cảm giác. Một cách tiếp cận thực tế:
- Xây dựng một bộ câu hỏi thực tế với các câu trả lời và nguồn chính xác đã biết.
- Bao gồm các câu hỏi mà hệ thống nên từ chối vì câu trả lời không có trong dữ liệu.
- Cho điểm các câu trả lời về tính đúng đắn, trung thực với các nguồn và lời từ chối phù hợp.
- Chạy tập hợp này trên mỗi thay đổi đối với lời nhắc, kiểu máy hoặc cài đặt truy xuất.
- Các cuộc trò chuyện mẫu về sản xuất để con người đánh giá.
Nguyên tắc kiểm tra hồi quy cũng được áp dụng ở đây: một tập hợp các trường hợp cố định, chạy trên mọi thay đổi, với kết quả được so sánh theo thời gian. Khi chọn cách nối đất cho một hệ thống, sự so sánh của chúng tôi về RAG, tinh chỉnh và kỹ thuật nhanh chóng giải thích sự cân bằng.
Lời khuyên cho người dùng hàng ngày
- Xác minh sự kiện, số liệu, trích dẫn và trích dẫn từ nguồn ban đầu.
- Hãy đặc biệt cẩn thận với thông tin y tế, pháp lý và tài chính.
- Dán văn bản nguồn vào và yêu cầu trợ lý chỉ trả lời từ văn bản đó.
- Hãy hỏi “bạn tự tin đến mức nào và điều này dựa trên cơ sở nào?”, nhưng hãy nhớ rằng câu trả lời cũng có thể sai.
Ảo giác có thể được loại bỏ?
Không phải với công nghệ hiện tại. Các mô hình mới hơn và đào tạo tốt hơn đã giảm tỷ lệ ảo giác trên nhiều điểm chuẩn và việc tiếp đất giúp ích rất nhiều, nhưng mọi hệ thống vẫn mắc lỗi. Mục tiêu thực tế là làm cho lỗi hiếm gặp, dễ phát hiện và ít ảnh hưởng thông qua thiết kế hệ thống, thử nghiệm và gửi tín hiệu rõ ràng đến người dùng.
Ảo giác trong các công cụ mã hóa AI
Các nhà phát triển gặp ảo giác hàng ngày trong các trợ lý mã hóa: một phương thức không tồn tại trên một lớp, tùy chọn cấu hình lỗi thời hoặc lời giải thích tự tin về lỗi thực sự do nguyên nhân khác gây ra. Biện pháp phòng thủ là những biện pháp bạn đã sử dụng cho mã của con người. Biên dịch hoặc kiểm tra kiểu kết quả, chạy thử nghiệm và đọc tài liệu chính thức cho bất kỳ API nào bạn chưa từng sử dụng trước đây. Hãy cẩn thận hơn với mã nhạy cảm về bảo mật, chẳng hạn như xác thực, mật mã và xác thực đầu vào, trong đó mã trông có vẻ hợp lý có thể không an toàn chút nào. Hãy coi các đề xuất AI như bản nháp từ một đồng nghiệp nhanh nhẹn nhưng không đáng tin cậy: thường hữu ích, không bao giờ tự động sửa.
Lời kết
Ảo giác đến từ cách các mô hình ngôn ngữ hoạt động: chúng tạo ra văn bản có khả năng xảy ra chứ không phải sự kiện được kiểm tra. Bạn không thể tắt chúng đi, nhưng bạn có thể thiết kế xung quanh chúng. Câu trả lời cơ bản trong dữ liệu đáng tin cậy, hãy để mô hình nói “Tôi không biết”, thêm tính năng kiểm tra tự động cho các chi tiết quan trọng và đo lường kết quả liên tục.
Câu hỏi thường gặp
Ảo giác AI là gì?
Đó là khi hệ thống AI tạo ra thông tin sai lệch hoặc không được hỗ trợ và trình bày thông tin đó là đúng, chẳng hạn như một số liệu thống kê, trích dẫn hoặc chi tiết chính sách được phát minh.
Tại sao các mô hình AI gây ảo giác?
Mô hình ngôn ngữ dự đoán văn bản có thể xảy ra dựa trên các mẫu chứ không phải sự kiện đã được xác minh. Những khoảng trống trong dữ liệu đào tạo, những lời nhắc mơ hồ và việc đào tạo khuyến khích việc đoán mò đều khiến ảo giác dễ xảy ra hơn.
RAG có ngăn được ảo giác không?
Nó làm giảm chúng bằng cách cung cấp cho mô hình thông tin đáng tin cậy, nhưng nó không ngăn cản chúng. Mô hình vẫn có thể đọc sai nguồn và việc truy xuất có thể trả về tài liệu sai.
Làm thế nào bạn có thể phát hiện ảo giác AI?
So sánh các câu trả lời với tài liệu nguồn, tự động kiểm tra các con số và trích dẫn, sử dụng mô hình thứ hai để xác minh các tuyên bố và xem xét mẫu với mọi người.
Ảo giác AI có bao giờ biến mất?
Tỷ lệ đang giảm khi các mô hình được cải thiện, nhưng không có phương pháp hiện tại nào loại bỏ chúng hoàn toàn. Các kết quả đầu ra quan trọng vẫn cần được kiểm tra và đánh giá của con người.
Tiếp tục học hỏi
Cần trợ giúp về kiểm tra, WordPress hoặc SEO?
Chúng tôi giúp các nhóm phát triển phần mềm tốt hơn và phát triển trang web của họ. Hãy cho chúng tôi biết bạn đang làm gì và chúng tôi sẽ đề xuất bước tiếp theo rõ ràng.
Thêm hướng dẫn về thử nghiệm, AI và phát triển hiện đại
Bạn thích bài viết này? Chọn một chủ đề và chuyển ngay sang phần hướng dẫn mới nhất của chúng tôi.
Giải thích về ảo giác AI: Tại sao các mô hình ngôn ngữ lại tạo nên mọi thứ và cách giảm thiểu nó
Ảo giác AI đã giải thích: chúng là gì, tại sao mô hình ngôn ngữ tạo ra chúng, các loại phổ biến, cách giảm thiểu chúng bằng cách căn cứ và nhắc nhở …
Đọc bài viết →DevOpsGiải thích về các biến môi trường: Tệp .env, bí mật và cấu hình được thực hiện đúng
Các biến môi trường được giải thích bằng các ví dụ Python mà chúng tôi đã chạy: đọc và thiết lập chúng, tại sao mọi giá trị đều là một chuỗi, tệp .e…
Đọc bài viết →Phát triển phần mềmGiải thích về giới hạn tỷ lệ API: Thuật toán, tiêu đề và xử lý lỗi 429
Giới hạn tốc độ API được giải thích bằng mô phỏng mà chúng tôi đã chạy: nhóm mã thông báo, cửa sổ cố định, cửa sổ trượt, 429 phản hồi, tiêu đề giới …
Đọc bài viết →Tự động hóa kiểm thửChế giễu bằng Python: unittest.mock, patch và những sai lầm khiến bài kiểm tra nói dối
Mô phỏng bằng Python với unittest.mock, đã được thử nghiệm: Mock và return_value, side_effect, vá lỗi nơi sử dụng tên, thông số kỹ thuật và thông số…
Đọc bài viết →Kiểm thử phần mềmGiải thích về phạm vi bảo hiểm của mã: Phạm vi tuyến so với chi nhánh và ý nghĩa thực sự 100%
Phạm vi bảo hiểm mã được giải thích bằng cách chạy phạm vi bảo hiểm thực tế: phạm vi bảo hiểm dòng, chi nhánh và điều kiện, đọc báo cáo, lý do tại s…
Đọc bài viết →Cơ sở dữ liệu & SQLDELETE vs TRUNCATE vs DROP trong SQL: Sự khác biệt, khôi phục và thời điểm sử dụng mỗi loại
DELETE vs TRUNCATE vs DROP được giải thích bằng SQL đã được thử nghiệm: mỗi loại loại bỏ, khôi phục, kích hoạt, đặt lại danh tính, tốc độ và Postgre…
Đọc bài viết →Cơ sở dữ liệu & SQLGiải thích về Chế độ xem SQL: Tạo, sử dụng và tránh những cạm bẫy, kèm theo ví dụ
Chế độ xem SQL được giải thích bằng các truy vấn chúng tôi đã chạy: tạo chế độ xem, kết quả trực tiếp, ẩn cột, hiệu suất, chế độ xem có thể cập nhật…
Đọc bài viết →Phát triển phần mềmGiao diện TypeScript so với loại: Sự khác biệt thực sự, được thử nghiệm bằng trình biên dịch
Giao diện TypeScript so với loại, được kiểm tra bằng trình biên dịch thực: cả hai có thể làm gì, chỉ một người có thể làm gì, hợp nhất khai báo, mở …
Đọc bài viết →Phát triển phần mềmGiải thích về Python *args và **kwargs: Hàm linh hoạt với ví dụ rõ ràng
Python *args và **kwargs được giải thích bằng mã chúng tôi đã chạy: đóng gói và giải nén, thứ tự tham số, đối số chỉ từ khóa và chỉ vị trí, trình tr…
Đọc bài viết →Phát triển phần mềmHàm Lambda của Python: Cú pháp, cách sử dụng thực tế và khi nào không nên sử dụng chúng
Các hàm lambda của Python được giải thích bằng mã chúng tôi đã chạy: cú pháp, sắp xếp bằng khóa, bản đồ và bộ lọc, các phần đóng, bẫy liên kết muộn …
Đọc bài viết →Trí tuệ nhân tạoĐại lý AI là gì? Cách chúng hoạt động, với vòng lặp tác nhân đơn giản, bạn có thể chạy
Tác nhân AI là gì? Hướng dẫn đơn giản về vòng lặp tác nhân, công cụ, bộ nhớ và lan can, với một vòng lặp Python nhỏ mà chúng tôi đã chạy, những rủi …
Đọc bài viết →DevOpsGiám sát và Khả năng quan sát: Sự khác biệt thực sự, với nhật ký, số liệu và dấu vết
Giải thích về giám sát và khả năng quan sát: lỗi đã biết và chưa biết, nhật ký, số liệu và dấu vết, hướng dẫn về sự cố thanh toán, tín hiệu vàng, Op…
Đọc bài viết →DevOpsDocker Volumes vs Bind Mounts: Duy trì dữ liệu vùng chứa đúng cách
Giải thích về khối lượng Docker và liên kết gắn kết: tại sao dữ liệu vùng chứa biến mất, khối lượng được đặt tên, liên kết gắn kết, tmpfs, ví dụ về …
Đọc bài viết →Tự động hóa kiểm thửTDD vs BDD: Key Differences, One Feature Built Both Ways and When to Use Each
TDD và BDD được giải thích bằng một tính năng giảm giá được xây dựng theo cả hai cách: tái cấu trúc màu đỏ-xanh với mã chúng tôi đã chạy, kịch bản C…
Đọc bài viết →Kiểm thử phần mềmKiểm tra chấp nhận của người dùng (UAT): Quy trình, danh sách kiểm tra và ví dụ thực tế
Giải thích về thử nghiệm chấp nhận của người dùng: ai chạy nó, nó khác với QA như thế nào, quy trình bảy bước, mẫu trường hợp thử nghiệm UAT, danh s…
Đọc bài viết →Cơ sở dữ liệu & SQLGiải thích về các giá trị NULL của SQL: IS NULL, COALESCE, NULLIF và những cái bẫy cần tránh
Các giá trị SQL NULL được giải thích bằng các truy vấn chúng tôi đã chạy: logic ba giá trị, IS NULL, COALESCE, NULLIF, cách tổng hợp, kết hợp và sắp…
Đọc bài viết →Cơ sở dữ liệu & SQLCâu lệnh SQL CASE WHEN: Cú pháp, ví dụ thực tế và các lỗi thường gặp
TRƯỜNG HỢP SQL KHI được giải thích bằng các truy vấn mà chúng tôi đã chạy: các biểu mẫu đơn giản và được tìm kiếm, thứ tự điều kiện, các thủ thuật S…
Đọc bài viết →Phát triển phần mềmJWT là gì? Mã thông báo Web JSON được giải thích bằng một ví dụ hoạt động
JWT là gì? Mã thông báo Web JSON đã giải thích: ba phần, mã thông báo được xây dựng và giả mạo trong mã chúng tôi đã chạy, JWT so với phiên, lưu trữ…
Đọc bài viết →Phát triển phần mềmGiải thích về vòng lặp sự kiện JavaScript: Ngăn xếp cuộc gọi, Microtask và bộ hẹn giờ kèm ví dụ
Vòng lặp sự kiện JavaScript được giải thích bằng mã chúng tôi đã chạy: ngăn xếp cuộc gọi, hàng đợi tác vụ và vi nhiệm, tại sao setTimeout 0 không di…
Đọc bài viết →Phát triển phần mềmGiải thích về trình tạo và năng suất của Python: Tiết kiệm bộ nhớ bằng các ví dụ thực tế
Trình tạo và lợi nhuận Python được giải thích bằng mã chúng tôi đã chạy: cách chúng tạm dừng và tiếp tục, đo mức tiết kiệm bộ nhớ, quy trình, chuỗi …
Đọc bài viết →Trí tuệ nhân tạoNhúng là gì? Giải thích sự tương đồng về vectơ và Cosine một cách đơn giản
nhúng là gì? Hướng dẫn bằng ngôn ngữ đơn giản về vectơ, độ tương tự cosine và tìm kiếm ngữ nghĩa, với một ví dụ nhỏ mà chúng tôi đã chạy, các cách s…
Đọc bài viết →DevOpsTriển khai Blue-Green và Canary: Sự khác biệt, sự đánh đổi và cách lựa chọn
Giải thích về triển khai Blue-green và Canary: cách hoạt động của từng loại, chi phí, rủi ro và khôi phục, nhóm người dùng ổn định mà chúng tôi đã t…
Đọc bài viết →Tự động hóa kiểm thửKiểm tra không ổn định: Nguyên nhân gây ra chúng và cách khắc phục chúng vĩnh viễn
Các thử nghiệm không ổn định được giải thích bằng các bản demo mà chúng tôi đã chạy: nguyên nhân chính, cách xác nhận và chẩn đoán nguyên nhân, cách…
Đọc bài viết →Kiểm thử phần mềmKiểm tra tải và kiểm tra căng thẳng: Sự khác biệt, số liệu và ví dụ về k6
Giải thích về thử nghiệm tải và thử nghiệm căng thẳng: mỗi thử nghiệm chứng minh điều gì, thử nghiệm tăng đột biến và ngâm, số liệu quan trọng, lý d…
Đọc bài viết →Kiểm thử phần mềmTrường hợp thử nghiệm và kịch bản thử nghiệm: Sự khác biệt chính, ví dụ và thời điểm sử dụng từng trường hợp
Giải thích trường hợp kiểm thử và kịch bản kiểm thử: định nghĩa rõ ràng, bảng cạnh nhau, một tính năng đặt lại mật khẩu được lấy từ các tình huống n…
Đọc bài viết →Cơ sở dữ liệu & SQLTối ưu hóa truy vấn SQL: Đọc kế hoạch thực thi và sửa các truy vấn chậm, có tính thời gian
Đã thử nghiệm tối ưu hóa truy vấn SQL trên một triệu hàng: đọc kế hoạch thực hiện, thêm chỉ mục phù hợp, sửa các bộ lọc không thể mở rộng, sử dụng c…
Đọc bài viết →Cơ sở dữ liệu & SQLSQL UNION và UNION ALL: Sự khác biệt, ví dụ và hiệu suất đã được kiểm tra
SQL UNION và UNION ALL được giải thích bằng các truy vấn chúng tôi đã chạy: trùng lặp, cả hai quy tắc đều tuân theo, lỗi dữ liệu thực, hiệu suất đượ…
Đọc bài viết →Phát triển phần mềmHướng dẫn API tìm nạp JavaScript: GET, POST, Xử lý lỗi và hết thời gian chờ
Hướng dẫn API tìm nạp JavaScript đã được thử nghiệm trên máy chủ cục bộ: GET và POST, tại sao 404 không gửi, trình trợ giúp có thể sử dụng lại, chuỗ…
Đọc bài viết →Phát triển phần mềmXử lý tệp Python: Đọc, ghi, CSV, JSON và pathlib kèm ví dụ
Việc xử lý tệp Python được giải thích bằng mã chúng tôi đã chạy: chế độ mở, với, đọc tệp lớn, CSV, JSON, pathlib, tệp nhị phân, ghi an toàn, xử lý l…
Đọc bài viết →Phát triển phần mềmCác lớp và đối tượng Python: Hướng dẫn OOP với các ví dụ thực tế
Các lớp và đối tượng Python được giải thích bằng mã mà chúng tôi đã chạy: __init__, các phương thức, thuộc tính lớp và phiên bản, tính kế thừa, thuộ…
Đọc bài viết →Trí tuệ nhân tạoMô hình ngôn ngữ lớn là gì? LLM hoạt động như thế nào, được giải thích mà không cường điệu hóa
Mô hình ngôn ngữ lớn là gì? LLM được giải thích bằng ngôn ngữ đơn giản: mã thông báo, phần nhúng, sự chú ý, đào tạo, cửa sổ nhiệt độ và ngữ cảnh, mộ…
Đọc bài viết →DevOpsCác lệnh Linux cho người mới bắt đầu: Hướng dẫn thiết bị đầu cuối cần thiết kèm ví dụ
Các lệnh Linux dành cho người mới bắt đầu, được nhóm theo tác vụ: điều hướng, tệp, xem nhật ký, grep, đường dẫn, quyền, quy trình và lưu trữ, cùng v…
Đọc bài viết →Tự động hóa kiểm thửSelenium vs Nhà viết kịch: Sự khác biệt chính, So sánh mã và nên chọn cái nào
Selenium và Playwright được so sánh: kiến trúc, chờ đợi, hỗ trợ trình duyệt và ngôn ngữ, gỡ lỗi, kiểm tra giống nhau ở cả hai công cụ, lời khuyên di…
Đọc bài viết →Kiểm thử phần mềmPhân vùng tương đương: Giải thích kỹ thuật thiết kế thử nghiệm bằng các ví dụ đã thực hiện
Giải thích về phân vùng tương đương: cách tìm các phân vùng hợp lệ và không hợp lệ, các ví dụ hoạt động theo độ tuổi, mật khẩu và phiếu giảm giá, cá…
Đọc bài viết →Kiểm thử phần mềmMức độ nghiêm trọng và mức độ ưu tiên trong kiểm thử phần mềm: Sự khác biệt, Ma trận và ví dụ thực tế
Giải thích về mức độ nghiêm trọng và mức độ ưu tiên trong kiểm thử phần mềm: định nghĩa rõ ràng, ma trận bốn chiều với các ví dụ, thang đo cấp độ, a…
Đọc bài viết →Cơ sở dữ liệu & SQLHướng dẫn về truy vấn con SQL: Các loại, truy vấn con tương quan và TỒN TẠI kèm ví dụ
Hướng dẫn về truy vấn con SQL với các truy vấn chúng tôi đã chạy: truy vấn con vô hướng, IN, FROM và SELECT, truy vấn con tương quan, EXISTS, bẫy và…
Đọc bài viết →Cơ sở dữ liệu & SQLGiải thích về giao dịch SQL và ACID: Các mức CAM KẾT, ROLLBACK và Cô lập
Các giao dịch SQL và ACID được giải thích bằng chuyển khoản ngân hàng mà chúng tôi đã thực hiện: CAM KẾT, ROLLBACK, điểm lưu trữ, khóa, mức cách ly,…
Đọc bài viết →Phát triển phần mềmGit merge vs rebase: khác biệt, ví dụ và khi nào dùng cái nào
Git merge vs rebase được giải thích bằng đầu ra log thực tế, bảng so sánh, quy tắc vàng của rebase và quy trình làm việc nhóm an toàn.
Đọc bài viết →Phát triển phần mềmList comprehension trong Python: cú pháp, ví dụ và khi nào nên tránh
List comprehension trong Python: cú pháp, lọc dữ liệu, if-else, vòng lặp lồng nhau, thời gian đo thực tế và khi nào vòng lặp for thông thường tốt hơn.
Đọc bài viết →Cơ sở dữ liệu & SQLGiải thích SQL JOIN kèm ví dụ (Inner, Left, Right, Full)
Hiểu SQL JOIN từng bước với bảng và truy vấn mẫu: INNER, LEFT, RIGHT, FULL, CROSS và SELF, cùng lỗi thường gặp và mẹo hiệu năng.
Đọc bài viết →