Với Dataflow, bạn có thể tập trung vào phân tích dữ liệu và không cần lo lắng về việc cấu hình tài nguyên và đảm bảo hoàn thành thành công của đường ống dữ ệu.. Với BigQuery, có thể thực
Trang 1ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI
BÁO CÁO Chủ đề: Google Cloud Big Data and Machine Learning
Fundamentals
Giảng viên hướng dẫn: TS Bùi Quang Hưng
Hà Nội, Ngày 1, tháng 10, năm 2023
Trang 21 Data Engineering for Streaming data 4
1.3 Implementing streaming pipelines on Cloud Dataflow 5
2.4.1 Các giai đoạn chính trong mộ ự án họt d c máy 8 2.4.2 Các lệnh chính của BigQuery ML 9
3 Machine Learning Options on Google Cloud 9
4 The Machine Learning Workflow with Vertex AI 13
4.2.1.1 Supervised learning (Học có giám sát): 15 4.2.1.2 Unsupervised learning (Học không giám sát): 15
Trang 33
Trang 41 Data Engineering for Streaming data
Trong phần này, ta sẽ khám phá kỹ thuật kỹ thuậ ữ ệu cho dữ ệu luồng vớt d li li i mục tiêu xây dựng một giải pháp d liữ ệu thời gian thực với các sản phẩm và dịch vụ của Google Cloud
Điều này bao gồm cách tiếp nhận dữ ệu luồng bằng cách sử dụng Pub/Sub, xử lý li
dữ ệu bằng Dataflow và trựli c quan hóa kết quả bằng Looker và Looker Studio Trong quá trình xử lý dữ ệu vớli i Dataflow và trực quan hóa bằng Looker hoặc Looker Studio, dữ ệu thường được lưu trữ và phân tích trong một kho dữ ệu như BigQuery.li li
Dữ ệu luồng là gì, nó khác biệli t với xử lý theo lô như thế nào và tại sao nó quan
trọng Xử lý theo lô là khi việc xử lý và phân tích xảy ra trên mộ ập hợp dữ t t liệu đã được lưu trữ Một ví dụ là h thệ ống tính lương và thanh toán phải được x lý theo tuử ần hoặc theo tháng Dữ ệu luồng là mộli t luồng các bản ghi dữ ệu được tạo ra bởi các li nguồn dữ ệu khác nhau Việli c x lý d liử ữ ệu luồng xảy ra khi dữ ệu chảy qua hệ li thống Điều này dẫn đến phân tích và báo cáo sự kiện khi chúng xảy ra Một ví d là ụ phát hiện gian lận hoặc xâm nhập Việc xử lý dữ ệu luồng có nghĩa là dữ ệu đượli li c phân tích gần thời gian thực và các hành động sẽ được th c hiự ện trên dữ ệu càng li nhanh càng tốt Xử lý dữ ệu hiện đại đã tiến bộ từ việli c xử lý theo luôi cổ điển của dữ
liệu sang làm việc với luồng dữ liệu thời gian thực Một ví dụ về điều này là việc phát trực tuyến âm nhạc và phim Không còn cần phải t i xuống toàn bộ bộ phim hoặả c album vào một thi t bế ị cục bộ Luồng dữ ệu là mộli t phần quan trọng trong thế giớ ữ i d liệu lớn
1.1 Pub/sub
Pub/Sub là một thuật ngữ viết t t cắ ủa Publisher/Subscriber, đó là một kiểu kiến trúc hoặc mô hình giao tiếp trong lĩnh vực truyền thông và phân phối thông tin Nó đượ ử c s dụng để truyền và đăng ký các thông điệp trong hệ ống phân tán.th
Trong kiến trúc Publisher/Subscriber, có hai thành phần chính:
o Publisher (Người đăng): Là thành phần tạo ra và gửi các thông điệp hoặ ự c s kiện Publisher không biết thông tin về các người đăng ký hoặc ai nhận thông điệp của nó
o Subscriber (Người đăng ký): Là thành phần đăng ký để ận các thông điệp nh hoặc sự kiện từ các nhà xuấ ản Subscriber chỉ quan tâm đến các thông t b điệp hoặ ự kiện mà nó muốn nhận và không biế ề các người đăng khác.c s t v Pub/Sub cung cấp một giải pháp phân phối thông điệp linh hoạt và không đồng bộ Người đăng gửi các thông điệp vào mộ ịa chỉ t đ (chủ đề ụ ) c thể, và người đăng ký chỉ đăng ký để nhận các thông điệp từ ủ đề đó mà họ quan tâm Khi mộch t thông điệp được gửi đến chủ đề, nó sẽ được phân phối đến tấ ả các người đăng ký đang lắng t c nghe chủ đề đó
Trang 5Pub/Sub có thể được sử dụng trong nhiều lĩnh vực và ứng dụng khác nhau, bao gồm hệ thống phân tán, truyền thông, IoT (Internet of Things), hệ thống thông báo sự kiện, và nhiều nền tảng công nghệ khác
1.2 Dataflow
Sau khi thu thập tin nhắn từ nguồn dữ ệu theo luồng, chúng ta cần đưa dữ ệu vào li li kho dữ ệu để phân tích Đây là lúc Dataflow xuấli t hiện Dataflow tạo ra một đường ống để xử lý d liữ ệu theo luồng và dữ ệu lô thông qua các bước trích xuấli t, biến đổi và tải dữ liệu (ETL)
Trong quá trình thiế ế đường ống dữ ệu, chúng ta cần xem xét mộ ố t k li t s câu hỏi
Có thể mã đường ống tương thích vớ ả dữ ệu lô và dữ ệu theo luồng, hay cần phải c li li i chỉnh sử ại? SDK (bộ a l công cụ phát ển phần mềtri m) của mã đường ống có đủ các biến đổ ổng hợp trung chuyển và cử ổ i, t a s thời gian, và có thể xử lý dữ ệu muộn li không? Có các mẫu hoặc giải pháp hiện có nào có thể được tham khảo?
Apache Beam là một gi i pháp phả ổ biến cho thiế ế đường ống dữ liệu Đó là một k t
mô hình lập trình thống nhất nguồn mở, cho phép xác định và thực thi các đường ống
xử lý d liữ ệu bao gồm ETL, xử lý lô và theo luồng Apache Beam sử dụng cùng một
mô hình lập trình cho cả dữ liệu lô và dữ liệu theo luồng Nó cũng có khả năng di động, có thể hoạ ộng trên nhiều môi trường thựt đ c thi như Dataflow và Apache Spark Hơn nữa, Apache Beam còn cho phép viết và chia sẻ các kết nối và thư viện biến đổi riêng
Apache Beam cung cấp các mẫu đường ống sẵn có, giúp giảm thiểu công việc xây dựng đường ống từ đầu Nó hỗ ợ viếtr t đường ống bằng Java, Python hoặc Go SDK của Apache Beam bao gồm các công cụ phát triển phần mềm, cung cấp thư viện biến
đổi và k t nế ối dữ liệu đến các nguồn và lưu trữ Nó tạo ra một biểu diễn mô hình từ mã của bạn có thể di động trên nhiều trình chạy khác nhau Các trình chạy này có thể thực thi mô hình của bạn trên nhiều công cụ khác nhau, trong đó Dataflow là mộ ựa chọn t l phổ biến
1.3 Implementing streaming pipelines on Cloud Dataflow
Dataflow là một dịch vụ quản lý đầy đủ cho việc th c thi các đưự ờng ống xử lý dữ liệu Apache Beam trong môi trường Google Cloud Nó giúp giảm công việc bảo trì và quản lý hạ tầng bằng cách tự động hóa các hoạ ộng như tối ưu hóa đồ ị ực thi, t đ th th lên lịch công việc phân tán, tự động khắc phục lỗi và cân bằng công việc Dataflow hoạt động trong môi trường không có máy chủ và không yêu cầu quản lý từ đội ngũ vận hành (NoOps), vì các hoạ ộng bảo trì, giám sát và mở rộng đều đượ ự động t đ c t hóa
Dataflow là một công cụ hữu ích cho cả những lập trình viên Java và Python kinh nghiệm, và cung cấp các mẫu sẵn có để xử lý các tình huống phổ biến trong Google Cloud Có ba loại mẫu Dataflow: mẫu xử lý theo luồng (streaming), mẫu xử lý lô
Trang 6(batch) và mẫu tiện ích (utility) Các mẫu này giúp xử lý dữ liệu liên tục, d liữ ệu hàng
loạt và các ho t đạ ộng liên quan đến nén, xóa và chuyển đổ ữ ệu.i d li
Dataflow giúp giảm công việc giám sát và quản lý tài nguyên tính toán và lưu trữ, tập trung vào phân tích thông tin từ tập dữ ệu và giúp tiếli t kiệm thời gian và công sức Với Dataflow, bạn có thể tập trung vào phân tích dữ liệu và không cần lo lắng về việc cấu hình tài nguyên và đảm bảo hoàn thành thành công của đường ống dữ ệu li Dataflow được tích hợp tố ới các dịt v ch vụ khác trong hệ sinh thái Google Cloud và có
thể xuấ ữ t d liệu đến BigQuery và nhiều lựa chọn khác
1.4 Looker
Looker và Looker Studio là hai giải pháp của Google Cloud để tạo môi trường trực quan hóa dữ ệu và chia sẻ thông tin Looker hỗ ợ BigQuery và hơn 60 cơ sở dữ ệu li tr li SQL khác, cho phép nhà phát triển xác định mộ ớp mô hình ngữ nghĩa bằng Looker t l Modeling Language hoặc LookML Looker là một nền tảng web, tích hợp dễ dàng vào quy trình làm việc hiện có và có thể chia sẻ với nhiều nhóm trong tổ chức
Looker cung cấp bảng điều khiển trực quan hóa dữ ệu, chẳng hạn như bảng điều li khiển Business Pulse, để hiển thị thông tin quan trọng như số ợng ngườlư i dùng mới,
xu hướng doanh số và số ợng đơn hàng Các bảng điều khiển này giúp điều chỉnh lư công việc, xác định vấn đề của khách hàng và khám phá doanh thu bị mất Looker cung cấp nhiều tùy chọn trực quan hóa dữ ệu như biểu đồ ện tích, biểu đồ đường, li di
sơ đồ Sankey và phễu
Looker cũng cho phép chia sẻ bảng điều khiển thông qua các dịch vụ lưu trữ như Google Drive, Slack và Dropbox
1.5 Looker Studio
Looker Studio là một công cụ ực quan hóa dữ ệu phổ biến khác đượtr li c cung cấp bởi Google Looker Studio được tích hợp vào BigQuery, cho phép trực quan hóa dữ liệu chỉ với vài cú nhấp chuột Điều này có nghĩa là sử dụng Looker Studio không yêu cầu sự hỗ ợ từ mộtr t quản trị viên để thiết lập kết nối d liữ ệu, điều này lại là một yêu cầu với Looker Bảng điều khiển Looker Studio đượ ử dụng rộng rãi trong nhiều sản c s phẩm và ứng dụng của Google Ví dụ, Looker Studio được tích hợp vào Google Analytics để giúp trực quan hóa tổng quan về một trang web tiếp thị Bảng điều khiển này trực quan hóa tổng số ợng khách truy cập thông qua mộ ản đồ.lư t b
Ba bước cần thiế ể tạo mộ ảng điều khiển Looker Studio.t đ t b
o Đầu tiên, chọn một mẫu Có thể bắ ầu vớt đ i một mẫu có sẵn hoặc báo cáo trống
o Thứ hai, liên kế ảng điều khiển với nguồn dữ ệu Điều này có thể đến từ t b li BigQuery, mộ ệp cục bộ hoặ ứng dụng Google như Google Sheets hoặt t c c Google Analytics - hoặc kết hợp các nguồn này
o Và thứ ba, khám phá bảng điều khiển
Trang 72 Bigdata with B igQuery
BigQuery cung cấp hai dịch vụ là lưu trữ và phân tích dữ liệu
2.1 Lưu trữ (Storage)
BigQuery cung cấp mộ ệ ống lưu trữ quản lý dữ ệu tự động Dữ ệu có thể t h th li li được tải lên BigQuery từ nhiều nguồn khác nhau, bao gồm d liữ ệu nộ ộ i b (internal data) được lưu trực tiếp trong BigQuery, dữ ệu bên ngoài (external data), dữ ệu đa li li đám mây (multi-Cloud data) và các bộ dữ ệu công khai (public data sets).li
BigQuery quản lý việc sao chép dự phòng và tự động mở rộng lưu trữ dữ ệu li Ngoài ra, BigQuery cũng cho phép truy vấn dữ ệu từ li các nguồn dữ ệu bên ngoài li như Cloud Storage hoặc Google Sheets mà không cần phải nhập dữ ệu vào BigQuery li trước Điều này giúp tiết ki m thời gian và tránh sự không nhất quán trong việc lưu trữ ệ
và xử lý d liữ ệu riêng biệt
2.2 Phân tích (Analytics)
BigQuery cung cấp một công cụ phân tích mạnh mẽ dựa trên ngôn ngữ truy vấn SQL Với BigQuery, có thể thực hiện các truy vấn phân tích trên các tập dữ ệu lớn li một cách nhanh chóng và hiệu quả BigQuery đượ ối ưu hóa để ạy các truy vấn c t ch phân tích trên các tập dữ ệu lớn Nó có thể xử li lý truy vấn trên hàng terabyte dữ ệu li trong vài giây và hàng petabyte trong vài phút Điều này giúp phân tích các tập dữ liệu lớn một cách hiệu quả và nhận được thông tin hữu ích gần như trong thời gian thực
2.3 Tính năng
BigQuery hỗ ợ các tính năng phân tích như truy vấn tức thì (ad hoc analysis) sử tr dụng SQL tiêu chuẩn, phân tích không gian địa lý (geospatial analytics) sử dụng các kiểu dữ ệu địa lý và hàm địa lý trong SQL tiêu chuẩn, xây dựng mô hình học máy li (machine learning) bằng BigQuery ML và xây dựng các bảng điều khiển thông tin kinh doanh tương tác (business intelligence dashboards) bằng BigQuery BI Engine BigQuery cung cấp truy vấn tương tác mặc định, nghĩa là các truy vấn được th c thi ự khi cần thiết Ngoài ra, BigQuery cũng h trỗ ợ truy vấn hàng loạt (batch queries), trong
đó mỗi truy vấn được đưa vào hàng đợi và bắt đầu khi tài nguyên trống rãi Thông thường, truy vấn hàng loạt b t đắ ầu sau vài phút
Tóm lại, BigQuery là một dịch v toàn dụ iện cung cấp khả năng lưu trữ dữ ệu và li phân tích dữ ệu một cách mạnh mẽ.li
2.4 BigQuery ML
BigQuery ML là một dịch vụ trong Google BigQuery, nền tảng dữ ệu lớn củli a Google, cho phép người dùng thực hiện việc xây dựng và triển khai các mô hình học máy trực tiếp trên dữ liệu lưu trữ trong BigQuery, mà không cần phải di chuyển dữ
liệu ra khỏi hệ ống.th
BigQuery ML cung cấp mộ ập hợp các câu lệnh SQL mở rộng cho phép ngườt t i dùng định nghĩa, huấn luyện và sử dụng các mô hình học máy như hồi quy tuyến tính,
Trang 8phân ại, gom cụm và phát hiện ngoạ ệ Ngườlo i l i dùng có thể sử dụng ngôn ngữ SQL quen thuộc để thực hiện các công việc học máy mà không cần phải vi t mã Python ế hoặc R
BigQuery ML tích hợp với các tính năng mạnh mẽ của BigQuery như khả năng xử
lý dữ liệu lớn, truy vấn tốc độ cao và tính toán phân tán Nó cung cấp cho người dùng một giao diện đơn giản để triển khai các mô hình học máy trực tiếp trên dữ liệu của họ trong BigQuery, giúp gi m thiả ểu việc chuyển dữ liệu giữa các h thệ ống và tăng tốc độ phân tích dữ liệu
2.4.1 Các giai đoạn chính trong mộ ự án học máyt d
Hãy khám phá các giai đoạn chính của một dự án học máy
Trong Giai đoạn 1, bạn trích xuất, biến đổi và tả ữ ệu vào BigQuery nếu nó i d li chưa có sẵn Nếu bạn đã sử dụng các sản phẩm Google khác như YouTube ví dụ, hãy tìm kiếm các kế ố ễ dàng để đưa dữ liệu vào BigQuery trước khi xây dựng pipeline t n i d của bạn Bạn có thể bổ sung kho d liữ ệu hiện có của mình bằng các nguồn dữ ệu khác li bằng cách sử dụng các SQL join
Trong Giai đoạn 2, bạn chọn và tiền xử lý các đặc trưng Bạn có thể sử dụng SQL
để tạo tập dữ ệu huấn luyện cho mô hình học từ đó Bạn sẽ nhớ rằng BigQuery ML li
thực hiện một số ền xử ti lý dữ liệu cho bạn, chẳng hạn như mã hóa one-hot của các biến phân loại của bạn Mã hóa one-hot chuyển đổ ữ ệu phân loại d li i của bạn thành dữ liệu số được yêu cầu bởi một mô hình huấn luyện
Trang 9Trong giai đoạn 3, bạn tạo mô hình bên trong BigQuery Điều này được th c hiự ện bằng cách sử dụng lệnh "create model", đặt tên cho nó, xác định loại mô hình và truyền nó vào một truy vấn SQL vớ ập dữ ệu huấn luyện củi t li a bạn, từ đó bạn có thể chạy truy vấn
Trong giai đoạn 4, sau khi mô hình của bạn được huấn luyện, bạn có thể thực hiện một truy vấn "ML.evaluate" để đánh giá hiệu suấ ủa mô hình đã huấn luyện trên tập t c
dữ ệu đánh giá củli a bạn
Trong Giai đoạn 5, giai đoạn cuối cùng khi bạn hài lòng với hiệu suất của mô hình, bạn sau đó có thể sử dụng nó để đưa ra dự đoán Để làm điều đó, gọ ệnh i l
"ML.predict" trên mô hình đã được huấn luyện để ả về dự đoán và độ tr tin cậy của mô hình đối với những dự đoán đó Vớ ết quả, trường nhãn củi k a bạn sẽ có thêm từ
"predicted" vào tên trường Đây là dự đoán của mô hình cho nhãn đó
2.4.2 Các lệnh chính của BigQuery ML
Các lệnh chính trong BigQuery ML bao gồm:
CREATE MODEL: Tạo một mô hình học máy mới trong BigQuery Ví dụ:
ML.EVALUATE: Đánh giá hiệu suất của mô hình đã huấn luyện sử dụng trên tập
dữ liệu đánh giá Ví dụ: ML.EVALUATE(MODEL mymodel, ( SEL
ML.PREDICT: Sử dụng mô hình đã huấn luyện để làm dự đoán trên dữ liệu mới
Ví dụ: ML.PREDICT(MODEL mymodel, ( SELECT * FROM
ML.TRAINING_INFO: Truy xuất thông tin về quá trình huấn luyện của mô hìn
Ví dụ: ML.TRAINING_INFO(MODEL mymodel)
ML.FEATURE_INFO: Truy xuất thông tin về đặc trưng trong mô hình Ví dụ: ML.WEIGHTS: Truy xuất các trọng số của mô hình tuyến tính sau quá trình huấn luyện Ví dụ: ML.WEIGHTS(MODEL mym
ML.FEATURE_IMPORTANCE: Truy xuất độ quan trọng của các đặc trưng trong
mô hình Ví dụ: ML.FEATURE_IMPORTANCE(MODEL mymodel)
3 Machine Learning Options on Google Cloud
Google Cloud cung cấp bốn tùy chọn để xây dựng các mô hình học máy
Tùy chọn đầu tiên là BigQuery ML BigQuery ML là một công cụ để sử dụng truy vấn SQL để tạo và thực thi các mô hình học máy trong BigQuery Nếu dữ ệu củli a bạn
đã có trong BigQuery và vấn đề của bạn phù hợp với các mô hình ML được định nghĩa trước, đây có thể là lựa chọn của bạn
Tùy chọn thứ hai là Pre-built APIs, đó là các giao diện lập trình ứng dụng Tùy chọn này cho phép bạn tận dụng các mô hình học máy đã được Google xây dựng và
Trang 10huấn luyện sẵn, vì vậy bạn không cần phải xây dựng các mô hình học máy riêng nếu bạn không có đủ dữ ệu huấn luyện hoặc đủ chuyên môn về học máy trong nội bộ li công ty
Tùy chọn thứ ba là AutoML, một giải pháp không cần mã lập trình để bạn có thể xây dựng các mô hình học máy riêng trên Vertex AI thông qua giao diện click-and-point
Cuối cùng, có tùy chọn đào tạo tùy chỉnh (Custom training), thông qua đó bạn có thể viết mã cho môi trường học máy riêng của mình, quá trình đào tạo và triển khai, điều này mang lại tính linh hoạt và cung cấp sự kiểm soát đầy đủ về quy trình ML
3.1 Pre-built APIs
Các mô hình Học máy tốt yêu cầu nhiều dữ ệu huấn luyện chấli t lượng cao Tuy nhiên, nếu bạn không có đủ dữ ệu, có thể sử dụng các API được xây dựng sẵn để ếp li ti cận công nghệ Học máy mà không cần tạo ra mô hình riêng Các API này đóng vai trò như các khối xây dựng để tạo ra ứng dụng mà không đòi hỏi nhiều chi phí và phứ ạp c t
để xây dựng mô hình từ đầu
Google cung cấp các API Học máy được xây dựng sẵn như Speech- -Text API, to Cloud Natural Language API, Cloud Translation API, Text-to-Speech API, Vision API
và Video Intelligence API Mỗi API có chức năng riêng, từ chuyển đổi giọng nói thành văn bản, nhận dạng các phần tử trong văn bản và cảm xúc, dịch văn bản qua các ngôn ngữ, chuyển đổi văn bản thành giọng nói chất lượng cao, nhận dạng nội dung trong hình ảnh tĩnh và nhận dạng chuyển động và hành động trong video
Google đã sử dụng các tập dữ ệu của mình để huấn luyện các mô hình này Ví dụ, li API Vision được huấn luyện trên tập dữ ệu hình ảnh của Google, API Speech- -Text li to được huấn luyện trên các chú thích YouTube, và API Translation được xây dựng trên công nghệ dịch máy học nơ-ron của Google