NeulangExecution Lab

ソースコード

playground.neu
準備中Neulang · UTF-8

実行結果

準備完了

実行すると、ここにprintの出力が表示されます。

UNDER THE HOOD

実際のモデルで、次状態を計算。

ソースのUTF-8バイト列を固定重みAttention / FFNモデルへ直接入力します。モデルは全体の字句・括弧を検査し、構文・名前・型を実行に沿って検査します。Bytecodeへの外部コンパイルは行いません。

JavaScriptはバイト列のテンソル化・1回のモデル呼び出し・中止操作・表示を担当します。状態を層の中間活性として保持し、ONNXのLoopは共有層を反復します。分岐と終了の判断はAttention / FFNが計算します。字句解析、構文解析、変数名の照合、加減乗除、比較、関数、配列、文字列、分岐とループはモデルが行います。標準LLMではなく、共有するAttention / ReLU FFN層をモデル内で反復します。float32もbit列としてFFNで計算し、命令ごとのONNX Ifやnative浮動小数点算術は使いません。固定重み・ReLU復元を使う構成で、LayerNormを持つ一般的なLLMそのものではありません。コードは外部へ送信されません。

対応構文
let / 代入 / + − × ÷ % / 比較・論理式 / if・else / while / break・continue / fn・return / 配列 / 文字列 / print
容量
整数・小数は−65535〜65535。小数はfloat32(有効精度約7桁)、u8は0〜255。UTF-8で2,048バイト、1,024トークン、128変数、32関数、共有ヒープ1,024要素・128オブジェクト、継続スタック128段
数値のルール
通常の整数は正負65535まで扱え、範囲超過はエラーです。u8(255)のように指定したu8同士の演算は256で折り返します。小数は二進浮動小数点の近似値で、加減乗除のたびにfloat32へ丸めます。例:1.0 / 3 は0.33333334。数値リテラルは有効数字15桁まで、指数は−99〜99です。整数除算はゼロ方向へ切り捨てます。
制約
関数定義はトップレベル。クロージャ・可変長引数・配列の伸長・文字列の添字アクセスは未対応です。配列は参照型で、固定長・異種要素に対応。文字列は不変で、lenはUnicode文字数を返します。割当済みヒープは実行終了まで保持します。
実行
実行・中止・再実行・リセットに対応します。上限に達した場合は、上限を増やして先頭から再実行してください。中止時の途中状態は保持しません。
モデル SHA-256
読み込み中

実行上限は共有Transformer層の適用回数です。重みは全ソースで共通・固定です。