Upgrade to Pro — share decks privately, control downloads, hide ads and more …

気軽に試せる!ローカルLLMでのバイブコーディング - Oracle AI Jam Sessi...

Avatar for oracle4engineer oracle4engineer PRO
October 20, 2025

気軽に試せる!ローカルLLMでのバイブコーディング - Oracle AI Jam Session #29 -

Avatar for oracle4engineer

oracle4engineer PRO

October 20, 2025
Tweet

Video

More Decks by oracle4engineer

Transcript

  1. 一般的なLLMの利用方法 3 Copyright © 2025, Oracle and/or its affiliates クラウドサービス

    ローカルPCとは違うところで 動いているLLMを利用する
  2. ローカルLLMを動かす上で考慮すべきこと 基本的にはメモリ使用量だけ! LLMを動かすハードウェアにもよるが、どれくらいメモリを使うかだけ把握しておけば問題なく動かせる • 一般的なPCで、CPUのみで動かす場合 • RAMの容量がどれくらい必要か確認 • CPUで動かすので、LLMの推論に必要な行列計算は遅い →

    推論は遅め • ゲーミングPCなど、GPUで動かす場合 • VRAM容量を確認 • 一部をRAMに載せることもできるが、VRAM  RAM間の転送コストが発生する • GPUで動かすので、行列計算が早い → 推論が早い • Apple Silicon(ユニファイドメモリ)で動かす場合 • CPUとGPUが同じ物理メモリを共有している • RAMの容量を確認 • GPUで動かすので、行列計算が早い → 推論が早い 8 Copyright © 2025, Oracle and/or its affiliates 本日のデモはこちら M3 Pro 36GB Unified memory
  3. メモリ使用量に関わる要素は? モデルサイズとコンテキスト長 • モデルサイズ • モデルのパラメータ数とパラメータの精度(ビット数)から計算される • 基本的にはモデルサイズが大きいほど高性能 • コンテキスト長

    • モデルが一度に処理できるトークンの最大数のこと • 大きいほど長い会話や複雑な指示(コーディングエージェントなど)にも利用できる 9 Copyright © 2025, Oracle and/or its affiliates
  4. LLMのモデルサイズ パラメータ数 × パラメータの精度で決まる 例えば、Qwen2.5 Corder 32B(320億パラメータ)の場合 • 精度が32bit(= 4byte)のパラメータの場合:4byte

    * 320億 ≒ 128GB • 精度が16bit(= 2byte)のパラメータの場合:2byte * 320億 ≒ 64GB • 精度が4bit(= 0.5byte)のパラメータの場合:0.5byte * 320億 ≒ 16GB 10 Copyright © 2025, Oracle and/or its affiliates おおよそ一致している
  5. 量子化 モデルを圧縮する技術 通常、モデルは浮動小数点で重みを持つが、それを整数値で近似的に表現する 目的 • メモリ削減 • キャッシュ効率改善 • 推論スループット向上など

    量子化の種類 • GGUF (GGML Unified Format) ← これは量子化フォーマット • GPTQ (Gradient-based Post Training Quantization) • AWQ (Activation-aware Weight Quantization) 11 Copyright © 2025, Oracle and/or its affiliates オリジナル 量子化後
  6. 量子化 GGUF (GGML Unified Format) CPU向け量子化フォーマットで、GGMLというフォーマットの発展系 特徴 • GGMLと違い、モデルのメタデータやトークナイザも全て一つのファイルで表現 •

    CPUでの推論に最適化されている • 色々な量子化レベル(2bit, 4bit, 8bitなど)が用意されている • フォーマットなので、量子化手法そのものではない 命名規則 GGUFでは、量子化タイプに命名規則がある 12 Copyright © 2025, Oracle and/or its affiliates Q{ビット数}_{量子化タイプ}_{その他の情報} Quantization (量子化)の略 量子化後のビット数 量子化アルゴリズムや特性(0, 1, Kなど)
  7. 量子化 GGUF (GGML Unified Format) 代表的な量子化タイプ • Q4_0 • 4bitに量子化。タイプ0を使用

    • Q4_1 • 4bitに量子化。タイプ1を使用 • Q4_K_M • 4bitに量子化。タイプK(k-means量子化)を使用 • Q8_0 • 8bitに量子化。タイプ0を使用 使用するタイプによって、1パラメータあたりのbit数が少し違う • Q4_0:4.5bit • Q4_1:5.0bit • Q4_K_M:4.8bit 13 Copyright © 2025, Oracle and/or its affiliates
  8. 量子化 GPTQ (Gradient-based Post Training Quantization) GPUで推論することに最適化された量子化手法で、高精度を保ちながらメモリを大幅に削減できる 特徴 • GPUでの推論に最適化されている

    • 学習後のモデルを量子化できる(Post Training Quantization) • 主に3bit/4bit量子化で使用する 14 Copyright © 2025, Oracle and/or its affiliates
  9. 量子化 AWQ (Activation-aware Weight Quantization) モデルの出力する分布を考慮して量子化する、高度な量子化方式 特徴 • モデルの出力の変化を考慮して、影響力の大きい重みは高精度で残す •

    再トレーニングなしで使える • 4bit量子化でもFP16に匹敵する精度を維持できる • GPU向けの手法 15 Copyright © 2025, Oracle and/or its affiliates
  10. 量子化 MLX (Machine Learning eXtentions) Apple Silicon上でのモデル推論・学習を効率化するためのフレームワーク 特徴 • Apple

    Silicon上での計算を効率化する • このフレームワークを使ってモデルを変換する際に、量子化もできる 16 Copyright © 2025, Oracle and/or its affiliates MLXで変換されたモデルなので、 Apple Silicon上で高速に動作する GGUFなので、CPU環境に最適化 されている
  11. ローカルLLMの利用方法 代表的なもの2つを紹介 LMStudio • GUIで操作可能なデスクトップアプリ • モデルのダウンロード、チャット、API公開などすべ てGUIで完結 • 非常に簡単に始められる

    Ollama • CLIで操作するアプリケーション • モデルの管理・起動・推論実行をCLIコマンドで操作 • APIとしても利用可能 21 Copyright © 2025, Oracle and/or its affiliates 今回はこちらを利用します
  12. LMStudioの機能 モデルのダウンロード 23 Copyright © 2025, Oracle and/or its affiliates

    モデル名で検索 好きなモデルを選ぶ ダウンロード
  13. 従来のバイブコーディング 人間はコピペ職人になる 30 Copyright © 2025, Oracle and/or its affiliates

    わかりました! FastAPIを使ってTodo アプリのWebサーバ を… エラーが出たな、コピ ペして修正させよう Todoアプリ作って! エラーメッセージを 確認すると…
  14. 最近のバイブコーディング コピペすら不要に 31 Copyright © 2025, Oracle and/or its affiliates

    わかりました! FastAPIを使ってTodo アプリのWebサーバ を… Todoアプリ 作って! コーディングエージェント • LLMが実行したい操作の実行 • 操作の結果をLLMに送信 などを代わりにやってくれる やり取りのラリーは ここで行われる
  15. 今回のデモでは、Clineを使います 実行環境 • チップ:Apple M3 Pro • メモリ:36GB • ローカルLLMホスト環境:LMStudio

    • エディタ:VSCode • コーディングエージェント:Cline 39 Copyright © 2025, Oracle and/or its affiliates Cline on VSCode LMStudio OpenAI形式でAPI公開 APIアクセス
  16. Cline使い方ガイド *ClineのGitHubに、Clineがうまく生成できるようにするためのガイドがある • .clineignoreを活用 • 適切なプロンプトを使う の2点が述べられている 42 Copyright ©

    2025, Oracle and/or its affiliates * https://github.com/cline/cline/blob/0858ff517af6243427a45ee175f76abd596291ce/docs/prompting/prompt-engineering-guide.mdx
  17. Cline使い方ガイド .clineignoreの活用 Clineがコードベースを解析する際に、どのファイルとディレクトリを無視するかを決められる。 .gitignoreと同じ感じ。 目的 • ノイズの削減 • 自動生成されたファイル、ビルドの成果物などを除外 •

    パフォーマンスの向上 • Clineが処理するコード量を減らす(コンテキスト長の削減にもつながる) • 集中化 • 関係する部分だけをClineに与える • 機密データの保護 • センシティブなファイルはLLMに送らない(ローカルLLMなのでそこまで気にする必要はない) 43 Copyright © 2025, Oracle and/or its affiliates
  18. Cline使い方ガイド .clineignoreの具体例 44 Copyright © 2025, Oracle and/or its affiliates

    # Dependencies node_modules/ **/node_modules/ # Build outputs /build/ /dist/ # Testing /coverage/ # Environment variables .env .env.local # Large data files *.csv *.xlsx
  19. Cline使い方ガイド 効果的なプロンプト 効果的なプロンプトには、以下のような内容が含まれる • 明確なコンテキストの提供 • 目標と、コードベースの関連部分を説明する • @fileや@folderを活用 •

    複雑さを分解する • 大きなタスクを、人間側で小さなステップに分割して指示を出す • 具体的な質問をする • 検証と改良 45 Copyright © 2025, Oracle and/or its affiliates
  20. Cline使い方ガイド 明確なコンテキストの提供 Clineでは、@<keyword>で以下のコンテキストを明示的に指定できる。 • File • ファイルを指定して、コンテキストに指定できる • Folder •

    フォルダを指定して、コンテキストに指定できる • Git commits • Gitコミットを指定して、コンテキストに指定できる • Terminal • ターミナルの出力をコンテキストに指定できる • Problems • コードの文法の誤りなど、VSCodeに出ているエラーをコンテキストに指定できる • Paste URL to fetch contents • Web上のファイルなどをコンテキストとして指定できる 46 Copyright © 2025, Oracle and/or its affiliates
  21. Cline使い方ガイド .clinerulesの活用 プロジェクト固有のルールをあらかじめ記述しておける仕組み 例えば、以下のようなルールを記述しておける 47 Copyright © 2025, Oracle and/or

    its affiliates # プロジェクトガイドライン ## コード品質 - すべてのエンドポイント変更にはドキュメントとテストを伴うこと - `src/generated/` 以下は常に上書き禁止 - 命名規則:変数は camelCase、型は PascalCase ## コミットメッセージ - フィーチャー追加なら `feat:`、バグ修正なら `fix:` を先頭につける - 半角100文字以内に制限 ## API設計 - REST エンドポイントは plural 名詞 (`/users`, `/posts`) - レスポンスは常に `{ data: ..., error?: ... }` 構造に統一 ## テスト規約 - 単体テストは `tests/unit/`、統合テストは `tests/integration/` に配置
  22. AIによってプログラマーは不要になるか Clineを使ってみるとスラスラとコードを生成してくれるので、プログラマーが不要になってくるような気がしてくる ティム・オライリーは、*「The End of Programming as We Know it」という記事でこのことについて述べている

    • AIはプログラマーに取って代わることはない • ただし、AIはプログラマーの仕事を大きく変える • この変革に追従していく必要がある 49 Copyright © 2025, Oracle and/or its affiliates * https://www.oreilly.com/radar/the-end-of-programming-as-we-know-it/ まずは使ってみるところから!