Tại sao nhiều nhà sản xuất chip như Nvidia và AMD lại chọn GPU để đầu tư vào lĩnh vực máy học, thay vì CPU?

Tại sao công nghệ máy học lại cần tới GPU?

Bài viết dưới đây của nhà báo Michale Byrne tới từ trang tin Motherboard sẽ giải thích lý do tại sao công nghệ máy học lại cần tới GPU:

Vào mùa hè năm ngoái, tôi đã có dịp tham dự một hội nghị về GPU (bộ xử lý đồ họa) do hãng Nvidia tổ chức. Mặc dù có tiếng là một hội nghị game nhưng thực chất, chủ đề chính được mọi người thảo luận tại đây là GPU dành cho công nghệ máy học.

Không chỉ Nvidia, một nhà sản xuất chip khác là AMD đã vừa giới thiệu một dòng GPU mới nhắm vào công nghệ máy học tại sự kiện CES 2018 đang được diễn ra. Máy học (machine learning) là một khái niệm trong lĩnh vực trí tuệ nhân tạo nhằm nghiên cứu và xây dựng các kỹ thuật cho phép máy tính "học" tự động từ các dữ liệu có sẵn để giải quyết những vấn đề khác nhau. Nghe có vẻ không liên quan nhưng tại sao hết Nvidia cho tới AMD lại nhảy vào nghiên cứu GPU dành cho công nghệ máy học. Tại sao họ lại không chọn CPU. Câu trả lời chính là vì ma trận thống kê.

Tại sao công nghệ máy học lại cần tới GPU?

CEO Jen-Hsu Huang của Nvidia tại buổi giới thiệu GPU mới dành cho công nghệ máy học.

Đầu tiên, chúng ta cần phải hiểu rõ là không có phép thuật nào có thể khiến máy tính "học" được. Tất cả bí mật của công nghệ máy học là toán, chính xác hơn là toán học thống kê. Dựa trên một lượng lớn dữ liệu ban đầu, công nghệ máy học sẽ phân tích và giải thuật những phương trình phức tạp với rất nhiều công thức, sau đó tối ưu hóa chúng để đưa cho chúng ta những dự đoánchính xác và đáng tin cậy. Mặc dù nghe đơn giản nhưng đây thực sự là một lĩnh vực khó nhằn trong nghiên cứu trí tuệ nhân tạo.

Để dễ hiểu hơn về cách tối ưu hóa của công nghệ máy học, chúng ta hãy hình dung về mối liên hệ giữa nguyên nhân và kết quả. Ví dụ, ngoài trời đang lạnh. Tại sao chúng ta lại cảm thấy như vậy? Có nhiều thứ bên ngoài có thể cho chúng ta biết được về điều này như không khí xung quanh đang như thế nào, trời âm u hay có nắng, độ ẩm bao nhiêu và hiện tại đang là mùa nào. Nhờ vậy, kể cả khi không biết nhiệt độ là bao nhiêu, chúng ta hoàn toàn có thể dự đoán gần đúng về việc ngoài trời có đang lạnh hay không.

Tất nhiên, không phải dữ liệu nào cũng có độ quan trọng như nhau khi dự đoán về nhiệt độ bên ngoài. Ví dụ, dữ liệu về mùa có thể quan trọng gấp 10 lần bất cứ dữ liệu nào khác. Trong khi đó, dữ liệu về độ ẩm không khí chỉ quan trọng bằng 1/3 so với dữ liệu về độ cao. Vấn đề của máy học là chúng ta cần phải thực hiện được hàng loạt quan sát để lấy dữ liệu và xác định tầm quan trọng của từng dữ liệu cụ thể. Sau đó, chúng ta đem những dữ liệu này vào một phương trình được tối ưu hóa và đưa ra các dự đoán.

Phương trình được tối ưu hóa thường được gọi với cái tên là mô hình. Mô hình là cách để mô phỏng về mối liên hệ giữa các dữ liệu và đưa ra dự đoán. Vấn đề của toán trong công nghệ máy học là làm thế nào để tìm ra mô hình hoặc hiểu được tầm quan trọng của dữ liệu này so với dữ liệu khác.

Mỗi dữ liệu trong mô hình sẽ được gắn cho một trọng số thể hiện mức độ quan trọng của nó. Ví dụ như trong mô hình dưới đây, yếu tố nhiệt độ có tầm quan trọng lớn nhất, tiếp đến là mùa và áp lực không khí:

Tại sao công nghệ máy học lại cần tới GPU?

Để các trọng số có ý nghĩa trong việc so sánh, chúng ta phải thực hiện quan sát trong rất nhiều lần. Dự đoán về nhiệt độ bên ngoài chỉ là một công việc đơn giản. Một mô hình máy học thật sự cần tới hàng triệu quan sát khác nhau và phải chỉnh sửa trọng số nhiều lần để tối ưu hóa dự đoán.

Trong thực tế, không ai thực hiện mô hình máy học bằng cách quan sát từng dữ liệu một. Thay vào đó, chúng ta sẽ sử dụng ma trận thống kê với hàng ngang là nhóm các quan sát và hàng dọc là các quan sát riêng biệt (mùa, nhiệt độ, áp lực không khí…). Thông qua đó, máy tính có thể hiểu được mối liên hệ giữa các dữ liệu với nhau.

Công nghệ máy học không chỉ sử dụng một ma trận thống kê duy nhất. Thay vào đó, để có thể đạt hiệu quả cao nhất, chúng ta cần phải kết hợp nhiều ma trận lại với nhau. Việc tính toán và kết hợp một số lượng lớn ma trận rất phức tạp. Vì vậy, các kỹ sư phần mềm đã nghĩ ra cách thực hiện chúng trên bộ vi xử lý đồ họa, nơi mỗi ma trận được coi như là một điểm ảnh (pixel). Tính toán đa ma trận là lý do chính khiến công nghệ máy học cần tới GPU.

Vậy đâu là sự khác biệt giữa tính toán trên GPU và tính toán thông thường trên CPU. Đó chính là khả năng tính toán song song nhiều phép tính một lúc. Thông thường, việc tính toán trên CPU (bộ xử lý trung tâm) diễn ra theo cách tuần tự. Điều này có nghĩa là các tính toán phải phụ thuộc vào nhau và phép tính sau phải chờ cho tới khi phép tính trước được thực hiện xong. Nói cách khác, việc thêm nhiều nhân không thể giúp sức mạnh tính toán của CPU được tăng lên.

Tại sao công nghệ máy học lại cần tới GPU?

GPU 7nm Vega mới của AMD được ví như "quả bom" trong thị trường GPU dành cho công nghệ máy học.

Tuy nhiên, tính toán trong GPU lại khác hoàn toàn khi các phép tính được thực hiện song song với nhau. Vì vậy, việc thêm nhiều nhân giúp GPU có sức mạnh tính toán to lớn để thực hiện và kết hợp ma trận thống kê trong mô hình máy học. Đầu tư vào GPU là bước đi đúng đắn của các nhà sản xuất chip vì các vấn đề kỹ thuật trong giới hạn tính toán sẽ dễ giải quyết hơn so với CPU. Khi công nghệ máy học phát triển và cần nhiều sức mạnh tính toán hơn, tầm quan trọng của GPU sẽ càng được thể hiện rõ.

Nguyễn Long/Vn Review