LlamaIndex Embeddings(OpenAI・HuggingFace・Ollama)

LlamaIndex Embeddingsの使い方!「OpenAI・HuggingFace・Ollama」

LlamaIndexでは、さまざまな埋め込みモデル(Embeddings)を利用できます。

この記事では、OpenAI、HuggingFace、Ollamaの3つの埋め込みモデルの使い方を解説しています。

1/29開催の無料ウェビナー!

目次

LlamaIndex Embeddingsとは(OpenAI・HuggingFace・Ollama)

見出し画像

埋め込みモデル(Embeddings)とは、テキストや画像等のデータを数値ベクトルとして表現する手法です。

これにより、単語や文章の意味的な類似性を数値化して、RAGでの検索や分類、類似度計算が行えるようになります。

この記事では、LlamaIndexにおけるOpenAI、HuggingFace、Ollamaの3種類の埋め込みモデルの使い方を紹介します。

  • 埋め込みモデルによりRAGでの検索や分類、類似度計算が行えるようになる
  • LlamaIndexで使えるOpenAI、HuggingFace、Ollamaの3種類の埋め込みモデルを紹介

OpenAI Embeddingsの使い方

見出し画像

OpenAIの埋め込みモデルの使い方を紹介します。

OpenAIの埋め込みモデルを使用するには、APIキーの発行が必要になり、OpenAIの公式サイトから発行できます。

STEP
パッケージのインストール

必要なパッケージをインストールします。

pip install llama-index llama-index-embeddings-openai
STEP
OpenAIのAPIキーを設定

OpenAIのAPIキーを環境変数に設定します。

APIキーはOpenAIの公式サイトから発行できます。

import os

os.environ["OPENAI_API_KEY"] = "***************"
STEP
OpenAIの埋め込みモデルを読み込む

OpenAIの埋め込みモデルを読み込みます。

from llama_index.embeddings.openai import OpenAIEmbedding

embed_model = OpenAIEmbedding(model="text-embedding-3-small")
コードの説明

embed_model = OpenAIEmbedding(model=”text-embedding-3-small”)

OpenAIEmbedding:OpenAIの埋め込みモデルtext-embedding-3-smallを読み込んでいます。

text-embedding-3-smallはコストとリソース効率に優れる埋め込みモデルです。Largeモデルのtext-embedding-3-largeを指定した場合、性能が向上しますが、その分コストと応答時間がかかります。

STEP
OpenAIの埋め込みモデルをテスト

埋め込みモデルを使用して、テキストを数値ベクトルに変換します。

text = "これは埋め込みモデルのテストです。"
embeddings = embed_model.get_text_embedding(text)
print(embeddings[:10])
[0.021757090464234352, 0.03871193900704384, -0.00824466347694397, -0.05321666598320007, 0.0003585218801163137, 2.6869998691836372e-05, -0.0034026079811155796, 0.018241163343191147, 0.0114543242380023, -0.02156108058989048]
コードの説明

embed_model.get_text_embedding(text)

指定したテキストを数値ベクトル(埋め込みベクトル)に変換します。

HuggingFace Embeddingsの使い方

見出し画像

HuggingFaceの埋め込みモデルの使い方を紹介します。

HuggingFaceの埋め込みモデルにはGPU環境が必要になります。

GPU環境の構築方法は別の記事で解説しています。

STEP
パッケージのインストール

必要なパッケージをインストールします。

pip install llama-index llama-index-embeddings-huggingface
STEP
HuggingFaceの埋め込みモデルを読み込む

HuggingFaceの埋め込みモデルを読み込みます。

from llama_index.embeddings.huggingface import HuggingFaceEmbedding

embed_model = HuggingFaceEmbedding(model_name="intfloat/multilingual-e5-large")
コードの説明

HuggingFaceEmbedding(model_name=”intfloat/multilingual-e5-large”)

HuggingFaceのモデル intfloat/multilingual-e5-large を使って埋め込みモデルを読み込んでいます。このモデルは日本語性能が高く、無料で使える埋め込みモデルです。

STEP
HuggingFaceの埋め込みモデルをテスト

埋め込みモデルを使用して、テキストを数値ベクトルに変換します。

text = "これは埋め込みモデルのテストです。"
embeddings = embed_model.get_text_embedding(text)
print(embeddings[:10])
[0.02069464884698391, -0.014187865890562534, -0.02731310948729515, -0.06284146755933762, 0.027987537905573845, -0.026079582050442696, 0.014470797032117844, 0.07950162887573242, 0.05525951832532883, -0.02208035998046398]
コードの説明

embed_model.get_text_embedding(text)

指定したテキストを数値ベクトル(埋め込みベクトル)に変換します。

Ollama Embeddingsの使い方

見出し画像

Ollamaの埋め込みモデルの使い方を紹介します。

Ollamaの埋め込みモデルにはollama-pythonの環境構築が必要になります。

ollama-pythonの環境構築は別の記事で解説しています。

STEP
パッケージのインストール

必要なパッケージをインストールします。

pip install llama-index llama-index-embeddings-ollama
STEP
Ollamaの埋め込みモデルを読み込む

Ollamaで使用する埋め込みモデルをダウンロードします。

!ollama pull mxbai-embed-large

Ollamaの埋め込みモデルを読み込みます。

from llama_index.embeddings.ollama import OllamaEmbedding

embed_model = OllamaEmbedding(
    model_name="mxbai-embed-large",
    base_url="http://localhost:11434",
    ollama_additional_kwargs={"mirostat": 0},
)
コードの説明

OllamaEmbedding()

model_name="mxbai-embed-large":埋め込みモデルを指定しています。

base_url="http://localhost:11434":LinuxにインストールしたOllama ServerのURLを指定しています。

ollama_additional_kwargs={"mirostat": 0}:mirostatは出力の安定性に関するパラメータで、ここでは無効化(0に設定)しています。

Ollamaで使える埋め込みモデルは公式サイトをご覧ください。

STEP
Ollamaの埋め込みモデルをテスト

埋め込みモデルを使用して、テキストを数値ベクトルに変換します。

text = "これは埋め込みモデルのテストです。"
embeddings = embed_model.get_query_embedding(text)
print(embeddings[:10])
[-0.4648051857948303, -0.6819150447845459, 0.01403755135834217, 0.5371492505073547, 0.021027207374572754, -0.5542749762535095, 0.2752455770969391, 0.3418479561805725, 0.6338890194892883, 0.6366513967514038]
コードの説明

embed_model.get_query_embedding(text)

指定したテキストを数値ベクトル(埋め込みベクトル)に変換します。

生成AI・LLMのコストでお困りなら

GPUのスペック不足で生成AIの開発が思うように進まないことはありませんか?

そんなときには、高性能なGPUをリーズナブルな価格で使えるGPUクラウドサービスがおすすめです!

GPUSOROBAN
GPUSOROBAN

GPUSOROBANは、高性能GPU「NVIDIA H200」を業界最安級の料金で使用することができます。

NVIDIA H200は、生成AI・LLMの計算にかかる時間を大幅に短縮することが可能です。

クラウドで使えるため、大規模な設備投資の必要がなく、煩雑なサーバー管理からも解放されます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
EdgeHUBロゴ

メールマガジン登録

Stable Diffusion・LLM・RAGに関する最新情報をいち早くお届けします。

無料メルマガの配信をご希望の方は、下記フォームよりご登録ください。

    EdgeHUB編集部からのお知らせ

    無料ウェビナーのお知らせ

    話題のGraphRAGの使い方 ウェビナー【1/29無料開催】

    RAG進化のさらに先へ! 大好評につきRAGシリーズ第4弾が開催決定!

    開催日時:
    2025年1月29日(水) 14:00~15:00

    内容:

    • RAGの進化系!「GraphRAG」のデモ
    • 生成AI開発の強い味方「GPUSOROBAN」の活用方法

    このウェビナーでは、従来のRAGよりも大幅に精度が向上した「GraphRAG」のデモを交えてご紹介します。

    生成AIに関心のある方、AI技術をビジネスに活かしたい方は、ぜひこの貴重な機会にご参加ください!

    こんな方におすすめ!

    • GraphRAGに興味がある方
    • RAGの高度化を検討しているエンジニアや開発者
    • ローカル環境のLLM、グラフデータベースの利用を検討している方
    • GPUリソースに課題を感じている方

    \簡単1分で申し込み!/

    この記事を書いた人

    EdgeHUBは、NVIDIAクラウドパートナーである株式会社ハイレゾが運営しています。「AIと共にある未来へ繋ぐ」をテーマに、画像生成AI、文章生成AI、動画生成AI、機械学習・LLM、Stable Diffusionなど、最先端の生成AI技術の使い方をわかりやすく紹介します。

    目次