Cách đây hơn 1 tuần mình có đọc được post này của bạn Long Nguyễn Xuân trên Quora Việt Nam. Cái này thì mình cũng biết nhưng không giải thích hay và đơn giản như Long. Cho nên mình có xin phép bạn ấy chia sẻ bài viết lên Share Ngay – đương nhiên Long đã đồng ý.
Để trả lời cho câu hỏi: “Vì sao bọn làm AI toàn dùng Python thay vì C++?” thì a/e cần hiểu cốt lõi vấn đề. Câu trả lời mình nghĩ sẽ làm nhiều bạn ngạc nhiên đấy:
À thì phần lớn người làm AI không-phải-kỹ-sư-phần-mềm, họ không cần quan tâm về quản lý bộ nhớ, tham biến/tham trị, và đa kế thừa. Họ cần một công cụ giúp họ trực quan hóa dữ liệu (visualize data), kết nối các thí nghiệm với vài dòng code, và tương tác/thay đổi data và mô hình mà không cần biên tập lại (recomplile) và chạy lại toàn bộ hệ thống mỗi lần thay đổi xíu xiu.
Python đáp ứng tất cả những yêu cầu trên, C++ thì không.
Tuy vậy, các mô hình học máy (machine learning model) yêu cầu phần cứng rất cao, ví dụ như GPU đối với các tác vụ tính toán dạng ma trận, (matrix operations). Để xử lý nó, đương nhiên cần các ngôn ngữ bậc thấp như là C/C++. Và thực ra, phần lớn thư viện như Tensorflow cung cấp các giao diện Python (Python interface) tuy nhiên, các mô-đun con (submodule) được viết bằng C để đảm bảo vấn đề hiệu suất.
Vậy nên, bạn có thể tự làm bánh cho mình rồi tự thưởng thức luôn (OP chơi chữ, vì dính tới C/C++ là dính tới câu chuyện build-it-yourself, tự nướng cái bánh của mình đi). Chúng ta có thể tận dụng lợi thế của sự dễ dàng và đơn giản của Python, và hiệu suất & khả năng tương tác với các phần cứng ở tầng thấp (low level intergration) của C++.
Footnotes
Nguồn: Quora dịch bởi Long Nguyễn Xuân