paint-brush
イーサリアムとイーサリアムスウォームにおける集合的AIの概念@thebojda
617 測定値
617 測定値

イーサリアムとイーサリアムスウォームにおける集合的AIの概念

Laszlo Fazekas11m2024/07/15
Read on Terminal Reader

長すぎる; 読むには

将来、人工知能は今よりもずっと私たちの日常生活の一部になると思います。AI は私たちの一部になります。携帯電話の代わりに、すべてを記録するカメラとすべてを聞くマイクを備えたスマートグラスを着用します。ローカルで実行される言語モデルや他のエージェントと継続的に対話し、微調整を通じて時間の経過とともに私たちのニーズに適応します。ただし、これらのエージェントは私たちと通信するだけでなく、コミュニティ全体で生成された集合的な知識を常に活用して、互いに通信します。このシステムは人類を集合知の形に組織化しますが、これは非常に重要なことです。この集合知が単一の企業または団体の所有物になることは受け入れられません。そのため、上記で概説したシステム、または同様のシステムが必要なのです。
featured image - イーサリアムとイーサリアムスウォームにおける集合的AIの概念
Laszlo Fazekas HackerNoon profile picture

現在、AI の主要プレーヤーは、オープンソース AI の支持者とクローズド AI の支持者の 2 つの主要なグループに分けられます。


興味深いことに、クローズド AI の最大の支持者の 1 つは OpenAI 自身であり、モデルのソース コードをリリースせず、アクセスのみを提供しています。彼らは通常、これらのモデルを公開するのは危険すぎるため、原子力エネルギーと同様に集中管理が必要であると主張しています。明らかに、この主張には根拠がありますが、この決定の背後にあるビジネス上の利益を見るのは難しくありません。ChatGPT のソース コードがすべての人に利用可能であれば、誰がサービスにお金を払うでしょうか?!


対照的に、Meta (Facebook) などのオープンソース AI の支持者は、クローズド AI は進歩を妨げ、オープンソース AI こそが正しい方向であると考えています。もちろん、ここでビジネス面を見ることも価値があります。Meta にとって、AI モデルは主な製品ではありません。彼らにとって、AI は単なるツールであり、モデルを共有してもビジネス上の不利益にはなりません。それどころか、Meta は後でコミュニティの開発を利用できるため、ビジネス上の利点となります。ただし、このモデルにも小さな問題があります。それは、真のオープンソースではないということです。


AI モデルは、本質的には調整可能なパラメータを持つ巨大な数式です。これらのパラメータはトレーニング プロセス中に設定されます。企業がオープンソース AI について語るときは、これらのパラメータが自由に利用できるようにされ、誰でも自分のマシンでモデルを実行できることを意味します。ただし、完全にオープンソースというわけではありません。


AI の場合、トレーニングは従来のプログラムの構築に似ています。これに基づいて、モデル パラメータはバイナリ ファイルを表します。そのため、Meta、X (Twitter)、その他の企業がモデル ソースを公開する場合、実際には結果を公開しているだけです。


つまり、固定されたアーキテクチャのパラメータ化が得られることになります。アーキテクチャ内の何かを変更または改善したい場合、たとえば、Transformer アーキテクチャの代わりに Mamba アーキテクチャを使用する場合、モデルを再トレーニングする必要がありますが、トレーニング セットがなければこれを行うことはできません。したがって、これらのモデルは微調整のみ可能であり、それ以上開発することはできません。


いわゆるオープンソース モデルは、アーキテクチャが固定されているため、真のオープンソースではありません。これらのモデルは微調整することはできますが、それ以上開発することはできません。そのためにはトレーニング セットも必要になるからです。真のオープンソース AI は、モデルとトレーニング セットの両方で構成されています。


「オープンソース」の AI モデルは、通常、大企業の製品です。大規模なモデルのトレーニングには膨大な計算能力が必要であり、その結果、多額の費用がかかるため、これは当然のことです。このようなリソースを持っているのは大企業だけであり、AI 開発が集中化されているのはそのためです。


ビットコインという形のブロックチェーン技術が分散型通貨の可能性を生み出したのと同様に、企業ではなくコミュニティが所有する真にオープンソースの AI を作成することも可能になります。


この記事は、ブロックチェーン技術を使用して、真にオープンソースでコミュニティ主導の AI を開発する方法についての概念を説明します。


先ほども述べたように、真のオープンソース AI の基盤はオープン データセットです。データセットは実際には最も価値のあるリソースです。たとえば ChatGPT の場合、言語モデルは公開されているデータベース (Common Crawl など) でトレーニングされ、その後のフェーズで人間の支援 (RLHF) によって微調整されました。この微調整は人手がかかるため非常にコストがかかりますが、ChatGPT に強みを与えています。アーキテクチャ自体は (おそらく) 汎用トランスフォーマーまたはその修正版である Mixture of Experts (複数の並列トランスフォーマーを意味する) です。重要な点は、アーキテクチャが特別なものではないということです。ChatGPT (および他のすべてのモデル) をユニークにしているのは、優れたデータセットです。これがモデルに力を与えるものです。


AI トレーニング データセットのサイズは通常数テラバイトで、このようなデータセットに何を含めることができるか、または含めることができないのかは、グループや文化によって異なります。データの選択は非常に重要です。たとえば、大規模な言語モデルの「個性」を決定するからです。大企業 (Google、Microsoft など) の AI モデルが人種差別的な行動をとったために、いくつかの大きなスキャンダルが発生しました。これは、データセットの不適切な選択が原因です。データセットの要件は文化によって異なる可能性があるため、複数のフォークが必要になる場合があります。IPFS や Ethereum Swarm などの分散型のコンテンツ アドレス指定ストレージ ソリューションは、このようなバージョン管理されたマルチフォークの大規模データセットを保存するのに最適です。これらのストレージ ソリューションは、コンテンツから生成されたハッシュを使用して個々のファイルをアドレス指定できる GIT バージョン コントロール システムと同様に機能します。このようなシステムでは、変更のみを保存すればよく、2 つのデータセットの共通部分は単一のインスタンスに保存されるため、フォークを安価に作成できます。


適切なデータセットが揃ったら、モデルのトレーニングに進むことができます。


はじめに述べたように、AI モデルは本質的には多数の自由パラメータを持つ巨大な数式です。一般的に、モデルの自由パラメータが多いほど「スマート」であるため、パラメータの数はモデル名に示されていることがよくあります。たとえば、llma-2-7b モデルは、モデル アーキテクチャが llma-2 であり、70 億のパラメータがあることを意味します。トレーニング中、これらのパラメータはデータセットを使用して設定され、モデルは指定された入力に対して指定された出力を提供します。トレーニングにはバックプロパゲーションが使用され、偏微分を使用して最も適切なパラメータが検索されます。


トレーニング中、データセットはバッチに分割されます。各ステップでは、特定のバッチが入力パラメータと出力パラメータを提供し、バックプロパゲーションを使用して、特定の入力から特定の出力を正確に計算するためにモデルのパラメータをどのように変更する必要があるかを計算します。このプロセスは、モデルが目的の精度を達成するまで、特定のデータセットで複数回繰り返す必要があります。精度はテスト データセットで確認できます。


大企業は、トレーニングに膨大な計算能力が必要となるため、大規模な GPU クラスターでトレーニングを実施します。分散型システムでは、個々のノードが信頼できないという追加の課題があり、信頼性の低さには常にコストがかかります。この信頼性の低さが、ビットコインのエネルギー消費が小国並みである理由です。ビットコインは、信頼性の代わりに計算能力を使用する Proof of Work コンセンサスを使用します。個々のノードを信頼する代わりに、ネットワーク内の悪意のあるノードよりも善意のノードの方が計算能力が高いと信頼します。幸いなことに、Ethereum で使用されている Proof of Stake など、賭けられたお金が計算能力ではなく信頼性を保証する他のコンセンサス メカニズムがあります。この場合、大きな計算能力は必要なく、エネルギー需要と環境への影響が大幅に低減されます。


分散型トレーニングでは、トレーニング ノードとリクエスター間の信頼関係を置き換える何らかのメカニズムが必要です。 考えられる解決策の 1 つは、トレーニング ノードがトレーニング プロセス全体のログを作成し、サード パーティである検証ノードが特定の時点でログをランダムにチェックすることです。 検証ノードがトレーニングに満足できると判断した場合、トレーニング ノードは提示された支払いを受け取ります。 検証ノードはログ全体をチェックすることはできません。そうするとすべての計算をやり直すことになり、検証の計算要件がトレーニングの計算要件と同じになってしまうからです。


もう 1 つのオプションは、ノードが計算を正しく実行したと仮定し、誰でも反証できるチャレンジ期間を設ける楽観的ソリューションです。この場合、計算を実行するノードはより大きな金額 (ペナルティ) を賭け、計算を要求するノードも金額 (報酬) を賭けます。ノードは計算を実行し、結果を公開します。その後にチャレンジ期間 (たとえば 1 日) が続きます。この期間中に誰かがランダム チェックで計算のエラーを見つけて公開すると、その人はコンピューティング ノードによって賭けられたペナルティを受け取り、要求者は報酬を受け取ります。チャレンジ期間中に誰も計算が間違っていることを証明できない場合、コンピューティング ノードが報酬を受け取ります。


ゼロ知識証明の変種として zkSNARK があり、これも誰かが計算を実行したことを検証するのに適しています。この方法の主な利点は、検証を安価に実行できることですが、証明の生成は計算集約的なタスクです。この方法は、より単純な計算でも非常にコストがかかるため、AI トレーニングにはトレーニング自体よりも大幅に多くの計算リソースが必要になるため、現時点ではこの目的に使用することはできないでしょう。とはいえ、zkML は活発な研究分野であり、将来的には、第三者が SNARK を検証するスマート コントラクトに置き換えられる可能性も考えられます。


上記から、計算を検証するためのソリューションがいくつかあることは明らかです。これらに基づいて、ブロックチェーンベースの分散型トレーニング支援システムがどのように構築されるかを見てみましょう。


このシステムでは、データセットは DAO を通じてコミュニティによって所有されます。DAO は、データセットに含めることができるデータを決定します。メンバーのグループが決定に同意しない場合は、DAO から分離して新しい DAO を形成し、既存のデータセットをフォークして独立して構築を続けることができます。したがって、DAO はデータセットとともにフォークされます。データセットはコンテンツ アドレス分散ストレージ (例: Ethereum Swarm) に保存されるため、フォークは高価ではありません。データセットの保存はコミュニティによって資金提供されます。


トレーニング プロセスも DAO によって制御されます。DAO を通じて、余剰の計算能力を販売したいトレーニング ノードが登録できます。申請するには、スマート コントラクトにステークを配置する必要があります。ノードが計算中に不正行為を試みた場合、このステークは失われます。


リクエスト者は、トレーニングするデータセットとモデルを選択し、報酬を提供します。オファーは公開されているため、どのトレーニングノードでもタスクの実行を申請できます。トレーニングノードは、トレーニングプロセスの完全なログを作成します。各エントリはバッチのトレーニングに対応します。エントリには、入力、出力、重みマトリックス、およびすべての関連パラメータ (ドロップするデータを選択するためにドロップアウト層で使用されるランダムシードなど) が含まれます。したがって、ログに基づいて計算全体を再現できます。


前述のように、計算を検証するにはいくつかの方法があります。最も単純なのは楽観的アプローチです。この場合、リクエスタは報酬をスマート コントラクトに配置し、トレーニング ノードはトレーニング ログを公開します。公開後、計算を検証するために指定された時間枠 (例: 1 日) が利用できます。この時間内にリクエスタまたは他の誰かが特定のステップが間違っているという証明を提出した場合、トレーニング ノードはステークを失い、リクエスタは報酬を取り戻します。この場合、正しい証明を提出したノードがステークを受け取り、全員が計算を検証するように動機付けます。誰もそのような証明を提出しない場合は、トレーニング ノードは時間切れ後に報酬を受け取ります。


簡単に言えば、これがシステムの仕組みです。もちろん、いくつかの疑問が生じます。

データセットのトレーニングと保存にかかる費用は誰が負担するのでしょうか?

システムのビジネス モデルは、Linux ビジネス モデルなどのほとんどの無料オープンソース ソリューションと同じです。企業がモデルを必要とし、それが無料オープンソースであることに問題がない場合は、独自のモデルをトレーニングするよりも、これに投資する方がはるかに費用対効果が高くなります。10 社が同じ言語モデルを必要としているとします。モデルがオープンであることに問題がない場合は、各社がトレーニング費用の全額を支払うよりも、10 分の 1 ずつ支払う方がはるかに経済的です。トレーニングの基礎となるデータセットにも同じことが当てはまります。トレーニング モデル用のクラウドファンディング キャンペーンを作成して、モデルの将来のユーザーが開発に貢献することもできます。


クラウドでモデルをトレーニングする方が安くないですか?

このようなシステムでは価格が市場によって規制されるため、これに対する明確な答えを出すことは困難です。それは、ユーザーが利用できる無料の計算能力がどれだけあるかによります。私たちはすでにビットコインでコミュニティの力を目にしてきました。ビットコイン ネットワークの計算能力は、どんなスーパーコンピューターの計算能力も上回っています。クラウド プロバイダーは利益を生み出す必要がありますが、このような分散型システムでは、ユーザーは余った計算能力を提供します。たとえば、強力なゲーミング PC を持っている人は、プレイしていないときに余った能力を提供できます。この場合、サービスが使用するエネルギーよりもわずかに多くを生成する場合、ユーザーにとってはすでに価値があります。さらに、従来の方法では利用できない無駄なエネルギーが世界中にたくさんあります。その一例は、火山によって生成される熱エネルギーです。これらの場所には通常、確立された電力網がないため、使用可能な電力を生成するのに適していません。このエネルギーをビットコイン マイニングに使用しているスタートアップはすでにあります。それを「インテリジェンス マイニング」に使用しないのはなぜでしょうか?この場合、エネルギーは事実上無料なので、ハードウェアのコストのみをカバーすれば済みます。したがって、このような分散型システムでのトレーニングは、クラウドでのトレーニングよりもはるかに安価になる要因が多数あることは明らかです。


推論はどうでしょうか?

AI モデルを実行する場合、プライバシーは非常に重要な問題です。大規模なサービス プロバイダーは当然、データを機密に扱うことを保証しますが、ChatGPT との会話を盗聴する人がいないと確信できるでしょうか。サーバーが暗号化されたデータに対して計算を実行できるようにする方法 (準同型暗号化など) がありますが、これには高いオーバーヘッドがあります。最も安全なソリューションは、モデルをローカルで実行することです。幸いなことに、ハードウェアは強力になってきており、AI を実行するための専用のハードウェア ソリューションがすでにあります。モデル自体も大幅に改善されています。研究によると、多くの場合、量子化後でもパフォーマンスはそれほど低下せず、重みを表すために 1.5 ビットしか使用されない極端なケースでもパフォーマンスが低下しません。この後者のソリューションは、最もコストのかかる演算である乗算を排除するため、特に有望です。したがって、将来的には、モデルとハードウェアの開発により、人間のレベルを超えるモデルをローカルで実行できるようになる可能性があります。さらに、LoRA などのソリューションを使用して、これらのモデルを好みに合わせてカスタマイズできます。


分散した知識

もう 1 つの非常に有望な方向性は、検索拡張生成 (RAG) です。これは、「語彙知識」がベクトル データベースに保存され、言語モデルが与えられた質問に対してこのデータベースから適切なコンテキストを収集することを意味します。これは、私たち人間の機能と非常によく似ています。明らかに、誰も語彙全体を記憶しているわけではありません。質問されたら、必要な知識がどこにあるかを知っていれば十分です。関連するエントリを読んで解釈することで、一貫した回答を提供できます。このソリューションには多くの利点があります。一方では、より小さなモデルで十分であり、ローカルで実行するのが簡単であり、他方では、言語モデルの大きな問題である幻覚を最小限に抑えることができます。さらに、モデルの知識は、ベクトル データベースに新しい知識を追加するだけで、再トレーニングなしで簡単に拡張できます。Ethereum Swarm は、分散型ストレージ エンジンであるだけでなく、通信ソリューションでもあるため、このようなベクトル データベースを作成するための理想的なソリューションです。たとえば、グループ メッセージングを Swarm 上で実装して、シンプルな分散型ベクトル データベースを作成できます。ノードは検索クエリを公開し、他のノードは関連する知識を返すことで応答します。


概要: Ethereum と Swarm 上での LLM OS の実装

LLM OS のアイデアは、Andrej Karpathy が Twitter で公開したアイデアに由来しています。LLM OS は、大規模な言語モデルを中心とした仮想的なオペレーティング システムです。ブロックチェーン ベースの分散システムでは、これをユーザーのノードで実行されるエージェントと見なすことができます。このエージェントは、他のエージェントや従来のソフトウェア 1.0 ツールと通信できます。これには、電卓、Python インタープリター、さらには物理的なロボット、車、スマート ホームの制御が含まれます。私たちのシステムでは、ファイル システムは Swarm によって表され、共通の知識にアクセスできる Swarm 上にベクトル データベースが作成されます。システム全体 (エージェントの集合) は、集合知の一形態として見ることができます。

将来、人工知能は今よりもずっと私たちの日常生活の一部になると思います。AI は私たちの一部になります。携帯電話の代わりに、すべてを記録するカメラとすべてを聞くマイクを備えたスマートグラスを着用します。ローカルで実行される言語モデルや他のエージェントと継続的に対話し、微調整を通じて時間の経過とともに私たちのニーズに適応します。ただし、これらのエージェントは私たちと通信するだけでなく、コミュニティ全体で生成された集合的な知識を常に活用して、互いに通信します。このシステムは人類を集合知の形に組織化しますが、これは非常に重要なことです。この集合知が単一の企業または団体の所有物になることは受け入れられません。そのため、上記で概説したシステム、または同様のシステムが必要なのです。