ニュース
モデル
製品
keyboard_arrow_down
読者
URL を読み取ったり検索したりすると、大規模なモデルのサポートが向上します。
ベクトルモデル
世界クラスのマルチモーダル、多言語埋め込み。
並べ替え者
検索の関連性を最大化する世界クラスのニューラルレトリーバー。
ディープサーチ
最善の答えが見つかるまで、検索し、読み、推論してください。
もっと
keyboard_arrow_down
分類子
画像とテキストのゼロショットおよび少数ショットの分類。
スライサー
長いテキストをチャンクまたはトークンに分割します。

APIドキュメント
AIプログラミングアシスタントIDEまたは大規模モデル用のコードを自動生成
open_in_new


会社
keyboard_arrow_down
私たちについて
営業担当者に問い合わせる
インターンプログラム
参加しませんか
open_in_new
ロゴをダウンロード
open_in_new
利用規約


ログイン
login
プライバシーとパフォーマンスを重視した設計
シームレスな統合と高いスケーラビリティ
Azure を始めよう
チュートリアル:楽曲を検索する
Jina の埋め込みと再ランカー:Azure 上のエンタープライズ向け AI
技術記事
4月 29, 2024

Azure 上の Jina Embeddings と Reranker:スケーラブルなビジネス向け 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!

以下の7つのモデルが利用可能です:

  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 ユーザーであれば、現在のサブスクリプションで Jina AI の最先端のEmbeddingおよびRerankerモデルのすべての利点を得ることができます。

tagシームレスな統合と高いスケーラビリティ

Azure へのデプロイは、プライバシーを確保するだけでなく、既存の Azure サービスとのシームレスな統合も実現します。これにより、スムーズな移行が可能になり、パフォーマンスを損なうことなく、需要の変動に応じて AI デプロイメントをスケーリングすることができます。

tagAzure を始めよう

このチュートリアルでは、音楽の検索アプリケーションを作成します。曲のタイトルを正確に指定するのではなく、私たちの検索基盤モデルの品質を本当にテストする曖昧なクエリで検索を行いたいと思います。

そのために、まず Azure 上でセットアップを行います。

tagAzure にサインアップする

有効な支払い方法が登録された Azure アカウントのサブスクリプションが必要です。まだアカウントをお持ちでない場合は、Azure ホームページでサインアップできます。

tagAzure に Jina モデルをデプロイする

Azure Marketplaceで、"jina" と検索することで Jina AI のすべての embedding モデルと reranker モデルを見つけることができます。ニーズに最も合うものを選んでください。

Screenshot 2024-04-17 at 15.12.54

デプロイメント設定の Basic タブでは、デプロイメントに関する詳細情報を提供する必要があります。デフォルトの設定では、4つの CPU コアと 8GB のメモリを使用するように設定されています。特定の要件に応じて、アプリケーションのニーズに合わせてこれらの設定を調整することができます。

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)データセットが読み込まれます。

tagJina Embeddings v2 と Reranker エンドポイントを開始する

まず、Azure ポータルで embedding と reranker のエンドポイントをデプロイします。使用するリージョンを決定し、embedding サービスと reranker サービスにそれぞれ DNS プレフィックスを割り当てる必要があります。その後、以下のコードでembeddings_urlとreranker_url変数にその情報を格納します。

関数jina_embedとjina_rerankは、Azure でホストされている API にリクエストを送信することで、テキストの埋め込みと再ランク付けを生成します。

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データセットの読み込み

このデータは AI モデルのトレーニング用に収集されたため、トレーニングデータとテストデータに分かれています。このチュートリアルでは簡単のため、トレーニングデータのみを使用します。以下のコードでトレーニングデータを pandas の DataFrame に変換します:

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)

このコードは DataFrame の text カラムの各エントリーに対して jina_embed() を呼び出して埋め込みを取得します。埋め込みは NumPy 配列として all_embeddings リストに保存します。その後、それらを embeddings という新しいカラムとして DataFrame に追加します。

作成したものを 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 の埋め込みと再ランカー:Azure 上のエンタープライズ向け AI

Jina AI は、ビジネスが必要とする実際のアプリケーションに最先端の AI を提供することに注力しています。Azure Marketplace に私たちのモデルを配置することで、ビジネスプロセスへの AI 追加の障壁を取り除き、既存の Azure プランの一部として課金される簡単な統合を実現します。

Jina Embeddings と Jina Reranker を使用している、または使用を検討しているすべての方からのフィードバックを歓迎します。私たちのウェブサイトを通じて、またはDiscord チャンネルに参加して、フィードバックを共有し、Jina AI の急速に発展するサービスについての最新情報を入手してください。私たちは包括的な 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、サニーベール、CA 94085、アメリカ合衆国
location_on
ドイツ、ベルリン(本社)
Prinzessinnenstraße 19-20、10969 ベルリン、ドイツ
location_on
中国、北京
中国北京市海淀区西街48号ビル6号5階
location_on
深セン、中国
ルーム 402、4 階、福安テクノロジービル、深セン、中国
検索ベース
読者
ベクトルモデル
並べ替え者
ディープサーチ
分類子
スライサー
APIドキュメント
Jina APIキーを取得する
レート制限
APIステータス
会社
私たちについて
営業担当者に問い合わせる
ニュース
インターンプログラム
参加しませんか
open_in_new
ロゴをダウンロード
open_in_new
条項
安全性
利用規約
プライバシー
Cookieを管理する
email
Jina AI © 2020-2025.