Chương 1: Phụ lục hình ảnh và bảng. - Chương 2: Từ viết tắt và ý nghĩa. - Chương 3: Tổng quan sơ lược về luận văn tốt nghiệp. Phân tích đánh giá các công trình nghiên cứu đã có của các tác giả liên quan đến luận văn tốt nghiệp, nêu lên những vấn đề còn tồn tại và vấn đề mà luận văn tập trung nghiên cứu.
- Chương 4: Đề xuất các phương án liên quan đến mô hình học máy, phương án thu thập xử lý dữ liệu và phương pháp điều khiển cũng như kiểu dữ liệu đầu vào cho bộ điều khiển. Từ đó, lựa chọn phương án phù hợp để thực hiện trong luận văn. - Chương 5: Thu thập và xử lý dữ liệu đầu vào, phương án tổng hợp, chuyển đổi và xử lý dữ liệu nhiễu của tập dữ liệu đầu vào. Ngoài ra, Chương 5 cũng tập trung vào việc xác định và đánh giá mối tương quan giữa các dữ liệu đầu vào.
- Chương 6: Nghiên cứu tập trung vào phân tích cấu trúc của mô hình LSTM và Bi- LSTM, đồng thời đánh giá mối quan hệ giữa chúng dựa trên các thông số liên quan, cấu trúc mạng và dữ liệu đầu vào. Trong Chương 6, cũng đã đi vào chi tiết về các thông số được sử dụng trong quá trình huấn luyện mô hình Bi-LSTM. - Chương 7: Tập trung vào đo đạc thực nghiệm mô hình dự đoán trên các khoảng thời gian nhất định trong tập dữ liệu dataset. Ngoài ra, Chương 7 cũng so sánh tính hiệu quả của mô hình sử dụng phương pháp truyền thống (reactive autoscaler), phương pháp sử dụng Bi-LSTM và phương pháp kết hợp.
Từ đó đưa ra được nhận xét về hiệu xuất của từng mô hình. - Chương 8: Từ những phân tích đánh giá và thực nghiệm Chương 8 đưa ra những nhận xét về tính hiệu quả của mô hình. Chương 8 cũng chỉ ra những gì mà luận văn đã đạt được và hướng phát triển trong tương lai. - Chương 9: Tài liệu tham khảo.
7 CHƯƠNG 2: LỰA CHỌN PHƯƠNG ÁN 2.1 Lựa chọn mô hình dự đoán tải của hệ thống Như đã trình bày trong phần tổng quan, hiện nay có nhiều mô hình dự đoán tải cho hệ thống được đề xuất và được chia làm hai phần chính: reactive và proactive. Trong khi phương án tiếp cận reactive đề cập đến các giải pháp như HPA và ELASTICDOCKER thì phương pháp tiếp cận proactive sử dụng các giải thuật ARIMA, RNN, LSTM, Bi-LSTM, etc. Phương án reactive có thể dễ dàng trong việc tiếp cận cũng như cách thức thực hiện. Tuy nhiên, vẫn có những điểm bất lợi liên quan đến khả năng đáp ứng của hệ thống đối với các ứng dụng yêu cầu tải biến động.
Do đó, phương pháp proactive hứa hẹn sẽ cho phép xây dựng các mô hình phù hợp với các kiểu dữ liệu phi tuyến hoặc biên độ giao động cao. Mặc dù có rất nhiều mô hình dự đoán liên quan đến phương án tiếp cận proactive, luận văn chỉ đề xuất phân tích ba mô hình dự đoán: ARIMA, LSTM và Bi-LSTM từ đó có thể lựa chọn được phương án phù hợp.1 Mô hình ARIMA: Mô hình ARIMA, Autoregressive Integrated Moving Average, có sự liên quan đến chuỗi thời gian và sự tương quan giữa giá trị trong quá khứ đến giá trị hiện tại. Mức độ tương quan càng lớn khi chuỗi càng gần đến thời điểm hiện tại. Do đó, mô hình ARIMA sẽ tìm cách đưa vào các biến trễ nhằm tạo ra một mô hình dự báo tốt hơn.
ARIMA là mô hình biểu diễn phương trình hồi quy tuyến tính đa biến của các biến đầu vào: Auto Regressive: Thành phần tự hồi quy tập hợp các độ trễ của biến hiện tại. Độ trễ bậc p là giá trị lùi về quá khứ p bước thời gian của chuỗi. Độ trễ dài hoặc ngắn trong quá trình AR phụ thuộc vào tham số trễ p. Quá trình hồi quy với độ trễ bậc p của chuỗi 𝑥𝑡 được biểu diễn như sau: 𝐴𝑅 (𝑝) = ∅0 + ∅1 𝑥𝑡−1 + ⋯ + ∅𝑝 𝑥𝑡−𝑝 Moving Regressive: Quá trình trung bình trượt được hiểu là quá trình dịch chuyển hoặc thay đổi giá trị trung bình của một chuỗi theo thời gian.
Do chuỗi được giả định là dừng nên quá trình thay đổi trung bình dường như là một chuỗi nhiễu trắng (một thành phần ngẫu nhiên thể hiện cho yếu tố không thể dự đoán của mô hình và không có quy luật). Quá trình moving average sẽ tìm mối liên hệ về mặt tuyến tính giữa các phần tử ngẫu nhiên 𝜖𝑡 (stochastic term). Chuỗi nhiễu trắng này phải thoả mãn tính chất: 𝐸 (𝜖𝑡 ) = 0 (1) { 𝜎(𝜖𝑡 ) = 𝛼 (2) 𝜌(𝜖𝑡 , 𝜖𝑡−𝑠 ) = 0, ∀𝑠 ≤ 𝑡 (3) Trong đó: (1) kỳ vọng của chuỗi bằng 0 để đảm bảo chuỗi dừng không có sự thay đổi về mặt trung bình theo thời gian. (2) là phương sai của chuỗi không đổi.
8 Các công trình nghiên cứu phân tích tính hiệu quả của ARIMA trong bài toán scaling cho thấy rằng tốc độ dự đoán của mô hình ARIMA chậm. Ngoài ra độ chính xác của mô hình cũng sẽ giảm xuống trong trường hợp dự đoán trên nhiều bước thời gian.2 Mô hình LSTM: Mô hình LSTM dựa trên mô hình RNN (recurrent neural network) phục vụ cho quá trình xử lý thông tin dạng chuỗi. RNN có thể mang thông tin đầu ra của các state trước đó tới state sau và ở state sau sẽ kết hợp tất cả các thông tin và dự đoán một đối tượng nào đó. Trong mô hình RNN đối với các state càng xa thì nó sẽ càng bị vấn đề vanishing gradient và các hệ số không được cập nhật với các thông tin ở xa.
Do đó các thông tin ở xa sẽ không có ý nghĩa cho quá trình học do vinishing gradient (short-term memory). Mô hình LSTM không chỉ hỗ trợ cho việc học và xử lý các thông tin ở gần mà nó còn có thể học và xử lý thông tin xa trong quá khứ. Do đó, những thông tin quan trọng trong quá khứ sẽ được giữ lại. Hình 5: Mô hình hoạt động của mạng RNN.
Hình 6: Mô hình hoạt động bên trong của một node RNN. Trong hình ở trên, đối với mạng RNN thì quá trình xử lý là một phép nhân đơn giản của input (xt) và kết quả của quá trình xử lý trước đó. Sau đó kết quả của phép nhân sẽ đi qua một hàm Tanh. 9 Hình 7: Mô hình hoạt động của LSTM.
Mô hình Long short-term memory ở Hình 7 chỉ ra rằng có 2 cổng forget và output được thêm vào trong đó: Forget gate: sẽ quyết định xem cần lấy bao nhiêu từ state trước. Output gate: quyết định xem cần lấy bao nhiêu từ cell state để trở thành output của hidden state. Input gate: sẽ quyết định lấy bao nhiêu từ input của state và hidden layer của layer trước đó. Mô hình LSTM có thể giải quyết được vấn đề vanishing gradient tốt hơn so với mô hình RNN.
Do đó, mô hình LSTM thường được dùng phổ biến hơn RNN cho các bài toán thông tin dạng chuỗi.3 Mô hình Bi-LSTM: Cả hai mô hình LSTM và mô hình Bi-LSTM đều dựa trên kiến trúc của Recurrent Neural Network thường được sử dụng cho các giải pháp liên quan đến xử lý ngôn ngữ tự nhiên như language modeling, text classification. Nhìn chung cả hai mô hình LSTM và mô hình Bi-LSTM đều tương tự về cấu trúc. Khác với mô hình LSTM nơi mà quá trình đưa dữ liệu từ tính toán trước đó tới tính toán tiếp theo sẽ diễn ra theo một chiều, mô hình Bi-LSTM là một recurrent neural network được sử dụng chủ yếu cho xử lý ngôn ngữ tự nhiên có thể sử dụng thông tin đầu vào theo hai chiều. Bi-LSTM có nhiều lớp (layers) hơn so với mô hình LSTM vì yếu tố xử lý thông tin theo hai chiều và chúng ta có thể kết hợp kết quả đầu ra của các layer theo các cách: trung bình, tổng, nhân, etc.
- Bi-LSTM sẽ thu nhận dữ liệu theo hai chiều, chiều tương lai và chiều về quá khứ, do cấu trúc của Bi-LSTM có hai lớp hồi quy xử lý dữ liệu đầu vào theo hai chiều ngược nhau. Do đó, cho phép mô hình có thể học theo hai chiều độc lập. - Mô hình LSTM được thiết kế nhằm mục đích xử lý hiện tượng Vanishing Gradient thường xảy ra trong mô hình RNN. Tuy nhiên, hiện tượng này vẫn diễn ra đối với long-term memory.
Bi-LSTM có khả năng giải quyết vấn đề đó một cách tốt hơn vì dữ liệu được thu thập và xử lý theo hai chiều cho phép nó trích xuất và giữ lại được thông tin quan trọng và hữu ích trong một chuỗi thời gian dài. Ngoài ra, cũng vì dữ liệu được phân tích theo hai chiều nên việc tính toán cũng như dự đoán sẽ chính xác 10 hơn so với LSTM, đặc biệt đối với các bài toán liên quan đến dán nhãn dữ liệu theo thời gian. Bởi vì Bi-LSTM xử lý thông tin theo hai chiều, do đó các thông tin không được sử dụng bởi mô hình LSTM sẽ được xử lý bởi Bi-LSTM dẫn đến tăng tính chính xác của mô hình dự đoán. Ngoài ra, các nghiên cứu trước đó sử dụng và đánh giá các mô hình cũng nhận định rằng mô hình Bi-LSTM có kết quả dự đoán tốt hơn.
Hình 8: Mô hình hoạt động của Bi-LSTM. Ở Hình 8 ta thấy rằng mô hình Bi-LSTM sẽ có hai lớp Forward Layer và Backward Layer. Trong đó chiều của hai lớp ngày là ngược nhau nhưng lại sử dụng chung dữ liệu đầu vào.4 Kết luận Từ những phân tích về các model học máy, mô hình Bi-LSTM cho thấy được khả năng xử lý dữ liệu theo thời gian và sử dụng dữ liệu trong quá khứ với dữ liệu đầu vào có thể không tuyến tính, và chuỗi dữ liệu có độ dài thay đổi. Do đó, Bi-LSTM được lựa chọn và sử dụng cho quá trình dự đoán số lượng lưu lượng truy cập mà hệ thống sẽ cần phải xử lý trong tương lai.2 Lựa chọn phương pháp thu thập và đo đạc dữ liệu Việc thu thập dữ liệu của hệ thống cho mô hình thực nghiệm được triển khai trong môi trường điện toán đám mây đòi hỏi các yếu tố: - Khả năng tương thích của các mô hình thu thập dữ liệu.
- Cấu trúc của dữ liệu thu thập và cách thức xử lý dữ liệu trước khi đưa vào để tính toán. Vì ứng dụng chạy trong các hệ thống khác nhau sẽ có kiến trúc khác nhau và phương án thu thập xử lý dữ liệu cũng khác nhau. Do đó, luận văn đề xuất một mô hình tổng quát một ứng dụng chạy trong Kubernetes như sau: 11 Hình 9: Mô hình microservices chạy trong Kubernetes với Load Balancer.