Ollamaで発生するembeddings APIのエラー
Ollamaを使用中にembeddings APIのエラーに遭遇することがあります。本記事では、原因の特定から解決までを順を追って解説します。
エラーの症状
OllamaのEmbeddings API(/api/embeddings)を呼び出した際に、空の結果が返ってくる、次元数が期待と異なる、またはエラーレスポンスが返される問題が発生します。
原因
1. 非対応モデルの使用
chat用モデル(llama3など)ではembeddingsの品質が低い場合があります。専用のembeddingモデルが推奨されます。
2. APIエンドポイントの間違い
旧バージョンと新バージョンでエンドポイントが異なります。
3. 入力テキストが長すぎる
モデルのコンテキスト長を超えるテキストを入力するとエラーになります。
解決方法
手順1: embedding専用モデルを使用する
# embedding専用モデルをダウンロード
ollama pull nomic-embed-text
ollama pull mxbai-embed-large
# embeddingを取得
curl http://localhost:11434/api/embeddings -d '{
"model": "nomic-embed-text",
"prompt": "テスト文章です"
}'
手順2: APIの正しい使い方
# Python での使用例
import requests
import json
response = requests.post("http://localhost:11434/api/embeddings", json={
"model": "nomic-embed-text",
"prompt": "検索対象のテキスト"
})
embedding = response.json()["embedding"]
print(f"次元数: {len(embedding)}") # nomic-embed-text: 768次元
手順3: バッチ処理での注意点
# 大量テキストの場合は分割して処理
texts = ["テキスト1", "テキスト2", "テキスト3"]
embeddings = []
for text in texts:
resp = requests.post("http://localhost:11434/api/embeddings", json={
"model": "nomic-embed-text",
"prompt": text
})
embeddings.append(resp.json()["embedding"])
まとめ
Ollamaのembeddings APIのエラーは、環境設定やバージョンの不整合が主な原因です。上記の手順で解決できない場合は、公式リポジトリのIssuesを確認してください。
☁️ ローカル環境のトラブルを回避するなら
環境構築やGPUの問題に悩まされない、クラウドGPUという選択肢:
※ 上記はアフィリエイトリンクです。サイト運営のサポートになります。
💡 この問題を根本的に解決するには
ローカル環境のGPUトラブルが頻発する場合、ハードウェアの見直しも検討してみてください:
- VRAM不足なら → RTX 4070 Ti Super(16GB VRAM)
- メモリ不足なら → DDR5 64GBメモリ
- AI開発を体系的に学ぶなら → AI・機械学習の実践書籍