logo
/
2025-03-14 そろそろLLMをちゃんと触る
2025-03-14

経緯

軽く断片的には触っていたが、流石にとりあえず触ってみて未知への恐怖を取り除いておきたい

ログ

コーディング

調査

  • とりあえず仕組みやら概念やらベストプラクティスやらはおいておいて、自立型AIエディタみたいなやつを動かしてみる(この表現があってるのかすらわからん)
  • とりあえず今まで目にしたもの
    • Cline
    • Cursor
    • Devin
    • VSCode + Clinet(Roo Code)
プロンプト
  • Cline
  • Cursor
  • Devin
  • VSCode + Clinet(Roo Code)
    のメリデメなどを纏めてください
    他にもこれに相当する代替手段があれば教えて下さい
どれがどうこうというよりは、「LLMがクラウドかローカルか」「支援型か自立型か」の組み合わせがあるという認識で一旦良さそう
あとは「入出力がコードかチャットか」の違い(大抵はどっちもある)→前者を「エージェント型」と呼ぶ?
危険(インストール、ファイルWrite、その他コマンド実行など)を「自動承認か、都度承認か」を決められる
前者のほうが早いが、当然危険。DevContainerなどで隔離して、都度コードをcommit&pushしていつでも戻せる(壊せる)環境を用意しない限りはやめたほうが良さそう
気にするべき数字
項目名説明影響を受ける要素
Rate LimitAPIの利用制限(一定時間内のリクエスト数)クラウド版ツール(Cline API, Copilot, GPT-4 など)
トークン数1回の入力・出力に使えるテキストの最大サイズ(文字数に相当)モデルの性能・コスト・応答速度
コンテキストウィンドウモデルが一度に記憶できるトークン数長いコードの処理・会話の流れの維持
レイテンシ(応答速度)APIの応答時間(ミリ秒単位)クラウドAPI・ローカル推論のスペック
コスト料金(従量課金・月額制など)クラウド利用(API、サブスク)
VRAM使用量GPUのビデオメモリ使用量(ローカルモデル向け)ローカル実行時の必要スペック
CPU/RAM使用量モデル実行時のメモリ消費量ローカル実行の安定性
モデルサイズモデルファイルの容量(GB単位)ローカルインストールの負荷
ファインチューニング可否モデルの追加学習が可能かローカルでのカスタマイズ性
並列処理数一度に処理できるリクエスト数APIのスケーラビリティ
「~コスト」はクラウド版、「VRAM~」はローカル版で主に気にする内容だと思われる。
私はとりあえずクラウド版を触る予定なので、節約テクニックがあれば知りたい。
方法説明効果
プロンプトを最適化必要な情報のみを送る(余計な説明やコメントを削る)入力トークンを削減
関数・変数名を短く長すぎる識別子を適度に短縮入力トークン数の節約
圧縮表現を活用JSONやリストなどのフォーマットをコンパクトにデータの冗長性を減らす
出力の制限「箇条書きで出力」「最大X文字で回答」などを指示不要な出力トークンを削減
  • Rate Limitの文脈で「キャッシュ、バッチ処理など」も出てきたがサービスでAPIを使用する場合の話?AIエージェントでそれを実現することはできるのか?過去の提案を残しておくとか?
  • 基本的に色々短くするくらいしか方法がない?
  • 出力を制限はチャット型に限った話な気がする
AIエージェント型に限って聞く
方法説明効果
明確なタスク指示「〇〇を実装して」ではなく、「Aの機能をBの形式でCのルールに従って実装」と指示エージェントの不要な試行錯誤を減らす
分割タスクの抑制「全体を設計してから書いて」ではなく、「この関数だけ実装して」と細かく依頼APIの無駄な呼び出しを削減
不要な修正依頼を避ける曖昧な指示で「やり直し」させると無駄なAPIコールが発生修正回数を最小限に
リクエストのタイミングを調整まとめてリクエストし、逐次呼び出しを減らすAPIリクエストの最適化
プロンプトの簡潔化「〇〇の処理をして」ではなく、具体的な関数仕様を渡す入力トークン削減
コードコメントを減らす不要なコメントをAIに生成させない出力トークン節約
出力フォーマットを指定「コードのみ出力」「関数単位で回答」などを指示余計な説明を減らす
差分修正のみ要求「この部分だけ修正」と伝える長いコードの再出力を抑制
普通に仕事をするうえで意識することばっか(まあそりゃそう)
  • 無駄なやり取りを減らす
  • 効率的で具体的な指示を出す
Loading...
  • 一貫性のある開発をするためのメモリ(Cline自身が以前の作業を知るための唯一の手段?)

どれを触るのか

Cline/Cursor周りの記事

→ あとはAIに対する考え方に移動

実際に触ってみる

注意

Cursor

  • 使うまで
    • インストール
    • 初期設定
      • VSCode拡張機能とか設定とかを取り込んでくれた
      • DataポリシーはPrivacyじゃなくていい
      • 無料版でもアカウント登録しないとだめ?ダメっぽい→googleのKKで
  • どこから始めればいいかわからんな
    • とりあえず https://docs.cursor.com/get-started/welcome などをさらっと読み込むか
      • TabCtrl+KCtrl+Iだけ覚えれば良さそう あとはVSCodeと同じ感じで
      • 質問モード、編集モード、エージェントモード
      • タブ
        • Copilotのオートコンプリートと同様
        • 自動インポートとかカーソル予測とかは本質じゃない(普通に便利機能と思えば良い
      • エージェント
        • Yoloモードでターミナルコマンドを勝手に実行させられる→ガードレールに許可・拒否リストを入れておけば危険なコマンドは弾ける
        • ルールを使用して指示することもできる(これがよく聞くcursorrule
        • 編集モードは1ターンの編集用で、エージェントモードは問題解決まで複数ターン実行する感じ?
      • チャット
        • これでモードを切り替えて使用する 基本的にコミュニケーションインターフェースはこれで完結
        • チャット履歴、チェックポイントにアクセスができる
      • Ctrl+K
        • インラインチャットと考えれば良い(エージェントを省いた)
      • ルール
        • プロジェクト単位と、グローバル単位のルールがある
        • グローバルは共通ルール、応答の長さなど
        • cursorrulesは古いらしい(今はcursor/rules
          • 後者の方が細かくファイル分割ができそう
      • @シンボル
        • コンテキスト参照を指定できる
        • このファイルの内容説明してみたいな使い方や、web検索、カスタムdoc追加などいろいろあるので
      • cursorignore
        • アクセスファイルの除外
        • ただしベストエフォートなので必ずしも除外されることが保証されてはいない(AIで怖いのがこの辺なんだよな
      • MCP(ModelContextProtrol)
        • 最近Twitterでよく見かける
        • LLMを外部システムやデータソースに接続するプロトコル
        • GithubとかNotionとか
        • AIフレンドリーなサービスが多くなってくるんですかねぇ...(逆に人間はさわれないみたいな
    • 意外とドキュメントは短かった(まあそれで何をするの?が本質なわけで、使い方はスタートラインでしか無い
  • 食事管理アプリを作ってみる
    • とはいえまずどうすればいいかわからん ルール作成?
      • 簡単に始めるならチャットで少しずつ、マークダウンで設計書ごそっと用意してそれ読み込ませるという方法もある
      • 設計書の名前や形式は任意で、それを読み込ませれば良さそう(マークダウンが無難
    • 設計書の作成からサポートしてくれるのか...こりゃ凄いわ
      • ポン出しでとりあえず作ってもらって、後から手動で直せば良いと考えると明らかにハードルが下がる
    • まだ全然触ってないけど、結局「設計→実装→テスト→修正...→」のフローは何も変わらないな
      • そのコスト(実装・認知・調査)が圧倒的に下がるだけ
      • 要は強い人がもっと強くなって、ちょっと強い人が強くなって、弱い人は弱いまま
      • 結局要件を固めないと何もできない(何もできないは嘘か 要件を固めるところから手伝ってもらうこともできる)
  • k4a-logのリファクタを試す
    • 雑にパフォーマンス改善を頼んだが、キャッシュとかSSGとか一般的なところしか提案してくれない
    • まあどこがどういうふうに悪いかは実行してみないとわからんもんな... そのへんも勝手にやってくれるヤツはすぐに出てきそうだけど
    • 割としっかり嘘ついてくるし、mdからのポン出しはかなり効果的だけど、既存コードいじらせるのはなかなか難しい
    • そうなるとどこかでみた設計ファイルだけ管理してコードは都度生成みたいなのもありなのかもしれないな。。。(流石にない)
2025-03-14 21:47 なんとなくわかったわからないところがわかったので、あとは都度使いながら調べていけば良い

Devin

ちょっとお高すぎるかな
Cursor、Clineとは違い、サーバー上で自立的に動くものを考えておけばとりあえずはいいか...?
PCがなくてもSlack上などから指示できるところが明らかに違う(調査→実装→PRまで勝手にやってくれる感じ)
まさにエンジニアに依頼してその結果を確認するような完食
とりあえず小さめのタスクを投げておいて、気が向いたら確認して適当に修正して、をやればいい

検索

  • わからんのでChatGPTくんにいくつかまとめてもらう
  • 今自分が知っている(検証できる)ことを調べてもらう
  • Deep Research
    • perplexityと立ち位置は同じようなもの?
  • Perplexity
    • AI検索エンジンと自分で名乗ってる
  • NotebookLM
    • ユーザーが自分でノートやドキュメントをアップロードしてその内容に基づいて質問や分析ができる
    • 自社内QAとか、資格勉強のQA作成とか、より狭く深いドメインに向いていそう?
「perplexityなどで収集して、そのURLや自分が持っている情報をNoteBookLMにアップロードして、そこに質問をして情報を深堀りしていく」ような使い方

資料作成(ビジュアル)

  • 文字ベースの資料作成はコーディングと同じくCursor or Clineで良い
    • そうではなく所謂スライドとか、
    • ユースケースをいくつかまとめる
    • 適当に資料を1個作ってみる(1個つくれれば後は横展開なので...
  • Claude 3.7 sonnetという単語をよく見る
    • アンソロピック?実はもう3.8出てるとか無い?→流石になかった
    • kkでログイン
    • pro版に拡張思考モードでClaude 3.7 Sonnetを使用と書いてあるので、freeじゃ使えない?→使えはする
    • 拡張思考モードとは?
      • より時間をかけて推論や論理的思考を行うらしい
    • youtubeのURLを渡したらMermaidで纏めてくれた
      • そうじゃないんだよな
    • https://x.com/tetumemo/status/1896635693398679973 これ
      • プロジェクト機能というのがある?
        • 特定のタスクに特化したワークスペースを作成
          • memoryと考えればよいのか?
        • 探してもないぞ?なくなった?pro版だけ?
        • claude自体に聞いても全然教えてくれないし、上記URLを示してもダメ
      • とりあえずリンク先のプロンプトを張って適当な記事を変換させる
        • なるほどHTMLとCSSが出力される感じね
        • Mermaidと感覚的には同じだわ
      • たしかに凄い、凄いけど、まあ凄いねという感じで捉えておけば良い

感想

  • 情報技術の分野において(今のところは)、「入力と出力」が明示的になっていればその途中はAIに任せる事ができる所まで来ている
  • 私はコーディングの分野しかわからないが、文章・イラスト・動画なども同様
  • 物理世界の分野はまだ
    • まだというか、AIはそこにはアクセスできないので、それはまた別の文脈
    • まあ物理技術をAIが爆速で発展させる未来は全然あり得るけれど...
  • これはもう生成AIも一周回ってプログラミングのような立ち位置になるという気持ちで道具として受け入れて使うしか無い
    • どれだけの深さでどこに何を使うかは人それぞれ自由だが、私はこれを使わないというのは明らかにもう時代にそぐわないとしか言えない(残念ながら)
  • 世界から見た自分の立ち位置がどうなるかは正直想像もつかないが、自分は自分の人生の~~co-~~Pilotであること自体は不変の事実である
    • それならば、どんなに性能が良い(自分を超える)ものであっても、「道具」として扱っていくしか道はない