Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI時代のマルチモーダルレイクハウス Lance Format 入門

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for bering bering
September 28, 2026
380

AI時代のマルチモーダルレイクハウス Lance Format 入門

「AI時代のテーブルフォーマット最前線 IcebergとLanceから見る次世代データ基盤の片鱗」登壇資料です
https://findy.connpass.com/event/404504/

Avatar for bering

bering

September 28, 2026

Transcript

  1. AI時代のマルチモーダルレイクハウス Lance Format ⼊⾨ Sotaro Hikita Sr. Specialist SA, OpenSearch

    © 2026, Amazon Web © 2026, Services, Amazon Inc. or Web its Services, affiliates.Inc. All or rights its affiliates. reserved.All rights reserved.
  2. ⾃⼰紹介 ⽦⽥ 宗太郎 (ひきた そうたろう) Sr. Specialist SA, OpenSearch ⼤規模データの管理や検索技術に取り組む

    お客様を⽀援しています 趣味 • ビッグデータに関わるオープンソース コミュニティへの貢献 (Apache Iceberg, OpenSearch etc) • opensearch-hadoop メンテナ • 最近は Lance が気になる © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  3. 本セッションの趣旨 マルチモーダル AI のための レイクハウスフォーマット「Lance」の基本を知る ねらい • 新しいフォーマットが必要とされる背景を理解する • Lance

    の概要とユースケース、特徴を知る 扱わないこと • Open Table Format の基礎 • SaaS 版 LanceDB の詳細 (Lance のOSS の側⾯にフォーカスします) © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3
  4. AI は従来と異なる要件をレイクハウスに持ち込む AI エージェント AI, ML が必要な⾏を ⾒つけて効率よく取り出す、 検索とランダムアクセス Package

    ID Name (int64) (text) 従来の 集計的な分析要件は継続 モデルの学習 Image (binary) Image Description (text) Embedding (vector) Score (float) 1456 xxx.png 89 50 4e … The image depicts … [0.40787, 0.01876, …] 23.34 ... 1457 yyy.png 89 50 4e … The landscape of … [0.03276, 0.78922, …] 46.32… 1458 zzz.png 89 50 4e … A brown fox leaped … [0.44530, 0.99876, …] 78.32… 画像、⾳声、動画などをレコードの ⼀部として扱う、 マルチモーダル(⾮構造)データの管理 © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 前処理とデータ管理 既存の⾏に embedding や アノテーションを追加する、 データ進化
  5. 従来のレイクハウスの限界 Parquet ベースの従来のオープンテーブルフォーマットは列単位の集計処理に 最適化されており、 AI 時代のアクセス要件に応えるのが難しい場合がある AI エージェント • ⾏単位のピンポイントな

    アクセスが不得意 • 全⽂検索、ベクトル検索 インデックスがない Package ID Name (int64) (text) 集計的なアクセス パターンに最適化 モデルの学習 Image (binary) Image Description (text) Embedding (vector) Score (float) 1456 xxx.png 89 50 4e … The image depicts … [0.40787, 0.01876, …] 23.34 ... 1457 yyy.png 89 50 4e … The landscape of … [0.03276, 0.78922, …] 46.32… MB, GB 規模の blob を持つと、 1 ⾏取り出すのに row group 全体 を読むことになり性能が劣化する © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. ⾏の全列を 1 つの不変なファイルに持つ 前提のため、列追加のコストが⼤きい 全列を row group 単位で区切るため、 数百、数千カラム規模では性能が劣化
  6. Lance Format マルチモーダル AI のためのオープンなレイクハウスフォーマット https://github.com/lance-format/lance • Lance は、集計処理を損なわず、ランダムアクセス、 検索、マルチモーダル、データ進化に最適化した

    オープンソースのフォーマット仕様とライブラリ • LanceDB は、Lance の上に構築されたデータベース • OSS 版は組み込み型で、 ベクトル・全⽂・ハイブリッド検索を担う • LanceDB 社の SaaS版は分散実⾏と SQL 分析を追加 • Lance ⾃体は他のエンジンでも操作できる 出典︓Lance 公式ページ https://lance.org/ © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 7
  7. Lance の代表的なユースケース マルチモーダル データ基盤 • • • 画像・動画・PDFなどの ⾮構造データも テーブルの列に格納

    • embedding や特徴量は 列の追記で完結 • タグ付きバージョンで学 習を再現 • © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. スケーラブルな ハイブリッド検索 Physical AI と 製造のセンサーデータ ベクトル・全⽂・ ハイブリッド検索を 1 テーブルで完結 • センサー時系列と複数 カメラ動画を 1 ⾏に格納 • 数千のセンサーチャネル を列として保持 • 動画全体をデコードせず 必要なフレームだけ取得 インデックスは S3 に 置きメモリ常駐が不要 常時稼働サーバなしで 数⼗億ベクトルまで 8
  8. Metagenomi は LanceDB と Amazon S3 で 10 億ベクトル超のスケーラブルな検索基盤を実現 •

    Metagenomi 社は遺伝⼦編集による治療法を 開発する企業 • 新規酵素を発⾒するには、数⼗億種類の酵素を 効率よく探索する必要がある • 酵素の探索を近傍検索(ANN)問題に変換し、 探索を⾼速化 • 35 億を超えるベクトルを S3 上に Lance 形式で格納し、AWS Lambda から検索 • 常時稼働するサーバーが不要で、固定コスト は S3 のストレージ (約 12.9 TB) のみ © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. https://aws.amazon.com/jp/blogs/news/search-solution-for-1bvectors-built-on-lancedb/ 9
  9. Lance Format の全体像 Lance Format は階層化された仕様の集合体 各階層は疎結合であり、ファイルフォーマットだけを利⽤することもできる クエリエンジン (Apache Spark,

    LanceDB など) Lance REST Catalog Spec Lance フォーマット 仕様のカバー範囲 Lance Table Format Lance Index Format Lance File Format オブジェクトストア (Amazon S3 など) © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 10
  10. Lance File Format ランダムアクセスに最適化されたカラムナーフォーマット • • • • ⾼速スキャンのためのカラムナ構造を保ちつつ、⾼速ランダムアクセスが可能 深くネストしたフィールドにも

    1〜2 回の I/O で到達できる 列の性質に応じてエンコーディングを切り替えて最適化 ⾏操作の並列化単位 (Parquet における Row Group)をファイルフォーマット として管理せず、テーブルフォーマットへ移譲するデザイン © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 11 出典: Lance File Format 仕様 https://lance.org/format/file/
  11. データの性質に応じた格納⽅式の最適化 巨⼤な blob は位置を指すハンドルで返し、必要なバイト範囲だけを読める 動画ファイルのカラムから、指定した区間のフレームだけを取り出す例 import av, lance スキーマ id

    title video 実データ 必要な範囲 特定の範囲 のみを seek 、 S3 から転送 © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. ds = lance.dataset("s3://…/videos.lance") # ハンドルを取得 blob = ds.take_blobs("video", ids=[5])[0] with av.open(blob) as c: stream = c.streams.video[0] c.seek(start_time, stream=stream) # 必要な範囲のみを読み取り for frame in c.decode(stream): if frame.time > end_time: break process(frame)
  12. Lance Table Format インデックスを第⼀級に据えたオープンテーブルフォーマット Index File (col1) • Iceberg と同様に、トランザクション管理や

    タイムトラベルなどの特徴を備える Manifest • テーブル検索を⾼速化するための 補助データ構造(インデックス)を トランザクションに統合する機構を備える Schema: col1 string col2 string col3: int • ⾏⽅向(フラグメント)と列⽅向(列⽅向)の 2 次元でデータを管理 • 列単位のデータ操作が効率的 • カラム数が⾮常に多い場合 でも性能が落ちづらい © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. Fragment Data File (col1) Data File (col2, col3) Deletion File Index File (col2) Index File (col3) Fragment Data File (col1) Data File (col2, col3) Deletion File
  13. Lance Index Format テーブル上の検索を⾼速化する補助的なデータ構造 • インデックスは実データのファイルから独⽴ してストレージ上に保持される • テーブルの実データとインデックスは独⽴し て更新可能

    • インデックスはオンデマンドに読み込まれる インデックス Index a-1 実データ fragment 1 Index b Index a-2 fragment 2 • クエリエンジンはインデックスを参照せず にテーブルを読むこともできる • インデックスは段階的にメモリに読み込まれ るように設計されている © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 15
  14. Lance の Index 形式 分類 インデックス 構造 Scalar BTREE BITMAP

    値をソートして持つ 2 段構造 値ごとに⾏の有無を表すビット列を持つ LABEL_LIST ZONEMAP BLOOMFILTER RTREE テキス INVERTED (FTS) ト NGRAM FM-Index ベクト IVF_PQ ル IVF_HNSW_SQ IVF_SQ IVF_RQ IVF_FLAT 対象となる操作 等値、範囲条件、点参照 カーディナリティの低い列の等 値、IN リスト列の各要素を BITMAP で持つ 複数タグを持つ列の包含判定 固定サイズの区間ごとに min / max などの統計を持つ 区間の読み⾶ばし 確率的な存在判定を⾏うビット配列 等値、不等値 境界矩形を階層化した 2 次元空間インデックス 地理データの矩形絞り込み BM25 による全⽂検索、 語から⽂書への転置インデックス フレーズ検索 3 ⽂字の部分列を索引化 (現状トライグラム固定) 部分⼀致、正規表現 Burrows-Wheeler 変換に基づく圧縮部分⽂字列索引 部分、前⽅⼀致、正規表現 k-means でパーティション分割し、サブベクトルごとに量 近似最近傍探索 (ANN) ⼦化 IVF で分割し、パーティション内を HNSW グラフで探索。 スカラー量⼦化 IVF で分割し、次元ごとにスカラー量⼦化 16 IVF で分割し、RaBitQ によるバイナリ量⼦化 IVF で分割し、量⼦化なしで⽣ベクトルを保持 © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  15. 参考記事︓Lance と Lindera による⽇本語全⽂検索 Lance テーブルに Lindera を tokenizer として設定して全⽂検索インデックスを

    構築する⽅法の紹介 © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. https://zenn.dev/dimor47/articles/3ee0705a094b10 17
  16. 簡易パフォーマンス検証例 • wikimedia/wikipedia en、de、fr、es、it を段落に分割した 1 億件 の データで S3

    標準クラス上に Lance テーブルを作成 • id 列にBTREEインデックスを構築 • text 列に FTS (BM25) インデックスを構築 • emb 列は text 列を intfloat/multilingual-e5-small で embedding した もので、IVF_PQ インデックスを構築 © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 18
  17. 簡易パフォーマンス検証例 • c7i.4xlarge (16 vCPU, 32 GB Memory) 上の DuckDB

    1.5.5 + lance extension からクエリ • それぞれ最⼤ 200 種類のクエリの p50 / p95 を計測 • warm は同じプロセスで 2 回⽬以降、cold はプロセス起動後の 1 回⽬ (インデックスのメタデータを S3 から読む時間を含む) • Out of the Box で検証 (データ / クエリの双⽅で最適化の余地があり得る) © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 19
  18. 簡易パフォーマンス検証例 全⽂検索 SELECT id, title, _score FROM lance_fts(ʻs3://…/wiki100m.lanceʼ, ʻtextʼ, ʻcampeonatoʼ,

    k = 10) ORDER BY _score DESC; • 510 ms p50 (warm) • 823 ms p95 (warm) • 5.6 s cold ベクトル検索 SELECT id, title, _distance FROM lance_vector_search ('s3://…/wiki100m.lance’,'emb', [0.0448, -0.0019, …]::FLOAT[384], k = 10, nprobs = 20) ORDER BY _distance; © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. • 375 ms p50 (warm) • 727 ms p95 (warm) • 5.0 s cold 20
  19. 簡易パフォーマンス検証例 ピンポイントクエリと集計 SELECT id, lang, title, text_len FROM 's3://…/wiki100m.lance' WHERE

    id = 81823275; • 131 ms p50 (warm) • 269 ms p95 (warm) • 900 ms (cold) -- 対象 id は 96 fragment に散在 SELECT id, lang, title, text_len FROM 's3://…/wiki100m.lance' WHERE id IN (2059919, 3885234, 4818295, … 100 個); • 461 ms p50 (warm) • 579 ms p95 (warm) • 3.8 s (cold) SELECT lang, count(*) FROM 's3://…/wiki100m.lance' GROUP BY lang; SELECT lang, avg(text_len), max(text_len) FROM 's3://…/wiki100m.lance' GROUP BY lang; © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. • 648 ms p50 (warm) • 679 ms p95 (warm) • 730 ms (cold) • 509 ms p50 (warm) • 515 ms p95 (warm) • 930 ms (cold) 21
  20. Lance テーブルと連携できる主なツール 処理系 Lance SDK (Rust / Python / Java)

    LanceDB 読み取り 書き込み インデッ ベクトル 全⽂検索 備考 クス構築 検索 ✓ ✓ ✓ ✓ ✓ 汎⽤ライブラリ ✓ ✓ ✓ ✓ ✓ DuckDB (lance extension) Trino (lance-trino) ✓ ✓ ✓ ✓ ✓ ✓ ✓ ­ ­ ­ Apache Doris (4.2) ✓ ­ ­ ✓ ✓ 読み取り専⽤ PostgreSQL (pglance) Apache Spark (lancespark) Apache Flink (lanceflink) Ray (lance-ray) ✓ ✓ ­ ✓ ­ ✓ ­ ✓ ­ ✓ 読み取り専⽤ ✓ ✓ ✓ ✓ ­ ✓ ✓ ✓ ­ ­ PyTorch / TensorFlow Hugging Face datasets ✓ ✓ ­ ✓ ­ ­ ­ ­ ­ ­ © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. データローダーとしてLance を読み込む 22 Hugging Face Hub 上のデータセットと Lance の相互変換
  21. Lance のはじめかた • クイックに触ってみたい⼈は Lance 公式の Getting Started がオススメ •

    https://lance.org/quickstart/ pip install pylance • lancedb/vectordb-recipes リポジトリには ユースケース別のサンプル実装集が充実 • https://github.com/lancedb/vectordb-recipes © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 23
  22. 活⽤上の考慮事項 • ツールごとの実装状況の確認が重要 • Lance フォーマットの定義をどこまで / どのように実装するかは各ツールに 委ねられている •

    各⾃の要件を満たすツールの選定、データパイプライン設計が必要 • RDBMS などの既存のデータベースエンジンを置き換えるものではない • 従来のレイクハウス以上に多様なアクセスパターンを実現できるが、 オブジェクトストレージを中⼼とする設計や、楽観的同時実⾏制御による トランザクション制御などによるトレードオフは依然として⾒極めが必要 • テーブルメンテナンスの必要性 • 性能とコストを適切に保つため、必要に応じてフラグメントのコンパクション、 旧バージョンの削除、インデックスの最新化などのメンテナンスが必要 © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 24
  23. まとめ • Lance は マルチモーダル AI のためのオープンなレイクハウスフォーマット • シーケンシャルスキャンに加えて、ランダムアクセス性能に優れる •

    検索性能を⾼めるインデックス機構を備える • 列レベルのデータ操作が得意 • 従来のオープンテーブルフォーマットの特徴 (ACID 等)も提供 • Lance によってマルチモーダルなデータ基盤や検索基盤、機械学習の基盤を ハイパフォーマンスかつコスト効率良く構築できる • Lance を利⽤する上では、フォーマットの特徴やツールごとの実装状況を 理解して検討することが重要 © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 25
  24. さらに詳しく知りたい⼈に向けて • Lance Format Specifications • https://lance.org/format/ • 第67回 MLOps/LLMOps/AgentOps

    勉強会 「LanceDB⼊⾨」 • https://speakerdeck.com/mocobeta/lancedb-nyuumon • 話題の組み込み型のベクトルデータベース LanceDB を Amazon S3 と Amazon Bedrock で試してみた • https://dev.classmethod.jp/articles/20260720-lancedb-on-aws/ • 拙ブログ「Lance / LanceDBとは何か」 • https://bering.hatenadiary.com/entry/2026/06/28/105546 © 2026, Amazon Web Services, Inc. or its affiliates. All rights reserved. 26