1. Обзор
В этой лабораторной работе вы узнаете, как настраивать и запускать выполнение блокнотов с помощью Vertex AI Workbench.
Чему вы научитесь
Вы научитесь:
- Использование параметров в блокноте
- Настраивайте и запускайте выполнение блокнотов из пользовательского интерфейса Vertex AI Workbench.
Общая стоимость запуска этой лабораторной работы в Google Cloud составляет около 2 долларов .
2. Введение в Vertex AI
В этой лабораторной работе используется новейший продукт для искусственного интеллекта, доступный в Google Cloud. Vertex AI интегрирует предложения машинного обучения в Google Cloud в единый процесс разработки. Ранее модели, обученные с помощью AutoML, и пользовательские модели были доступны через отдельные сервисы. Новое предложение объединяет оба варианта в единый API, а также включает другие новые продукты. Вы также можете перенести существующие проекты в Vertex AI. Если у вас есть какие-либо замечания, пожалуйста, посетите страницу поддержки .
Vertex AI включает в себя множество различных продуктов для поддержки комплексных рабочих процессов машинного обучения. В этой лабораторной работе мы сосредоточимся на Vertex AI Workbench .
Vertex AI Workbench помогает пользователям быстро создавать комплексные рабочие процессы на основе блокнотов благодаря глубокой интеграции с сервисами данных (такими как Dataproc, Dataflow, BigQuery и Dataplex) и Vertex AI. Он позволяет специалистам по обработке данных подключаться к сервисам данных GCP, анализировать наборы данных, экспериментировать с различными методами моделирования, развертывать обученные модели в производственной среде и управлять операциями MLOps на протяжении всего жизненного цикла модели.
3. Обзор вариантов использования
В этой лабораторной работе вы будете использовать трансферное обучение для обучения модели классификации изображений на наборе данных DeepWeeds из TensorFlow Datasets . Вы будете использовать TensorFlow Hub для экспериментов с векторами признаков, извлеченными из различных архитектур моделей, таких как ResNet50 , Inception и MobileNet , предварительно обученных на эталонном наборе данных ImageNet . Используя исполнитель блокнотов через пользовательский интерфейс Vertex AI Workbench, вы будете запускать задания в Vertex AI Training, которые используют эти предварительно обученные модели и переобучают последний слой для распознавания классов из набора данных DeepWeeds.
4. Настройте свою среду.
Для выполнения этого практического задания вам потребуется проект Google Cloud Platform с включенной функцией оплаты. Чтобы создать проект, следуйте инструкциям здесь .
Шаг 1: Включите API Compute Engine.
Перейдите в раздел Compute Engine и выберите «Включить», если эта функция еще не включена.
Шаг 2: Включите API Vertex AI
Перейдите в раздел Vertex AI в вашей облачной консоли и нажмите «Включить API Vertex AI» .

Шаг 3: Создайте экземпляр Vertex AI Workbench.
В разделе Vertex AI вашей облачной консоли нажмите на Workbench:

Включите API для блокнотов, если он еще не включен.

После включения нажмите «УПРАВЛЯЕМЫЕ ЗАПИСНЫЕ КНИЖКИ» :

Затем выберите «Создать новый блокнот» .

Присвойте своему блокноту имя, а затем нажмите «Дополнительные настройки» .

В разделе «Дополнительные настройки» включите функцию автоматического выключения в режиме ожидания и установите количество минут равным 60. Это означает, что ваш ноутбук будет автоматически выключаться, когда не используется, чтобы избежать лишних расходов.

Все остальные расширенные настройки можно оставить без изменений.
Далее нажмите «Создать» .
После создания экземпляра выберите «Открыть JupyterLab» .

При первом использовании нового экземпляра вам будет предложено пройти аутентификацию.

Vertex AI Workbench имеет слой совместимости вычислительных ресурсов, который позволяет запускать ядра для TensorFlow, PySpark, R и т.д. из одного экземпляра ноутбука. После аутентификации вы сможете выбрать тип ноутбука, который хотите использовать, в меню запуска.
Для выполнения этой лабораторной работы выберите ядро TensorFlow 2.

5. Напишите код для обучения.
Набор данных DeepWeeds состоит из 17 509 изображений восьми различных видов сорняков, произрастающих в Австралии. В этом разделе вы напишете код для предварительной обработки набора данных DeepWeeds, а также для построения и обучения модели классификации изображений с использованием векторов признаков, загруженных из TensorFlow Hub.
Вам потребуется скопировать следующие фрагменты кода в ячейки вашего блокнота. Выполнение этих ячеек необязательно.
Шаг 1: Загрузка и предварительная обработка набора данных.
Сначала установите ночную версию наборов данных TensorFlow, чтобы убедиться, что мы используем последнюю версию набора данных DeepWeeds.
!pip install tfds-nightly
Затем импортируйте необходимые библиотеки:
import tensorflow as tf
import tensorflow_datasets as tfds
import tensorflow_hub as hub
Загрузите данные из TensorFlow Datasets и извлеките количество классов и размер набора данных.
data, info = tfds.load(name='deep_weeds', as_supervised=True, with_info=True)
NUM_CLASSES = info.features['label'].num_classes
DATASET_SIZE = info.splits['train'].num_examples
Определите функцию предварительной обработки для масштабирования данных изображения в 255 раз.
def preprocess_data(image, label):
image = tf.image.resize(image, (300,300))
return tf.cast(image, tf.float32) / 255., label
В наборе данных DeepWeeds нет разделения на обучающую и валидационную выборки. Он содержит только обучающий набор данных. В приведенном ниже коде вы будете использовать 80% этих данных для обучения, а оставшиеся 20% — для валидации.
# Create train/validation splits
# Shuffle dataset
dataset = data['train'].shuffle(1000)
train_split = 0.8
val_split = 0.2
train_size = int(train_split * DATASET_SIZE)
val_size = int(val_split * DATASET_SIZE)
train_data = dataset.take(train_size)
train_data = train_data.map(preprocess_data)
train_data = train_data.batch(64)
validation_data = dataset.skip(train_size)
validation_data = validation_data.map(preprocess_data)
validation_data = validation_data.batch(64)
Шаг 2: Создание модели
Теперь, когда вы создали обучающие и проверочные наборы данных, вы готовы построить свою модель. TensorFlow Hub предоставляет векторы признаков, которые представляют собой предварительно обученные модели без верхнего слоя классификации. Вы создадите экстрактор признаков, обернув предварительно обученную модель с помощью hub.KerasLayer , который оборачивает TensorFlow SavedModel в качестве слоя Keras. Затем вы добавите слой классификации и создадите модель с помощью API Keras Sequential.
Сначала определите параметр feature_extractor_model , который представляет собой имя вектора признаков TensorFlow Hub, который вы будете использовать в качестве основы для вашей модели.
feature_extractor_model = "inception_v3"
Далее вы сделаете эту ячейку ячейкой параметров, что позволит вам передавать значение для feature_extractor_model во время выполнения.
Сначала выберите ячейку и нажмите на значок инспектора свойств на правой панели.

Теги — это простой способ добавить метаданные в ваш блокнот. Введите «parameters» в поле «Добавить тег» и нажмите Enter. Позже, при настройке выполнения, вы передадите различные значения, в данном случае модель TensorFlow Hub, которую хотите протестировать. Обратите внимание, что вы должны ввести слово «parameters» (а не любое другое слово), поскольку именно так исполнитель блокнота узнает, какие ячейки нужно параметризовать.

Закрыть окно проверки недвижимости можно, снова нажав на значок с двумя шестереночными цифрами.
Создайте новую ячейку и определите tf_hub_uri , где вы будете использовать строковую интерполяцию для подстановки имени предварительно обученной модели, которую вы хотите использовать в качестве базовой модели для конкретного выполнения вашего ноутбука. По умолчанию вы установили feature_extractor_model в значение "inception_v3" , но допустимыми значениями могут быть и "resnet_v2_50" или "mobilenet_v1_100_224" . Вы можете изучить дополнительные параметры в каталоге TensorFlow Hub .
tf_hub_uri = f"https://tfhub.dev/google/imagenet/{feature_extractor_model}/feature_vector/5"
Далее создайте экстрактор признаков, используя hub.KerasLayer и передав в него определенный выше tf_hub_uri . Установите аргумент trainable=False чтобы зафиксировать переменные, и обучение будет изменять только новый слой классификатора, который вы добавите сверху.
feature_extractor_layer = hub.KerasLayer(
tf_hub_uri,
trainable=False)
Для завершения модели оберните слой извлечения признаков в модель tf.keras.Sequential и добавьте полносвязный слой для классификации. Количество нейронов в этом классификационном слое должно быть равно количеству классов в наборе данных:
model = tf.keras.Sequential([
feature_extractor_layer,
tf.keras.layers.Dense(units=NUM_CLASSES)
])
Наконец, скомпилируйте и подгоните модель.
model.compile(
optimizer=tf.keras.optimizers.Adam(),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['acc'])
model.fit(train_data, validation_data=validation_data, epochs=3)
6. Запустить блокнот
Нажмите на значок «Исполнитель» в верхней части блокнота.

Шаг 1: Настройка задания обучения
Присвойте исполняемому файлу имя и укажите хранилище данных в вашем проекте.

Установите тип машины на 4 процессора, 15 ГБ оперативной памяти .
И добавьте 1 графический процессор NVIDIA .
Установите среду на TensorFlow Enterprise 2.6 (GPU).
Выберите «Одноразовое исполнение».
Шаг 2: Настройка параметров
Щелкните раскрывающийся список «РАСШИРЕННЫЕ ПАРАМЕТРЫ» , чтобы задать параметр. В поле введите feature_extractor_model=resnet_v2_50 . Это заменит значение inception_v3 , установленное вами по умолчанию для этого параметра в блокноте, на resnet_v2_50 .

Вы можете оставить флажок « Использовать учетную запись службы по умолчанию» установленным.
Затем нажмите ОТПРАВИТЬ
Шаг 3: Анализ результатов
На вкладке «Выполнения» в интерфейсе консоли вы сможете увидеть статус выполнения вашего блокнота.

Если вы щёлкнете по названию выполнения, вы перейдёте к заданию обучения Vertex AI, в котором запущен ваш ноутбук.

После завершения работы вы сможете просмотреть итоговый блокнот, нажав кнопку «ПОСМОТРЕТЬ РЕЗУЛЬТАТ» .

В итоговом блокноте вы увидите, что значение параметра feature_extractor_model было перезаписано значением, переданным вами во время выполнения.

🎉 Поздравляем! 🎉
Вы научились использовать Vertex AI Workbench для:
- Использование параметров в блокноте
- Настраивайте и запускайте выполнение блокнотов из пользовательского интерфейса Vertex AI Workbench.
Чтобы узнать больше о различных компонентах Vertex AI, ознакомьтесь с документацией .
7. Уборка
По умолчанию управляемые ноутбуки автоматически завершают работу через 180 минут бездействия. Если вы хотите вручную остановить экземпляр, нажмите кнопку «Стоп» в разделе Vertex AI Workbench в консоли. Если вы хотите полностью удалить ноутбук, нажмите кнопку «Удалить».

Чтобы удалить сегмент хранилища, воспользуйтесь меню навигации в облачной консоли, перейдите в раздел «Хранилище», выберите свой сегмент и нажмите «Удалить».
