Apple 武石さんが、Foundation Models に関する情報を盛んに共有してくださり興味深々。まさにこれまでの試行錯誤の過程でも課題の中心にいる、トークンウィンドウの上限について tips を共有されていたのが目を引いた。
RAG実装における注意にも言及されており、筆者はありものでラクしようと Core Spotlight を活用しようとしているのだが、ここではトークンウィンドウの制限を正攻法的?にクリアしようというアプローチについて言及されている。
- データソースを分割
NLContextualEmbeddingでMLTensor化- 質問も同様に処理
- ベクトルの近いものをピックアップし、FMプロンプトに渡す
NLContextualEmbedding
A model that computes sequences of embedding vectors for natural language utterances.(自然言語の文に対して埋め込みベクトルのシーケンスを計算するモデル。)
NLContextualEmbedding | Apple Developer Documentation
MLTensor
A multi-dimensional array of numerical or Boolean scalars tailored to ML use cases, containing methods to perform transformations and mathematical operations efficiently using a ML compute device.(機械学習(ML)のユースケースに特化した数値またはブール型のスカラーからなる多次元配列で、ML計算デバイスを使用して変換や数学的演算を効率的に実行するためのメソッドを含む。)
MLTensor | Apple Developer Documentation
質問ベクトルと近い上位のチャンクに絞って Foundation Models に渡すということっぽい? RAG をきちんと理解する上でこの辺の知識は抑えてみたい。
このあたりの記事がおおいに参考になりそう。
- マルチリンガルな自然言語モデルの紹介 – WWDC23 – ビデオ – Apple Developer
- [iOS 17] NLContextualEmbedding のベクトルを用いて文章検索を行う|shu223
ちなみに、これも武石さんのポストで知ったのだが、Apple Japan にて Foundation Models に関する対面式のセッションがあるらしい(2025/09/09-11)。これも申し込んでみたので、参加資格を得られたらこのあたりの相談をしてみたい。