WangNet – 依存関係なしで 11 カ国語に対応した Numberwang の判定機能を提供する、容量 1.8 MB のツール

2026/09/16 4:27

WangNet – 依存関係なしで 11 カ国語に対応した Numberwang の判定機能を提供する、容量 1.8 MB のツール

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

「Numberwang」とは、PyTorch や NumPy のような重厚なフレームワークに依存せずに、テキスト入力が有効な数字を表すかどうかを判定する軽量なニューラルネットワークであり、容量は 1.8 MB です。これは単純な Python スクリプトとして動作し、インタラクティブなコマンドラインインターフェースと、桁、書き言葉による数字、ローマ数字、および他の 11 の言語の処理機能を備えています。そのアーキテクチャには約 80,804 パラメータが含まれており、畳み込み層を使用して文字パターンを分析し、「That's not Numberwang」から「THAT'S NUMBERWANG!」までの 4 つの異なる判定結果のいずれかを実出力します。このシステムは、ほぼ 98% の天井に対して 88.9% の精度(macro-F1 0.896)を達成しますが、注意すべき点として、実際には未見の問題に対する実際の計算を行うのではなく、特定の算術例を記憶しているため、複雑な数学問題ではパフォーマンスが劣ります。この最小限の AI を体現する実験的なコンセプト・オブ・コンセプトは、GitHub または Hugging Face Spaces 経由で MIT ライセンスの下に提供されています(Python 3.8 およびローカルデモ用の

gradio
のインストールが必要)。ただし、これは信頼性の高い数学計算のために用意されている生産環境のエンジンではありません。

本文

Numberwang: 判定する超軽量ニューラルネットワーク

Numberwang の判定を担う小型ニューラルネットワークです。

  • モデルサイズ: 1.8 MB の JSON ファイルのみ
  • 実装言語: 純粋な Python 標準ライブラリ(約 100 行)
  • 依存関係: PyTorch や NumPy を一切使用せず、インストール不要
  • 特徴: コードをクローンするだけで即座に動作します

使用方法

リポジトリの取得と実行

以下のコマンドでリポジトリを取得し、デモを実行します。

git clone https://github.com/GraafHenk/numberwang
cd numberwang
python3 numberwang.py 22

実行結果の例:

  • 数字の場合:
    22... THAT'S NUMBERWANG! (confidence: 99.3%)
  • 文字列(算術式)の場合:
    "45 - 44" → That's Wangernumb! Rotate the board!
  • 数値ではない場合:
    "hello how are you" → That's not even a number.

対話モード

引数を指定せずに実行すると、対話モードが起動します(Ctrl-C で終了)。

$ python3 numberwang.py
Welcome to Numberwang! (ctrl-c で Numberwang を終了できます)
> zweiundzwanzig
zweiundzwanzig... THAT'S NUMBERWANG! (confidence: 100.0%)
> shinty-six
shinty-six... That's not Numberwang. (confidence: 100.0%)

プログラムからの利用方法

ご自身のコード内でモデルを利用する場合は、以下の手順で利用できます。

from numberwang import load_model, wang_probabilities

# モデルをロード
model = load_model("model.json")

# 判定確率を取得 (例: "forty-seven")
probs = wang_probabilities(model, "forty-seven")
# 戻り値: [p_not_numberwang, p_numberwang, p_not_a_number, p_wangernumb]

# 最高確率のクラスを選択
verdict = max(range(4), key=probs.__getitem__)

判定結果の分類

モデルが返す 4 つの判定内容は以下の通りです。

ID判定内容(日本語訳)
0「Numberwang ではありません」
1「THAT'S NUMBERWANG!」(=Numberwang です!)
2「数値でもないため、Numberwang はありえません」
3「Wangernumb です!盤面を回転させてください!」

受け付ける入力の種類と挙動

モデルは多様な入力形式に対応しています。

  • 数字の表記:
    42
    ,
    sixty-six
    ,
    12345
    など
  • 多言語対応:
    zweiundzwanzig
    (独),
    veintidós
    (西),
    tweeëntwintig
    (蘭) 等(アクセント記号は任意)
  • 算術式:
    5*2
    ,
    96 divided by 2
    ,
    twelve plus four
    など(結果に基づき判定)
  • 特殊値: 値が 1 または 44 のものはすべて「盤面を回転」扱い (
    Wangernumb
    )
    • 例:
      45 - 44
      ,
      double four
      ,
      eins
  • 非標準形式:
    -7
    (負数),
    4.5
    (小数),
    £5
    (通貨),
    9:30
    (時刻)など
  • ローマ数字・序数詞:
    XLIV
    ,
    twenty-third
    ,
    22nd
    など
  • 数に由来する語:
    fortnight
    (14 日間),
    september
    (7 ヶ月目) 等
  • 非数値だが「Numberwang」を含む言葉:
    achneming
    ,
    often
    ,
    money
    など
  • 架空の数:
    shinty-six
    ,
    twentington
    なども「数」として扱われる
  • 完全なる数値なし:
    bonjour
    ,
    hello how are you
    などは Numberwang あり得ないと判定

重要: ある数の「Numberwang たる性(wangness)」は、発する言語によらず、その数自体の性質に基づいています。 例:

four
(英),
vier
(独),
quatre
(仏),
cuatro
(西) はすべて同じ判定を受けます。

仕組み

モデルは非常にシンプルかつ軽量な構造を持っています。

  1. 文字列入力: トークナイザーや正規化器を一切使用せず、文字そのものを直接読み込み
  2. ニューラルネットワーク構成:
    • Embedding (32 次元)
    • Conv1d (128 チャンネル, カーネルサイズ 3) → ReLU
    • Conv1d (同上) → ReLU
    • グローバル最大値プーリング
    • Linear (128) → ReLU
    • Linear (4 クラス) → Softmax
  3. 総パラメータ数: 80,804
  4. 知識の格納: 数字演算子、判定用語、11 の言語の表記などはすべて**重み(weight)**に含まれており、
    model.json
    に統合されています。

デモ環境

ホスト版は Hugging Face Spaces で動作しています。ローカルで実行するには:

pip install -r requirements.txt
python3 app.py

※デモ用には Gradio のインストールが必要ですが、モデル自体には不要です。

精度評価

保持された判定データ(テストセット)486 件に対する評価結果です。

  • マクロ-F1 スコア: 0.896
  • 正確率: 88.9%
  • 理論上の上限: 約 98%

注記: トレーニングデータのラベルのうち約 2% は、長年にわたる審査慣行に従い意図的に反転させられています。

クラス精度 (Precision)再現率 (Recall)F1 スコア
not Numberwang0.8200.8850.851
Numberwang0.9190.9000.910
not a number0.9510.8300.886
Wangernumb0.9680.9090.937

算術式の注意点

未见の演算子を含む算術式の精度は 44%–72% と低めです。

  • このネットワークは計算を行わずに暗記しているため、単純な式(
    5*2
    )では信頼性が高いですが、複雑な式(
    904 * 3
    など)は推測となります。
  • 推奨: 算術的な正誤が重要である場合は、まず式を評価して結果を取得し、その値を渡してください。

ライセンス

本プロジェクトは MIT ライセンス で公開されています。 詳細については

LICENSE
ファイルをご覧ください。

※「特定の数が Numberwang に該当するか否か」について、明示的・黙示的な保証は一切ありません。

同じ日のほかのニュース

一覧に戻る →

2026/09/16 4:25

「System One モデルと Jev」の紹介

## Japanese Translation: TypeSafe AI は、即座で誤りのない自動意思決定のために設計された画期的な「System One」モデルである **Jev** を発表しました。従来の言語モデルが単なるテキスト文字列を生成するのに対し、Jev は型安全構造化値を出力し、データの一貫性を確保しながらハルシネーションを排除します。このアーキテクチャ変更は並列サンプラにより支えられており、すべての応答を同時に処理して結果を 70ms から 500ms の範囲で提供可能にしています。これにより既存のツールと比較して最大 200 倍高速化されながら、著しく低いコスト(入力トークンあたり約 0.042 ドルで出力コストはほぼゼロ)を実現しています。システムは、標準的なアライメント手法に依存せず、検証可能な報酬を最優先する「Calibrated Decisions」用の強化学習を用いた専門的なトレーニングを受けました。 カハニーマンの快思考といった認知科学の概念に触発された Jev は、現在のフロンティアモデルと対比して顕著な効率性でベンチマークされています。Jev は、高速ゲームインタラクションや迅速なビッグデータ処理といったリアルタイムアプリケーションを可能にしており、既存のツールに対して最大 200 倍高速化されながらコストは大幅に削減されています。その結果、リアルタイムインテリジェンスに依存する業界では、一貫した信頼スコアと近乎ゼロのレイテンシを提供するシステムへの転換が期待でき、これにより現在の大規模言語モデル展開におけるボトルネックを効果的に解決します。

2026/09/15 21:31

Show HN: 鳥の声に反応して、19 世紀の挿絵風に描く電子ペーパーフレーム

## Japanese Translation: 「Fugleramme」プロジェクトは、ノルウェー・ベルゲンの厨房の窓を、ローカル AI と歴史的自然史のアートを組み合わせることでリアルタイムデジタルバードウォッチングキオスクへと変えます。BirdNET-Go を使用してデバイス上で鳴き声を検出し、公有ドメインソースからの手切りされた 1800 年代の図版として一致結果を Inky Impression e-ink パネルに表示します(アート作品は AI で生成されておらず、一部のものは補正されています)。800 枚以上の切り抜きがあり、400 種以上をカバーし、主にスキャンディナヴィア、英国、中欧の種を対象とし、より広いカバレッジが計画されています。検出された種は背景除去処理され、体格サイズに合わせたテクスチャ付きページに配置され、空のスロットには裸の枝が表示されます。システムは Raspberry Pi 5(推奨)、Inky Impression 13.3 インチディスプレイ、マイク、A4 フレームでローカルで動作しますが、Web キオスクまたは Docker(`ghcr.io/arnegiacomo/fugleramme`)または `install.sh` を通じても動作します。また、ローカルまたはリモートの BirdNET-Go インスタンスをターゲットとすることも可能です。現在は初期開発段階であり、コミュニティからの貢献(修正、ドキュメント、アート作品)を歓迎しており、バグ報告には Discussions を使用し、コード・アート・ドキュメントの変更には PR を使用します。WWF のポスター(Axel Thorenfeldt 氏)や AvianVisitors に着想を得た Fugleramme は、アクセシブルなハードウェアが厳選された公有ドメインのアートを通じて複雑なオーディオデータを可視化する方法を示しています。コードは MIT ライセンス、検出および画像は適切な CC ライセンス(適用可能な場合、非商用制限を含む)の下にあります。 ## Text to translate: The "Fugleramme" project turns a kitchen window in Bergen, Norway, into a real-time digital bird-watching kiosk by combining local AI with historical natural history art. Using BirdNET-Go, it detects bird calls on-device and displays matches as hand-cut 1800s illustrations from public-domain sources on an Inky Impression e-ink panel; no artwork is AI-generated (some is retouched). Over 800 cut-outs cover more than 400 species, primarily Scandinavian, British, and central European, with broader coverage planned. Detected species are background-removed and packed onto a textured page sized by body mass; empty slots show a bare perch. The system runs locally on a Raspberry Pi 5 (recommended), an Inky Impression 13.3" display, a microphone, and an A4 frame, but can also run as a web-only kiosk or via Docker (`ghcr.io/arnegiacomo/fugleramme`) or `install.sh`. It supports pointing at local or remote BirdNET-Go instances. Currently in early development, the project invites community contributions (fixes, docs, artwork) and uses Discussions for bug reports while PRs are for code/art/docs changes. Inspired by a WWF poster by Axel Thorenfeldt and AvianVisitors, Fugleramme demonstrates how accessible hardware can visualize complex audio data through curated public-domain art, with code under MIT and detection/images under appropriate CC licenses (including non-commercial constraints where applicable).

2026/09/16 6:07

ドイツのライネメタルが戦術システム接続用武器プロトコルのオープンソース化を発表

## Japanese Translation: The onboardapi ライブラリは、Object Management Group (OMG) から Data Distribution Service (DDS) によるデータ交換の標準化を通じて、センサーシステムとソフトウェア間の通信を簡素化します。ddkit ツールキットを基盤とし、この C++ ベースのソリューションは OMG の XTypes および XCDR2 エンコーディングを活用してシームレスな相互運用性を確保し、データモデルが進化するに連れて完全な後方互換性を保証します。Java、Python、C#、および .NET 向けのラッパーを通じて多言語統合をサポートし、クライアント/サービスアーキテクチャに関するドキュメント、セットアップガイド、コード例、変更ログ、 browsable データモデルインターフェースを含む豊富なリソースを提供します。このライブラリは、堅牢なクロスプラットフォーム接続を維持することでスケール可能な産業用アプリケーションを可能にします。そのインターフェースは EPL v2.0 ライセンスに基づき、ランタイムライブラリは EULA-RME-SDK-1.0 ライセンスに従います。 ## Text to translate: The onboardapi library streamlines communication between sensor systems and software by standardizing data exchange through the Data Distribution Service (DDS) from the Object Management Group (OMG). Built on the ddkit toolkit, this C++-based solution ensures seamless interoperability via OMG's XTypes and XCDR2 encoding, guaranteeing full backward compatibility as the data model evolves. It supports multi-language integration through wrappers for Java, Python, C#, and .NET, with extensive resources including documentation on Client/Service architecture, setup guides, code examples, a changelog, and browsable Data Model interfaces. The library facilitates scalable industrial applications by maintaining robust cross-platform connectivity; its interfaces are licensed under EPL v2.0, while runtime libraries adhere to the EULA-RME-SDK-1.0 license.