Multi inquilino y Azure OpenAI Service
Azure OpenAI le proporciona acceso a los potentes modelos lingüísticos de OpenAI. Este artículo describe las características clave de Azure OpenAI que son beneficiosas para las soluciones multi inquilino. Revise los recursos recomendados para ayudarle a planificar su enfoque y utilizar Azure OpenAI.
Modelos de aislamiento
Cuando tiene un sistema multiinquilino que usa el servicio Azure OpenAI, debe decidir el nivel de aislamiento que requieren los inquilinos. Debe determinar el modelo de aislamiento en función de los siguientes factores:
- ¿Cuántos inquilinos tienes previsto tener?
- ¿Los inquilinos tienen requisitos de cumplimiento que requieren aislamiento de red o infraestructura?
- ¿Los inquilinos requieren modelos ajustados en sus propios datos?
- ¿Los inquilinos requieren diferentes versiones de modelo o ciclos de vida del modelo?
En la tabla siguiente se resumen los enfoques de implementación que puede usar al usar el servicio Azure OpenAI en un sistema multiinquilino:
Consideración | Servicio Azure OpenAI dedicado | Servicio Azure OpenAI compartido, implementación de modelos dedicados por inquilino | Servicio Azure OpenAI compartido, implementación de modelos compartidos | Servicio Azure OpenAI proporcionado por el inquilino |
---|---|---|---|---|
Aislamiento de datos | Alto | Media | Bajo | Alto |
Aislamiento de rendimiento | Alto | Alto | Bajo-medio, dependiendo del uso de tokens por minuto (TPM) de cada inquilino. | Alto |
Complejidad de la implementación | Bajo-medio, dependiendo del número de inquilinos. | Medio, debe administrar los nombres de implementación y las cuotas. | Bajo | No aplicable, administrado por el cliente. |
Complejidad operativa | Bajo | Medio | Alto | Bajo para el proveedor, más alto para el inquilino. |
Escenario de ejemplo | Implementaciones de inquilino único que requieren aislamiento de red de otros inquilinos. | Inquilinos con requisitos específicos de ajuste o ciclo de vida del modelo. | Soluciones multiinquilino grandes con un nivel de aplicación compartido. | Inquilinos con requisitos específicos de cumplimiento o ajuste. |
Servicio Azure OpenAI dedicado
Si es un proveedor de servicios, considere implementar una instancia de Azure OpenAI para cada inquilino en su suscripción de Azure. Este enfoque permite aislar los datos de cada inquilino. Requiere que implemente y administre un número cada vez mayor de recursos Azure OpenAI a medida que aumenta el número de inquilinos.
Utilice este enfoque si tiene implementaciones de aplicaciones separadas para cada inquilino, o si necesita eludir limitaciones, como la cuota o la solicitud por minuto. Para obtener más información, consulte Cuotas y límites de Azure OpenAI.
El siguiente diagrama ilustra el modelo de Azure OpenAI para cada inquilino de la suscripción del proveedor.
Servicio Azure OpenAI compartido
Puede optar por compartir una instancia de Azure OpenAI entre varios inquilinos. El recurso de Azure OpenAI se implementa en la suscripción de Azure (el proveedor de servicios). Usted es responsable de administrarlo. Esta solución es la más fácil de implementar, pero es la que proporciona menos aislamiento de datos y de rendimiento.
El uso compartido de un recurso de Azure OpenAI no proporciona segmentación de seguridad para cada implementación del modelo. Es posible que un inquilino pueda usar un modelo que no esté autorizado a usar. Por este motivo, evite compartir una instancia de Azure OpenAI al usar modelos ajustados, ya que podría exponer información confidencial y permitir el acceso no autorizado a recursos o datos específicos del inquilino.
Compartir una instancia de Azure OpenAI entre varios inquilinos también puede dar lugar a un problema de Vecinos ruidosos. Puede provocar una mayor latencia para algunos inquilinos. También debe hacer que el código de su aplicación sea compatible con los multi inquilinos. Por ejemplo, si desea cobrar a sus clientes por el coste de consumo de una instancia compartida de Azure OpenAI, implemente la lógica para realizar un seguimiento del número total de tokens para cada inquilino en su aplicación.
También puede implementar varias instancias compartidas de Azure OpenAI. Por ejemplo, si sigue el Patrón de sellos de implementación, implemente una instancia compartida de Azure OpenAI en cada sello. Si implementa una solución multi región, debe implementar Azure OpenAI en cada región para:
- Evitar la latencia del tráfico entre regiones.
- Admitir los requisitos de residencia de datos.
- Habilite el uso de Azure OpenAI regional dentro de otros servicios que requieran implementaciones en la misma región.
Cuando se tiene una instancia compartida de Azure OpenAI, es importante tener en cuenta sus límites y administrar su cuota.
El siguiente diagrama ilustra el modelo compartido de Azure OpenAI.
Al implementar un servicio compartido de Azure OpenAI, puede decidir si las implementaciones del modelo dentro del servicio también se comparten o si están dedicadas a clientes específicos.
Implementación de modelos compartidos entre inquilinos
El uso compartido de una implementación de modelos entre inquilinos simplifica la carga operativa porque tiene menos implementaciones para administrar y modelar versiones para realizar el seguimiento. Planee usar una implementación de modelo compartido si puede y crear solo implementaciones de modelos dedicadas si necesita las funcionalidades que ofrecen.
Implementación de modelos dedicados por inquilino
Puede crear una implementación de modelo para cada inquilino o para los inquilinos que tengan requisitos especiales que no se pueden cumplir mediante una implementación de modelo compartido. Entre las razones comunes para usar implementaciones de modelos dedicadas para un inquilino se incluyen las siguientes:
Administración de cuotas y costos: facilita la asignación de TPM específica del inquilino mediante el seguimiento del número de tokens que usa cada modelo, lo que le permite asignar y administrar con precisión el uso de cada inquilino. Si usa unidades de rendimiento aprovisionadas (PTU), puede asignar las PTU a clientes específicos y usar otros modelos de facturación para otros clientes.
Directivas de filtrado de contenido: a veces, un inquilino específico puede requerir una directiva de filtrado de contenido única, como una lista de bloqueados específica del inquilino de palabras no permitidas. Especifique la directiva de filtrado de contenido en el ámbito de una implementación de modelos.
Tipos de modelo y versiones: es posible que tenga que usar diferentes modelos o versiones de modelo para distintos inquilinos. Un inquilino también puede requerir su propio proceso de administración del ciclo de vida del modelo.
Ajuste específico del inquilino: si crea modelos distintos optimizados para cada inquilino, debe crear una implementación de modelos independiente para cada modelo optimizado.
Recuerde que no se requiere ajuste preciso para la mayoría de los casos de uso. Normalmente, es mejor basar el modelo mediante Azure OpenAI en los datos u otro enfoque de generación aumentada por recuperación (RAG).
Residencia de datos: este enfoque admite distintos requisitos de residencia de datos. Por ejemplo, puede proporcionar una implementación de modelo regional para un inquilino con necesidades estrictas de residencia de datos y usar una implementación de modelo global para otros inquilinos sin necesidad estricta.
Cada implementación del modelo tiene su propia dirección URL distinta, pero es importante recordar que los modelos subyacentes se comparten con otros clientes de Azure. También usan la infraestructura compartida de Azure.
Azure OpenAI no aplica el control de acceso para cada implementación del modelo, por lo que la aplicación debe controlar qué inquilino puede llegar a la implementación del modelo.
Recurso de Azure OpenAI proporcionado por el inquilino
En algunas situaciones, sus inquilinos podrían crear la instancia de Azure OpenAI en sus propias suscripciones de Azure y conceder a su aplicación acceso a ella. Este enfoque puede ser adecuado en las situaciones siguientes:
- Los inquilinos tienen cuotas y permisos específicos de Microsoft, como el acceso a diferentes modelos, directivas de filtrado de contenido específicas o el uso del rendimiento aprovisionado.
- El inquilino tiene un modelo ajustado que necesitan usar desde la solución.
- Requieren un componente en su entorno para procesar y enviar datos a través de su instancia de Azure OpenAI administrada por el cliente para su procesamiento.
Para acceder a una instancia de Azure OpenAI en la suscripción de su inquilino, el inquilino debe proporcionar acceso a su aplicación. La aplicación debe autenticarse a través de su instancia de Microsoft Entra. Un enfoque consiste en publicar una aplicación de varios inquilinos Microsoft Entra. El siguiente flujo de trabajo describe los pasos de este enfoque:
- El inquilino registra la aplicación Microsoft Entra de varios inquilinos en su propio inquilino de Microsoft Entra.
- El inquilino concede a la aplicación Microsoft Entra de varios inquilinos el nivel de acceso adecuado a su recurso de Azure OpenAI. Por ejemplo, el inquilino podría asignar la aplicación al rol de usuario de los servicios Azure AI mediante el control de acceso basado en roles (RBAC).
- El inquilino proporciona el ID del recurso Azure OpenAI que crea.
- El código de su aplicación puede usar una entidad de servicio asociada con la aplicación Microsoft Entra de varios inquilinos en su propia instancia de Microsoft Entra para acceder a la instancia de Azure OpenAI del inquilino.
Como alternativa, puedes pedir a cada inquilino que cree una entidad de servicio para que el servicio lo use y que le proporcione sus credenciales. Este enfoque requiere que almacene y administre de forma segura las credenciales de cada inquilino, lo que supone un riesgo potencial para la seguridad.
Si sus inquilinos configuran controles de acceso a la red en su instancia de Azure OpenAI, asegúrese de que puede acceder a ellos.
El siguiente diagrama ilustra el modelo de Azure OpenAI para cada inquilino en la suscripción del inquilino.
Características del servicio Azure OpenAI que admiten multiinquilino
Assistants API
La API assistants agrega funcionalidad al servicio Azure OpenAI que lo hace adecuado para crear asistentes de IA. Incluye la capacidad de llamar a herramientas y API, así como archivos de búsqueda para fundamentar las respuestas que genera el modelo. Permite que el servicio administre subprocesos conversacionales persistentes y puede generar y ejecutar código dentro de un entorno de espacio aislado. Para admitir estas funcionalidades, la API assistants debe almacenar algunos datos.
Al usar la API assistants en una solución multiinquilino, puede optar por crear asistentes dedicados a un único inquilino, o bien puede compartir un asistente entre varios inquilinos. Es importante considerar el aislamiento de inquilinos en todos los datos almacenados, especialmente para los asistentes compartidos. Por ejemplo, debe asegurarse de que los subprocesos conversacionales se almacenan por separado para cada inquilino.
La API assistants admite la invocación de funciones, que envía las instrucciones de la aplicación sobre las funciones para invocar y argumentos que se van a incluir. Asegúrese de que las llamadas a funciones que realice sean compatibles con varios inquilinos, como, por ejemplo, incluir el identificador de inquilino en la llamada al sistema de bajada. Compruebe el identificador de inquilino dentro de la aplicación y no confíe en el modelo de lenguaje para propagar automáticamente el identificador de inquilino.
Azure OpenAI en sus datos
Azure OpenAI en los datos permite que el modelo de lenguaje grande consulte directamente orígenes de conocimiento, como índices y bases de datos, como parte de la generación de una respuesta a partir del modelo de lenguaje.
Al realizar una solicitud, puede especificar los orígenes de datos que se deben consultar. En una solución multiinquilino, asegúrese de que los orígenes de datos son compatibles con varios inquilinos y que puede especificar filtros de inquilino en las solicitudes. Propague el identificador de inquilino a través del origen de datos de forma adecuada. Por ejemplo, supongamos que está consultando Azure AI Search. Si tiene datos para varios inquilinos en un único índice, especifique un filtro para limitar los resultados recuperados al identificador del inquilino actual. O bien, si ha creado un índice para cada inquilino, asegúrese de especificar el índice correcto para el inquilino actual.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autor principal:
- Sofía Ferreira | Ingeniera de software, ISV y DN CoE
Otros colaboradores:
- John Downs | Ingeniero principal de software
- Landon Pierce | Ingeniero de clientes, ISV y DN CoE
- Paolo Salvatori | Ingeniero principal de clientes, ISV y DN CoE
- Daniel Scott-Raynsford | Arquitecto de soluciones de asociados
- Arsen Vladimirskiy | Ingeniero de clientes principal, ISV y DN CoE
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.