大規模な AI モデルの構築には学習曲線が必要で、時間とリソースの両方を大量に消費します。最近まで、事前トレーニングされた AI のモデルの重みは、10 進数のあいまいな 2 次元配列であると考えられていましたが、それ以上のものがあるとしたらどうでしょうか。
今日は、AI モデルの重みをどのように検討しているかを共有したいと思いますが、最初に、どのようにしてここにたどり着いたのかを見てみましょう。
これらの重要な論文を読みました
ディープ畳み込みニューラル ネットワークによる ImageNet 分類
必要なのは注意力だけです
要点/ハイライト
主な質問
他に行列と高解像度の float 32 データを扱うものは何でしょうか? (TIFF画像)?
異なるタイプの反復子で「重み」をナビゲートするために、大規模で高解像度のデータセットを持つこれらのシステムから同様の手法を再利用できないのはなぜでしょうか?現在の Rust と mmap のパフォーマンスでは、ディスク上に 100 GB のファイルをロードしていますが、CPU のみに制約された小規模なモデルでは、このアプローチが GPU なしで機能する可能性があるかどうかは誰にもわかりません。
どのような技術的要素が不足しているか、開始するために必要ですか?
何
私たちは、以下の重みを抽出し、できれば特定するためのプロトタイプを構築しました。
元のソースのトレーニング データに関連付けます
多くのトレーニング世代にわたる変化
埋め込まれた「重み」として保存されたトレーニング知識の密な 3D フィールドを表しているように見えます (証明されていませんが、これは機能していると思われるテクニックに基づく私たちの仮説です)
なぜ
私たちは、LLM が特別である理由と、この革新的なテクノロジーに重みがどのように適合するかを理解したいと考えました。
LLM 重みが何であるかを確認することに時間を費やすことを選択することで、人間の脳スキャンを分析するためのよく知られた視覚化技術を適用して、重みが何であるかを抽出、特定、再利用、監査できると考えています。
大規模な生成 AI Transformer の重みが広く利用可能になる前は、この種の高密度で高解像度のトレーニング データセットは非常に高価であり、頻繁に共有されることはありませんでした。
どうやって
私たちは、高解像度データの体積分析のためにデジタル信号処理アルゴリズム (DSP) を使用してこのプロトタイプを構築し、分析エンジンを Blender (オープンソースの視覚化ツール) と組み合わせました。
私たちはオープンソースを開発し、AI がどのように学習するかを一から追跡し、Blender を使用して重みがどのようになるかをエクスポートして共有します。
Blender を使用して 3D ボリューム内のモデルの重みを分析することを選択することで、時系列トレーニング データセットをキャプチャするための初期 v1 API を設計できるアニメーション機能が組み込まれました。このトレーニング データセットは、体積データに対する高性能の重み分析を使用して、AI 基礎モデルが各トレーニング フェーズを通じてどのように学習するかをキャプチャすることに重点を置いています。
私たちは、これらのモデルを理解し、AI が構築および監査するようにトレーニングできるように、モデルがどのように見えるかを共有する必要があると考えています。
私たちは、専門家の混合がどのようなものであるかを確認したいと考えています (最新の Dolphin 2.5 Mixtral 8x7B STL/glTF メッシュ バージョンを以下からダウンロードしてください)。
このリポジトリは、生成された AI の重みをプロファイリング、抽出、視覚化、再利用して、より正確な AI モデルを構築し、保存時の重みを監査/スキャンしてリスクの知識領域を特定するためのものです。
注: 今日のバージョンには、既存のモデルの重みをプロファイリング、抽出、視覚化する方法のみが含まれています。 AI モデルがどのように学習するかを視覚化できるようになったので、次は基礎的なモデルのトレーニングです。トレーニングの視覚化は、「bampe-weights リポジトリが numpy、pandas、Blender をどのように統合したか」について新しい AI モデルを教えることから始まります。共有する前に整理しなければならない python/(task,prompt,answer) ファイルが約 190 個あります。
このリポジトリは、時間の経過に伴うモデルの学習の可視化を探索し、抽出された「重み形状」からトレーニング データセットを構築して、新しい AI モデルの重みを構築および予測します (できれば従来のトレーニング方法よりも高速であることが期待されます)。
以下は、Llama 2 7B Chat GPTQ が Blender 内でどのように表示され、このリポジトリを使用して gif としてエクスポートされたものです。
次の Google ドライブ フォルダーには、大規模言語モデル glTF および STL 視覚化の新しいインデックスが含まれています。ファイルの範囲は、約 1 MB から +2 GB です。
新しいモデル/密度を確認したい場合は、お問い合わせください。
STL ファイルが十分に小さい場合、GitHub は 3D メッシュを自動的にレンダリングできます。注: 現時点では、モバイルで GitHub STL を表示するのは理想的ではありませんが、デスクトップでは、マウス ホイールを逆に使用してレイヤーをズームインし、マウスの左/右ボタンで回転することができます。
私たちは 50 MB の制限を超えないよう努め、GitHub 上のリポジトリにアセットを保存します - https://github.com/matlok-ai/gen-ai-datasets-for-bampe-weights/docs/images/blender
コンテナ内のセルフホスト Blender は、生成 AI の重みがローカルでどのように見えるかを確認するのに役立ちます。
エクスポートされた STL/GLB ファイルがすでに含まれている Blender デモ コンテナ イメージ
matlok/blender-ai-demos イメージは LinuxServer Blender イメージから作成されており、ブラウザーで表示できる 3D STL および GLB ファイルが含まれています。 Blender-ai-demos で抽出されたコンテナ イメージはディスク上で 4.0 GB を超え、40 MB を超える STL または glTF ファイルを処理するために約 3 GB の RAM を使用します。
デモの視覚エフェクトは、コンテナー内の次のディレクトリにあります。
/config/bampe-visualizations
ドッカー
docker rm blender; docker-compose -f compose/blender-demos.yaml up -d
ポッドマン
podman rm -t 0 -f blender; podman-compose -f compose/blender-demos.yaml up -d
Linuxサーバーのベースイメージ
LinuxServer/docker-blender イメージ (lscr.io/linuxserver/blender:latest) を実行し、ホストと Blender コンテナー ( .blenderディレクトリ) の間に既にマウントされているボリュームを使用して表示できる新しい STL/GLB ファイルを生成します。 docker-blender で抽出されたコンテナー イメージは、ディスク上で最大 3 GB になります。
ドッカー
docker rm blender; docker-compose -f compose/blender-demos.yaml up -d
ポッドマン
podman rm -t 0 -f blender; podman-compose -f compose/base.yaml up -d
注: 新しく作成されたビジュアル アーティファクト (STL および glTF glb ファイル) は、Blender コンテナ内のこのディレクトリでコンテナが再起動された場合にのみ表示されます。
/config/バンペ
ブラウザで Blender を開く
Blender は次の URL をリッスンしています。
http://ローカルホスト:3000
3D Blender AI ビジュアリゼーションを手動でロードする
Blender がブラウザーで実行されたら、次のメニューをクリックして STL または glTF ファイルをインポートできます。
ファイル
輸入
STLまたはglTF
ファイルは、実行中のコンテナーのバージョンに応じて、 /config/bampeまたは/config/bampe-visualizationsにあります。
Shift + ` を使用してマウスによるナビゲーション モードを有効にし、W、A、S、D を使用して一人称視点で移動します。
Shiftボタンを押し続けるとターボスピードで移動します。
[編集] -> [設定] -> [ナビゲーション] -> [飛行と歩行] -> [歩行] トグル矢印を開きます。
マウスの感度を調整 -> 0.1
歩行速度を調整 -> 20 m/s
このリポジトリは、事前トレーニングされた AI 重みを使用して AI を構築するための代替アプローチを研究するためのものです。これは進行中の作業であるため、コマンド ラインからこれを実行する方法の詳細については、「開発環境のセットアップ」を参照してください。
オンライン ツールを使用して、これらの形状を共有したり表示したりできます。
このリポジトリは、次のプラットフォームでテストされました。