milvus-logo
LFAI
Home
  • Modelos

Instructor

Instructor es un modelo de incrustación de texto ajustado a la instrucción que puede generar incrustaciones de texto adaptadas a cualquier tarea (por ejemplo, clasificación, recuperación, agrupación, evaluación de texto, etc.) y dominios (por ejemplo, ciencia, finanzas, etc.) simplemente proporcionando la instrucción de la tarea, sin ningún ajuste.

Milvus se integra con los modelos de incrustación de Instructor a través de la clase InstructorEmbeddingFunction. Esta clase proporciona métodos para codificar documentos y consultas utilizando los modelos de incrustación de Instructor y devolviendo las incrustaciones como vectores densos compatibles con la indexación de Milvus.

Para utilizar esta función, instale las dependencias necesarias:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

A continuación, instancie InstructorEmbeddingFunction:

from pymilvus.model.dense import InstructorEmbeddingFunction

ef = InstructorEmbeddingFunction(
    model_name="hkunlp/instructor-xl", # Defaults to `hkunlp/instructor-xl`
    query_instruction="Represent the question for retrieval:",
    doc_instruction="Represent the document for retrieval:"
)

Parámetros:

  • model_name (cadena)

    El nombre del modelo de incrustación Mistral AI que se utilizará para la codificación. El valor predeterminado es hkunlp/instructor-xl. Para más información, consulte Lista de modelos.

  • query_instruction (cadena)

    Instrucción específica de la tarea que guía al modelo sobre cómo generar una incrustación para una consulta o pregunta.

  • doc_instruction (cadena)

    Instrucción específica de la tarea que guía al modelo para generar una incrustación para un documento.

Para crear incrustaciones para documentos, utilice el método encode_documents():

docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]

docs_embeddings = ef.encode_documents(docs)

# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", ef.dim, docs_embeddings[0].shape)

El resultado esperado es similar al siguiente:

Embeddings: [array([ 1.08575663e-02, 3.87877878e-03, 3.18090729e-02, -8.12458917e-02,
       -4.68971021e-02, -5.85585833e-02, -5.95418774e-02, -8.55880603e-03,
       -5.54775111e-02, -6.08020350e-02, 1.76202394e-02, 1.06648318e-02,
       -5.89960292e-02, -7.46861771e-02, 6.60329172e-03, -4.25189249e-02,
       ...
       -1.26921125e-02, 3.01475357e-02, 8.25323071e-03, -1.88470203e-02,
        6.04814291e-03, -2.81618331e-02, 5.91602828e-03, 7.13866428e-02],
      dtype=float32)]
Dim: 768 (768,)

Para crear incrustaciones para consultas, utilice el método encode_queries():

queries = ["When was artificial intelligence founded",
           "Where was Alan Turing born?"]

query_embeddings = ef.encode_queries(queries)

print("Embeddings:", query_embeddings)
print("Dim", ef.dim, query_embeddings[0].shape)

El resultado esperado es similar al siguiente:

Embeddings: [array([ 1.21721877e-02, 1.88485277e-03, 3.01732980e-02, -8.10302645e-02,
       -6.13401756e-02, -3.98149453e-02, -5.18723316e-02, -6.76784338e-03,
       -6.59285188e-02, -5.38365729e-02, -5.13435388e-03, -2.49210224e-02,
       -5.74403182e-02, -7.03031123e-02, 6.63730130e-03, -3.42259370e-02,
       ...
        7.36595877e-03, 2.85532661e-02, -1.55952033e-02, 2.13342719e-02,
        1.51187545e-02, -2.82798670e-02, 2.69396193e-02, 6.16136603e-02],
      dtype=float32)]
Dim 768 (768,)

Traducido porDeepLogo

Tabla de contenidos
Feedback

¿Fue útil esta página?