1. Giới thiệu
Tổng quan
Trong bài thực hành này, bạn sẽ khám phá quy trình khoa học dữ liệu đa phương thức trong BigQuery, được xây dựng dựa trên một tình huống bất động sản. Bạn sẽ bắt đầu với một tập dữ liệu thô gồm danh sách nhà và hình ảnh của chúng, làm phong phú dữ liệu này bằng AI để trích xuất các đặc điểm trực quan, xây dựng một mô hình phân cụm để khám phá các phân khúc thị trường riêng biệt và cuối cùng, tạo một công cụ tìm kiếm bằng hình ảnh mạnh mẽ bằng cách sử dụng các vectơ nhúng.
Bạn sẽ so sánh quy trình làm việc gốc của SQL này với một phương pháp hiện đại dựa trên AI tạo sinh bằng cách sử dụng Tác nhân Khoa học dữ liệu để tự động tạo mô hình phân cụm dựa trên Python từ một câu lệnh văn bản đơn giản.
Kiến thức bạn sẽ học được
- Chuẩn bị một tập dữ liệu thô về danh sách bất động sản để phân tích thông qua kỹ thuật trích xuất đặc điểm.
- Làm phong phú trang thông tin bằng cách sử dụng các hàm AI của BigQuery để phân tích ảnh nhà nhằm xác định các đặc điểm trực quan chính.
- Xây dựng và đánh giá mô hình K-means bằng Công nghệ học máy của BigQuery (BQML) để phân đoạn các tài sản thành những cụm riêng biệt.
- Tự động hoá việc tạo mô hình bằng cách sử dụng Data Science Agent để tạo mô hình phân cụm bằng Python.
- Tạo các vectơ nhúng cho hình ảnh nhà ở để hỗ trợ một công cụ tìm kiếm bằng hình ảnh, tìm những ngôi nhà tương tự bằng cụm từ tìm kiếm dạng văn bản hoặc hình ảnh.
Điều kiện tiên quyết
Trước khi bắt đầu lớp học này, bạn nên làm quen với:
- Kiến thức cơ bản về SQL và lập trình Python.
- Chạy mã Python trong sổ tay Jupyter.
2. Trước khi bắt đầu
Tạo một dự án trên Google Cloud
- Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.

- Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trong một dự án hay không.
Bật API bằng Cloud Shell
Cloud Shell là một môi trường dòng lệnh chạy trong Google Cloud và được tải sẵn các công cụ cần thiết.
- Nhấp vào Kích hoạt Cloud Shell ở đầu bảng điều khiển Google Cloud:

- Sau khi kết nối với Cloud Shell, hãy chạy lệnh này để xác minh quá trình xác thực của bạn trong Cloud Shell:
gcloud auth list
- Chạy lệnh sau để xác nhận rằng dự án của bạn đã được định cấu hình để sử dụng với gcloud:
gcloud config list project
- Nếu bạn chưa đặt dự án, hãy dùng lệnh sau để đặt:
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID
Bật API
- Chạy lệnh này để bật tất cả các API và dịch vụ bắt buộc:
gcloud services enable bigquery.googleapis.com \
bigqueryunified.googleapis.com \
cloudaicompanion.googleapis.com \
aiplatform.googleapis.com
- Khi thực thi lệnh thành công, bạn sẽ thấy một thông báo tương tự như thông báo dưới đây:
Operation "operations/..." finished successfully.
- Thoát Cloud Shell.
3. Mở Sổ tay phòng thí nghiệm trong BigQuery Studio
Thao tác điều hướng trên giao diện người dùng:
- Trong Google Cloud Console, hãy chuyển đến Trình đơn điều hướng > BigQuery.

- Trong ngăn BigQuery Studio, hãy nhấp vào nút mũi tên thả xuống, di chuột qua Sổ tay rồi chọn Tải lên.

- Chọn nút chọn URL rồi nhập URL sau:
https://github.com/GoogleCloudPlatform/generative-ai/blob/main/gemini/use-cases/applying-llms-to-data/ai-assisted-data-science/ai-assisted-data-science.ipynb
- Đặt khu vực thành
us-central1rồi nhấp vào Tải lên.

- Để mở sổ tay, hãy nhấp vào mũi tên thả xuống trong ngăn Trình khám phá chứa mã dự án của bạn. Sau đó, nhấp vào trình đơn thả xuống Sổ tay. Nhấp vào sổ ghi chú
ai-assisted-data-science.

- (Không bắt buộc) Thu gọn trình đơn điều hướng BigQuery và Mục lục của sổ tay để có thêm không gian.

4. Kết nối với một Thời gian chạy và chạy Mã thiết lập
- Nhấp vào Kết nối. Nếu một cửa sổ bật lên xuất hiện, hãy uỷ quyền cho Colab Enterprise bằng tài khoản người dùng của bạn. Sổ tay của bạn sẽ tự động kết nối với một thời gian chạy. Quá trình này có thể mất vài phút.

- Sau khi thiết lập thời gian chạy, bạn sẽ thấy những thông tin sau:

- Trong sổ tay, hãy di chuyển đến phần Thiết lập. Nhấp vào nút "Chạy" bên cạnh các ô bị ẩn. Thao tác này sẽ tạo một số tài nguyên cần thiết cho lớp học lập trình trong dự án của bạn. Quá trình này có thể mất một phút để hoàn tất. Trong thời gian chờ đợi, bạn có thể kiểm tra các ô trong phần Thiết lập.

5. Chuẩn bị dữ liệu và thiết kế tính năng
Trong phần này, bạn sẽ thực hiện bước quan trọng đầu tiên trong mọi dự án khoa học dữ liệu: chuẩn bị dữ liệu. Bạn bắt đầu bằng cách tạo một tập dữ liệu BigQuery để sắp xếp công việc, sau đó tải dữ liệu thô về bất động sản / nhà ở từ một tệp CSV trong Cloud Storage vào một bảng mới.
Sau đó, bạn sẽ chuyển đổi dữ liệu thô này thành một bảng đã được làm sạch với các tính năng mới. Việc này bao gồm lọc danh sách, tạo một tính năng property_age mới và chuẩn bị dữ liệu hình ảnh để phân tích đa phương thức.
6. Làm phong phú nội dung đa phương thức bằng các hàm AI
Giờ đây, bạn sẽ làm phong phú dữ liệu của mình bằng sức mạnh của AI tạo sinh. Trong phần này, bạn sẽ sử dụng các hàm AI tích hợp của BigQuery để phân tích hình ảnh cho từng tin đăng nhà ở.
Bằng cách kết nối BigQuery với một mô hình Gemini, bạn có thể trích xuất các tính năng mới, có giá trị từ hình ảnh (chẳng hạn như liệu một tài sản có gần nước hay không và nội dung mô tả ngắn gọn về ngôi nhà) ngay bằng SQL.
7. Huấn luyện mô hình bằng phương pháp phân cụm K-Means
Với tập dữ liệu mới được làm phong phú, bạn đã sẵn sàng xây dựng một mô hình học máy. Mục tiêu của bạn là phân đoạn danh sách nhà thành các nhóm riêng biệt và bạn thực hiện việc này bằng cách huấn luyện mô hình phân cụm K-means ngay trong BigQuery bằng cách sử dụng BigQuery Machine Learning (BQML). Trong bước duy nhất này, bạn cũng đăng ký mô hình trong Vertex AI Model Registry, giúp mô hình có sẵn ngay lập tức trong hệ sinh thái MLOps rộng lớn hơn trên Google Cloud.
Để xác nhận rằng mô hình của bạn đã được đăng ký thành công, bạn có thể tìm thấy mô hình đó trong Vertex AI Model Registry bằng cách làm theo các bước sau:
- Trong Google Cloud Console, hãy nhấp vào Trình đơn điều hướng (☰) ở góc trên cùng bên trái.
- Di chuyển đến phần Vertex AI rồi nhấp vào Model Registry. Giờ đây, bạn sẽ thấy mô hình BQML của mình xuất hiện cùng với tất cả các mô hình tuỳ chỉnh khác.

- Trong danh sách mô hình, hãy tìm mô hình có tên housing_clustering. Bạn có thể thực hiện bước tiếp theo là Triển khai đến một điểm cuối. Bước này sẽ giúp mô hình của bạn có thể đưa ra dự đoán trực tuyến theo thời gian thực bên ngoài môi trường BigQuery.

Sau khi khám phá Model Registry, bạn có thể quay lại sổ tay Colab trong BigQuery bằng các bước sau:
- Trong Trình đơn điều hướng (☰), hãy chuyển đến BigQuery > Studio.
- Mở rộng các trình đơn trong ngăn Khám phá để tìm sổ tay rồi mở sổ tay đó.
8. Đánh giá và dự đoán mô hình
Sau khi huấn luyện mô hình, bước tiếp theo là tìm hiểu các cụm mà mô hình đã tạo. Tại đây, bạn sử dụng các hàm Học máy của BigQuery như ML.EVALUATE và ML.CENTROIDS để phân tích chất lượng của mô hình và các đặc điểm xác định của từng phân khúc.
Sau đó, bạn dùng ML.PREDICT để chỉ định từng ngôi nhà vào một cụm. Bằng cách chạy truy vấn này bằng lệnh %%bigquery df, bạn sẽ lưu trữ kết quả trong một pandas DataFrame có tên là df. Điều này giúp dữ liệu có sẵn ngay cho các bước Python tiếp theo. Điều này cho thấy khả năng tương tác giữa SQL và Python trong Colab Enterprise.
9. Trực quan hoá và diễn giải các cụm
Giờ đây, khi các dự đoán đã được tải vào DataFrame, bạn có thể tạo các hình ảnh trực quan để dữ liệu trở nên sống động. Trong phần này, bạn sẽ sử dụng các thư viện Python phổ biến như Matplotlib để khám phá sự khác biệt giữa các phân khúc nhà ở.
Bạn sẽ tạo biểu đồ hộp và biểu đồ thanh để so sánh trực quan các đặc điểm chính như giá và tuổi của tài sản, giúp bạn dễ dàng hiểu rõ từng cụm một cách trực quan.
10. Tạo nội dung mô tả cụm bằng các mô hình Gemini
Mặc dù các biểu đồ và tâm điểm bằng số rất hữu ích, nhưng AI tạo sinh cho phép bạn tiến thêm một bước nữa và tạo ra những đặc điểm phong phú, định tính cho từng phân khúc nhà ở. Nhờ đó, bạn không chỉ hiểu những cụm này là gì mà còn biết ai là người mà chúng đại diện.
Trong phần này, trước tiên bạn sẽ tổng hợp số liệu thống kê trung bình cho từng cụm, chẳng hạn như giá và diện tích. Sau đó, bạn sẽ truyền dữ liệu này vào một câu lệnh cho mô hình Gemini. Sau đó, bạn hướng dẫn mô hình đóng vai một chuyên gia bất động sản và tạo bản tóm tắt chi tiết, bao gồm các đặc điểm chính và người mua mục tiêu cho từng phân khúc. Kết quả là một tập hợp các nội dung mô tả rõ ràng, dễ đọc, giúp nhóm tiếp thị hiểu và hành động ngay lập tức.
Bạn có thể tuỳ ý thay đổi câu lệnh cho phù hợp và thử nghiệm với kết quả!
11. Tự động hoá việc lập mô hình bằng Data Science Agent
Bây giờ, bạn sẽ khám phá một quy trình thay thế mạnh mẽ. Thay vì viết mã theo cách thủ công, bạn sẽ sử dụng Tác nhân khoa học dữ liệu tích hợp để tự động tạo một quy trình làm việc hoàn chỉnh cho mô hình phân cụm từ một câu lệnh duy nhất bằng ngôn ngữ tự nhiên.
Hãy làm theo các bước sau để tạo và chạy mô hình bằng cách sử dụng tác nhân:
- Trong ngăn BigQuery Studio, hãy nhấp vào nút mũi tên thả xuống, di chuột qua Sổ tay rồi chọn Sổ tay trống. Điều này đảm bảo mã của tác nhân không ảnh hưởng đến sổ tay phòng thí nghiệm ban đầu của bạn.

- Giao diện trò chuyện của Data Science Agent sẽ mở ra ở cuối sổ tay. Nhấp vào nút Di chuyển đến bảng điều khiển để ghim cuộc trò chuyện ở bên phải.

- Bắt đầu nhập
@listing_multimodalvào ngăn trò chuyện rồi Nhấp vào bảng. Thao tác này sẽ đặt bảnglistings_multimodallàm ngữ cảnh một cách rõ ràng.

- Sao chép câu lệnh bên dưới rồi nhập vào hộp Trò chuyện với trợ lý. Sau đó, hãy nhấp vào Gửi để gửi câu lệnh cho Đặc vụ.
Use the selected table to generate a k-means clustering model with 3 clusters for housing listings. Then, help me understand the characteristics of each cluster so I can market to them as a real estate professional. Use Python.

- Tác nhân sẽ suy nghĩ và xây dựng kế hoạch. Nếu bạn đồng ý với kế hoạch này, hãy nhấp vào Chấp nhận và chạy. Trợ lý sẽ tạo mã Python trong một hoặc nhiều ô mới.

- Trợ lý sẽ yêu cầu bạn Chấp nhận và chạy từng khối mã mà Trợ lý tạo. Điều này giúp duy trì sự tham gia của con người trong vòng lặp. Bạn có thể xem lại hoặc chỉnh sửa mã và tiếp tục thực hiện từng bước cho đến khi hoàn tất.

- Sau khi hoàn tất, bạn chỉ cần đóng thẻ sổ tay mới này và quay lại thẻ
ai-assisted-data-science.ipynbban đầu để tiếp tục với phần cuối cùng của khoá học.
12. Tìm kiếm đa phương thức bằng tính năng Nhúng và Tìm kiếm vectơ
Trong phần cuối cùng này, bạn sẽ triển khai tính năng tìm kiếm đa phương thức ngay trong BigQuery. Điều này cho phép bạn tìm kiếm một cách trực quan, chẳng hạn như tìm nhà dựa trên nội dung mô tả bằng văn bản hoặc tìm những ngôi nhà trông giống với một bức ảnh mẫu.
Quy trình này hoạt động bằng cách chuyển đổi từng hình ảnh ngôi nhà thành một biểu diễn bằng số, được gọi là embedding (nhúng). Một vectơ nhúng nắm bắt ý nghĩa ngữ nghĩa của một hình ảnh, cho phép bạn tìm thấy các mặt hàng tương tự bằng cách so sánh các vectơ số của chúng.
Bạn sẽ sử dụng mô hình multimodalembedding để tạo các vectơ này cho tất cả trang thông tin của mình. Sau khi tạo chỉ mục vectơ để tăng tốc quá trình tra cứu, bạn sẽ thực hiện hai loại tìm kiếm tương tự: văn bản sang hình ảnh (tìm những ngôi nhà phù hợp với nội dung mô tả) và hình ảnh sang hình ảnh (tìm những ngôi nhà trông giống như một hình ảnh mẫu).
Bạn sẽ hoàn tất tất cả các bước này trong BigQuery, bằng cách sử dụng các hàm như ML.GENERATE_EMBEDDING để tạo các mục nhúng hoặc VECTOR_SEARCH để tìm kiếm sự tương đồng.
13. Dọn dẹp
Để dọn dẹp tất cả tài nguyên Google Cloud được dùng trong dự án này, bạn có thể xoá dự án Google Cloud.
Ngoài ra, bạn có thể xoá từng tài nguyên mà mình đã tạo bằng cách chạy đoạn mã sau trong một ô mới trong sổ tay:
# Delete the BigQuery tables
!bq rm --table -f housing_dataset.listings
!bq rm --table -f housing_dataset.listings_multimodal
!bq rm --table -f housing_dataset.home_embeddings
# Delete the remote model
!bq rm --model -f housing_dataset.gemini
!bq rm --model -f housing_dataset.kmeans_clustering_model
!bq rm --model -f housing_dataset.multimodal_embedding_model
# Delete the remote connection
!bq rm --connection --project_id=$PROJECT_ID --location=us ai_connection
# Delete the BigQuery dataset
!bq rm -r -f $PROJECT_ID:housing_dataset
Cuối cùng, bạn có thể xoá sổ tay:
- Trong ngăn Trình khám phá của BigQuery Studio, hãy mở rộng dự án và nút Sổ tay.
- Nhấp vào biểu tượng ba dấu chấm dọc bên cạnh sổ tay
ai-assisted-data-science. - Chọn Xoá.
14. Xin chúc mừng!
Chúc mừng bạn đã hoàn thành Lớp học lập trình này!
Nội dung đã đề cập
- Chuẩn bị một tập dữ liệu thô về danh sách bất động sản để phân tích thông qua kỹ thuật trích xuất đặc điểm.
- Làm phong phú trang thông tin bằng cách sử dụng các hàm AI của BigQuery để phân tích ảnh nhà nhằm xác định các đặc điểm trực quan chính.
- Xây dựng và đánh giá mô hình K-means bằng công nghệ học máy của BigQuery (BQML) để phân đoạn các tài sản thành những cụm riêng biệt.
- Tự động hoá việc tạo mô hình bằng cách sử dụng Data Science Agent để tạo mô hình phân cụm bằng Python.
- Tạo các vectơ nhúng cho hình ảnh nhà ở để hỗ trợ một công cụ tìm kiếm bằng hình ảnh, tìm những ngôi nhà tương tự bằng cụm từ tìm kiếm dạng văn bản hoặc hình ảnh.