Cuando se implementan modelos de Deep Learning a escala, es crucial utilizar de manera efectiva el hardware subyacente para maximizar el rendimiento y los beneficios de costos. Para las cargas de trabajo de producción que requieren un alto rendimiento y una latencia baja, la selección del Nube informática elástica de Amazon (EC2), la pila de servicio del modelo y la arquitectura de implementación son muy importantes. La arquitectura ineficiente puede conducir a una utilización subóptima de los aceleradores y costos de producción innecesariamente altos.
En esta publicación, lo guiamos a través del proceso de implementación de servidores modelo FastAPI en dispositivos AWS Inferentia (que se encuentran en Amazon EC2 Inf1 y Amazon CE Inf2 instancias). También demostramos el alojamiento de un modelo de muestra que se implementa en paralelo en todos los NeuronCores para maximizar la utilización del hardware.
Resumen de la solución
FastAPI es un marco web de código abierto para servir aplicaciones Python que es mucho más rápido que los marcos tradicionales como Flask y Django. Utiliza un Interfaz de puerta de enlace de servidor asíncrono (ASGI) en lugar del ampliamente utilizado Interfaz de puerta de enlace del servidor web (WSGI). ASGI procesa las solicitudes entrantes de forma asincrónica a diferencia de WSGI, que procesa las solicitudes de forma secuencial. Esto convierte a FastAPI en la opción ideal para manejar solicitudes sensibles a la latencia. Puede usar FastAPI para implementar un servidor que aloje un punto final en una instancia de Inferentia (Inf1/Inf2) que escuche las solicitudes de los clientes a través de un puerto designado.
Nuestro objetivo es lograr el mayor rendimiento al menor costo a través de la máxima utilización del hardware. Esto nos permite manejar más solicitudes de inferencia con menos aceleradores. Cada dispositivo AWS Inferentia1 contiene cuatro NeuronCores-v1 y cada dispositivo AWS Inferentia2 contiene dos NeuronCores-v2. El AWS neurona SDK nos permite utilizar cada uno de los NeuronCores en paralelo, lo que nos brinda más control al cargar e inferir cuatro o más modelos en paralelo sin sacrificar el rendimiento.
Con FastAPI, puede elegir el servidor web de Python (gunicornio, uvicornio, Hipermaíz, Daphne). Estos servidores web proporcionan una capa de abstracción sobre el modelo de Machine Learning (ML) subyacente. El cliente solicitante tiene la ventaja de ignorar el modelo alojado. Un cliente no necesita saber el nombre o la versión del modelo que se ha implementado en el servidor; el nombre del punto final ahora es solo un proxy para una función que carga y ejecuta el modelo. Por el contrario, en una herramienta de publicación específica del marco, como TensorFlow Serving, el nombre y la versión del modelo forman parte del nombre del punto final. Si el modelo cambia en el lado del servidor, el cliente debe saber y cambiar su llamada API al nuevo punto final en consecuencia. Por lo tanto, si los modelos de versión evolucionan continuamente, como en el caso de las pruebas A/B, entonces usar un servidor web Python genérico con FastAPI es una forma conveniente de entregar modelos, porque el nombre del punto final es estático.
La función de un servidor ASGI es generar un número específico de trabajadores que escuchan las solicitudes de los clientes y ejecutan el código de inferencia. Una capacidad importante del servidor es asegurarse de que la cantidad solicitada de trabajadores esté disponible y activa. En caso de que un trabajador muera, el servidor debe lanzar un nuevo trabajador. En este contexto, el servidor y los trabajadores pueden ser identificados por su ID de proceso Unix (PID). Para esta publicación, usamos un Hipermaíz servidor, que es una opción popular para los servidores web de Python.
En esta publicación, compartimos las mejores prácticas para implementar modelos de aprendizaje profundo con FastAPI en AWS Inferentia NeuronCores. Mostramos que puede implementar varios modelos en NeuronCores separados que se pueden llamar simultáneamente. Esta configuración aumenta el rendimiento porque se pueden inferir varios modelos al mismo tiempo y la utilización de NeuronCore está completamente optimizada. El código se puede encontrar en el Repositorio GitHub. La siguiente figura muestra la arquitectura de cómo configurar la solución en una instancia EC2 Inf2.
La misma arquitectura se aplica a un tipo de instancia EC2 Inf1 excepto que tiene cuatro núcleos. Eso cambia un poco el diagrama de arquitectura.
AWS Inferentia NeuronCores
Profundicemos un poco más en las herramientas proporcionadas por AWS Neuron para interactuar con NeuronCores. Las siguientes tablas muestran la cantidad de NeuronCores en cada tipo de instancia Inf1 e Inf2. Las vCPU host y la memoria del sistema se comparten entre todos los NeuronCores disponibles.
Tamaño de instancia | # Aceleradores Inferentia | # NeuronCores-v1 | vCPU | Memoria (GiB) |
Inf1.xgrande | 1 | 4 | 4 | 8 |
Inf1.2xgrande | 1 | 4 | 8 | 16 |
Inf1.6xgrande | 4 | 16 | 24 | 48 |
Inf1.24xgrande | 16 | 64 | 96 | 192 |
Tamaño de instancia | # Aceleradores Inferentia | # NeuronCores-v2 | vCPU | Memoria (GiB) |
Inf2.xgrande | 1 | 2 | 4 | 32 |
Inf2.8xgrande | 1 | 2 | 32 | 32 |
Inf2.24xgrande | 6 | 12 | 96 | 192 |
Inf2.48xgrande | 12 | 24 | 192 | 384 |
Las instancias Inf2 contienen el nuevo NeuronCores-v2 en comparación con el NeuronCore-v1 en las instancias Inf1. A pesar de tener menos núcleos, pueden ofrecer un rendimiento 4 veces mayor y una latencia 10 veces menor que las instancias Inf1. Las instancias de Inf2 son ideales para cargas de trabajo de aprendizaje profundo como IA generativa, modelos de lenguaje grande (LLM) en la familia OPT/GPT y transformadores de visión como Stable Diffusion.
Neuron Runtime es responsable de ejecutar modelos en dispositivos Neuron. Neuron Runtime determina qué NeuronCore ejecutará qué modelo y cómo ejecutarlo. La configuración de Neuron Runtime se controla mediante el uso de Variables de entorno a nivel de proceso. De forma predeterminada, las extensiones del marco de Neuron se encargarán de la configuración de Neuron Runtime en nombre del usuario; sin embargo, también son posibles configuraciones explícitas para lograr un comportamiento más optimizado.
Dos variables de entorno populares son NEURON_RT_NUM_CORES
y NEURON_RT_VISIBLE_CORES
. Con estas variables de entorno, los procesos de Python se pueden vincular a un NeuronCore. Con NEURON_RT_NUM_CORES
, se puede reservar un número específico de núcleos para un proceso, y con NEURON_RT_VISIBLE_CORES
, se puede reservar una gama de NeuronCores. Por ejemplo, NEURON_RT_NUM_CORES=2 myapp.py
reservará dos núcleos y NEURON_RT_VISIBLE_CORES=’0-2’ myapp.py
reservará cero, uno y dos núcleos para myapp.py
. También puede reservar NeuronCores entre dispositivos (chips AWS Inferentia). Entonces, NEURON_RT_VISIBLE_CORES=’0-5’ myapp.py
reservará los primeros cuatro núcleos en device1
y un núcleo en device2
en un tipo de instancia Ec2 Inf1. De manera similar, en un tipo de instancia EC2 Inf2, esta configuración reservará dos núcleos en device1
y device2
y un núcleo en device3
. La siguiente tabla resume la configuración de estas variables.
Nombre | Descripción | Tipo de Propiedad | Valores esperados | Valor por defecto | Versión RT |
NEURON_RT_VISIBLE_CORES |
Rango de NeuronCores específicos necesarios para el proceso | Rango de enteros (como 1-3) | Cualquier valor o rango entre 0 y Max NeuronCore en el sistema | Ninguna | 2.0+ |
NEURON_RT_NUM_CORES |
Número de NeuronCores requeridos por el proceso | Entero | Un valor de 1 a Max NeuronCore en el sistema | 0, que se interpreta como “todos” | 2.0+ |
Para obtener una lista de todas las variables de entorno, consulte Configuración del tiempo de ejecución de Neuron.
De manera predeterminada, al cargar modelos, los modelos se cargan en NeuronCore 0 y luego en NeuronCore 1, a menos que las variables de entorno anteriores lo indiquen explícitamente. Como se especificó anteriormente, los NeuronCores comparten las CPU virtuales del host y la memoria del sistema disponibles. Por lo tanto, los modelos implementados en cada NeuronCore competirán por los recursos disponibles. Esto no será un problema si el modelo utiliza NeuronCores en gran medida. Pero si un modelo se ejecuta solo en parte en los NeuronCores y el resto en las vCPU del host, entonces es importante considerar la disponibilidad de la CPU por NeuronCore. Esto también afecta la elección de la instancia.
La siguiente tabla muestra la cantidad de vCPU host y la memoria del sistema disponible por modelo si se implementó un modelo en cada NeuronCore. Según el uso de NeuronCore, vCPU y uso de memoria de su aplicación, se recomienda ejecutar pruebas para averiguar qué configuración es más eficaz para su aplicación. El Herramienta superior de neurona puede ayudar a visualizar la utilización del núcleo y la utilización de la memoria del host y del dispositivo. Con base en estas métricas, se puede tomar una decisión informada. Demostramos el uso de Neuron Top al final de este blog.
Tamaño de instancia | # Aceleradores Inferentia | # Modelos | vCPU/Modelo | Memoria/Modelo (GiB) |
Inf1.xgrande | 1 | 4 | 1 | 2 |
Inf1.2xgrande | 1 | 4 | 2 | 4 |
Inf1.6xgrande | 4 | 16 | 1.5 | 3 |
Inf1.24xgrande | 16 | 64 | 1.5 | 3 |
Tamaño de instancia | # Aceleradores Inferentia | # Modelos | vCPU/Modelo | Memoria/Modelo (GiB) |
Inf2.xgrande | 1 | 2 | 2 | 8 |
Inf2.8xgrande | 1 | 2 | 16 | 64 |
Inf2.24xgrande | 6 | 12 | 8 | 32 |
Inf2.48xgrande | 12 | 24 | 8 | 32 |
Para probar las funciones del SDK de Neuron usted mismo, consulte la última Capacidades de neuronas para PyTorch.
Configuración del sistema
La siguiente es la configuración del sistema utilizada para esta solución:
Configurar la solución
Hay un par de cosas que debemos hacer para configurar la solución. Comience por crear un rol de IAM que su instancia EC2 asumirá y que le permitirá empujar y extraer de Registro de contenedores elásticos de Amazon.
Paso 1: Configure el rol de IAM
- Comience iniciando sesión en la consola y accediendo a IAM > Roles > Crear rol
- Seleccione el tipo de entidad de confianza
AWS Service
- Seleccione EC2 como servicio en el caso de uso
- Haga Clic en Siguiente y podrás ver todas las pólizas disponibles
- Para el propósito de esta solución, le daremos a nuestra instancia EC2 acceso completo a ECR. Filtrar por AmazonEC2ContainerRegistryFullAccess y seleccionarlo.
- Presiona siguiente y nombra el rol
inf-ecr-access
Nota: la política que adjuntamos otorga a la instancia EC2 acceso total a Amazon ECR. Recomendamos encarecidamente seguir las principal de privilegio mínimo para cargas de trabajo de producción.
Paso 2: configurar la CLI de AWS
Si utiliza la AMI de aprendizaje profundo indicada anteriormente, viene con la CLI de AWS instalada. Si está utilizando una AMI diferente (Amazon Linux 2023, Base Ubuntu, etc.), instale las herramientas CLI siguiendo esta guía.
Una vez que haya instalado las herramientas de la CLI, configure la CLI con el comando aws configure
. Si tiene claves de acceso, puede agregarlas aquí, pero no necesariamente las necesita para interactuar con los servicios de AWS. Confiamos en los roles de IAM para hacer eso.
Note: Necesitamos ingresar al menos un valor (región predeterminada o formato predeterminado) para crear el perfil predeterminado. Para este ejemplo, vamos con us-east-2
como la región y json
como salida predeterminada.
Clonar el repositorio de Github
El proyecto Repositorio GitHub proporciona todos los scripts necesarios para implementar modelos utilizando FastAPI en NeuronCores en instancias de AWS Inferentia. Este ejemplo utiliza contenedores Docker para garantizar que podamos crear soluciones reutilizables. Incluido en este ejemplo es el siguiente config.properties archivo para que los usuarios proporcionen entradas.
El archivo de configuración necesita prefijos de nombre definidos por el usuario para la imagen de Docker y los contenedores de Docker. El build.sh
guión en el fastapi
y trace-model
Las carpetas usan esto para crear imágenes de Docker.
Compile un modelo en AWS Inferentia
Comenzaremos rastreando el modelo y produciendo un archivo PyTorch Torchscript .pt. Empiece por acceder trace-model
directorio y modificando el archivo .env. Dependiendo del tipo de instancia que elija, modifique el CHIP_TYPE
en la pestaña .env
archivo. Como ejemplo, elegiremos Inf2 como guía. Los mismos pasos se aplican al proceso de implementación de Inf1.
A continuación, establezca la región predeterminada en el mismo archivo. Esta región se usará para crear un repositorio de ECR y las imágenes de Docker se enviarán a este repositorio. También en esta carpeta, proporcionamos todos los scripts necesarios para rastrear un bert-base-uncased
modelo en AWS Inferencea. Este script podría usarse para la mayoría de los modelos disponibles en Abrazando la cara. Dockerfile tiene todas las dependencias para ejecutar modelos con Neuron y ejecuta el modelo-traza.py código como punto de entrada.
Compilación de neuronas explicada
La API de Neuron SDK se parece mucho a la API PyTorch Python. El torch.jit.trace()
from PyTorch toma el modelo y el tensor de entrada de muestra como argumentos. Las entradas de muestra se alimentan al modelo y las operaciones que se invocan a medida que la entrada se abre camino a través de las capas del modelo se registran como AntorchaScript. Para obtener más información sobre JIT Tracing en PyTorch, consulte lo siguiente documentación.
Al igual que torch.jit.trace()
, puede verificar si su modelo se puede compilar en AWS Inferentia con el siguiente código para instancias inf1.
Para inf2, la biblioteca se llama torch_neuronx
. Así es como puede probar la compilación de su modelo con instancias inf2.
Después de crear la instancia de seguimiento, podemos pasar la entrada del tensor de ejemplo de la siguiente manera:
Y finalmente guarde la salida de TorchScript resultante en el disco local
Como se muestra en el código anterior, puede usar compiler_args
y optimizations
para optimizar el despliegue. Para obtener una lista detallada de los argumentos a favor de la torch.neuron.trace
API, consulte API de PyTorch-Neuron rastrear python.
Tenga en cuenta los siguientes puntos importantes:
- El SDK de Neuron no admite formas de tensor dinámico a partir de este escrito. Por lo tanto, se deberá compilar un modelo por separado para diferentes formas de entrada. Para obtener más información sobre cómo ejecutar la inferencia en formas de entrada variable con depósito, consulte Ejecución de inferencia en formas de entrada variable con depósito.
- Si se enfrenta a problemas de memoria al compilar un modelo, intente compilar el modelo en una instancia de AWS Inferentia con más vCPU o memoria, o incluso una instancia grande c6i o r6i, ya que la compilación solo usa CPU. Una vez compilado, el modelo rastreado probablemente se pueda ejecutar en tamaños de instancia de AWS Inferentia más pequeños.
Explicación del proceso de construcción
Ahora construiremos este contenedor ejecutando construir.sh. El archivo de secuencia de comandos de compilación simplemente crea la imagen de Docker extrayendo una imagen de contenedor de aprendizaje profundo base e instalando HuggingFace transformers
paquete. Basado en el CHIP_TYPE
especificado en el .env
archivo, el docker.properties
archivo decide el apropiado BASE_IMAGE
. Esto BASE_IMAGE
apunta a una imagen de contenedor de aprendizaje profundo para Neuron Runtime proporcionada por AWS.
Está disponible a través de un repositorio ECR privado. Antes de que podamos extraer la imagen, debemos iniciar sesión y obtener credenciales temporales de AWS.
Note: necesitamos reemplazar la región listada en el comando especificado por el indicador de la región y dentro del URI del repositorio con la región que ponemos en el .env archivo.
Con el fin de facilitar este proceso, podemos utilizar el fetch-credentials.sh
archivo. La región se tomará del archivo .env automáticamente.
A continuación, empujaremos la imagen usando el script empujar.sh. El script de inserción crea un repositorio en Amazon ECR para usted y envía la imagen del contenedor.
Finalmente, cuando la imagen se crea y se envía, podemos ejecutarla como un contenedor ejecutando correr.sh y la cola corriendo troncos con registros.sh. En los registros del compilador (consulte la siguiente captura de pantalla), verá el porcentaje de operadores aritméticos compilados en Neuron y el porcentaje de subgráficos del modelo compilados con éxito en Neuron. La captura de pantalla muestra los registros del compilador para el bert-base-uncased-squad2
modelo. Los registros muestran que se compilaron el 95.64 % de los operadores aritméticos y también proporciona una lista de los operadores que se compilaron en Neuron y los que no son compatibles.
Esta es una lista de todos los operadores admitidos en el paquete PyTorch Neuron más reciente. Similarmente, aquí está la lista de todos los operadores admitidos en el paquete PyTorch Neuronx más reciente.
Implementar modelos con FastAPI
Después de compilar los modelos, el modelo rastreado estará presente en el trace-model
carpeta. En este ejemplo, hemos colocado el modelo rastreado para un tamaño de lote de 1. Consideramos un tamaño de lote de 1 aquí para tener en cuenta aquellos casos de uso en los que no es factible o necesario un tamaño de lote más alto. Para casos de uso donde se necesitan lotes de mayor tamaño, el antorcha.neurona.DataParallel (para Inf1) o antorcha.neuronx.DataParallel (para Inf2) La API también puede ser útil.
El proyecto rápido-api La carpeta proporciona todos los scripts necesarios para implementar modelos con FastAPI. Para implementar los modelos sin ningún cambio, simplemente ejecute el desplegar.sh y creará una imagen de contenedor FastAPI, ejecutará contenedores en la cantidad especificada de núcleos e implementará la cantidad especificada de modelos por servidor en cada servidor modelo FastAPI. Esta carpeta también contiene un .env
archivo, modifíquelo para que refleje la correcta CHIP_TYPE
y AWS_DEFAULT_REGION
.
Note: Los scripts de FastAPI se basan en las mismas variables de entorno que se utilizan para crear, enviar y ejecutar las imágenes como contenedores. Los scripts de implementación de FastAPI utilizarán los últimos valores conocidos de estas variables. Por lo tanto, si rastreó el modelo para el tipo de instancia Inf1 en último lugar, ese modelo se implementará a través de estos scripts.
El proyecto fastapi-servidor.py El archivo que es responsable de alojar el servidor y enviar las solicitudes al modelo hace lo siguiente:
- Lee el número de modelos por servidor y la ubicación del modelo compilado del archivo de propiedades
- Establece NeuronCores visibles como variables de entorno en el contenedor de Docker y lee las variables de entorno para especificar qué NeuronCores usar
- Proporciona una API de inferencia para el
bert-base-uncased-squad2
modelo - Con
jit.load()
, carga la cantidad de modelos por servidor como se especifica en la configuración y almacena los modelos y los tokenizadores requeridos en diccionarios globales
Con esta configuración, sería relativamente fácil configurar API que enumeren qué modelos y cuántos modelos se almacenan en cada NeuronCore. De manera similar, las API podrían escribirse para eliminar modelos de NeuronCores específicos.
El proyecto Dockerfile para construir contenedores FastAPI se basa en la imagen de Docker que creamos para rastrear los modelos. Esta es la razón por la cual el ventana acoplable.propiedades El archivo especifica la ruta de ECR a la imagen de Docker para rastrear los modelos. En nuestra configuración, los contenedores de Docker en todos los NeuronCores son similares, por lo que podemos crear una imagen y ejecutar varios contenedores a partir de una imagen. Para evitar cualquier error en el punto de entrada, especificamos ENTRYPOINT ["/usr/bin/env"]
en el Dockerfile antes de ejecutar el startup.sh
guión, que parece hypercorn fastapi-server:app -b 0.0.0.0:8080
. Este script de inicio es el mismo para todos los contenedores. Si usa la misma imagen base que para los modelos de seguimiento, puede crear este contenedor simplemente ejecutando el script build.sh. El push.sh
el guión sigue siendo el mismo que antes para los modelos de calco. La imagen de Docker modificada y el nombre del contenedor los proporciona el docker.properties
archivo.
El proyecto run.sh file
hace lo siguiente:
- Lee la imagen de Docker y el nombre del contenedor del propiedades archivo, que a su vez lee el
config.properties
archivo, que tiene unnum_cores
configuración del usuario - Inicia un ciclo de 0 a
num_cores
y para cada núcleo:- Establece el número de puerto y el número de dispositivo
- Establece el
NEURON_RT_VISIBLE_CORES
Variable ambiental - Especifica el montaje del volumen.
- Ejecuta un contenedor Docker
Para mayor claridad, el comando de ejecución de Docker para implementar en NeuronCore 0 para Inf1 se vería como el siguiente código:
El comando de ejecución para implementar en NeuronCore 5 se vería como el siguiente código:
Después de desplegar los contenedores, usamos el run_apis.py script, que llama a las API en subprocesos paralelos. El código está configurado para llamar a seis modelos implementados, uno en cada NeuronCore, pero se puede cambiar fácilmente a una configuración diferente. Llamamos a las API desde el lado del cliente de la siguiente manera:
Monitorear NeuronCore
Después de implementar los servidores modelo, para monitorear la utilización de NeuronCore, podemos usar neuron-top
para observar en tiempo real el porcentaje de utilización de cada NeuronCore. parte superior de la neurona es una herramienta CLI en Neuron SDK para proporcionar información como NeuronCore, vCPU y uso de memoria. En una terminal separada, ingrese el siguiente comando:
Su salida debe ser similar a la siguiente figura. En este escenario, especificamos el uso de dos NeuronCores y dos modelos por servidor en una instancia Inf2.xlarge. La siguiente captura de pantalla muestra que dos modelos de 287.8 MB cada uno están cargados en dos NeuronCores. Con un total de 4 modelos cargados, puede ver que la memoria del dispositivo utilizada es de 1.3 GB. Use las teclas de flecha para moverse entre los NeuronCores en diferentes dispositivos
De manera similar, en un tipo de instancia Inf1.16xlarge vemos un total de 12 modelos (2 modelos por núcleo sobre 6 núcleos) cargados. Se consume una memoria total de 2.1 GB y cada modelo tiene un tamaño de 177.2 MB.
Después de ejecutar el run_apis.py script, puede ver el porcentaje de utilización de cada uno de los seis NeuronCores (vea la siguiente captura de pantalla). También puede ver el uso de vCPU del sistema y el uso de vCPU en tiempo de ejecución.
La siguiente captura de pantalla muestra el porcentaje de uso del núcleo de la instancia Inf2.
De manera similar, esta captura de pantalla muestra la utilización principal en un tipo de instancia inf1.6xlarge.
Limpiar
Para limpiar todos los contenedores Docker que creó, proporcionamos un limpieza.sh secuencia de comandos que elimina todos los contenedores en ejecución y detenidos. Este script eliminará todos los contenedores, así que no lo use si desea mantener algunos contenedores en ejecución.
Conclusión
Las cargas de trabajo de producción a menudo tienen requisitos de alto rendimiento, baja latencia y costo. Las arquitecturas ineficientes que utilizan aceleradores de manera subóptima podrían generar costos de producción innecesariamente altos. En esta publicación, mostramos cómo utilizar NeuronCores de manera óptima con FastAPI para maximizar el rendimiento con una latencia mínima. Hemos publicado las instrucciones en nuestro Repositorio GitHub. Con esta arquitectura de solución, puede implementar varios modelos en cada NeuronCore y operar varios modelos en paralelo en diferentes NeuronCore sin perder rendimiento. Para obtener más información sobre cómo implementar modelos a escala con servicios como Servicio Amazon Elastic Kubernetes (Amazon EKS), consulte Sirva 3,000 modelos de aprendizaje profundo en Amazon EKS con AWS Inferentia por menos de $ 50 la hora.
Sobre los autores
Ankur Srivastava es Arquitecto de Soluciones Sr. en el equipo de ML Frameworks. Se enfoca en ayudar a los clientes con capacitación distribuida autoadministrada e inferencia a escala en AWS. Su experiencia incluye mantenimiento predictivo industrial, gemelos digitales, optimización de diseño probabilístico y completó sus estudios de doctorado en Ingeniería Mecánica en la Universidad de Rice e investigación posdoctoral en el Instituto de Tecnología de Massachusetts.
kc tung es arquitecto sénior de soluciones en AWS Annapurna Labs. Se especializa en el entrenamiento y la implementación a gran escala de modelos de aprendizaje profundo en la nube. Tiene un doctorado. en biofísica molecular del Centro Médico Southwestern de la Universidad de Texas en Dallas. Ha hablado en AWS Summits y AWS Reinvent. Hoy ayuda a los clientes a entrenar e implementar grandes modelos de PyTorch y TensorFlow en la nube de AWS. Es autor de dos libros: Aprende TensorFlow Enterprise y Referencia de bolsillo de TensorFlow 2.
Pronoy Chopra es Arquitecto de Soluciones Sénior en el equipo de Inteligencia Artificial Generativa de Startups en AWS. Se especializa en la arquitectura y el desarrollo de soluciones de IoT y Machine Learning. Ha cofundado dos nuevas empresas en el pasado y disfruta participar en proyectos en el dominio IoT, AI/ML y Serverless.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Automoción / vehículos eléctricos, Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- Desplazamientos de bloque. Modernización de la propiedad de compensaciones ambientales. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/optimize-aws-inferentia-utilization-with-fastapi-and-pytorch-models-on-amazon-ec2-inf1-inf2-instances/
- :posee
- :es
- :no
- :dónde
- $ UP
- 000
- 1
- 1.3
- 10
- 100
- 12
- 13
- 15%
- 2023
- 7
- 8
- 91
- a
- Poder
- Nuestra Empresa
- arriba
- abstracción
- aceleradores
- de la máquina
- el acceso
- en consecuencia
- Mi Cuenta
- Lograr
- a través de
- lector activo
- add
- en contra
- AI
- AI / ML
- Todos
- permitir
- permite
- también
- Amazon
- Amazon EC2
- Amazon Web Services
- an
- y
- cualquier
- abejas
- API
- applicación
- Aplicación
- aplicaciones
- Aplicá
- adecuado
- arquitectura
- somos
- argumentos
- AS
- asumir
- At
- autor
- automáticamente
- disponibilidad
- Hoy Disponibles
- evitar
- AWS
- Inferencia de AWS
- bases
- basado
- BE
- porque
- a las que has recomendado
- esto
- antes
- favor
- comportamiento
- "Ser"
- es el beneficio
- beneficios
- MEJOR
- y las mejores prácticas
- entre
- Biofísica
- Poco
- Blog
- Libros
- build
- Construir la
- construido
- pero
- by
- llamar al
- , que son
- Calls
- PUEDEN
- capacidades
- capacidad
- servicios sociales
- case
- cases
- Reubicación
- el cambio
- cambiado
- Cambios
- comprobar
- Papas fritas
- manera?
- Elige
- eligió
- transparencia
- cliente
- de cerca
- Soluciones
- código
- proviene
- comparación
- competir
- Completado
- Calcular
- Configuración
- Considerar
- en vista de
- Consola
- consumido
- que no contengo
- Envase
- Contenedores
- contiene
- contexto
- continuamente
- contraste
- control
- controlado
- Conveniente
- Core
- correcta
- Cost
- Precio
- podría
- Parejas
- Para crear
- creado
- crea
- Creamos
- Referencias
- crucial
- Clientes
- Dallas
- Koops
- profundo
- deep learning
- más profundo
- Predeterminado
- demostrar
- Dependiente
- desplegar
- desplegado
- Desplegando
- despliegue
- Diseño
- designada
- A pesar de las
- detallado
- determina
- el desarrollo
- dispositivo
- Dispositivos
- una experiencia diferente
- Difusión
- DIG
- digital
- Gemelos digitales
- distribuidos
- entrenamiento distribuido
- Django
- do
- Docker
- sí
- No
- dominio
- No
- lugar de trabajo dinámico
- cada una
- Más temprano
- más fácil
- pasan fácilmente
- de forma sencilla
- EC
- de manera eficaz
- final
- Punto final
- y conseguir de esta manera
- Ingeniería
- garantizar
- Participar
- entidad
- entrada
- Entorno
- Errores
- etc.
- Incluso
- Cada
- evolución
- ejemplo
- Excepto
- experience
- extensiones
- Cara
- familia
- más rápida
- factible
- Caracteristicas
- Fed
- menos
- Figura
- Archive
- filtrar
- Finalmente
- Encuentre
- Nombre
- se centra
- siguiendo
- siguiente
- formato
- encontrado
- Digital XNUMXk
- Marco conceptual
- marcos
- Desde
- ser completados
- completamente
- función
- puerta
- generativo
- IA generativa
- obtener
- GitHub
- Donar
- da
- Buscar
- va
- guía
- encargarse de
- emprendedor
- Materiales
- Tienen
- he
- ayuda
- ayudando
- ayuda
- esta página
- Alta
- más alto
- más alto
- su
- fortaleza
- organizado
- hosting
- anfitriones
- Cómo
- Como Hacer
- Sin embargo
- HTML
- http
- HTTPS
- AbrazandoCara
- ID
- ideal
- no haber aun identificado una solucion para el problema
- if
- imagen
- imágenes
- importar
- importante
- in
- incluido
- incluye
- Entrante
- Los aumentos
- industrial
- ineficiente
- información
- informó
- Las opciones de entrada
- entradas
- instalar
- instalado
- instalando
- ejemplo
- Innovadora
- Instrucciones
- interactuar
- dentro
- invocado
- IOT
- cuestiones
- IT
- SUS
- JIT
- jpg
- solo
- Guardar
- claves
- Saber
- conocido
- labs
- idioma
- large
- Apellido
- Estado latente
- más reciente
- lanzamiento
- .
- ponedoras
- Lead
- APRENDE:
- aprendizaje
- Nivel
- Biblioteca
- como
- Linux
- Lista
- Listado
- pequeño
- un poco más profundo
- LLM
- carga
- cargas
- local
- Ubicación
- registro
- Inicie sesión
- Mira
- parece
- MIRADAS
- no logras
- Baja
- inferior
- más bajo
- máquina
- máquina de aprendizaje
- hecho
- un mejor mantenimiento.
- para lograr
- HACE
- Realizar
- muchos
- Massachusetts
- Instituto de Tecnología de Massachusetts
- max
- Maximizar
- máximas
- Puede..
- mecánico
- servicios
- Salud Cerebral
- Métrica
- mente
- mínimo
- ML
- modelo
- modelos
- modificado
- modificar
- molecular
- Monitorear
- más,
- MEJOR DE TU
- movimiento
- mucho más
- múltiples
- debe
- nombre
- necesariamente
- necesario
- ¿ Necesita ayuda
- Nuevo
- Next
- ahora
- número
- objetivo
- observar
- of
- LANZAMIENTO
- a menudo
- on
- una vez
- ONE
- , solamente
- sobre
- de código abierto
- funcionar
- Operaciones
- operadores
- opuesto
- optimización
- Optimización
- optimizado
- or
- nuestros
- salir
- salida
- Más de
- paquete
- Paralelo
- parte
- pass
- pasado
- camino
- para
- porcentaje
- actuación
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- punto
- puntos
- políticas
- política
- Popular
- posible
- Publicación
- prácticas
- presente
- privada
- probablemente
- en costes
- productor
- Producción
- Mi Perfil
- proyecta
- propiedades
- proporcionar
- previsto
- proporciona un
- apoderado
- publicado
- tracción
- propósito
- Push
- empujó
- empuja
- poner
- Python
- piñón
- distancia
- real
- en tiempo real
- recomiendan
- recomendado
- grabado
- reflejar
- región
- relativamente
- confiar
- confiando
- permanece
- remove
- reemplazar
- repositorio
- solicitudes
- Requisitos
- Requisitos
- la investigación
- se asemeja
- Reservar
- reservados
- Recursos
- respuesta
- responsable
- RESTO
- resultante
- reutilizables
- Arroz
- Función
- También soy miembro del cuerpo docente de World Extreme Medicine (WEM) y embajadora europea de igualdad para The Transformational Travel Council (TTC). En mi tiempo libre, soy una incansable aventurera, escaladora, patrona de día, buceadora y defensora de la igualdad de género en el deporte y la aventura. En XNUMX, fundé Almas Libres, una ONG nacida para involucrar, educar y empoderar a mujeres y niñas a través del deporte urbano, la cultura y la tecnología.
- Ejecutar
- correr
- corre
- sacrificando
- mismo
- Guardar
- Escala
- guión
- guiones
- Sdk
- ver
- selección
- enviando
- mayor
- sensible
- separado
- Sin servidor
- Servidores
- de coches
- Servicios
- servicio
- set
- pólipo
- Configure
- formas
- Compartir
- compartido
- tienes
- Mostrar
- mostró
- mostrado
- Shows
- lado
- similares
- Del mismo modo
- simplemente
- SEIS
- Tamaño
- tamaños
- menores
- So
- a medida
- Soluciones
- algo
- se especializa
- soluciones y
- especificado
- habla
- estable
- montón
- comienzo
- inicio
- Startups
- dijo
- pasos
- detenido
- almacenados
- tiendas
- se mostró plenamente
- estudios
- Con éxito
- tal
- Cumbres
- SOPORTE
- Soportado
- seguro
- te
- mesa
- ¡Prepárate!
- toma
- toma
- equipo
- Tecnología
- temporal
- tensorflow
- terminal
- test
- Pruebas
- pruebas
- Texas
- que
- esa
- El proyecto
- su
- Les
- luego
- por lo tanto
- Estas
- ellos
- cosas
- así
- aquellos
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- rendimiento
- Atado
- equipo
- a
- hoy
- del IRS
- parte superior
- antorcha
- Total
- Trace
- Rastreo
- tradicional
- Entrenar
- Formación
- transformers
- de confianza
- try
- GIRO
- Gemelos
- dos
- tipo
- Ubuntu
- bajo
- subyacente
- universidad
- UNIX
- innecesariamente
- a
- us
- Uso
- utilizan el
- usado
- Usuario
- usuarios
- usos
- usando
- utilizar
- utiliza
- Utilizando
- propuesta de
- Valores
- versión
- muy
- visibles
- visión
- volumen
- quieres
- fue
- Camino..
- we
- web
- servidor web
- servicios web
- WELL
- tuvieron
- cuando
- que
- porque
- extensamente
- seguirá
- dentro de
- sin
- obrero
- los trabajadores.
- se
- la escritura
- escrito
- Usted
- tú
- a ti mismo
- zephyrnet
- cero