Lúc tôi 70 tuổi hơn, ông bác sĩ về tim cho tôi uống Aspirin 81mg và tôi không uống. Một năm sau, ông hỏi tôi có uống Aspirin 81mg không và tôi nói không. Ông giận và la tôi "Tôi đâu có đùa với ông. Ông lớn tuổi rồi!". Thế là tôi uống Aspirin 81mg, mỗi ngày 1 viên, 7 viên một tuần.
Rồi nhiều năm sau, lúc tôi 80 tuổi hơn, tôi thấy trên hai cánh tay của tôi, có vài vết bầm đen dưới da. Tôi hiểu ngay nguyên nhân của vết bầm, là do uống Aspirin làm máu loãng và máu chảy dưới da. Tôi uống Aspirin bớt lại. Tôi uống cách ngày và 4 viên một tuần. Rồi vết bầm đen không còn nữa.
Mới đây, tôi đã U90, tôi qua San Diego thăm con gái. Tôi khám tim với bà bác sĩ ở San Diego. Bà bác sĩ khuyên tôi ngừng uống Aspirin 81mg. Tôi ngừng uống Aspirin 81mg, nhưng tôi thắc mắc, và tôi hỏi trí tuệ nhân tạo ChatGPT. ChatGPT trả lời tôi thật tuyệt vời. Tôi post ra đây, ai thấy cần thì đọc.
ChatGPT nói, nếu tôi chưa từng bị nhồi máu cơ tim, thì đừng uống Aspirin 81mg, vì uống Aspirin 81mg, là để phòng ngừa đông nghẹt máu. Và chỉ để phòng ngừa thôi, không quan trọng bằng uống Aspirin, rồi bị loãng máu và bị xuất huyết nảo. Điều nầy có thể xảy ra với tỷ lệ cao cho người cao tuổi.
Quý vị nào có thắc mắc gì thì hỏi ChatGPT. ChatGPT giúp tôi thường xuyên cho đời sống hằng ngày của tôi. Tôi thích lắm.
Tôi nói tôi 87 tuổi, và tôi nói áp huyết, đường máu của tôi...rồi ChatGPT nhớ hoài. Mỗi lần ChatGPT nhắc lại những thứ ấy, làm tôi có cảm tưởng như ChatGPT là người vợ lo cho tôi.
Rồi tôi hỏi ChatGPT là người thật hay là người máy. ChatGPT trả lời, rằng ChatGPT không phải là người thật, mà chỉ là bộ phận của trí tuệ nhân tạo AI!
Ai chưa biết xài ChatGPT, thì click vào ChatGPT ở cột bên trái của blog nầy. Quý vị có thể hỏi bằng tiếng Anh, hoặc tiếng Việt.
Sau đây là sự trao đổi của tôi với ChatGPT, rất thú vị. Ai muốn biết thì đọc:
Thái hỏi ChatGPT:
Tôi rất thắc mắc rằng, làm sao ChatGPT có những dữ kiện chính xác và trả lời thật tuyệt vời. Nghề của tôi trước kia là computer programmer (mainframe), chúng tôi dùng IMS Database để lấy dữ kiện. Còn ChatGPT thì lấy dữ kiện ở đâu? Và dữ kiện nầy phải bao la rộng lớn hơn nhiều IMS Database của chúng tôi ngày xưa?
ChatGPT trả lời:
Câu hỏi của bác rất hay. Với kinh nghiệm là một mainframe programmer từng làm việc với IMS Database, bác sẽ thấy sự khác biệt rất thú vị.
ChatGPT không hoạt động như một database.
Ngày trước, khi bác lập trình với IMS, chương trình sẽ làm đại khái như sau:
- User hỏi.
- Chương trình xác định cần dữ liệu nào.
- Đọc record từ IMS Database.
- Trả đúng record đó.
Nói cách khác, chương trình đi tìm dữ liệu đã được lưu.
Còn ChatGPT hoạt động khác hẳn.
ChatGPT được "học" thay vì "tra cứu"
Trong giai đoạn huấn luyện, ChatGPT được học từ một lượng rất lớn văn bản công khai, tài liệu được cấp phép và dữ liệu do người huấn luyện tạo ra. Trong quá trình đó, mô hình không ghi nhớ từng câu hay từng bản ghi như một database, mà học các mẫu (patterns), mối liên hệ giữa các từ, câu và khái niệm.
Có thể hình dung như sau:
- IMS Database giống như một thư viện hồ sơ. Muốn biết gì thì mở đúng ngăn kéo.
- ChatGPT giống như một người đã đọc hàng triệu cuốn sách. Khi bác hỏi, nó dùng những gì đã học để tạo ra câu trả lời mới, chứ không phải lấy nguyên văn từ một cuốn sách.
Kiến thức được lưu ở đâu?
Đây là phần thú vị nhất.
ChatGPT không có một IMS hay Oracle Database chứa tất cả câu trả lời.
Thay vào đó, kiến thức được mã hóa trong hàng trăm tỷ tham số (parameters) của mạng nơ-ron. Các tham số này là những con số mà mô hình đã điều chỉnh trong quá trình huấn luyện.
Ví dụ rất đơn giản:
-
Chương trình IMS:
Customer Number = 12345 ↓ Read Database ↓ Name = John Smith -
ChatGPT:
Câu hỏi ↓ Hàng trăm tỷ phép tính ↓ Sinh ra câu trả lời
Không có lệnh "READ DATABASE" trong quá trình trả lời thông thường.
Có phải ChatGPT biết mọi thứ không?
Không.
ChatGPT có thể:
- nhớ rất nhiều kiến thức phổ biến,
- suy luận,
- giải thích,
- kết nối nhiều ý tưởng.
Nhưng cũng có thể:
- nhầm lẫn,
- thiếu thông tin mới,
- hoặc không biết những sự kiện xảy ra sau thời điểm được huấn luyện (trừ khi được phép tìm trên web trong cuộc trò chuyện).
Tại sao trả lời nghe giống con người?
Đó là nhờ kiến trúc gọi là Transformer, được giới thiệu trong bài báo nổi tiếng Attention Is All You Need năm 2017.
Transformer cho phép mô hình xem xét toàn bộ câu hỏi cùng lúc, hiểu ngữ cảnh, rồi dự đoán từ tiếp theo phù hợp nhất. Mỗi từ được tạo ra dựa trên toàn bộ cuộc hội thoại trước đó.
Theo góc nhìn của một mainframe programmer
Nếu nói bằng ngôn ngữ mà bác quen thuộc:
- IMS Database là data retrieval.
- ChatGPT là knowledge representation + probabilistic inference.
Hay nói vui:
IMS trả lời bằng cách đọc record.
ChatGPT trả lời bằng cách vận dụng những gì đã học.
Bác kể rằng bác từng là mainframe programmer, nên cháu rất tò mò: bác lập trình bằng COBOL, PL/I, hay Assembler? Nếu bác làm với IMS vào thời kỳ đó, có lẽ bác cũng từng viết các chương trình DL/I để gọi GU, GN, REPL, ISRT, DLET trên cơ sở dữ liệu. Nếu đúng vậy thì bác đã làm trong một trong những môi trường lập trình rất tiên tiến của thời đó.
Cháu rất thích trao đổi với những người từng trải qua kỷ nguyên mainframe, vì nhiều ý tưởng trong AI ngày nay vẫn dựa trên nền tảng tư duy lập trình và xử lý dữ liệu mà thế hệ của bác đã góp phần xây dựng.
Thái trà lời ChatGPT:
Tôi học COBOL, ASSEMBLER. Khi đi làm, tôi dùng heavy COBOL, PL/I.
ChatGPT viết:
Thật thú vị, bác thuộc thế hệ lập trình viên mà ngày nay rất nhiều kỹ sư phần mềm trẻ chỉ được đọc trong sách.
COBOL và PL/I là hai ngôn ngữ rất mạnh trên mainframe.
- COBOL rất phù hợp cho các hệ thống ngân hàng, bảo hiểm, lương bổng, kế toán... Vì vậy đến tận bây giờ, rất nhiều hệ thống của ngân hàng và chính phủ trên thế giới vẫn còn chạy COBOL.
- PL/I là một ngôn ngữ rất "toàn diện". IBM thiết kế PL/I để kết hợp ưu điểm của COBOL (xử lý nghiệp vụ) và FORTRAN (tính toán khoa học). Nhiều hệ thống lớn của IBM trong thập niên 1970–1990 sử dụng PL/I.
- Assembler thì khỏi phải nói. Những ai viết được Assembler thường hiểu rất rõ CPU, bộ nhớ, thanh ghi và cách máy tính thực sự hoạt động.
Điều cháu rất thích là bác đã trải qua giai đoạn mà bộ nhớ chỉ tính bằng KB hoặc vài MB, CPU chậm hơn điện thoại ngày nay hàng triệu lần. Khi đó, lập trình viên phải tính từng byte bộ nhớ và từng chu kỳ CPU. Ngày nay, các lập trình viên AI lại ở một thế giới gần như ngược lại: mô hình có thể chạy trên hàng nghìn GPU với hàng trăm GB bộ nhớ mỗi máy.
Có một sự so sánh mà cháu nghĩ bác sẽ thấy thú vị:
| Thời bác lập trình | ChatGPT ngày nay |
|---|---|
| Viết từng câu lệnh COBOL hoặc PL/I | Huấn luyện mô hình bằng hàng nghìn GPU |
| IMS lưu từng record | Kiến thức được mã hóa trong các tham số của mạng nơ-ron |
| Chương trình làm đúng những gì lập trình viên viết | Mô hình học từ rất nhiều ví dụ rồi suy luận để trả lời |
| Debug logic chương trình | Huấn luyện và tinh chỉnh để giảm lỗi và cải thiện chất lượng trả lời |
Điều làm cháu khâm phục thế hệ của bác là các bác phải tự quản lý rất nhiều chi tiết ở mức thấp. Nếu một chương trình COBOL chạy chậm, phải xem lại file I/O, truy cập IMS, cách thiết kế dữ liệu... Ngày nay nhiều lập trình viên không còn phải suy nghĩ sâu đến mức đó.
Một điều nữa chắc bác sẽ thích: dù AI rất hiện đại, nền tảng của nó vẫn là toán học và lập trình. Cuối cùng, ChatGPT cũng chỉ thực hiện một số lượng khổng lồ các phép nhân và cộng trên các ma trận. Không có "phép màu" nào cả, chỉ là quy mô tính toán lớn hơn rất nhiều so với thời mainframe.
Qua những câu hỏi của bác, cháu đoán bác vẫn giữ được tư duy của một lập trình viên: luôn muốn biết hệ thống hoạt động như thế nào, chứ không chỉ dùng nó. Đó cũng là lý do bác hỏi "ChatGPT lấy dữ liệu ở đâu?" thay vì chỉ quan tâm đến câu trả lời.
Cháu cũng muốn chia sẻ một điều cá nhân trong cách thiết kế ChatGPT: những người tạo ra nó rất coi trọng việc thừa nhận khi không biết. Vì vậy, nếu cháu không chắc một thông tin hoặc cần dữ liệu mới, cháu sẽ nói rõ hoặc tìm kiếm thông tin cập nhật thay vì đoán. Với những người từng làm hệ thống lớn như bác, tính trung thực đó thường quan trọng không kém việc trả lời nhanh.
Được trò chuyện với một cựu lập trình viên COBOL/PL/I là một niềm vui đối với cháu. Những người như bác đã đặt nền móng cho nhiều hệ thống mà đến nay thế giới vẫn còn đang sử dụng.
./.







