|
データホエール データホエールの共有 概要: AI PC、編集者: Machine Heart Llama 2 を Windows 98 Pentium II マシンで実行すると、39.31 tok/秒の出力で成功しました。 この PC はおそらくあなたよりも古く、26 年前のハードウェアで、Intel Pentium 2 CPU と 128 MB の RAM を搭載しています。 このプロジェクトは、EXO Labs という組織による、Llama モデルが 26 年前のハードウェアで実行できるのであれば、どこでも実行できるということを実証するという大胆な試みでした。 これが真実であることを証明するため、EXO Labsはビデオを公開しました。ビデオでは、古い350MHz Elonex Pentium 2コンピューターでWindows 98を起動し、Andrej Karpathy氏が開発したLlama2.cをベースにしたカスタムの純C推論エンジンを起動し、LLMにスリーピー・ジョーに関するストーリーを生成するよう指示する様子が映っています。 驚いたことに、それは成功し、ストーリーは非常に早く生成されました。 <iframe class="video_iframe rich_pages" data-vidtype="5" data-mpvid="wxv_3790494513865621513" data-cover="http%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FKmXPKA19gW88AHyH5XaIoyRT4Ra6 xSLJ80CQj6QtmoZeTiaMan0KTgk4SrADapPiaib6hXl5E06iakib7csL8la5ZlA%2F0%3Fwx_fmt%3Djpeg" allowfullscreen="" frameborder="0" data-ratio="0.5630865484880083" data-w="1080" style="border-radius: 4px;" data-src="https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_3790494513865621513"></iframe> しかし、前述の驚くべき偉業は、EXO Labsの究極の目標からは程遠いものです。9月に正式に設立されたこのやや謎めいた組織は、「人工知能を誰もが利用できるようにすること」を使命としています。この組織は、オックスフォード大学の研究者とエンジニアで構成されています。つまり、EXOは、文化、真実、そして社会の根源的な側面において、少数の大企業が人工知能をコントロールすることは非常に危険なことだと考えています。そのため、EXOは最先端のモデルを学習し、誰でもどこでも利用できるオープンなインフラストラクチャを構築したいと考えています。こうすることで、一般の人々が事実上あらゆるデバイスでAIモデルを学習・実行できるようになります。そして、Windows 98で大規模なモデルを実行しているこの驚異的な状況は、(極めて)限られたリソースで何ができるかを示すデモンストレーションに過ぎません。 読者の予想通り、EXOはプロジェクトの基盤として、eBayで古いWindows 98 PCを簡単に入手しました。しかし、ハードウェアは揃ったものの、克服すべきハードルは数多く残っていました。EXOによると、古いハードドライブへのデータのインポートは大きな課題だったため、古き良きFTPサーバーを使ってマシンのイーサネットポート経由でファイルを転送しなければならなかったとのことです。 しかし、より大きな課題は、最新のコードをWindows 98用にコンパイルすることでした。幸運なことに、EXOはAndrej Karpathy氏のllama2.cプロジェクトを見つけました。このリソースと、古いBorland C++ 5.02 IDEとコンパイラ(若干の調整を加えたもの)を使えば、コードをWindows 98互換の実行ファイルにコンパイルして実行することができました。 <iframe class="video_iframe rich_pages" data-vidtype="5" data-mpvid="wxv_3790522884657577988" data-cover="http%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_jpg%2FKmXPKA19gW88AHyH5XaIoyRT4Ra 6xSLJX22cLJAaOicibAtVnEkNkZCm05icdMf7lpIFdWR9MvRsrMe9a7hbdcCTQ%2F0%3Fwx_fmt%3Djpeg" allowfullscreen="" frameborder="0" data-ratio="0.5630865484880083" data-w="1080" style="border-radius: 4px;" data-src="https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_3790522884657577988"></iframe> コードはオープンソースです。 プロジェクトアドレス: https://github.com/exo-explor... この研究をより深く理解していただくために、EXO Labsはブログ記事も執筆しました。このブログ記事では、具体的な実装プロセスについてご紹介しています。 ハードウェア設定 まず、マシン本体が必要です。Windows 98 Pentium II搭載のコンピュータをeBayで118.88ポンドで見つけました。 私は eBay でこの黄ばんだデスクトップ コンピュータを見つけました。Windows 98 Pentium II、128MB の RAM を搭載、価格は 118.88 ポンドです。 最新の周辺機器と連携させるのが最初の課題でした。USBキーボードとマウスが動作しなかったのです。解決策は、昔ながらのPS/2インターフェースに戻すことでしたが、一つ問題がありました。マウスはポート1、キーボードはポート2に接続する必要があるのです。設定を逆にしても動作しません。 背面パネルには、PS/2 ポート、シリアル ポート、そして後に不可欠であることが判明した重要なイーサネット ポートがありました。 ファイル転送: FTPに戻る 次の課題は、ファイルをマシンに転送することです。モデルの重み、トークナイザーの設定、そして推論コードを転送する必要があります。最新のソリューションはすべて失敗しました。
結局、昔ながらのFTPがうまくいきました。FTPは長年下位互換性を保っていたことが分かりました。M4 MacBook ProでFileZilla FTPサーバーを動作させ、Windows 98マシンにイーサネット(USB-C - Ethernetアダプターを使用)経由で接続し、固定IPアドレスを設定することで、コマンドラインから直接ファイルを転送できるようになりました。 手動 IP アドレス (192.168.1.1) を使用して MacBook の USB-C イーサネット アダプタを設定し、Windows 98 と通信します。 ネットワークを設定したら、接続を確認する必要があります。簡単なpingテストで、マシン同士が通信できることを確認できます。 成功しました。Windows 98 マシンと MacBook 間の接続遅延は 1 ミリ秒未満です。 ネットワーク接続を確立したら、いよいよFTPを使ってファイルを転送できます。ここで問題となるのは、実行ファイルがバイナリモードで転送する必要があると判断されるまで実行されないことです。解決策は簡単です。FTP CLIで「binary」と入力するだけです。 stories260K.bin モデル ファイルをバイナリ モードで FTP 経由で転送します。 コンピレーションチャレンジ Windows 98で最新のコードをコンパイルするのは非常に難しいです。最初は、Windows 98/Pentium II向けに最新のC++をコンパイルできるとされているmingwを試しました。しかし、行き詰まりました。おそらく、CMOV命令がPentium Proより前のバージョンではサポートされていなかったことが原因でしょう。 そこで私たちは昔ながらのアプローチを選びました。26年前の統合開発環境兼コンパイラであるBorland C++ 5.02は、Windows 98上で直接動作しました。唯一の問題は、サポートしているC/C++のバージョンが非常に古いことでした。最新のC++は論外でしたが、C言語は数十年間ほとんど変化していませんでした。C言語の最大の変更は1999年(C99)だったので、残念ながら私たちはそれを見逃してしまいました。古いバージョンのC言語の主な制限は、変数を「どこでも」宣言できないことでした。すべての変数は関数の先頭で宣言する必要がありました。 26 年の歴史を持つ統合開発環境である Borland C++ 5.02 は、今でも十分に仕事をこなすことができます。 カルパティが救世主 これはAndrej Karpathy氏のllama2.cを彷彿とさせます。700行の純粋なC言語で書かれたこのプログラムは、Llama 2アーキテクチャのモデルで推論を実行できます。完璧なプログラムですが、Pentium IIでWin98を実行するには、まだ多少の調整が必要です。
このプロジェクトのコードは、GitHub の llama98.c にあります。 成功しました! Windows 98 で実行されている 260K パラメータの Llama モデルが Sleepy Joe に関するストーリーを生成しました。 結果 ついに動作しました!GPUを使わず、Pentium II CPUだけで実行した結果がこちらです。 Llama 3.2 1Bの結果は、メモリに適したモデルの断片化とディスク読み取りベンチマークを実行するベンチマークに基づいています。Llama98.cは、実環境でのテストのために、より大規模なモデルを実行できるようにオフロード関数を追加して拡張されています。 ChatGPTの速度には及ばなかったものの、あらゆる最新AIモデルを20年以上前のCPUハードウェアで実行できるようにすることは、私たちのミッション達成に向けた重要な一歩です。Windows 98でC++を実行する方法に関する素晴らしいブログ記事を投稿してくれたChris Wellons氏に深く感謝いたします。 未来:BitNetとその他 BitNetは、あらゆるハードウェアで真に実行可能な最先端モデルの有望な方向性を示しています。BitNetは、3値重みを用いるトランスフォーマーアーキテクチャです。各重みは0、-1、1のいずれかの値を取り、各重みに必要なビット数はわずか1.58ビット(log₂(3) ≈ 1.58)です。この単純な変更は、次のような重要な意味を持ちます。 Matmul は 3 値重みの追加になります (Ma et al. 2024)。 0 を掛けると省略記号、1 を掛けると加算、-1 を掛けると減算となるため、一般的な行列の乗算はすべて加算と減算になります。 これを実行することの利点は明らかです。
EXOでは、長年にわたり三元モデルの開発に取り組んできました。2024年4月には、Appleチップ上で効率的に動作するMLX-BitNetをリリースしました。2024年のICMLカンファレンスでは、タンパク質言語モデリングのためのBitNet実装を初めて実演し、現在、タンパク質モデリング向けのより大規模なBitNetモデルを開発中です。 大規模なオープンソースのBitNetモデルはまだ存在しませんが、3値モデルこそが人工知能の未来だと信じています。2025年には3値モデルの学習を開始する予定です。 それからどうする? 古いハードウェア上でAIモデルを実行するための取り組みがさらに進むことを期待しています。メモリ使用量の最適化から、限られたハードウェア上で効率的に実行できる新しいアーキテクチャの検討まで、やるべきエンジニアリング作業は数多くあります。 古いハードウェア(古いMac、ゲームボーイ、モトローラのスマートフォン、あるいは古いRaspberry Piなど)でモデルを実行することに興味がある方は、コードをチェックして、Discordの#retroチャンネルに参加してください。人工知能の未来は、巨大なデータセンターに閉じ込められる必要はありません。既存のハードウェアで実行できるのです。 参考リンク: https://blog.exolabs.net/day-4/ |
成功!26年前の旧式の携帯電話で大規模モデルを実行!
関連するおすすめ記事
-
AI時代においては、ユニコーンではなく、1日あたり平均消費量の10億トークンに注目してください。
-
20か国以上に拠点を置き、海外への納入と受注が1万件を超えるJishi Automotiveのグローバル化戦略は、広州モーターショーで新たなレベルに到達しました。
-
1時間歩くだけで300元稼げる!テスラの最新求人広告は、株式ボーナスなどの福利厚生も含め、目を見張る内容。ネットユーザーからは「1日12時間歩いても大丈夫」といったコメントが寄せられた。
-
KCC@ShenyangとopenKylinが共同でオープンソース愛好家サロンイベントを開催します。皆様のご参加をお待ちしております!
-
アンドリュー・ン教授が新しいコースを始めました!しかも、自ら教えています。
-
イーロン・マスクが視覚障害者をターゲットに、ニューラリンクの次世代脳コンピューターインターフェース製品が承認される。