Обучение модели 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()
Другие вопросы по тегам