🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Модели
  • Home
  • Docs
  • Модели

  • Встраивания

  • Инструктор

Instructor

Instructor - это модель встраивания текста, которая может генерировать встраивания текста для любых задач (например, классификация, поиск, кластеризация, оценка текста и т.д.) и областей (например, наука, финансы и т.д.), просто предоставляя инструкцию к задаче, без какой-либо настройки.

Milvus интегрируется с моделями встраивания Instructor через класс InstructorEmbeddingFunction. Этот класс предоставляет методы для кодирования документов и запросов с помощью моделей встраивания Instructor и возвращает встраивания в виде плотных векторов, совместимых с индексацией Milvus.

Чтобы воспользоваться этой функцией, установите необходимые зависимости:

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

Затем инстанцируйте 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:"
)

Параметры:

  • model_name (строка)

    Имя модели встраивания Mistral AI, которую следует использовать для кодирования. По умолчанию используется значение hkunlp/instructor-xl. Дополнительные сведения см. в разделе Список моделей.

  • query_instruction (строка)

    Указание для конкретной задачи, которое направляет модель на то, как генерировать вложение для запроса или вопроса.

  • doc_instruction (строка)

    Инструкция, которая направляет модель на создание вкраплений для документа.

Для создания вкраплений для документов используйте метод 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)

Ожидаемый результат будет похож на следующий:

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,)

Для создания вкраплений для запросов используйте метод 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)

Ожидаемый результат будет следующим:

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,)
Содержание

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?