Thiết lập và kết nối với tài khoản Google Cloud của bạn

Xem trên TensorFlow.org Chạy trong Google Colab Xem trên GitHub Tải xuống sổ ghi chép Logo KaggleChạy ở Kaggle

Hướng dẫn này nhằm giúp những người dùng lần đầu thiết lập tài khoản Google Cloud Platform với ý định sử dụng tensorflow_cloud để dễ dàng thực hiện đào tạo trên quy mô lớn trên Google Cloud AI Platform. TensorFlow Cloud cung cấp các API cho phép người dùng dễ dàng chuyển từ gỡ lỗi, đào tạo, điều chỉnh mã Keras và TensorFlow trong môi trường cục bộ hoặc môi trường kaggle sang đào tạo/điều chỉnh phân tán trên Đám mây.

1. Đăng ký Google Cloud Platform

Để bắt đầu, hãy truy cập https://cloud.google.com/ và nhấp vào “Bắt đầu miễn phí”. Đây là quy trình đăng ký gồm hai bước, trong đó bạn sẽ cần cung cấp tên, địa chỉ và thẻ tín dụng của mình. Tài khoản ban đầu là miễn phí và đi kèm với khoản tín dụng $300 mà bạn có thể sử dụng. Đối với bước này, bạn sẽ cần cung cấp Tài khoản Google (tức là tài khoản Gmail của bạn) để đăng nhập.

Sau khi hoàn tất quá trình đăng ký, bạn sẽ được chuyển hướng đến trang chào mừng của Google Cloud Platform . nhấp vào tab "Trang chủ" và ghi chú ID dự án và số dự án của bạn. (xem Xác định dự án )

GCP_PROJECT_ID = 'YOUR_PROJECT_ID'
PROJECT_NUMBER = 'YOUR_PROJECT_NUMBER'

2.Bật Google Cloud SDK và xác thực sổ ghi chép của bạn

Bây giờ bạn đã thiết lập dự án của mình, chúng ta có thể tiếp tục với các bước cấu hình còn lại trực tiếp từ sổ ghi chép này. Có Ba loại sổ ghi chép, bước này (bước #2) hơi khác nhau đối với mỗi sổ ghi chép, các bước còn lại (bước #3 đến #6) đều giống nhau đối với tất cả các sổ ghi chép.

  • 2.1. Xác thực cho sổ tay Kaggle
  • 2.2. Xác thực cho sổ tay Colab
  • 2.3. Xác thực cho sổ ghi chép Cloud AI - Không được hỗ trợ.

2.1 Thiết lập xác thực cho sổ tay Kaggle

Nếu bạn đang sử dụng sổ ghi chép Kaggle, bạn sẽ cần lặp lại bước này cho bất kỳ sổ ghi chép mới nào mà bạn sử dụng cho dự án này. Trong sổ ghi chép của bạn, nhấp vào Tiện ích bổ sung -> Google Cloud SDK và làm theo hướng dẫn trên lời nhắc. Sau đó chạy lệnh sau để thêm thông tin xác thực của bạn vào sổ ghi chép này.

import sys
if "kaggle_secrets" in sys.modules:
    from kaggle_secrets import UserSecretsClient
    UserSecretsClient().set_gcloud_credentials(project=GCP_PROJECT_ID)

2.2 Thiết lập xác thực cho sổ ghi chép Colab

Nếu đang sử dụng sổ ghi chép Colab, bạn sẽ cần lặp lại bước này cho bất kỳ sổ ghi chép mới nào mà bạn sử dụng cho dự án này. Chạy lệnh sau để thêm thông tin xác thực của bạn vào sổ ghi chép này.

import sys
if "google.colab" in sys.modules:
    from google.colab import auth
    auth.authenticate_user()

Bước tiếp theo là thiết lập tài khoản thanh toán cho dự án này. Google Cloud Tạo một dự án cho bạn theo mặc định có tên là “Dự án đầu tiên của tôi”. Chúng tôi sẽ sử dụng dự án mặc định này. Sử dụng ID dự án của bạn (từ bước 1) để chạy các lệnh sau. Thao tác này sẽ hiển thị cho bạn ID tài khoản thanh toán_ID của bạn, hãy ghi lại điều này cho bước tiếp theo.

gcloud beta billing accounts list

Sử dụng Tài khoản thanh toán_ID của bạn ở trên và chạy phần sau để liên kết tài khoản thanh toán với dự án của bạn.

Lưu ý rằng nếu sử dụng dự án hiện có thì bạn có thể không thấy Account_ID, điều này có nghĩa là bạn không có quyền thích hợp để chạy các lệnh sau, liên hệ với quản trị viên của mình hoặc tạo dự án mới.

BILLING_ACCOUNT_ID = 'YOUR_BILLING_ACCOUNT_ID'

!gcloud beta billing projects link $GCP_PROJECT_ID --billing-account $BILLING_ACCOUNT_ID

4. Kích hoạt các API cần thiết cho tensorflow-cloud trong dự án của bạn

Đối với tenorflow_cloud, chúng tôi sử dụng hai API cụ thể: API công việc đào tạo nền tảng AIAPI xây dựng đám mây . Lưu ý rằng đây là thiết lập một lần cho dự án này, bạn không cần phải chạy lại lệnh này cho mọi sổ ghi chép.

gcloud services --project $GCP_PROJECT_ID enable ml.googleapis.com cloudbuild.googleapis.com

5. Tạo nhóm Google Cloud Storage

Chúng tôi sẽ sử dụng nhóm lưu trữ này cho các tài sản tạm thời cũng như để lưu các điểm kiểm tra mô hình. Hãy ghi lại tên của thùng để tham khảo sau này. Lưu ý tên nhóm là duy nhất trên toàn cầu.

BUCKET_NAME = 'YOUR_BUCKET_NAME'

GCS_BUCKET = f'gs://{BUCKET_NAME}'
!gsutil mb -p $GCP_PROJECT_ID $GCS_BUCKET

Tạo tài khoản dịch vụ cho công việc HP Tuning

Bước này là bắt buộc để sử dụng HP Tuning trên Google Cloud bằng CloudTuner. Để tạo một tài khoản dịch vụ và cấp cho nó quyền truy cập vào trình soạn thảo dự án, hãy chạy lệnh sau và ghi chú tên tài khoản dịch vụ của bạn.

SERVICE_ACCOUNT_NAME ='YOUR_SERVICE_ACCOUNT_NAME'

SERVICE_ACCOUNT_EMAIL = f'{SERVICE_ACCOUNT_NAME}@{GCP_PROJECT_ID}.iam.gserviceaccount.com'
!gcloud iam --project $GCP_PROJECT_ID service-accounts create $SERVICE_ACCOUNT_NAME
!gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \
    --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \
    --role=roles/editor

default AI Platform service account được xác định bằng địa chỉ email có định dạng service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com . Bằng cách sử dụng số Dự án của bạn từ bước một, chúng tôi sẽ xây dựng email tài khoản dịch vụ và cấp vai trò quản trị viên default AI Platform service account (roles/iam.serviceAccountAdmin) trên tài khoản dịch vụ mới của bạn.

DEFAULT_AI_PLATFORM_SERVICE_ACCOUNT = f'service-{PROJECT_NUMBER}@cloud-ml.google.com.iam.gserviceaccount.com'

!gcloud iam --project $GCP_PROJECT_ID service-accounts add-iam-policy-binding \
--role=roles/iam.serviceAccountAdmin \
--member=serviceAccount:$DEFAULT_AI_PLATFORM_SERVICE_ACCOUNT \
$SERVICE_ACCOUNT_EMAIL

Chúc mừng !

Bây giờ bạn đã sẵn sàng để chạy tensorflow-cloud. Lưu ý rằng các bước này chỉ cần thực hiện một lần. Sau khi thiết lập dự án, bạn có thể sử dụng lại cùng một dự án và cấu hình nhóm cho các lần chạy sau. Đối với bất kỳ sổ ghi chép mới nào, bạn sẽ cần lặp lại bước hai để thêm thông tin xác thực Google Cloud của mình.

Hãy ghi lại các giá trị sau vì chúng cần thiết để chạy tensorflow-cloud.

print(f"Your GCP_PROJECT_ID is:       {GCP_PROJECT_ID}")
print(f"Your SERVICE_ACCOUNT_NAME is: {SERVICE_ACCOUNT_NAME}")
print(f"Your BUCKET_NAME is:          {BUCKET_NAME}")
Your GCP_PROJECT_ID is:       YOUR_PROJECT_ID
Your SERVICE_ACCOUNT_NAME is: YOUR_SERVICE_ACCOUNT_NAME
Your BUCKET_NAME is:          YOUR_BUCKET_NAME