5 ngôn ngữ lập trình tốt nhất được dùng trong phát triển trí tuệ nhân tạo

Linh Le

The 5 best programming languages for AI development

Bạn phân vân không biết nên chọn ngôn ngữ lập trình nào cho dự án học máy (machine learning) hoặc học sâu (deep learning)? Sau đây là những lựa chọn tốt nhất dành cho bạn

AI (trí tuệ nhân tạo) mở ra một thế giới đầy triển vọng cho các nhà phát triển ứng dụng. Bằng cách tận dụng tính năng học máy hoặc học sâu, bạn có thể tạo hồ sơ người dùng, cá nhân hóa và đề xuất hiệu quả hơn hoặc kết hợp tìm kiếm thông minh hơn, giao diện giọng nói hoặc hỗ trợ thông minh hoặc cải thiện ứng dụng của bạn theo bất kỳ cách nào khác. Bạn thậm chí còn có thể xây dựng các ứng dụng để xem, nghe và tương tác.

Vậy thì bạn nên học ngôn ngữ lập trình nào để đánh giá độ sâu (depth) của AI? Chắc chắn bạn sẽ cần một ngôn ngữ với nhiều thư viện hỗ trợ học máy và học sâu tốt. Nhưng ngoài ra, bạn cũng sẽ cần đến những đặc điểm như hiệu suất thời gian chạy tốt, hỗ trợ công cụ tốt, một cộng đồng lập trình viên lớn và một hệ sinh thái hoạt động tốt gồm các gói hỗ trợ. Và bạn có rất nhiều quyền lựa chọn.

Dưới đây là năm ngôn ngữ lập trình tốt nhất để phát triển AI, cùng với ba đề cập quan trọng khác. Một số ngôn ngữ đang trên đà phát triển, trong khi một số khác dường như đang có dấu hiệu giảm phong độ. Chỉ vài tháng nữa thôi, có thể bảng xếp hạng này sẽ lại thay đổi.

1. Python

Dẫn đầu dánh sách chính là Python. Quả thực không có ngôn ngữ lập trình nào thích hợp hơn ở vị trí số 1 này. Dù vẫn còn một số rắc rối như vấn đề về khoảng trắng, sự khác biệt lớn giữa Python 2.x và Python 3.x, năm hệ thống đóng gói khác nhau đều đã bị hỏng theo nhiều cách khác nhau nhưng nếu bạn đang làm công việc liên quan đến AI thì gần như chắc chắn bạn sẽ sử dụng Python.

Python có khá nhiều thư viện có sẵn mà các ngôn ngữ khác không có. Nếu NumPy đã trở nên phổ biến đến mức nó gần như là một API tiêu chuẩn cho các hoạt động tensor thì Pandas đem đến các khung dữ liệu mạnh mẽ và linh hoạt của R cho Python. Xử lý ngôn ngữ tự nhiên (NLP) có bộ công cụ lâu đời NLTK và một thư viện SpaCy cực kỳ nhanh. Học máy thì có thư viện được xem là chuẩn không cần chỉnh Scikit-learn. Và khi nói đến học sâu thì tất cả các thư viện hiện tại (TensorFlowPyTorchChainerApache MXNetTheano,…) đều là các dự án có hiệu quả đầu tiên của Python.

Nếu bạn đang đọc bài nghiên cứu về học sâu tiên tiến hiện nay trên arXiv, thì gần như chắc chắn bạn sẽ tìm thấy mã nguồn được viết bằng Python. Tiếp theo đólà  những phần khác của hệ sinh thái Python. Trong khi IPython đã trở thành công cụ Jupyter Notebook, và dần dần ít tập trung vào Python như trước nhưng bạn vẫn sẽ thấy rằng hầu hết người dùng Jupyter Notebook và hầu hết các sổ ghi chép được chia sẻ trực tuyến, đều sử dụng Python.

Không còn tranh cãi gì nữa, Python chính là ngôn ngữ đi đầu trong nghiên cứu AI, một ngôn ngữ dành cho hầu như tất cả bộ khung học máy và học sâu, và là ngôn ngữ chính trong thế giới AI. Vì những lý do này, Python xứng đáng là ngôn ngữ tiên phong trong số các ngôn ngữ lập trình AI, mặc dù thực tế là vẫn còn có người ngày ngày than phiền về vấn đề khoảng trắng.

2. Java và những người bạn 

Gia đình ngôn ngữ JVM (gồm có Java, Scala, Kotlin, Clojure,…) cũng là một lựa chọn tuyệt vời để phát triển ứng dụng AI. Có rất nhiều thư viện có sẵn cho tất cả các phần của đường ống (pipeline), cho dù đó là xử lý ngôn ngữ tự nhiên (CoreNLP), hoạt động tensor (ND4J), hay ngăn xếp học sâu tăng tốc đầy đủ GPU (DL4J). Ngoài ra, bạn có thể dễ dàng truy cập vào các nền tảng dữ liệu lớn như  Apache Spark và Apache Hadoop.

Java là ngôn ngữ chung của hầu hết các doanh nghiệp, và với các cấu trúc ngôn ngữ mới có sẵn trong Java 8 và Java 9, việc viết mã Java không phải còn là trải nghiệm mà nhiều người trong chúng ta từng ngán ngẫm. Viết một ứng dụng AI bằng Java có thể gây nhàm chán, nhưng nó có thể giúp giải quyết được công việc — và bạn có thể sử dụng tất cả cơ sở hạ tầng Java hiện có của bạn để thực hiện phát triển, triển khai và giám sát.

3. C/C++

C/C++ dường như không phải là lựa chọn đầu tiên khi phát triển một ứng dụng AI, nhưng nếu bạn đang làm việc trong một môi trường nhúng, và bạn không thể trả phí cho Máy ảo Java hoặc trình thông dịch Python thì lúc này C/C++ chính là giải pháp dành cho bạn. Khi đã cố gắng vất vả đến từng bit hiệu suất cuối cùng của hệ thống, thì bạn cần phải quay trở lại thế giới đáng sợ của con trỏ.

Rất may, C/C++ hiện đại đã dễ viết hơn (đây là nhận xét thật lòng!). Bạn có thể lựa chọn phương pháp tiếp cận. Bạn có thể đi xuống dưới cùng của ngăn xếp, sử dụng các thư viện như CUDA để viết mã của riêng bạn và cho chạy trực tiếp trên GPU của bạn hoặc có thể sử dụng TensorFlow hoặc Caffe để có quyền truy cập vào các API cấp cao linh hoạt. Việc này cũng cho phép bạn nhập các mô hình mà các nhà khoa học dữ liệu của bạn có thể đã xây dựng với Python và sau đó đưa vào hoạt động với tất cả tốc độ mà C/C++ cung cấp.

Hãy cùng chờ xem Rust sẽ làm được những gì trong năm tới. Kết hợp tốc độ của C/C++ với an toàn cho kiểu và dữ liệu, Rust là một lựa chọn tuyệt vời để đạt được hiệu suất hoạt động mà không gây ra các vấn đề về bảo mật. Ngoài ra TensorFlow binding cũng đã sẵn sàng để sử dụng.

4. JavaScript

JavaScript? Vâng, gần đây Google đã phát hành TensorFlow.js, một thư viện tăng tốc WebGL cho phép bạn đào tạo và chạy các mô hình học máy trong trình duyệt web của bạn. Nó cũng bao gồm Keras API và khả năng tải và sử dụng các mô hình được đào tạo trong TensorFlow thông thường. Điều này có thể thu hút một lượng lớn các nhà phát triển đến với thế giới AI. Mặc dù JavaScript hiện không có quyền truy cập vào thư viện học máy như các ngôn ngữ khác được liệt kê ở đây, nhưng các nhà phát triển sẽ thêm mạng lưới nơron vào các trang web của họ với nonchalance gần như giống nhau khi họ thêm thành phần React hoặc thuộc tính CSS một cách đầy uy lực và mạnh mẽ.

TensorFlow.js vẫn còn rất sơ khai và hiện đang hoạt động trong trình duyệt nhưng không hoạt động trong Node.js. Nó cũng chưa triển khai đầy đủ API TensorFlow. Tuy nhiên, hy vọng cả hai vấn đề đó sẽ được giải quyết chủ yếu vào cuối năm 2018 và thế giới sẽ chứng kiến sự đổ bộ của AI ngay sau đó.

5. R

R đứng ở vị trí cuối cùng ở top 5 và đang có xu hướng tiếp tục đi xuống. R là ngôn ngữ mà các nhà khoa học dữ liệu yêu thích. Tuy nhiên, các lập trình viên thì lại cho rằng R gây cho họ sự lúng túng trong lần đầu tiên làm quen do cách tiếp cận trung tâm dữ liệu của nó. Nếu bạn có một nhóm các nhà phát triển đã sử dụng ngôn ngữ R thành thạo, thì có thể sử dụng tích hợp với TensorFlowKeras, hoặc H2O để nghiên cứu, tạo mẫu và thử nghiệm, nhưng vẫn còn chút gì ngần ngại trong việc giới thiệu ngôn ngữ R cho mọi người sử dụng do những e ngại về hiệu suất và hoạt động của nó. Trong khi bạn có thể viết mã R hiệu suất cao có thể triển khai trên các máy chủ đang làm việc, việc lấy bản chạy thử bằng R đó và mã hóa lại bằng Java hoặc Python chắc chắn là dễ dàng hơn.

Chia sẻ bài viết ngay

Nguồn bài viết : https://www.infoworld.com