GenAI 関連メモ
2025/05/09 17:11
2025/05/12 08:22
- GenAI についての情報量が死ぬほど多くて結局何もわからない
- ブックマークしてるだけでは自分のなかに知識が蓄積されない
- 各サイトにどんなことが書いてあって、どんなことを思ったのかを分野別にメモっていくことにより将来疑問が生じたときにすぐに参照できる状態としておく
LLM そのものに関するトピック
そもそも LLM とはなにか
RAG とはなにか
MCP とはなにか
- なにか的情報
- 使い方的情報
最小の MCP 実装
MCP とはなにか
- MCP は Model Context Protocol の略
- LLM アプリケーションにおけるHost、Client、Server 間のやり取りを管理するプロトコル
- メッセージフォーマットとしてJSON-RPCを用い、stdio や Streamable HTTPなどの通信手段を推奨
- Client と Server 間の通信には、Initialization、Operation、Shutdownの 3 つのフェーズがある
- Host はユーザー入力と LLM とのやり取りを管理し、その結果をユーザーに示す役割を担う
- MCP Client は MCP Server に対してリクエストを送り Host に結果を返す
- MCP Server は Client からのリクエストを受けて所定の処理を行い Client に結果を返す
- 初期化フェーズが完了するまで、PING/LOGGING 以外のメッセージ送信は制限される
MCP はなんの役に立つのか
- LLM が外部の機能(Tool)を実行することを可能にする。例として、指定された面数のサイコロを振るといった機能の実装がある
- LLM アプリケーションが、ユーザー入力に基づき LLM に次に何をすべきかを判断させ、その結果としてMCP サーバーの Tool を実行するといった処理の流れを実現する
- コーディングエージェントのように、LLM が外部システムと連携して特定のタスクを行うアプリケーションで利用される
- LLM アプリケーション(Host/Client)が、外部サービス(MCP Server)が提供する利用可能な Tool を一覧取得(list_tools)したり、特定の Tool を呼び出して実行(call_tool)したりするための標準的な仕組みを提供する
- SDK を利用する場合、開発者は低レベルな Client/Server 間の通信処理を自身で実装する必要がなく、Tool の定義に集中できるようになる
- 最新の仕様ではAuthorizationに関する機能も追加されており、セキュリティの側面も考慮されている
- 仕様に基づいた実装レベルでの学習を通じて、MCP の理解を深めることができる
言語処理について学びたい
ソフトウェア開発への応用に関するトピック
Claude Code による Agentic Coding
- Claude Code とは
- Anthropic が開発した、agentic coding のためのコマンドラインツール
- この記事に書かれてることのさわり
- ツールのセットアップ方法
- bashツールの活用/MCPの活用/カスタムスラッシュコマンドの作成 など外部との連携
- ツールを使った一般的なワークフロー
- 探求、計画、コード、コミット
- テストを書く、コミット;コード、反復、コミット
- コードを書く、結果をスクリーンショット、反復 etc...
- ほか、高度な話題が続く
@t_wada さんのツイートから発見した記事: Takuto Wada on X: "過去に何回も「死んだ」と言われてきた(その都度生き残ってきた)テスト駆動開発が、 agentic coding 時代になって AI の暴走を防ぐガードレール技術としてさらに脚光を浴びることになるとは https://t.co/0OaD6n3mf5" / X
Figma がそのままウェブサイトになる
3D モデルの作成
業務活用に関するトピック
ドキュメントのデータベース化
資料作成
旅行
活用事例リンク集
- 生成AI、どう使う? プレイド社内LT会で活用のヒントを探ってみた!
- 採用面談の日程調整
- お客さんの商品データを検索
- Cline + ChatGPT 4o 画像生成を使ったOSS開発
- 生成AIにサポートサイトドキュメントを書かせて公開
- ボランティアのイベント告知サイトの更新をClineを使ってほぼ自動化
- AI開発基盤
- セキュリティレビュー
- 組織サーベイの分析
プロンプトに関するトピック
LLM サービスのベースとなるプロンプト
本当かどうかは知らないが LLM サービスのベースとなるプロンプトがたくさん転がってるリポジトリ
出力形式の制御について
サービスに関するトピック
Bedrock における RAG 評価機能と LLM-as-a-Judge 機能
評価手法に関するトピック
LLM アプリケーションの評価手法入門
- プログラミングは明確なルール・条件に基づいて動作するが、生成 AI はプロンプトベースの指示による意図しない出力やハルシネーションなどが発生しうるため **目的を達成できているかどうかの評価が実用上必要
- 評価対象には LLM モデルそのものファインチューニングしたモデルなどがあるが、LLM アプリケーションを作成する上では「目的を達成できているかどうか」が評価対象となる
- 分類→分類に応じた出力といったようにプロンプトが別れていればそれぞれのモジュールを評価できる
- 評価方法にはオンライン評価とオフライン評価がある
- オフライン評価: 事前準備したデータセットで評価
- オンライン評価: 機能稼働後、実ユーザーの反応やトラフィックで評価
- 評価指標はいくつかのレイヤーに分けることができる
- レベル1: LLM 機能・アプリケーションそのものの評価
- 出力の評価(Grand Truth 比較、妥当性評価)
- レイテンシーなどの非機能要件の評価
- レベル1: LLM 機能・アプリケーションそのものの評価
- レベル2: ユーザーの反応や挙動の評価(Good/Bad ボタン、クリック率など)
- LLM 機能以外の UX にも影響され、KPI の先行指標となりうる
- レベル3: KPI 向上評価(購入率、継続率、生産性向上など)
see also: LLMプロダクト開発における独自評価基準とデータセットの作り方の考察
Bedrock における MCP の活用
LLM-as-a-Judge を利用した LLM の評価
- LLM の評価観点 (TrustLLM: Trustworthiness in Large Language Models より)
- 真実性
- 安全性
- 公平性
- 堅牢性
- プライバシー
- 機械倫理
- アプリケーションにあった品質評価
- LLM-as-a-Judge は LLM アプリの出力に対して例えば下記のような評価を LLM に行わせる
- ニ値分類: ある条件を満たしているか Yes/No で判断させる
- 回帰: 条件 A を満たしていれば +X 点、条件 B を満たしていれば +Y 点というような形で点数評価させる
promptfoo を利用した LLM アプリの評価
Pinned Articles
About
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです
Tags
LLM
promptfoo
GenAI
JavaScript
PowerShell
fluentd
kibana
elasticsearch
nginx
村川梨衣
五十嵐裕美
イベント
logrotate
IoT
Scala
Java
ICMP
iputils
C言語
WUG
mastodon
Swift
AWS
Windows
Clock
PoEAA
アーキテクチャ
iOS
DeviceFarm
プログラミング言語
OS
StepFunctions
Lambda
Serverless
terraform
ポエム
RHEL
ネットワーク
GraphQL
CloudWatch
Linux
Coreutils
nc
network
telnet
LinuxKernel
fpinscala
ELB
IAM
AppSync