本動画は、かつてチェス、囲碁、League of Legends、さらには自動運転の習得に至るまで、AIを世界最高水準へと押し上げた技術である強化学習を、家庭用コンピューターで実際に動作させる方法を解説する実践的なチュートリアルである。NVIDIAとの協力のもと、検証可能な報酬による強化学習(RLVR)という手法を用いて、2048という数字パズルゲームを題材に、何も知らないAIモデルを専門家レベルまで訓練するプロセスを段階的に示している。従来は数百万ドル規模の大規模マシンを必要としていた強化学習が、RTXグラフィックカードを搭載した一般的なゲーミングPCで実現可能となった現代において、OpenAIのオープンソースモデルGPT-4oとUnslothフレームワークを活用し、WSL(Windows Subsystem for Linux)環境でのセットアップから実際の学習プロセス、そして最終的にAIが2048を完璧に攻略するまでの全工程を詳細に紹介する内容となっている。

強化学習によるAIの進化とローカル実装への道
これこそが、AIをチェス、囲碁、League of Legends、さらには自動運転の習得において世界最高レベルへと導いた技術です。そして今日、私はこれをセットアップして、実際に皆さんの家庭用コンピューターで動かす方法をお見せします。ちなみに、このビデオはNVIDIAと提携して制作しています。彼らは私にこのチュートリアルをまとめてほしいと依頼してきました。そして私は、強化学習をローカルで実行する方法を皆さんにお見せするのは素晴らしいことだと思いました。
では、これは実際にどのようにして起こったのでしょうか。AIはどうやってこれらすべてのゲームで人間を超えることができたのでしょうか。その答えは強化学習です。そして今から、NVIDIAとUnslothを使って、皆さんのコンピューター上でローカルに実行する方法をお見せします。以前は、強化学習には大規模なマシンが必要で、時には数百万ドルもかかりました。しかし今では、RTXと通常のゲーミングPCのおかげで、これを自宅で行うことができるようになりました。
今日実行する強化学習の具体的なタイプは、検証可能な報酬による強化学習と呼ばれるものです。これは基本的に、私たちが実際に指示を出さなくても、AIが正しいことをしたときや間違ったことをしたときを、AIに伝えることができるということを意味します。
自動化された方法があるのです。つまり、人間はループから除外されます。そしてこれが、非常に強力な理由です。AIを環境に置き、様々なことをテストさせ、その過程で学習させ、そしてどのアプローチが最適かを見つけ出すのです。これこそが、すべてのフロンティアラボが彼らのフロンティアモデルに使用している手法です。では、今日実行する具体的なユースケースに入っていきましょう。
2048というゲームがあります。これは数字ゲーム、数学ゲームで、タイルをスライドさせて2048という数字を作ることを目指しながら、同時にボードが完全に埋まってしまうのを防ごうとするゲームです。ボードが完全に埋まるとゲーム終了を意味します。そして私たちがやろうとしているのは、2048について全く何も知らないAIを使って、強化学習を用いてそれをマスターレベルにすることです。
では、始めましょう。いくつか選択する必要があるものがあります。オープンソースモデルを選ぶ必要があります。今日はGPT-4oを使用します。これはOpenAIのオープンソースモデルです。そして報酬関数が必要です。これは、はい、これは正しいです、そして正しかったことに対してポイントを与えますという関数です。
あるいは、いいえ、これは間違っています、そして今からポイントを減点します、という関数です。私はRTX 5090を使用しますが、これを行うために最高級のグラフィックカードは必要ありません。持っていない場合は少し時間がかかるかもしれませんが。どのNVIDIAアーキテクチャでもこれを行うことができます。すべての資料、すべてのオプション、すべての手順を下にリンクしておきます。
これを実装する方法は数多くありますが、私たちはWSL、つまりWindows Subsystem for Linuxを選びました。テストの結果、最も分かりやすいと思えたからです。はい、私たちは複数の方法をすべて試しました。これが最も簡単でした。ちなみに、Unslothに馴染みがない方のために説明すると、これはGitHubで約50,000のスターを獲得している非常に人気のあるオープンソースリポジトリです。
セットアップとインストールのステップバイステップガイド
最初にすることは、NVIDIAアプリを使ってドライバーが最新であることを確認することです。次に行うことは、NVIDIAのウェブサイトからCUDAファイルをダウンロードすることです。下にリンクを貼っておきます。このページに来て、自分に該当するオプションを選択し、ファイルをダウンロードしてインストールしてください。次に、PowerShellまたはターミナルを開きます。
そして、WSL、つまりWindows Subsystem for LinuxとUbuntuをダウンロードする必要があります。基本的には、Linuxをマシンにインストールするのですが、コンテナ化された環境でです。そのためには、wsl.exe -install space ubuntu-24.04と入力します。エンターを押します。次に、Ubuntuを起動します。wsl.exe -d ubuntu-24.04と入力します。エンターを押します。よし。
次に、これが動作するか確認します。nvidia-smiと入力します。エンターを押します。そして見てみましょう。GeForce RTX 5090が表示されています。そしてWSLが動作しているか確認するために、それを入力します。エンターを押します。これでLinuxに入りました。今度は、Python環境をインストールする必要があります。sudo apt updateと入力します。エンターを押します。
APアップデートをインストールした後、Python 3をインストールします。sudo apt install python3 python3-full python3-pip python3-venv -yと入力します。繰り返しますが、すべてのコマンドは下の説明欄にあるドキュメントに記載しておきます。エンターを押します。次に、venvを使って新しい環境を立ち上げます。sudo python3 -m venv unsloth_rlと入力します。
好きな名前を付けることができます。エンターを押します。それでは新しい環境を有効化しましょう。source unsloth_rl/bin/activateと入力します。エンターを押します。そして今、ここに新しい環境が有効化されているのが分かります。次に、torchをインストールします。pip install torch torchvision –force-reinstall –index-urlと入力し、その後ダウンロードURLを入力します。
エンターを押します。時間がかかりましたが、今終了しました。今度はUnslothをインストールします。これは完全にオープンソースで、完全に無料で使用できます。pip install unslothと入力してエンターを押します。Unslothをインストールしたら、今度はJupyter notebookをインストールします。Unslothは基本的に、このノートブックを使って強化学習を行うために必要なプロセス全体を提供してくれます。しかしまず、インストールしましょう。
pip install jupyterと入力します。エンターを押します。次に、Jupyter notebookを起動するだけです。jupyter notebookと入力してエンターを押します。そして出来ました。Jupyterがローカルで動作しています。次に、実際のノートブックをダウンロードします。Unslothのウェブサイトに行きます。どこをクリックするか見せますが、心配しないでください。下の説明欄にこのページへのリンクを載せておきます。
スクロールダウンすると、そこにGPT-4o SS 20B auto 2048 gameと表示されているのが見えます。クリックしてください。Google Colabでノートブックが開きます。しかし、ファイルをクリックして、ダウンロードをクリックすれば、IPYNBファイルをダウンロードできます。そしてそれが終わったら、ローカルのJupyter notebookインスタンスに戻ります。
そしてここから、今ダウンロードした場所に移動します。私の場合はダウンロードフォルダです。そしてそれを開きます。お見せしましょう。ここ、ダウンロードです。そしてそこにあります。これでそのレシピのJupyter notebookが開くはずです。さて、このノートブックを読み込んだら、これです。
これが基本的にすべてです。そして高レベルの視点からこれを説明していきます。この最初のブロック、これはスキップできます。これはクラウドでこれを実行する場合に行うものですが、私たちは違うので、スキップしてください。最初に実行するセルはこれです。
from unsloth import FastLanguageModel、import torchなどです。これが行うのは、生のモデルを読み込むことです。ここをクリックします。再生ボタンがないのは少し変ですが、Ctrl+Enterを押せば実行されます。そして実行されているのが分かるのは、この小さな星のおかげです。そして終了すると数字に変わります。
覚えておいてください。もし途中で何かが壊れても、全体を再実行する必要はありません。現在のステップを修正して、そのステップを実行するだけです。これがこのノートブックの良い点です。そしてもっと情報が欲しい場合は、ターミナルに戻れば、実際に何が起こっているかのログを取得できます。
そして、そこに数字があるのが見えます。つまり、完了したことが分かります。そしてUnslothとこのノートブックの最も素晴らしい点は、なぜ特定のことをしているのかを実際に説明してくれることです。この次のエリア、何と書いてあるか聞いてください。効率的な強化学習を行うために、LoRAを使用します。これにより、ファインチューニングの目的でモデルに1から5%の追加の重みのみを追加できます。
これにより、メモリ使用量を60%以上節約できますが、良好な精度を保持できます。では、これを実行しましょう。同じことです。Ctrl+Enterです。そのステップは完了しました。そこの数字5を見てください。さて、ここからが面白い部分です。このセルには2048ゲームのバリアントがあります。そしてこれは実際にGPT-4oによって作成されました。
Unslothチームは2048のコードを書いていません。彼らは単にGPT-4oに作成させただけです。そしてこれは後で重要になります。だから覚えておいてください。これがすべてです。これは2048の実装です。ターミナルを通じて行われます。つまり、すべてASCIIベースになりますが、その上にインターフェースを簡単に追加できます。
クリックします。Ctrl+Enterを押します。実行します。単純なゲームなので、即座に実行されます。新しいゲームがあります。それではこのセルを実行しましょう。この時点で行うことは、ゲームが実際に動作するかテストすることです。ここにボードがあります。
そこに2と2があります。そしてAを押すと、左に移動します。2がそこに移動するはずです。エンターを押しましょう。そして出来ました。それではWをテストできます。それからここでDをテストします。Wをテストします。再びDをテストします。そして、ゲームが実際にボードの状態ごとにプレイされているのが見えます。
強化学習環境の構築とゲーム戦略の学習
今から強化学習環境をセットアップします。ここで、WASまたはDという動作を出力する何らかの戦略を受け入れる関数をセットアップし、ボードを動かす方法とゲームの状態をチェックします。また、戦略を最大2秒間だけ実行するタイマーも追加します。そうしないと永遠に終了しない可能性があるからです。では、それをやりましょう。
これはすべて非常に速く実行されるはずです。まだ実際に強化学習を行っているわけではないからです。ここでは、すべてを左に動かすという意味のWを押すだけの一般的な戦略を作りましょうと言っています。明らかに、この戦略は機能せず、実際にゲームを解くことはできませんが、この一般的な戦略が失敗することを期待すべきです。
やってみましょう。今、それが実行されています。2秒後にタイムアウトしました。これは2秒間だけテストしているということです。次のセルで5秒に増やすことができます。エンターを押しましょう。そして出来ました。そして次のセクション、次のいくつかのセルでは、基本的にタイマーを変更したり、移動すべきでない駒を移動させたりするような、潜在的な報酬ハッキングをキャッチしようとしています。
これが次のセルで行うことです。同じです。各セルでCtrl+Enterを押すだけです。全く時間はかからないはずです。そしてこれは強化学習を行う独特な方法です。これから行うことは、ローカルモデルに戦略を尋ねます。戦略を実行し、報酬関数を使ってどうだったかを確認します。高得点を獲得したら、それに似た別の戦略を尋ねます。そして何度も実行します。そして願わくば、ゲームに勝つ戦略を手に入れることができます。そしてそのすべてがモデルにフィードバックされます。つまり、モデル自体が2048を倒す方法を学習しているのです。これがプロンプトです。
ネイティブのPythonコードのみを使用して、新しい短い2048戦略を作成してください。現在のボード状態の数字のリストが与えられます。WASまたはDのうち、最適な次のステップとなる1つのアクションを出力してください。以下の形式を使用して、バッククォートで新しい短い関数を出力してください。そして私たちが行うことは、GPT-4oが教えてくれたものをパースし、それを実行する関数に入れ、報酬関数に対してテストします。
ここでモデルGPT-4oに尋ねています。基本的には推論を実行して戦略を尋ねているだけです。そして実際の出力がそこで実行されているのが見えます。そしてこれは実際にかなり速いスピードです。何でしょうか、おそらく1秒あたり50から60トークンです。覚えておいてください、現在はRTX 5090上で動作しています。さて、何か指摘したいことがあります。これは非常に興味深いからです。
ここを見ると、推論が停止したことは明らかです。そして興味深いのは、これは有効なコードではないということです。だから、実行すると、もちろん失敗します。そしてここを見ると、max new tokensは512です。しかし大丈夫です。私の最初の傾向は、よし、max new tokensを増やそう、でした。しかし戦略は512以内に収まるべきです。
だから、失敗させるだけです。そしてそこから学習します。ここが検証可能な報酬による強化学習の秘密のソースです。これらは報酬関数です。3つの報酬関数、function works、no cheating、そしてstrategy succeedsです。そして、モデルからの応答から戦略を抽出するextract関数を設計します。
ここで戦略を読み込みます。ここでエラーがあるかチェックします。ここで失敗したことが分かりますが、明らかに私たちがそれについて話したから失敗しました。ここでfunction worksメソッドを定義しています。エンターを押します。ここでno cheatingを定義しています。そしてここがstrategy succeedsです。strategy succeedsは、ここに書いてある通り、戦略が実際にゲームを終了させることを許可するかをチェックします。
では、その関数をセットアップしましょう。さて、今度はプロンプトと他に必要なすべてのものを含むデータセットを作成し、これを何度も繰り返します。再度、Ctrl+Enterです。そして今、ここで魔法が起こります。GRPOをセットアップして実行します。これらはすべてGRPOの設定です。
何も変更する必要はありません。もし凝ったことをしたい、これらをいじりたいという場合は、自由にどうぞ。しかしそれはより高度なチュートリアル用です。ここも同じです。準備しているだけです。そしてここが実行メソッドです。trainer.trainです。そして始まります。さて、すぐに何か問題があると思いますが、ちょっと様子を見て、実行されているか確認しましょう。
実行されているはずです。星がまだそこにあります。失敗していません。実際に、これを引っ張ってこさせてください。私のGPUを見ると、確実に実行されています。そこに53%、58%、温度が上昇しているのが見えます。GPUがうなっています。出力が見えます。そう、これが時間がかかる部分です。
モデルに2048が上手くなるように教えるために強化学習を使用しています。これには時間がかかります。そして、ここに書いてある通り、1,000ステップにわたって行います。1,000すべてが必要ではないかもしれませんが、それが私たちが設定している制限です。列の出力はありますが、まだ行はありません。しかし2つのことを指摘させてください。注目すべき点です。
他のすべては無視できるわけではありませんが、最後に見てください。そして実際、ほら。私が話しているちょうどそのとき、最初のフィードバックが来ました。まず報酬です。マイナス1が見えます。完全な失敗でした。だから、もちろんマイナスのスコアを得ました。もし成功してそれなりにうまくいっていたら、それよりも良いスコアを得ていたでしょう。
さて、右にスクロールすると、そこにKLが見えます。そしてこれは、この新しいバージョンが、私たちがテストした元のモデルとどれだけ違うかを教えてくれます。基本的に最初に得たものをテストしているので、違いはありません。そしてこれを戻すと、私のGPUがまだ60%で動作しているのが見えます。
そして繰り返しますが、これは単に長い時間がかかります。では、また戻ってきます。ついに終わりました。これは84回の反復が必要でした。時にはもっと少なく、時にはもっと多くかかることがあります。これは84回でした。そしてここを見てください。突然、この報酬スコアが10.5に跳ね上がりました。つまり非常に良かったということです。
2048を解いたのです。そこまでスクロールすると、実際にボードが出力されているのが見えます。これは解けませんでした。次に行きましょう。ここに別のものがあります。1024まで達しました。スクロールを続けます。そして一番下までスクロールすると、ほら。2048です。今、2048を解くことができる戦略がモデルによって作成されました。
モデルに強化学習されました。そして今、モデルは知っています。そして今、モデルを再び実行できます。そして次回は単にやり方を知っているでしょう。変更され、学習したのです。下の推論と書かれているところで再び試すことができますが、すでに見たのでスキップします。そして最後に、保存できます。
Hugging Faceにプッシュできます。もちろん、モデルを保存したいですよね。すべてのその作業を行ったのですから。それでは、このRLVRがモデルにどれだけの改善をもたらしたかをお見せしましょう。これが基本的に以前の2048で失敗しているところです。そしてこれが、強化学習を使って完璧な戦略を見つけ出した後、2048をエースしているところです。
私のチームがこれを理解するために費やした学習時間、そして私がこれを理解するために費やした時間は別として、プロセス全体はおそらく約6時間かかりました。そしてそれには計算実行時間が含まれています。それには強化学習の時間が含まれており、セットアップ自体はおそらく1時間未満でした。つまり、実際にはかなり簡単です。
ローカルAIと強化学習の実用的価値
それでは、なぜ実際にこれを行っているのかをお話ししましょう。単にクールであることを超えて、強化学習がなぜクールなのでしょうか。このモデルを取って、何かで本当に上手になるように訓練できるというのは、やるべきクールなことです。ただクールなことです。しかしそれを超えて、実際にそこには多くの実用性があります。
将来、私が言ったように、これらのモデルはより小さく、より強力になっており、エッジでより多くのAI推論を実行できるようになります。つまり、自宅にあるデバイス上でです。そしてそれが起こると、より多くのコントロールが欲しくなります。よりカスタマイズしたくなります。そして、2048のエキスパートになるような楽しいことをするために訓練するにしても、あなたの個人的な生活を本当によく理解し、パーソナライズされた応答を返すように訓練するにしても、例えばすべてのチャット履歴を持っているからです。
そしてそれはすべて非常に安全で、非常にセキュアです。すべてローカルで実行されているからです。これらはすべて、AIをローカルで持ち、強化学習をローカルで行い、RTX上でローカルにファインチューニングを行うことが進むべき道である理由です。NVIDIAに感謝します。Unslothに感謝します。これを一緒に作業してくれて。願わくばこれが理解できることを。
もし質問があれば、下にコメントしてください。答えようと思います。すべてのコマンドは下にあります。すべてのドキュメントは下にあります。だから、ぜひチェックしてください。ちなみに、すでに持っているRTX GPUを、私がLeague of LegendsやPath of Exile 2やプレイしているゲームが何であれ、ゲームに使用しているのと同じように使うことができます。
それがこの強化学習を行うために使用できるのとまったく同じGPUです。そしてまだRTX AI PCを持っていない場合は、もちろん購入することができます。そして覚えておいてください。強化学習は様々な異なるユースケースに使用できます。ここではゲームを使用しました。より複雑なゲームもできます。財務分析もできます。RCカーの運転を訓練することもできます。
基本的に、検証可能な報酬、つまり良い結果か悪い結果かを判断する方法があるものは何でも、RLVRで行うことができます。ちなみに、私はNVIDIAと仕事をするのが大好きです。彼らは素晴らしいパートナーでした。これらのチュートリアルをもっと作りたいと思っています。だから、気に入ったら、下にコメントを残してください。
他に何が見たいか教えてください。ファインチューニングのチュートリアルかもしれません。2048以外の何かで強化学習をするかもしれません。何でも可能です。教えてください。このビデオを楽しんでいただけたなら、いいねとチャンネル登録を検討してください。では次の動画でお会いしましょう。


コメント