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
, dondeyour-host-name
es el nombre de host de implementación del modelo único yyour-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
connpm
. - 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
, dondeyour-host-name
es el nombre de host de implementación del modelo único yyour-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
, dondeyour-host-name
es su nombre único de host de implementación del modelo yyour-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.