Scale hệ thống hay tăng tốc độ xử lí có nên sử dụng Python?

  1. Trí tuệ nhân tạo

Hiện tại em đang muốn xây dựng một app gợi ý nhạc cho người dùng dựa vào user profile (user rating, time listening, from socia) và dựa vào ngữ cảnh (đang đi bộ, đang chạy, đang lái xe, đang ở nhà,…)

Em hiện chỉ có kinh nghiệm về Python. Nhưng sau này mình muốn scale hệ thống hay muốn tăng tốc độ xử lý thì có ổn không hay nên sử dụng 1 ngôn ngữ khác ạ?

Từ khóa: 

,

trí tuệ nhân tạo

Hiện nhiều thư viện ML cho Python như Theano hay Tensorflow có phần core được viết bằng C/C++ nên chạy rất nhanh, nên *có thể* Python sẽ đáp ứng được nhu cầu của bạn.

Khi bạn viết app bạn cũng có thể dựng phần training/evaluating models bằng Python thành một microservice, còn các phần khác cần high performance thì bạn dùng một ngôn ngữ khác phù hợp hơn.

Trả lời

Hiện nhiều thư viện ML cho Python như Theano hay Tensorflow có phần core được viết bằng C/C++ nên chạy rất nhanh, nên *có thể* Python sẽ đáp ứng được nhu cầu của bạn.

Khi bạn viết app bạn cũng có thể dựng phần training/evaluating models bằng Python thành một microservice, còn các phần khác cần high performance thì bạn dùng một ngôn ngữ khác phù hợp hơn.

Scale out phụ thuộc vào kiến trúc hệ thống hơn là ngôn ngữ bạn nhé. Scale up thì ngôn ngữ lập trình ảnh hưởng rất nhiều, do các ngôn ngữ cấp thấp có khả năng tận dụng hết mức hiệu năng của phần cứng.
Hãy thử tưởng tượng nhé, giả sử bạn cần vận chuyển gạch từ vị trí A đến B với hiệu năng yêu cầu là 100 viên/phút.
  • Scale out: Bạn cần tổ chức 1 luồng làm việc sao cho có thể sử dụng 10-20 người cùng bê vác để hiệu quả (vd: chuyền tay nhau)
  • Scale up: là việc bạn cần sử dụng 1 người sao cho họ có thể bê vác được nhiều nhất. Có thể trang bị thêm đồ nghề, máy móc, dụng cụ để tối ưu hoá sức lao động.