Обучение модели spaCy как Vertex AI Pipeline "Component"
Я пытаюсь обучить модель spaCy , но превращаю код в компонент Vertex AIPipeline . Мой текущий код:
@component(
packages_to_install=[
"setuptools",
"wheel",
"spacy[cuda113,transformers,lookups]",
],
base_image="gcr.io/deeplearning-platform-release/base-cu113",
output_component_file="train.yaml"
)
def train(train_name: str, dev_name: str) -> NamedTuple("output", [("model_path", str)]):
"""
Trains a spacy model
Parameters:
----------
train_name : Name of the spaCy "train" set, used for model training.
dev_name: Name of the spaCy "dev" set, , used for model training.
Returns:
-------
output : Destination path of the saved model.
"""
import spacy
import subprocess
spacy.require_gpu() # <=== IMAGE FAILS TO BE COMPILED HERE
# NOTE: The remaining code has already been tested and proven to be functional.
# It has been edited since the project is private.
# Presets for training
subprocess.run(["python", "-m", "spacy", "init", "fill-config", "gcs/secret_path_to_config/base_config.cfg", "config.cfg"])
# Training model
location = "gcs/secret_model_destination_path/TestModel"
subprocess.run(["python", "-m", "spacy", "train", "config.cfg",
"--output", location,
"--paths.train", "gcs/secret_bucket/secret_path/{}.spacy".format(train_name),
"--paths.dev", "gcs/secret_bucket/secret_path/{}.spacy".format(dev_name),
"--gpu-id", "0"])
return (location,)
В журналах Vertex AI в качестве основной причины сбоя отображается следующее:
Библиотеки успешно установлены, и все же я чувствую, что не хватает какой-то библиотеки/настройки (насколько я знаю по опыту ); однако я не знаю, как сделать его «совместимым с компонентами Vertex AI на основе Python». Кстати, использование графического процессора в моем коде обязательно .
Любые идеи?
2 ответа
Удалите строку, которая не работает. т.е.
spacy.require_gpu() # <=== IMAGE FAILS TO BE COMPILED HERE
Также настройте, чтобы удалить строку установки cuda
cuda113,
Ваш код настроен на использование графического процессора, но для учебного упражнения вам не нужен графический процессор. Я не знаю, и вы не знаете, как указать экземпляр gcp python vertex AI с поддержкой графического процессора. Следовательно, удалите требование для GPU. Как только вы запустите код, вы можете вернуться и настроить, чтобы добавить графический процессор.
Хорошо, сначала убедитесь, что вы установили инструментарий CUDA11.3 в облачной среде Google , сделайте это с помощью следующих команд:
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/ /"
sudo add-apt-repository contrib
sudo apt-get update
sudo apt-get -y install cuda-11-2
# optional
python -m spacy download en_core_web_trf
установить другие пакеты и зависимости pip
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
указать правильную папку cuda
export CUDA_PATH="/usr/local/cuda-11"
установить космические трансформаторы информация
pip install -U spacy[cuda113,transformers]
здесь больше информации:
pip install cupy-cuda113
Теперь, если библиотеки и пакеты установлены правильно, запустите это:
>>> import spacy
>>> spacy.require_gpu()