Tải bản đầy đủ (.pdf) (19 trang)

Báo Cáo Chủ Đề Google Cloud Big Data And Machine Learning Fundamentals.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.92 MB, 19 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>Giảng viên hướng dẫn:</b> TS. Bùi Quang Hưng

<i>Hà Nội, Ngày 1, tháng 10, năm 2023</i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

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

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

3

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>1. Data Engineering for Streaming data</b>

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 tố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 tồ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.

<b>1.1. Pub/sub</b>

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ủ đề đó.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Pub/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.

<b>1.2. Dataflow</b>

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.

<b>1.3. Implementing streaming pipelines on Cloud Dataflow</b>

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ô

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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 ngun tính tố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 ngun và đảm bảo hồ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.

<b>1.4. Looker</b>

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.

<b>1.5. Looker Studio</b>

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.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>2.Bigdata with BigQuery</b>

BigQuery cung cấp hai dịch vụ là lưu trữ và phân tích dữ liệu.

<b>2.1. Lưu trữ (Storage)</b>

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.

<b>2.2. Phân tích (Analytics)</b>

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.

<b>2.3. Tính năng</b>

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

<b>2.4. BigQuery ML</b>

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,

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

phâ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 tố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 u cầu bởi một mơ hình huấn luyện.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Trong 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ự đố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ự đố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ự đố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ự đố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ề q 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 q 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)

<b>3. Machine Learning Options on Google Cloud</b>

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à

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

huấ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 sốt đầy đủ về quy trình ML.

<b>3.1. Pre-built APIs</b>

Các mơ hình Học máy tốt 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.

</div>

×