Compartir a través de


Cómo usar los modelos de Cohere Embed V3 con el Estudio de Azure Machine Learning

En este artículo, obtendrá información sobre los modelos de Cohere Embed V3 y cómo usarlos con el Estudio de Azure Machine Learning. La familia de modelos de Cohere incluye varios modelos optimizados para distintos casos de uso, como finalizaciones de chat, inserciones y Rerank. Los modelos de Cohere están optimizados para diversos casos de uso que incluyen el razonamiento, el resumen y la respuesta a preguntas.

Importante

Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.

Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Modelos de inserción de Cohere

La familia de modelos de Cohere para las inserciones incluye los siguientes modelos:

Cohere Embed en inglés es un modelo de representación multimodal (de texto e imagen) que se usa para la búsqueda semántica, la generación aumentada por recuperación (RAG), la clasificación y la agrupación en clústeres. Embed English obtiene buenos resultados en el punto de referencia de MTEB HuggingFace (inserción masiva de texto) y en casos de uso para diversos sectores, como el financiero, el jurídico y el corporativo de uso general. Embed English también tiene los siguientes atributos:

  • Embed en inglés tiene 1024 dimensiones
  • La ventana de contexto del modelo es de 512 tokens
  • Embed en inglés acepta imágenes como una dirección URL de datos codificada en base64

Las incrustaciones de imágenes consumen un número fijo de tokens por imagen (1 000 tokens por imagen), lo que se traduce a un precio de 0,0001 USD por imagen insertada. El tamaño o resolución de la imagen no afecta al número de tokens consumidos, siempre que la imagen esté dentro de las dimensiones aceptadas, el tamaño de archivo y los formatos.

Requisitos previos

Para usar los modelos de Cohere Embed V3 con el Estudio de Azure Machine Learning, necesita los siguientes requisitos previos:

Implementación de un modelo

Implementación en API sin servidor

Los modelos de Cohere Embed V3 pueden implementarse en puntos de conexión de API sin servidor con facturación de pago por uso. Este tipo de implementación proporciona una forma de consumir modelos como API sin alojarlos en su suscripción, al tiempo que mantiene la seguridad y el cumplimiento empresarial que necesitan las organizaciones.

La implementación en un punto de conexión de API sin servidor no requiere cuota de la suscripción. Si el modelo aún no se ha implementado, es preciso usar Estudio de Azure Machine Learning o, el SDK de Azure Machine Learning para Python, la CLI de Azure o las plantillas de ARM para implementar el modelo como una API sin servidor.

El paquete de inferencia instalado

Puede consumir predicciones de este modelo mediante el paquete azure-ai-inference con Python. Para instalar este paquete, necesita los siguientes requisitos previos:

  • Python 3.8 o posterior instalado, incluido pip.
  • Dirección URL del punto de conexión. Para construir la biblioteca cliente, debe pasar la dirección URL del punto de conexión. La dirección URL del punto de conexión tiene el formato https://your-host-name.your-azure-region.inference.ai.azure.com, donde your-host-name es el nombre de host de implementación del modelo único y your-azure-region es la región de Azure donde se implementa el modelo (por ejemplo, eastus2).
  • En función de la preferencia de autenticación y implementación de modelo, necesita una clave para autenticarse en el servicio o en las credenciales de Microsoft Entra ID. La clave es una cadena de 32 caracteres.

Una vez que tenga estos requisitos previos, instale el paquete de inferencia de Azure AI con el siguiente comando:

pip install azure-ai-inference

Más información sobre el Paquete de inferencia y referencia de Azure AI.

Sugerencia

Además, Cohere admite el uso de una API adaptada para su uso con características específicas del modelo. Para usar la API específica del proveedor de modelos, consulte la documentación de Cohere.

Trabajo con inserciones

En esta sección, se usa la API de inferencia de modelos de Azure AI con un modelo de inserción.

Creación de un cliente para consumir el modelo

En primer lugar, cree el cliente para consumir el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

import os
from azure.ai.inference import EmbeddingsClient
from azure.core.credentials import AzureKeyCredential

model = EmbeddingsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)

Obtención de las funcionalidades del modelo

La ruta /info devuelve información sobre el modelo que se implementa en el punto de conexión. Devuelva la información del modelo llamando al método siguiente:

model_info = model.get_model_info()

La respuesta es la siguiente:

print("Model name:", model_info.model_name)
print("Model type:", model_info.model_type)
print("Model provider name:", model_info.model_provider)
Model name: Cohere-embed-v3-english
Model type": embeddings
Model provider name": Cohere

Creación de inserciones

Cree una solicitud de inserción para ver la salida del modelo.

response = model.embed(
    input=["The ultimate answer to the question of life"],
)

Sugerencia

La ventana de contexto para los modelos de Cohere Embed V3 es 512. Asegúrese de que no supere este límite al crear incrustaciones.

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

import numpy as np

for embed in response.data:
    print("Embeding of size:", np.asarray(embed.embedding).shape)

print("Model:", response.model)
print("Usage:", response.usage)

Puede ser útil para calcular inserciones en lotes de entrada. El parámetro inputs puede ser una lista de cadenas, donde cada cadena es una entrada diferente. A su vez, la respuesta es una lista de inserciones, donde cada inserción corresponde a la entrada en la misma posición.

response = model.embed(
    input=[
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter",
    ],
)

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

import numpy as np

for embed in response.data:
    print("Embeding of size:", np.asarray(embed.embedding).shape)

print("Model:", response.model)
print("Usage:", response.usage)

Sugerencia

Los modelos de Cohere Embed V3 pueden aceptar lotes de 1024 a la vez. Cuando cree lotes, asegúrese de no sobrepasar este límite.

Creación de diferentes tipos de inserciones

Los modelos de Cohere Embed V3 pueden generar múltiples inserciones para la misma entrada en función de cómo planee usarlos. Esta capacidad le permite recuperar inserciones más precisas para los patrones de RAG.

El siguiente ejemplo muestra cómo crear inserciones que se utilizan para crear una inserción para un documento que se almacenará en una base de datos vectorial:

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["The answer to the ultimate question of life, the universe, and everything is 42"],
    input_type=EmbeddingInputType.DOCUMENT,
)

Cuando trabaje en una consulta para recuperar un documento de este tipo, puede usar el siguiente fragmento de código para crear las inserciones para la consulta y maximizar el rendimiento de la recuperación.

from azure.ai.inference.models import EmbeddingInputType

response = model.embed(
    input=["What's the ultimate meaning of life?"],
    input_type=EmbeddingInputType.QUERY,
)

Los modelos de Cohere Embed V3 pueden optimizar las inserciones en función de su caso de uso.

Modelos de inserción de Cohere

La familia de modelos de Cohere para las inserciones incluye los siguientes modelos:

Cohere Embed en inglés es un modelo de representación multimodal (de texto e imagen) que se usa para la búsqueda semántica, la generación aumentada por recuperación (RAG), la clasificación y la agrupación en clústeres. Embed English obtiene buenos resultados en el punto de referencia de MTEB HuggingFace (inserción masiva de texto) y en casos de uso para diversos sectores, como el financiero, el jurídico y el corporativo de uso general. Embed English también tiene los siguientes atributos:

  • Embed en inglés tiene 1024 dimensiones
  • La ventana de contexto del modelo es de 512 tokens
  • Embed en inglés acepta imágenes como una dirección URL de datos codificada en base64

Las incrustaciones de imágenes consumen un número fijo de tokens por imagen (1 000 tokens por imagen), lo que se traduce a un precio de 0,0001 USD por imagen insertada. El tamaño o resolución de la imagen no afecta al número de tokens consumidos, siempre que la imagen esté dentro de las dimensiones aceptadas, el tamaño de archivo y los formatos.

Requisitos previos

Para usar los modelos de Cohere Embed V3 con el Estudio de Azure Machine Learning, necesita los siguientes requisitos previos:

Implementación de un modelo

Implementación en API sin servidor

Los modelos de Cohere Embed V3 pueden implementarse en puntos de conexión de API sin servidor con facturación de pago por uso. Este tipo de implementación proporciona una forma de consumir modelos como API sin alojarlos en su suscripción, al tiempo que mantiene la seguridad y el cumplimiento empresarial que necesitan las organizaciones.

La implementación en un punto de conexión de API sin servidor no requiere cuota de la suscripción. Si el modelo aún no está implementado, use Inteligencia artificial de Estudio de Azure Machine Learning o, el SDK de Azure Machine Learning para Python, la CLI de Azure o las plantillas de ARM para implementar el modelo como una API sin servidor.

El paquete de inferencia instalado

Puede consumir predicciones de este modelo mediante el paquete @azure-rest/ai-inference de npm. Para instalar este paquete, necesita los siguientes requisitos previos:

  • Versiones LTS de Node.js con npm.
  • Dirección URL del punto de conexión. Para construir la biblioteca cliente, debe pasar la dirección URL del punto de conexión. La dirección URL del punto de conexión tiene el formato https://your-host-name.your-azure-region.inference.ai.azure.com, donde your-host-name es el nombre de host de implementación del modelo único y your-azure-region es la región de Azure donde se implementa el modelo (por ejemplo, eastus2).
  • En función de la preferencia de autenticación y implementación de modelo, necesita una clave para autenticarse en el servicio o en las credenciales de Microsoft Entra ID. La clave es una cadena de 32 caracteres.

Una vez que tenga estos requisitos previos, instale la biblioteca de Inferencia de Azure para JavaScript con el siguiente comando:

npm install @azure-rest/ai-inference

Sugerencia

Además, Cohere admite el uso de una API adaptada para su uso con características específicas del modelo. Para usar la API específica del proveedor de modelos, consulte la documentación de Cohere.

Trabajo con inserciones

En esta sección, se usa la API de inferencia de modelos de Azure AI con un modelo de inserción.

Creación de un cliente para consumir el modelo

En primer lugar, cree el cliente para consumir el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";

const client = new ModelClient(
    process.env.AZURE_INFERENCE_ENDPOINT, 
    new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);

Obtención de las funcionalidades del modelo

La ruta /info devuelve información sobre el modelo que se implementa en el punto de conexión. Devuelva la información del modelo llamando al método siguiente:

await client.path("/info").get()

La respuesta es la siguiente:

console.log("Model name: ", model_info.body.model_name);
console.log("Model type: ", model_info.body.model_type);
console.log("Model provider name: ", model_info.body.model_provider_name);
Model name: Cohere-embed-v3-english
Model type": embeddings
Model provider name": Cohere

Creación de inserciones

Cree una solicitud de inserción para ver la salida del modelo.

var response = await client.path("/embeddings").post({
    body: {
        input: ["The ultimate answer to the question of life"],
    }
});

Sugerencia

La ventana de contexto para los modelos de Cohere Embed V3 es 512. Asegúrese de que no supere este límite al crear incrustaciones.

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

Puede ser útil para calcular inserciones en lotes de entrada. El parámetro inputs puede ser una lista de cadenas, donde cada cadena es una entrada diferente. A su vez, la respuesta es una lista de inserciones, donde cada inserción corresponde a la entrada en la misma posición.

var response = await client.path("/embeddings").post({
    body: {
        input: [
            "The ultimate answer to the question of life", 
            "The largest planet in our solar system is Jupiter",
        ],
    }
});

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

if (isUnexpected(response)) {
    throw response.body.error;
}

console.log(response.embedding);
console.log(response.body.model);
console.log(response.body.usage);

Sugerencia

Los modelos de Cohere Embed V3 pueden aceptar lotes de 1024 a la vez. Cuando cree lotes, asegúrese de no sobrepasar este límite.

Creación de diferentes tipos de inserciones

Los modelos de Cohere Embed V3 pueden generar múltiples inserciones para la misma entrada en función de cómo planee usarlos. Esta capacidad le permite recuperar inserciones más precisas para los patrones de RAG.

El siguiente ejemplo muestra cómo crear inserciones que se utilizan para crear una inserción para un documento que se almacenará en una base de datos vectorial:

var response = await client.path("/embeddings").post({
    body: {
        input: ["The answer to the ultimate question of life, the universe, and everything is 42"],
        input_type: "document",
    }
});

Cuando trabaje en una consulta para recuperar un documento de este tipo, puede usar el siguiente fragmento de código para crear las inserciones para la consulta y maximizar el rendimiento de la recuperación.

var response = await client.path("/embeddings").post({
    body: {
        input: ["What's the ultimate meaning of life?"],
        input_type: "query",
    }
});

Los modelos de Cohere Embed V3 pueden optimizar las inserciones en función de su caso de uso.

Modelos de inserción de Cohere

La familia de modelos de Cohere para las inserciones incluye los siguientes modelos:

Cohere Embed en inglés es un modelo de representación multimodal (de texto e imagen) que se usa para la búsqueda semántica, la generación aumentada por recuperación (RAG), la clasificación y la agrupación en clústeres. Embed English obtiene buenos resultados en el punto de referencia de MTEB HuggingFace (inserción masiva de texto) y en casos de uso para diversos sectores, como el financiero, el jurídico y el corporativo de uso general. Embed English también tiene los siguientes atributos:

  • Embed en inglés tiene 1024 dimensiones
  • La ventana de contexto del modelo es de 512 tokens
  • Embed en inglés acepta imágenes como una dirección URL de datos codificada en base64

Las incrustaciones de imágenes consumen un número fijo de tokens por imagen (1 000 tokens por imagen), lo que se traduce a un precio de 0,0001 USD por imagen insertada. El tamaño o resolución de la imagen no afecta al número de tokens consumidos, siempre que la imagen esté dentro de las dimensiones aceptadas, el tamaño de archivo y los formatos.

Requisitos previos

Para usar los modelos de Cohere Embed V3 con Azure Machine Learning, necesita los siguientes requisitos previos:

Implementación de un modelo

Implementación en API sin servidor

Los modelos de Cohere Embed V3 pueden implementarse en puntos de conexión de API sin servidor con facturación de pago por uso. Este tipo de implementación proporciona una forma de consumir modelos como API sin alojarlos en su suscripción, al tiempo que mantiene la seguridad y el cumplimiento empresarial que necesitan las organizaciones.

La implementación en un punto de conexión de API sin servidor no requiere cuota de la suscripción. Si el modelo aún no está implementado, use Inteligencia artificial de Estudio de Azure Machine Learning o, el SDK de Azure Machine Learning para Python, la CLI de Azure o las plantillas de ARM para implementar el modelo como una API sin servidor.

Un cliente REST

Los modelos implementados con la API de inferencia de modelos de Azure AI pueden consumirse usando cualquier cliente REST. Para usar el cliente REST, necesita los siguientes requisitos previos:

  • Para construir las solicitudes, debe pasar la dirección URL del punto de conexión. La dirección URL del punto de conexión tiene la forma https://your-host-name.your-azure-region.inference.ai.azure.com, donde your-host-name es su nombre único de host de implementación del modelo y your-azure-region es la región de Azure en la que se implementa el modelo (por ejemplo, eastus2).
  • En función de la preferencia de autenticación y implementación de modelo, necesita una clave para autenticarse en el servicio o en las credenciales de Microsoft Entra ID. La clave es una cadena de 32 caracteres.

Sugerencia

Además, Cohere admite el uso de una API adaptada para su uso con características específicas del modelo. Para usar la API específica del proveedor de modelos, consulte la documentación de Cohere.

Trabajo con inserciones

En esta sección, se usa la API de inferencia de modelos de Azure AI con un modelo de inserción.

Creación de un cliente para consumir el modelo

En primer lugar, cree el cliente para consumir el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

Obtención de las funcionalidades del modelo

La ruta /info devuelve información sobre el modelo que se implementa en el punto de conexión. Devuelva la información del modelo llamando al método siguiente:

GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json

La respuesta es la siguiente:

{
    "model_name": "Cohere-embed-v3-english",
    "model_type": "embeddings",
    "model_provider_name": "Cohere"
}

Creación de inserciones

Cree una solicitud de inserción para ver la salida del modelo.

{
    "input": [
        "The ultimate answer to the question of life"
    ]
}

Sugerencia

La ventana de contexto para los modelos de Cohere Embed V3 es 512. Asegúrese de que no supere este límite al crear incrustaciones.

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "Cohere-embed-v3-english",
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 0,
        "total_tokens": 9
    }
}

Puede ser útil para calcular inserciones en lotes de entrada. El parámetro inputs puede ser una lista de cadenas, donde cada cadena es una entrada diferente. A su vez, la respuesta es una lista de inserciones, donde cada inserción corresponde a la entrada en la misma posición.

{
    "input": [
        "The ultimate answer to the question of life", 
        "The largest planet in our solar system is Jupiter"
    ]
}

La respuesta es la siguiente, donde puede ver las estadísticas de uso del modelo:

{
    "id": "0ab1234c-d5e6-7fgh-i890-j1234k123456",
    "object": "list",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        },
        {
            "index": 1,
            "object": "embedding",
            "embedding": [
                0.017196655,
                // ...
                -0.000687122,
                -0.025054932,
                -0.015777588
            ]
        }
    ],
    "model": "Cohere-embed-v3-english",
    "usage": {
        "prompt_tokens": 19,
        "completion_tokens": 0,
        "total_tokens": 19
    }
}

Sugerencia

Los modelos de Cohere Embed V3 pueden aceptar lotes de 1024 a la vez. Cuando cree lotes, asegúrese de no sobrepasar este límite.

Creación de diferentes tipos de inserciones

Los modelos de Cohere Embed V3 pueden generar múltiples inserciones para la misma entrada en función de cómo planee usarlos. Esta capacidad le permite recuperar inserciones más precisas para los patrones de RAG.

El siguiente ejemplo muestra cómo crear inserciones que se utilizan para crear una inserción para un documento que se almacenará en una base de datos vectorial:

{
    "input": [
        "The answer to the ultimate question of life, the universe, and everything is 42"
    ],
    "input_type": "document"
}

Cuando trabaje en una consulta para recuperar un documento de este tipo, puede usar el siguiente fragmento de código para crear las inserciones para la consulta y maximizar el rendimiento de la recuperación.

{
    "input": [
        "What's the ultimate meaning of life?"
    ],
    "input_type": "query"
}

Los modelos de Cohere Embed V3 pueden optimizar las inserciones en función de su caso de uso.

Más ejemplos de inferencia

Descripción Idioma Muestra
Solicitudes web Bash cohere-embed.ipynb
Paquete de inferencia de Azure AI para JavaScript JavaScript Vínculo
Paquete de inferencia de Azure AI para Python Python Vínculo
SDK de OpenAI (experimental) Python Vínculo
LangChain Python Vínculo
SDK de Cohere Python Vínculo
SDK de LiteLLM Python Vínculo

Generación aumentada de recuperación (RAG) y ejemplos de uso de herramientas

Descripción Paquetes Ejemplo
Creación de un índice de vectores de búsqueda de similitud de IA de Facebook local (FAISS), mediante incrustaciones de Cohere: Langchain langchain, langchain_cohere cohere_faiss_langchain_embed.ipynb
Uso de Cohere Command R/R+ para responder preguntas de datos en el índice de vectores de FAISS local: Langchain langchain, langchain_cohere command_faiss_langchain.ipynb
Uso de Cohere Command R/R+ para responder preguntas de datos en el índice de vectores de búsqueda de IA: Langchain langchain, langchain_cohere cohere-aisearch-langchain-rag.ipynb
Uso de Cohere Command R/R+ para responder preguntas de datos en el índice de vectores de búsqueda de IA: SDK de Cohere cohere, azure_search_documents cohere-aisearch-rag.ipynb
Llamada a herramientas o funciones de Command R+, mediante LangChain cohere, langchain, langchain_cohere command_tools-langchain.ipynb

Consideraciones de costo y cuota para los modelos de Cohere implementados como puntos de conexión de API sin servidor

Los modelos de Cohere implementados como API sin servidor los ofrece Cohere a través de Azure Marketplace y se integran con el Estudio de Azure Machine Learning para su uso. Puedes encontrar los precios de Azure Marketplace al implementar modelos.

Cada vez que un proyecto se suscribe a una oferta determinada de Azure Marketplace, se crea un nuevo recurso para realizar un seguimiento de los costos asociados a su consumo. El mismo recurso se usa para hacer un seguimiento de los costos asociados con la inferencia; sin embargo, hay varios medidores disponibles para hacer un seguimiento de cada escenario de forma independiente.

Para más información sobre cómo realizar un seguimiento de los costos, consulte Supervisar los costos de los modelos ofrecidos en Azure Marketplace.

La cuota se administra por implementación. Cada implementación tiene un límite de velocidad de 200 000 tokens por minuto y 1000 solicitudes de API por minuto. Sin embargo, actualmente limitamos una implementación por modelo por proyecto. Póngase en contacto con el Soporte técnico de Microsoft Azure si los límites de velocidad actuales no son suficientes para sus escenarios.