TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

【読書ノート】効果検証入門〜正しい比較のための因果推論/計量経済学の基礎

書籍「効果検証入門〜正しい比較のための因果推論/計量経済学の基礎」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 嘘っぱちの効果とそれを見抜けないデータ分析 要約 効果検証は、ビジネスにおいて重要な意…

【読書ノート】ALL for SaaS SaaS立ち上げのすべて

書籍「ALL for SaaS SaaS立ち上げのすべて」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 Part 1 SaaSを取り巻く環境 Chapter 1 SaaSの概要 要約 SaaSは「Software as a Service」の略で、ソフトウェアをクラ…

【読書ノート】Lean Software Development: An Agile Toolkit

書籍「Lean Software Development: An Agile Toolkit: An Agile Toolkit」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 Introduction 「リーンソフトウェア開発」は、ソフトウェア開発のリーダーのための思考…

大規模言語モデルで将棋AIを作る

先日、dlshogiをPyTorch Lightningに対応させてマルチGPUで学習できるようにした。 これは、より大規模なモデルで将棋を学習するための布石でもある。Transformerを使ったLLMで使われている技術を将棋に応用することを計画している。 「Deep Learning Shogi…

【読書ノート】Kaggleに挑む深層学習プログラミングの極意

書籍「Kaggleに挑む深層学習プログラミングの極意」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 はじめに 本書は、画像やテキストを用いるKaggleコンテストでの著者らの知見を体系的にまとめたものである。第…

【読書ノート】GitLabに学ぶ 世界最先端のリモート組織のつくりかた

書籍「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 はじめに 本書は、リモート組織を実現するためのノウハウをGitLabのHandbookを基に解説し、誰もが再…

【読書ノート】機械学習エンジニアのためのTransformers

書籍「機械学習エンジニアのためのTransformers」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 第1章 入門Transformers いる。さらに、Transformer系モデルのGPTとBERTが紹介され、自然言語処理の分類、固有表…

【読書ノート】スーパーインテリジェンス 超絶AIと人類の命運

書籍「スーパーインテリジェンス 超絶AIと人類の命運」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 第1章 人工知能の発展、現在の能力 人類の脳の進化により、言語、技術、複雑な社会組織が発達し、人類は地…

【読書ノート】System Design Interview : Mastering Basic Introduction to System Analysis and Design

書籍「System Design Interview : Mastering Basic Introduction to System Analysis and Design」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 CHAPTERごとの要約 CHAPTER 1: SCALE FROM ZERO TO MILLIONS OF…

【読書ノート】プロダクトマネジメントのすべて 事業戦略・IT開発・UXデザイン・マーケティングからチーム・組織運営まで

書籍「プロダクトマネジメントのすべて 事業戦略・IT開発・UXデザイン・マーケティングからチーム・組織運営まで」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 PART Ⅰ プロダクトの成功 Chapter 1 プロダクト…

【読書ノート】私たちはどう学んでいるのか――創発から見る認知の変化

書籍「私たちはどう学んでいるのか――創発から見る認知の変化」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 要約 はじめに 人は日々の生活の中でさまざまな経験を重ね、認知的変化を遂げる。本書ではこうした…

【読書ノート】SCRUMMASTER THE BOOK 優れたスクラムマスターになるための極意――メタスキル、学習、心理、リーダーシップ

書籍「SCRUMMASTER THE BOOK 優れたスクラムマスターになるための極意――メタスキル、学習、心理、リーダーシップ」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 要約 CHAPTER1 スクラムマスターの役割と責務 …

【読書ノート】科学的根拠に基づく最高の勉強法

書籍「科学的根拠に基づく最高の勉強法」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 要約 はじめに 本書は、科学的に根拠のある効果の高い勉強法について、心理学や脳科学の研究によって得られた客観的な証…

【読書ノート】Clean Architecture 達人に学ぶソフトウェアの構造と設計

書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を読んだので、内容をまとめた。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。 まえがき・第I部 イントロダクション まえがき ソフトウェアシステムの構造を決定するルールは…

【読書ノート】最適輸送の理論とアルゴリズム

Stable Diffusion 3は、Flow Matchingが使用されており、Flow Matchingは最適輸送とも関連するということなので、積んでおいた「最適輸送の理論とアルゴリズム」を読んだ。数式をほとんど読み飛ばして読んだまとめである。 以下の内容は、ほとんどClaude3 Op…

【読書ノート】エリック・エヴァンスのドメイン駆動設計

最近、ソフトウェア開発を行っているので、ソフトウェア設計に関する勉強をしている。 「エリック・エヴァンスのドメイン駆動設計」を読んだので、内容をまとめた。 以下の内容は、ほとんどClaude3 Opusで書いている。 概要 第1部 ドメインモデルを機能させる…

dlshogiのPyTorch Lightning対応 その5(Warm-upに対応したスケジューラ)

大規模なモデルの学習に効果があるとされる学習率スケジューリングの手法にWarm-upがある。 しかし、Pytorchの標準のスケジューラには、Warm-upに対応したスケジューラが提供されていない。PyTorch Lightning Boltsには、Warm-upに対応したCosineAnnealingLR…

dlshogiモデルの枝刈りを試す

前回、深層強化学習において、モデルの枝刈りによりスケーリングが可能であることを示した論文を紹介した。dlshogiの強化学習でもモデルの枝刈りが効果があるか試したいと考えているが、まずはモデルの枝刈りのみを行って、精度と探索速度にどう影響するかを…

【論文】In deep reinforcement learning, a pruned network is a good networkを読む

DeepMindがarXiv上で発表した、深層強化学習のモデルを段階的な枝刈りすることでモデルサイズのスケーリングが可能になることを示した「In deep reinforcement learning, a pruned network is a good network」を読んだ際のメモ。 概要 深層強化学習はモデル…

dlshogiのPyTorch Lightning対応 その4(8GPUで学習)

前回、dlshogiをPyTorch Lightningを使用した並列学習に対応させた、8GPUでどれくらい学習が速くなるか試した。 条件 30ブロック384フィルタのモデル 訓練データ: 35,289,182局面 エポック数: 2 バッチサイズ: 4096 オプティマイザ: AdamW 学習率: 1e-4 (1ep…

dlshogiのPyTorch Lightning対応 その3(DDP)

PyTorch Lightningに対応できたので、DistributedDataParallel によるマルチGPU学習を試してみた。前回未対応だった、勾配クリッピングはconfig.yamにgradient_clip_valを記述するだけで対応できた。 また、モデルのエクスポートもon_train_end()で実装した…

dlshogiのPyTorch Lightning対応 その2(EMA)

前回、dlshogiのPyTorch Lightning対応の基本部分を実装した。今回は、EMAを実装する。 EMA EMAは、Exponential Moving Averageの略で、重みの指数移動平均をとり平準化する方法である。dlshogiでは、SWAと呼んでいたが、SWAで使われるスケジューラは使用し…

dlshogiのPyTorch Lightning対応

dlshogiの学習は、PyTorchを使用して、モデルの訓練処理を独自に実装していた。マルチGPUによる分散学習に対応させようと考えているが、独自に実装するより、PyTorch lightningに対応させた方が実装が楽になるため、dlshogiをPyTorch Lightningに対応させた…

【論文】Bridging the Human–AI Knowledge Gap: Concept Discovery and Transfer in AlphaZeroを読む

DeepMindがarXivで発表した、AlphaZeroからチェスの新しい概念を抽出して人間のパフォーマンス向上に使えるようにする方法について述べた「Bridging the Human-AI Knowledge Gap: Concept Discovery and Transfer in AlphaZero」を読んだ際のメモ。 概要 Alp…

【論文】Grandmaster-Level Chess Without Searchを読む

DeepmindがarXivで発表したチェスで探索なしでグランドマスターレベルに達したTransformerベースモデルに関する論文「Grandmaster-Level Chess Without Search」を読んだ際のメモ。 概要 標準的なTransformerのデコーダを教師あり学習することで探索なしでチ…

PokéLLMonの論文を読む

LLM

LLMを使用してポケモンバトルをプレイするPokéLLMonの論文を読んだ際のメモ。 概要 LLMを使用して、ポケモンバトルをプレイするエージェントを作成する。 現在の状態をテキストとして与え、行動を生成する 以前のターンの結果をテキストとして、コンテキスト…

麻雀AIを深層強化学習で作る その11(学習処理)

前回、自己対局で特徴量を作成する処理を実装した。今回は、自己対局で生成したデータを読み込んで学習する処理を実装した。 データ読み込み 自己対局プログラムでzlibで圧縮したデータをPythonのzlibで解凍し、Numpyのndarrayとして読み込む。 C++の構造体…

将棋AIの棋風学習にLoRAを適用 追試

前回、将棋AIのモデルにLoRAを適用して、人間プレイヤーの傾向を学習できることを確かめた。今回、LoRAが通常の追加学習と比較して効率的か比較してみた。 また、序盤、中盤、終盤で傾向に違いがあるか検証してみた。 追加学習と比較 事前学習済みモデルに人…

将棋AIの棋風学習にLoRAを適用

大規模言語モデルやStable Diffusionなどの拡散モデルのファインチューニングには、LoRAという手法が使われることが多い。 全てのパラメータを微調整するよりも効率的に学習できる。LoRAを将棋AIのモデルに適用して、棋風の学習に使えるか試してみた。 将棋A…

LLMを活用した深層学習モデルの改善

前回の記事で、LLMを使用して数学的発見を行うFunSearchの論文を紹介した。FunSearchは、LLMを使用してプログラムの変更を行い、進化的アルゴリズムでスコアの高いプログラムを選別することで、最適な解を出力するプログラムを生成する。この仕組みは、深層…