• Русский
  • Загрузка моделей с использованием Notebook

    Загрузка модели в репозиторий моделей — это первый шаг для публикации сервиса вывода LLM и создания задач дообучения. Рекомендуется использовать Workbench/Notebook для загрузки моделей:

    • Оптимальная скорость загрузки: поскольку экземпляры Workbench/Notebook работают на платформе, они обеспечивают оптимальную скорость загрузки.
    • Встроенный Git LFS: в Notebooks встроен инструмент git lfs, поэтому его не нужно устанавливать локально.

    Тем не менее, вы также можете загружать модели с локальной машины, но для этого необходимо сначала установить Git LFS.

    Создание экземпляра Workbench/Notebook

    Примечание: В версиях Alauda AI >= 1.4 вы можете создать экземпляр Notebook через пункт "Workbench" в левой навигации. В версиях Alauda AI <= 1.3 создание экземпляра Notebook осуществляется через "Advanced - Notebook".

    Подробные инструкции по созданию workbench/notebook здесь не приводятся. Пожалуйста, обратитесь к документации по workbench. Обратите внимание, что необходимо создать достаточное пространство для хранения файлов модели, чтобы процесс загрузки прошёл успешно.

    Подготовка модели

    Скачайте необходимую модель из любого открытого сообщества. Мы рекомендуем скачивать с следующих трёх сайтов, например https://hf-mirror.com/deepseek-ai/DeepSeek-R1.

    При загрузке моделей с huggingface или hf-mirror можно использовать команду huggingface-cli (требуется pip install huggingface_hub). Для получения дополнительных инструкций по использованию командной строки обратитесь к https://hf-mirror.com. Пример команды для скачивания модели DeepSeek-R1-Distill-Qwen-1.5B:

    export HF_ENDPOINT=https://hf-mirror.com
    pip install huggingface_hub
    huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local-dir DeepSeek-R1-Distill-Qwen-1.5B

    Примечание: Если в вашей среде отсутствует доступ в интернет, вы можете выбрать подходящую машину с доступом в интернет (например, настольный компьютер или сервер с высокоскоростным подключением к кластеру), скачать модель и затем скопировать её в среду Notebook.

    Создание модели

    ПРИМЕЧАНИЕ: Этот шаг создаст пустую модель для загрузки файлов модели. Если вы уже создали репозиторий модели, этот шаг можно пропустить.

    Откройте и войдите в Alauda AI. На странице "Model Repository" нажмите "Create Model Repository". Введите параметры по порядку и нажмите "Create".

    • Name: любое. Рекомендуется использовать имя скачанной модели. В этом примере используется "DeepSeek-R1-Distill-Qwen-1.5B".
    • Tag: любое. Рекомендуется указать категорию модели для удобства поиска, например "deepseek".
    • Description: любое.

    После создания репозитория модели вы можете найти "Repository Address" модели на странице "Details". Он будет использоваться для последующих git операций. Используйте его при push.

    Загрузка модели

    INFO

    Для гарантии стабильной загрузки/выгрузки больших файлов моделей через Git LFS убедитесь, что Git и Git LFS обновлены до последних официальных версий. Старые версии могут вызывать сбои LFS batch-API или HTTP-исключения, особенно на Windows, где поставляются устаревшие сборки.

    Места загрузки:

    Рекомендуемые версии (проверено): Git 2.43.0 с Git LFS 3.6.1

    Примечание: Перед началом убедитесь, что Git и Git LFS установлены в вашей среде Notebook: git lfs install && git lfs version

    В Notebook откройте Terminal и выполните следующую команду для отправки файла модели в репозиторий моделей.

    # Перейдите в папку, куда вы скачали модель на предыдущем шаге.
    cd <your-repo-name>
    # Удалите предыдущую информацию о Git репозитории модели (если есть).
    rm -rf .git
    # Инициализация: создайте git репозиторий и установите URL для push в созданный ранее репозиторий модели.
    git init
    git checkout -b main
    git remote add origin <repository-url>
    
    # В файле .gitattributes укажите типы файлов, чтобы Git LFS знал, какие файлы отслеживать.
    # Ниже приведён файл, идентифицирующий распространённые форматы файлов моделей, его можно использовать напрямую.
    
    cat >.gitattributes <<EOL
    *.7z filter=lfs diff=lfs merge=lfs -text
    *.arrow filter=lfs diff=lfs merge=lfs -text
    *.bin filter=lfs diff=lfs merge=lfs -text
    *.bz2 filter=lfs diff=lfs merge=lfs -text
    *.ckpt filter=lfs diff=lfs merge=lfs -text
    *.ftz filter=lfs diff=lfs merge=lfs -text
    *.gz filter=lfs diff=lfs merge=lfs -text
    *.h5 filter=lfs diff=lfs merge=lfs -text
    *.joblib filter=lfs diff=lfs merge=lfs -text
    *.lfs.* filter=lfs diff=lfs merge=lfs -text
    *.mlmodel filter=lfs diff=lfs merge=lfs -text
    *.model filter=lfs diff=lfs merge=lfs -text
    *.msgpack filter=lfs diff=lfs merge=lfs -text
    *.npy filter=lfs diff=lfs merge=lfs -text
    *.npz filter=lfs diff=lfs merge=lfs -text
    *.onnx filter=lfs diff=lfs merge=lfs -text
    *.ot filter=lfs diff=lfs merge=lfs -text
    *.parquet filter=lfs diff=lfs merge=lfs -text
    *.pb filter=lfs diff=lfs merge=lfs -text
    *.pickle filter=lfs diff=lfs merge=lfs -text
    *.pkl filter=lfs diff=lfs merge=lfs -text
    *.pt filter=lfs diff=lfs merge=lfs -text
    *.pth filter=lfs diff=lfs merge=lfs -text
    *.rar filter=lfs diff=lfs merge=lfs -text
    *.safetensors filter=lfs diff=lfs merge=lfs -text
    saved_model/**/* filter=lfs diff=lfs merge=lfs -text
    *.tar.* filter=lfs diff=lfs merge=lfs -text
    *.tar filter=lfs diff=lfs merge=lfs -text
    *.tflite filter=lfs diff=lfs merge=lfs -text
    *.tgz filter=lfs diff=lfs merge=lfs -text
    *.wasm filter=lfs diff=lfs merge=lfs -text
    *.xz filter=lfs diff=lfs merge=lfs -text
    *.zip filter=lfs diff=lfs merge=lfs -text
    *.zst filter=lfs diff=lfs merge=lfs -text
    *tfevents* filter=lfs diff=lfs merge=lfs -text
    EOL
    
    # Вы также можете вручную добавить или изменить файл .gitattributes, например:
    # Отслеживать файлы с указанным суффиксом
    git lfs track "*.h5" "*.bin" "*.pt"
    
    # Добавьте все изменения, включая файл .gitattributes (если он создан) и файлы модели
    git add .
    # Убедитесь, что все файлы, соответствующие правилам LFS, правильно помечены
    git add --renormalize .
    
    # Проверьте список файлов, отслеживаемых LFS (опционально)
    # Если крупные файлы модели, которые вы хотите хранить с помощью LFS, здесь не отображаются, проверьте правильность выполнения предыдущей команды
    git lfs ls-files -n
    
    # Зафиксируйте изменения
    # Рекомендуется настроить имя пользователя и email, либо убедиться, что они настроены глобально
    # git config --global user.name "Your Name"
    # git config --global user.email "your.email@example.com"
    git commit -am "Add LLM model files with Git LFS"
    
    # Отправьте изменения в удалённый репозиторий
    git -c http.sslVerify=false -c lfs.activitytimeout=36000 push -u origin main
    
    # Если нужно выполнить принудительный push, например после использования git lfs migrate --import:
    # git push -u origin main --force

    Редактирование метаданных модели

    Откройте страницу "Model Details", перейдите на вкладку "File Management", нажмите "Edit Metadata", выберите метаданные "task type" и "framework" в соответствии с загруженной моделью, затем нажмите "Confirm".

    Примечание: Только после настройки метаданных task type и framework вы сможете использовать страницу "Publish Inference Service" для публикации сервиса вывода. Для получения дополнительной информации о типах задач моделей обратитесь к Huggingface pipelines

    • Task Type: Определяет, как будет создан сервис вывода на основе модели (например, text-generation, image-classification).
      • Для LLM моделей выберите "text-generation".
      • Для других моделей, скачанных с Huggingface, ориентируйтесь на тип задачи, указанный на странице модели.
      • Для кастомных моделей выберите тип задачи в соответствии с назначением модели.
    • Framework: Формат хранения модели.
      • Для моделей, скачанных с Huggingface, выберите "Transformers".
      • Для моделей, сохранённых в формате MLFlow, выберите "MLFlow".
      • Для моделей, сохранённых в формате Triton Inference Server, выберите "Triton".

    Приложение

    Пометка файлов LFS на основе размера файла

    Команда git lfs migrate поможет найти и перенести большие файлы, которые уже существуют в истории Git, но не отслеживаются LFS. Обратите внимание, что эта команда переписывает историю коммитов. Если репозиторий общий, обязательно согласуйте действия с коллегами и используйте --force при push.

    Проверка файлов, которые нужно мигрировать

    git lfs migrate info

    Миграция существующих больших файлов в LFS:

    Следующая команда перенесёт все файлы размером более 100 МБ в Git LFS. Этот лимит в 100 МБ основан на рекомендуемом GitHub ограничении размера файла для оптимальной производительности.

    git lfs migrate import --above 100MB

    Если репозиторий общий, обязательно предупредите всех участников перед выполнением этой команды и будьте готовы использовать git push --force при отправке изменений.