Phụ lục: chạy lại thí nghiệm#
code/bieudien/
├── experiments.py # Hình 2, 3, 4, 6, 8, 9, 10, 12, 13 và mọi số liệu đo được
├── experiments_output.txt # kết quả in ra của script trên
└── fig_diagrams.py # Hình 1, 5, 7, 11, 14 (sơ đồ khái niệm)
pip install numpy scipy matplotlib scikit-learn
python code/bieudien/experiments.py # khoảng 5 phút trên CPU
python code/bieudien/fig_diagrams.py
Môi trường đã dùng: Python 3.13, NumPy 2.3, SciPy 1.16, scikit-learn 1.7, matplotlib 3.10. Trên Windows, đặt PYTHONIOENCODING=utf-8 khi ghi kết quả ra tệp.
Các kết quả kiểm chứng đẳng thức phải khớp tới sai số của bộ giải chứ không chỉ khớp gần đúng:
| Đẳng thức | Sai lệch đo được |
|---|---|
| Nghiệm RLHF có ràng buộc KL khớp dạng đóng (Mục 14.4) | tới |
| Chính sách DPO trùng chính sách RLHF hai bước (Mục 15.3) | |
| Dạng đóng của quá trình thuận khuếch tán (Mục 11.2) | khớp trung bình và phương sai trên 200 000 quỹ đạo |
| Skip-gram hạng đầy đủ hội tụ về PMI (Mục 2.6) | tương quan 0,9995 |
Ba kết quả khác với cách phát biểu thường gặp, và giáo trình trình bày chúng đúng như số liệu cho thấy. Bảng quét số chiều của embedding ở Mục 2.4 không phải một đường cong đánh đổi: độ chính xác loại suy đạt 100% ở 8 chiều, giảm ở 12 và 16 chiều, rồi lại 100% ở 20 chiều, vì phổ của ma trận PPMI có đúng 8 trị riêng dương. Thí nghiệm GAN ở Mục 10.3 không tái hiện được sụp chế độ; nó cho thấy dạng minimax gốc không học được vì gradient triệt tiêu, và phủ đủ các chế độ vẫn chưa có nghĩa là học đúng phân phối. Thí nghiệm học tăng cường ở Mục 12.4 cho thấy vẫn thành công trong một cấu hình nhờ khởi tạo lạc quan.
Ngoài ra, thí nghiệm ở Mục 6.3 chạy mỗi cấu hình một lần, nên các chênh lệch nhỏ ở cỡ dữ liệu nhỏ không có ý nghĩa thống kê; mô phỏng ở Mục 2.4 dùng kho ngữ liệu nhân tạo 20 từ, nên chỉ minh hoạ cơ chế chứ không đại diện cho embedding trên dữ liệu thật.