序
LLM系AIは日進月歩。
……と言いたいところだけどそうじゃない。 超不安定。すごく役立っていたものが明日にはいきなり使い物にならなくなるということが普通にある。
というわけで、私の接し方のアップデート。
結論としては、
- Copilotはもうだめだ。でも英訳だけには使える
- Geminiが躍進。ないと生産性と創造性が大きく落ちるレベルで助かってる
- Devinは役に立つケースでの効果が極めて大きい
雑談系のAIは、現状どれも自然さが皆無なので、無理そう。
所感
Microsoft Copilot
Copilotは私が記事を書いた直後くらいから相当不安定になり、たまに直りつつもだいたいは不安定という推移の後、現在は「質問に大していい加減なことしか言わない、指摘しても訂正できない」という状態に落ち着いた。
本当にいい加減なことしか言わない。 かなり簡単なことでも正しい答を返さない。
というわけでほぼ使い物にならないのだけど、唯一役に立っているのが英訳。
私が自力でやるのより良いし、DeepLよりもずっと良い。 長文を一気に翻訳してくれるので助かっている。
ただ、これも最近若干怪しくなっている。 まだDeepLよりも良いけど、以前よりクオリティが低い。
Google Gemini
ジャミナイじゃなくジェミニって呼んでね、ってことらしい。
以前は検索上位の結果を混ぜたデタラメな内容しか言わなかったGeminiだけど、ある時期を境にめちゃくちゃ良くなった。
ただし重要な点として、検索ページに出てくるGeminiはまだ結構いい加減なことを言うけど、「AIモード」を選択するとまともな回答に変わるということがある。
さらに、https://gemini.google.com/のものは検索ページのAIモードともまた違うらしい。 つまり、この時点で3種類いる。
ここで話は終わらず、GeminiはGoogle AI Plus, Google AI Pro, Google AI Ultraという有料プランがあり、この契約は検索ページのほうにも影響するという。 Geminiアプリでは「思考モード」「Proモード」が選べるし、その結果も契約によって違う。じゃあ12種類かというと、CLIだとまた違う。とにかくいっぱいある。
検索しても出てこない情報をかなり正確に出してくれるのですごく助かっている。 そこそこ専門的な内容もいける。 こないだはラルフ・シューマッハー(※ドラマー)について聞いたら、一発で詳しい情報を返してくれた。
今のGeminiならActivityPubについても教えてくれるかもしれない。
時系列にはやや弱く、Geminiの言う「最新情報」は全然最新じゃない傾向がある。 あまり知られていないライブラリやプロジェクトを探すのにも使えるけど、現役かどうかといったあたりの回答は結構怪しい。
また、Copilot以上に否定に弱く、2回くらい「そうではない」「それは間違っている」と指摘するとガッタガタになりがち。 なので、何かを探しているときは早期に見つけられるかどうかが重要になる。
質の高い情報をもらったときも、Copilotみたいに本文をMarkdownで取ることはできないのは難点。
ただし、一時期と比べるとやや精度は落ちた。 最近は回復傾向だけど、今後は注視。
Google検索の質は下がっているので、「検索するよりもGeminiに聞くほうが早い」という状況が増えている。 もちろん、思考停止でGeminiに聞くのはNG。
ChatGPT
いつの間にかアカウントなしで使えるようになっていた。
まだ探り探りだけど、会話よりなので「返ってくる答えは的を射ていないけど、自分が漠然と考えていることを(ChatGPTの出力に対して「そういうことではない」と考えることで)輪郭を捉えられるようになっていくという点で使えると見てる。
Devin
私はそんなに使えると思ってないけど、ピンポイントではすーごい便利。
「え、なんでこれこの挙動になってる?」みたいなすーごい時間のかかる調査で、短時間で相当絞り込んでくれる。
あと、めちゃくちゃ複雑なデータベーススキーマが組まれている場合に、「これはどこから?」「これとこれの組み合わせのときにこれはユニーク?」みたいな質問もいい。
Claude
今のところ良いところ、良い使い方を見つけられていない。
指摘は視野が狭くて見当違いみたいなことが多いように思う。
in Codes
総合的に
「頼るには頼りないが、ピンポイントの成果がものすごい」というのが現状の結論。
私はコードは書けるし、どう書くべきか分かっているし、どう書かれたものであるべきかの判断もできる。 なので、AIに頼らなくても書けるし、AIが出したコードがどの程度適切かも分かるので、私がすぐに書けるコードはプロンプトを書いている間に書き上がる。なのでAI前提の書き方をしたりはしない。
ただ、コードをたくさん書く人には共感してもらえると思うのだけど、コードを書いている時間の中で多くを占めているのは書けるコードを書いている時間ではない。大抵はなにかしらうまくいっていないか、分からないときだ。
これにはいくつかの典型的なパターンがある。
- やろうとしていることに適したライブラリやソフトウェア、あるいは言語の機能がありそうなのだけど、ちょっと探しても見つからない
- 「こういう方法でアプローチすると良さそう」まで見えているのに、必要な機能が見つからない
- 局所的にものすごく難しい機能や仕様がはさまってきて、読み解くのがあまりにも大変
- スキーマとか既存コードとか、膨大な既存が絡み合っていて結論としてどうなっているのがかぱっと見に分からない (私自身が書くコードでは発生しないやつ)
- 動くと思うのになぜか挙動が怪しい
- エラーが出ているが一見正しそうに見えて、なんでエラーが出ているのかわからない
こういう特定のところで詰まっている時間が圧倒的に長い。
で、こういうのをAIに聞くと一瞬で解決したりする。
だから私の感覚としてはAIの出番、活躍の場は少ないのだけど、9割の時間を浪費している1割を秒殺してくれているので、トータルのベネフィットはかなりでかい。
だから頼り切りになることはできないし、私の代わりにコードが書けるようになる気は微塵もしないけど、「好きじゃないけど役に立つから積極的に使う」が成立するくらいの効果はある。
実際にどれくらい影響が出ているか
概要
2026年の1月1日〜2月16日までで私はGitHubに10のリポジトリを作り、9のソフトウェアを新規にリリースし、4のリポジトリを更新した。 これは過去にないペースである。
ではこのうちAIの力を借りたのはどれかというと。
- kolmics
- test-actions-pbsimply
- xxwmp
- pubkeyauth.js
- pubkey-auth-handler
- mewduct
なお、最近はREADMEは基本的に日本語で書いてCopilotに翻訳してもらう、を採用しているが、これはほぼ全部なので省略する。
ではどれくらいの影響があったか。
mewduct
mewductは動画の再生開始がとても遅いという問題があり、その解決策を模索していたときに手伝ってもらった。
これにより、mp4のfaststartや、WebMでメタデータを先に置く方法について解説してもらい、解決した。
また、Nginx, Caddy, Lighttpd, Apacheの設定サンプルを書く際にも色々と質問した。
XXWMP
ちょっと変則的なところで、LWMPでwindowのloadイベントを拾っている初期化がうまく動作しない部分になっていて、「なぜ私はloadイベントで初期化したのか」がコードから全く読めなかったため、「この初期化はloadを待つ必然性があるか?」を聞いた。
kolmics
Neutralinojsについて質問しながら進めた。 割と読みにくいドキュメントになっているので、ドキュメントを読み解くよりもGeminiに「こういうことがしたい」で答えてもらったので相当横着したけれど、当然ながらそういう使い方をしたので「そうじゃない」という回答が返ってくることも多かったし、ピンポイントで使うのと比べるとだいぶ効率が悪かった。
噛み合わなかった部分としては、LWMPで画像を読んでいる部分のコードを提示して、これをNeutralinojsで表示できるようにする必要があるということについて、ファイルを読んでBlobに入れてという処理を提示してきたのだが、それが「ファイルパスにスペースがあると動作しない」という問題に直面したこと。
私が「本当に? 本当にそんなことある?」と聞いたところ、Geminiは「信じられないかもしれないけど、コミュニティでも議論されている仕様なんだ」というふうに返してきた。
そして、代替案として別途webサーバーを立てて取得する、というのを出してきたので「webサーバー立てることが許容できるならそもそもデスクトップアプリ版を作る必要ないやろがい」というツッコミを入れる一幕も。
そして出てきたのがmount。
「それがあるならそれでいいじゃんかー!」のツッコミを追加。
また、別日にはキャッシュについて相談。
img.srcで読み捨てたら無限にメモリにたまるのか? ということを聞いた。
そして、その話の中で decode() を知る。
test-actions-pbsimply
GitHub Actionsについて色々聞いた。
これもGeminiに手伝ってもらいながら書いたもの。
pubkeyauth.js / pubkey-auth-handler
これはもう、時間短縮ではなく、AIがなければ書けてないの類。 「こういうことがしたくて、こういうロジックを考えている」というレベルから相談を始めているし、その回答で出てきたコードを参考に書いている。
cryptoまわりもそうだし、IndexedDBについてもあまり知らなかったし、Cookieの細かい挙動についても知る必要があって、相当頼った。
サーバー側も結構頼って、サーバー側は言語何で書くかも決めかねていたので、表に出ていない部分でもかなり活躍している。
Geminiはこんな感じ
コードを書く場面が今特になかったので、コードというかLinuxの話だけど。
より正確に言うと意図としては
* ファイルサーバーの階層をエクスポートしたい (いちいちファイルサーバー内で探さなくていいように)
* ファイルサーバーはHDDだし処理能力も低いのでできるだけ負荷をかけたくない
* なのでfind(1)で1周だけする方法をとりたい。stat呼ぶのも避けたい
* この結果をパワーのあるPCで構造化するつもり
* ただそれだとそのファイルがディレクトリなのかリンクなのかも分からないから、せめてファイル種別を知りたい
* シンボリックリンクはリンク先がわかるとより良い
みたいな感じ。
それこそls -RFで出力したものを解析してもいいんだけど、その方法は紛れが発生しないと断定できるほどの確信がなくて
ご提示いただいた意図、非常によく分かりました。
「一度の走査で済ませたい」「stat を何度も呼びたくない(I/O負荷を下げたい)」「後でパースしやすい」という要件であれば、find の -printf アクション(GNU findの場合)を使うのが最適解です。
推奨コマンド
以下のコマンドで、ファイルパス、種別、リンク先を一括で出力できます。
find . -printf "%p\t%y\t%l\n" > file_list.tsvコードは注意してご使用ください。
このコマンドのメリット
- 1回の走査で完結:
findがディレクトリを舐める際に保持している情報を出力するため、別途 ls や stat を子プロセスとして起動するオーバーヘッドがありません。 - 低負荷: ファイルの中身には触れず、メタデータのみを拾うのでHDDへの負荷が最小限です。
- 解析しやすい: タブ区切り(TSV)にしているので、後段の処理(Python, awk, Excelなど)で安全に構造化できます。
出力フォーマットの解説
-printf で指定している各項目の意味は以下の通りです。
| フォーマット | 意味 |
|---|---|
| %p | ファイルのパス |
| %y | ファイルタイプ(f:ファイル, d:ディレクトリ, l:リンク など) |
| %l | シンボリックリンクの参照先(対象がリンクでない場合は空文字) |
| タブ区切り(パスにスペースが含まれる場合を考慮) | |
| 改行 |
[!TIP]
ファイルサイズや更新日時も欲しい場合
後で「どのファイルが重いか」なども調べたい場合は、%s(バイトサイズ)や %T+(最終修正日時)も追加しておくと、さらに「後で使える」リストになります。
例: -printf "%p\t%y\t%s\t%T+\t%l\n"
注意点:BSD系(macOSなど)の場合
もしファイルサーバーのOSが BSD系(macOSなど) の場合、標準の find に -printf がありません。その場合は以下の方法をとります。
- GNU find (findutils) が入っている場合:
gfindコマンドで上記を実行。 - 入っていない場合: 負荷はわずかに上がりますが、
-lsオプションを使うか、以下のようにlsを組み合わせます(ただし、パースの難易度は少し上がります)。
この出力フォーマットで、後の構造化処理に十分そうでしょうか?もし「特定の深さまでで止めたい」などの追加条件があれば教えてください。
ファイル名には\tが入る可能性があるから、十分な答えではないけど、使えるレベルの回答になっている。
もっとGemini
よくあることだけど、記事を書いている間に状況が変わった。
Google AI Pro契約しちゃった。
正直、Geminiは完璧にはほど遠いが、Geminiが出している成果は十分な影響力を持っている。 私はGoogleが嫌いだし、LLM AIが嫌いだけれども、評価に余事を混ぜないという信念によりGeminiは実用的に優れたツールであるとみなしている。
また、ここのところ感じているのは、LLM AIはタスクによって価値の変動がすごく大きいということ。言い方を変えれば、強力な場面では「10日かかる作業を数分に」が可能だということ。
これは特にDevinで感じた。複雑に絡み合ったものの調査を一発でやってくれるのはあまりにも大きい。
これを踏まえると、例え活躍の場面が2〜3ヶ月に1回であっても使う価値はある。
それと私の場合は使用するライブラリやソフトウェア、場面で適切な方法など結構模索が続くことがあるから、知識豊富な相談相手が欲しい。
Geminiは相談相手としてはまあまあ機能している。ちょっと物足りないけど、課金してもいいラインではある。ただ、課金するならもうちょっと詳しくて正確というか、頼りになるほうがいいとは思う。
なのでもっとコンピューティング向きで、頼れる感じのAIがあれば契約してみてもいいなと思った。 月3000円くらいまでで。
Devinも検討したのだけど、Google AI Proがなかなか魅力的な機能で、既に実績のあるGeminiが強化されること、そしてGoogle版DevinともいうべきJulesがあるということでGoogle AI Proを契約。 月2900円という価格もドンピシャだった。
GeminiとGoogle AI Proについて解説していたら記事がかなり長くなってフォーカスがぼやけてしまったので、後日別記事として出すことにした。