При крупномасштабном развертывании моделей глубокого обучения крайне важно эффективно использовать базовое оборудование, чтобы максимизировать производительность и экономическую выгоду. Для производственных рабочих нагрузок, требующих высокой пропускной способности и низкой задержки, выбор Эластичное вычислительное облако Amazon (EC2), стек обслуживания модели и архитектура развертывания очень важны. Неэффективная архитектура может привести к неоптимальному использованию ускорителей и излишне высокой стоимости производства.
В этом посте мы познакомим вас с процессом развертывания серверов моделей FastAPI на устройствах AWS Inferentia (найденных на Amazon EC2). INF1 и Амазон ЕС INF2 экземпляры). Мы также демонстрируем размещение образца модели, который развертывается параллельно во всех ядрах NeuronCores для максимального использования оборудования.
Обзор решения
FastAPI — это веб-фреймворк с открытым исходным кодом для обслуживания приложений Python, который работает намного быстрее, чем традиционные фреймворки, такие как Flask и Django. Он использует Интерфейс шлюза асинхронного сервера (АСГИ) вместо широко используемого Интерфейс шлюза веб-сервера (ВСГИ). ASGI обрабатывает входящие запросы асинхронно, в отличие от WSGI, который обрабатывает запросы последовательно. Это делает FastAPI идеальным выбором для обработки запросов, чувствительных к задержкам. Вы можете использовать FastAPI для развертывания сервера, на котором размещена конечная точка экземпляров Inferentia (Inf1/Inf2), которые прослушивают клиентские запросы через назначенный порт.
Наша цель — добиться максимальной производительности при минимальных затратах за счет максимального использования аппаратного обеспечения. Это позволяет нам обрабатывать больше запросов на вывод с меньшим количеством ускорителей. Каждое устройство AWS Inferentia1 содержит четыре ядра NeuronCores-v1, а каждое устройство AWS Inferentia2 содержит два ядра NeuronCores-v2. АВС Нейрон SDK позволяет нам использовать каждое из ядер NeuronCores параллельно, что дает нам больший контроль при загрузке и выводе четырех или более моделей параллельно без ущерба для пропускной способности.
С FastAPI у вас есть выбор веб-сервера Python (Gunicorn, Увикорн, Гиперкорн, Волчеягодник). Эти веб-серверы обеспечивают уровень абстракции поверх базовой модели машинного обучения (ML). Преимущество запрашивающего клиента заключается в том, что он не обращает внимания на размещенную модель. Клиенту не нужно знать имя или версию модели, развернутой на сервере; имя конечной точки теперь является просто прокси для функции, которая загружает и запускает модель. Напротив, в сервисном инструменте для конкретной платформы, таком как TensorFlow Serving, имя модели и версия являются частью имени конечной точки. Если модель изменяется на стороне сервера, клиент должен знать об этом и соответствующим образом изменить свой вызов API на новую конечную точку. Поэтому, если вы постоянно совершенствуете модели версий, например, в случае A/B-тестирования, то использование универсального веб-сервера Python с FastAPI является удобным способом обслуживания моделей, поскольку имя конечной точки является статическим.
Роль сервера ASGI состоит в том, чтобы порождать определенное количество рабочих процессов, которые прослушивают запросы клиентов и запускают код логического вывода. Важная возможность сервера — убедиться, что запрошенное количество рабочих доступно и активно. В случае уничтожения рабочего сервера сервер должен запустить нового рабочего. В этом контексте сервер и рабочие процессы могут быть идентифицированы их идентификатором процесса Unix (PID). Для этого поста мы используем Гиперкорн server, который является популярным выбором для веб-серверов Python.
В этом посте мы делимся передовыми практиками развертывания моделей глубокого обучения с помощью FastAPI на AWS Inferentia NeuronCores. Мы показываем, что вы можете развернуть несколько моделей на отдельных ядрах нейронов, которые можно вызывать одновременно. Эта настройка увеличивает пропускную способность, поскольку можно одновременно выводить несколько моделей, а использование NeuronCore полностью оптимизировано. Код можно найти на Репо GitHub. На следующем рисунке показана архитектура того, как настроить решение на экземпляре EC2 Inf2.
Та же архитектура применяется к типу экземпляра EC2 Inf1, за исключением того, что он имеет четыре ядра. Так что это немного меняет архитектурную диаграмму.
AWS Inferentia NeuronCores
Давайте углубимся в инструменты, предоставляемые AWS Neuron для взаимодействия с NeuronCores. В следующих таблицах показано количество нейронных ядер в экземплярах каждого типа Inf1 и Inf2. Виртуальные ЦП хоста и системная память совместно используются всеми доступными нейронными ядрами.
Размер экземпляра | # Ускорители Inferentia | # НейронКорес-v1 | VCPU будут | Память (ГиБ) |
Inf1.xlarge | 1 | 4 | 4 | 8 |
Инф1.2xlarge | 1 | 4 | 8 | 16 |
Инф1.6xlarge | 4 | 16 | 24 | 48 |
Инф1.24xlarge | 16 | 64 | 96 | 192 |
Размер экземпляра | # Ускорители Inferentia | # НейронКорес-v2 | VCPU будут | Память (ГиБ) |
Inf2.xlarge | 1 | 2 | 4 | 32 |
Инф2.8xlarge | 1 | 2 | 32 | 32 |
Инф2.24xlarge | 6 | 12 | 96 | 192 |
Инф2.48xlarge | 12 | 24 | 192 | 384 |
Экземпляры Inf2 содержат новый NeuronCores-v2 по сравнению с NeuronCore-v1 в экземплярах Inf1. Несмотря на меньшее количество ядер, они могут предложить в 4 раза более высокую пропускную способность и в 10 раз более низкую задержку, чем инстансы Inf1. Инстансы Inf2 идеально подходят для рабочих нагрузок глубокого обучения, таких как генеративный ИИ, больших языковых моделей (LLM) в семействе OPT/GPT, а также преобразователей видения, таких как Stable Diffusion.
Среда выполнения Neuron отвечает за запуск моделей на устройствах Neuron. Neuron Runtime определяет, какой NeuronCore будет запускать какую модель и как ее запускать. Конфигурация Neuron Runtime управляется с помощью переменные среды на уровне процесса. По умолчанию расширения платформы Neuron позаботятся о настройке среды выполнения Neuron от имени пользователя; однако явные конфигурации также возможны для достижения более оптимизированного поведения.
Две популярные переменные среды: NEURON_RT_NUM_CORES
и NEURON_RT_VISIBLE_CORES
. С помощью этих переменных среды процессы Python можно привязать к NeuronCore. С NEURON_RT_NUM_CORES
, для процесса может быть зарезервировано определенное количество ядер, а с помощью NEURON_RT_VISIBLE_CORES
, можно зарезервировать ряд нейронных ядер. Например, NEURON_RT_NUM_CORES=2 myapp.py
зарезервирует два ядра и NEURON_RT_VISIBLE_CORES=’0-2’ myapp.py
зарезервирует ноль, одно и два ядра для myapp.py
. Вы также можете резервировать NeuronCores на разных устройствах (чипы AWS Inferentia). Так, NEURON_RT_VISIBLE_CORES=’0-5’ myapp.py
зарезервирует первые четыре ядра на device1
и одно ядро на device2
в типе экземпляра Ec2 Inf1. Аналогично, для инстанса EC2 типа Inf2 эта конфигурация резервирует два ядра по device1
и device2
и одно ядро на device3
. В следующей таблице представлена конфигурация этих переменных.
Имя | Описание | Тип | Ожидаемые значения | Значение по умолчанию | РТ-версия |
NEURON_RT_VISIBLE_CORES |
Диапазон конкретных нейронных ядер, необходимых для процесса | Целочисленный диапазон (например, 1-3) | Любое значение или диапазон от 0 до Max NeuronCore в системе | Ничто | 2.0+ |
NEURON_RT_NUM_CORES |
Количество нейронных ядер, необходимых для процесса | Целое | Значение от 1 до Max NeuronCore в системе | 0, что интерпретируется как «все» | 2.0+ |
Список всех переменных среды см. Конфигурация времени выполнения нейрона.
По умолчанию при загрузке моделей модели загружаются в NeuronCore 0, а затем в NeuronCore 1, если это явно не указано предыдущими переменными среды. Как указывалось ранее, NeuronCores совместно используют доступные виртуальные ЦП хоста и системную память. Поэтому модели, развернутые на каждом NeuronCore, будут конкурировать за доступные ресурсы. Это не будет проблемой, если модель в значительной степени использует NeuronCores. Но если модель работает только частично на ядрах NeuronCores, а остальная часть — на виртуальных ЦП хоста, становится важным учитывать доступность ЦП для каждого ядра NeuronCore. Это также влияет на выбор экземпляра.
В следующей таблице показано количество виртуальных ЦП хоста и системной памяти, доступных для каждой модели, если одна модель была развернута на каждом NeuronCore. В зависимости от использования NeuronCore вашим приложением, виртуального ЦП и использования памяти рекомендуется выполнить тесты, чтобы выяснить, какая конфигурация является наиболее производительной для вашего приложения. Инструмент «Нейрон Топ» может помочь в визуализации использования ядра и использования памяти устройства и хоста. На основании этих показателей можно принять взвешенное решение. Мы демонстрируем использование Neuron Top в конце этого блога.
Размер экземпляра | # Ускорители Inferentia | # Модели | виртуальных ЦП/модель | Память/модель (ГиБ) |
Inf1.xlarge | 1 | 4 | 1 | 2 |
Инф1.2xlarge | 1 | 4 | 2 | 4 |
Инф1.6xlarge | 4 | 16 | 1.5 | 3 |
Инф1.24xlarge | 16 | 64 | 1.5 | 3 |
Размер экземпляра | # Ускорители Inferentia | # Модели | виртуальных ЦП/модель | Память/модель (ГиБ) |
Inf2.xlarge | 1 | 2 | 2 | 8 |
Инф2.8xlarge | 1 | 2 | 16 | 64 |
Инф2.24xlarge | 6 | 12 | 8 | 32 |
Инф2.48xlarge | 12 | 24 | 8 | 32 |
Чтобы самостоятельно протестировать функции Neuron SDK, ознакомьтесь с последними версиями Возможности нейрона для PyTorch.
Настройка системы
Ниже приведена настройка системы, используемая для этого решения:
Настройка решения
Есть несколько вещей, которые нам нужно сделать, чтобы настроить решение. Начните с создания роли IAM, которую будет принимать ваш экземпляр EC2, что позволит ему отправлять и извлекать из Реестр Amazon Elastic Container.
Шаг 1. Настройте роль IAM
- Начните с входа в консоль и доступа к IAM > Роли > Создать роль.
- Выберите тип доверенного объекта
AWS Service
- Выберите EC2 в качестве службы в сценарии использования.
- Нажмите Следующая и вы сможете увидеть все доступные политики
- Для этого решения мы предоставим нашему экземпляру EC2 полный доступ к ECR. Фильтр для AmazonEC2ContainerRegistryFullAccess и выберите его.
- Нажмите «Далее» и назовите роль
inf-ecr-access
Примечание. Прикрепленная политика предоставляет инстансу EC2 полный доступ к Amazon ECR. Мы настоятельно рекомендуем следовать принцип наименьших привилегий для производственных нагрузок.
Шаг 2. Настройте интерфейс командной строки AWS
Если вы используете рекомендованный AMI Deep Learning, указанный выше, он поставляется с установленным интерфейсом командной строки AWS. Если вы используете другой AMI (Amazon Linux 2023, Base Ubuntu и т. д.), установите инструменты CLI, выполнив следующие действия. этого руководства.
После установки инструментов CLI настройте CLI с помощью команды aws configure
. Если у вас есть ключи доступа, вы можете добавить их здесь, но они не обязательно нужны для взаимодействия с сервисами AWS. Для этого мы полагаемся на роли IAM.
Внимание: нам нужно ввести хотя бы одно значение (регион по умолчанию или формат по умолчанию), чтобы создать профиль по умолчанию. Для этого примера мы собираемся с us-east-2
как регион и json
в качестве вывода по умолчанию.
Клонировать репозиторий Github
Ассоциация Репо GitHub предоставляет все сценарии, необходимые для развертывания моделей с помощью FastAPI на NeuronCores в экземплярах AWS Inferentia. В этом примере используются контейнеры Docker, чтобы мы могли создавать повторно используемые решения. В этот пример включено следующее config.properties файл, чтобы пользователи могли вводить данные.
Файлу конфигурации нужны определяемые пользователем префиксы имен для образа Docker и контейнеров Docker. build.sh
сценарий в fastapi
и trace-model
папки используют это для создания образов Docker.
Скомпилируйте модель на AWS Inferentia
Мы начнем с трассировки модели и создания файла PyTorch Torchscript .pt. Начните с доступа trace-model
каталог и изменение файла .env. В зависимости от выбранного типа экземпляра измените CHIP_TYPE
в .env
файл. В качестве примера мы выберем Inf2 в качестве ориентира. Те же шаги применяются к процессу развертывания для Inf1.
Затем установите регион по умолчанию в том же файле. Этот регион будет использоваться для создания репозитория ECR, и образы Docker будут отправлены в этот репозиторий. Также в этой папке мы предоставляем все скрипты, необходимые для трассировки bert-base-uncased
модель на AWS Inferentia. Этот скрипт можно использовать для большинства моделей, доступных на Обнимая лицо, Dockerfile имеет все зависимости для запуска моделей с помощью Neuron и запускает трассировка-model.py код в качестве точки входа.
Объяснение компиляции нейронов
API-интерфейс Neuron SDK очень похож на API-интерфейс PyTorch Python. torch.jit.trace()
от PyTorch принимает в качестве аргументов модель и образец входного тензора. Образцы входных данных подаются в модель, и операции, которые вызываются, когда эти входные данные проходят через слои модели, записываются как Торчскрипт. Чтобы узнать больше о трассировке JIT в PyTorch, см. документации.
Так же, как torch.jit.trace()
, вы можете проверить, можно ли скомпилировать вашу модель в AWS Inferentia, с помощью следующего кода для экземпляров inf1.
Для inf2 библиотека называется torch_neuronx
. Вот как вы можете проверить компиляцию вашей модели на экземплярах inf2.
После создания экземпляра трассировки мы можем передать входной пример тензора следующим образом:
И, наконец, сохраните полученный вывод TorchScript на локальный диск.
Как показано в предыдущем коде, вы можете использовать compiler_args
и optimizations
для оптимизации развертывания. Подробный список аргументов в пользу torch.neuron.trace
API, см. API трассировки PyTorch-Neuron для Python.
Помните о следующих важных моментах:
- На момент написания этой статьи Neuron SDK не поддерживает динамические тензорные формы. Поэтому модель придется составлять отдельно для разных входных форм. Дополнительные сведения о выполнении логического вывода по переменным входным формам с группировкой см. Запуск логического вывода по переменным входным формам с группировкой.
- Если при компиляции модели вы сталкиваетесь с проблемами нехватки памяти, попробуйте скомпилировать модель на экземпляре AWS Inferentia с большим количеством виртуальных ЦП или памяти или даже на большом экземпляре c6i или r6i, поскольку при компиляции используются только ЦП. После компиляции трассируемая модель, вероятно, может быть запущена на инстансах AWS Inferentia меньшего размера.
Объяснение процесса сборки
Теперь мы создадим этот контейнер, запустив build.sh. Файл сценария сборки просто создает образ Docker, извлекая базовый образ контейнера глубокого обучения и устанавливая HuggingFace. transformers
упаковка. На основе CHIP_TYPE
указано в .env
файл, docker.properties
файл решает соответствующий BASE_IMAGE
. Это BASE_IMAGE
указывает на образ контейнера глубокого обучения для среды выполнения нейронов, предоставленный AWS.
Он доступен через частный репозиторий ECR. Прежде чем мы сможем извлечь образ, нам нужно войти в систему и получить временные учетные данные AWS.
Внимание: нам нужно заменить регион, указанный в команде, указанной флагом региона и в URI репозитория, на регион, который мы указали в .env .
Чтобы упростить этот процесс, мы можем использовать fetch-credentials.sh
файл. Регион будет взят из файла .env автоматически.
Далее мы отправим изображение с помощью скрипта push.sh. Сценарий push создает для вас репозиторий в Amazon ECR и отправляет образ контейнера.
Наконец, когда образ собран и отправлен, мы можем запустить его как контейнер, запустив запустить.ш и хвостовые бревна с логи.ш. В журналах компилятора (см. следующий снимок экрана) вы увидите процент арифметических операторов, скомпилированных на Neuron, и процент подграфов модели, успешно скомпилированных на Neuron. На снимке экрана показаны журналы компилятора для bert-base-uncased-squad2
модель. Журналы показывают, что 95.64% арифметических операторов были скомпилированы, а также приводится список операторов, которые были скомпилированы на Neuron, и тех, которые не поддерживаются.
Вот список всех поддерживаемых операторов в последнем пакете PyTorch Neuron. Сходным образом, вот список всех поддерживаемых операторов в последнем пакете PyTorch Neuronx.
Развертывание моделей с помощью FastAPI
После того, как модели будут скомпилированы, трассируемая модель будет присутствовать в trace-model
папка. В этом примере мы разместили трассируемую модель для размера пакета 1. Мы рассматриваем размер пакета 1 здесь для учета тех случаев использования, когда больший размер пакета невозможен или не требуется. Для случаев использования, когда требуются большие размеры пакетов, torch.neuron.DataParallel (для Inf1) или факел.neuronx.DataParallel (для Inf2) API также может быть полезен.
Ассоциация быстрый API Папка содержит все необходимые сценарии для развертывания моделей с помощью FastAPI. Чтобы развернуть модели без каких-либо изменений, просто запустите развернуть.sh script, и он создаст образ контейнера FastAPI, запустит контейнеры на указанном количестве ядер и развернет указанное количество моделей на сервер на каждом сервере моделей FastAPI. Эта папка также содержит .env
файл, измените его, чтобы он отражал правильный CHIP_TYPE
и AWS_DEFAULT_REGION
.
Внимание: сценарии FastAPI используют те же переменные среды, которые используются для создания, отправки и запуска образов в качестве контейнеров. Сценарии развертывания FastAPI будут использовать последние известные значения этих переменных. Таким образом, если вы проследили модель для типа экземпляра Inf1 последней, эта модель будет развернута с помощью этих сценариев.
Ассоциация fastapi-сервер.py Файл, который отвечает за размещение сервера и отправку запросов к модели, делает следующее:
- Считывает количество моделей на сервер и расположение скомпилированной модели из файла свойств.
- Устанавливает видимые NeuronCores в качестве переменных среды в контейнер Docker и считывает переменные среды, чтобы указать, какие NeuronCores использовать.
- Предоставляет API вывода для
bert-base-uncased-squad2
модель - Доступно
jit.load()
, загружает количество моделей на сервер, как указано в конфигурации, и сохраняет модели и необходимые токенизаторы в глобальных словарях.
С такой настройкой было бы относительно легко настроить API-интерфейсы, которые перечисляют, какие модели и сколько моделей хранятся в каждом NeuronCore. Точно так же можно написать API для удаления моделей из конкретных NeuronCores.
Ассоциация Dockerfile для создания контейнеров FastAPI построен на образе Docker, который мы создали для отслеживания моделей. Вот почему docker.properties файл указывает путь ECR к образу Docker для отслеживания моделей. В нашей настройке контейнеры Docker во всех NeuronCores одинаковы, поэтому мы можем создать один образ и запустить несколько контейнеров из одного образа. Чтобы избежать ошибок точки входа, мы указываем ENTRYPOINT ["/usr/bin/env"]
в Dockerfile перед запуском startup.sh
скрипт, который выглядит как hypercorn fastapi-server:app -b 0.0.0.0:8080
. Этот сценарий запуска одинаков для всех контейнеров. Если вы используете тот же базовый образ, что и для моделей трассировки, вы можете создать этот контейнер, просто запустив скрипт build.sh. push.sh
сценарий остается таким же, как и раньше для трассировки моделей. Модифицированный образ Docker и имя контейнера предоставляются docker.properties
.
Ассоциация run.sh file
делает следующее:
- Считывает образ Docker и имя контейнера из свойства файл, который, в свою очередь, считывает
config.properties
файл, который имеетnum_cores
настройка пользователя - Запускает цикл от 0 до
num_cores
и для каждого ядра:- Устанавливает номер порта и номер устройства
- Устанавливает
NEURON_RT_VISIBLE_CORES
переменная среды - Указывает монтирование тома
- Запускает контейнер Docker
Для ясности команда запуска Docker для развертывания в NeuronCore 0 для Inf1 будет выглядеть следующим образом:
Команда запуска для развертывания в NeuronCore 5 будет выглядеть следующим образом:
После развертывания контейнеров мы используем run_apis.py скрипт, который вызывает API в параллельных потоках. Код настроен на вызов шести развернутых моделей, по одной на каждом NeuronCore, но его можно легко изменить на другой параметр. Мы вызываем API со стороны клиента следующим образом:
Монитор NeuronCore
После развертывания модельных серверов для мониторинга использования NeuronCore мы можем использовать neuron-top
для наблюдения в режиме реального времени за процентом использования каждого NeuronCore. нейрон-верхушка — это инструмент командной строки в составе Neuron SDK для предоставления такой информации, как NeuronCore, vCPU и использование памяти. В отдельном терминале введите следующую команду:
Вывод должен быть похож на следующий рисунок. В этом сценарии мы указали использовать два ядра NeuronCores и две модели на сервер в экземпляре Inf2.xlarge. На следующем снимке экрана показано, что две модели размером 287.8 МБ каждая загружены на два ядра NeuronCore. При загрузке 4 моделей вы можете видеть, что используемая память устройства составляет 1.3 ГБ. Используйте клавиши со стрелками для перемещения между нейронными ядрами на разных устройствах.
Точно так же в экземпляре типа Inf1.16xlarge мы видим загруженное в общей сложности 12 моделей (по 2 модели на ядро из более чем 6 ядер). Общий объем потребляемой памяти составляет 2.1 ГБ, а размер каждой модели составляет 177.2 МБ.
После запуска run_apis.py script вы можете увидеть процент использования каждого из шести нейронных ядер (см. следующий снимок экрана). Вы также можете увидеть использование виртуального ЦП системы и использование виртуального ЦП во время выполнения.
На следующем снимке экрана показан процент использования ядра экземпляра Inf2.
Аналогично, на этом снимке экрана показано использование ядра в экземпляре типа inf1.6xlarge.
Убирать
Чтобы очистить все созданные вами контейнеры Docker, мы предоставляем очистка.sh скрипт, который удаляет все запущенные и остановленные контейнеры. Этот сценарий удалит все контейнеры, поэтому не используйте его, если хотите, чтобы некоторые контейнеры работали.
Заключение
Производственные рабочие нагрузки часто требуют высокой пропускной способности, низкой задержки и затрат. Неэффективные архитектуры, неоптимально использующие ускорители, могут привести к неоправданно высоким производственным затратам. В этом посте мы показали, как оптимально использовать NeuronCores с FastAPI, чтобы максимизировать пропускную способность при минимальной задержке. Мы опубликовали инструкцию на нашем Репо GitHub. Благодаря этой архитектуре решения вы можете развернуть несколько моделей в каждом NeuronCore и работать с несколькими моделями параллельно на разных ядрах NeuronCore без потери производительности. Дополнительные сведения о развертывании моделей в масштабе с помощью таких сервисов, как Амазон Эластик Кубернетес Сервис (Amazon EKS), см. Обслуживайте 3,000 моделей глубокого обучения на Amazon EKS с помощью AWS Inferentia менее чем за 50 долларов в час.
Об авторах
Анкур Шривастава является старшим архитектором решений в команде ML Frameworks. Он фокусируется на помощи клиентам с самоуправляемым распределенным обучением и логическими выводами в масштабе AWS. Его опыт включает промышленное диагностическое обслуживание, цифровые двойники, вероятностную оптимизацию проектирования, и он закончил докторантуру в области машиностроения в Университете Райса и постдокторские исследования в Массачусетском технологическом институте.
Кей Си Тунг является старшим архитектором решений в AWS Annapurna Labs. Он специализируется на обучении и крупномасштабном развертывании моделей глубокого обучения в облаке. У него есть докторская степень. по молекулярной биофизике в Юго-западном медицинском центре Техасского университета в Далласе. Он выступал на саммитах AWS и AWS Reinvent. Сегодня он помогает клиентам обучать и развертывать большие модели PyTorch и TensorFlow в облаке AWS. Он автор двух книг: Изучите TensorFlow Enterprise и Карманный справочник по TensorFlow 2.
Проной Чопра является старшим архитектором решений в команде Startups Generative AI в AWS. Он специализируется на проектировании и разработке решений IoT и машинного обучения. В прошлом он был соучредителем двух стартапов и с удовольствием занимается проектами в области IoT, AI/ML и бессерверных технологий.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/optimize-aws-inferentia-utilization-with-fastapi-and-pytorch-models-on-amazon-ec2-inf1-inf2-instances/
- :имеет
- :является
- :нет
- :куда
- $UP
- 000
- 1
- 1.3
- 10
- 100
- 12
- 13
- 15%
- 2023
- 7
- 8
- 91
- a
- в состоянии
- О нас
- выше
- абстракция
- ускорители
- доступ
- доступа
- соответственно
- Учетная запись
- Достигать
- через
- активный
- Добавить
- против
- AI
- AI / ML
- Все
- позволять
- позволяет
- причислены
- Amazon
- Amazon EC2
- Amazon Web Services
- an
- и
- любой
- API
- API
- приложение
- Применение
- Приложения
- Применить
- соответствующий
- архитектура
- МЫ
- Аргументы
- AS
- предполагать
- At
- автор
- автоматически
- свободных мест
- доступен
- избежать
- AWS
- Вывод AWS
- Использование темпера с изогнутым основанием
- основанный
- BE
- , так как:
- становиться
- было
- до
- от имени
- поведение
- не являетесь
- польза
- Преимущества
- ЛУЧШЕЕ
- лучшие практики
- между
- Биофизика
- Немного
- Блог
- Книги
- строить
- Строительство
- построенный
- но
- by
- призывают
- под названием
- Объявления
- CAN
- возможности
- возможности
- заботится
- случаев
- случаев
- Центр
- изменение
- менялась
- изменения
- проверка
- чипсы
- выбор
- Выберите
- выбрал
- ясность
- клиент
- тесно
- облако
- код
- выходит
- сравнение
- конкурировать
- Заполненная
- Вычисление
- Конфигурация
- Рассматривать
- принимая во внимание
- Консоли
- потребленный
- содержать
- Container
- Контейнеры
- содержит
- контекст
- непрерывно
- контраст
- контроль
- контроль
- Удобно
- Основные
- исправить
- Цена
- Расходы
- может
- Пара
- Создайте
- создали
- создает
- Создающий
- Полномочия
- решающее значение
- Клиенты
- Dallas
- решение
- глубоко
- глубокое обучение
- более глубокий
- По умолчанию
- демонстрировать
- в зависимости
- развертывание
- развернуть
- развертывание
- развертывание
- Проект
- назначенный
- Несмотря на
- подробный
- определяет
- развивающийся
- устройство
- Устройства
- различный
- Вещание
- КОПАТЬ
- Интернет
- Цифровые близнецы
- распределенный
- распределенное обучение
- Django
- do
- Docker
- приносит
- не
- домен
- Dont
- динамический
- каждый
- Ранее
- легче
- легко
- легко
- EC
- фактически
- конец
- Конечная точка
- заниматься
- Проект и
- обеспечивать
- Enter
- организация
- запись
- Окружающая среда
- ошибки
- и т.д
- Даже
- Каждая
- развивается
- пример
- Кроме
- опыт
- расширения
- Face
- семья
- быстрее
- выполнимый
- Особенности
- ФРС
- меньше
- фигура
- Файл
- фильтр
- в заключение
- Найдите
- Во-первых,
- фокусируется
- после
- следующим образом
- Что касается
- формат
- найденный
- 4
- Рамки
- каркасы
- от
- полный
- полностью
- функция
- шлюз
- генеративный
- Генеративный ИИ
- получить
- GitHub
- Дайте
- дает
- Глобальный
- будет
- инструкция
- обрабатывать
- практический
- Аппаратные средства
- Есть
- he
- помощь
- помощь
- помогает
- здесь
- High
- высший
- наивысший
- его
- кашель
- состоялся
- хостинг
- хостов
- Как
- How To
- Однако
- HTML
- HTTP
- HTTPS
- ОбниматьЛицо
- ID
- идеальный
- идентифицированный
- if
- изображение
- изображений
- Импортировать
- важную
- in
- включены
- включает в себя
- Входящий
- Увеличивает
- промышленность
- неэффективное
- информация
- сообщил
- вход
- затраты
- устанавливать
- установлен
- Установка
- пример
- вместо
- Институт
- инструкции
- взаимодействовать
- в
- вызывается
- КАТО
- вопрос
- вопросы
- IT
- ЕГО
- JIT-
- JPG
- всего
- Сохранить
- ключи
- Знать
- известный
- Labs
- язык
- большой
- Фамилия
- Задержка
- последний
- запуск
- слой
- слоев
- вести
- УЧИТЬСЯ
- изучение
- уровень
- Библиотека
- такое как
- Linux
- Список
- Включенный в список
- мало
- немного глубже
- LLM
- погрузка
- грузы
- локальным
- расположение
- каротаж
- Войти
- посмотреть
- выглядит как
- ВЗГЛЯДЫ
- потери
- Низкий
- ниже
- низший
- машина
- обучение с помощью машины
- сделанный
- техническое обслуживание
- сделать
- ДЕЛАЕТ
- Создание
- многих
- Массачусетс
- Массачусетский Технологический Институт
- Макс
- Максимизировать
- максимальный
- Май..
- механический
- основным медицинским
- Память
- Метрика
- против
- минимальный
- ML
- модель
- Модели
- модифицировало
- изменять
- молекулярный
- монитор
- БОЛЕЕ
- самых
- двигаться
- много
- с разными
- должен
- имя
- обязательно
- необходимо
- Необходимость
- необходимый
- потребности
- Новые
- следующий
- сейчас
- номер
- цель
- наблюдать
- of
- предлагают
- .
- on
- консолидировать
- ONE
- только
- на
- с открытым исходным кодом
- работать
- Операционный отдел
- Операторы
- против
- оптимизация
- Оптимизировать
- оптимизированный
- or
- наши
- внешний
- выходной
- за
- пакет
- Параллельные
- часть
- pass
- мимо
- путь
- для
- процент
- производительность
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- пунктов
- сборах
- политика
- Популярное
- возможное
- После
- практиками
- представить
- частная
- вероятно
- процесс
- Процессы
- производства
- Производство
- Профиль
- проектов
- свойства
- обеспечивать
- при условии
- приводит
- полномочие
- опубликованный
- тянущий
- цель
- Push
- толкнул
- выталкивает
- положил
- Питон
- pytorch
- ассортимент
- реальные
- реального времени
- рекомендовать
- Управление по борьбе с наркотиками (DEA)
- записанный
- отражать
- область
- относительно
- полагаться
- опираясь
- остатки
- удаление
- замещать
- хранилище
- Запросы
- обязательный
- Требования
- исследованиям
- походит
- Резерв
- зарезервированный
- Полезные ресурсы
- ответ
- ответственный
- ОТДЫХ
- в результате
- многоразовый
- Рис
- Роли
- роли
- Run
- Бег
- работает
- пожертвовав
- то же
- Сохранить
- Шкала
- сценарий
- скрипты
- SDK
- посмотреть
- выбор
- отправка
- старший
- чувствительный
- отдельный
- Serverless
- Серверы
- обслуживание
- Услуги
- выступающей
- набор
- установка
- установка
- формы
- Поделиться
- общие
- должен
- показывать
- показал
- показанный
- Шоу
- сторона
- аналогичный
- Аналогичным образом
- просто
- ШЕСТЬ
- Размер
- Размеры
- меньше
- So
- Решение
- Решения
- некоторые
- специализируется
- конкретный
- указанный
- говорят
- стабильный
- стек
- Начало
- ввод в эксплуатацию
- Стартапы
- заявил
- Шаги
- остановившийся
- хранить
- магазины
- сильно
- исследования
- Успешно
- такие
- Вершины
- поддержка
- Поддержанный
- Убедитесь
- система
- ТАБЛИЦЫ
- взять
- приняты
- принимает
- команда
- Технологии
- временный
- tensorflow
- Терминал
- тестXNUMX
- Тестирование
- тестов
- Техас
- чем
- который
- Ассоциация
- их
- Их
- тогда
- следовательно
- Эти
- они
- вещи
- этой
- те
- Через
- пропускная способность
- Связанный
- время
- в
- сегодня
- инструментом
- инструменты
- топ
- факел
- Всего
- Прослеживать
- трассировка
- традиционный
- Train
- Обучение
- трансформеры
- надежных
- стараться
- ОЧЕРЕДЬ
- Близнецы
- два
- напишите
- Ubuntu
- под
- лежащий в основе
- Университет
- Юникс
- необязательно
- на
- us
- Применение
- использование
- используемый
- Информация о пользователе
- пользователей
- использования
- через
- использовать
- использует
- Использующий
- ценностное
- Наши ценности
- версия
- очень
- видимый
- видение
- объем
- хотеть
- законопроект
- Путь..
- we
- Web
- веб-сервер
- веб-сервисы
- ЧТО Ж
- были
- когда
- , которые
- зачем
- широко
- будете
- в
- без
- работник
- рабочие
- бы
- письмо
- письменный
- Ты
- ВАШЕ
- себя
- зефирнет
- нуль