AIニュース最前線
最新ニュースAI日報Hacker日報週報動画AIツールトレンド企業

AIニュース最前線

世界中のAI最新情報を日本語で毎時更新

最新ニュース日報トレンド企業プレミアムRSS
© 2026 ainew.jp特定商取引法に基づく表記
ニュース一覧元記事を開く
Pinecone·2026年6月1日 09:00·約5分で読める

Pinecone、最大 1TB のバッチインポートが無料化

#Vector Database#Embedding#Semantic Search#Data Engineering#Pinecone
TL;DR

Pinecone は 6 月 1 日よりバッチインポートを最大 1TB まで無料化し、大規模データセットのベクトルデータベースへの導入コストと時間を劇的に削減した。

AI深層分析2026年6月11日 23:16
3
注目/ 5段階
深度40%
4
関連度30%
5
実用性20%
4
革新性10%
2

キーポイント

1

価格改定と無料枠の拡大

6 月 1 日よりバッチインポートが最大 1TB まで無料となり、標準およびエンタープライズプランには$250 のクレジットが付与される。また、1TB を超える部分も従来より 75% 安価な$0.25/GB で提供される。

2

技術的効率性の向上

バッチインポートは標準的な書き込みパスをスキップし、オブジェクトストレージから直接インデックスビルダーへデータを読み込むことで、大規模な一度きりのロードにおいて高い効率を実現している。

3

実用的なスケーラビリティ

1TB の容量は約 1.3 億件のレコード(1024 次元)に対応可能であり、本番環境での評価用コーパスの構築やプロトタイプ開発を現実的なコストで実行できる。

4

簡素化されたワークフロー

生データを埋め込みベクトルに変換し、Parquet 形式でオブジェクトストレージに保存した上で API を呼び出すという 3 ステップのシンプルなプロセスで動作する。

5

大規模データ対応と制限

単一のインポート操作で最大1TBまたは1億レコード、100名前空間まで処理可能ですが、スキーマ定義(全文検索や統合埋め込み)があるインデックスでは利用できません。

6

データ形式とストレージ構成

ParquetファイルにID、ベクトル値、メタデータを格納し、S3/GCS/Azureのフォルダ構造を名前空間マッピングとして使用してアップロードする必要があります。

7

非同期処理とクエリ

インポートは非同期で実行され、コンソールまたはAPIでステータスを確認でき、完了後は通常のベクトル検索クエリとして利用可能です。

影響分析・編集コメントを表示

影響分析

この発表は、ベクトルデータベースの初期セットアップにおけるコストと時間的ボトルネックを解消し、大規模データを扱う AI アプリケーションの開発サイクルを加速させる重要な転換点となる。特に、評価用コーパスや本番環境への移行を低リスクで行えるようになることで、RAG システムの実装がより現実的なものになるだろう。

編集コメント

大規模データ処理におけるコスト構造の劇的な改善は、AI プロジェクトの実装スピードを決定づける重要な要素であり、開発者のワークフローに即座にプラスの影響を与えるニュースです。

6 月 1 日より、バッチインポートは最大 1 TB まで無料となります。Standard および Enterprise プランには自動的に $250 のクレジットが付与されます。1 TB を超えた後は、インポート料金は GB あたり $0.25(従来 $1/GB から 75% 値下げ)で実行されます。

バッチインポートの仕組み

バッチインポートは、標準的な書き込みパスを完全にスキップするため、大規模なデータセットを Pinecone に取り込む最も高速な方法です。アップサート(upsert)はすべてのリクエストを確認し、シーケンス化し、memtable 内に保持した後にフラッシュされ、その後インデックスビルダーが引き継ぎます。これは継続的な書き込みには重要な保証ですが、大規模な一度きりのロードにおいてはオーバーヘッドとなります。バッチインポートは、オブジェクトストレージから直接インデックスビルダーへ読み込みます。結果として、より効率的なパスを通じて同じように populated なインデックスが構築されます。

数行で 200 種以上の鳥類に関する意味検索

1 TB のバッチインポートは、典型的なメタデータを持つ 1024 次元のレコード約 1.3 億件をカバーします。これは、大規模な評価用コーパスを読み込んだり、玩具的なスライスではなく実データに対して意味検索のプロトタイプを構築したり、増分書き込みが引き継ぐ前に本番用のインデックスをシードしたりするのに十分な容量です。

スケーリングに関わらず、ワークフローは 3 つのステップで構成されます。まず生データを埋め込み(embeddings)に変換し、次にその埋め込みをオブジェクトストレージ内の Parquet ファイルとして書き出し、最後に start_import を呼び出します。以下の例では bird search corpus(北米の鳥類に関するウィキペディア記事約 200 件)を使用していますが、これは数分でエンドツーエンドで実行できるためです。同じコードは、より大規模な入力データセットを用いた 1 TB のロード処理にも対応しています。

埋め込みベクトルの生成

(注:すでにベクトルを含む Parquet ファイルをお持ちの場合は、このステップをスキップできます。)

バッチインポートでは生テキストではなくベクトルが期待されるため、最初のステップは各鳥類の記事を 1024 次元の埋め込みベクトルに変換することです。以下のループでは、記事を 96 件ずつのバッチに分割し、各バッチを Pinecone のホスト型推論 API に送信します。ここで使用されるモデルは multilingual-e5-large です。input_type="passage"というパラメータは、これらがクエリではなくインデックスに登録されるドキュメントであることをモデルに伝えます。また、この設定により、モデルのコンテキストウィンドウを超える記事も適切に処理されます。

EMBED_MODEL = "multilingual-e5-large"

EMBED_DIM = 1024

BATCH_SIZE = 96

embeddings = []

for i in tqdm(range(0, len(df), BATCH_SIZE), desc="Embedding"):

batch = df["text"].iloc[i : i + BATCH_SIZE].tolist()

res = pc.inference.embed(

model=EMBED_MODEL,

inputs=batch,

parameters={"input_type": "passage", "truncate": "END"},

)

embeddings.extend([item["values"] for item in res.data])

名前空間ごとにパーティション分割された Parquet ファイルを S3 に書き込み:

def upload_to_s3(df, bucket, folder, chunk_size=10):

s3_client = boto3.client("s3")

for i, start in enumerate(range(0, len(df), chunk_size)):

chunk = df.iloc[start : start + chunk_size]

buf = BytesIO()

chunk.to_parquet(buf, index=False)

buf.seek(0)

key = f"{folder}/part-{i}.parquet"

s3_client.put_object(Body=buf, Bucket=bucket, Key=key)

各 Parquet ファイルには 3 つの列が含まれています:id(ID)、values(埋め込みベクトル)、metadata(JSON オブジェクト)です。S3 フォルダ構造は名前空間に直接マッピングされており、s3://bucket/folder/namespace1/ の下のファイルは namespace1 に読み込まれます。

インポートを開始する:

op = index.start_import(

uri=f"s3://{bucket_name}/{folder_name}",

integration_id="<your-integration-id>",

error_mode="ABORT"

)

print(f"Import started: {op.id}")

ジョブは非同期で実行されます。コンソールまたは describe_import を使用してステータスを確認してください:

index.describe_import(id=op.id)

完了後、通常通りクエリを実行します:

query_response = pc.inference.embed(

model=EMBED_MODEL,

inputs=["birds that migrate south in winter"],

parameters={"input_type": "query", "truncate": "END"},

)

results = index.query(

namespace="namespace1",

vector=query_response.data[0]["values"],

top_k=3,

include_metadata=True

)

for match in results.matches:

print(f"{match.score:.4f} {match.metadata['bird_name']}")

What this scales to

このバードコーパスは意図的に小さく設計されており、実行可能な例となっています。同じパターンは、桁違いに大きなデータセットも処理できます。単一のインポート操作では、最大 100 の名前空間にわたる 1 TB のデータまたは 1 億件のレコードをサポートします。規模に関わらず設定方法は同一です:S3、GCS、Azure Blob Storage のストレージ統合を設定し、名前空間ごとに整理された Parquet ファイルとしてデータをフォーマットした上で、start_import を呼び出してください。

一つの制約として、バッチインポートはスキーマ定義を持つインデックス(全文検索や統合埋め込みインデックスを含む)では機能しません。それらの場合はドキュメントアップセット API を使用してください。

Get started

完全な価格体系、制限事項、ストレージ統合の設定方法は ドキュメント に記載されています。

原文を表示

Starting June 1, bulk import is free up to 1 TB. Standard and Enterprise plans get a $250 credit applied automatically. After 1 TB, import runs at $0.25/GB – down 75% from $1/GB.

How bulk import works

Bulk import is already the fastest way to get a large dataset into Pinecone because it skips the standard write path entirely. Upsert acknowledges every request, sequences it, holds it in the memtable, and flushes before the index builder picks it up -- guarantees that matter for continuous writes, but overhead for a large one-time load. Bulk import reads directly from object storage into the index builder. The result is the same populated index through a more efficient path.

Semantic search over 200 bird species in a few lines

A terabyte of bulk import covers roughly 130 million records at 1024 dimensions with typical metadata. That's enough to load a substantial evaluation corpus, stand up a semantic search prototype against real data instead of a toy slice, or seed a production index before incremental writes take over.

The workflow has three steps regardless of scale: turn raw data into embeddings, write those embeddings as Parquet files in object storage, then call start_import\verb|start_import|. The example below uses the bird search corpus -- ~200 North American bird Wikipedia articles -- because it runs end-to-end in a few minutes. The same code handles a 1 TB load with a larger input dataset.

Generate the embeddings

(Note: *If you already have Parquet files with vectors you can skip this step.)*

Bulk import expects vectors, not raw text, so the first step is converting each bird article into a 1024-dimensional embedding. The loop below batches articles into groups of 96 and sends each batch to Pinecone's hosted inference API using the multilingual-e5-large\verb|multilingual-e5-large| model. input_type="passage"\verb|input_type="passage"| tells the model these are documents being indexed (as opposed to queries), and input_type="passage"\verb|input_type="passage"|handles articles that exceed the model's context window.

code
EMBED_MODEL = "multilingual-e5-large"
EMBED_DIM = 1024
BATCH_SIZE = 96

embeddings = []
for i in tqdm(range(0, len(df), BATCH_SIZE), desc="Embedding"):
    batch = df["text"].iloc[i : i + BATCH_SIZE].tolist()
    res = pc.inference.embed(
        model=EMBED_MODEL,
        inputs=batch,
        parameters={"input_type": "passage", "truncate": "END"},
    )
    embeddings.extend([item["values"] for item in res.data])

Write Parquet files to S3, partitioned by namespace:

code
def upload_to_s3(df, bucket, folder, chunk_size=10):
    s3_client = boto3.client("s3")
    for i, start in enumerate(range(0, len(df), chunk_size)):
        chunk = df.iloc[start : start + chunk_size]
        buf = BytesIO()
        chunk.to_parquet(buf, index=False)
        buf.seek(0)
        key = f"{folder}/part-{i}.parquet"
        s3_client.put_object(Body=buf, Bucket=bucket, Key=key)

Each Parquet file contains three columns: id\verb|id|, values\verb|values| (the embedding), and metadata\verb|metadata| (a JSON object). The S3 folder structure maps directly to namespaces -- files under s3://bucket/folder/namespace1/\verb|s3://bucket/folder/namespace1/| load into namespace1\verb|namespace1|.

Start the import:

code
op = index.start_import(
    uri=f"s3://{bucket_name}/{folder_name}",
    integration_id="<your-integration-id>",
    error_mode="ABORT"
)
print(f"Import started: {op.id}")

The job runs asynchronously. Check status in the console or via describe_import\verb|describe_import|:

code
index.describe_import(id=op.id)

Once complete, query as normal:

code
query_response = pc.inference.embed(
    model=EMBED_MODEL,
    inputs=["birds that migrate south in winter"],
    parameters={"input_type": "query", "truncate": "END"},
)
results = index.query(
    namespace="namespace1",
    vector=query_response.data[0]["values"],
    top_k=3,
    include_metadata=True
)
for match in results.matches:
    print(f"{match.score:.4f}  {match.metadata['bird_name']}")

What this scales to

The bird corpus is small by design -- it's a runnable example. The same pattern handles datasets that are orders of magnitude larger. A single import operation supports up to 1 TB of data or 100 million records across up to 100 namespaces. The setup is identical regardless of scale: configure a storage integration for S3, GCS, or Azure Blob Storage, format data as Parquet files organized by namespace, and call start_import\verb|start_import|.

One constraint: bulk import doesn't work on indexes with a schema definition, including full-text search and integrated embedding indexes. Use the documents upsert API for those.

Get started

Full pricing, limits, and storage integration setup are in the docs.

この記事をシェア

関連記事

Pinecone★42026年6月5日 09:00

Nexus の実世界での成果:早期アクセス顧客からの実際の結果

ベクトルデータベース「Pinecone」が提供する新機能「Nexus」について、早期アクセスに参加した顧客から得られた具体的な運用実績と効果報告を公開しました。

Hugging Face Blog★32026年6月6日 20:42

ペルソナ・アトラス:著名な思考者の思考マップを可視化

Hugging Face が「Persona Atlas」を発表し、著名な人物の思考パターンや認知特性をマッピングする手法を公開した。これは AI の推論能力向上や人間理解の深化に寄与する研究である。

Latent Space★42026年5月22日 14:50

[AI ニュース] 新たな AI インフラユニコーン:Exa、Modal、TurboPuffer

Latent Space は、今週大きなマイルストーンを達成した過去のゲスト企業として、年間収益1億ドルで黒字化を果たした TurboPuffer と、シリーズC で25億ドルの価値評価を得た Exa を紹介しました。また、Modal も47億ドルの評価額に達しています。

今日のまとめ

AI日報で今日の重要ニュースをまとめ読み

ニュース一覧に戻る元記事を読む