1. 「関数の副作用の有無」よりも大事なもの
関数の副作用についてコンパイラー最適化の観点から論じた技術記事。単純な「副作用あり/なし」より、具体的にどの最適化が可能かを分類することが重要と主張。
主なトピック:
- 不要コード削除: 結果を使わない場合の計算消去が可能か
- 実行順変更: 関数呼び出しの順序を入れ替えられるか
- 共通部分式削除: 同じ関数呼び出しを1回にまとめられるか
- 例外処理: 例外を投げる可能性と最適化の関係
- その他: Haskell, C23, GHC等の実装例 etc...
- (コード例あり)
2. Software 3.0 時代を楽しく生きる
Andrej KarpathyのSoftware 3.0概念を解説し、LLM時代のソフトウェアエンジニアの在り方について考察。プロンプトこそが新時代のプログラミング言語という視点。
主なトピック:
- Software 1.0/2.0/3.0: 従来コード、ニューラルネット、LLMの進化
- LLM OS: LLMをOSのような基盤として捉える概念
- post training: 既存モデルの調整による個人カスタマイズ
- エージェント設計: 完全自律より部分自律が現実的
- その他: プロンプトエンジニアリング、fine-tuning、電力アナロジー etc...
適切なプロンプトを書いたりエージェントを設計しようとすると、LLM の内部を理解しておく必要がでてきます。 なぜコンテキストサイズが決まっているのか、どうしてチャットで全履歴を都度送るのか、なぜ先に言ってしまったことに引きずられてしまうのか。
3. 将棋AIの大会をめちゃめちゃにできる定跡が発見された
角換わり定跡で千日手に誘導できる局面が発見され、将棋AI大会の公平性に重大な問題が発生。中堅チームが上位チームを狙い撃ちできる状況に。
主なトピック:
- 千日手定跡: 先手が高確率で引き分けに持ち込める局面
- 大会荒らし: 中堅チームの結託による上位チーム狙い撃ち
- 定跡公開: たややんさんの自動定跡生成による発見と公開
- 対策困難: 持ち時間短縮で再対局ルールが実現困難
- その他: dlshogi対応、ペタショック定跡、強豪イジメ etc...