Thứ Tư, tháng 1 06, 2016

HPC (1) - Tôi dựng máy tính HPC thế nào? Big data - Machine Learning - DeepLearning

Từ một post trên facebook về hiệu ứng ảnh nghệ thuật của cậu em Nam Vũ, tôi lọ mọ mở rộng hướng sử dụng và nghiên cứu trong việc sử dụng mạng thần kinh neuron network. Xuất phát điểm từ con số 0 tròn trĩnh, tôi điềm nhiên mở rộng nghiên cứu và nhận ra rằng năng suất bị hạn chế khi chỉ gói gọn sử dụng phần cứng hiện tại (một con MacPro cũ kỹ). Vì thế, cũng như bao nhà nghiên cứu khác, tôi bắt đầu việc tự đầu tư học lý thuyết về Deep Learning và để có thể đẩy nhanh quá trình học tập và thử -sai của mình, tôi quyết định bỏ tiền túi dựng lại nền tảng phần cứng của riêng mình.
Vậy trước hết, hãy tìm hiểu qua về Deep Learning. Deep Learning (DL) là gì?
Nói một cách ngắn gọn, DL là một lĩnh vực mới trong nghiên cứu về Học Máy (ML: Machine Learning), với mục tiêu đưa ML tiến gần hơn nữa với bản chất của trí tuệ nhân tạo (AI: Artificial Intelligence). Phương châm cơ bản của DL là mô phỏng lại hoạt động của não bộ thành thuật toán liên quan đến tiếp thu đối tượng quan sát qua nhiều tầng biểu đạt gồm cả cụ thể và trừu tượng tiếp đó sẽ làm rõ nghĩa dần các dữ liệu đó. Bản chất nở rộ của DL ngày nay khi DL đã có thể đưa ra kết quả với độ chính xác cao do "học" nguồn dữ liệu khổng lồ (Big Data) và năng lực xứ lý mạnh của máy tính.
Cụ thể hơn, trong lĩnh vực nhận dạng và tái tạo hình ảnh thì lý thuyết lẫn ứng dụng DL được minh chứng rõ rệt nhất. Cho máy một hình ảnh chụp được, nó sẽ phải tự DL để có thể phân tách và nhận diện dữ liệu từng phần trên hình ảnh. Một chiều là chia ma trận để trị, chiều kia là trừu tượng hoá để sắp xếp lớp (layer) và phân loại. Như thế, nếu có thể xử lý song song từng việc nhỏ trên mỗi bộ vi xử lý sẽ giúp đẩy nhanh quá trình này. Các CPU của Intel hiện thời, có thể có 2 lõi (Dual Core) đến 4 lõi (Quadcore) rồi một số có thể lên đến 8 lõi, 12 lõi hay những loại chuyên biệt thì tầm max phổ thông hiện tại là 18 lõi - 36 luông (Xeon 2699v3 với giá lên tới tầm 5000 USD mà cũng không dễ dàng mua được). Tự nhiên, tìm kiếm sức mạnh xử lý song song trở nên cấp thiết đối với phần cứng. Trong cuộc chiến đếm core-lõi phục vụ xử lý song song ấy, Nvidia, nhà sản xuất card đồ hoạ máy tính lớn đã nhanh chóng nắm bắt được cơ hội này để tiên phong, đồng thời, các nhà nghiên cứu cũng nhận ra tiềm năng khổng lồ của các card đồ hoạ hiện tại để tham gia vào Deep Learning này. Hiển nhiên, số lõi xử lý ảnh và tính toán trong các card đồ hoạ giờ vượt xa gấp cả trăm, nghìn lần so với CPU Intel. Nvidia GTX Titan X, card đồ hoạ phổ thông hàng đầu cho game thủ hiện tại, cũng chứa đến 3072 lõi xử lý chạy song song, gấp cả nghìn lần một bộ xử lý intel dual core thông thường. Mỗi lõi, hiện giờ chỉ để xử lý một vùng điểm hiển thị trên màn hình với thông tin màu sắc, đổ bóng, etc mà thôi thì nay có thể chuyển hoá dùng để tính toán nhiều thứ khác nữa khi được viết thêm các phần mềm thích hợp điều khiển. Vì thế, đùng một cái, người dùng thông thường, đặc biệt các game thủ đang có trong tay những cỗ máy nhỏ nhưng rất có võ, công lực đủ lớn nếu biết cách chuyển hướng sử dụng. Tên gọi các siêu tính toán HPC (High Performance Computing PC) trở nên dễ dàng tiếp cận với công chúng cộng đồng nghiên cứu gia hơn bao giờ hết, chứ không còn nhất thiết phải của một ông lớn CNTT nào nữa cả. Nói tới đây, chỉ riêng về lựa chọn card đồ hoạ nào cho hệ thống nghiên cứu học tập DL của mình với tiêu chí ngon - bổ - rẻ thì tôi cũng đã phải đọc đến hàng tá các loại tài liệu phân tích đánh giá. Vậy mà vẫn không tránh khỏi một số sai lầm cốt yếu mà tôi sẽ chia sẻ thêm sau.
Nếu dành 2 phút để xem 2 nhà khoa học nổi tiếng dẫn chương trình Mythbuster trên Discovery sau đây demo sự khác biệt về xử lý của CPU và GPU thì các bạn sẽ thấy rõ ngay.
Một chiếc iphone trong lòng bàn tay người dùng ngày nay có sức mạnh xử lý chẳng kém gì siêu máy tính vài thập kỷ trước. Điện toán cá nhân ngày càng mạnh, càng rẻ và dễ tiếp cận, việc đòi hỏi năng lực xử lý thông tin nhiều, nhanh càng cấp thiết. Chúng ta đã bắt đầu vào những năm cuối của quá trình hậu máy tính, với dự doán đến năm 2020 có thể có trên 10 tỷ thiết bị điện toán cầm tay kết nối internet. Sự kết nối tạo ra một lượng dữ liệu không lồ và khả năng tính toán cực lớn linh động và thay đổi từng ngày, từng giờ, từng phút, từng giây (ví như dự đoán giá cả cổ phiếu, thị trường) Vì thế, không thể lập trình thông thường được nữa, nó phải làm theo các thuật toán đặc biệt sao cho các thuật toán ấy sẽ phải tự lập trình lại bản thân và tự biến đổi bản thân chính chương trình ban đầu để thích ứng, kiểu máy tự học được. Thuật toán kiểu thế gọi cho hoành là Machine Learning.
mobile_internet_growth

ML cũng không phải cái gì mới. Ứng dụng đầu tiên của nó có lẽ là phần mềm tự học đánh cờ vua từ thời mainframe. Sau khi tự học tầm vài trăm ván cờ, nó sẽ có đủ kinh nghiệm để đánh bại các loại chơi cờ lìu tìu như lập trình viên bọn tôi. Năm 1997, thì IBM Deep Blue đã thắng kiện tướng cờ vua thế giới Garry Kasparov. Từ đó, không ai còn đề cập  đến chuyện chơi cờ quạt gì với máy tính nữa. Deep Blue lúc đó đứng thứ 259 siêu máy tính trên thế giới, khả năng xử lý 11.38 GFLOPS. Trong khi chỉ mỗi cái card đồ hoạ GTX 980 mới mua nâng cấp máy mà tôi đang gõ bài này đã có thể xử lý tầm trên 5000 GFLOPS rồi. Đơn giản vì nó có tới 2048 nhân xử lý.
GTX980
Cái mobilephone còn không rời tay được chốc lát thì quanh ta tầm này chẳng còn gì mà không dính đến nhu cầu điện toán nữa đâu. Mà làm gì có nhu cầu điện toán nào thời nay mà không loay xoay với ML nữa cả. Kiểu như:
  • Tối ưu tập đối tượng khách hàng cho quảng cáo sản phẩm mới.
  • Diệt và phòng chống virus máy tính (cũng phải học pattern mà phòng ngừa)
  • Các trò định hướng, dự đoán, từ xu thế giá cả, cổ phiếu, thị trường, thời tiết, giá ngoại tệ, vé máy bay, chi phí bảo hiểm.
  • Xác định xu hướng sở thích giới trẻ, hội già, nhóm người sống ở bán cầu Đông, bán cầu Tây (facebook)gợi ý mua thêm sách, thêm đồ (amazon, ebay) hay nêu dữ liệu quan tâm có thể liên quan khi tìm kiếm (Google)
  • Nhận biết khuôn mặt, nhận biết giọng nói (hình sự vcd), nhận biết vật thể trên đường (xe tự lái)
  • Phát triển thuốc men dược phẩm, tổng hợp hoá học, tính toán mô phỏng, chẩn đoán phòng ngừa ung thư.
  • Tính toán bài tập thể dục, calories tiêu thụ cần thiết và đặt các mục tiêu mới rèn luyện sức khoẻ mới.
  • Tính toán dẫn đường, chỉ dẫn giao thông, tình trạng giao thông đi lại theo thời gian thực.
Cùng với đó, sự nở rộ phong trào IoT (Internet of Things), QuantifiedSelf, càng thúc đẩy nhanh, nhiều, sâu và rộng quá trình số hoá mọi sự vật hiện tượng xung quanh hoạt động của con người, khiến cho ML, DL, AI là nhu cầu bắt buộc hiện diện thường nhật trong đời sống con người.
Tiếp cận với GPU để học cách thức hoạt đông DL ở trên như một newbie, tôi đã lựa chọn nền tảng HPC của mình thế nào?

Không có nhận xét nào:

Đăng nhận xét