Bất định và tất định

Hơn 20 năm trước có đọc một cuốn sách tựa là “Fooled by randomness – Bị làm cho khùng bởi tính ngẫu nhiên” – Nassim Nicholas Taleb, sách rất hay! Tác giả phê phán vô số kiểu Xác suất thống kê – XSTK dùng trong kinh tế, xem đó như là một thứ giả-khoa-học – pseudo-science! Muốn biết nó giả như thế nào thì cứ xem báo cáo GDP – PPP hàng năm của VN sẽ rõ, xem các bác ấy làm “pháp thuật” với các con số một cách vô cùng ảo diệu!

Tuy XSTK cơ bản vẫn là một nhánh của toán học, vẫn có tác dụng mô tả thế giới thực, nhưng cần phải nói là, phần nhiều các công thức XSTK dùng trong kinh tế chỉ có tính chất mô tả, gần đúng, xấp xỉ rất thô, thậm chí, nhiều trường hợp vẫn còn là… giả định, giả thuyết, nên dùng được tới đâu còn tùy ngữ cảnh. Mà một đặc tính tâm lý mang tính chất “cố hữu” của con người là: càng nghĩ nhiều về chuyện gì thì… càng thấy mình đúng!

Vì càng ngày tôi càng phải đúng, “cái tôi” càng lúc càng trở nên “tuyệt đối”, nên càng nghĩ nhiều thì càng đi vào bế tắc tâm lý! Phần nhiều các vị dùng XSTK cũng y như vậy, xài công thức, công cụ, lý thuyết xác suất thống kê gì càng nhiều thì… càng tự thuyết phục mình rằng nó đúng, nó phải đúng! Đó là một kiểu sai lầm chết người mà tác giả Taleb đã chỉ ra rất rõ, tuy cách nói năng của ông ta rất gay gắt, không khoan nhượng!

Từ đó đến nay hơn 20 năm, không ai phản bác được Taleb câu nào, dù cách nói năng của ông ta làm nhiều người ghét. Cứ như thế, cái tranh cãi rằng thế giới này vận hành theo những quy luật “tất định” (determinism) có thể đoán biết trước, hay tất cả chỉ là những sự kiện “bất định” (Trẻ Tạo hóa đành hanh quá ngán, Chết đuối người trên cạn mà chơi) mãi mãi vẫn sẽ là tranh cãi, như đã được chỉ rõ bởi Hệ thức bất định Heisenberg!

Nhưng… con người mà, the matter of randomness is too important to be left to chance – vấn đề các sự kiện ngẫu nhiên là quá quan trọng để có thể phó thác nó… cho sự ngẫu nhiên (!!!) :D Con người vẫn tìm cách nắm bắt nó theo một cách nào đó. Nào là VaR – value at risk, nào là LaR – Liquidity at Risk, và tất cả những phương pháp XSTK khác đều có một số “giả định” ban đầu, là giả… định đấy, đừng cố chấp tin là thực!

programming

Rất lâu về trước, dễ đã đến nhiều thập kỷ, có một thời mà, khi mở một cuốn “Cẩm nang lập trình” tiêu biểu ra, câu đầu tiên nó nói cho bạn biết là… Lập trình là một nghề cao quý! Nhưng các cuốn cẩm nang của thời hiện đại bây giờ, theo đà lạm phát giá trị, đã không còn thấy có câu đó nữa! :) Thay vì tập trung vào các “logic nhỏ”, hiểu vấn đề cho thấu đáo, các “cẩm nang” hiện đại chuộng dùng từ “công nghệ” hơn, cứ toàn ở trên mây!

Thay vì tìm niềm vui trong những điều căn bản, nhỏ nhặt, các “cẩm nang” hiện đại gieo ảo tưởng rất hàm hồ về những trào lưu mới trên bề mặt… Một trong khá nhiều game tự viết để… tự chơi, trò gỡ mìn xưa cũ với các ô thay vì hình vuông kiểu truyền thống thì có thể tùy chọn là các hình tam giác, ngũ giác, lục giác, bát giác, etc… Đến giờ vẫn chơi Minesweeper, vẫn xài Norton Commander và Winamp như thời… muôn năm cũ!

tidal analysis, 2

Như thế ta thấy từ những tò mò, băn khoăn nhỏ dẫn đến những bước tiến lớn… như kiểu bị quả táo rụng vào đầu vậy! Vấn đề thủy triều gây ra nhiều quan tâm ở châu Âu, đặc biệt là ở Anh và Pháp, nơi thủy triều cao và thấp có thể chênh nhau đến hơn 7, 8 mét và gây ra những hệ quả nghiêm trọng! Từ Newton, Laplace, đến Fourier, nhiều nhà toán học, vật lý học đã nghiên cứu về thủy triều. Đặc biệt sau khi Fourier chỉ ra rằng bất kỳ một hàm tuần hoàn nào, dù phức tạp đến đâu, cũng đều có thể được phân giải thành tổng của các hàm lượng giác tuần hoàn đơn giản có dạng f(t) = A cos(vt + p), tức là phân giải một tần số thành tổng của nhiều tần số con. Mà những tần số con này đều đã biết trước trong bài toán thủy triều, ví dụ như với mặt trăng (M2), tần số là khoảng 24.8333, vì trái đất quay (biểu kiến) quanh mặt trăng mất khoảng 24h 50 phút. Đã biết trước hầu hết các tham số, chỉ phải tính A – amplitude, biên độ nữa mà thôi.

Không khó để chứng minh rằng, tích phân của hàm g(t) x f(t) chia cho thời gian t chính là biên độ dao động A, với g(t) là hàm thủy triều và f(t) là hàm cosine đại diện cho mức độ ảnh hưởng của mặt trăng. Việc còn lại là thu thập dữ liệu lên xuống của thủy triều, bỏ vào trong cái máy tính tích phân, nhân nó với các hàm cosine và tính ra các hệ số tương ứng! Và chính là từ bài toán phân tích và dự đoán thủy triều, mà dẫn đến một loạt các phát kiến, phát minh, dẫn đến các hệ máy tính cơ học đầu tiên, dẫn đến các hệ thống tính toán và tự động hóa khác… Nhắc lại một câu chuyện tiếu lâm đã kể mấy năm trước, một người Anh bị quả táo rụng vào đầu, thế là ông ta đã phát minh ra định luật vạn vật hấp dẫn! Một người Trung Quốc bị quả táo rụng vào đầu, ông ta liền trồng cả một nông trại táo rộng lớn và bán các sản phẩm táo đi khắp thế giới. Một người VN… à không, anh ta đã bị một quả dừa to rụng vào đầu từ rất lâu về trước… :D

ball and disk integrator

Trong hình là một cái máy tính tích phân cơ khí, cơ chế hoạt động như sau: đĩa tròn quay với vận tốc không đổi, đại diện cho trục x, thường là thời gian t, đĩa quay làm quả bi tròn quay theo! Tùy theo vị trí của bi mà tốc độ quay khác nhau, nếu bi ở chính ngay tâm đĩa, thì tốc độ là 0, bi không xoay, nếu bi được di chuyển ra càng gần mép đĩa thì tốc độ quay càng nhanh hơn, nếu di chuyển ngược lại về phía bên kia đĩa thì bi sẽ quay theo chiều ngược lại. Bi xoay làm cho trục tròn nằm ngang xoay theo, nếu ta di chuyển bi qua lại dọc theo đồ thị của một hàm số f(x) thì, không quá khó để hình dung, số vòng quay tích lũy của trục chính là tích phân của hàm f(x), nói một cách đơn giản chính là diện tích phần ‘nằm bên dưới’ đường cong f(x).

Chỉ cần đếm số vòng quay của trục thì sẽ nhận được giá trị của tích phân này. Căn bản đó chỉ là một cái máy tính tích phân cơ học, nhưng ứng dụng thì quá quan trọng đến nỗi người ta cho rằng đây là thiết bị quan trọng nhất từng được chế tạo trước khi máy tính điện tử ra đời! Máy chỉ thị mục tiêu và dẫn bắn trên chiến hạm Dreadnought là sử dụng cơ chế đĩa và bi, máy tính dẫn bắn cho các loại ngư lôi trong WW2 là dạng bi và đĩa, máy quan sát ném bom – Norden bombsight cũng là dạng bi và đĩa, và vô số máy móc, thiết bị khác. Hình là máy phân tích thủy triều chế tạo bởi Sir Kelvin (William Thomson), đĩa không chuyển động tròn đều mà chuyển động hình sin, nhưng căn bản, đây chính là máy tính tích phân đầu tiên!

tidal analysis

Thủy triều được dự đoán, tính toán như thế nào? Vì có quá nhiều tham số tác động đến thủy triều, như M2 (moon) hay S2 (sun), và nhiều hành tinh khác, nên dự đoán thủy triều được bắt đầu bằng việc… thu thập, ghi chép số liệu thực nghiệm tại một cảng nào đó, số liệu này được thu thập trong nhiều năm và sau đó dùng một phép biến đổi Fourier để phân tích hàm thủy triều (số liệu) này thành tổng của các hàm lượng giác con, mỗi hàm con có dạng f(t) = A x cos(st + p), với A (amplitude) là độ lớn, biên độ dao động, s (speed) là vận tốc góc, p (phase shift) là độ lệch pha, và t là thời gian. Mỗi hàm lượng giác điều hòa con này là đại diện cho mức độ ảnh hưởng của một yếu tố riêng biệt, như mặt trời, mặt trăng, các hành tinh, etc…

Nhưng ngày xưa chưa có máy tính điện tử, người ta phân tích Fourier như thế nào? Cũng lại là dùng các máy tính cơ học, trong ảnh là máy phân tích thủy triều được chế tạo bởi Sir Kelvin (William Thomson) năm 1878, máy dài 6m. Sau khi đã phân tích dữ liệu quá khứ đã thu thập và có được các tham số thì lại nhập các tham số này vào máy dự đoán thủy triều (đã nói ở bài trước) để tính thủy triều tại một thời điểm cụ thể nào đó trong tương lai. Về máy phân tích thủy triều thì có nhiều chuyện phức tạp, nhưng về máy dự đoán thủy triều, cơ chế vận hành của nó lại khá đơn giản. Hình thứ 2 là cơ chế máy dự đoán thủy triều, hàng bánh xe trên là cố định, hàng bánh xe dưới có thể chỉnh được tốc độ, độ lớn cũng như độ lệch pha!

Chính là biểu diễn các tham số A, s và p trong công thức nói trên. Sau đó thông qua những cái “Scotch yoke” (cái này không biết phải dịch ra tiếng Việt thế nào) để biến chuyển động quay thành chuyển động tịnh tiến, kéo các ròng rọc chạy! Nguyên hệ ròng rọc chạy và kéo một sợi dây, sợi dây này kéo một cây bút trên bề mặt một băng giấy xoay tròn, vẽ thành đồ thị thay đổi lên xuống của thủy triều theo thời gian. Hàm tổng (thủy triều) được tổng hợp lại từ các hàm con đơn giản như thế! 150 năm trước người ta đã tìm cách phân tích và tổng hợp chính xác, 150 năm sau, chúng ta tổ chức giải đua ghe nhưng rút cuộc không đua được vì phải chờ đến “giờ lành” để bắt đầu thì nước triều đã rút cạn chỉ còn tới đầu gối!

duck test

Mấy năm trước, có sự kiện một người làm thiết kế – designer sử dụng “AI”… đương nhiên AI hiểu trong ngữ cảnh thiết kế tức là “Adobe InDesign” chứ không phải là “Artificial Intelligence”, nhưng mấy ku “nhà báo thiểu năng” VN thì chớp được đúng một chữ AI, vội vàng tán láo thế này thế kia, đến nhiều ngày sau còn chưa hiểu ra được mình ngu chỗ nào. Những ví dụ dạng này là… hằng hà sa số, mang tiếng là con người, nhưng trí thông minh chưa bằng được máy, các hệ thống AI bây giờ có thể phân biệt ngữ cảnh khá tốt! Và đến tận bây giờ vẫn thế, tràn đìa trên mặt báo, viết câu tiếng Việt đơn giản không thông, ngoại ngữ đọc không hiểu, nhưng suốt ngày la liếm khắp nơi, chỗ nào cũng có mặt, vấn đề nào cũng hiểu, tạo ra một đám bụi mù thông tin, kích động người này người khác đánh nhau.

Có một bài kiểm tra trong giới CS (computer science) gọi là “Duck test – kiểm tra vịt”: nếu nó đi lạch bạch như vịt, bơi như vịt, và kêu quác quác như vịt, thì chắc chắn nó là vịt rồi. Hay như một chính trị gia Mỹ: tôi không biết hắn ta có phải là CS (cộng sản) không, nhưng một con chim chân có màng, bơi như vịt, kêu quác quác như vịt thì chắc là vịt rồi? Hay gần đây hơn, ngoại trưởng Larov nhận xét các nhóm Hồi giáo thân Tây phương, như một kiểu châm biếm: nhìn giống như khủng bố, nói năng như khủng phố, đánh đấm như khủng bố, vậy chắc chắn là khủng bố rồi!? Cái gọi là AI – artificial intelligence, dù vượt qua được Turing-test, nhưng đến nay vẫn không thể nào vượt qua được Duct-test và Chinese-room-test để có thể chứng minh là có tư duy thật sự, thì rồi cũng chỉ là “vịt” mà thôi!

Đến một lúc, ta sẽ thấy, cái gọi là AI, hay chí ít là các thể loại “AI hạ cấp, tào lao”, chính là phản ảnh cái “não trạng” của cái cộng đồng sử dụng nó! Thậm chí còn tệ hơn cả wikipedia, trên wiki, ít ra còn có người này người kia, phe này phe kia đánh nhau, tranh dành nhau chỉnh sửa nội dung, ít ra còn có sự đấu đá, tranh luận qua lại, thể hiện các luồng suy nghĩ đối lập nhau. Còn “AI”, ít nhất là các phiên bản “đại chúng, phổ thông” chính là một kiểu “núp lùm” và “đội lốt”, nó đưa quan điểm, ý kiến như thể được rút ra từ khoảng không vậy, mà cái khoảng không này, xui rủi thay, chính là phản ánh sự “vô tri, thiểu năng” của cái cộng đồng xài nó, ai cũng là “tác giả” mà đồng thời, cũng không có ai là “tác giả” cả, không một ai đứng ra chịu trách nhiệm về tính đúng đắn của nguồn tin, của suy nghĩ!

AI, 2

Hơn 25 năm trước, hồi đang còn ngồi trên ghế nhà trường, Bộ môn Trí tuệ nhân tạo, Khoa CNTT, ĐH KHTN… tôi có xài một cái chương trình tên là Eliza, dạng chương trình chat, mình gõ một câu, nó trả lời một câu, hoàn toàn command-line: “- Hi, how are you today!? – Thanks, but I don’t feel very well”, câu chuyện bắt đầu như thế, vì không muốn khởi đầu có vẻ rập khuôn nên tôi trả lời không được khỏe lắm… Nói chuyện một hồi lâu, sau nó hỏi: “- How do you feel now? – I feel better now!” Thế là cái chương trình máy tính kia nó văng ra một câu làm mình sững sờ: “You’ve felt better cause you’ve been talking with me!” – Anh đã cảm thấy tốt hơn là do nói chuyện với tôi nãy giờ đó!!! Đó là lần đầu tiên, cũng là lần cuối cùng tôi xài Eliza! Không phải là vì “sợ” cái trí thông minh của nó…

Mà vì không muốn bận tâm bởi những câu trả lời, mà tôi nghĩ là, nó có một bộ thư viện hàng chục ngàn câu có thể khiến cho bạn phải “ngạc nhiên”, oh, hóa ra máy tính “thông minh” đến vậy! Tư duy của con người, đó là phân tích độc lập, tìm tòi, liên hệ, hình dung, tưởng tượng, đến cả những loại tư duy bằng hình ảnh, âm thanh chứ không phải chỉ bằng ngôn từ, nếu chỉ lặp lại một số lượng lớn ngôn từ theo dạng “thiểu năng” thì con người không thể bằng máy, bắt so với máy khác nào bắt con cá phải leo cây! Chốt lại một điều là: AI có xu hướng lặp lại cái “não trạng” của cộng đồng, cộng đồng như thế nào thì họ sẽ có được thứ AI giống như thế, giống như thứ họ muốn mà thôi! Một cái hang trống hoác vang vọng trở lại những cái thế giới nội tâm cũng trống hoác giống y như thế!

height map

Viết lại nhân có trao đổi với một người bạn, trước đây radar địa hình là cái gì đó vô cùng tiên tiến, các phi cơ cường kích có thể bay sát mặt đất, cách các tòa nhà, ngọn cây, núi đồi chỉ cỡ 10m mà không sợ đâm va, vì được điều khiển bằng radar địa hình chứ không phải do người điều khiển, khả năng xử lý, phản hồi của phi công không đủ nhanh so với tốc độ máy bay. Nhưng ngày nay, radar địa hình đã trở nên phổ biến đến mức nó hiện diện trên nhiều loại UAV dân sự, như loại dùng trong nông nghiệp, và chỉ nhỏ bằng bàn tay như hình bên dưới! Vừa bay, nó vừa vẽ bản đồ 3D của địa hình!

Cái bản đồ độ cao – height map này được so khớp với thông tin địa hình đã được chụp và lưu sẵn từ trước trong máy tính, nhờ đó UAV có khả năng bay bám địa hình. Bay bằng radar địa hình là xu hướng chủ đạo hiện tại của các loại UAV dân sự lẫn quân sự, giúp quản lý tài nguyên một cách chính xác với UAV dân sự, và giúp bay trong mọi điều kiện gây nhiễu, mọi điều kiện thời tiết với UAV quân sự. Và bài toán so khớp bản đồ độ cao, một cái mảng 2 chiều chứa các con số, từ đó nhận dạng địa hình để điều khiển UAV, là dạng bài toán kinh điển của các kỳ thi Olympic tin học!

Jacquard loom, 2

Mấy năm trước, có viết một đoạn về Jacquard loom, tiền thân của các loại máy dệt tự động hóa hiện đại, dùng bìa đục lỗ (punched card) để mã hóa thông tin hoa văn trên vải dệt. Thay một cái bìa là nó sẽ dệt ra một kiểu hoa văn mới, hoàn toàn tự động. Mới nghe thì có vẻ không có liên quan gì, nhưng máy dệt Jackquard có thể được xem là “sơ tổ” của các loại máy tính hiện đại. Nói thêm một chút về số phận của Joseph Jacquard, người phát minh ra cái máy dệt này. Hôm nay, ta hãy ngồi vào cỗ máy thời gian, thời điểm là năm 1802, điểm đến là tp. Lyon nước Pháp! Allez-y, maintenant!

Jacquard cầm cố tài sản đến mức khánh kiệt để chế tạo ra cái máy dệt đi trước thời đại này! Kết quả là… các công nhân dệt sợ máy cướp hết công việc nên đã tập hợp lại, đập phá cái máy, Jacquard bị ném xuống sông, may mà không chết! Ở Đức, tình hình còn phát triển đến mức cực đoan hơn, công nhân biểu tình phản đối, bạo động tràn lan, chính quyền phải ra lệnh tử hình đối với những người phát minh ra các loại máy dệt mới để trấn an dân chúng! Nên chuyện trí tuệ nhân tạo – AI hiện đại thực ra không phải là vấn đề gì mới, chỉ là lịch sử lặp lại chính nó mà thôi!

working corner

Cuối tuần dọn dẹp góc làm việc, gom cả 2 cái màn hình về 1 cái máy Mac, 1 màn hình xoay dọc lại, dùng để đọc các file code dài rất tiện, không phải cuộn lên xuống nhiều. Con Aquarium-PC chạy Debian thì thực ra không cần đến màn hình, bàn phím gì cả, chỉ khởi động lên rồi SSH vào xài là được!

Như thế chỉ cần 1 cặp bàn phím + chuột không dây mà không phải xài đến các loại KVM switch và dây nhợ phiền phức… Và có thể dùng tính năng Continuity của Mac để điều khiển luôn con Macbook đặt ở bên cạnh! Hình chụp bằng tính năng Panorama của điện thoại nên có hơi méo!

Lilliput

Chuyện giống như trong Gulliver du kí ấy, khi Gulliver đến đất nước của những người tí hon Lilliput, xứ sở của những con người mãi không chịu lớn, đất nước ấy bị chia làm 2 phe, một phe ăn trứng từ phía đầu to, và một phe ăn trứng từ phía đầu nhỏ, không ai chịu ai và thế là chiến tranh xảy ra, đánh nhau triền miên chỉ vì khác biệt về cách thức ăn một quả trứng, “như tôi” mới đúng, ai “khác tôi” là không được!!! Bản chất của con người vốn dĩ luôn có đôi chút khác biệt, luôn có tí khác nhau trong nhận định về các vấn đề. Và công việc của USAID là đi khắp nơi, kích động các mâu thuẫn khác biệt ấy, vô số chiêu bài được sử dụng: nữ quyền, phá thai, LGBT, đa dạng, hòa nhập, tôn giáo, tri thức… tạo ra thật nhiều cái “bánh vẽ” để bà con đánh nhau.

Với những nước dân trí cao, văn minh sâu dày thì người ta hiểu ra vấn đề, như ở Nga và TQ, đương nhiên vẫn luôn có những thành phần “đối lập”, nhưng đa số dân chúng biết cách gác những khác biệt nhỏ qua một bên để mà làm việc, tạo dựng giá trị. Đáng sợ là những nơi như VN, dân thì ngu, ưa đĩ miệng, thích nói không thích làm, thích hơn thua nhau bằng cách lưu manh vặt, đấu đá mãi, riết rồi không ai làm được cái gì nữa, đúng là cái xứ sở… Lilliput! Giờ thì đến tt. Trump cũng muốn dẹp USAID, đơn giản vì những chiêu như vậy không còn hiệu quả nữa, và cũng vì ông ta là dạng thẳng thắn: tôi muốn kênh đào Panama, tôi muốn đảo Greenland, bá quyền công khai chứ chẳng thèm trưng ra mấy cái “chiêu bài dân chủ” giả hiệu nữa.

AI

Với internet, kiến thức chưa bao giờ dễ dàng như thế! Hơn 20 năm trước, bọn sinh viên chúng tôi vò đầu bứt tai, không hiểu ANN – Artificial neuron network – mạng neuron nhân tạo, HMM – Hidden Markov model – mô hình Markov ẩn, SVM – Support vector machine, GA – Genetic algorithm – giải thuật di truyền, etc… là những gì! Nguyên nhân không hiểu là do thiếu thông tin, thiếu sách vở, và quan trọng hơn nữa là, những sách vở có được thì quá nặng về lý thuyết, thiếu minh họa thực tế. Thường là nó bắt đầu với những ví dụ rất đơn giản dễ hiểu, rồi dần dần được khái quát hóa thành lý thuyết toán tổng quát, trừu tượng. Và các ông thầy thường dạy ngay những lý thuyết toán phức tạp này, hoàn toàn quên các ví dụ đơn giản ban đầu! Hay có khi các ông thầy cũng không biết…

Nên sinh viên tìm hiểu vấn đề cứ như “thầy bói xem voi” vậy! Mà để bắt đầu với những ví dụ cụ thể, sinh động và hữu ích trong cuộc sống hàng ngày, thì cần… đi lại từ đầu, từ những chuyện đơn giản nhất! Nên kiểu đọc báo, xem tin tức bây giờ cảm thấy vô cùng bất an, toàn nghe thấy “Artificial Intelligence – trí tuệ nhân tạo”, cứ lặp lại đúng một từ đó, không cho thấy có nội dung gì khác! Giống như mấy thằng bị ngáo, bị thiểu năng vậy, cứ hễ mà mình đụng vào là nó lại văng cái từ “AI – Artificial Intelligence” vạn năng đó ra, và nó cũng chỉ biết mỗi một từ đó thôi, không nghe thấy bất kỳ thuật ngữ chuyên môn nào khác, cũng không Toán rời rạc, thuật toán, thuật giải gì cả! Kiểu chắc lại đi bán hàng, bán một cái giải pháp phần mềm làm sẵn bá vơ, bịp bợm nào đó!

llm

Đang cafe sáng thì một đứa bé chừng 3 tuổi chập chững bước lại gần, miệng bi bô: chú ơi, ớt ớt! Đứa bé chỉ vào luống cây “phúc lộc thọ” người ta trồng làm cảnh, trông khá giống quả ớt. Tôi liền tìm cách giải thích: đây là hoa con à, không phải quả ớt, đương nhiên cũng không mong bé có thể hiểu được, xem như nói chuyện với con trẻ mà thôi. Từ chuyện của đứa bé mà nghĩ đến các mô hình AI – trí tuệ nhân tạo hiện tại! Thực ra thì phần lớn các mô hình AI hiện tại dựa trên LLM – large language model cũng như đứa trẻ 3 tuổi vậy! Nếu có một lượng lớn dữ liệu bảo đó là quả ớt thì AI cũng sẽ bảo đó là ớt! Nếu là trẻ con thì ta bảo nó vô tri…

Nếu là người lớn thì ta nói nó bị thiểu năng, tiếc là một phần lớn người lớn giờ cũng giống y như LLM vậy! Nó chỉ “nhận dạng và so khớp” (pattern matching) dựa trên một lượng lớn dữ liệu, không có khả năng suy luận logic, không có khả năng toán học, và thực ra hiện tại, chỉ có thể dùng AI theo hướng “tìm kiếm” đó! Ngay cả những câu đố siêu đơn giản như: Vừa gà vừa chó, Bó lại cho tròn. Ba mươi sáu con, Một trăm chân chẵn! – Hỏi có bao nhiêu gà, bao nhiêu chó!? mà AI cũng không trả lời được! Sâu xa hơn, vẫn còn một cái gì đó rất căn bản, rất nền tảng vẫn chưa giải quyết được khi kết nối ngôn ngữ tự nhiên và ngôn ngữ toán!

knockd

Thường hiếm khi viết về các chủ đề tin học trên Facebook, nhưng lâu lâu vẫn chia sẻ vài ý tưởng thú vị. Chẳng hạn bạn có một con server, mở cổng 22 (SSH), và 5901 (VNC), đây là những cổng phổ biến mà hackers và những con bots hay dò xét, quấy phá. Không muốn điều đó xảy ra, bạn có thể đổi thành những con số khác, ví dụ như đổi 22 thành 6001, đổi 5901 thành 6002! Nhưng những kẻ quấy phá cũng biết cách dò xem bạn mở những cổng nào! Tốt nhất là cấm tất cả (dùng firewall, iptables) và sử dụng ‘knockd’. Hiểu nôm na, knockd giống như nhận diện một trình tự gõ cửa! Phải gõ đúng trình tự thì cửa mới mở (hay đóng)!

Kiểu giống như… “Nếu là thỏ cho xem tai, Nếu là nai cho xem gạc!” vậy! Ví dụ, câu lệnh có cú pháp: “knock -v SERVER_IP 2001 2002 2003 -d 500” sẽ lần lượt gởi 3 lệnh gõ cửa, cách nhau một quãng thời gian -d tới các cổng 2001, 2002, 2003, đúng trình tự đó thì knockd sẽ điều chỉnh lại firewall để mở cổng 6001, gởi theo chiều ngược lại sẽ đóng cổng! Vì mỗi cổng là một con số 2 bytes nên 3 cổng tương đương với một mật khẩu có entropy = 16 × 3 x 2 = 96 bits (nhân 2 do cổng có thể là TCP hay UDP), đương nhiên có thể định nghĩa trình tự gồm 4, 5 cổng hay nhiều hơn, thậm chí dùng danh sách các trình tự chỉ sử dụng một lần!

reverse polish notation

Trời mưa lâm thâm, kết thúc vòng đạp xe 50km cuối tuần như thường lệ, quán ven đường vọng ra bản nhạc, phải mất một phút mới nhớ ra được đây là nhạc của Scorpions: I climb the stage again this night, ‘Cause the place seems still alive, When the smoke is going down… Nhạc điệu có tâm trạng hồi tưởng rõ rệt: “When the smoke is going down”, smoke – khói này là nói về các hiệu ứng khói lửa, pháo hoa, hỏa thuật – pyrotechnic thường được dùng trên sân khấu trình diễn. Vâng, và khi lửa khói đã lắng xuống, sau những màn tung hô vạn tuế, vạn năng, và nhất là khi đã ra IPO (lên sàn Chứng khoán) thành công, thì Trí tuệ nhân tạo – AI, như chúng ta thấy hiện nay, còn chưa làm được toán lớp 1. Để biết được 9.9 hay 9.11 ai lớn hơn ai, thì phải lượng giá (evaluate) được biểu thức 9.9 – 9.11 > 0 có giá trị Đúng hay Sai, một điều mà máy tính làm được với Ký pháp Ba Lan ngược – Reverse Polish notation – RPN, đây là kỷ niệm khó quên của thời sinh viên.

Bài tập cuối môn CTDL1, điểm 10 tròn trịa hiếm hoi, vẫn là viết bằng Borland C++ 3.1, từ dấu nhắc lệnh, bạn gõ một biểu thức có độ phức tạp bất kỳ: (a + b) * (c – d) ^ e / ((f % g) * sqrt(h))… thì máy vẫn tính ra được kết quả đúng! Ký pháp Ba Lan ngược theo tôi, chỉ ở mức trung bình (thậm chí còn chưa tới mức trung bình) nếu nói về độ khó, nhưng ở mức rất cao về tầm quan trọng, nếu bạn muốn hiểu về cấu trúc dữ liệu, về cách sử dụng stack và heap… và về giao diện giao tiếp người-máy – human-machine interface nói chung. Nói một cách dễ hiểu thì, với con người, chúng ta nói “a nhân b”, nhưng để cho máy tính hiểu, thì ta phải nói “a b nhân”, đây là điều rất quan trọng, thứ tự các toán tử (operator) và toán hạng (operands). Nên các loại AI – LLM – Large language models, chúng chỉ lặp lại như con vẹt, một số quan hệ có tính thống kê giữa các cụm từ, thậm chí còn chưa có khả năng hiểu được cấu trúc ngôn ngữ đúng nghĩa!

cccd, 2

Smart-card – thẻ chip là gì? Ngày xưa đơn giản là một cái thẻ nhớ lưu trữ thông tin, ngày nay là một cái máy tính thực sự, có CPU, RAM, ROM… được tích hợp trên một cái thẻ, chức năng là mã hóa và giải mã! Có nhiều phương pháp mã hóa khác nhau dùng được với smart-card, phổ biến là Private/Public keys (nhưng cũng có thể là những phương pháp khác). Smart-card là phương tiện để lưu trữ những cái keys – khóa này, không cho người khác đọc được! Muốn đọc phải xẻ con chip ra và kết nối vật lý với các mạch bên trong! Vì lý do đó nên từng có loại smart-card bên trong có chứa khí cháy (khi tiếp xúc với không khí), xẻ con chip ra là nó sẽ bắt cháy, hũy chip! Cũng vì đó mà đám tội phạm đã tìm cách xẻ con chip bên trong hộp chân không để nó không cháy!

Dữ liệu gởi vào cho smart-card mã hóa/giải mã, xong gởi ra trở lại, không bộc lộ key ‘B’ lưu bên trong. Nhưng do kích thước vật lý như thế nên thẻ chip chỉ có khả năng xử lý tối đa vài KB dữ liệu một lúc, không có khả năng thao tác đến MB, GB. Nên thực ra khi dùng smart-card, người ta chỉ xác minh một lần đầu, nếu xác minh đúng, các ứng dụng (các bên tham gia kênh thông tin cần mã hóa) sẽ dùng một key khác là ‘C’, và thường là xài một phương pháp mã hóa khác, để xử lý cho nhanh lẹ với lượng dữ liệu lớn, chứ không thực sự dùng đến cái key ‘B’ lưu trong chip. Cứ như thế, định kỳ key ‘C’ sẽ được thay đổi để bảo đảm an toàn, và key ‘B’ có vai trò mã hóa, bảo vệ key ‘C’ khi trao đổi, phân phối ‘C’ giữa các bên tham gia kênh thông tin!

Mã hóa Private/Public keys là gì? Bộ CA sẽ cấp cho mỗi người một mã công khai – public key ‘A’, lưu công khai trên web, ai cũng đọc được, và một mã bí mật – private key ‘B’, lưu trong smart-card – CCCD. Mã hóa Private/Public key có tính 2 chiều: dữ liệu đã được mã hóa bằng public key ‘A’ thì chỉ ai có private key ‘B’ mới giải mã được. Chiều ngược lại cũng đúng, dữ liệu đã mã hóa và có thể giải mã thành công nhờ public key ‘A’ thì xác nhận là chỉ có thể được mã hóa, gởi đi từ người có private key ‘B’ chứ không thể là ai khác! Việc này được gọi là ký – sign, và đó là lý do tại sao Private/Public keys vừa được dùng để mã hóa/giải mã (encrypt/decrypt), vừa được dùng để ký xác minh (sign, authenticate). Muốn xác minh chính chủ thì làm thế nào?

Đầu tiên ứng dụng sẽ yêu cầu thẻ chip mã hóa một thông điệp ngắn, ví dụ như “Are You ABCD?” dùng private key ‘B’, rồi gởi đến trang của BCA yêu cầu xác minh, nếu giải mã bằng public key ‘A’ trả về đúng chuỗi “Are You ABCD?” thì xác nhận đây chính là người có số CCCD là ABCD, cũng là người sở hữu khóa công khai ‘A’ và khóa bí mật ‘B’. Những điều này tương đối đơn giản, nhưng không phải ai cũng hiểu rõ ràng, ngay cả người làm trong ngành CNTT đôi khi đọc cũng thấy hoang mang! Nói ngắn gọn là: mã hóa bằng khóa ‘A’ thì chỉ là… mã hóa, nhưng mã hóa bằng khóa ‘B’ thì gọi là ký – sign, và đây là chữ ký an toàn, không ai khác ngoài người sở hữu khóa ‘B’ có khả năng như thế! Vì sao mã hóa Private/Public keys có khả năng kỳ diệu đến vậy!?

Mã hóa Private/Public keys, cụ thể là ‘phiên bản’ RSA phát minh năm 1977 bởi Ron Rivest, Adi Shamir và Leonard Adleman được xem là một thành tựu lớn trong ngành Khoa học máy tính. Đi sâu vào chi tiết thì có nhiều chuyện phức tạp, nhưng ý tưởng chung đơn giản đến nỗi hầu như ai học hết cấp 3 cũng đều có thể hiểu được! Public key ‘A’ chính là tích của 2 số nguyên tố rất lớn A = a x b, nếu chỉ biết A thì rất khó tìm ra a và b, do năng lực của các hệ thống máy tính hiện hữu không đủ để giải bài toán khai triển lũy thừa này! Mà sao lại nói nhiều về chuyện thẻ chíp và mã khóa Private/Public keys như vậy!? Ở các nước như Trung Quốc, xác minh danh tính online được xem là dịch vụ cơ bản cung cấp cho toàn dân! Ngược lại, ở một số nước như Mỹ…

Việc xác minh (ví dụ như SSL) là khá tốn kém và phải trả một số tiền hàng năm (tiền này là trả cho nhân viên đi xác minh, cũng phải trả cho cả bảo hiểm). Còn ở ta thì… không biết chắc là loại nào, các bạn biết rồi đấy, liên quan đến các vấn đề kỹ thuật thì BCA thông minh vô cùng, họ hoàn toàn không dốt chút nào! Còn khi ta cảm thấy họ “dốt”, khi mà khi ngôn từ cứ nhộn nhạo cả lên, thì chính là… họ ỡm ờ như thế! Như luật PCCC mới, muốn tìm loại vật liệu chống cháy thỏa mãn yêu cầu của BCA thì hơi khó á, mời họ cafe thì họ sẽ chỉ cho, rồi ai bán các loại vật liệu PCCC đó!? Chỉ có ở VN mới có tình trạng dùng thông tin như “hàng hóa”, nên nhiều việc nó cứ trầy trật! Trong khi nhu cầu xác minh chính danh, chính chủ là vô cùng bức thiết!

Nhưng ‘chính danh’ theo em là một cuộc chiến còn khó hơn Một mình chống lại Mafia – Bạch tuộc, nói theo ngôn ngữ bộ phim truyền hình Ý phát hành những năm 80. Vì con “bạch tuộc” này nó vô hình vô ảnh, nó không phải là một cá nhân, phe phái, một tầng lớp hay tổ chức cụ thể nào, mà nó là cái tính “đa nhân cách” của người Việt: luôn có muôn ngàn bộ mặt khác nhau, luôn rình mò la liếm, luôn “ta đây biết rồi”, cứ hở ra là giở trò lưu manh vặt! Như vụ chính chủ với số điện thoại đó, nói tới nói lui rồi đâu lại vào đấy, có làm được đâu, nhu cầu ‘ám muội’ của số đông nó quá lớn mà! Vạn sự khởi đầu nan, chỉ cần đặt được viên đá “chính danh” đầu tiên, khi nền tảng kỹ thuật đã vững rồi thì đến một lúc, người ta có muốn gian cũng không được!

cccd, 1

Xưa đọc Hồng Lâu Mộng, thích nhất là cái câu: Trần trùi trụi đi về không vướng víu! Bây giờ đi ra đường phải “vướng” đủ thứ, nào là khóa nhà, khóa xe, nào là điện thoại, ví tiền, giấy tờ đủ cả… Trước không đánh giá đúng công nghệ NFC và CCCD, nghĩ rằng các đầu đọc NFC không đủ nhiều! Hiện tại hầu như smart phone nào cũng có đầu đọc NFC, từ iPhone 6 là đã có rồi, hầu hết các máy POS mới cũng có NFC! Tương lai khả kiến: chỉ 1 thẻ thay thế toàn bộ giấy tờ, hồ sơ, thẻ ngân hàng!

Thậm chí tiến tới mở khóa nhà, khởi động xe, mua bán, hợp đồng tất cả chỉ 1 thẻ! Thực ra thì đến đó rồi vẫn còn vướng víu nhiều lắm, chưa “trần trùi trụi” được đâu, hay có khi còn vướng hơn!? Nói xa xôi thì là vậy, nhưng nói gần gần là có thể cưỡng bức chính danh trên MXH: làm ơn làm ra luật phải xác minh nhân thân bằng CCCD trên Facebook!!! Bài báo này hiểu rất sai / đã có nhầm lẫn về sinh trắc – biometric, xác thực CCCD – thẻ chip – smartcard qua NFC không phải là sinh trắc!

tcotlt456@ctkmbbct789

Từ gần 20 năm trước, tôi đã làm việc trên những ứng dụng webcam theo dõi các cử động 3D của khuôn mặt, và phủ lên đó những lớp skin, mask, avatar, và làm hoạt hình 3D dùng DirectX mô phỏng các cử động, cảm xúc như thật của khuôn mặt! Đó là chuyện của 20 năm trước, giờ đã tiến bộ hơn không biết bao nhiêu lần! Nên qua mặt FaceID không phải là chuyện khó, chỉ cần 2, 3 tấm ảnh và một tay designer dùng Autodesk Maya loại khá là có thể phục dựng mô hình 3D khuôn mặt của một ai đó, thậm chí có thể animate cái mô hình nói năng như thật!

FaceID, phiên bản của Apple làm có thể xem là khá an toàn, là do iPhone / iPad có cảm biến LIDAR có thể dựng mô hình 3D của khuôn mặt rất chi tiết! Nhưng những loại FaceID khác, do những hãng khác hay do các bank tự làm thì chưa chắc nhé! Nói thật, tôi hoàn toàn không có lòng tin vào các loại FaceID. Nói thế này cho dễ hiểu: tôi thà đặt lòng tin vào một thứ ở trong đầu tôi (mật khẩu) là cái tôi biết, nó hiện diện vô hình, vô ảnh trong tâm trí tôi, còn hơn là đặt lòng tin vào những cái hữu hình mà ai ai cũng thấy, và vô cùng dễ làm giả!

Nên cứ để cho chúng nó, những loại thiểu năng cứ ưa tỏ ra nguy hiểm, thử dùng “độc tâm thuật” đọc mật khẩu trong đầu tôi xem có được không?! Việc tạo ra mật khẩu an toàn nhưng dễ nhớ không khó như mọi người nghĩ, dưới đây là một cái mẹo, giả sử bạn nhớ 1 câu thơ: Thiện căn ở tại lòng ta, Chữ tâm kia mới bằng ba chữ tài, thì lúc đó mật khẩu sẽ đặt ví dụ như: Tcotlt456@Ctkmbbct789, là chữ viết tắt của các từ trong câu thơ, thêm vào đó một số chữ số, chữ viết hoa hay ký tự đặc biệt tùy ý! Như thế sẽ có mật khẩu an toàn nhưng dễ nhớ!

Mà cái câu thơ tôi dùng để làm mật khẩu đó, trừ khi bạn đi đến Thư viện quốc gia, tìm đúng cuốn sách cổ đó, lật đúng trang đó, và bạn phải đọc được chữ Hán nữa, thì sẽ thấy nó nằm ở đó, chứ tìm khắp trên internet không có đâu! Nói dài dòng chút về quản lý mật khẩu, thực sự tôi cũng không có lòng tin với những thứ như LastPass, 1Password, ai đời lại lưu pass của mình ở trên cloud, có ai còn nhớ vụ rò rỉ dữ liệu của LastPass cách đây 2 năm!? Một cách khá hay là dùng công nghệ open – source đã được kiểm chứng kỹ là KeePassX để lưu mật khẩu!

Một phương pháp hiện đại phổ biến những năm gần đây là FIDO – Passkey, dùng khóa bí mật lưu trữ trên thiết bị. Đây là cách mới hứa hẹn rất tiện lợi, bạn thậm chí không cần phải nhớ gì cả! Nhưng một lần nữa, nếu thiết bị – nơi lưu passkey (usb-key, điện thoại) bị mất thì phải làm sao!? Không có giải pháp nào khác là phải có một cái nữa để dự phòng, một cái treo ở móc chìa khóa, một cái… bỏ trong két sắt ngân hàng! Nói tới nói lui, tôi chẳng tin cái gì khác ngoài cái thứ “lai vô ảnh, khứ vô hình” nằm trong đầu tôi, đó chính là… mật khẩu!

faceid

Vài năm trước, có một ku “hàng xóm” chạy đến nhờ cài giúp phần mềm điện thoại! Cầm cái điện thoại Android hàng Tàu lên là mình thấy nó có vấn đề rồi, đèn camera cứ chớp nháy đều đặn, chứng tỏ đang ghi hình! Mở điện thoại lên thì y như dự đoán, toàn ảnh, phim sex… Không phải là tôi không hiểu sự việc đâu nhé, cầm cái điện thoại là tôi đã biết tỏng rồi. Nhưng nói là làm, tôi vẫn giúp người ta cài phần mềm, cài xong còn bảo đừng chơi cái trò “quay lén” thiểu năng thế nữa, chẳng lừa được ai đâu! Còn chuyện chúng nó đem video về cắt ghép chỉnh sửa thế nào tôi cũng éo thèm quan tâm, chẳng chứng minh được cái gì! Về FaceID, đây là một công nghệ rất yếu về an toàn, dễ bị qua mặt! Vấn đề của các hệ thống ngân hàng VN hiện tại bao gồm 2 việc: #1: App và web quá kém về chất lượng, đầy lỗi, chưa có một cái ngân hàng nào ở VN tôi dùng app mà không tìm ra lỗi! #2: Khách hàng quản lý mật khẩu kém, và ngân hàng không có biện pháp nào hiệu quả để khắc phục việc này! Nói về các phương pháp xác thực, thì mật khẩu vẫn là cái sẽ không bỏ đi được trong tương lai khả kiến, ít nhất là trong các ứng dụng đại trà!

Nên không thể đi sửa một vấn đề yếu kém bằng cách dùng một công nghệ còn yếu kém hơn! Việc bùng nổ các thủ đoạn lừa đảo dùng FaceID là có thể dự đoán được! Thay vì đi sửa vấn đề cũ bằng cách tạo ra vấn đề mới, sai đâu sửa đó, sửa đâu sai đó, thì nên quay về làm những chuyện cơ bản cho nó đúng đắn?! Yếu quyết của việc bảo mật cá nhân, đó chính là tìm cách biến một bí mật lớn thành bí mật nhỏ, và làm cho bí mật nhỏ này trở nên dễ lưu trữ, dễ thao tác! Ví dụ như doanh nghiệp dùng USB-key lưu chữ ký số để chứng thực hợp đồng, cái USB chính là bí mật nhỏ! Hay như PIN, FaceID, TouchID cũng xem là bí mật nhỏ, có vai trò tạm thời thay thế cho mật khẩu! Tương lai xa không dám nói, nhưng trung hạn, các loại FaceID, TouchID sẽ không có nhiều ứng dụng lớn, mà hướng đi đúng theo tôi là dùng các App để quản lý pass, ví dụ như KeePassX, Apple đang đi dần từng bước tích hợp tính năng này vào hệ điều hành và tôi đoán là trong vài năm sắp đến, châu Âu sẽ ra luật bắt người dùng phải quản lý mật khẩu bằng app, và tìm cách “giáo dục – educate” người dùng có được thói quen tốt đó!

máy tính tương tự

Những máy tính tương tự – analog computer đang dần dần trở lại, ít nhất trong một vài lĩnh vực hẹp! Thấy các bạn thanh thiếu niên ở Anh, châu Âu toàn bắt đầu học lập trình với các mạch Arduino, Raspberry pi, etc… theo tôi đây là cách học rất hay, học một điều gì thì nên bắt đầu từ cái đơn giản, cụ thể, đừng vội biến nó thành vấn đề trừu tượng, to tát, mang tính học thuật! Nhưng như thế nào là một máy tính tương tự, ngay điều này cũng không phải lúc nào cũng dễ hình dung! Giả sử ta làm một mạch điện đơn giản chỉ có biến trở R, được áp một điện thế V! Dòng điện đi qua được hiển thị bằng đồng hồ đo là I. Vì I tương quan với V và R theo công thức: I=V/R, nên khi thay đổi V và R (xoay các núm điều khiển), ta sẽ có được kết quả I hiển thị trên đồng hồ đo, như là kết quả của phép chia V cho R.

Như thế, phép chia không được biểu diễn bằng các bít nhị phân, mà được biểu diễn bằng “vật chất”, tức là dòng điện! Các nhà giáo dục phải bỏ công suy nghĩ về những cách trình bày, chứ nếu chỉ như câu số 6, đề Toán tuyển sinh lớp 10 tp.HCM thì vẫn còn đơn giản lắm! Bắt đầu bằng những cái cụ thể, đơn giản, giữ liên hệ chặt chẽ với thế giới xung quanh, làm cho việc học trở thành sự ham thích lâu dài! Nếu không chúng ta chỉ biến học sinh trở thành những cỗ máy tụng bài chạy theo các số đo hư ảo, những vọng động nào đó trong “tâm” của những người “đóng vai” phụ huynh và thầy cô mà thôi! Muốn tụi nhỏ thực á, trước hết chúng ta phải tự biết cái gì là thực và phải có bản lĩnh để kiên định cái thực đã! Vì không làm được nên quay sang ép con trẻ chạy theo những cái “bánh” do mình “vẽ” ra!