
7,144 文字

バイブコーディングとは何でしょうか。これは新しいコーディング手法で、基本的にコードを一切書かず、AIに完全にコードを書かせるというものです。「そんなバカな」と手を挙げる前に、人工知能の第一人者であるアンドレイ・カーパシーが最近投稿し、これを絶賛していることをお伝えしましょう。まずはその内容を紹介し、その後実際に試してみます。私は簡単なプロジェクトと、もっと複雑なプロジェクトを作ります。テトリスゲームを作り、機能を追加し、さらにAIにテトリスをプレイさせるための機械学習フレームワーク全体を構築します。そして、これらすべてを1行のコードも書かずに行います。どれほど素晴らしいか、ご覧ください。
こちらがアンドレイ・カーパシーの投稿です。380万回再生されているので、多くの人がこの新しいタイプのコーディングに同意しているようですね。「バイブコーディング」と呼ばれる新しいコーディング方法があります。完全にバイブに身を委ね、指数関数的な進化を受け入れ、コードの存在すら忘れてしまうのです。これが可能なのは、LLM、Cursor、Copilotといったツールが非常に優秀になってきているからです。また、私はCopilotとSuperWhisperを組み合わせて使っているので、ほとんどキーボードに触れる必要がありません。
サイドバーのパディングを半分に減らすなど、とても単純なことを頼むこともあります。面倒くさくて探したくないからです。常にすべての変更を受け入れ、差分は読みません。エラーメッセージが出たら、そのままコピーペーストして、コメントなしで送信します。たいていの場合、それで修正されます。コードは私の通常の理解を超えて成長し、本当に読み込むには時間がかかるでしょう。時々、LLMがバグを修正できないこともありますが、その場合は回避策を探し、ランダムな変更を加えて消えるまで試します。週末のちょっとしたプロジェクトにはそれほど悪くありません。まだかなり面白いですね。
今日は、これをテストしてみましょう。私は少し異なるスタックを使います。Cursorの代わりにWindsurfを使い、アンドレイ・カーパシーと同じくSuperWhisperを使います。SuperWhisperは、非常に優れた音声検出AIツールです。
では、テストを始めましょう。o3 midiを中程度の推論で使用します。SuperWhisperを開いて、始めましょう。
「ログイン認証ページを作成してください」
はい、できました。小規模なFlaskプロジェクトを作成し、ログイン認証ページを含めます。README.md、app.pyなどのファイルを設定しますね。これらのファイルを作成しましょう。
ワークスペースの親フォルダにリポジトリが見つかりました。リポジトリを開きますか?はい、開きましょう。推奨のPython拡張機能をインストールしますか?はい、インストールしましょう。これは初めてWindsurfを使用するためです。すべての変更を受け入れ、考えずに進めます。すでにたくさんのコードが書かれていますね。
では、サーバーを立ち上げてこのアプリを動かしてみましょう。ターミナルを開いてくださいとのことなので、そうしましょう。CDコマンドで移動し、仮想環境をアクティベートします。要件をインストールしますね。これは全てコピーペーストで、何も考えていません。
最初の問題に遭遇しましたが、そのままコピーしてペーストし、エンターを押すだけです。1つのファイルの確認が必要ですが、確認せずにすべて受け入れます。要件を再度インストールし、app.pyを実行します。
うまくいきました。ユーザー名とパスワードのログインページができました。ここで止まらず、さらに進めましょう。
「このページにGoogleの認証を追加してください」
Windsurfとカスケードを使用すると、1つのファイルだけでなくプロジェクト全体を変更できるのが良いですね。これはCursorとは少し異なります。
エラーが出ましたが、編集はまだ終わっていないので、待ちましょう。差分や変更点は見ずに、結果だけを見て動作するかどうかを確認します。
セットアップを完了するには、依存関係を更新してflaskを追加してくださいとのことです。
フォルダを開いたところ、Windsurfが再起動してしまい、変更が一部しか適用されていない状態になってしまいました。どうなるか見てみましょう。問題があれば修正してもらいます。
「flaskモジュールが見つかりません」というエラーが出ました。エラーをコピーペーストするだけです。正しい仮想環境にいないことはわかっていますが、AIに正しい方法を教えてもらいましょう。
教えてくれませんでしたね。では、ここで仮想環境をアクティベートしましょう。Python app.pyを実行しますが、flask-danceがないようです。
同じ問題が続いているようです。コピーペーストしましょう。Pythonの環境管理はいつも私を悩ませますね。
flask-danceをインストールしましょう。完了したら、もう一度実行してみます。ほとんど考えずに、コピーペーストと簡単な確認だけで進めています。
うまくいきました。ページを更新しましたが、まだGoogleボタンがありませんね。
このセグメントのスポンサーであるLang Traceに感謝します。彼らは素晴らしいパートナーで、今日も彼らについてお話しできることを嬉しく思います。Lang Traceは、AIを活用してビジネスを推進するAI製品を構築する、最先端のAIソフトウェア開発コンサルティング企業です。彼らの製品には、オープンソースおよびOpenTelemetryベースの可観測性と評価プラットフォームが含まれており、アプリケーションでのLLM使用を評価し改善するのに役立ちます。早期段階の企業からフォーチュン500企業まで、何千もの開発者に信頼されています。
Lang Traceは、開発者がトレースを収集・分析し、データセットを収集し、評価を実行することを支援し、その結果、非常に信頼性が高く安全なAIシステムを実現します。Lang Traceはオープンソースで、OpenTelemetryベースであり、OpenAI、Anthropic、DeepSeek、Gemini、Weaviate、Pineconeなどと簡単に連携できます。
Lang Traceは、LLMからベクトルデータベース、Crew AI、LlamaIndex、DSPy、LangChainなどのフレームワークレベルの呼び出しまで、すべてをトレースするエンドツーエンドの可観測性を提供します。Crew AIのネイティブサポートにより、Lang Traceは、Crew AIセッション、エージェント、タスク、ツール、メモリを追跡するためのカスタムビルトダッシュボードを提供します。エージェントの動作をすべて追跡できます。
Lang Traceを使用して、魅力的なデモから信頼性の高いAI製品へと簡単に移行できます。Lang Traceをチェックしてください。オープンソースで、ホスト版を使用する場合は、私の説明欄のリンクを使用すると現在20%オフになります。詳細を知りたい方は、彼らの今後のウェビナーに参加してください。すべてについて説明してくれます。ぜひチェックしてみてください。彼らは素晴らしいパートナーです。GitHubでスターを付けてください。Lang Traceに再度感謝します。では、ビデオに戻りましょう。
Googleの認証ボタンが見えませんが、コードはあるようです。エンターを押します。ちなみに、これまでにコーディングをしたことがなくても、これは簡単にできます。
いくつかの可能性を確認しましょう。Googleのブループリントがアプリケーションに適切に登録されているか確認してください。Googleのブループリントを適切に登録するにはどうすればいいですか?私のためにやってください。
実際にこれができるかどうか見てみましょう。
たくさんのコードが追加されました。もちろん、すべて受け入れます。
login_googleエンドポイントが見えるはずだと言っています。そこに入ると確かに見えます。
でも、ボタンが見えませんね。明らかに何か間違っていますが、あまり深く考えないようにしています。スクリーンショットを撮ることにします。
このモデルは画像をサポートしていないので、モデルを切り替えましょう。claude 3.5 sonnetに切り替えます。「このページにGoogleの認証ボタンが見えません。ここに追加してください」と言います。本当は話すだけでよかったのですが、大丈夫です。
問題がわかりました。ログインページにテンプレートを使用していますね。テンプレートを確認しましょう。
別のモデルを使用しているので、このモデルの方が良いかもしれません。確かに少し遅く感じますが、すべて受け入れます。
できました。見た目はあまり良くありませんが、壊れた画像がありますが、まあ十分でしょう。
次は、テトリスゲームを作成し、機械学習を使ってAIに自動プレイさせてみましょう。できるかどうか見てみましょう。
「Pythonでテトリスゲームを作成してください」
提案された背景のターミナルコマンドを受け入れます。
すべて受け入れます。たくさんのコードがありますね。実行してみましょう。このコードを実行するには何をすればいいですか?
CDコマンドで移動し、仮想環境をアクティベートし、すべての要件をインストールし、ファイルを実行します。あまり考えずに、コピーペーストしただけです。
「任意のキーを押してプレイを開始」とあります。
良さそうです。正しく動作するか確認しましょう。ラインが消えるはずです。良いですね。
ここで止めましょう。いくつか追加したいことがあります。次に来るピースを表示するプレビューウィンドウを追加してください。これだけです。どうなるか見てみましょう。
ファイルを書き込んでいます。すべて受け入れ、何もせずに再度実行して、うまくいったかどうかを確認します。
次のピースのプレビューエリアが見えませんね。終了して、もう一度試してみましょう。次のピースのプレビューエリアが見えません。修正してください。
claude 3.5 sonnetを試す必要があるかもしれません。これがコーディングアシスタンスやコーディングモデルのゴールドスタンダードだと思いますが、これでうまくいくか見てみましょう。
画面幅を増やしたようですね。良いことです。本当のバイブコーディングでは差分を見るべきではありませんが、ちらっと見てしまいました。
すべて受け入れて、プレイして何が起こるか見てみましょう。
次の形が表示されました。すごいですね。素晴らしい。スコアも追加されていますが、私は頼んでいませんでした。でも良いですね。
もう一度動作を確認しましょう。このラインを消したら、スコアが10になるはずです。
スコアが10になりました。良いですね。
「一時停止とゲーム終了ボタンを追加してください」
すべて受け入れて、もう一度実行してみましょう。
「任意のキーを押してプレイを開始」とありますが、一時停止とゲーム終了ボタンが変な場所に表示されています。
それを言って修正してもらいましょう。一時停止とゲーム終了ボタンがテトリスゲームの真ん中に表示されています。それらを左端に移動してください。
すべて受け入れてプレイしましょう。完璧です。一時停止ゲームが機能するか、そしてゲーム終了が機能するか確認しましょう。
機能しませんね。一時停止はできますが、その後何も起こりません。修正してもらいましょう。ゲームの一時停止は機能しますが、再開できません。それを追加してください。また、ゲーム終了がいつでも機能するようにしてください。
なぜか変更が実際に行われていないようです。変更を加えるよう頼みましょう。
「これらの変更を加えてください」
なぜか自動で変更が行われないようです。自分で行うことにしましょう。
コードをコピーします。ちょっと変ですが、自分でやらなければいけないようです。pause_gameの部分を見つけて、コピーしたコードに置き換えます。
次に、ここのコードの部分を更新します。インデントを適切に調整しましょう。これで良さそうです。保存して、また変です。手動でやらなければいけませんでしたが、大丈夫でしょう。
では、ゲームを一時停止して再開してみましょう。ゲーム終了もOKです。完璧ですね。
素晴らしいです。次は、AIにこのゲームの遊び方を学習させ、自動でプレイさせたいと思います。できるかどうか見てみましょう。
「すべてうまく動作しました。次は、AIにこのゲームの遊び方を学習させ、自動でプレイさせたいと思います」
基本的なAIエージェントモードを追加しました。将来の学習のためのプレースホルダーがあり、ランダムな動きを選択します。AIモードも追加しました。
でも、実際に何か追加されたのでしょうか?
claude 3.5 sonnetに切り替えてみましょう。もしかしたら、もう少しうまくいくかもしれません。毎回変更を加えるように言う必要がなくなるかもしれません。それは繰り返しになり、不必要に感じます。
「すべてうまく動作しています。次は、AIにこのテトリスゲームの遊び方を学習させ、自動でプレイさせたいと思います」
人気のライブラリであるStable Baselines 3を使用するそうです。素晴らしいですね。claude 3.5 sonnetはまだAIコーダーのゴールドスタンダードかもしれません。
DQN(Deep Q Network)エージェントをStable Baselines 3を使用して実装し、トレーニングと評価のコードを追加するそうです。これはとてもクールですね。たくさんのコードが書かれています。
やってみましょうか?受け入れます。
インストールが直接ここで実行されています。ターミナルでやる必要もありませんでした。素晴らしいです。すべて受け入れます。
トレーニングプロセスを開始しますか?はい。
python train.pyを実行しますか?受け入れます。何が起こるか見てみましょう。
バックグラウンドで実行されています。どこで見られるのでしょうか。あ、ここですね。
問題が発生しました。コピーしてここに貼り付け、修正してもらいましょう。
メインファイルからshapesをインポートする必要があるようです。修正してもらいましょう。
もう一度実行してみます。
まだ問題があるようです。すべて受け入れて、問題をコピーして再度貼り付け、エンターを押します。
ピース情報のエンコード方法に形状の不一致があるようです。修正してもらいましょう。
受け入れて、もう一度試してみます。
うまくいきました!実際に実行されています。メッセージが表示されています。報酬も出ていますね。これはとてもクールです。
いつ終わるのでしょうか。すべての変更が受け入れられ、コードに反映されていることを確認するために、すべて受け入れます。まだ実行中のようです。
どのくらいトレーニングにかかるのでしょうか。現在実行中です。
AIは100万ステップのうち約151,000ステップを完了しました。15%完了したということですね。約4分半かかるそうです。少し先に進んで、結果をお見せしましょう。
ゲームオーバーです。総報酬は8.89でした。素晴らしいです。終わったようですね。
では、どうやってプレイさせればいいでしょうか。
メインゲームを修正して、AIプレイヤーモードを含めるそうです。すべて受け入れましょう。
問題が発生しました。貼り付けてみます。循環インポートの問題のようです。
修正してもらいましょう。提案された背景は実行したくないので、すべて受け入れて、手動で実行します。
うまくいきそうです。任意のキーを押してプレイを開始します。
また問題が発生しました。ゲームは開始しましたが、このエラーで終了しました。エラーを貼り付けて修正してもらいます。
それはしたくありません。すべての変更を受け入れて、自分で実行してみます。
AIが実際にゲームをプレイしていないようです。ゲームを終了します。
ゲームは起動しましたが、AIがプレイしていません。どうすればプレイさせられるでしょうか。
いいえ、すでにトレーニングしました。
トレーニングファイルがすでにあるはずです。
確認しているようです。保存されていなかったのかもしれません。
ありました。修正してもらいましょう。ファイル構造を見て、必要なファイルを見つけられるのは本当にクールですね。
もう一度ゲームを実行して、Aキーを押してAIのプレイを見てみましょう。
拒否して、すべて受け入れます。開いて、Aキーを押します。
見てください!AIがプレイしています。あまり上手ではありませんが、確かにプレイしています。
負けてしまいました。少し変ですね。もっと改善できそうですが、今はここまでにしておきましょう。
これがバイブコーディングです。驚くべきことだと思います。1行のコードも書かずに、テトリスゲームを動作させ、AIをトレーニングし、ほとんど経験のない状態でこれらすべてを実現できました。
この動画を楽しんでいただけたなら、ぜひ「いいね」と登録をお願いします。次回の動画でお会いしましょう。
コメント