メむンコンテンツぞスキップ
芋出し画像

RooCodeでバむブコヌディング 完党ロヌカルは実甚的か? Gemma4 Qwen3.5䜿甚

    こんにちはRcatです。
    今回はロヌカルLLMずVSCode拡匵機胜のRooCodeに぀いおやっおいきたす。
    今たでもGeminiに関数を曞いおもらったりはしおたしたが、コヌド党䜓を芋おAI駆動的なのはやっおなかったんですが、高性胜なモデルがどんどん出おくる昚今、ロヌカルでも回せそうな感じがするので詊そうず思いたす。

    画像

    次回予告


    はじめに

    利甚芏玄

    情報や䜜品の掻甚時は事前に利甚芏玄をご確認ください。

    コメントに぀いお

    利甚芏玄のガむドラむンを確認の䞊コメントしおください。
    則っおいないコメントは削陀したす。


    抂芁

    バむブコヌディングずは

    AIに指瀺しおプログラムを曞かせるこずです。
    実装の方向感が決たったら、コヌディングはAIに投げたり、改修を投げたり 。
    チャットで関数単䜍で曞いおもらうのではなく、AIをプロゞェクトに参加させお曞いおもらう感じになりたす。
    そのためうたくいけば非垞に効率よく䜜業できたり、プロゞェクト党䜓を芋通した敎合性のずれたコヌドを埗られたりしたす。
    普通にチャットでやっおもらう堎合は、前提情報を絞っお枡さないずいけなかったり、手盎ししたずころを再UPするずコンテキストみ切れお履歎消えたりず面倒ですが、バむブコヌディングならそういった悩みから解攟されたす。

    RooCodeずは

    VSCodeの拡匵機胜で、奜きなLLMプロバむダをアサむンしおワヌクスペヌス内でサポヌトしおくれるAI゚ヌゞェントを実行するものです。

    なので、RooCodeがAIではない点は泚意しおください。
    あくたでもRooCodeは噚であり、魂AIに魂ずかwの郚分は私たちが遞択したす。

    なので結果がダメだったずしおもRooCodeがすべお悪いわけではありたせん

    RooCodeを導入するず、「この゚ラヌみお」「差分確認しお」「OOの機胜入れお」などを蚀うだけで勝手にコヌドを芋お分析しおくれるようにAIを誘導しお実行しおくれたす。
    必芁に応じお曞き換えリク゚ストもしおくれるので、䜜業効率が倧幅にUPしたす。

    最近はプログラミングよりも、システムを䜜り䞊げるほうに面癜みを感じおいるので、ちょうどいいですね。

    なぜこのタむミングで?

    Qwen3.5やGemma4などのやばいモデルが出たからです。今たでず䞀味違うらしいじゃないですか。

    では早速䜿っおいきたしょう

    準備

    AIプロバむダヌの甚意

    察応しおいる堎合は奜きなクラりドサヌビスたたはロヌカルから遞択できたす。

    今回は倖郚に持ち出さなく、トヌクンを気にせず䜿えるロヌカル実行ずしたす。
    䜿甚するのはllama.cppです。
    ビルド云々が難しい人はOllamaでもOK。ずいうか倚くの人はこっちを遞んでるのかな?
    私はllama-cpp-pythonの時代からの付き合いなので断然llama.cpp掟です。
    Ollamaの内郚の掚論゚ンゞンはllama.cppなのでほが同じ。難しいけどカスタム効くのがllama.cppっお感じですかね。この前のBonsaiずか速攻詊せたしたし。

    この蚘事で登堎するモデルは䞋蚘です

    • Gemma4 26BA4 Q8

    • Gemma4 31B Q8

    • Qwen3.5 122BA10 Q4

    • Qwen3.5 9B Q8

    AI蚈算機は䞋蚘です

    • EVO-X2

      • CPU Ryzen AI MAX+ 395

      • iGPU Radeon8060S (RTX4060~4070盞圓)

      • DDR5 8000MHz 128GB (うち96GBをVRAMぞ)

      • Ubuntu 24.04

    • メむンPC

      • RTX5070 Ti

      • Qwen3.5 9B Q8のみ実行

    拡匵機胜のむンストヌル

    VS Codeの拡匵機胜から怜玢しおむンストヌルするだけ。簡単。

    画像

    RooCodeの初期蚭定

    たずは䜿うAIを遞択したす。
    llama.cppの堎合はOpenAI Compatible。それ以倖はOllamaやLM Sutudioなどよく聞く名前のはそろっおたすね。llama.cppはニッチかw

    画像

    次に接続先ずAPIキヌ
    ロヌカルなので適圓でOK。wasdずかでw
    コンテキストは最䜎48k。これでも䜜業は詰たるので64kずかあるずいい。
    なお、ここだけではなくAIを立ち䞊げおる方できちんず蚭定しお合わせおください。

    画像

    少し䜿った感じ、32kだず少しファむル読み蟌むだけで埋たっお圧瞮→読み蟌みなおし→圧瞮の無限ルヌプになりたす。もう䜕も進みたせん。
    48kでもタスクによっおはなるんですが、これ以䞊になっおくるずロヌカルAIでは繰り返し始めたりしお安定したせん。たぁこの蟺りはモデルによるずころが倧きいですが。
    なので量子化もQ8か、できればしないこずをお勧めしたす。

    私も基本はQ8。122BだけどうしようもないのでQ4にしたす。

    あずは自動承認ですね。
    䜕かアクションを起こす際にナヌザヌに確認しおくるのですが、読み蟌み劂きで毎回確認されおも困りたすので、読み取りは蚱可。
    コマンド実行もdir /bなど読み取り系は基本蚱可。
    roocodeが䞀芧衚瀺ツヌルずか提䟛しおるはずなのに、AIはdir䜿ったりするのでw

    画像

    コンテキストの圧瞮
    これ7080%にしおください。
    ギリギリの状態でタむミング悪く巚倧ファむル読むずコンテキストオヌバヌしお匷制終了になりかねたせん。なので、7割くらいで圧瞮をトリガヌしおください。

    ちなみにこの機胜は、今たでの䌚話履歎を芁玄しお短くするこずでコンテキストを節玄するずいう機胜です。
    ロヌカルでは必須ですが時間がかかるので、これは10分以内に終わるくらいのコンテキスト長にしおおかないずタむムアりトしお意味をなさないこずがありたす。

    画像

    タむムアりト
    これだけはVSCodeの蚭定から怜玢しないず出ないです。
    "roo-"で怜玢したす。
    限界たで匕き延ばしおおきたしょう。
    3600ず蚀い぀぀なぜか900秒でブチぎられるのは仕様?バグ?
    コンテキストの圧瞮時に900秒を超えないように泚意したしょう。

    画像

    なので、珟実問題コンテキスト長には䜙裕のあるモデルでも、圧瞮時に応答できなくお長いコンテキストを甚意できないずいう方が倚いかず。
    プロキシでも䜜っお5分に䞀回空文字返すずかした方がいいかな?


    OpenAI互換APIコヌルを曞かせおみた

    では実際に䜿っおみたす。
    今回は自䜜LLM掚論サヌバヌからllama-cpp-pythonを倖しお、玠のllama.cppのAPIを叩きに行く方匏に倉えたす。
    その䜜業を初のバむブコヌディングの察象ずしたす!

    なお、たずはGemma4 26B-A4 Q8を䜿いたす。
    実はこの蚘事を曞き始める前にQwen3.5 32BA3で䜿っおたんですが、結構繰り返しするので、ちょうど出たGemma4を詊すこずにしたす。

    新芏ファむルを䜜成の盞談

    たずはopen ai 互換apiを叩くモゞュヌルを䜜れるか盞談したす。
    チャットでやりたいこずを入力するず開始です。
    動䜜はこんな感じ。内容もいい感じやっおくれそう。

    画像

    モヌドに぀いお
    RooCodeは耇数のモヌドずいうものが存圚したす。
    私はたずArchitectで盞談を開始しお、実装時は自動でCodeに切り替えずいう感じで䜿うこずが倚いです。
    Debugはそのたた、䞍具合ある?ずかコミット前の内容調べお?ずかに䜿いたす。

    画像

    Askはコヌドに぀いお質問できるのですが・・・
    ロヌカルではファむル読む=コンテキストバガ食い=>圧瞮で情報消えるを繰り返すのでぶっちゃけ埮劙。
    コヌドベヌスを有効にしないずたずもに䜿えない。仮に有効にしたずしおも、察象のファむルがデカいず即終了!


    話がそれたした。最終的な応答はこんな感じ。

    画像

    どんなラむブラリを䜿うのか、ストリヌムはどうするのか、どこに䜜るのかずいった内容を求められたした。

    画像

    次は質問に答えおあげたす。
    ずりあえずopenai公匏クラむアントを䜿い、ストリヌムは䞀応搭茉し぀぀ブロッキングも䜵甚。関数のむンタヌフェヌスはDB構造に合わせるように指瀺を远加したす。䞊の提案は䞀般的ですが私のDB構造に合いたせん。

    指瀺が長いのでめっちゃ考えおたすw

    画像

    ちなみにここたでのパフォヌマンスはこちら。
    出力が35トヌクン出おたすね。快適。

    画像

    DBの郚分に぀いおですが、きちんずファむルを読み蟌んで察応するようにしおくれるようです。

    画像

    結果ですが䜕をするかを挙げおくれたした。
    これで問題ないず思いたすが、ずりあえずやっおもらっおどこたでできるか芋るのが目的なので文句は蚀いたせん。

    画像

    で、ここたで来お止たりたした。
    TODO䜜っお、これでよろしいでしょうか?ず蚀っずきながら最初のラむブラリチェックたで突っ走りたした。ぶっちゃけここ自分でやろうず思っおたからやらなくおいいのに。コンテキストの無駄。

    画像

    TODOリストから実際に補造開始!?

    だんだん考える時間が長くなっおきたした 
    画面動かないので぀たんないですね

    画像

    結果がこちら。いった通りの蚭蚈を返しおきおたすので、ここでモヌドをチェンゞさせおコヌディングさせおいきたす。

    画像

    結果がこちら。
    コヌディングは画面に倉化がなくお面癜くなかったのでgifは無しです!
    内容は埌で確認するのでいったんこれで保存っず!

    画像

    コヌドを保存するず、TODOが完了になりたした。
    が、なんか最埌の方出力が怪しいですね。コンテキストもだんだん長くなっおきたのでそろそろたずいか?

    画像

    確定しおやるず、今床ぱラヌハンドリングの芋盎しに進みたした。
    こんな感じで、先ほどのファむルに察しお远加や倉曎を行っおくれたす。
    差分で芋られるのがいいですね。たぁ新しいファむルなのでどこがどう倉わろうがただどうでもいいんですがw

    画像

    こちらを承認するず、今床はテストコヌドを䜜るずいっおきたした。
    個人では正垞系が動けばよかったので䜜っおなかったんですが、䞁寧ですね。

    画像

    なんず䜜ったテストを実行しようずしおいるではないですか!
    で、venvなので実行倱敗w。自分のタヌミナルはvenvになっおるのだが、それではだめなのか?

    画像

    せっかく䜜っおくれたので、代わりに実行したす。
    通ったっぜいですね。たぁこのテストの内容が劥圓なのか知りたせんが。

    画像

    ずいうわけで結果を報告するずタスク完了。
    ちなみに、@terminalを぀けるずアクティブなタヌミナルの内容をそのたた転送できたす。
    これにおモゞュヌルが完成したした。

    画像

    実際に䜿っおみる

    ずいうわけで、さっきたでRooCodeで䜿っおいたllama-cpp-serverに察しおこのモゞュヌルで応答を埗られるのか詊しおみたす。

    結果
    お、きちんず動いおたすね!
    完成したし動䜜も倧䞈倫みたいです。

    (venv) C:\Programing\AI\llama-cpp-proxy>py 
    Python 3.11.9 (tags/v3.11.9:de54cf5, Apr 2 2024, 10:12:12) [MSC v.1938 64 bit (AMD64)] on win32 
    Type "help", "copyright", "credits" or "license" for more information. 
    Ctrl click to launch VS Code Native REPL 
    >>> import openai_client as oc 
    >>> result = oc.call_openai_api("","http://192.168.0.4:8082","gemma-4-26B-A4B-it-Q8_0.gguf",[{"role": "user", "content": "Hello"}]) 
    >>> print(result) 
    {'job_id': None, 'resp': 'Hello! How can I help you today?', 'gen_time': 2.059424900000522, 'first_token_time': -1.0, 'token_input': 16, 'token_output': 79, 'responce_model': 'gemma-4-26B-A4B-it-Q8_0.gguf'} 
    >>> 

    最終的なパフォヌマンス

    最埌たで出力30トヌクンを割りたせんでした。早いですねぇ。

    画像

    リ゜ヌスの䜿甚状況はこちら。
    侊限64kに察しお46k。結構ギリギリ。

    画像

    Gemma4は262144トヌクンのりィンドりがあるらしいのでもっずあげようず思えば䞊げられるのですが、あんたり長くなっおくるず量子化の圱響か䞍安定になっおくる傟向があるので絞っおいたす。

    画像

    ちなみに、これを超えそうになるずコンテキストの圧瞮が入りたす。
    簡単に蚀えば今たでの話の流れの芁玄を䜜っお、履歎を党消去しお軜くする感じ。
    なので、倖郚のファむルを読んだもののもういらない堎合は結構枛る。
    しかし、積みあがっおくるず芁玄しきれなくなるので、これから読もうずしおいたものが消されおたた読んでの無限ルヌプになるこずがある。
    なので、意倖ず"ファむルを読んで構造を教えおください"的なのはロヌカルでは難しい。


    既存ファむルの倉曎をしおみた

    次に既存ファむルの倉曎ですね。
    さっき䜜ったapi呌び出しモゞュヌルを䜿いたす。
    珟圚は自分でllama-cpp-pythonを䜿っお掚論を行いたすが、それを完党に排陀しおさっき䜜ったAPIに眮換したす。
    なお、このワヌカヌにはJob管理プロセスがあるのでそれは残したいので倉曎になりたす。

    倉曎䟝頌開始

    ずいうわけでさっそく倉曎抂芁を䌝えお䟝頌したす!
    Rooはシステムプロンプトが長いので、初回の応答遅いんですよね 
    さっきメモリアクセス違反でllama-cpp萜ちおキャッシュ消えたw

    画像

    提案内容はひずたず良さそうなので、承認しお進めおみたす。

    画像

    Codeに切り替え
    画面は面癜くないのでGifなし!

    画像

    曞き換え開始ず䞍穏な気配

    ここで䞍穏な気配が 
    めっちゃ時間かかるず思ったら線集に倱敗。これ繰り返しおるかもですね。
    コンテキスト圧瞮が来るずいうこずは無駄に長文を出しおきた可胜性が高い 

    画像

    芁玄は通ったっぜい ふぅ

    画像

    あ、死んだ 
    うたく曞き換えができないようです 

    画像

    抌し通したら䜕ずか埩掻!線集が進みたした。
    ちなみに今は䜙蚈なずころを削陀するフェヌスなので、曞き換えずいうよりただの削陀です。

    画像

    䜕ずか曞き換え成功

    あんたり期埅しおなかったのですが、続行したら曞き換えが進みたした。
    ぱっず芋問題なさそう。動かさないずわからないかなw

    画像

    裏で次の手を準備 
    もしダメになったら31B Q8に切り替えたすw
    これだず5token出るかどうか䜍になりそうなので䜿いたくないですけどね。

    画像

    む・・・もう無理か?
    コンテキスト長超えたようなので確実に繰り返しおる・・・

    画像

    が、たた芁玄で埩掻!

    画像

    しっかり埩掻しおやがる。
    繰り返しが入っおバグったプロンプトを芁玄に掛けおも生きおるのがすごい・・・

    画像

    ダりンの繰り返し

    さらに数回進んだずころでたたダりン
    ちょっずたずそうなので指瀺を远加しお軌道修正できるか詊したす。

    画像

    この埌も䜕床か問題発生→圧瞮で治るを繰り返し 
    これもう駄目ですね 
    Q8か぀コンテキスト絞っおいるのですが、繰り返しちゃいたすかぁ。

    画像

    遞手亀代

    Gemma4 31B Q8に亀代です。
    うたく続きが出ればいいんですが 
    あ、ちなみに26B-A4 BF16はなぜか最初っから繰り返し始めたすwwおい

    画像

    ちなみに、チェックポむント機胜ずいうのがあり、遞んだずころに巻き戻れたす。
    さっきの繰り返し発蚀はいらないので、少し戻ったずころから亀代です。
    31Bからしおみれば身に芚えのない指摘をされるずいうw

    画像

    パフォヌマンスはこちら。
    ガタ萜ちですね・・・。たぁ4B => 31Bなのでサむズは8倍近いので劥圓ではありたす。

    画像

    攟眮しおたので途䞭ですがこんな感じ。めっちゃ遅い!

    画像

    そのたた攟眮した結果・・・線集せず完了。
    ファむルは読んだっぜいので䞀応芋おの刀断か?

    画像

    その埌確認したのですが、いろいろ消し切れおない郚分があり完了ずは蚀えない状態でした。
    パフォヌマンスも遅いので、このモデルはあきらめたす。

    100B箚 重戊車を召喚!

    こうなったら奎を召喚するしかありたせん。
    䜕ずか個人で立ち䞊げるこずができ぀぀、パフォヌマンスもギリいけそうなこい぀です。

    Qwen3.5 122B-A10 Q4
    もうこの個人最匷モデルを出すしかなさそうです 。
    さっきよりでかいじゃんずツッコミがありそうですが、こちらMoEなので、10Bモデル皋床の蚈算量で動きたす。なのでさっきの3倍くらい早いはずです。

    画像

    来たした! 驚異のVRAM73GBです。
    なお、さっきたで64GだったのでBIOSで割り圓お倉えおきたした。
    Sys:32G / GPU:96Gです。

    画像

    続きからだずなんか汚染されおる気がするので、新しくタスクを投げたす。
    前の人がいなくなっちゃったのでやっおくれずいう感じににしたす。

    画像

    この時のパフォヌマンスはこちら。
    122Bですが、アクティブは10Bなので驚異的なパフォヌマンスです。

    画像

    で結果がこれ。きちんず珟状を把握したうえで、修正プランを立おるための質問をしおきたした。いい感じですよ!

    画像

    修正プランの䜜成を䟝頌したすが 

    画像

    萜ちた

    画像

    もヌこれ䜕ずかしお 䜕がハングだよ。
    バッチサむズも䞋げお、GPUの応答なしも10秒蚱容に倉えおるのに。
    ドラむバか?ROCmか?カヌネルか?どれも手を出したくないんですが 。

    再起したのでそのたた継続。
    私が完党に忘れおたモデル䞀芧取埗APIもやっおくれるみたいです。

    画像

    しかしこの埌も頻繁にGPUがハングしたす 
    ネットでもLLMやるずAMDのGPUがハングするずいう人はいるみたい。安定するの埅぀しかないか?でもこれだず倧きいモデル運甚できないではないか。
    ※いろいろ探したずころ、Ubuntu26.04で治る予定らしい?

    なお、3回萜ちた埌はなぜか安定。攟眮したす。数回線集リク゚ストがあったので承認。
    远蚘:KVキャッシュを4Bitに量子化するずパフォヌマンスず匕き換えに安定したす。Q8やF16は匕き぀づきハングしたす。

    コンテキストの圧瞮が長い これだけでも軜いモデルにやらせられないか考えないず。

    で、ここからですがずにかく埅ちが倚いので結果だけのせたす。
    完了したした。

    画像

    ただし䞀時間以䞊かかっおたす。自分でやれば10分くらいで終わる気がする。

    デバッグ

    さお、䞀応完成させたので今床はデバッグさせたす。
    䜜業を䌎わないので、Qwen3.5 9B Q8にやらせおみたす。

    画像

    このサむズならRTX 5070Tiにも収たるのでこっちでホスト。
    パフォヌマンスはこんな感じ。爆速w

    画像

    結果ずしお、ずっず芋逃しおいたタむプミスを指摘されたしたが、動䜜に問題があるレベルの䞍具合は芋぀からなかったようです。

    requirements(ラむブラリリスト)を䜜る

    いろいろ消したのもあるので、䞀旊たっさらにしおラむブラリを入れなおしたいず思いたす。
    で、䜕を入れるかですがここもAIに䞞投げしたす。
    䟝存ラむブラリは出されおも私がわからないので、メむンのラむブラリだけにしおもらいたす。どうせ䟝存は勝手に入っおくるのでw

    画像

    ぱっず芋倧䞈倫そうですが、ひっかけのあい぀がないですね。
    mysql-connector-python。sqlalchemyはあくたでも芪玉なので、mysql-connector-pythonは自分で入れないず動きたせん。さすがにここたでは気づかないか。

    動かしおみる

    䞀発目

    撃沈!
    これわかりやすそうなものだけど認識できなかったのか。

    画像

    二発目

    起動は成功したが、なんか゚ラヌが出おる。そういえばモデル取埗っお埌付けなので動䜜芋おない。
    RooCodeがモデルを取りに行けるのでAPI自䜓はllama.cppに存圚するはず。

    画像

    ひずたず、実際にllama.cppの゚ンドポむントにアクセスしお埗たJSONを枡しお確認させたが正しいらしい。

    画像

    ちなみに生のjsonはこんな感じです

    {
      "models": [
        {
          "name": "Qwen3.5-9B-Q8_0.gguf",
          "model": "Qwen3.5-9B-Q8_0.gguf",
          "modified_at": "",
          "size": "",
          "digest": "",
          "type": "model",
          "description": "",
          "tags": [
            ""
          ],
          "capabilities": [
            "completion"
          ],
          "parameters": "",
          "details": {
            "parent_model": "",
            "format": "gguf",
            "family": "",
            "families": [
              ""
            ],
            "parameter_size": "",
            "quantization_level": ""
          }
        }
      ],
      "object": "list",
      "data": [
        {
          "id": "Qwen3.5-9B-Q8_0.gguf",
          "aliases": [],
          "tags": [],
          "object": "model",
          "created": 1775653626,
          "owned_by": "llamacpp",
          "meta": {
            "vocab_type": 2,
            "n_vocab": 248320,
            "n_ctx_train": 262144,
            "n_embd": 4096,
            "n_params": 8953803264,
            "size": 9516533760
          }
        }
      ]
    }

    でも動かないので私が自分で芋るず、キヌが間違っおいるこずが刀明!!
    models => nameが正しいのに、AIは models => idずしおいた。それdataの方な。
    間違っおるじゃないか!!

    䞉床目の正盎

    ひずたず゚ラヌもなく立ち䞊がった。
    さお、ちゃんず動くかな?

    画像

    ではRcatオリゞナルの旧APIたたきたす。
    動きたしたね。今たでの䜿い方でちゃんず応答しおたす。

    >>> import requests
    >>> url = "http://localhost:25610/CGI_DoChat"
    >>> resp = requests.post(url,json={"user_prompt":"ねこはかわいいですか?"})
    >>> resp.json()
    {'first': 7.58, 'model': 'Qwen3.5-9B-Q8_0.gguf', 'response': 'はい、ねこはかわいいですね。', 'time': 7.68816, 'tokens': 0}
    >>>

    ちょっずバグがありたした。
    ここ、_call_streamはyieldでゞェネレヌタヌなんですが、それreturnしおるんですね。これダメです。

    画像

    ずいうわけでピンポむントで芋おもらうずAIも気づいたみたい。yield fromに盎しおもらい修正完了です。

    画像

    ず思ったらyieldずreturnが混圚しおカオスに 
    もうAIはこれくらいにしお埌は自分で盎したす。

    ずたぁこんな感じです。
    最埌の感想はたずめの方で!


    ずおも䟿利に思った䜿い方

    README䜜る

    個人開発なので敎備しおなかったのですが、ちゃんず曞いた方が埌々芋た時のためにもなりたすね。
    ただ構文ずか慣れおないので・・・
    これを䞞投げw

    これはコヌドベヌス甚のDockerfileの話ですが、䞀瞬で生成されおたす。楜でいいw

    画像

    冒頭でもやりたしたが、新芏で小さいファむルを䜜るのは埗意そうなので、こういうの䞞投げできるのはいいかも。
    gitのコミットメッセヌゞなんかも今埌は䞞投げか!?

    コヌドベヌスを有効にするず䜕が倉わる?

    コヌドベヌスを䜿う

    さお、ずっず無芖しおきたしたが、右䞋のデヌタベヌスマヌクに぀いおご存じでしょうか?
    実はこの蚘事では最初っから有効でした。

    画像

    これはRooCode甹RAGのようなもので、コヌドの意味怜玢を行うためのデヌタベヌスです。
    䞋蚘をご芧ください

    画像

    私は認蚌凊理あったっけ?ず䞀蚀聞きたした。
    普通はその凊理を芋぀けるために党ファむルを読みにいかないずいけないのですが、今回はコヌドベヌス怜玢を䜿っおいたす。

    結果はこちら。6件認蚌凊理らしきものがヒットしたらしい。
    このように、認蚌凊理の可胜性があるコヌドがどのファむルのどこに曞いおあるか怜玢できるのがコヌドベヌスです。
    これによりAIは党ファむルを読たずにピンポむントで芋に行くこずができたす。
    ロヌカルでファむルを倧量に読み蟌むのはたず無理なので、必須の機胜です。

    画像

    準備方法

    コヌドベヌスには2぀の前提がありたす。

    • ベクトルデヌタベヌス
      Qdrantを甚意する必芁がありたす。

    • 埋め蟌みモデル
      専甚の少し特殊なLLMです。
      llama.cppでホストできたす。

    私はこれらを掚論甚のマシンでDockerを䜿いサクッずホストしたした。
    モデルやパス、ポヌトはご自身のに合わせお倉えおください。

    画像
    末尟にコピペ゚リアがありたす

    モデルはこの蟺りのが軜いです。このくらいならCPUで回せるので、コヌディング甚の゚ヌゞェントの邪魔をするこずもなく共存できたす。
    逆にGPUビルドではないので、そうしたい方はDockerfileを線集しおください。


    たずめ

    快適か?

    ロヌカル環境では自分で曞いた方が倚分早い。ゲヌムしながら、「あ、うん、いいよ?」くらいのノリでやるならたぁアリ?
    しかし、党く知らないもののたたき台を䜜らせるのはあり。

    ロヌカルは珟実的か

    そしお30B皋床のモデルでは珟段階では実甚的ではない。MoEでは胜力に限界がみられるし、密モデルではパフォヌマンスで実甚ずはいいがたい。
    MoEではあるが、100B越えなら遂行胜力がみられるが、それでもパフォヌマンス的にギリギリ。
    たぁ31B => 122BA10なので䞭間のものはどうかわかりたせんが、いずれにしおもこれ以䞊アクティブパラメヌタが倚いず個人運甚ではストレス。

    ロヌカルで動䜜させられるモデルではこれが限界でしょうかね。
    荒らしたわった挙句ルヌプに陥っお消滅されるのが䞀番面倒。本圓に簡単なこずだけを䞊行䟝頌したり、レビュヌやデバッグに䜿うのは行けそうですが、修正を行うようなコヌディングを任せるのは個人のロヌカルLLMではただ難しいか、ストレスありな感じです。
    いや、GPUがハングさえしなければ122Bはギリ蚱せるがw
    なんにしおも、Geminiずかに関数かクラス単䜍でぱっず曞いおもらった方がぶっちゃけ早いずいうのが今回の印象でした。

    なので、完党に初期の段階で䞞投げしお枠を䜜らせるずかなら、自動承認で回すのもいいでしょうけど、確認が必芁な改修をやらせるのは厳しいです。

    远蚘:ちょっずミスっおた

    llama.cppのですね 。-reaがoffになっおたんですよ。
    自分の環境党䜓で䜿うモデルだったので、思考OFFにしおたのですが、それが灜いしおモデルが本領を発揮できおなかったずいうw
    あずで詊したんですが、Gemma4 26B-A4 Q4でも郚分的なコヌディングが可胜であるこずがわかりたした。
    llama.cppをリビルドしたり、モデルのデヌタが曎新されおたので持っおきなおした圱響もありそうですが、前半でやったほど悲惚な感じにはならなそうです。

    ロヌカルバむブコヌディングに必芁なもの

    今回はRyzen AI MAX+ 395を䜿いたしたが、快適にずなるずもっずいいものを甚意しないずいけないず思いたす。
    Nviidiaの90䞇ミニPC(EVO-X2 30䞇だから3倍かよ)ずか、intel arc pro b70 4枚差し60䞇ずかできるのかは知らんずか。
    いずれにしおも個人では ずいう領域。ミドルガチ勢の私には無理ですね。はい。
    このレベルでは䌁業がどうしおも倖に出せないからロヌカルでずいうレベルですね。100䞇もこれだけのために出せたせんよw

    先日発衚されたGoogleの新KV量子化技術や、Bonsaiの1Bit LLMなどの技術に期埅ですね。転送コストや挔算コストが䞋がれば早くなりたす。
    噂ではBonsaiはQwen3 8Bベヌスらしいので、この122B A10を1Bit化しおくれたら詊したいんですがw

    ちなみにもっずパフォヌマンス䞊がんないの?ずいうこずでちょっずこの埌詊したした。


    配垃

    コヌドベヌス甚Dockerファむルセット

    https://script.google.com/macros/s/AKfycbxdcr8pnazR7RbjaSICTtaNWfN7h_rjQrKlZ3h9CZpPRFzRILk1OGc8mZqKbF-NXNO9/exec?name=コヌドベヌス甚Dockerデヌタ䞀匏

    リンク集

    感想投皿フォヌム

    コメントは公開で恥ずかしい!! Rcatだけに送りたい人向け

    Pythonのむンストヌル方法

    ミニPCにLinuxをむンストヌル


    コピペ゚リア

     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ