ggml-orgチームは、ストライド付きテンソルビューのメモリ範囲を確認する方法を変更したllama.cpp b12102をリリースしました。従来のチェックでは、行が重なっていても参照元の範囲内に収まるビューが拒否される一方、ストライドが広く参照元の範囲を超えるビューが許可されることがありました。
今回の更新では、ビュー関数からストライドをテンソルのコンストラクターに渡し、ビューが実際にアクセスするバイト数をチェックするようになりました。また、ストライド付きビューの開始位置が、最初の次元で連続する要素であることをアサートします。ビルドパッケージは、macOS、Linux、Android、Windowsなど向けに公開されています。
なぜ重要か
llama.cppを使う開発者にとって、検証方法の見直しにより、範囲外のテンソルビューがチェックをすり抜けるのを防げる可能性があります。リリースノートでは、モデルの性能への影響は数値化されていません。