Новости
Модели
Продукты
keyboard_arrow_down
Глубокий поиск
Ищите, читайте и рассуждайте, пока не найдете лучший ответ.
Читатель
Читайте URL-адреса и ищите информацию в Интернете для получения более подходящей подготовки для получения степени магистра права.
Вложения
Мультимодальные многоязычные вложения мирового класса.
Реранкер
Нейронный ретривер мирового класса для максимального повышения релевантности поиска.
Более
keyboard_arrow_down
Классификатор
Классификация изображений и текста по нулевому и небольшому количеству кадров.
Сегментатор
Разрежьте длинный текст на куски и выполните токенизацию.

API-документы
Автоматическая генерация кода для вашего второго пилота IDE или LLM
open_in_new


Компания
keyboard_arrow_down
О нас
Связаться с отделом продаж
Стажерская программа
Присоединяйтесь к нам
open_in_new
Скачать логотип
open_in_new
Условия использования


Авторизоваться
login
Созданы для конфиденциальности и производительности
Бесшовная интеграция и высокая масштабируемость
Начало работы с Azure
Руководство: Поиск песен
Jina Embeddings и Rerankers: корпоративный ИИ на Azure
Технический блог
апрель 29, 2024

Jina Embeddings и Reranker в Azure: масштабируемые AI-решения для бизнеса

Теперь Jina Embeddings и Rerankers доступны в Azure Marketplace. Предприятия, для которых приоритетом являются конфиденциальность и безопасность, могут легко интегрировать современные модели Jina AI прямо в свою существующую экосистему Azure.
Futuristic black background with a purple 3D grid, featuring the "Embeddings" and "Reranker" logos with a stylized "A".
Susana Guzmán
Susana Guzmán • 7 минуты чтения

Jina Embeddings и Rerankers теперь доступны на Azure Marketplace. Эта интеграция важна для компаний, где безопасность данных и эффективность работы являются главными приоритетами.

Jina AI Launches World's First Open-Source 8K Text Embedding, Rivaling OpenAI
Jina AI introduces jina-embeddings-v2, the world's first open-source model boasting an 8K context length. Matching the prowess of OpenAI's proprietary models, this innovation is now publicly accessible on Huggingface, signaling a significant milestone in the landscape of text embeddings.
Maximizing Search Relevance and RAG Accuracy with Jina Reranker
Boost your search and RAG accuracy with Jina Reranker. Our new model improves the accuracy and relevance by 20% over simple vector search. Try it now for free!

У нас доступны семь моделей:

  1. Jina Embeddings v2 Base - code
  2. Jina Embeddings v2 Base - de
  3. Jina Embeddings v2 Base - zh
  4. Jina Embeddings v2 Base - es
  5. Jina Embeddings v2 Base - en
  6. Jina Reranker v1 Base - en
  7. Jina Reranker v1 Turbo - en
  8. Jina Reranker v1 Tiny - en
  9. Jina ColBERT v1 - en

tagСозданы для конфиденциальности и производительности

Обеспечение безопасности ваших данных — наш главный приоритет. Наше партнерство с Azure позволяет нам предлагать AI-решения, отвечающие требованиям конфиденциальности данных и эффективности. Непревзойденные стандарты конфиденциальности Azure обеспечивают строжайшую защиту ваших данных, делая его надежной платформой для здравоохранения, финансов и других секторов, требующих критической защиты данных. Если вы уже являетесь клиентом Azure, вы можете получить все преимущества современных моделей Embedding и Reranker от Jina AI с вашей существующей подпиской.

tagБесшовная интеграция и высокая масштабируемость

Развертывание на Azure не только обеспечивает конфиденциальность, но и дает вам бесшовную интеграцию с существующими сервисами Azure. Это обеспечивает плавный переход и позволяет масштабировать ваши AI-развертывания, чтобы соответствовать меняющимся требованиям без ущерба для производительности.

tagНачало работы с Azure

В этом руководстве мы создадим приложение для поиска музыки. Мы хотим осуществлять поиск не по точному названию песни, а с помощью неоднозначного запроса, который действительно проверяет качество наших базовых моделей поиска.

Для этого первым шагом является настройка всего в Azure.

tagРегистрация в Azure

Убедитесь, что у вас есть подписка Azure с действующим способом оплаты. Вы можете зарегистрировать аккаунт на главной странице Azure, если у вас его еще нет.

tagРазвертывание моделей Jina в Azure

На Azure Marketplace вы можете найти все модели embedding и reranker от Jina AI, выполнив поиск по слову "jina". Выберите ту, которая лучше всего соответствует вашим потребностям.

Screenshot 2024-04-17 at 15.12.54

На вкладке "Основные" настройки развертывания вам нужно будет указать некоторые детали вашего развертывания. По умолчанию конфигурация настроена на использование четырех ядер CPU и 8 ГБ памяти. В зависимости от ваших конкретных требований, вы можете настроить эти параметры в соответствии с потребностями вашего приложения.

Screenshot 2024-04-23 at 16.41.29

Это запустит развертывание. Это может занять несколько минут. После этого вы должны увидеть следующий экран:

Screenshot 2024-04-17 at 15.16.21

Теперь ваши модели развернуты и готовы к использованию.

tagРуководство: Поиск песен

В этом руководстве вы будете использовать ваши развертывания Azure для создания базового поискового движка для коллекции файлов данных о популярной музыке.

💡
Вы также можете следовать этому руководству в Colab или скачать его и запустить в своем ноутбуке.

tagЗагрузка набора данных

from datasets import load_dataset

dataset = load_dataset("sander-wood/wikimusictext")

Это загружает набор данных WikiMusicText (WikiMT).

tagЗапуск конечных точек Jina Embeddings v2 и Reranker

Сначала разверните конечные точки embedding и reranker на портале Azure. Вам нужно будет решить, какой регион использовать и назначить один DNS-префикс для сервиса embeddings и другой для сервиса reranker. Затем сохраните эту информацию в переменных embeddings_url и reranker_url в коде ниже.

Функции jina_embed и jina_rerank генерируют текстовые embeddings и выполняют переранжирование путем отправки запросов к API, размещенному на Azure.

import json

import requests

embeddings_url = "http://<Your DNS prefix>.<Your region>.azurecontainer.io:8080/invocations"
reranker_url = "http://<Your DNS prefix>.<Your region>.azurecontainer.io:8080/invocations"

def jina_embed(text):
    headers = {"Content-Type": "application/json"}
    json_data = {"data": [{"text": text}]}

    response = requests.post(embeddings_url, headers=headers, data=json.dumps(json_data))
    return response.json()["data"][0]["embedding"]

def jina_rerank(query, search_results):
    headers = {"Content-Type": "application/json"}

    json_data = {
        "data": {
            "documents": [
                {"text": search_result[0]} for search_result in search_results
            ],
            "query": query,
            "top_n": 3,
        }
    }

    response = requests.post(reranker_url, headers=headers, data=json.dumps(json_data))
    return response.json()["data"][0]["results"]

tagЗагрузка набора данных

Эти данные были собраны для обучения моделей ИИ и поэтому разделены на тренировочные и тестовые наборы. Для простоты в этом руководстве мы будем использовать только тренировочные данные. Следующий код преобразует тренировочные данные в DataFrame pandas:

ds = dataset['train']
input_df = ds.dataset.to_pandas()

tagСоздание эмбеддингов и индекса в FAISS

Эта функция обрабатывает текстовые данные и извлекает признаки в форме эмбеддингов. Это займет некоторое время.

import numpy as np
from tqdm import tqdm

tqdm.pandas()


def generate_embeddings(input_df):
    all_embeddings = []

    for t in input_df.text:
        review_embeddings = []
        all_embeddings.append(np.array(jina_embed(t)))

    input_df["embeddings"] = all_embeddings

    return input_df


enhanced_dataframe = generate_embeddings(input_df)

Этот код перебирает каждую запись в столбце text DataFrame и вызывает jina_embed() для получения эмбеддинга. Мы сохраняем эмбеддинги как массивы NumPy в списке all_embeddings. Затем они добавляются в новый столбец DataFrame под названием embeddings.

Мы можем визуализировать то, что только что сделали, напечатав значение enhanced_dataframe:

Screenshot 2024-04-22 at 12.39.07

Последний столбец содержит эмбеддинги в читаемой форме.

Теперь нам нужно создать индекс FAISS (Facebook AI Similarity Search) для хранения и поиска по эмбеддингам:

import faiss

dim = 768  # размерность эмбеддингов Jina v2
index_with_ids = faiss.IndexIDMap(faiss.IndexFlatIP(dim))

for idx, row in enhanced_dataframe.iterrows():
    embeddings = row["embeddings"]
    normalized_embedding = np.ascontiguousarray(
        np.array(embeddings, dtype="float32").reshape(1, -1)
    )
    faiss.normalize_L2(normalized_embedding)
    index_with_ids.add_with_ids(normalized_embedding, idx)

Этот код также нормализует векторы эмбеддингов для упрощения и ускорения поиска.

tagПоиск совпадений для запроса

Функция find_similar_texts ищет в созданном индексе ближайшие совпадения:

def find_similar_texts(query, n=20):
    query_embedding = jina_embed(query)
    query_embedding = np.ascontiguousarray(
        np.array(query_embedding, dtype="float32").reshape(1, -1)
    )
    faiss.normalize_L2(query_embedding)

    similarities, indices = index_with_ids.search(query_embedding, n)

    results = []
    for i in range(n):
        similarity = similarities[0][i]
        index_id = indices[0][i]
        results.append((enhanced_dataframe.loc[index_id, "text"], similarity))

    return results

tagПовторное ранжирование для получения наиболее релевантных совпадений

После получения результатов из индекса FAISS мы отправим набор результатов в функцию jina_rerank для присвоения всем ответам оценки релевантности и возврата отсортированного списка результатов по релевантности.

Давайте используем запрос, который требует глубокого семантического понимания, чтобы протестировать наше решение:

query = "What are some jazz songs that reached the top of the music charts in 1960s?"
search_results = find_similar_texts(query)

most_relevant_results = jina_rerank(query, search_results)
pprint.pprint(most_relevant_results)

Вот наиболее релевантные результаты:

[{'id': 'c26a67d979cb73474e9f80221b14b5c9',
  'index': 0,
  'document': {'id': 'd2183fd857661fbf9ca60a22e91888a0',
   'text': 'An instrumental version by Heywood and Hugo Winterhalter reached No. 2 on the Billboard Hot 100 chart and No. 7 on the R&B chart in 1956. A version sung by Andy Williams was also popular that year. The tune has been covered by a number of jazz performers beginning in the 1960s.'},
  'relevance_score': 0.7132052183151245,
  'usage': {'id': '037b9d22a5f13b68258ab51cbab1a7ad', 'total_tokens': 64}},
 {'id': 'a9205e69a4e76ca49717b8497a2798bf',
  'index': 4,
  'document': {'id': '25e78e92da17f01df111a7ed2716b057',
   'text': '"Take Five" is a jazz standard composed by Paul Desmond and originally recorded by the Dave Brubeck Quartet for their album Time Out on July 1, 1959. Two years later it became a surprise hit and the biggest-selling jazz single ever. The single was inducted into the Grammy Hall of Fame in 1996. It became the first jazz single to surpass a million in sales.'},
  'relevance_score': 0.204337015748024,
  'usage': {'id': '6d55f32b339b83350ffb9489fbf31f5d', 'total_tokens': 80}},
 {'id': '50a610653b307f6f1ae6ec796b72ca83',
  'index': 9,
  'document': {'id': '70278633234c32775b1a28b364f6783a',
   'text': 'Oh, You Crazy Moon is a jazz standard by Jimmy Van Heusen, with lyrics by Johnny Burke. It was recorded by Mel Torme in 1960 and Frank Sinatra in 1965.'},
  'relevance_score': 0.16270869970321655,
  'usage': {'id': '79eabc46bf3c659d3ad3e4d4d7e7a8f2', 'total_tokens': 40}}]

И это всё. Попробуйте сами с разными запросами и посмотрите, какие результаты вы получите.

tagJina Embeddings и Rerankers: корпоративный ИИ на Azure

Jina AI сосредоточена на предоставлении современного ИИ предприятиям для реальных приложений, которые нужны бизнесу. Размещение наших моделей на Azure Marketplace устраняет барьеры для добавления ИИ в ваши бизнес-процессы, делая интеграцию простой и выставляя счета как часть вашего существующего плана Azure.

Мы ценим отзывы от всех, кто использует или рассматривает использование Jina Embeddings и Jina Reranker. Свяжитесь с нами через наш веб-сайт или присоединяйтесь к нашему каналу Discord, чтобы поделиться отзывами и быть в курсе быстро развивающихся предложений Jina AI. Мы верим в инклюзивную экосистему ИИ и будем рады обсудить с вами ваши варианты использования.

Jina AI - Your Search Foundation, Supercharged.
Jina AI offers best-in-class embeddings, reranker and prompt optimizer, enabling advanced multimodal AI.
Your Search Foundation, Supercharged.
Join the Jina AI Discord Server!
Check out the Jina AI community on Discord - hang out with 4981 other members and enjoy free voice and text chat.
Discord
Категории:
Технический блог
rss_feed
Офисы
location_on
Саннивейл, Калифорния
710 Lakeway Dr, Ste 200, Саннивейл, Калифорния 94085, США
location_on
Берлин, Германия (штаб-квартира)
Prinzessinnenstraße 19-20, 10969 Берлин, Германия
location_on
Пекин, Китай
Уровень 5, здание 6, ул. Хайдянь Вест, д. 48, Пекин, Китай
location_on
Шэньчжэнь, Китай
402, этаж 4, здание Fu'an Technology, Шэньчжэнь, Китай
Поиск Фонда
Глубокий поиск
Читатель
Вложения
Реранкер
Классификатор
Сегментатор
API-документация
Получить API-ключ Jina
Ограничение скорости
Статус API
Компания
О нас
Связаться с отделом продаж
отдел новостей
Стажерская программа
Присоединяйтесь к нам
open_in_new
Скачать логотип
open_in_new
Условия
Безопасность
Условия использования
Конфиденциальность
Управление файлами cookie
email
Jina AI © 2020-2025.