Demoscene でモデルを事前学習した

2026/11/01 3:08

Demoscene でモデルを事前学習した

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

要約▶

Japanese Translation:

2026年10月31日付のこの記事では、HellMood による未完了のデモシーンコードアート(「dweets」)に対する実験が詳述されています。GitHub Sponsors の資金で購入した GPU を利用して、Qwen2.5-Code-7B を基盤として独自モデル Demoscener-7B の学習を行いました。25,000 件の dweets(および約 1,300 件の検証サンプル)で学習されたこのモデルは、継続的な事前学習によりパレックス値が 28.63 から 8.57 に低下し、さらに「awesomeness」が高い dweets(上位 1,000 件でサンプリング確率の約 67%)を優先するカリキュラム学習を経て、5.65 まで低下しました。GRPO を用いた RLHF では、9〜10 ラウンドにわたり手動による約 40,000 アニメーションの選定を行い、サンプリング中に未観測であったプログラムに対しても好ましい続辞を選択しました。友人による盲目テストにおいてチェックポイント 4 が最も favorable と評価され、Mac での推論に用いられています。著者は、同一のコードプレフィックスからの複数の継続を生成・レンダリングし分岐させるインターフェースを開発し、視覚的に巨大な組み合わせ空間(140 文字の制限内での完成案は約 1.5 × 10^54)を探求することを可能にしました。モデルとデータセットは HuggingFace で利用可能です。VLM や HPSv3 は 10,000 番目のアニメーションを検査した際に好意的に言及されましたが、学習は独立して進められました。全体的に、このプロジェクトは大規模言語モデルが高度に特化したコードゴルフの文法を習得でき、AI 学習と人的キュレーションを組み合わせることでデモシーンコミュニティにおける創造的可能性を開花させることができることを示しています。

本文

デモシーンにおける文法発見と自律回帰型モデルによる美学的最適化の探究

1. はじめに:未完成コードへの興味

デモシーニング(demoscening)とサイズコーディング(sizecoding)の世界へ魅了されました。HellMood の MS-DOS デモ「Memories」に出会い、作者が視覚効果を生み出す手法に関心を持つようになりました。同様の効果を再現しようとする試みのため、既存のデモから最もシンプルな例を選び、文字単位の改変を観察する実験を開始しました。

この実験を通じて、以下の発見がありました。

  • 異なる実装手法や過去からの借用アイデアが存在することを確認。
  • Dwitter.net という「140 文字以内の JavaScript デモを扱うサイト」を見つけました。
    • 既存デモ(dweet)のリミックス構築がサポートされており、理想的な環境でした。
    • サイト上で最も好まれた dweet は、「Memories」の並行移動チェッカーボード効果と全く同じ表現を実現していたことが驚きです。
  • ソースコード分析により、以下の特徴が見られました。
    • 大部分が共通するソースから数文字の変更で別の実装になるケース。
    • 全く異なるアプローチで同様の視覚効果を生み出すケースの両方が存在します。

2. 言語学的視点と自律回帰型モデルへの着想

言語学において、有限の語彙と規則による生産性は膨大な表現を可能にします。プログラミング言語もこの性質を共有しており、dweets は以下の点で興味深いです。

  • 同じ部分文字列を含みながら、レンダリング結果が異なる重複構造を持つ。
  • アルファベット 64 種の制限下でも、140 文字プログラムの変更候補は約 $1.5 \times 10^{54}$ も存在する(天文学的な規模)。
    • ただし、そのほとんどは構文的に無効か興味深い結果を生みません。

人間には全組み合わせを検証するのは不可能ですが、部分プログラムの続きには確率的な偏りがあります。

  • 特定の文字や表現が続く確率は不均等で、これは自律回帰型言語モデルの動作原理と一致します。
  • ここで以下のアイデアが閃きました。
    • 自動補完モデルを用いて、未完成 dweet の妥当な続きをサンプリングし、可視化する。
    • 部分的な文字列削除や自らの美的感覚を組み込む試行錯誤を行う。
  • 「完成させること」に挫折してきた経験から、dweets の言語を理解する自動補完機能への期待が高まりました。

3. モデル選定と継続的事前学習(CPT)の実施

データセットの構築

GitHub Sponsors の報酬で購入した GPU を用い、独自のモデルを事前学習(post-training)するプロジェクトを開始しました。

  • 初期試作: Claude Sonnet 5.5 で合成データを作成しましたが、美的に心地よい結果を得られませんでした。
  • 最終データセット: Dwitter.net API を活用して構築。
    • トレーニング用:約 25,000 件の dweets。
    • 検証用:約 1,300 件の dweets。

ベースモデルと課題

ベースモデルとして Qwen2.5-Code-7B を採用しましたが、直ちに結果が得られませんでした。

  • 困難の理由: dweets はコードゴルフや数学的簡略表現を大規模に用いており、汎用的なコーディングモデルとは性質が異なります。
  • 対策: 継続的事前学習(CPT: Continued Pretraining) を施行し、確率分布を dweets の特有の言語へシフトさせました。

トレーニング前後の評価:驚き度(Surprisal)と混乱度(Perplexity)

トレーニング効果を測定するため、トークンごとの驚き度を計算しました。

  • 定義: モデルが特定トークンに割り当てる確率の自然対数の負値(非可能性が高いほど値が大きくなります)。
  • 結果: CPT により、コード全体の驚き度が低下し、特に不慣れな慣用句の予測能力向上が見られました。
メトリックトレーニング前トレーニング後 (30 件保持)変化
混乱度 (Perplexity)28.638.57大幅改善
  • プログラムの一貫性は向上しましたが、いまだに「魅力」が欠けていました。

4. カリキュラム学習による美的スコア化

Awesome ness スコアの活用

Dwitter の「awesome ness スコア」を活用し、学習カリキュラムを設計しました。

  • データランク付け: トレーニング用 25,000 件中、上位 5,000 件を抽出。
  • 重みの漸進的増加:
    • ステップ 0: すべての dweet を等確率でサンプリング(各 バケット 20.00%)。
    • ステップ 400: 上位 1,000 件のみで約 67% のサンプリング確率に集中。

サンプリング確率の変化推移表

トレーニング進行に伴う、各ランクバケットのサンプリング確率変化です。

ランクバケットステップ 1ステップ 100ステップ 200ステップ 300ステップ 400
1–1,000 (最高位)20.00%35.89%48.74%59.01%67.23%
1,001–2,00020.00%27.97%29.60%28.01%24.99%
2,001–3,00020.00%20.03%15.23%10.41%6.75%
3,001–4,00020.00%12.06%5.63%2.41%0.99%
4,001–5,00020.00%4.05%0.81%0.16%0.03%
  • この画期的な転換点后、生成された続きは視覚的に非常に興味深くなりました。
  • 追加的な効果: トレーニング中にサンプリングされなかった dweets でも、混乱度が 7.42 から 5.65 に減少し、全般的な予測精度向上が確認されました。

5. RLHF(強化学習)による美的嗜好の注入

モデルが比較的美しい続きを生成できるようになった後、さらに自らの美的感覚を取り込むため、RLHF(人間によるフィードバックに基づく強化学習) を実施しました。

  • 手法: GRPO アルゴリズムを使用し、自らを報酬関数として振る舞うことを選択。
  • プロセス:
    1. 未完了の dweet に対し、8 組の完了候補をサンプリング。
    2. 隣り合わせでレンダリングし、最も美的に心地よいと感じたものを選択(好まない場合はスキップ)。
    3. 選択結果を報酬としてモデルを更新し、新しい続きをサンプリングして反復。
  • 作業量: 約 9~10 ラウンドを行い、総計で約 40,000 件のアニメーションを手動確認。

外部評価ツールとの接触と移行

トレーニングの途中で VLM や HPSv3 の存在を知りましたが、手動評価の方が深層学習によるフィードバックに適していたため、継続しました。

  • 最終チェック: 友人に 4 つのチェックポイントを提示し、生成デモを盲検テストで評価してもらいました。
    • 結果: チェックポイント 4 が最も好まれたため、これを基に推論を行いました。

6. インターフェース開発と今後の展望

トレーニング終了後、以下の新しい可能性を開発しました。

  • 分岐機能: 同じプレフィックスから複数の続きを生成し、隣り合わせでレンダリングするインターフェースを作成。
    • 目を引いたものから分岐可能。
    • コードを手作業で調整したり、さらに新しい続きを生成して探求を継続できる。
  • 探索のサイクル:
    1. 各分岐は一つの可能な続きを表す。
    2. 視覚比較・手動微調整・再利用が可能。

このように**「可能性を自由に散歩できる」体験**は極めて愛すべきものであり、今後も長く楽しんでいきたいと思います。


関連リソース:

  • デモシーン・7B モデルとデータセットは HuggingFace で入手できます。

同じ日のほかのニュース

一覧に戻る →

2026/11/01 4:56

HackerTube:HN で推奨される動画から構築された YouTube

## Japanese Translation: 最も重要な教訓は、hackertube.org の公開であり、これは「enshittified」化した標準的な YouTube の代替手段です。低品質なコンテンツや誇張されたサムネイルから脱却するために設計されています。AI エージェント(建設には Opus 5.5、フィルタリングには Sonnet を使用)を活用してわずか 2 時間で構築されたこのプロジェクトは、2007 年から 2026 年までの Hacker News のコメントをダウンロードし、信頼できるデータセットにフィルタリングしました。40,000 の歴史的コメントから 150 トピックにわたる 6,454 つの高品質なビデオが生み出されました。プラットフォームはデフォルトのサムネイル(全体の 50% がデフォルト)、アカウント登録やサーバーサイドのトラッキングを必要とせずブラウザ上に保存されるパーソナライズされたローカル推奨機能、そして便利なキーボードショートカットを提供しています。ユーザーはオープンデータセットをエクスポートして独自のバージョンを作成するか、エージェントを使用してさらにパーソナライズすることもでき、コミュニティが独自の信頼性のある推薦エンジン構築を可能にし、アルゴリズムによる摩擦を回避できるようになっています。

2026/11/01 4:16

TCP のUse-After-Free:CVE-2026-98432/CVSS 9.8

## 日本語翻訳: ## まとめ: 認証不要なリモートコード実行を許可する重大なセキュリティ脆弱性、CVE-2026-98432 が発生しており、Linux システムにおける Multipath TCP リッスナーを利用した攻撃が可能です。これは、Go 1.24 以降を実行している環境において特に深刻であり、デフォルトで危険なネットワーク構成を有効にできるようになっています。根本原因は不安定なメモリアクセス管理にあります:RCU(Read-Copy-Update)同期が完了する前に `kfree()` を使用して特定のデータを解放しており、安全な `kfree_rcu()` の代わりにこれを用いることで、ユーザー認証なしでシステムメモリへの操作が可能になっています。

2026/11/01 8:08

電気自動車が女性向けだった時代

## Japanese Translation: 直近の世紀の転換期に、米国自動車業界は急速な拡大を遂げ、メーカー数は 1898 年の約 50 社から 1910 年には数百社に達し、18 万 1 千台の車両を生産しました。1911 年以前、電気自動車は静かに運転でき排気ガスが出ず、バッテリースイッチで即座に始動するため、騒々しい手動クランクが不要だったという点で、ガソリン車に対して明確な優位性を誇っていました。しかし、これらのユーザーフレンドリーな機能にもかかわらず、普及には重大な技術的障壁があり、主としてバッテリーの航続距離の限界と、漏れに苦しむ不安定な鉛蓄電池によるものでした。所有者は充電に 12 時間かかるという大きな不便さに直面し、その際には水銀アーク整流器(ピーター・クーパー・ヒュイットが発明、ペルシー・H.トマスに付与された特許番号 968,896 および 1,163,706)のような巨大な設備を使用したり、車両のプラグイン方法が標準化されていなかったため予備のアダプターを携行する必要があったりと、不便さが伴いました。ゼネラル・エレクトリックはさらに、電気自動車を女性や夜間の自宅訪問をする医師にとって理想的な乗り物としてマーケティングしていました。具体的な例としては、ファニー・グッドナウが Gould Storage Battery Co. から入手した 30 セルの鉛蓄電池に依存し、専用のもので 12 時間の充電が必要となる水銀アーク整流器を使用して、米ドル 2,000(現在の価値で約 7 万 3 千ドル)で 64〜80 キロメートルの航続距離を得ていたことなどが挙げられます。この技術的な脆弱性が大量生産を防ぎ、価格を莫高にし、所有を少数の富裕層に限定していました。さらに、トーマス・エディソンは 1903 年にアルカリ電池を導入しましたが、当初は漏れを起こし、1910 年までに改善されました。エディソン自身も、自社ブランドのバッテリーモデルよりもデトロイト・エレクトリック・ビクトリアを好んでいました。ヘンリー・フォードの有効なモデル T の参入と、業界標準化されたコンポーネントの欠如により、S.R. Bailey & Co. といった初期の製造業者は 1915 年までに事業廃止に追い込まれました(約 500〜600 台の電気車両を生産)。特筆すべきは、ファニー・グッドナウの充電ステーションが商業市場が消滅した後も存続し、2022 年に遺産博物館に寄贈されるまで残ったことです。教訓は明らかです:バッテリーの耐久性を解決し、統一された充電インフラストラクチャを構築しない限り、安価でスケール可能な競争相手に対し、革新ある産業は生き延びることはできません。