ローカルで動作するVIBECODING LLM!🤯

AGIに仕事を奪われたい
この記事は約9分で読めます。

5,277 文字

This VIBECODING LLM Runs LOCALLY! 🤯
You can start vibecoding right now! OpenHands LM is built on the foundation of Qwen Coder 2.5 Instruct 32B, leveraging i...

あなたはおそらくインターネットなしでローカルに70億パラメータのモデルを使ってバイブコーディングを始めることができます。このモデルは非常に優秀で、320億パラメータバージョンのモデルはSWE Benchで37.2%のスコアを獲得しています。つまり、37%のコーディング問題を解決できたということです。これから、私のMacで完璧に動作している70億パラメータモデルから得た驚くべき例をいくつかお見せします。私の使用しているMacは36GBのM3 Maxマシンです。
まず最初にこのモデルについてご紹介し、次にこのモデルをローカルで使用する方法を説明します。そして、コーディング関連の質疑応答を始めていきます。
このモデルはAll Handsという会社のもので、Open Handsと呼ばれています。会社名はAll Hands、モデル名はOpen Handsです。YouTubeの説明欄のいいねボタンの下にモデルのリンクを貼っておきます。もしこの動画が役立ったら、友達にシェアしていいねボタンを押してください。そうすればチャンネルからの更新情報をもっと見ることができます。
これは小さめのモデルです。彼らがこのモデルをデザインした方法はかなり興味深いものです。Qwen-coded 2.5 Instruct 320億パラメータモデルのベースモデルを取り、S-SWIMという論文で説明されている強化学習の原則を使用し、特にコーディング関連タスクに優れたモデルとして訓練しました。その結果、128,000コンテキストウィンドウを持ち、プログラミング関連タスクに特に優れたモデルが誕生しました。
比較のために、DeepSeek V3やDeepSeek R1、さらには最新版のDeepSeek V3と比較しても、それらのモデルでさえSWEで32%から38%の間のスコアを獲得していることがわかります。このモデルは特にそのような課題に非常に優れています。さらに説明すると、270億パラメータのGMA 3モデルのスコアはSWE Benchでわずか10%なのに対し、このモデルは37%を獲得しています。これは非常に良い数字で、典型的なMMLUや通常見るようなベンチマークとは異なります。これは本当に良いベンチマークであり、このベンチマークでこのモデルが37%を獲得したことは非常に有望です。
強調したいもう一つのことは、128,000コンテキストウィンドウというものを見るときに、必ずしもローカルで128,000コンテキストウィンドウを使用できるわけではないということです。これらのモデルは、コンテキストウィンドウの最大値に到達するためには、あなたの機械が提供できるよりもはるかに多くの計算能力を必要とします。それを覚えておいてください。私は128,000で実行するつもりはなく、私の機械がこの特定のモデルに対して128,000コンテキストウィンドウを提供できるとは思いません。しかし、誰かがこのモデルをデプロイして提供する場合や、クラウド上でVMを実行している場合は、おそらく128Kまでスケールアップできるでしょう。
また、128,000コンテキストウィンドウというのは、その全体にわたってこのモデルが最高レベルであるという意味ではありません。上下の変動があります。これは皆さんと共有したかった注意点です。
さて、モデルはHugging Faceで利用可能です。モデルの使い方をお見せします。先ほど説明したのは320億パラメータモデルについてですが、私たちが使用するのは、先ほど説明したのと同じ原則で訓練された、70億パラメータのダウンサイズバージョンです。
モデル名をコピーして、LM Studioで使用します。必要なのは、「Discover」に行き、モデル名を貼り付けるだけです。Barskiからのモデルが表示されます。11日前のもので、サイズは4.4GBです。モデルをダウンロードできます。私がダウンロードしているバージョンはQ4、4ビット量子化モデルですが、お持ちのコンピューティング能力に応じて、必要な最小要件に基づいて、異なるバージョンの量子化モデルをダウンロードできます。コンピューティング能力が低ければ、小さいサイズのモデルをダウンロードし、より多くのコンピューティング能力があれば、BF16(Bfloat 16)までの大きなサイズのモデルをダウンロードできます。
モデルをダウンロードしたら、ここに行って「Start use in chat」を選びます。私の場合、モデルは現在のセッションにすでにロードされています。そのため「Use in a new chat」と表示されていますが、まったく新しくモデルをロードする場合は「Load the model」と表示されるでしょう。
モデルをロードした後、このモデルが本当に優れていて堅固だと思ういくつかの例をご紹介します。最初の例は「Little Coder Labsという会社のために美しくデザインされたHTML5ベースのランディングページを1つ作成してください」というものです。「美しくデザイン」というのはこの場合かなり主観的ですが、このモデルで理解したいのは、まず第一にエラーなしで動作するHTML5スクリプトを提供できるか、第二にLittle Coder Labsという会社を理解してコピーを作成できるか、そして第三に明らかに適切なHTML5ページが欲しいということです。
非常に短時間で、1秒あたり46トークンが処理され、3,436トークンが生成されました。HTML5ページが得られたので、これをコピーしてブラウザに戻ります。HTML5プレイグラウンドにペーストすると、これが出力されます。美しいですか?いいえ、確かに美しくはありません。しかし、基本的な骨格を持つ完全に機能するHTML5ページですか?70億パラメータモデルとしては、これは良いと強く評価します。適切なエモティコンやフラットアイコンを選んでいます。ここにはリトルコピーがあり、ヒーローページがあります(CSSの問題があるようですが)。このようなモデルの最初のゼロショットランディングページとしては本当に良いと思います。
しかし、このモデルをさらに押し進めることはできるでしょうか?それが私の疑問です。そして、このモデルをさらに押し進めることができたことがわかります。ただし、このモデルはあちこちで少し不安定です。
次に、「四角形が回転し、ボールがその中で跳ね返るp5.jsアニメーションを作成してください」とモデルに依頼しました。想像しているのは、四角形が回転するか、ボールが中で跳ね返るということです。驚くべき結果が得られました。四角形は回転していますが、ボールは跳ね返っていますか?私の指定が十分ではなかったのかもしれません。「ボールは箱の中で跳ね返るべき」という指定が足りなかったのでしょうか。これを見るのはとても面白かったです。これが絶対にひどいとは言えませんが、ひどいと言えるかもしれません。それでも動作するコードを提供してくれました。p5.jsで動作するコードを提供してくれたのは非常に興味深いことでした。
次に試したのは「Pygameを使った素敵なPythonコードで驚かせてください」というものです。ここでPythonコードを取得しました。シンプルなコードを提供してくれました。「動く長方形を作成します」とのことです。Visual Studio Codeに貼り付けて保存し、実行します。実行すると、キーボードコントロールが得られました。右、下、上に移動できます。あまり驚くことはありませんが、少なくともPygameを使った適切なPython UIが得られ、それで遊ぶことができます。ヘビゲームを頼むこともできましたが、頼みませんでした。これが提供されたものです。
次に、最近投稿されたStack Overflowの質問を実際に尋ねてみたらどうかと思いました。それは多くの興味深いアイデアを与えてくれました。今日投稿された3つのStack Overflow質問があります。
最初の質問はデータフレームに関するもので、主にPandas関連の質問です。私はデータサイエンティストなので、その一部を理解しています。他のことは必ずしも理解できません。例えば、1つの列にデータフレームがあり、それを3列にしたいという質問です。これはExcelで行うような典型的な演習です。カンマで分割して取得し、ブール値を得るというものです。ワイド形式からロング形式、そしてまたワイド形式に変換するという概念です。答えは「str.get_dummies」を使用してできると書かれており、正しい答えが提供されています。
これはStack Overflowの回答で、私は同じ質問をしました。「文字列をブール値に変換する」と言って、この例を示しました。うまく動作せず、エラーが出ました。そこで「Pandasのメソッドはありますか?」と尋ねると、別のコードが得られました。シンプルで簡単な解決策が欲しかったのですが、1回のフォローアップだけで簡単な解決策が得られました。これらのモデルは、このモデルだけでなく、Cursorでも時々盲目的にあなたの依頼に従おうとするだけで、他の異なる提案をしてくれないことがあります。そのため、少しドメイン知識を持ち、「Pandasのメソッドはありますか?」と尋ねることは常に良いことです。そして、もちろん私たちが欲しかったものを正確に提供する答えが得られました。sum1、sum2、sum3、そしてここにブール値があり、完璧に機能します。
次の質問に移ります。非常に似たコンセプトのもう一つの質問があります。データフレームがあり、誰かがgroup byで何かをしようとしています。Stack Overflowでの受け入れられた最初の回答は「なぜgroup by do_filterを使いたいのですか?それは必要ありません」となっています。同じ質問をもう一度尋ねると、同じ質問が表示されますが、group byが必要ないとは正確に言われません。「group by.filterはグループのために使用される」と書かれており、これはStack Overflowの最初の行とまったく同じです。この質問は23時間前に投稿されたばかりです。異なる解決策が提供されるので、その解決策をコピーします。
これが理想的な出力です。Google Colabノートブックに行き、貼り付けて確認します。はい、A、B、Cが出力されました。これは理想的にA、B、Cを返します。少し重複があるので、「他の方法はありますか?」と尋ねると、もう一つの方法が提供されました。これをコピーペーストすると、ABCが得られました。これが正しい答えだと思います。これは正しい答えであることを願っています。はい、ABC 111が得られました。これは直接Stack Overflowからの別の質問であり、特に良い仕事をしてくれました。
Pandas関連のStack Overflowから得た3つ目の質問は、正規表現(regex)とPandasデータフレームに少し関連しています。質問を貼り付けると、回答が返ってきました。質問は与えられたテキストからエンティティを抽出することについてです。名前付きエンティティ認識や言語モデルは使用せず、単純にPythonだけを使います。コードをコピーして貼り付け、実行することを期待しています。
最も重要なことは、文字通りエラーなしで実行されることです。複雑なコードを扱うとき、必然的にインデントエラーやカンマの問題、開始・終了パターンの問題などが発生します。これは論理的なエラーです。そのため、常により小さく、簡単なコードを選びます。この特定のケースでは、これはその人が望んでいたものです。XYZ XYZ ABC DPAC、XYZ ABC DPACが得られましたが、ここでXYZを見逃しています。それでも部分的に仕事をこなしてくれました。もっとプロンプトを工夫することもできたでしょう。
全体的に、このモデルは特にプログラミング関連のタスクに優れていると感じました。このモデルは、No Llamaモデルを通じてか、LM Studioエンドポイントを通じて結合できます。Visual Studio CodeのContinueのようなプラグインと一緒に使用すれば、データをサーバーに送信することなく、ローカルなコーディングアシスタントが得られます。
このモデルについてどう思うか教えてください。私はこれが良いと感じましたが、あなたがテストを行い、あなたのテストでこれが良いバイブコーディングモデルかどうか教えてください。また別の動画でお会いしましょう。ハッピープロンプティング!

コメント

タイトルとURLをコピーしました