「OSSで自社運用したい」「ロックインを避けたい」「データを自社内に閉じたい」。Pineconeの便利さは魅力でも、これらの要件があると別の選択肢を探したくなります。Weaviateは、OSSベクトルDBの代表的な選択肢です。Weaviate社(旧SeMI)が開発を主導し、Weaviate Cloud Servicesでマネージド版も提供しています。

モジュール式の拡張、GraphQL API、ベクトル+キーワードのハイブリッド検索など、独自の機能が多く、エンタープライズ採用も広がっています。基本構造と運用設計を整理します。

Weaviateの基本構造

要素意味
Classデータの種類(RDBの「テーブル」相当)
Object1つのデータポイント
PropertyObjectの属性(メタデータ)
ModuleEmbedding生成、Re-rank、Q&A等の拡張
Vectorizerテキストを自動でベクトル化するModule

Vectorizer:Embeddingが自動化

Weaviateの特徴的な機能が、Vectorizer Moduleです。「OpenAI Embedding」「Cohere」「HuggingFace」などのModuleを設定すれば、テキストデータをWeaviateに渡すだけで、自動的にベクトル化して保存されます。検索時も自然な文字列で検索でき、Embedding計算をクライアント側で書かずに済みます。

import weaviate
import weaviate.classes.config as wvc

client = weaviate.connect_to_local()

# ClassをOpenAI Vectorizerで定義
client.collections.create(
    name="Documents",
    vectorizer_config=wvc.Configure.Vectorizer.text2vec_openai(),
    properties=[
        wvc.Property(name="title", data_type=wvc.DataType.TEXT),
        wvc.Property(name="content", data_type=wvc.DataType.TEXT),
        wvc.Property(name="category", data_type=wvc.DataType.TEXT),
    ],
)

# データを挿入(Embeddingは自動)
docs = client.collections.get("Documents")
docs.data.insert({
    "title": "返品ポリシー",
    "content": "商品到着後14日以内に...",
    "category": "support",
})

# 自然言語で検索(Embeddingは自動)
results = docs.query.near_text(query="返金したい", limit=5)

ハイブリッド検索

ベクトル検索は「意味の近さ」を見ます。キーワード検索(BM25)と組み合わせると、「キーワード一致」と「意味」の両方で重み付けでき、検索品質が大きく上がります。Weaviateはハイブリッド検索を標準サポートします。

results = docs.query.hybrid(
    query="返品 14日 ポリシー",
    alpha=0.7,  # 0=純BM25, 1=純ベクトル
    limit=5,
)

GraphQL API

WeaviateはGraphQL APIを提供しており、柔軟なクエリができます。「複雑な条件でデータを取得」「複数Classを結合」のような場面で威力を発揮します。慣れたチームには強みですが、学習コストもあります。

Weaviate Open Source vs Cloud Services

OSS(自社運用)Weaviate Cloud Services
提供Docker / KubernetesSaaS
運用ありマネージド
費用無料+インフラ従量課金
機能本体機能フル本体+エンタープライズ機能

OSS版は完全機能で、Cloud Servicesは運用と一部エンタープライズ機能(SSO、監査等)を加えた構成です。「OSSで素早く運用、必要に応じてCloud移行」という段階的アプローチが取れます。

Pineconeとの比較

WeaviatePinecone
OSSあり無し
セルフホスト可能不可
APIGraphQL + RESTREST
Embedding自動化Vectorizer Moduleクライアント側で計算
ハイブリッド検索標準
運用負担あり(OSS)無し

「機能の幅と自由度」はWeaviate、「運用の楽さ」はPinecone、というのが現実的な評価です。

運用上のハマりどころ

  • OSS本番運用の負担:Kubernetes + バックアップ + 監視 + アップデートを自社で運用する必要がある。
  • Module設定の管理:複数のVectorizerやRe-rankerを使うと設定が複雑になる。組織で標準化する。
  • GraphQLの学習:チームにGraphQL経験が薄いと、APIが扱いにくく感じる。
  • 大規模スケール:データ量が増えるとShardingやReplication設計が必要。設計知識が要る。

向く・向かない場面

  • 向く:OSSで自社運用したい、Embedding自動化が便利、GraphQL運用、ハイブリッド検索が要件
  • 向かない:運用人員が薄い(→Pinecone)、既存PostgreSQL活用したい(→pgvector)、シンプルさ最優先

まとめ

  • WeaviateはOSSベクトルDBの代表的選択肢。Vectorizer Moduleでベクトル化が自動。
  • GraphQL APIで柔軟なクエリ、標準のハイブリッド検索が強力。
  • OSS自社運用とWeaviate Cloud Servicesの両方を選べる。
  • 機能の幅と自由度ではPineconeを上回る面が多いが、運用負担は伴う。
  • 「OSS志向+機能カスタマイズ」が組織の方針なら、有力な選択肢。

全体像はベクトルDBとLLM向けデータ基盤、隣接はPinecone とはpgvector とは。Weaviate導入の壁打ちは、DE-STKの初回相談(30分・無料)もご利用ください。

よくある質問(FAQ)

Q. Weaviate OSSは本番運用に堪える?

A. 堪えます。Goldman Sachs等の大規模採用事例もあり、OSS版だけで本番運用している組織は多くあります。ただし、Kubernetes運用と、バックアップ・障害対応の体制が前提です。「自社で運用力がある中規模以上」が現実的な利用層です。

Q. Vectorizer Moduleで自動化したくないケースは?

A. ベクトル計算を自社のパイプラインで管理したい場合、自動化を無効化して「事前に計算したベクトルを直接渡す」モードも使えます。dbt + 自社のEmbedding計算 + Weaviateへのupsert、というカスタム構成にできます。

Q. データのバックアップは?

A. Weaviateは標準でバックアップ機能を持ち、S3・GCS・Azure Blobへのバックアップが組めます。本番運用では「定期バックアップ」「テストリストア」を運用に組み込みます。クラウドストレージの基本はクラウドDWH入門でも触れています。

Q. LangChain / LlamaIndexとの連携は?

A. 両方とも公式対応しています。LangChainやLlamaIndexのVectorStoreインターフェースを介してWeaviateを使えるので、フレームワーク側で抽象化したまま実装できます。「Pineconeで始めてWeaviateに移行」のような変更も、コードレベルでは限定的な変更で済みます。

▼ このトピックをポチポチ学ぶ

LLM/RAGの基礎から実装まで

関連記事を順序立てて読みながら、ステップごとに4択クイズで理解を確認できる学習パスです。登録不要・進捗自動保存。

学習パスを始める →