1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Áp dụng học máy vào việc quản lý tài nguyên và công việc trên các hệ thống tính toán hiệu năng cao

95 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

HOÀNG LÊ HẢI THANH

ÁP DỤNG HỌC MÁY VÀO VIỆC QUẢN LÝ TÀI NGUYÊN VÀ CÔNG VIỆC TRÊN CÁC HỆ THỐNG TÍNH TOÁN

HIỆU NĂNG CAO

Chuyên ngành: Khoa Học Máy Tính Mã số: 8480101

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 08 năm 2021

Trang 2

Công trình được hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM

Cán bộ hướng dẫn khoa học: PGS.TS Thoại Nam

2 Thư ký: TS Lê Thanh Vân

3 Phản biện 1: TS Nguyễn Lê Duy Lai

4 Phản biện 2: PGS TS Trần Công Hùng

5 Uỷ viên: PGS.TS Nguyễn Thanh Hiên Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: HOÀNG LÊ HẢI THANH MSHV: 1970129 Ngày, tháng, năm sinh: 09-10-1996 Nơi sinh: Đắk Lắk Chuyên ngành: Khoa học Máy tính Mã số : 8480101

I TÊN ĐỀ TÀI: Áp dụng học máy vào việc quản lý tài nguyên và công việc trên các hệ thống tính toán hiệu năng cao II NHIỆM VỤ VÀ NỘI DUNG: Tìm hiểu quá trình quản lý tài nguyên và công việc

trên các hệ thống tính toán hiệu năng cao và các vấn đề cần được giải quyết Đề xuất giải pháp vận dụng các phương pháp học máy nhằm cải thiện độ hiệu quả trong quá trình định thời ứng dụng và phân bổ tài nguyên

III NGÀY GIAO NHIỆM VỤ : (Ghi theo trong QĐ giao đề tài) 21/09/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài)

Trang 4

i

LỜI CẢM ƠN

Trong quá trình hoàn thành chương trình thạc sĩ tại trường Đại học Bách Khoa Đại học Quốc gia thành phố Hồ Chí Minh, tôi đã nhận được rất nhiều sự quan tâm, động viên, hỗ trợ của thầy cô, đồng nghiệp, gia đình và bạn bè xung quanh.

Trước hết, tôi xin gửi lời cảm ơn sâu sắc tới thầy hướng dẫn PGS.TS Thoại Nam Thầy là người giúp tôi định hướng không chỉ trong quá trình học tập mà còn trong công việc Những lời khuyên giá trị và sự theo dõi, hướng dẫn sát sao của thầy chính là kim chỉ nam giúp tôi có thể hoàn thành tốt chương trình thạc sĩ của mình Thầy cũng chính là động lực giúp tôi định hướng được tương lai của chính bản thân mình

Bên cạnh đó, tôi cũng gửi lời cảm ơn sâu sắc tới các đồng nghiệp tại phòng thí nghiệm HPC Lab Sự giúp đỡ quý giá của mọi người trong quá trình làm việc thực sự là cảm hứng giúp tôi gắn bó với công việc nghiên cứu khoa học

Tiếp theo, tôi xin được gửi lời cảm ơn chân thành với gia đình và bạn bè đã đồng hành cùng tôi trong chặng đường vừa qua Sự ủng hộ về cả vật chất và tinh thần từ mọi người chính là động lực to lớn giúp tôi không bỏ cuộc dù gặp rất nhiều khó khăn trong quá trình thực hiện đề tài

Cuối cùng tôi xin cảm ơn Trường Đại học Bách Khoa và các thầy cô đã giảng dạy cũng như hỗ trợ cho tôi trong suốt thời gian học thạc sĩ tại trường Các kiến thức và kĩ năng từ mà thầy cô đã truyền đạt là điều không thể thiếu cho con đường nghiên cứu phía trước của tôi

Một lần nữa, tôi xin chân thành cảm ơn

Hoàng Lê Hải Thanh 13/06/2021

Trang 5

ii

TÓM TẮT LUẬN VĂN

Sự bùng nổ của dữ liệu lớn trong cuộc cách mạng công nghiệp 4.0 đã dẫn đến sự phát triển nhanh chóng của các ngành khoa học hiện đại Tuy nhiên, việc tận dụng hiệu quả lượng dữ liệu lớn vô cùng lớn và phức tạp đang đặt ra các nhu cầu cực kỳ cấp thiết về khả năng xử lý thông tin Để giải quyết các vấn đề này, các hệ thống tính toán hiệu năng cao (HPC) đã và đang được triển khai nhằm cung cấp năng lực lưu trữ và tính toán vô cùng lớn Các hệ thống HPC đang đóng vai trò ngày càng quan trọng đặc biệt là trong giai đoạn con người đang phải đối mặt với các vấn để mang tính chất toàn cầu Những thách thức không biên giới như biến đổi khí hậu, phát triển bền vững hay gần đây là đại dịch COVID-19 đang ngày càng thúc đẩy sự quan tâm của tất cả các lĩnh vực khoa học vào các hệ thống HPC Với vai trò đặc biệt quan trọng như đã nêu ở trên, việc khai thác và quản lý các hệ thống HPC là một trong những yêu cầu cấp thiết nhằm sử dụng một cách có hiệu quả nguồn tài nguyên tính toán có hạn Một trong những đặc trưng nổi bật của các hệ thống HPC là khả năng cùng lúc hỗ trợ nhiều người sử dụng khác nhau, với nhiều mục đích khác nhau Hầu hết các hệ thống HPC đều sử dụng một trình quản lý tài nguyên và công việc như Slurm, PBS Pro để quản lý tập trung và hiệu quả tài nguyên tính toán Tuy vậy, đa số các hệ thống này vẫn đang sử dụng các giải thuật đơn giản như các hàng chờ FCFS kết hợp với kỹ thuật Backfilling Bên cạnh đó, sự phát triển không ngừng của các phần mềm khoa học và sự thay đổi liên tục của người dùng trên hệ thống cũng gây ra nhiều khó khăn cho việc quản lý tài nguyên và công việc Việc giải quyết các vấn đề này cần có các kỹ thuật thông minh nhằm đáp ứng được sự phức tạp ngày càng tăng của cả hạ tầng phần cứng và hệ thống phần mềm

Một trong những lĩnh vực khoa học đang trở nên cực kì nổi bật trong thời đại dữ liệu lớn chính là trí tuệ nhân tạo Các hệ thống sử dụng trí tuệ nhân tạo, với các thuật toán học máy là chủ đạo, được kì vọng là một trong những phương tiện chính giúp con người thực hiện cuộc cách mạng công nghiệp 4.0 Các thuật toán học máy đã chứng minh được sự hiệu quả to lớn không chỉ trong khoa học mà còn trong các lĩnh vực khác nhau của cuộc sống, đem lại nhiều lợi ích cho kinh tế và xã hội Điều này

Trang 6

iii

chính là động lực thúc đẩy thực hiện đề tài luận văn Đề tài này nhằm giải quyết hai vấn đề chính còn tồn đọng trong việc xác định tài nguyên trên các hệ thống HPC Vấn đề đầu tiên chính là sự sai lệch trong việc xác định thông số công việc của người dùng Trên đa số các hệ thống HPC, người dùng phải đệ trình công việc của mình lên trên hệ thống với các đặc tả về tài nguyên sử dụng Tuy nhiên, nếu các đặc tả đó không chính xác sẽ dẫn đến trạng thái hệ thống trong tương lai sai lệch so với dự đoán hiện tại, gây ảnh hưởng xấu lên hiệu suất khai thác tài nguyên tính toán Do vậy, đề tài luận văn đề xuất sử dụng phương pháp học máy kNN nhằm hiệu chỉnh các thông số đầu vào của một ứng dụng mới được đệ trình Việc dự đoán thông số chính xác sẽ dựa vào lịch sử các công việc tương tự đã hoàn thành, từ đó giúp cải thiện hiệu suất của việc phân bổ tài nguyên hệ thống Với tiền đề quan trọng là các thông số đầu vào đã được hiệu chỉnh, đề tài tiếp tục giải quyết vấn đề thứ hai là cải thiện hiệu suất quá trình định thời ứng dụng Luận văn đề xuất sử dụng mô hình học tăng cường bằng các mạng nơ ron tích chập được huấn luyện nhằm đạt được phần thưởng cao nhất trong quá trình định thời bằng thuật toán Advantage Actor-Critic Bên cạnh đó, đề tài cũng áp dụng phương pháp Soft Walltime nhằm hạn chế ảnh hưởng của việc dự đoán các thông số công việc lên yêu cầu tính toán từ người dùng

Đề tài luận văn mang tính thực tiễn cao với thử nghiệm dựa trên các tập dữ liệu thực tế từ các hệ thống tính toán hiệu năng cao trên khắp thế giới và cả từ hệ thống SuperNode-XP hiện có Hơn nữa, quá trình áp dụng dự đoán tài nguyên được đảm bảo an toàn với việc thực thi các công việc của người dùng và có thể áp dụng ngay lập tức lên các hệ thống HPC đang vận hành Kết quả thí nghiệm cho thấy các cách tiếp cận trong luận văn có kết quả tốt hơn khi so sánh với các phương pháp quản lý tài nguyên thông dụng khác Các mô hình được đề xuất đều là những giải pháp hoàn toàn mới so với các nghiên cứu khác tại thời điểm hiện tại Điều này khẳng định tính khoa học của đề tài luận văn với nhiều đóng góp mới có giá trị cho lĩnh vực tính toán hiệu năng cao Ngoài ra, đề tài cũng mở ra nhiều hướng mới trong nghiên cứu với khả năng triển khai hiệu quả và an toàn các thuật toán định thời hiện đại trong lĩnh vực tính toán hiệu năng cao

Trang 7

iv

ABSTRACT

The growth of Big Data in the Fourth Industrial Revolution has led to the rapid evolution of modern sciences However, making effective use of large and complex datasets is placing extremely urgent requirements on information processing capabilities To tackle these problems, High Performance Computing (HPC) systems have been deployed to provide an enormous amount of computing power and data storage HPC systems are playing a critical role in human development, especially at present when we are confronting with global issues Borderless challenges such as climate change, water pollution, sustainable development, or more recently, the COVID-19 pandemic have attracted the interest of all scientific fields in HPC systems With these mentioned responsibilities above, efficiently operating HPC systems is an urgent requirement for exploiting limited resources A particular characteristic of HPC systems is their ability to support many different users at the same time, with many different jobs Most HPC systems are using a Resource and Job Management System (RJMS) such as Slurm, PBS Pro to centrally manage their computing resources However, most of these systems are still using simple algorithms such as FCFS (First-Come-First-Served) with Backfilling techniques However, the increasing growth of scientific software and the change in HPC users over time cause many difficulties for resource and job management Solving these problems requires modern techniques to deal with the complexity of both the hardware infrastructures and software platforms

Nowadays, Artificial Intelligence (AI) has been becoming an extremely prominent scientific domain Systems using AI models, advantaged by Machine Learning (ML) algorithms, are expected to be the key factor of the Fourth Industrial Revolution ML learning algorithms have proven their effectiveness not only in theory but also in real-life scenarios, provided many valuable benefits to the development of the economy and society This is the main motivation of my thesis The thesis intends to solve two major problems of resource and job management on HPC systems The first problem is the inaccuracy of user estimates In most HPC systems, users must

Trang 8

v

submit their jobs to the system with the detail of their work, including some crucial attributes such as walltime estimates However, if these predictions are incorrect, the future resource state will be deviated from the current prediction of the job scheduler,

thus affecting the system performance Therefore, this thesis proposes the use of the k Nearest Neighbors (kNN) method to correct estimated attributes of newly submitted

applications User estimates are refined using historic information from similar finished jobs As the result, this helps to improve the performance of the resource allocation With the basis of improved predictions, this thesis continues to solve the remaining problem about improving the performance of HPC systems The Deep Reinforcement Learning (DRL) model, based on neural networks with the Advantage Actor-Critic algorithm, is proposed to achieve the highest reward in the process of scheduling HPC jobs In addition, this thesis also applies the Soft Walltime scheme to restrict the use of refined values only for making scheduling decisions, thus ensuring user fairness and preventing early job termination

This research is performed practically with collected workloads from scale HPC systems around the world and also from the local SuperNode-XP system Moreover, the kNN prediction method preserves user expectations and can be applied directly to any production HPC system Experimental results show that the proposed approaches yield better results when compared to other formal methods Moreover,

large-the proposed integration model of DRL and kNN is a novel solution compared to olarge-ther

related studies This states the scientific aspect of this thesis with many valuable contributions to the field of HPC In addition, our studies also reveal many new research opportunities about effective and safe modern techniques deployment to improve on HPC systems

Trang 9

vi

LỜI CAM ĐOAN

Luận văn của tôi có tham khảo các tài liệu, bài báo, trang web như được trình bày ở mục tài liệu tham khảo và ở mỗi tham khảo tôi đều trích dẫn nguồn gốc Tôi xin cam đoan rằng ngoài những trích dẫn từ các tham khảo trên, toàn bộ nội dung trong báo cáo là do tôi tự soạn thảo từ những kết quả nghiên cứu của riêng cá nhân tôi, không sao chép từ bất kì tài liệu nào khác.

Tôi sẽ hoàn toàn chịu xử lí theo quy định nếu có bất cứ sai phạm nào so với lời cam đoan

Học viên

Hoàng Lê Hải Thanh

Trang 10

CHƯƠNG 2: CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN 6

2.1 Các hướng nghiên cứu về dự đoán thông số công việc trên các hệ thống tính toán hiệu năng cao 6

2.2 Các hướng nghiên cứu trong lĩnh vực học máy 7

CHƯƠNG 3: CƠ SỞ LÝ THUYẾT 9

3.1 Tổng quan về các hệ thống tính toán hiệu năng cao 9

3.2 Quản lý tài nguyên và định thời công việc trên các hệ thống tính toán hiệu năng cao 113.3 Kỹ thuật học máy 15

3.3.1 Khái quát về kỹ thuật học máy 15

Trang 11

viii

3.3.2 Thuật toán học máy kNN 17

3.3.3 Kỹ thuật học tăng cường 19

CHƯƠNG 4: PHÂN TÍCH VẤN ĐỀ 26

4.1 Tập dữ liệu công việc từ các hệ thống HPC 26

4.1.1 Tập dữ liệu lịch sử công việc từ Parallel Workload Archive 26

4.1.2 Tập dữ liệu lịch sử công việc từ hệ thống SuperNode-XP 28

4.2 Sự sai lệch trong việc dự đoán thông số công việc của người dùng 31

4.2.1 Sự sai lệch trong dự đoán thời gian chạy của người dùng 32

4.2.2 Tính bất định trong quá trình dự đoán thời gian chạy của người dùng 35

4.3 Bài toán cải thiện hiệu suất quản lý tài nguyên và công việc trên các hệ thống tính toán hiệu năng cao 37

CHƯƠNG 5: GIẢI PHÁP ĐỀ XUẤT VÀ PHƯƠNG PHÁP HIỆN THỰC 39

5.1 Giải pháp dự đoán thông số công việc sử dụng thuật toán kNN 39

5.1.1 Hiệu chỉnh dự đoán từ người dùng bằng thuật toán kNN 39

5.1.2 Phương pháp áp dụng các thông số đã được hiệu chỉnh vào quá trình ra quyết định quản lý tài nguyên và định thời ứng dụng 42

5.2 Giải pháp định thời công việc sử dụng mô hình học sâu tăng cường 435.2.1 Mô hình học sâu tăng cường 44

5.3 Giải pháp cải thiện hiệu suất định thời của mô hình học sâu tăng cường bằng kỹ thuật dự đoán thời gian chạy 50

CHƯƠNG 6: THỰC NGHIỆM 52

6.1 Môi trường thực nghiệm 52

6.2 Tiêu chí đánh giá 54

6.3 Kết quả thí nghiệm 55

Trang 13

x

DANH MỤC HÌNH

Hình 3.1 Hệ thống Siêu máy tính Fugaku 10

Hình 3.2 Hệ thống Tính toán hiệu năng cao SuperNode-XP 10

Hình 3.3 Biểu đồ Gantt cho quá trình định thời 100 công việc với thuật toán EASY Backfilling 12

Hình 3.4 Các thuật toán Backfilling (Nguồn: [27]) 13

Hình 3.5 Các phương pháp học máy chính và ứng dụng 16

Hình 3.6 Mô tả kết quả của thuật toán kNN với các hệ số k khác nhau 18

Hình 3.7 Tương tác giữa thực thể và môi trường trong mô hình học tăng cường 20

Hình 3.8 Phương pháp Actor-Critic với Policy Gradient 24

Hình 4.1 Phân phối về thời gian chạy và tài nguyên cần cấp phát của các công việc trên bốn tập dữ liệu 27

Hình 4.2 Sơ đồ tổng quát hệ thống SuperNode-XP 29

Hình 4.3 Accounting Log file từ PBS Pro 30

Hình 4.4 Phân phối về thời gian chạy và tài nguyên cần cấp phát trên hệ thống SuperNode-XP 31

Hình 4.5 Phân phối tích luỹ thời gian chạy thực tế và dự đoán trên các tập dữ liệu từ PWA 33

Hình 4.6 Phân phối tích luỹ thời gian chạy thực tế và dự đoán trên tập dữ liệu SuperNode-XP 34

Hình 4.7 Độ lệch giữa giá trị dự đoán và giá trị thực tế trên các tập dữ liệu từ PWA 35Hình 4.8 Độ lệch giữa giá trị dự đoán và giá trị thực tế trên các tập dữ liệu SuperNode-XP 36

Hình 5.1 Cách biểu diễn trạng thái của mô hình học tăng cường 46

Hình 5.2 Kiến trúc mô hình A2C dành cho việc định thời trên hệ thống HPC 49

Hình 5.3 Kiến trúc cải thiện hiệu suất định thời của mô hình học sâu tăng cường bằng kỹ thuật dự đoán thời gian chạy 51

Hình 6.1 Kiến trúc của Batsim (Nguồn: Batsim [46]) 53

Hình 6.2 Kết quả độ lệch giữa thời gian chạy thực tế và dự đoán của các công việc trên các tập dữ liệu 56

Trang 14

xi

Hình 6.3 Heatmap kết quả cải thiện dự đoán của người dùng trên tập dữ liệu 2002 57Hình 6.4 Heatmap kết quả cải thiện dự đoán của người dùng trên tập dữ liệu SDSC-DS-2004 57Hình 6.5 Heatmap kết quả cải thiện dự đoán của người dùng trên tập dữ liệu ANL-Intrepid-2009 58Hình 6.6 Heatmap kết quả cải thiện dự đoán của người dùng trên tập dữ liệu UniLu-Gaia-2004 58Hình 6.7 Heatmap kết quả dự đoán thời gian chạy trên tập dữ liệu SuperNode-XP 59Hình 6.8 Kết quả thời gian chờ trung bình trên các tập dữ liệu với các phương pháp khác nhau 60Hình 6.9 Giá trị bounded slowdown trung bình trên các tập dữ liệu với các phương pháp khác nhau 61Hình 6.10 Heatmap kết quả cải thiện thời gian chờ trên tập dữ liệu SDSC-DS-2004 61Hình 6.11 Heatmap kết quả cải thiện thời gian chờ trên công việc của tập dữ liệu UniLu-Gaia-2014 62Hình 6.12 Heatmap kết quả cải thiện thời gian chờ trên tập dữ liệu HPC2N-2002 63Hình 6.13 Heatmap kết quả cải thiện thời gian chờ trên tập dữ liệu SuperNode-XP 63Hình 6.14 Heatmap kết quả cải thiện thời gian chờ trên tập dữ liệu ANL-Intrepid-2009 64Hình 6.15 Tổng phần thưởng nhận được trên tập dữ liệu xác thực từ hệ thống SuperNode-XP 67Hình 6.16 Kết quả thời gian chờ trung bình bằng các phương pháp định thời trên hệ thống SuperNode-XP 68Hình 6.17 Kết quả thời gian chờ tối đa bằng các phương pháp định thời trên hệ thống SuperNode-XP 68

Trang 15

HPC2N-xii

DANH MỤC BẢNG

Bảng 4.1: Thông tin các tập dữ liệu HPC từ PWA dùng trong thực nghiệm 27

Bảng 4.2: Số lượng công việc trên các tập dữ liệu sau khi làm sạch 28

Bảng 4.3: Thông tin log file thu thập trên hệ thống SuperNode-XP 31

Bảng 4.4: Thông số về thời gian chờ trên các tập dữ liệu 37

Bảng 6.1: Cấu hình chi tiết máy tính sử dụng cho mô phỏng 53

Bảng 6.2: Thông số của thuật toán kNN 55

Bảng 6.3: Thông số biểu diễn trạng thái 65

Bảng 6.4: Thiết lập mạng neural của mô hình DRL 65

Trang 16

RJMSResource and Job Management System

Trang 17

Một trong những yêu cầu cấp thiết của các hệ thống tính toán hiệu năng cao là khả năng hỗ trợ đa người dùng khai thác hiệu quả tài nguyên tính toán Để đảm bảo việc này, thông thường trên các hệ thống HPC thường sử dụng các trình quản lý tài nguyên và định thời ứng dụng (RJMS) Tuy nhiên, việc chọn lựa được một chương trình định thời tốt là một nhiệm vụ khó khăn đối với quản trị viên các hệ thống HPC Chính sách First-Come-First-Served (FCFS) vẫn được ưu tiên sử dụng trên hầu hết

Trang 18

2

các hệ thống HPC Mặc dù nhược điểm phân mảnh tài nguyên của FCFS đã được giải quyết bằng cách áp dụng các thuật toán Backfilling, hiệu quả của việc kết hợp này vẫn còn xa khi so sánh với một chính sách lập lịch lý tưởng Do đó, nhiều phương pháp tiên đoán (heuristics) đã được nghiên cứu để thúc đẩy các bộ lập lịch công việc HPC chẳng hạn như thuật toán Shorted Job First (SJF), Bin Packing hoặc các phương pháp tối ưu hóa (optimization) [1], [2] Tuy nhiên, sự gia tăng về tính đa dạng của phần mềm khoa học và phần cứng tính toán đang khiến việc sử dụng các phương pháp tiếp cận tĩnh này ngày càng trở nên khó khăn hơn Khi có sự thay đổi đột ngột trong quá trình khai thác hệ thống thì người quản trị thường phải can thiệp bằng tay để căn chỉnh các thông số của thuật toán cho phù hợp với chính sách đang áp dụng trên hệ thống Do đó, việc áp dụng các thuật toán động có khả năng tự điều chỉnh với sự thay đổi liên tục trên các hệ thống HPC là điều cần thiết

Tuy nhiên, một trong những rào cản lớn trong việc hiện thực các giải thuật quản lý tài nguyên và định thời công việc là tính không chắc chắn của trạng thái hệ thống Điều này là hệ quả của việc các thông số của một công việc phụ thuộc toàn bộ vào giá trị được cung cấp từ người dùng [3] Các phần mềm RJMS sẽ dựa vào các giá trị đầu vào này để xác định số lượng tài nguyên được cấp và ước tính thời gian bắt đầu Một đặc điểm quan trọng là các giá trị dựa trên sự ước tính của người dùng thường không chính xác do nhiều nguyên nhân, từ cả chủ quan và khách quan Việc xác định không chính xác các thông số này sẽ gây ra khó khăn cho các trình định thời khi trạng thái thực tế sai khác với trạng thái do RJMS đã dự đoán trước đó Do đó, giải pháp dự đoán thông số công việc trở nên rất phổ biến trong số các cách tiếp cận mới trên các hệ thống HPC Tuy nhiên, việc căn chỉnh các thông số không hợp lý có thể gây cản trở việc thực thi các tác vụ, làm giảm độ tin cậy trên các hệ thống HPC Ngoài ra, việc thiếu khả năng hỗ trợ chính thức từ các trình RJMS phổ biến đang hạn chế các quản trị viên trong việc tích hợp các thuật toán quản lý hiện đại vào các hệ thống HPC đang sử dụng Do vậy, cần có một phương pháp dự đoán vừa hiệu quả, đơn giản với cả người dùng và người quản trị, cũng như không ảnh hưởng tới việc vận hành bình thường các hệ thống HPC

Trang 19

việc cải thiện quá trình định thời ứng dụng trên hệ thống sử dụng mô hình học tăng cường

- Đề xuất chiến lược kết hợp các mô hình thành một giải pháp hoàn chỉnh nhằm khắc phục các vấn đề của mô hình học tăng cường với dữ liệu thực tế

1.2 Ý nghĩa của đề tài a Ý nghĩa thực tiễn:

- Hỗ trợ người dùng sử dụng tài nguyên hiệu quả hơn: Luận văn góp phần

hỗ trợ người dùng căn chỉnh thông số tài nguyên sử dụng của một ứng dụng mới được submit lên hệ thống

- Đảm bảo tính an toàn trong việc áp dụng các phương pháp căn chỉnh

thông số công việc: Đề tài góp phần đánh giá một phương pháp mới là Soft

Walltime trong việc áp dụng các thông số đã được căn chỉnh một cách an toàn vào các hệ thống HPC đang vận hành

- Cải thiện hiệu suất khai khác các hệ thống HPC: Luận văn đề xuất áp

dụng mô hình học sâu tăng cường giúp cho việc khai thác tài nguyên tính toán trên các hệ thống HPC trở nên hiệu quả hơn so với các thuật toán thông dụng khác

b Ý nghĩa khoa học:

- Đóng góp về mô hình dự đoán thông số công việc sử dụng thuật toán

kNN với Soft Walltime: Các thông số cho một công việc của người dùng

được mới dự đoán bằng thuật toán kNN sử dụng dữ liệu lịch sử về những

công việc tương tự nhất Sau đó, các giá trị đã được căn chỉnh được chỉ

Trang 20

4

được sử dụng trong quá trình ra quyết định phân bổ tài nguyên, theo định nghĩa của Soft Walltime

- Đề xuất mô hình định thời kết hợp giữa học tăng cường và phương

pháp dự đoán công việc: Các công việc thực tế có độ sai lệch rất lớn về dự

đoán thời gian chạy, gây nhiều khó khăn cho việc ra quyết định cấp phát tài nguyên của mô hình học tăng cường Đề tài đề xuất phương pháp định thời kết hợp giữa kỹ thuật học tăng cường hiện đại và phương pháp dự đoán thông số công việc ở trên để tối ưu hoá việc sử dụng tài nguyên hệ thống

- Đóng góp về các công cụ hỗ trợ trong việc nghiên cứu khoa học: Hai

công cụ nội bộ được đề tài nghiên cứu và sử dụng quá trình thực hiện luận văn được chia sẻ công khai cho cộng đồng bao gồm công cụ chuyển đổi pbspro2swf và mô hình học tăng cường HPCSysGym dựa trên đặc tả của OpenAI Gym

1.3 Phạm vi của đề tài

- Đối tượng thực nghiệm: Đề tài tập trung vào việc cải thiện hiệu năng các

hệ thống HPC dành cho tính toán khoa học đang được vận hành trên thế giới và ở Việt Nam Các hệ thống này có thể đồng nhất hoặc không đồng nhất về tài nguyên tính toán

- Dữ liệu thực nghiệm: Dữ liệu trong đề tài được thu thập từ các nguồn uy

tín trong lĩnh vực nghiên cứu, bao gồm các tập dữ liệu lịch sử công việc từ các hệ thống HPC trên thế giới và cả từ hệ thống SuperNode-XP tại trường Đại học Bách Khoa

- Phương pháp thực hiện: Các phương pháp đề xuất trong luận văn đều

xuất phát từ các vấn đề thực tế, được phân tích từ lý thuyết đến thực nghiệm Kết quả của các mô hình đều được kiểm chứng bằng các tập dữ liệu được sử dụng rộng rãi trong nhiều nghiên cứu trước đây, và được so sánh khách quan với các thuật toán đối chứng phổ biến trong lĩnh vực HPC

- Bối cảnh đề tài: Hiện trạng sử dụng tài nguyên tính toán trên các hệ thống

HPC trên thế giới và Việt Nam trong thời gian vừa qua

Trang 21

5

1.4 Bố cục luận văn

Có tất cả 8 chương trong báo cáo luận văn này Các nghiên cứu liên quan tới lĩnh vực HPC và học máy được trình bày trong chương 2 Chương 3 cung cấp các cơ sở lý thuyết nền tảng cho các giải pháp được đề xuất trong luận văn Tiếp đó, chương 4 phân tích các bài toán mà luận văn cần phải giải quyết dựa trên cơ sở các vấn đề ở thực tiễn Chương 5 trình bày chi tiết quá trình hiện thực các phương pháp đề xuất nhằm giải quyết các vấn đề đặt ra Chương 6 thể hiện phương pháp và kết quả quá trình thực nghiệm, đánh giá trên các tập dữ liệu và phương pháp đối chứng Cuối cùng, chương 7 là kết luận của luận văn về những công việc đã hoàn thành trong phạm vi đề tài, cũng như các hạn chế cần khắc phục và hướng mở rộng trong tương lai

Trang 22

Bên cạnh đó, một chủ đề đang rất nóng hiện nay là học tăng cường cũng đã và đang thu hút rất nhiều sự quan tâm của giới nghiên cứu đến từ nhiều bộ môn khoa học khác nhau, kể cả trong lĩnh vực tính toán hiệu năng cao Chương 2 đề cập tới các công trình nghiên cứu liên quan đến các nội dung trong phạm vi luận văn

2.1 Các hướng nghiên cứu về dự đoán thông số công việc trên các hệ thống tính toán hiệu năng cao

Liên quan đến việc dự đoán thông số công việc quản lý tài nguyên trên các hệ thống HPC, đã có rất nhiều nghiên cứu được thực hiện từ trước tới nay Đặc biệt, vấn đề về việc dự đoán sai lệch thời gian chạy của một công việc trên hệ thống HPC đã được đánh giá như một vấn đề quan trọng trong việc khai thác các hệ thống này [4] Nhiều nghiên cứu [5], [6] đã đánh giá độ chính xác của các giá trị ước tính do người dùng cung cấp trên các tập dữ liệu thu thập từ các hệ thống HPC trên thế giới và phát hiện ra rằng hầu hết các dự đoán của người dùng là quá cao so với giá trị thực tế Sau sự ra đời của các thuật toán Backfilling, Frachtenberg và Feitelson [4] đã chứng minh tác động của các giá trị ước tính không chính xác lên quá trình định thời công việc Một cách đáng ngạc nhiên, Zotkin và Keleher [7] đã kết luận rằng các hệ thống HPC có thể thu được một số lợi ích đáng kể từ việc dự đoán thời gian chạy của ứng dụng vượt trên thực tế Ahuva và cộng sự [6] cũng cho thấy được những lợi ích tiềm năng khi tăng các giá ước tính từ người dùng lên nhiều lần cho một công việc mới Tuy nhiên, Dan Tsafrir [8] sau đó đã chỉ ra rằng các mô hình được đề xuất ở trên gây ảnh

Trang 23

7

hưởng xấu lên độ hiệu quả của quá trình định thời công việc Việc dựa quá nhiều vào dự đoán từ người dùng khiến cho các trình RJMS không phân biệt được các công việc thực tế có thời gian là ngắn hay dài, làm giảm xác suất Backfilling các công việc phù hợp Ngoài ra, Chiang và cộng sự [9] cũng đã chỉ ra lợi ích của việc thời gian công việc được dự đoán chính xác hơn trên việc cải thiện hiệu suất hệ thống

Để giảm tác động của việc dự đoán sai lệch, các nhà nghiên cứu đã tìm hiểu các giải pháp để điều chỉnh các giá trị ước tính từ người dùng Một cách tiếp cận đơn giản như lấy giá trị trung bình của hai thời gian chạy thực tế mới nhất từ lịch sử submit công việc của cùng một người dùng [10] có thể cải thiện đáng kể hiệu suất các hệ thống HPC Ngọc và Wolters [11] đã chia công việc thành các nhóm riêng biệt và sử dụng các thuật toán di truyền trên dữ liệu lịch sử vận hành hệ thống để dự đoán thời gian chạy một công việc mới Ngoài ra, Gaussier và cộng sự [12] đã đề xuất phương pháp bộ ba tiên đoán (heuristic tripple) bằng cách sử dụng kỹ thuật học máy để cải thiện hiệu suất tính toán, trong khi Park và Kim thực hiện việc dự đoán thời gian chạy các công việc song song, phân tán bằng mạng nơ-ron nhân tạo [13]

Cùng với việc phát triển các kỹ thuật mới giúp dự đoán thông số công việc, chi tiết về tác động các kỹ thuật này cũng được phân tích để giúp quản trị viên hệ thống xem xét các ảnh hưởng có thể lên các hệ thống HPC đang vận hành sau khi áp dụng các giá trị được tinh chỉnh Một nghiên cứu sâu hơn về việc cải thiện dự đoán thời gian chạy dựa trên lịch sử hoạt động của người dùng với tính năng Soft Walltime đã được thực hiện bởi Klus'avcek và Chlumsk'y [14] Tuy nhiên, nghiên cứu này chỉ sử dụng một phương pháp heuristic đơn giản bằng cách sử dụng dữ liệu từ năm lần dự đoán gần nhất của người dùng đang submit công việc hiện tại Do vậy đối với một số tập dữ liệu phức tạp, ta phải áp dụng các phương pháp tiên tiến hơn

2.2 Các hướng nghiên cứu trong lĩnh vực học máy

Trong những năm vừa qua, học máy đang trở thành một trong những trụ cột chính trong sự thúc đẩy cuộc cách mạng công nghệ 4.0, bên cạnh các hệ thống HPC Rất nhiều các nghiên cứu về học máy đã được thực hiện trong cả lý thuyết và thực nghiệm, đem học máy gần hơn với thực tế và mở ra ngày càng nhiều lợi ích cho con

Trang 24

8

người Có thể kể tới các ứng dụng nổi bật của học máy như phân biệt khuôn mặt, theo dõi tình trạng giao thông, các hệ thống gợi ý, phân tích dữ liệu kinh tế, nhận diện chữ viết [15], v.v

Tuy nhiên, tồn tại rất nhiều các vấn đề trong thực tế thường rất phức tạp, rất khó để mô hình hoá bằng các kỹ thuật học máy thông thường Học tăng cường (RL) đã trở thành một trong những kỹ thuật nổi bật nhất để giải quyết các vấn đề phức tạp trong các lĩnh vực khoa học khác nhau, bao gồm dạy máy tính chơi các trò chơi điện tử, thiết kế xe tự hành, học cách chuyển động của con người, v.v… Trong lĩnh vực HPC, nhiều mô hình học tăng cường [16]–[18] cũng đã được áp dụng để tìm cách tối đa hóa phần thưởng tích lũy được thông qua quá trình định thời công việc trên các hệ thống HPC Các giải pháp được đề xuất này đã cho thấy tiềm năng đáng kể của việc áp dụng các mô hình học tăng cường trong việc cải thiện không chỉ cho các hệ thống HPC nói chung mà còn cho các hệ thống tính toán phân tán dành riêng cho một mục đích cụ thể như huấn luyện các mô hình học máy học hoặc xử lý dữ liệu

Trang 25

9

CHƯƠNG 3: CƠ SỞ LÝ THUYẾT

Chương 3 trình bày một số khái niệm, cơ sở lý thuyết nền tảng liên quan tới các giải pháp được đề xuất trong luận văn Đầu tiên là giới thiệu các mô hình quản lý tài nguyên và ứng dụng trên các hệ thống HPC Tiếp theo là các thuật toán học máy cũng được giới thiệu một cách tổng quan trong phần này

3.1 Tổng quan về các hệ thống tính toán hiệu năng cao

Tính toán hiệu năng cao đề cập đến các hệ thống máy tính có sức mạnh tính toán cực lớn với khả năng giải quyết các vấn đề cực kỳ phức tạp, đòi hỏi nhiều phương pháp xử lý chuyên biệt Việc xây dựng và vận hành thành công một hệ thống HPC yêu cầu sự tổng hoà của rất nhiều yếu tố như kiến trúc xử lý, thuật toán định thời và quản lý tài nguyên, chương trình quản lý người dùng, hạ tầng mạng nội bộ và Internet, ứng dụng hỗ trợ tính toán khoa học, phần mềm giám sát hệ thống, mạng lưới cung cấp điện, bộ tản nhiệt,… Bên cạnh đó, việc quản lý các hệ thống HPC cũng yêu cầu nguồn nhân lực có trình độ cao với kinh nghiệm và kỹ thuật chuyên sâu trong việc vận hành các hệ thống phức tạp và có kích thước lớn Đây cũng những điểm bất lợi lớn trong việc khai thác các hệ thống HPC, đặc biệt là tại các nước đang phát triển như Việt Nam với kinh phí hạn hẹp và nguồn nhân lực hạn chế

Nhìn chung, các hệ thống HPC là nơi tập trung các tiến bộ khoa học tiên tiến nhất trong lĩnh vực máy tính để cung cấp tài nguyên tính toán hiệu quả và nhanh chóng nhất, cũng như các công nghệ chuyên biệt cho việc tính toán song song, phân tán ở quy mô cực kì lớn Có thể kể tới hệ thống siêu máy tính mạnh nhất thế giới hiện nay theo là Fugaku trên Hình 3.1 đang sử dụng vi xử lý tuỳ biến A64FX rất mạnh do Fujitsu sản xuất với kiến trúc ARM Ngoài ra, các hệ thống HPC cũng sử dụng rất nhiều công nghệ mới như HBM (High Bandwidth Memory), mạng cáp quang InfiniBand tốc độ cao, các hệ lưu trữ phân tán như Lustre, GPU,… Ngày nay, các siêu máy tính hàng đầu thế giới đã đạt tới khả năng tính toán vượt quá 10¹⁷ - một trăm triệu tỷ phép tính mỗi giây (hiệu suất tiền exascale) Thế hệ tiếp theo - exascale sẽ có khả

Trang 26

10

năng thực hiện hơn một tỷ tỷ (10¹⁸) phép tính mỗi giây Siêu máy tính exascale đầu tiên trên thế giới được kì vọng sẽ được đưa vào hoạt động tại Châu Âu vào năm 2021

Hình 3.1 Hệ thống Siêu máy tính Fugaku

Hình 3.2 Hệ thống Tính toán hiệu năng cao SuperNode-XP

Trang 27

11

Không nằm ngoài xu thế chung của thế giới, Đại học Quốc Gia Thành Phố Hồ Chí Minh (ĐHQG-HCM) đã đầu tư một hệ thống Tính toán hiệu năng cao như trên Hình 3.2 với tên gọi SuperNode-XP vào năm 2015 Hệ thống này được đặt tại Phòng thí nghiệm Tính toán Hiệu năng cao (HPC Lab) tại Trường Đại học Bách Khoa – ĐHQG-HCM Đây là hệ thống tính toán hiệu năng cao với 24 node xử lý phân tán với năng lực xử lý lớn, giúp thúc đẩy công tác nghiên cứu khoa học không chỉ trong lĩnh vực HPC tại trường Đại học Bách Khoa mà còn cho các ngành khoa học khác tại Việt Nam

Phạm vi ứng dụng của các hệ thống HPC sẽ ngày càng được mở rộng hơn nữa trong tương lai Các ứng dụng hoàn toàn mới sẽ xuất hiện không chỉ trong khoa học kỹ thuật mà còn trong cả đời sống sản xuất như truy xuất thông tin, hỗ trợ ra quyết định, phân tích tài chính hoặc khai phá dữ liệu Đặc biệt, sự gia tăng nhanh chóng trong tương lai về lượng dữ liệu được lưu trữ trên toàn thế giới sẽ khiến sức ảnh hưởng của các hệ thống HPC trở nên ngày lớn hơn đối với con người

3.2 Quản lý tài nguyên và định thời công việc trên các hệ thống tính toán hiệu năng cao

Về cơ bản, quản lý tài nguyên và định thời công việc là quá trình kiểm soát việc thực hiện các công việc do người dùng yêu cầu trên các hệ thống HPC Nhìn theo nghĩa rộng hơn, quá trình này tương đương với việc tổ chức công việc và nguồn lực trong phần lớn các hệ thống sản xuất, phân phối hàng hoá, dịch vụ và thậm chí cả trong cuộc sống hàng ngày của chúng ta với đặc điểm chung là bao gồm nhiều công việc cùng với các nguồn lực có hạn Ví dụ về nguồn lực có thể là máy móc dành cho sản xuất, đội ngũ nhân viên tại một công ty, hệ thống xe vận chuyển hàng hoá v.v… Trong khi đó, các công việc tương ứng có thể là các bước trong một quy trình sản xuất, các giấy tờ cần được xử lý hoặc hàng hoá cần được chuyển đi từ kho tới nơi nhận

Xét trong ngữ cảnh HPC, thực thi các công việc từ người dùng một trong những hoạt động chính trên các hệ thống này và là hoạt động tương tác chủ yếu giữa người dùng với hạ tầng tính toán Các ứng dụng được khai thác trên các hệ thống HPC

Trang 28

12

thường mang tính chất phức tạp, cần nhiều công cụ, thư viện đi kèm và đòi hỏi năng lực tính toán cực kì lớn Các công việc này trải dài từ các ứng dụng HPC truyền thống như giải mã trình tự gen, phân tích hoá học, xây dựng các mô hình tài chính, dự báo thời tiết, phân tích địa chất, trực quan hoá thiên tai, tính toán lưu lượng giao thông cho tới các ứng dụng hiện đại mới nổi hiện nay như học máy, trình gợi ý, xe tự hành, trí tuệ nhân tạo Để khai thác hiệu quả lượng tài nguyên tính toán rất trên các hệ thống HPC, các ứng dụng thường được xử lý song song, phân tán với các thư viện phổ biến như MPI [19] hay OpenMP [20] hoặc sử dụng phần cứng đặc biệt như GPU

Hình 3.3 Biểu đồ Gantt cho quá trình định thời 100 công việc với thuật toán EASY Backfilling

Để xử lý việc thực thi một khối lượng công việc rất lớn trên một hạ tầng cực kì phức tạp với nhiều ràng buộc về tài nguyên, các hệ thống HPC thường được quản lý bởi các hệ thống quản lý tài nguyên và công việc (RJMS) như Slurm [21], PBS Pro [22], OAR [23] hoặc Flux [24] Chính sách quản lý tài nguyên và công việc trên các hệ thống HPC cần phải đáp ứng một hoặc nhiều yêu cầu như tối ưu hóa việc khai thác tài nguyên hệ thống, giảm thời gian chờ đợi của các ứng dụng, đảm bảo ràng buộc giữa công việc với nhau,… Để đạt được những mục tiêu này, các trình RJMS phải có trách nhiệm giám sát tất cả các công việc đã được người dùng submit, các công việc đang chạy và cả các công việc đã hoàn tất trên hệ thống HPC Việc quản lý như vậy nhằm mục đích theo dõi chính xác tình trạng sử dụng tài nguyên, từ đó giúp trình định

Trang 29

13

thời đưa ra các quyết định chính xác Các chương trình RJMS chịu trách nhiệm xử lý tập trung các công việc được đệ trình (submit) từ người dùng Các công việc trên được đưa vào hàng đợi và chờ trình RJMS tiến hành phân bổ tài nguyên và định thời các công việc này dựa theo chính sách của hệ thống

Hình 3.4 Các thuật toán Backfilling (Nguồn: [25])

Trang 30

14

Hiện nay, nhiều chính sách định thời có thể được xem xét cho việc sắp xếp thứ tự thực thi các công việc Một lựa chọn phổ biến trên các hệ thống HPC hiện nay là sử dụng chính sách First-Come-First-Served (FCFS) đơn giản với những ưu điểm chính là cách triển khai đơn giản, đảm bảo sự công bằng giữa người dùng và ngăn chặn tình trạng ứng dụng phải chờ đợi vô hạn định Điều này giúp FCFS được ưu tiên hơn các thuật toán định thời khác như Shorted Job First (SJF) hay Bin-Packing Hơn nữa, các hệ thống này thường được áp dụng thêm các thuật toán Backfilling để khai thác tốt hơn lượng tài nguyên tính toán có hạn EASY [26] và Conservative Backfilling [27] là hai phiên bản phổ biến của Backfilling được biết tới Trên Hình 3.3 là biểu đồ Gantt thể hiện quá trình định thời và cấp phát tài nguyên cho 100 ứng dụng trên một hệ thống HPC sử dụng thuật toán EASY Backfilling Ngoài ra còn có các thuật toán Backfilling khác có thể kể đến như Fatten Backfilling [25] Tổng quan các thuật toán Backfilling này được thể hiện trên Hình 3.4

Ý tưởng cơ bản của các thuật toán Backfilling là cho phép các công việc đang chờ đợi phía sau được quyền thực hiện trước, miễn là các công việc đó không làm trì hoãn thời gian bắt đầu của một số các công việc khác trước nó Số lượng các công việc được “giữ chỗ” này tuỳ thuộc vào thuật toán Đối với EASY, thuật toán này chỉ đảm bảo là duy nhất một công việc ở đầu hàng đợi sẽ được đảm bảo thời gian chạy Trong khi đó, thuật toán Conservative Backfilling – đúng như cái tên của nó, đảm bảo rằng việc thực thi một công việc đang chờ sẽ không gây ảnh hưởng tới tất cả các công việc đứng trước nó Một cách rõ ràng, ta có thể thấy thuật toán Conservative Backfilling đảm bảo việc công bằng giữa các công việc với nhau, đem lại nhiều lợi ích hơn cho việc định thời Tuy nhiên, việc phải xây dựng trạng thái cấp phát tài nguyên cho tất cả công việc yêu cầu một khối lượng tính toán rất lớn, đặc biệt là trong trường hợp có hàng nghìn công việc đang hoạt động trên hệ thống Trong khi đó, thuật toán EASY yêu cầu rất ít tài nguyên tính toán vì chỉ phải đảm bảo tài nguyên cho một công việc duy nhất Ngoài ra, hiệu năng giữa hai thuật toán cũng tuỳ thuộc nhiều vào đặc trưng của các công việc trên mỗi hệ thống HPC [6] Do đó, đa số các trình định thời trên các hệ thống HPC thường sử dụng thuật toán EASY để thực hiện Backfilling các công việc Các trình RJMS phổ biến như PBS Pro đã hỗ trợ thuật toán EASY như một tuỳ chọn cho quá trình định thời [28]

Trang 31

15

Việc áp dụng các phương pháp Backfilling cho phép các công việc lớn có thể được thực thi liên tục trên hệ thống mà không làm giảm hiệu suất định thời khi các ứng dụng khác phải chờ trong hàng đợi FCFS Backfilling giúp cho các công việc nhỏ có thể chạy trước khi tới lượt và kết thúc trước khi công việc lớn bắt đầu Điều này làm cải thiện hiệu suất của các hệ thống HPC trong việc tối ưu quá trình khai thác tài nguyên tính toán

3.3 Kỹ thuật học máy

Học máy là một lĩnh vực của trí tuệ nhân tạo mà tập trung vào lý thuyết, hiệu suất và thuộc tính của các hệ thống và thuật toán có khả năng học nhằm giải quyết một vấn đề cụ thể Các mô hình học máy đã được triển khai trong rất nhiều ứng dụng thực tiễn, bao trùm hầu hết các lĩnh vực khoa học và đời sống, mang lại tác động to lớn cho sự phát triển của kinh tế xã hội [29]

3.3.1 Khái quát về kỹ thuật học máy

Trong suốt lịch sử loài người, con người đã thành công trong việc thu thập kiến thức và suy ra kết luận từ các dữ liệu được tìm thấy từ thực tế Có thể kể đến như các hiểu biết mà Kepler thu được từ quan sát bầu trời đã đóng góp rất nhiều trong thiên văn học hiện đại, hoặc Darwin với lý thuyết sinh học hiện đại mà chúng ta biết tới ngày nay từ những quan sát trong hệ sinh thái Những thành quả trên kết hợp với sự phát triển nhanh chóng của khoa học kỹ thuật đã dẫn đến động lực phát triển các phương cách thu thập dữ liệu mới và các cách tiếp cận hiệu quả hơn để giúp máy móc có thể tự động tìm ra tri thức từ các dữ liệu có sẵn Có thể nói, nhu cầu thu nhận tri thức từ lượng dữ liệu khổng lồ đang ngày càng tăng, đặc biệt là trong thời đại của Dữ liệu lớn hiện nay chính là động lực của phát triển của các thuật toán học máy

Học máy là một lĩnh vực có tính chất liên ngành cao Các mô hình học máy được xây dựng dựa trên các sự kết hợp từ rất nhiều lĩnh vực khác nhau như trí tuệ nhân tạo, thống kê, tối ưu hóa, mô hình hoá, xử lý dữ liệu và nhiều ngành khoa học, kỹ thuật, toán học khác [30] Các mô hình học máy thường được phân thành ba loại chính theo cách tìm ra tri thức là học có giám sát (Supervised), học không giám sát (Unsupervised) và học tăng cường (Reinforcement Learning – RL), như được mô tả

Trang 32

Hình 3.5 Các phương pháp học máy chính và ứng dụng

Còn đối với học tăng cường, đây là một nhánh đặc biệt của học máy mà tập trung nghiên cứu vào cách thức một thực thể hoặc tác nhân (agent) học cách lựa chọn quyết định thực hiện các hành động (action) trong một môi trường (environment)

Trang 33

17

nhằm mục tiêu cực đại hóa một khoản thưởng (reward) nào đó về lâu dài Mô hình học này có cách tích luỹ tri thức tương tự như cách thức chúng ta học tập trong thế giới thực với nhiều lần thử giải một bài toán và cải thiện bản thân dần dần thông qua việc nhận thưởng hoặc phải bị phạt dựa trên điểm số mà chúng ta đạt được trên mỗi lần đưa ra kết quả

3.3.2 Thuật toán học máy kNN

Thuật toán láng giềng gần nhất (nearest neighbors) [31] là một trong những phương pháp học máy có giám sát lâu đời nhất và đơn giản nhất cho bài toán phân loại và hồi quy Thuật toán này được sử dụng rộng rãi trong nhiều lĩnh vực khoa học bao gồm khai phá dữ liệu, thị giác máy tính, nhận dạng ký tự, hệ thống đề xuất,… [32], [33]

Ý tưởng chính của thuật toán là mỗi đối tượng mới xuất hiện sẽ được gắn nhãn bằng cách suy ra từ các điểm dữ liệu tương tự nhất của nó trong tập huấn luyện 𝑇 Sự giống nhau được xác định bằng cách tính khoảng cách của 𝑛 thuộc tính giữa các đối tượng trước đó 𝑝 và đối tượng hiện tại chưa được gắn nhãn 𝑞 Vì vậy, những điểm giống nhau nhất này cũng được gọi là láng giềng gần nhất Thông thường, khoảng cách Euclide trong phương trình (3.1) được sử dụng làm phương pháp tính độ giống nhau cơ bản giữa hai đối tượng

𝑑(𝑝, 𝑞) = *+(𝑞!− 𝑝!)"#

(3.1)

Trang 34

18

Hình 3.6 Mô tả kết quả của thuật toán kNN với các hệ số k khác nhau

Phiên bản phổ biến nhất của thuật toán láng giềng gần nhất là k-láng giềng gần nhất (kNN) [34] Phương pháp này chỉ chọn ra k đối tượng có sự tương đồng nhất thay

vì sử dụng toàn bộ tập dữ liệu hiện có Ví dụ trên Hình 3.6 mô tả các xác định các đối tượng tương đồng nhất với các hệ số 𝑘 khác nhau Hơn nữa, việc tìm ra nhãn của dữ liệu mới cũng áp dụng trọng số với 𝑘 dữ liệu đang xét để cải thiện độ chính xác của phân loại dựa theo nhãn chiếm đa số Phương thức biểu quyết theo đa số này xác định trọng số cho các điểm tương đồng dựa trên khoảng cách của chúng đến đối tượng đang xét với trọng số lớn hơn sẽ được gán cho những người đối tượng gần hơn Điều này giúp tránh việc các đối tượng có sự khác biệt nhiều hơn nhưng có số lượng nhiều hơn có thể gây sai lệch kết quả phân loại

Nhãn 𝑞& của mỗi đối tượng mới 𝑞 được xác định bằng phương trình sau:

𝑞& = 𝑎𝑟𝑔𝑚𝑎𝑥&∈(+ 𝑤!

𝛿 6𝑐 = 𝑇!&8 (3.2)

Trang 35

19

trong đó 𝑇 là tập hợp 𝑘 láng giềng gần đối tượng đang xét nhất với các nhãn thuộc tập hợp 𝐶, 𝑤! là trọng số của láng giềng gần nhất thứ 𝑖 và 𝛿 6𝑐 = 𝑇!&8 là hàm Delta Kronecker trả về 1 nếu 𝑐 = 𝑇!&và 0 nếu ngược lại

3.3.3 Kỹ thuật học tăng cường

Như đã đề cập ở trên, học tăng cường (RL) là một nhánh lớn của học máy cũng như của lĩnh vực trí tuệ nhân tạo Việc áp dụng các thuật toán RL nhằm giúp mô hình đạt được mục tiêu đề ra trong một môi trường phức tạp mà các thuật toán học máy thông thường gần như không thể mô hình hoá được hoặc ngay cả chính con người cũng không thể đưa ra được quyết định chính xác để cho các mô hình học máy có thể học theo Bên cạnh đó, trong các ngữ cảnh mà việc ra quyết định tại một thời điểm có thể ảnh hưởng tới kết quả của toàn bộ quá trình trong tương lai, tức là bài toán có tính tương tác thì các phương pháp RL đem lại khả năng lên kế hoạch lâu dài hơn so với các cách tiếp cận khác

Các phương pháp RL được áp dụng cho việc giải quyết các vấn đề mà trong đó thực thể (agent) tương tác với môi trường theo các bước thời gian rời rạc (Hình 3.7) Tại thời điểm 𝑡, agent đang ở trạng thái 𝑠* và quyết định thực hiện một hành động 𝑎* Ở bước thời gian tiếp theo, nó đến trạng thái s+,% và nhận được phần thưởng 𝑟*,% Mục tiêu của việc huấn luyện agent là tối đa hóa lượng phần thưởng lâu dài mà agent tích luỹ được trong quá trình khám phá các hành động trên môi trường Có thể nói, các mô hình RL học thông qua quá trình tương tác trên môi trường, khác biệt với các phương pháp khác như học có giám sát hoặc không giám sát

Trang 36

20

Hình 3.7 Tương tác giữa thực thể và môi trường trong mô hình học tăng cường

Một số bài toán thường gặp với phương pháp RL:

- Huấn luyện máy tính chơi trò chơi của con người như trò chơi điện tử hoặc các trò chơi trí tuệ như cờ vua, cờ vây

- Mô phỏng hoạt động của con người bằng robot như di chuyển, cầm nắm đồ vật,… hoặc mô phỏng cử chỉ của các loài động vật

- Xây dựng các hệ thống xe tự hành với khả năng tự di chuyển trên đường, tự tối ưu hoá quãng đường đi,…

- Các mô hình xử lý ngôn ngữ tự nhiên như chatbot với khả năng học cách nói chuyện với khách hàng, các trình sinh ngôn ngữ hoặc tóm tắt nội dung,…

Để đi sâu hơn vào việc tìm hiểu lý thuyết của các thuật toán học tăng cường, trước tiên, ta cần xem xét thuộc tính Markov được mô tả trong phương trình (3.3) dưới đây:

𝑝(𝑠*,%|𝑠*, 𝑎*) = 𝑝(𝑠*,%|𝑠*, 𝑎*, 𝑠*-%, 𝑎*-%, … 𝑠., 𝑎.) (3.3)

Trang 37

21

Trong lý thuyết xác suất, một quá trình mang tính ngẫu nhiên được coi là có thuộc tính Markov nếu phân bố xác suất có điều kiện của các trạng thái tương lai của quá trình đó chỉ phụ thuộc vào trạng thái hiện tại với điều kiện là đã biết trạng thái hiện tại Một cách nhìn khác, ta có thể nói rằng, xác suất xảy ra một trạng thái trong tương lai của quá trình độc lập có điều kiện với tất cả các trạng thái đã xảy ra trong quá khứ Một quá trình mà các trạng thái của nó thoả mãn thuộc tính Markov thường được gọi là quá trình Markov (Markov Decision Process - MDP) Các bài toán học tăng cường có thể được mô tả dưới dạng MDP và được xác định bởi năm đại lượng dưới đây:

- Không gian trạng thái 𝑺: Là tập hợp các trạng thái mà agent có thể đạt tới

Trong đó mỗi trạng thái 𝑠 đều tôn trọng thuộc tính Markov Không gian này có thể là hữu hạn hoặc vô hạn

- Không gian hành động 𝑨: Tập hợp tất cả các hành động 𝑎 mà agent có thể

thực hiện Không gian này có thể là tập hợp hữu hạn hoặc vô hạn, bao gồm các giá trị rời rạc hoặc liên tục

- Một phân phối trạng thái bắt đầu 𝒑𝟎(𝒔𝟎): Xác suất của các trạng thái mà agent có khả năng bắt đầu từ đấy

- Một mô hình dịch chuyển động lực học với xác suất 𝐩(𝐬′| 𝐬,  𝐚): Xác

định xác suất chuyển sang trạng thái 𝑠′ tại thời điểm 𝑡 + 1 khi agent đang ở trạng thái 𝑠 và thực hiện hành động 𝑎

- Một hàm phần thưởng 𝒓(𝒔, 𝒂, 𝒔′): Định nghĩa phần thưởng mà agent nhận

được ngay lập tức sau khi thực hiện hành động 𝑎 ở trạng thái 𝑠 và chuyển trạng thái đến 𝑠′

Trình tự hành động của agent từ trạng thái bắt đầu cho tới khi đạt được trạng thái kết thúc trên môi trường được coi là một episode (hoặc lịch sử), kí hiệu τ =P𝑠., 𝑎., 𝑠%, 𝑎,… , 𝑠1, 𝑎1Q Kích thước 𝑇 của các episode có thể hữu hạn hoặc vô hạn tuỳ thuộc vào bài toán

Trái tim của các mô hình học tăng cường chính là chiến lược (policy) điều khiển agent lựa chọn hành động của mình tại mỗi trạng thái xác định Việc xác định

Trang 38

22

hành động tiếp theo tại trạng thái hiện tại được tính toán bằng một trong hai chiến lược sau:

- Theo phân phối xác suất 𝝅: 𝑺 → 𝑷(𝑨): Sử dụng phân phối xác suất 𝑃(𝐴)

cho khả năng thực hiện một hành động tại một trạng thái 𝑆

- Theo giá trị xác định 𝛍(𝒔𝒕): Hành động 𝑎* được ánh xạ trực tiếp từ trạng thái 𝑠* đang xét Một vấn đề chú ý với cách tiếp cận này là vùng tìm kiếm chiến lược phù hợp có thể cực kỳ lớn, hoặc thậm chí vô hạn Do đó việc tìm ra được chiến lược xác định cho bài toán thường là không thể

Để đánh giá độ hiệu quả của việc sử dụng chiến lược đang xét, ta cần tính toán phần thưởng tích luỹ (cumulative reward) 𝑅* bằng cách tính tổng của tất cả các phần thưởng 𝑟 mà agent nhận được từ thời điểm 𝑡 trở về sau:

𝑅* = + γ)1

trong đó 0 < γ ≤ 1 là tỷ lệ chiết khấu (discount) các phần thưởng mà agent nhận được trong tương lai Càng xa thời điểm hiện tại, 𝛾 càng nhỏ tức là giảm dần sự ảnh hưởng của các phần thưởng trong tương lai Điều này cũng có nghĩa rằng chúng ta quan trọng các phần thưởng ở trong tương lai gần hơn các phần thưởng ở rất xa sau này, thể hiện tính không chắc chắn trong tương lai Thông thường 𝛾 thường được thiết lập trong khoảng gần bằng 1 như 0.95 hay 0.99 Nếu 𝛾 dần tiến về 0 sẽ làm cho agent trở nên tham lam và chỉ quan tâm đến việc chọn các hành động cho phần thưởng tối đa ở trạng thái hiện tại mà không quan tâm hậu quả của hành động hiện tại có thể dẫn tới trong tương lai Trong trường hợp 𝑇 có kích thước hữu hạn và có trạng thái kết thúc xác định, ta có thể dùng giá trị 𝛾 = 1 nhằm khuyến khích agent tối đa hoá phần thưởng lâu dài trong tương lai

Sau khi có được cách đánh giá quá trình học của agent, ta tiếp tục xác định các thành phần của việc học tăng cường nhằm xây dựng phương pháp huấn luyện agent đạt được tối đa phần thưởng tích luỹ Giá trị 𝑄 của một cặp hành động - trạng thái

Trang 39

𝑉4(𝑠) = 𝐸4[𝑅*|𝑠* = 𝑠] (3.6)

Khi agent có thông tin về giá trị của từng trạng thái, agent sẽ biết cách chọn một hành động tại mỗi trạng thái mà giúp agent có thể đạt được trạng thái tiếp theo có phần thưởng chiết khấu kỳ vọng cao nhất Để agent có thể chọn được hành động tiếp theo, chúng ta có hai phương pháp thông dụng sau:

- Dựa trên giá trị (Value-based): Các phương pháp này cố gắng tìm ra hoặc

ước lượng hàm giá trị tối ưu Hàm giá trị là một ánh xạ giữa hành động và giá trị 𝑄 Phương pháp giá trị nổi bật có thể kể đến Q-learning và tất cả các cải tiến của nó như Deep Q Networks, Double Dueling Q Networks, v.v

- Dựa trên chiến lược (Policy-based): Các thuật toán dựa trên chiến lược

như Policy Gradients và REINFORCE cố gắng tìm chính sách 𝜋 tối ưu mà không cần tìm ra các giá trị 𝑄

Mỗi phương pháp đều có những ưu điểm của riêng Việc học trên chiến lược tốt hơn khi môi trường có tính liên tục và ngẫu nhiên và mô hình có sự hội tụ nhanh hơn Trong khi đó, việc học dựa trên giá trị giúp mô hình học hiệu quả và ổn định hơn Từ ưu nhược điểm của hai phương pháp trên, mô hình Actor-Critic [35] được đề xuất nhằm kết hợp hai phương pháp trên, bao gồm hai thành phần chính:

Trang 40

24

- Actor 𝛑𝛉(𝒔, 𝒂): Học cách xấp xỉ chiến lược tối ưu với 𝜃 là các thông số của

hàm xấp xỉ chiến lược π mà ta cần phải huấn luyện Actor ra quyết định chọn một hành động 𝑎 dựa trên một trạng thái 𝑠

- Critic 𝑸𝝋(𝒔, 𝒂): Học cách đánh giá chiến lược bằng cách ước tính giá trị

𝑄!(𝑠, 𝑎) cho mỗi cặp trạng thái – hành động với 𝝋 là thông số của hàm xấp xỉ giá trị Q Hàm mất mát của thành phần này được tính bằng phương pháp MSE

Hình 3.8 Phương pháp Actor-Critic với Policy Gradient

Để huấn luyện các mô hình DRL như Actor-Critic, phương pháp Policy Gradient thường được sử dụng Ý tưởng chính của phương pháp Policy Gradient là ước tính gradient bằng cách quan sát lịch sử hành động của agent bằng cách tuân theo chiến lược 𝝅𝜽 Sau đó 𝜽 được cập nhật bằng thuật toán tối ưu Gradient Descent:

Ngày đăng: 31/07/2024, 10:23

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN