LLM 研究ノート
スマホで Vibe Coding したい
要件
スマホから最低限チャットだけ
PC への切替は容易にして、PCからは全てを弄りたい
Web開発できるように
やり方
Tailscale + OpenSSH
Oracle Could
ツール
LiteLLM
複数プロバイダー(OpenAI、Anthropic、llama など)を統一のインタフェースで扱える
AIエージェントの開発用フレームワーク
LLM のモデルと MCP を連携させることができる(たぶん)
Vibe Coding の環境作り
人間がやっていることを LLM からもできるようにする
コードの閲覧、編集、実行
定義ジャンプ、参照一覧、命名変更
llm に lsp を使わせるにはカーソルが基準となってやりづらいらしい
実行結果の確認(ログの確認)
エラーが起きた時のデバッグ情報の確認
リンター、フォーマッタ
テストコード
grep, rg, fd
その他、人間がやっていること
変更容易性
コードの影響範囲を小さくする
アンチ DRY
どうせ書くのは AI
似たような処理はまとめない
変に抽象化しない
変に楽しようとしない
たくさん書く
フォールトトレラント (Fault-tolerant)
多少変なデータでも動いちゃう方が vibe には重要な要素になるかも
重要な性質
探索性:必要な時に必要な情報を得れるか
自律性:「コードの編集、コードの実行、実行結果の確認」といった開発サイクルを LLM だけで行えるか
変更容易性:コードが疎結合か
情報量、探索性、実行性、自律性、変更容易性
Vibe Coding
たぶん適切な情報を渡してやれば上手く行ける気がする
足りない部分は MCP を作ることで補う形にしていけば Vibe Coding に近づける気がする
Vibe ツール自体も AI に作ってもらう
導入したい
ChatGPT
Gemma
ベンチマーク
code:text
Q1. 富士山はどこにありますか?
Q2. 犬は哺乳類ですか?
Q3. 1+1はいくつですか?
Q4. 「空が青い理由を説明してください。」
Q5. 英語で「ありがとう」は何と言いますか?
code:text
1+1 はいくつですか?
富士山はどこにありますか?
英語で「ありがとう」は何と言いますか?
「鶏が先か卵が先か」というのはどんな問題ですか?
「赤いりんご」とはどんなものですか?説明してください。
次の文章を要約してください:「今日は朝から雨が降っていたが、午後には晴れ間も見えた」
「彼は走ったが、間に合わなかった」→なぜ走ったと思いますか?
Pythonで「Hello, world!」を出力するコードは?
次の単語の品詞は?「速く」
地球は太陽のまわりを回っていますか?
概念
LoRA(Low-Rank Adaptation)
大規模言語モデル(LLM)のファインチューニングを軽量に行うための手法