
拓海先生、最近「同型暗号で機械学習を暗号のまま動かす」って話を聞きまして、現場で使えるものか気になっております。要するにクラウドにデータを預けても中身を見られないまま計算できる、という理解でよろしいですか。

素晴らしい着眼点ですね!大枠はその通りです。ポイントを三つに分けると、第一にデータを暗号化したまま計算できること、第二にそのための仕組みが複雑で最適化が必要なこと、第三に今回紹介するCHETはその最適化を自動化するコンパイラ兼ランタイムであることですよ。

暗号のまま計算するって、計算がすごく遅いとか失敗しやすいとか聞きますが、現場の生産管理や品質管理に適用できるレベルなんでしょうか。投資対効果がつかめないのが一番のネックです。

大丈夫、一緒に整理できますよ。まず、同型暗号の種類の一つであるFully Homomorphic Encryption (FHE)(完全同型暗号)は理論的に任意の計算が可能です。しかし実装面で計算コストが高い点は変わりません。CHETはそのコストを抑えるためにコンパイラレベルで演算を再構成し、必要な暗号パラメータやデータ配置を自動で決める仕組みなんです。

具体的にはどのあたりを自動化してくれるのですか。設計者が一つ一つ暗号の細かい設定を考えないといけないのではないかと心配しています。

素晴らしい着眼点ですね!重要なのは三点です。第一にテンソルの次元と精度要件から暗号パラメータを決めること、第二に加算や乗算、回転といった暗号特有の演算コストを考慮して演算を配置すること、第三に暗号ライブラリ(例えばHEAAN (HEAAN)(近似数値のための同型暗号ライブラリ))の特性に合わせて最適化を行うことが自動化されます。

計算の並べ替えやデータの再配置でそこまで違うものなんですか。これって要するにアルゴリズムの工夫次第で実用的になる、ということ?

その通りですよ。要点を三つにまとめると、まず暗号化されたままのデータ配置で同じ操作を繰り返すと回転や乗算回数が増えコストが跳ね上がる。次にデータの複製(replica)を使って回転を減らし乗算を削るトレードオフがある。最後にコンパイラがそれを自動で判断して最適な回路を生成することで実用性が向上するのです。

現場への導入イメージがわいてきました。ただ、うちの部署のエンジニアは暗号の専門家ではありません。外注せずに自分たちで回せますか。学習コストや運用負荷が気になります。

素晴らしい着眼点ですね!運用の観点も三点で整理できます。第一にCHETはユーザーにテンソルのスキーマ(入力や重みのサイズ、要求精度)を指定させるだけで多くの選択を自動化するため、暗号の専門知識がなくても扱える。第二にランタイムは暗号化・復号化用の実行可能ファイルを生成するため運用時の負担は限定的である。第三に初期導入は専門家の支援で加速し、その後は設定テンプレートを繰り返し使えるため現場の内製化が現実的であるのです。

なるほど。最後に一つ確認したいのですが、精度やセキュリティの保証はどうなっていますか。誤差が大きくて使い物にならないとか、逆に安全性が担保されないとかは困ります。

素晴らしい着眼点ですね!重要なポイントを三つで示します。第一にCHETは出力の要求精度を入力として受け取り、それを満たすために暗号パラメータを決定するため精度管理が組み込まれている。第二に使用している同型暗号スキームには既知のセキュリティ基準があるため、鍵長などのパラメータ次第で安全性を担保できる。第三に運用では暗号パラメータの設定をレビューする工程を取り入れれば現実的な安全性と実用性のバランスが取れる。

よくわかりました。要するに、CHETは暗号化したままテンソル計算を行うためのコンパイラとランタイムのセットで、精度と性能のバランスをコンパイラが自動で調整してくれるため、専門家がいなくても導入の道筋が立つ、ということですね。


