46.6kЗаказать демоВойтиНачать бесплатно
Microsoft

Microsoft / multilingual-e5-large

Предназначен для работы с многоязычными документами; поддерживает более 100 языков; идеально подходит для задач многоязычного поиска информации и семантического поиска.

Введение в многоязычную модель встраивания e5-large

  • Предназначена для многоязычных документов; поддерживает более 100 языков; идеально подходит для задач многоязычного поиска информации и семантического поиска.

Модель multilingual-e5-large - это современная модель встраивания текста, разработанная компанией Microsoft на основе архитектуры XLM-RoBERTa-large. Благодаря 24-слойной структуре и 560 миллионам параметров модель multilingual-e5-large генерирует 1024-мерные вкрапления и поддерживает 100 языков, обеспечивая надежную работу даже в многоязычных контекстах.

Обученная на миллиарде слабо контролируемых пар текстов и отлаженная на специальных наборах данных, модель демонстрирует превосходные результаты в задачах многоязычного поиска информации и семантического поиска. Она обрабатывает текстовые данные с префиксом "query:" или "passage:" для создания вкраплений, которые точно отражают семантическое содержание. Модель демонстрирует превосходную производительность в многоязычных тестах, превосходя более мелкие модели и традиционные методы, что делает ее идеальной для межъязыкового анализа текстов, кластеризации и сравнения сходства.

Как создавать векторные вкрапления с помощью модели multilingual-e5-large

Существует два основных способа создания векторных вкраплений с помощью модели multilingual-e5-large:

  1. PyMilvus: Python SDK для Milvus, который легко интегрируется с моделью multilingual-e5-large.
  2. Библиотека SentenceTransformer: Python-библиотека sentence-transformer.

После того как векторные вкрапления сгенерированы, их можно хранить в Zilliz Cloud (полностью управляемый сервис векторных баз данных на базе Milvus) и использовать для поиска семантического сходства. Вот четыре ключевых шага:

  1. Зарегистрируйтесь для получения бесплатной учетной записи Zilliz Cloud.
  2. Настройте бессерверный кластер и получите Публичную конечную точку и ключ API.
  3. Создайте коллекцию векторов и вставьте в нее свои векторные вкрапления.
  4. Запустите семантический поиск по сохраненным вкраплениям.

Генерировать векторные вкрапления с помощью PyMilvus и вставлять их в Zilliz Cloud для семантического поиска

from pymilvus.model.dense import SentenceTransformerEmbeddingFunction
из pymilvus import MilvusClient

ef = SentenceTransformerEmbeddingFunction("intfloat/multilingual-e5-large")
    
docs = [
   "отрывок: Искусственный интеллект был основан как академическая дисциплина в 1956 году."
   "passage: Алан Тьюринг был первым человеком, который провел всесторонние исследования в области искусственного интеллекта."
   "passage: 图灵出生在伦敦的梅达维尔,他在英格兰南部长大。"
]
    
# Генерируем вкрапления для документов
docs_embeddings = ef(docs)
    
запросы = ["запрос: Когда был основан искусственный интеллект",
           "query: Wo wurde Alan Turing geboren?"]
               
# Генерируем вкрапления для запросов
query_embeddings = ef(queries)

# Подключение к облаку Zilliz с помощью публичной конечной точки и ключа API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

КОЛЛЕКЦИЯ = "документы"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    имя_коллекции=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

для doc, embedding в zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    имя_коллекции=КОЛЛЕКЦИЯ,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Для получения дополнительной информации обратитесь к нашей документации PyMilvus Embedding Model.

Генерируем векторные вкрапления с помощью SentenceTransformer и вставляем их в Zilliz Cloud для семантического поиска

from sentence_transformers import SentenceTransformer
из pymilvus import MilvusClient

model = SentenceTransformer("intfloat/multilingual-e5-large")

docs = [
   "отрывок: Искусственный интеллект был основан как академическая дисциплина в 1956 году."
   "passage: Алан Тьюринг был первым человеком, который провел всесторонние исследования в области искусственного интеллекта."
   "passage: 图灵出生在伦敦的梅达维尔,他在英格兰南部长大。"
]
# Генерируем вкрапления для документов
docs_embeddings = model.encode(docs, normalize_embeddings=True)

запросы = ["запрос: Когда был основан искусственный интеллект",
           "query: Wo wurde Alan Turing geboren?" ]
# Генерируем вкрапления для запросов
query_embeddings = model.encode(queries, normalize_embeddings=True)

# Подключение к облаку Zilliz с помощью публичной конечной точки и ключа API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

КОЛЛЕКЦИЯ = "документы"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    имя_коллекции=COLLECTION,
    dimension=1024,
    auto_id=True)

для doc, embedding в zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    имя_коллекции=КОЛЛЕКЦИЯ,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Дополнительную информацию см. в Документация SentenceTransformer.