先日「Decentralized Execution」という記事を投稿しました。それはインターネットの未来において必要な処理の革命について話したものです。その記事のように、私はインターネットが「宇宙をプログラムする」というゴールのために必要なピースを常に考えています。そして近いうちにその一つに取り組み、インターネットを前進させます。
さて、最近ChatGPTを始めとする大規模AIモデルが脚光を浴び始め、Blockchainの下火に代わるようにAIが4度目のブームを迎えようとしています。AIは処理系としては脳神経系や遺伝子伝達をロールモデルとしてプログラム処理をふるまう技術であり「Decentralized Execution」の処理思想に近いものです。元々AIスタートアップでMLエンジニアとして働いていた背景もありますが、そういった観点から今はAIの「分散化」にとても注目しています。
今日は、AIがインターネットの未来においてどのように扱われるか議論したいと思います。特に「分散型AI」のアーキテクチャについての整理に重きを置きます。
AI、すなわち機械学習モデルは脳神経伝達をもとにしたDeep Neural Networkや、遺伝子伝達をもとにしたGenetic Algorithmといった、人間の「機能」にフォーカスを置いています。この取り組みはAIだけのものではありませんが、AIはこれによって爆発的な精度の向上を遂げて成功しました。
インターネットにおけるAIの役割を定義付けるとしたら、それは必ず非中央集権的であるべきです。なぜならインターネットの思想がそうだからであり、非中央集権的でないプロトコルはインターネットの上で機能しないようにできています。
また、ブロックチェーンの功績の一つとしてデータの透明性をもたらしました。これは、誰もが企業のデータベースにアクセスできるようになったということです。今後、取引の量と質が増えていけば、Googleが持つBig Dataに匹敵するデータになります。データがパブリックである以上、学習モデルをいくらプライベートで精度の良いものにしても競合優位性にはなりません。むしろ今後は、学習モデルがパブリックであることと、そのアーキテクチャやインセンティブ設計と開発コミュニティが優位性をもたらします。
今のAIは完全に中央集権的です。AlphaGo, BERT, GPT-3とどれを見ても分かる通り、学習データとモデルは企業に属しています。つまり、モデルはプライベートであり、ブラックボックスです。今後はこれを変える必要があります。
結論として、AIはPublic Goodsであるべきだと考えます。
それではAIがPublicになる条件を考えてみましょう。私が思うに必要な条件はこの3つです。
データの民主化: データを中央サーバではなくBlockchainまたはエンドユーザが保有する
機械学習の分散化: AIの学習/推論を中央サーバではなく分散型サーバが実行する
モデルへのパブリックアクセス: AIモデルへのアクセスを制限しない
これはPublic Chainの思想ととてもよく似ています。ブロックチェーンにおける「台帳取引」を「機械学習」に置き換えたものだという理解が正しいです。
では、そのために現在はどのような課題があるでしょうか。
Privacy Problem: 学習データのプライバシーの保護は適切か
Influence Problem: 学習に必要なデータ量は十分か
Economic Problem: 学習を行なうための経済的インセンティブはあるか
Transparency Problem: AIモデルの動作は中央機関を信頼することなく検証可能か
(IntoTheBlockのMediumから引用)
AIをパブリックにするということは情報漏洩や悪意に晒される危険性が上がります。それはBlockchainの51% Attackと似たような論点です。
みなさんもこれらの課題について深く考えてみてください。次は、これらの課題にアプローチするための技術をいくつか紹介します。
Homomorphic Encryption(準同型暗号化)とは暗号化されたデータに対して計算を実行できるような数学的暗号化です。
ある数字を「暗号化してから計算した結果」と、「計算してから暗号化した結果」が一致するように暗号化します。
これにより、あらかじめデータを暗号化してからAIモデルに学習させることでデータを保護することを可能にします。
Homomorphic Encryptionのライブラリとして標準的なMicrosoft Sealやそれをテンソルデータに応用したTenSealがあります。
ZK-Rollup技術を機械学習に用いることで、学習過程の検証を行なうことができます。
zkMLは「zk Machine Learning」と題し、Ethereum上で機能する機械学習モデルを紹介しています。
彼はmnistという0~9の手書き数字を判別する簡単なDeep Learning Modelを試験用に実装したzk-mnistというレポジトリを公開しているので試してみてください。
mnistのモデル過程を回路として定義し、過程に対してzkSNARKによるsignatureを発行します。validatorはsignatureを検証することで「本当に正しく機械学習した」ということを検証することができます。
Federated Learningは分散型AIの分野で非常に注目されている機械学習アーキテクチャの一つです。
フェデレーテッド ラーニングを使用すると、AIノードの複数の参加者が、相互に信頼したり、中央機関を信頼したりすることなく、AI モデルを個別にトレーニングまたは最適化できます。
Federated Learningのルールはこうです。
エンドユーザが自身のデバイスにMLモデルを持ち、自分のデータが「生まれた」時点で学習を実行する
学習結果を全体に共有する
全体のモデルをアップデートする
これにより、個人情報や機密情報を誰にも知られることなくAIモデルを改善することができます。
ただし、FLにはモデルスペックや、学習プロセスやプライバシーの観点でまだまだ課題が多くあり、研究分野としてホットトピックです。
ここに多くの参考になる論文があります。
Federated Learning Meets Blockchain in Edge Computing: Opportunities and Challenges
A Blockchain-Based Decentralized Federated Learning Framework with Committee Consensus
Federated LearningはBlockchainととても相性がいいだけではなく、IoTや自動運転車などへの活用も提案され始めています。
ブロクチェーンはP2Pノードそれぞれに経済的インセンティブを持たせ、さらにそれをByzantine Fault Torelantな状態に保つ役割を持ちます。
IPFSがFilecoinによってNodeがファイルを一定期間以上保つように進化させたように、NodeがAIモデルを実行するように進化させることを可能に、経済的インセンティブ問題を解決します。
もちろんBlockchainはPublic Goodsのためのコンピュータアーキテクチャでもあります。
この論文では、BlockchainのステートマシンをDeep Q-Learningのステートマシンに見立て、PoWの数学的パズル計算の代わりに機械学習を実行するモデルを提案しています。
Blockのデータ構造に強化学習モデルに必要なAction, State, Rewardの情報を加える
Block生成の度にAIの学習を実行しAction, State, Rewardを更新する
ValidatorはAction, State, Rewardを検証する
モデルのRewardが一番高いモデルをメインチェーンとして選定する
マイニング報酬=Reward
これにより、PoWの計算資源を有効活用すると同時に、機械学習の分散化を実現しています。とてもシンプルで美しいアプローチです。
これらの技術は既にDecentralized AIの分野に取り組んでいるプロジェクトのデファクトスタンダードになりつつあります。ここにそれを実装しているいくつかのプロジェクトを紹介します。
PySyft (OpenMined)
本当は私が考えるDecentralized AIのアーキテクチャをここで紹介したかったのですが、紹介があまりにも長くなったので今日はここまでにします。
Looking forward to getting your feedbacks!