業界・業務から探す
導入目的・課題から探す
データ・AIについて学ぶ
News
Hakkyについて
ウェビナーコラム
◆トップ【AI・機械学習】
プロセスの全体像前処理・特徴量生成Fine Tuning手法まとめ機械学習モデルの選び方モデル評価手法プロトタイピング探索的分析(EDA)
AI

執筆者:Handbook編集部

Pineconeの概要

概要

この記事では、マネージドベクトルデータベースである Pinecone の概要について解説します。

Pinecone について

Pinecone は、マネージド型のクラウドネイティブなベクトルデータベースです。Pinecone を使うことにより、高性能なベクトル検索アプリケーションを簡単に構築することができます。

Pinecone には、以下のような特徴があります。

  • 数十億のアイテムを扱う場合でも、あらゆるスケールで超低遅延のクエリレイテンシーを実現
  • データの追加、編集、削除を行った際に、インデックスのライブアップデートを取得
  • ベクトル検索とメタデータフィルタを組み合わせて、より適切で迅速な結果を得ることができる
  • 導入、使用、拡張を容易にし、スムーズで安全な運用を維持

Pinecone のセットアップ

Pinecone のホームページへ移動します。

サインアップ、もしくはサインインすると以下のような画面になります。

「Create Index」ボタンを押します。

以下の項目があります。

  • Index Name: インデックス名前
  • Dimensions: ベクトルの次元数
  • Metric: 類似度の計算方法(cosinedotproducteuclidean
  • PodType: Pod の種類(Pod は Index を管理するハードウェアの単位です。)

作成ボタンを押し、しばらくするとインデックスが作成されます。

Pinecone API

Pinecone API について紹介します。API には、Python クライアントと curl がありますが、この記事では curl での使い方を紹介します。Python クライアントの使い方をこちらを参照してください。

インデックスの作成

quickstartという名前のインデックスを作成するには以下のコマンドを実行します。

curl -i -X POST \
  -H 'Content-Type: application/json' \
  -H 'Api-Key: YOUR_API_KEY_HERE' \
  https://controller.YOUR_ENVIRONMENT.pinecone.io/databases \
  -d '{
    "name": "quickstart",
    "dimension": 8,
    "metric": "euclidean"
  }'

インデックスのリストを取得

インデックスのリストを取得するには以下のコマンドを実行します。

curl -i https://controller.YOUR_ENVIRONMENT.pinecone.io/databases \
  -H "Api-Key: YOUR_API_KEY"
# 結果:
# ["quickstart"]

ベクトルの追加

ベクトルを追加するには以下のようなコマンドを実行します。

curl -i -X POST https://quickstart-YOUR_PROJECT.svc.YOUR_ENVIRONMENT.pinecone.io/vectors/upsert \
  -H 'Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "vectors": [
      {
        "id": "A",
        "values": [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
      },
      {
        "id": "B",
        "values": [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]
      },
      {
        "id": "C",
        "values": [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]
      },
      {
        "id": "D",
        "values": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]
      },
      {
        "id": "E",
        "values": [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
      }
    ]
  }'

クエリ

以下のコマンドでは、8 次元ベクトルのリクエストにもっとも類似している 3 つのベクトルのインデックスを取得します。

curl -i -X POST https://quickstart-YOUR_PROJECT.svc.YOUR_ENVIRONMENT.pinecone.io/query \
  -H 'Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "vector": [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3],
    "topK": 3,
    "includeValues": true
  }'

# 結果:
# {
#       "matches":[
#         {
#           "id": "C",
#           "score": -1.76717265e-07,
#           "values": [0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3]
#         },
#         {
#           "id": "B",
#           "score": 0.080000028,
#           "values": [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]
#         },
#         {
#           "id": "D",
#           "score": 0.0800001323,
#           "values": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]
#         }
#       ],
#       "namespace": ""
#     }

インデックスの削除

インデックスを削除するには以下のようなコマンドを実行します。

curl -i -X DELETE https://controller.YOUR_ENVIRONMENT.pinecone.io/databases/quickstart \
  -H 'Api-Key: YOUR_API_KEY'

参照

info
備考

Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。

2025年06月13日に最終更新
読み込み中...