Tại sao trí tuệ nhân tạo được thúc đẩy bởi Python mà không phải C++?

Tại sao trí tuệ nhân tạo được thúc đẩy bởi Python mà không phải C++?

Nguồn: Quora | Why is artificial intelligence driven by Python and not C++?

Travis Addair Thạc sĩ Khoa học Máy tính và Trí tuệ Nhân tạo, Đại học Stanford (Tốt nghiệp năm 2018)

Những người đang thực hiện nhiều nghiên cứu AI nhất không phải là các kỹ sư phần mềm thông thường; họ không quan tâm đến quản lý bộ nhớ, tham chiếu hằng số và đa kế thừa. Họ muốn các công cụ cho phép họ trực quan hóa dữ liệu, tạo ra một thí nghiệm chỉ với vài dòng mã, và tương tác/thay đổi dữ liệu và mô hình của họ mà không cần biên dịch lại và chạy lại cho mọi thay đổi nhỏ.

Python cho phép họ làm tất cả những điều này, C++ thì không.

Tuy nhiên, các mô hình học máy cũng sử dụng nhiều phần cứng cơ bản, như GPU cho các phép toán ma trận nhanh. Vì vậy, một ngôn ngữ như C hoặc C++ là cần thiết. Và thực tế, hầu hết các thư viện như Tensorflow mà cung cấp giao diện Python đều có các mô-đun con được viết bằng C thực hiện nhiều công việc quan trọng về hiệu suất.

Vì vậy, bạn có thể vừa có bánh vừa ăn bánh (you can have your cake and eat it too). Chúng ta có thể vừa tận dụng được tính biểu đạt và đơn giản của một ngôn ngữ như Python, vừa tận dụng được hiệu suất và khả năng tích hợp cấp thấp của một ngôn ngữ như C++.

Chú thích
Kiến trúc TensorFlow | TensorFlow

Jerry Coffin Kỹ sư phần mềm cao cấp (2019–hiện tại)

Điều này… phần lớn không chính xác, trừ khi bạn sử dụng một định nghĩa khá hẹp về “được thúc đẩy bởi”. (narrow definition of “driven by”)

Khi bạn làm các công việc liên quan đến AI với Python, phần lớn công việc thực sự được thực hiện trong các thư viện được viết bằng ngôn ngữ như C, C++, hoặc Fortran.

Phần được viết bằng Python chủ yếu xử lý những việc như tải dữ liệu từ tệp, đưa dữ liệu vào các hàm thư viện, lấy kết quả và lưu chúng vào tệp.

Python được sử dụng cho những phần đó chủ yếu vì nó hoạt động khá tốt cho những loại tác vụ như vậy. Hiệu suất không quá quan trọng, vì hầu hết các công việc “nặng nhọc” đều được thực hiện bởi mã thư viện. Nếu bạn muốn thay đổi quy trình xử lý của mình, thường sẽ dễ dàng hơn khi làm điều đó bằng Python so với C++ (vừa dễ viết lại mã hơn, vừa tránh được nhiều thời gian biên dịch), và miễn là bạn để (ít nhất là gần như tất cả) công việc thực sự cho các thư viện, việc sử dụng Python cho phần đó không gây tổn thất đáng kể để phải quan tâm nhiều.

Tóm lại…

Điều này hơi giống như khi bạn thấy một đội chuyển nhà có rất nhiều anh chàng to lớn vạm vỡ để khiêng các thùng đồ, và một cậu học sinh trung học gầy gò cầm một bảng kẹp nói rằng: “thùng 17 – cái đó đưa vào bếp… thùng 18 – cái đó đưa vào phòng ngủ chính…” và bạn hỏi “tại sao việc chuyển nhà lại được thúc đẩy bởi những cậu học sinh trung học gầy gò?”

Dieter R,


Bình luận

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *