Repolode
chenglou

chenglou/handwired

通常のJavaScriptの制御フローを、手書きの重みを持つ微分可能な行列乗算ネットワークに変換する研究プロジェクト。

スター
1,773
フォーク
146
未解決の Issue
9
最終コミット
3 日前

これは何?

Handwiredは、if-else分岐、ループ、状態を含む通常のJavaScriptプログラムを、浮動小数点数に対する行列乗算とReLUだけで構成されるニューラルネットワークに変換します。条件分岐は算術演算に書き換えられます。たとえば両方の分岐を計算し、ReLUから導いた指標で一方を選ぶことで、生成されたネットワークは元のプログラムとまったく同じ出力を再現します。

重みは学習させるのではなく手作業で記述するため、トレーニングは不要で、プログラム全体を微分可能な状態に保てます。計算全体は通常のJavaScriptまたはWebGPUで実行できるため、こうした最小限のプリミティブにも既存のGPU最適化手法を適用できます。

このプロジェクトでは、重みを学習可能にしてトレーニングする、固定したプログラムを汎用ニューラルネットに組み込んでエンドツーエンドで学習する、シングルスレッド風のJavaScriptコードをGPUレベルの並列性で実行するといった用途を探っています。デモには、10万件のドキュメントを対象としたJSON検索が含まれます。リポジトリはBunでセットアップされており、デモはオンラインでも利用できます。

主な機能

  • 01if-else、ループ、状態を行列乗算とReLUに変換する
  • 02重みを手作業で記述するため、トレーニングが不要
  • 03プログラム全体を微分可能な状態に保つ
  • 04通常のJavaScriptまたはWebGPUで実行できる
  • 05ライブデモと、10万件のドキュメントを対象とするJSON検索の例を収録

ユースケース

  • プログラムをニューラルネットワークとして表現する方法を研究する
  • 固定したプログラムロジックをニューラルネット内で学習させる実験をする
  • 通常のJavaScriptコードをGPU並列で実行する方法を探る

クイックスタート

  1. 1

    リポジトリをクローンする

    git clone
  2. 2

    依存関係をインストールする

    bun install
  3. 3

    デモをローカルで実行する

    bun start

使う前に知っておきたいこと

  • コンセプトの実証を目的とした研究プロジェクトであり、本番環境向けのライブラリではありません。
  • デモの実行にはBunランタイムが必要ですが、任意であるとは記載されていません。

トピック

よくある質問

handwired とは?
通常のJavaScriptの制御フローを、手書きの重みを持つ微分可能な行列乗算ネットワークに変換する研究プロジェクト。 Handwiredは、if-else分岐、ループ、状態を含む通常のJavaScriptプログラムを、浮動小数点数に対する行列乗算とReLUだけで構成されるニューラルネットワークに変換します。条件分岐は算術演算に書き換えられます。たとえば両方の分岐を計算し、ReLUから導いた指標で一方を選ぶことで、生成されたネットワークは元のプログラムとまったく同じ出力を再現します。
handwired は無料で使えますか?ライセンスは?
handwired は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
handwired は今もメンテナンスされていますか?
活発にメンテナンス中。handwired の最終コミットは 2026年10月17日 です。
handwired は何に使えますか?
プログラムをニューラルネットワークとして表現する方法を研究する 固定したプログラムロジックをニューラルネット内で学習させる実験をする 通常のJavaScriptコードをGPU並列で実行する方法を探る
handwired のインストール方法は?
リポジトリをクローンする: git clone 依存関係をインストールする: bun install デモをローカルで実行する: bun start
handwired はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/chenglou/handwired

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト