AI エンジニアリングは、テクノロジー業界において最も価値のあるスキルセットの 1 つとして急速に成長しています。
問題は、ほとんどの初心者が具体的に何を学ぶべきか明確なイメージを持っていないことです。
機械学習の理論から始める人もいれば、ひたすらチュートリアルを観続けてしまう人もいます。また、API やバックエンドの基礎、実際のプロダクトがどのように構築されるかを理解せずに、いきなりプロンプトやエージェントに飛び込む人もいます。
結果は大抵同じです。多くの混乱と、実践的なスキルの不足です。
AI エンジニアを目指すなら、人工知能のあらゆる分野を極める必要はありません。必要なのは、現実世界で役立つ AI システムを構築する方法を学ぶことです。
つまり、以下のことを学ぶ必要があります。
- LLM を使ったエンドツーエンドのアプリケーションを構築する
- OpenAI や Anthropic などのモデル API を操作する
- プロンプトとコンテキストを適切に設計する
- 構造化出力とツール呼び出しを使用する
- 必要に応じて検索機能を追加する
- 実際に人々が使えるようにプロジェクトをデプロイする
このガイドは、実践的な 6 ヶ月のロードマップを提供するために作成されました。
この記事は 10,000 語以上あるため、読むのに数時間、あるいはそれ以上かかるかもしれません。
しかし、本当の価値は、学ぶ必要のあるすべてのスキルについて、リソースと何をすべきかの明確な説明があることです。そうすれば、6 ヶ月以内に AI エンジニアリングのレベルに到達し、最初の 1~2 ヶ月のうちに自分自身で使い始めることができます。
この記事を書くのに 40 時間以上かかりました。そして、友人である @andy_ai0 と一緒に取り組みました。
彼は X で自分のパーソナルブランドを構築し始めたばかりですが、AI を非常によく理解しており、この記事に大いに貢献してくれました。彼が成長するにつれて、ぜひフォローとサポートをしていただきたいと思います。
それでは、記事を読み始めましょう ⬇️
AI エンジニアの実際の仕事
多くの人は「AI エンジニア」という言葉を聞くと、巨大なモデルをゼロからトレーニングしている人を想像します。
実際には、現代の AI エンジニアのほとんどは、もっと実用的なことを行っています。既存のモデルの上にプロダクトやシステムを構築するのです。
通常、これには以下が含まれます。
- LLM の API に接続する
- プロンプトとコンテキストフローを設計する
- チャット、検索、自動化システムを構築する
- ツール、データベース、外部 API を統合する
- 構造化出力を処理する
- 信頼性、コスト、レイテンシを改善する
- AI 機能を実際のアプリケーションにデプロイする
そのため、実際の AI エンジニアは、以下の間のどこかに位置することがよくあります。
- ソフトウェアエンジニアリング
- プロダクトエンジニアリング
- 自動化
- 応用 AI
これが、この役割が急速に成長している理由です。企業が必要としているのは研究者だけではありません。モデルを活用して有用なプロダクトに変えることができる人材が必要なのです。
だからこそ、このロードマップは重い理論よりも実践的な実行に重点を置いています。本物の LLM アプリ、検索システム、自動化、本番環境対応のワークフローを構築できるなら、ほとんどの初心者よりもずっと雇用に近い存在です。
⏩------------------------------------------------------------------------⏪
1 ヶ月目:コーディングと基礎をしっかり固める
今月の目標: 実用的な Python 開発者になること。
エキスパートである必要はありません。基本的な構文を Google で調べる必要がなくなり、自信を持って簡単なプログラムを構築できるようになることが目標です。
AI エンジニアリングは、まず第一にソフトウェアエンジニアリングです。後の月のすべては、クリーンな Python を書き、ターミナルを使い、API を呼び出し、コードベースを管理できることを前提としています。今月はその基盤です。
学ぶべきこと
1. Python
Python は AI エンジニアリングの言語です。これに尽きます。今後 6 ヶ月間に遭遇するほとんどすべてのライブラリ、API、チュートリアルは Python で書かれています。
学習方法:
ビデオをただ見るだけではなく、コードを書くことを強制される構造化されたコースから始めましょう。初心者が犯す最も一般的な間違いは、コンテンツを受動的に消費し、読んでうなずき、コードエディタを開かないことです。
これを防ぐには、すべての例を実際に自分でコード化しながら進めてください。
リソース:
1. Python for Everybody (Coursera、無料監査可能)
リンク: https://www.coursera.org/specializations/python
完全な初心者に最適なスタート地点です。Dr. Chuck はインターネット上で最も初心者に優しい Python 講師の 1 人です。
2. freeCodeCamp Python コース (YouTube、無料)
リンク: https://www.youtube.com/watch?v=rfscVS0vtbw
すべての基礎をカバーする包括的な 4 時間のビデオです。
3. CS50P: Python を使ったプログラミング入門 (ハーバード大学、無料)
リンク: https://cs50.harvard.edu/python/
より本格的です。問題セットと最終プロジェクトが含まれています。構造化された学習を希望する場合に最適です。
4. 公式 Python ドキュメント (チュートリアル)
リンク: https://docs.python.org/3/tutorial/
やや無味乾燥ですが、信頼性が高く、リファレンスとして使用してください。
重点的に学ぶこと:
- 変数、データ型、ループ、条件分岐、関数
- リスト、辞書、セット、タプル
- ファイル I/O と JSON の操作
- クラスと基本的な OOP (読んでいる内容を理解するのに十分な程度)
- try/except を使ったエラーハンドリング
- 仮想環境 (venv) と pip
- パッケージ管理 – requirements.txt の理解
練習プロジェクト: Python でシンプルな CLI ツールを構築してください。例えば、JSON ファイルを読み書きする個人用支出トラッカーや、公開 API (天気 API など) を呼び出して結果を整形表示するスクリプトなど。
2. Git と GitHub
Git はプロの開発者がコードを保存し共有する方法です。プロジェクトのバージョン管理、コラボレーション、GitHub でのポートフォリオ公開のために常に必要になります。
学習方法:
Git は最初は混乱しやすいものです。なぜなら、そのメンタルモデルが自明ではないからです。コマンドを暗記しようとせず、Git が解決する問題 (変更の追跡、コラボレーションの実現、ミスの取り消し) を理解すれば、コマンドは自然と意味がわかるようになります。
リソース:
1. GitHub Skills (無料、インタラクティブ)
リンク: https://skills.github.com/
GitHub 自体に組み込まれた公式のインタラクティブコース。ここから始めましょう。
2. Learn Git Branching (無料、インタラクティブ)
リンク: https://learngitbranching.js.org/
ブランチとマージを理解するための、間違いなく最高のビジュアルツールです。
3. Pro Git Book (無料のオンラインブック)
リンク: https://git-scm.com/book/en/v2
包括的なリファレンスです。必要な章にジャンプしてください。
重点的に学ぶこと:
- git init、add、commit、push、pull
- ブランチとマージ
- .gitignore の理解
- GitHub でリポジトリを作成し、ローカルプロジェクトをプッシュする
- 基本的な README ファイルの読み書き
練習: 今から、構築するすべてのプロジェクト (小さなスクリプトでさえも) は GitHub リポジトリに入れてください。これで習慣が身につき、ポートフォリオにもなります。
3. CLI / ターミナルの基本
AI エンジニアとして、スクリプトの実行、パッケージのインストール、サーバーの管理、ファイルの操作をすべてコマンドラインから行うことになります。ターミナルで遅かったり怖がったりするのは、大きな妨げになります。
リソース:
1. 最も人気のある Linux & ターミナルコマンド 50 (初心者向け完全コース)
リンク: https://www.youtube.com/watch?v=ZtqBQ68cfJc
Linux/Mac の初心者に適しています。
2. MIT の The Missing Semester of Your CS Education (無料)
リンク: https://missing.csail.mit.edu/
シェルスクリプト、ターミナルツール、そしてほとんどの CS コースで省略されるコマンドラインの流暢さをカバーしています。
重点的に学ぶこと:
- ナビゲーション: cd、ls、pwd、mkdir、rm
- ファイルの読み取り: cat、less、grep
- ターミナルから Python スクリプトを実行する
- 環境変数
- PATH の基本的な理解
4. JSON、API、HTTP、非同期の基本
2 ヶ月目の初日から LLM API を呼び出すことになります。つまり、OpenAI や Anthropic の SDK に触れる前に、Web API がどのように動作するかを理解しておく必要があります。
リソース:
1. HTTP の基本 – MDN Web Docs (無料)
リンク: https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview
HTTP リクエストとレスポンスの仕組みについて最も明確な説明です。
2. REST API チュートリアル
短くて実用的です。
3. Python requests ライブラリドキュメント
リンク: https://requests.readthedocs.io/en/latest/
Python で任意の Web API を呼び出す方法を学べます。
4. Python の async/await (無料)
リンク: https://realpython.com/async-io-python/
後でストリーミング LLM レスポンスを扱うために、非同期の理解は不可欠です。
重点的に学ぶこと:
- GET、POST リクエスト – それらが何であり、Python でどのように行うか
- JSON の読み書き
- HTTP ステータスコード (200、400、401、404、500 – それぞれの意味)
- API キーとは何か、基本的な認証パターン
- async def と await の役割と存在理由
練習プロジェクト: 無料の公開 API (天気データ用の Open-Meteo – API キー不要) を呼び出し、結果をクリーンな JSON 出力として整形する Python スクリプトを作成してください。
5. 基本的な SQL と Pandas
データサイエンティストである必要はありませんが、データの調査、クエリ、操作は定期的に必要になります。SQL の基礎と Pandas の習熟度は、常にあなたを助けてくれます。
リソース:
1. SQLBolt (無料、インタラクティブ)
リンク: https://sqlbolt.com/
SQL をゼロから学ぶ最速の方法です。ブラウザ内で練習できる 20 の短いレッスンがあります。
2. Pandas 公式スタートガイド
リンク: https://pandas.pydata.org/docs/getting_started/index.html
「10 Minutes to Pandas」チュートリアルを一通りやってみてください。
3. Kaggle Pandas コース (無料)
リンク: https://www.kaggle.com/learn/pandas
実践的で、短く、手を動かせます。
重点的に学ぶこと:
- SQL: SELECT、WHERE、GROUP BY、JOIN、ORDER BY
- Pandas: CSV の読み込み、行のフィルタリング、列の選択、基本的な集計
6. FastAPI
リソース:
1. FastAPI 公式チュートリアル (無料)
リンク: https://fastapi.tiangolo.com/tutorial/
本当に、これまで書かれたフレームワークのドキュメントの中で最高のものの 1 つです。最初から最後までやり遂げてください。パスパラメータ、リクエストボディ、Pydantic によるバリデーション、開発サーバーの実行をカバーしています。
2. Python API 開発 (19 時間コース、freeCodeCamp、YouTube、無料)
リンク: https://www.youtube.com/watch?v=ZtqBQ68cfJc
ルート、シリアライゼーション、スキーマバリデーション、SQL データベース統合を含む API 設計の基本をカバーしています。フル機能のソーシャルメディア風 API をゼロから構築します。
重点的に学ぶこと: GET と POST エンドポイントの作成、パスパラメータとクエリパラメータ、Pydantic を使ったリクエストボディ、uvicorn の実行、FastAPI の組み込み /docs インターフェースを使ってクライアントを書かずに API をテストする方法。
1 ヶ月目のマイルストーン
今月末までに、以下のことができるようになるべきです。
- ファイルの読み書き、API の呼び出し、エラー処理を行う Python プログラムを作成する
- Git でコードをバージョン管理し、プロジェクトを GitHub にプッシュする
- ターミナルをためらわずに操作する
- HTTP リクエストとは何かを理解し、Python でそれを行う
- 基本的な SQL で SQLite データベースにクエリを実行する
- 簡単な FastAPI アプリをローカルで構築し実行する
⏩------------------------------------------------------------------------⏪
2 ヶ月目:LLM アプリ開発を極める
今月の目標: OpenAI と Anthropic の API を使って、本物の AI を活用したアプリケーションを構築すること。
月末までに、確実に動作するプロンプトを書き、モデルから構造化データを取得し、モデルにあなたの関数を呼び出させ、起こりうるすべての問題を処理することに慣れている状態を目指します。
これが AI エンジニアリングの核心です。ロードマップの他のすべては、ここで学ぶことの上に成り立っています。
学ぶべきこと
1. プロンプティングの基礎
プロンプティングとは、単に質問を丁寧にすることではありません。本質的に確率的なモデルから、一貫性があり信頼性の高い出力を生成する指示を書く技術です。
AI エンジニアとして、ここに驚くほど多くの時間を費やすことになります。
学習方法:
まずは Anthropic のインタラクティブチュートリアルから始めてください。最も実践的だからです。次に OpenAI の公式ガイドを読みましょう。その後、Prompt Engineering Guide で全体をまとめます。この 3 つを順番にやり遂げてください。それぞれが相互に補完し合います。
リソース:
1. Anthropic のインタラクティブプロンプトエンジニアリングチュートリアル (無料、GitHub)
リンク: https://github.com/anthropics/prompt-eng-interactive-tutorial
9 つの章に分かれたステップバイステップのコースで、演習が付属しており、自分でプロンプトを書いてトラブルシューティングする練習を何度も行えるように設計されています。Claude API を使って Jupyter ノートブックとして実行します。
2. Anthropic プロンプトエンジニアリングドキュメント (無料)
リンク: https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview
公式リファレンスです。基本的な明確さから XML 構造化、エージェントシステムまでをカバーしています。
3. OpenAI プロンプトエンジニアリングガイド (無料)
リンク: https://platform.openai.com/docs/guides/prompt-engineering
OpenAI からの公式ガイドで、自社のモデルでうまく機能し、より有用な出力を得るためのプロンプト形式をカバーしています。
4. [PromptingGuide.ai](//PromptingGuide.ai) (無料)
リンク: https://www.promptingguide.ai/
基本的なプロンプティングから高度な戦略、さらには関数呼び出し、ツール統合、エージェントシステムまで、必須のテクニックをカバーしています。
重点的に学ぶこと: システムメッセージとユーザーメッセージの違い、具体性が重要な理由、チェーン・オブ・ソートプロンプティング (ステップバイステップで考える)、プロンプト内での例の使用 (Few-shot)、そして小さな文言の変更が出力品質に劇的な影響を与える方法。
練習: 実際のタスク (ドキュメントの要約、テキストからの主要情報の抽出、フィードバックの分類) を選び、そのための 5 つの異なるプロンプトを書いてください。出力を比較しましょう。プロンプトの設計が信頼性にどれほど影響するか、すぐにわかります。
3. 構造化出力 / JSON スキーマ
実際のアプリケーションでは、LLM からの生のテキストを求めることはほとんどありません。必要なのは、コードで解析、保存、使用できる構造化データです。構造化出力は、モデルにあなたが定義したスキーマに従うように強制することで、この問題を解決します。
リソース:
1. OpenAI 構造化出力ガイド (公式ドキュメント、無料)
リンク: https://platform.openai.com/docs/guides/structured-outputs
モデルが常にあなたの JSON スキーマに準拠した応答を生成することを保証する機能をカバーしており、キーの欠落や幻覚的な値を心配する必要がなくなります。
2. Instructor ライブラリ (無料、オープンソース)
リンク: https://python.useinstructor.com/
Pydantic モデルを使用して、任意の LLM プロバイダーから構造化出力を取得する最もクリーンな方法です。OpenAI、Anthropic、Google、および 15 以上の他のプロバイダーを同じコードインターフェースで動作し、バリデーション失敗時に自動リトライを行います。これは、実際に本番環境の AI エンジニアが使用しているものです。
3. OpenAI Cookbook: 構造化出力入門 (無料)
リンク: https://developers.openai.com/cookbook/examples/structured_outputs_intro/
チェーン・オブ・ソート出力、構造化データ抽出、UI 生成をカバーする実践的な例で、実際のユースケースを理解するのに役立ちます。
重点的に学ぶこと: データの Pydantic モデルを定義する、スキーマを API に渡す、構造化出力と JSON モードの違いを理解する、拒否を優雅に処理する。
練習プロジェクト: 請求書または領収書のパーサーを構築してください。生のテキスト (例: "請求書番号 #123、ウィジェット 3 個で $45.99、3 月 30 日までにお支払いください") を与え、invoice_number、amount、items、due_date などのフィールドを持つ構造化された Python オブジェクトを返すようにします。
4. 関数呼び出し / ツール呼び出し
ツール呼び出しは、LLM を単なるテキスト生成器から、Web 検索、データベースクエリ、API 呼び出し、コード実行などのアクションを実行できるものに変えるものです。このガイド全体で最も重要なスキルの 1 つです。
理解する方法: モデルは実際に関数を実行するわけではありません。プロンプトを調べ、ツールを使用すべきと判断した場合に、関数名と引数を含む構造化された呼び出しを返します。あなたのコードがその呼び出しを実行し、結果をモデルに送り返します。
リソース:
1. OpenAI 関数呼び出しガイド (公式ドキュメント、無料)
リンク: https://platform.openai.com/docs/guides/function-calling
決定版リファレンスです。ツールの定義、5 ステップの呼び出しフロー、並列呼び出し、ベストプラクティスをカバーしています。
2. Anthropic ツール使用ドキュメント (無料)
リンク: https://docs.anthropic.com/en/docs/build-with-claude/tool-use
Claude 向けの Anthropic の同等ガイドです。概念は同じで、構文が少し異なります。
3. OpenAI Cookbook: チャットモデルで関数を呼び出す方法 (無料、GitHub)
実際の例を使って、ツール呼び出しの完全なループをステップバイステップで説明する、実行可能なノートブックです。
重点的に学ぶこと: JSON スキーマで関数を明確に記述する、ツール呼び出しのレスポンスを解析する、関数を実行して結果をフィードバックする、ツール呼び出しが必要ない場合の処理、tool_choice: "auto" の概念。
練習プロジェクト: 3 つのツール (get_weather(city)、calculate(expression)、search_notes(query) – 単にハードコードされた辞書を検索) を持つシンプルなアシスタントを構築してください。それらをすべて配線し、あなたが何を頼むかに基づいてモデルがどのツールを呼び出すかを観察しましょう。
5. ストリーミングレスポンス
ストリーミングとは、モデルの出力が生成されるのを、完全なレスポンスを待つのではなく、単語ごとに表示することです。これにより、アプリの応答速度が劇的に速くなり、生き生きとした印象を与えます。
リソース:
1. OpenAI ストリーミングドキュメント (公式、無料)
リンク: https://platform.openai.com/docs/api-reference/streaming
リクエストに stream=True を追加し、チャンクを反復処理するためのリファレンスです。
2. Anthropic ストリーミングドキュメント (公式、無料)
リンク: https://docs.anthropic.com/en/api/messages-streaming
Python の例を含む Anthropic のストリーミング API リファレンスです。
3. ストリーミング LLM API の仕組み – Simon Willison (無料)
リンク: https://til.simonwillison.net/llms/streaming-llm-apis
OpenAI、Anthropic、Google 向けの Server-Sent Events が内部でどのように動作するかを明確に技術的に解説しており、HTTP レベルで実際に何が起こっているかを理解するのに役立ちます。
重点的に学ぶこと: stream=True の設定、デルタチャンクの反復処理、部分から完全なレスポンスを組み立てる、StreamingResponse を使用してストリーミングを FastAPI エンドポイントに配線する。
ヒント: ユーザー向けアプリでは、ストリーミングはほとんどの場合正しい選択です。誰も、完全なレスポンスが一度に表示されるのを待って、10 秒間ローディングスピナーを見つめ続けたくはありません。
5. 会話状態
LLM はステートレスです。呼び出しの間にメモリはありません。会話履歴は、すべてのリクエストで完全なメッセージリストを送信することで管理するものです。これを理解することは基本です。
リソース:
1. OpenAI Chat Completions ガイド、会話の管理 (公式、無料)
リンク: https://platform.openai.com/docs/guides/conversation-state
メッセージ配列がどのように機能するか、マルチターン会話を管理する方法についての標準的な説明です。
2. Anthropic Messages API ドキュメント (公式、無料)
リンク: https://docs.anthropic.com/en/api/messages
Anthropic の同等のものです。同じ概念なので、両方を読んで違いを確認する価値があります。
重点的に学ぶこと: メッセージ配列の構造、ユーザーメッセージとアシスタントメッセージの両方を追加する理由、コンテキストウィンドウの制限とそれを超えた場合に何が起こるか、基本的な切り捨て戦略 (最も古いメッセージを削除する、履歴を要約する)。
練習プロジェクト: ターミナルでシンプルなマルチターンチャットボットを構築してください。各ターンでメッセージリストに追加します。履歴をクリアする /reset コマンドを追加し、各やり取りの後に現在のトークン数を表示します。
6. コスト、レイテンシ、トークンの基本
AI アプリをコストとトークンを理解せずに出荷すると、予期せぬ請求書と遅いアプリに悩まされることになります。退屈ですが、非常に重要です。
リソース:
1. OpenAI 料金ページ (公式)
リンク: https://openai.com/api/pricing
モデルごとの入力トークンと出力トークンのコストを把握してください。ブックマークして、モデルを選ぶたびに確認しましょう。
2. Anthropic 料金ページ (公式)
リンク: https://www.anthropic.com/pricing
Claude モデルについても同様です。
3. OpenAI Tokenizer ツール (無料、インタラクティブ)
リンク: https://platform.openai.com/tokenizer
任意のテキストを貼り付けて、それが正確に何トークンになるかを確認できます。学習中は常にこれを使用してください。
4. Tiktoken (Python ライブラリ、無料)
リンク: https://github.com/openai/tiktoken
リクエストを送信する前にコード内のトークンをカウントするための OpenAI のトークナイザーライブラリです。
重点的に学ぶこと: トークンとは何か (おおよそ 4 文字 / 単語の 3/4)、入力トークンと出力トークンが異なる価格設定である理由、コンテキストウィンドウサイズが何ができるかに影響する方法、小さくて高速なモデルと大きくてスマートなモデルの間のレイテンシのトレードオフ。
また、すべてに GPT-4/Opus を使用しないでください。安価なモデルで単純なタスクには十分な場合がよくあります。
7. 障害処理
LLM API は失敗します。レート制限に達し、レスポンスがタイムアウトし、モデルが不正な JSON を返します。障害を優雅に処理することは、デモと本番アプリを分けるものです。
リソース:
1. OpenAI エラーコードリファレンス (公式、無料)
リンク: https://platform.openai.com/docs/guides/error-codes
遭遇するすべてのエラータイプとその対処法です。
2. Anthropic エラーハンドリングドキュメント (公式、無料)
リンク: https://docs.anthropic.com/en/api/errors
Claude についても同様です。
3. Tenacity (Python ライブラリ、無料)
リンク: https://tenacity.readthedocs.io/
任意の Python 関数に指数バックオフ付きのリトライロジックを追加するためのクリーンなライブラリです。1 つのデコレータでリトライが処理されます。
重点的に学ぶこと: レート制限エラー (429) と指数バックオフ、httpx/requests を使ったタイムアウト処理、モデル出力を使用する前の検証、フォールバック戦略 (別のモデルでリトライする、キャッシュされたレスポンスを返す)、LLM が予期しない出力を返したためにアプリがクラッシュしないようにすること。
8. プロンプトインジェクションの認識
プロンプトインジェクションは、LLM アプリケーションにおける #1 のセキュリティリスクです。これは、信頼できないユーザー入力がシステム指示と組み合わされたときに発生し、ユーザーがプロンプトを変更、上書き、または新しい動作を注入できるようになり、システムが意図しないアクションを実行したり、操作された出力を生成したりする原因となります。
セキュリティの専門家である必要はありませんが、何かを出荷する前にこれが存在することを知っておく必要があります。
リソース:
1. OWASP Top 10 for LLM Apps – LLM01: プロンプトインジェクション (無料)
リンク: https://genai.owasp.org/llm-top-10/
リンク: https://genai.owasp.org/llmrisk/llm01-prompt-injection/
直接インジェクション(脱獄)、外部コンテンツ(ドキュメントやウェブサイトなど)を介した間接インジェクション、そして実際の攻撃シナリオを網羅する、権威ある分類です。
2. OWASP Prompt Injection Prevention Cheat Sheet(無料)
リンク: https://cheatsheetseries.owasp.org/cheatsheets/LLM_Prompt_Injection_Prevention_Cheat_Sheet.html
実践的な防御パターン:入力検証、特権制御、出力検証。
3. Evidently AI: What is Prompt Injection(無料)
リンク: https://www.evidentlyai.com/llm-guide/prompt-injection-llm
攻撃の種類、リスク、そしてそれらを軽減するための設計パターンについて、開発者向けに明確に解説しています。
重点項目: 直接インジェクションと間接インジェクションの違い、システムプロンプトが真に「安全」ではない理由、ツールアクセスにおける最小権限の原則、そして、検証されていない LLM の出力を重要な判断に自動的に使用しては決してならないこと。
2 ヶ月目のマイルストーン
今月末までに、以下ができるようになることを目指します。
- 特定のタスクに対して一貫性があり信頼性の高い出力を生成するプロンプトを作成する
- Pydantic + Instructor を使用して、あらゆるモデルから構造化された JSON データを取得する
- モデルがあなたの Python 関数を呼び出せるようにツール呼び出しを設定する
- FastAPI エンドポイントを通じて、リアルタイムでレスポンスをストリーミングする
- 複数ターンの会話履歴を適切に管理する
- リクエストを送信する前に、そのトークンコストを見積もる
- API エラー、タイムアウト、不正な出力に対処し、クラッシュさせない
- プロンプトインジェクションとは何かを説明し、基本的な防御策を適用する
⏩------------------------------------------------------------------------⏪
3 ヶ月目: RAG を正しく学ぶ
今月の目標: LLM がトレーニングデータだけではなく、あなたのドキュメントから質問に答えられるシステムを構築すること。
今月末までに、ドキュメントを取り込み、ベクトル化して保存し、クエリ時に適切なチャンクを取得し、根拠があり、正確で、引用可能な回答を生成できるようになることを目指します。
RAG は、現在 AI エンジニアリングにおいて最も需要の高い実践的スキルです。カスタマーサポートボット、社内ナレッジベース、ドキュメント Q&A など、実際のエンタープライズ AI ユースケースのほとんどは、これに基づいて構築されています。
チュートリアルをコピーするだけでなく、深く理解することが、優れたエンジニアとそうでないエンジニアを分けます。
1. 埋め込み(Embeddings)
RAG システムを構築する前に、埋め込みが実際に何であるかを理解する必要があります。なぜなら、それは他のすべてが構築される基盤だからです。
テキスト埋め込みとは、テキストを高次元のベクトル空間に投影したものです。
この空間におけるテキストの位置は、一連の長い数値として表されます。
重要なのは、意味的に類似したテキストは、この空間内で互いに近くに配置されることです。これにより、類似性検索が可能になります。
リソース:
1. Stack Overflow Blog: An Intuitive Introduction to Text Embeddings(無料)
リンク: https://stackoverflow.blog/2023/11/09/an-intuitive-introduction-to-text-embeddings/
初心者に最適な解説です。長年 NLP 製品を構築してきた開発者によって書かれ、数学ではなく、直感を構築することに重点を置いています。
2. Google ML Crash Course: Embeddings(無料)
リンク: https://developers.google.com/machine-learning/crash-course/embeddings
なぜ高密度ベクトル表現が、One-Hot エンコーディングでは解決できない問題(特に、項目間の意味的関係を捉えること)を解決できるのかを解説しています。
3. HuggingFace: Getting Started With Embeddings(無料)
リンク: https://huggingface.co/blog/getting-started-with-embeddings
実践的なガイドです。sentence-transformers ライブラリを使用して埋め込みを生成し、それらをホストし、実際の FAQ データセットを使用した意味検索に使用する方法を示しています。
4. OpenAI Embeddings Guide(公式ドキュメント、無料)
リンク: https://platform.openai.com/docs/guides/embeddings
コード内で OpenAI の text-embedding-3-small および text-embedding-3-large モデルを使用するためのリファレンスです。
重点項目: ベクトルとは概念的に何か、類似テキストがなぜ類似ベクトルを生成するのか、コサイン類似度の仕組み、埋め込みモデル(OpenAI、HuggingFace の sentence-transformers)の違い、そして埋め込み次元が実際に何を意味するか。
練習問題: 関連するトピックに関する 20 の文を取り、OpenAI または sentence-transformers を使用してそれらを埋め込み、クエリに最も類似した 3 つを返す単純な最近傍探索を書いてください。これは、まさに RAG の核心をミニチュアで示したものです。
2. チャンキング(Chunking)
ドキュメント全体を埋め込むには大きすぎます。チャンキングとは、埋め込みの前に、ドキュメントをより小さな断片に分割するプロセスです。
チャンクの分割方法は、システムが関連情報を見つけ、正確な回答を提供する能力に直接影響します。たとえ完璧な検索システムでも、適切に準備されていないデータを検索すれば失敗します。
リソース:
1. Weaviate: Chunking Strategies for RAG(無料)
リンク: https://weaviate.io/blog/chunking-strategies-for-rag
最も実用的なガイドです。固定サイズ、再帰的、意味的チャンキングを扱い、それぞれをいつ使用すべきかについて明確な指針を提供します。
2. Unstructured: Chunking for RAG Best Practices(無料)
リンク: https://unstructured.io/blog/chunking-for-rag-best-practices
チャンクサイズ、オーバーラップ、そして埋め込みモデルのコンテキストウィンドウがどのようにハードリミットを課すかについての、技術的な詳細解説です。
実験の良い出発点は、約 250 トークン(約 1,000 文字)のチャンクサイズと、連続するチャンク間の境界でコンテキストが失われるのを防ぐための 10-20% のオーバーラップの組み合わせです。
3. LangChain Text Splitters Docs(公式、無料)
リンク: https://python.langchain.com/docs/concepts/text_splitters/
コード内で RecursiveCharacterTextSplitter、MarkdownTextSplitter、およびセマンティックスプリッターを使用するための実践的なリファレンスです。
重点項目: ベースラインとしてのオーバーラップ付き固定サイズチャンキング、構造化ドキュメントのための再帰的チャンキング、より良い境界検出のための意味的チャンキング、そして中核となるトレードオフ:大きすぎるチャンクは検索精度を失い、小さすぎるチャンクはコンテキストを失うこと。
初心者向けヒント: LangChain の RecursiveCharacterTextSplitter を chunk_size=500、chunk_overlap=50 で使い始めてください。これは、ほとんどのドキュメントにとって最も合理的なデフォルトであり、そこから改善するための動作するベースラインが得られます。
3. ベクトルデータベース(Vector Databases)
埋め込みを作成したら、それらを効率的に保存および検索するための場所が必要です。これがベクトルデータベースの役割です。
適切な選択は状況によって異なります。迅速なローカルプロトタイピングには Chroma、管理されたターンキースケールには Pinecone、強力なハイブリッド検索によるオープンソースの柔軟性には Weaviate、複雑なフィルターとコスト効率の良いセルフホスティングには Qdrant、そして既に PostgreSQL を使用しており別のシステムを追加したくない場合は pgvector を選んでください。
リソース:
1. Chroma Official Docs(無料)
リンク: https://docs.trychroma.com/
Chroma は、開発スピードとシンプルさを優先する個人開発者や小規模チームに最適です。インメモリまたはローカルで動作し、管理するインフラストラクチャはありません。
2. Pinecone Learning Center(無料)
リンク: https://www.pinecone.io/learn/
ベクトル検索の概念、ハイブリッド検索、RAG パイプラインをカバーする優れた無料チュートリアルです。Pinecone を使用しない場合でも、プロバイダーに依存しない優れた教材です。
3. Qdrant Documentation(無料)
リンク: https://qdrant.tech/documentation/
高度なフィルタリングを備えたプロダクション向けの最良のオープンソースオプションです。非常に高速で柔軟性が高く、セルフホスティングも無料です。
4. pgvector(オープンソース、無料)
リンク: https://github.com/pgvector/pgvector
既に PostgreSQL を使用しているものを構築している場合、pgvector は新しいインフラストラクチャを必要とせずに、既存のデータベースに直接ベクトル検索を追加します。
重点項目: コレクションの作成、メタデータ付きの埋め込みの挿入、top_k を使用した類似性によるクエリ、クエリ時のメタデータによるフィルタリング。
インデックス作成アルゴリズム(HNSW、IVF)を理解する必要はありません。それらの使用方法を理解するだけで十分です。
練習プロジェクト: 任意の公開ドキュメント(Python ドキュメントや Wikipedia の記事ダンプなど)から 50-100 ページを、メタデータ(ソース URL、セクションタイトル)とともに Chroma にインデックス付けします。任意の質問に対して最も関連性の高い 5 つのチャンクを取得するクエリ関数を作成します。
4. メタデータフィルタリング(Metadata Filtering)
生の類似性検索だけでは、実際のアプリケーションには十分ではありません。メタデータフィルタリングを使用すると、日付、ソース、ドキュメントタイプ、ユーザー、カテゴリ、または各チャンクと一緒に保存するその他の属性によって、検索対象を関連するサブセットに制限できます。
リソース:
1. Pinecone: Metadata Filtering Guide(無料)
リンク: https://docs.pinecone.io/guides/data/filter-with-metadata
類似性検索の前または最中に、メタデータフィールドでベクトルをフィルタリングする方法を、コード例とともに明確に説明しています。
2. LlamaIndex: Metadata Filters Guide(公式ドキュメント、無料)
リンク: https://docs.llamaindex.ai/en/stable/module_guides/querying/node_postprocessors/node_postprocessors/
LlamaIndex パイプラインでクエリ時にフィルターを適用する方法を説明しています。
重点項目: 取り込み時にすべてのチャンクに関連するメタデータ(ソースファイル名、ページ番号、セクション、日付、カテゴリ)をタグ付けし、クエリ時にそれらのフィールドを使用して結果をフィルタリングすること。これが、おもちゃのデモと、「2025 年第 4 四半期から 2026 年第 1 四半期のレポートの結果のみ表示」というような要求が可能なプロダクションシステムの違いを生み出します。
5. リランキング(Reranking)
リランキングは、あらゆるキーワード検索システムまたはベクトル検索システムの検索品質に意味的な向上をもたらすテクニックです。
最初の段階の検索が候補セットを返した後、リランカーは、ベクトルの近接性だけでなく、クエリに対する真の文脈上の関連性に基づいて、それらの結果を再スコアリングします。
2 段階のパターンは次のとおりです。埋め込みと検索(高速、近似)→ top-k をリランキング(低速、より正確)。結果として、わずかなレイテンシコストで、検索品質が劇的に向上します。
リソース:
1. Cohere Reranking Docs(公式、無料)
リンク: https://docs.cohere.com/docs/reranking-with-cohere
最適な入門書です。メールや JSON ドキュメントなどの半構造化データを含む、リランキングの全ワークフローをカバーしています。既存の検索パイプラインに追加するには、コード 1 行だけが必要です。
2. LangChain: Cohere Reranker Integration(公式ドキュメント、無料)
リンク: https://python.langchain.com/docs/integrations/retrievers/cohere-reranker/
ContextualCompressionRetriever を使用して、Cohere リランキングを LangChain レトリーバーに配線する方法を説明しています。
重点項目: 2 段階の「検索してからリランキング」パターン、Bi-Encoder(最初の段階の埋め込み検索に使用)と Cross-Encoder(リランキングに使用)の違い、そして top-20 と top-5 の結果をリランキングする際の実際的なレイテンシと品質のトレードオフ。
6. 検索品質の問題(Retrieval Quality Issues)
RAG の失敗のほとんどは、モデルの失敗ではなく、検索の失敗です。検索がどのように誤作動する可能性があるかを理解することは、実際のシステムをデバッグするために不可欠です。
学ぶべき一般的な問題:
- 意味的ドリフト: 情報が存在するにもかかわらず、クエリ埋め込みが関連チャンク埋め込みと一致しない。修正方法: クエリ書き換えまたは HyDE(Hypothetical Document Embeddings)を試す。
- チャンク境界問題: 関連情報が 2 つのチャンクに分割されている。修正方法: オーバーラップを増やすか、意味的チャンキングを使用する。
- メタデータコンテキストの欠如: チャンクはクエリと意味的に類似しているが、間違ったドキュメント、日付、またはユーザーに属している。修正方法: メタデータフィルタリングを使用する。
- top-k が小さすぎる: 正しいチャンクは存在するが、取得された上位 5 件の結果に含まれていない。修正方法: 検索時の top_k を増やし、リランキング後に減らす。
リソース:
1. LangChain: Query Transformations(無料)
リンク: https://python.langchain.com/docs/how_to/#query-analysis
クエリ書き換え、Step-Back Prompting、HyDE をカバーしています。
2. Pinecone: Improving Retrieval Quality(無料)
リンク: https://www.pinecone.io/learn/retrieval-augmented-generation/#retrieval-quality
修正方法を含む、一般的な障害モードの実践的なチュートリアルです。
7. ハルシネーションの低減(Hallucination Reduction)
RAG は、通常の LLM と比較してハルシネーションを劇的に削減しますが、完全に排除するわけではありません。
実行時に取得した事実をモデルに提供することで、RAG は応答をトレーニングデータのみに頼るのではなく、実際の情報源に基づかせます。また、モデルの出力はそれらの情報源を引用することもでき、透明性と信頼性を高めます。
ただし、検索の失敗、不良なチャンク、矛盾する情報によって、モデルが情報を捏造する可能性が依然としてあります。
リソース:
1. Zep: Reducing LLM Hallucinations – A Developer's Guide(無料)
リンク: https://www.getzep.com/ai-agents/reducing-llm-hallucinations/
プロンプトグラウンディング戦略、事実確認タスクのための Chain-of-Thought、出力検証パターンなどをカバーした、開発者向けの実践的なガイドです。
2. Voiceflow: 5 Ways to Reduce LLM Hallucinations(無料)
リンク: https://www.voiceflow.com/blog/prevent-llm-hallucinations
RAG + Chain-of-Thought + ガードレールの組み合わせ戦略が、どのような単一のアプローチよりも優れていることを示す、優れた概要です。
重点項目: 提供されたコンテキストからのみ回答するようにモデルにプロンプトすること(回答がない場合は「わかりません」と言うようにする)、応答を表示する前に信頼度しきい値を追加すること、そして LLM を非難する前に常に検索品質を検証すること。
8. 引用とグラウンディング(Citations and Grounding)
グラウンディングされた RAG システムは、単に回答するだけでなく、その回答がどこから来たのかを示します。これは、ユーザーの信頼とデバッグにとって非常に重要です。
リソース:
1. Anthropic: Giving Claude Sources(ドキュメント、無料)
リンク: https://docs.anthropic.com/en/docs/build-with-claude/citations
ソース参照付きの引用を含む応答を生成するように Claude にプロンプトする方法を説明しています。
2. LangChain: RAG with Sources(無料)
リンク: https://python.langchain.com/docs/how_to/qa_sources/
LangChain RAG パイプラインで、回答とともにソースドキュメントを返す方法を説明しています。
重点項目: チャンクメタデータ(ソースファイル名、ページ番号、URL)をプロンプトコンテキストに渡し、モデルに回答内でソースを参照するよう指示し、UI または API 応答でそれらのソースを表示すること。
9. RAG フレームワーク: LangChain または LlamaIndex
RAG パイプラインをゼロから構築する必要はありません。この分野を支配する 2 つのフレームワークがあり、知っておく価値があります。
LlamaIndex は、検索とインデックス作成を最優先するように最適化されています。取り込み、チャンキング、埋め込み、クエリを数行のコードに抽象化し、午後には動作するプロトタイプを構築できます。
LangChain は、アプリケーションがオーケストレーションエンジンのように見える場合に威力を発揮します。マルチエージェントワークフロー、ツール呼び出し、回答を生成する前に複数の LLM や外部 API にクエリを実行する条件付きチェーンに優れています。
3 ヶ月目は、RAG のために LlamaIndex から始めてください。4 ヶ月目のエージェントワークに取り組むときに LangChain に移行してください。
リソース:
1. LlamaIndex: Introduction to RAG(公式ドキュメント、無料)
リンク: https://developers.llamaindex.ai/python/framework/understanding/rag/
RAG の 5 つの主要な段階(読み込み、インデックス作成、保存、クエリ、評価)と、LlamaIndex がそれぞれをどのように処理するかをカバーしています。
2. LlamaIndex Starter Tutorial(公式ドキュメント、無料)
リンク: https://developers.llamaindex.ai/python/framework/getting_started/starter_example/
公式のクイックスタートです。30 行未満のコードで動作する RAG システムを構築できます。
3. LangChain: Build a RAG Agent(公式ドキュメント、無料)
リンク: https://docs.langchain.com/oss/python/langchain/rag
40 行の最小限のバージョンから、リランキングを備えた本格的な検索パイプラインまで、RAG エージェントを使用して非構造化テキスト上に Q&A アプリを構築する方法を示しています。
練習プロジェクト: 「あなたのドキュメントとチャット」アプリを構築します。10-20 個の PDF またはテキストファイル(自分のメモ、教科書の章、製品ドキュメントなど)を取り込みます。質問を受け付け、リランキングを使用して最も関連性の高い上位 5 つのチャンクを取得し、Claude または OpenAI からの引用付きの回答を返す FastAPI エンドポイントを構築します。これは、実際のポートフォリオ作品になります。
3 ヶ月目のマイルストーン
今月末までに、以下ができるようになることを目指します。
- 埋め込みとは何か、そしてなぜ類似テキストが類似ベクトルを生成するのかを説明できる
- 適切な戦略を使用して、あらゆるドキュメントをインテリジェントにチャンク分割できる
- メタデータフィルタリングを使用して、ベクトルデータベースに埋め込みを保存し、クエリできる
- 検索品質を向上させるためにリランキングステップを追加できる
- 一般的な検索の失敗を体系的にデバッグできる
- LlamaIndex または LangChain を使用して、ドキュメントを取り込み、関連チャンクを取得し、根拠があり引用された回答を返す、完全なエンドツーエンドの RAG パイプラインを構築できる
⏩------------------------------------------------------------------------⏪
4 ヶ月目: エージェント、ツール、ワークフロー、評価(Evals)
今月の目標: 自律的に一連のアクションを実行できる AI システムを構築し、マルチステップワークフローを連携させ、それらが機能しているかどうかを批判的に評価できるようになること。
今月末までに、実際のエージェントをゼロから構築し、エージェントが不適切な選択である場合を理解し、構築するすべてのもののパフォーマンスを測定できるようになることを目指します。
ここからが、AI エンジニアリングが本当に複雑になるところです。4 ヶ月目のスキルこそが、ジュニア AI エンジニアと、AI 機能全体をエンドツーエンドで担当できる人を分けます。
1. エージェントループ(Agent Loops)
エージェントは魔法ではなく、驚くほど単純なパターンです。
エージェントを、観察、推論、行動を絶えず循環する、目標駆動型のシステムと考えてください。
このループにより、単純な質問と回答を超えたタスクに取り組み、真の自動化、ツールの使用、そしてその場での適応に移行できます。
「考える」ことはプロンプト内で行われ、「分岐」はエージェントが利用可能なツールから選択するときに発生し、「実行」は外部関数を呼び出すときに行われます。その他はすべて、単なる配管(plumbing)です。
ひとたびこれを内面化すれば、最も複雑なエージェントフレームワークでさえも読みやすくなります。
リソース:
1. Anthropic: Building Effective Agents(公式、無料)
リンク: https://www.anthropic.com/research/building-effective-agents
プロダクションにおけるエージェントに関する、最も優れた単一の記事です。エージェントコードを 1 行も書く前に、これを読んでください。
2. OpenAI: A Practical Guide to Building Agents(公式 PDF、無料)
リンク: https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf
プロダクションにおけるエージェントパターン、ガードレール、安全性パターンをカバーする、OpenAI の補足ガイドです。
3. freeCodeCamp: The Open Source LLM Agent Handbook(無料)
リンク: https://www.freecodecamp.org/news/the-open-source-llm-agent-handbook/
エージェントループ、LangGraph、CrewAI、計画、メモリ、ツールの使用をカバーする、包括的な実践ガイドです。すぐに実践を始めるのに適しています。
4. LangChain Academy: Introduction to LangGraph(無料コース)
リンク: https://academy.langchain.com/courses/intro-to-langgraph
最も広く使用されているエージェントオーケストレーションフレームワークである LangGraph の公式無料コースです。状態、メモリ、Human-in-the-Loop などをカバーしています。
重点項目: 知覚(perceive)→ 計画(plan)→ 行動(act)→ 観察(observe)のサイクル、エージェントループがどのように終了するか、ループ内でツール呼び出しが失敗した場合に何が起こるか、そしてエージェントが、分岐判断を LLM が行う while ループに過ぎない理由。
練習問題: フレームワークを一切使わずに、OpenAI または Anthropic API を直接使用して、エージェントをゼロから構築します。3 つのツール、目標、ループを与えます。これは、フレームワークが何を抽象化しているのかを実際に理解するためにできる、最も価値のあることです。
2. ツールの選択(Tool Selection)
優れたツールを書くことは、仕事の半分です。ツールとそのパラメータの説明は、LLM 向けのユーザーマニュアルです。マニュアルがあいまいだと、LLM はツールを誤用します。徹底的に、容赦なく、明示的にしてください。
説明が不十分なツールは、間違った呼び出し方をされたり、間違ったタイミングで呼び出されたり、完全に無視されたりします。適切に説明されたツールは、予測可能な動作をし、幅広い入力に対して正しく選択されます。
リソース:
1. OpenAI: Function Calling Best Practices(公式ドキュメント、無料)
リンク: https://platform.openai.com/docs/guides/function-calling/best-practices
信頼性高く動作するツール説明を作成するための標準的なガイドです。命名規則とパラメータドキュメントパターンをカバーしています。
2. Anthropic: Tool Use Best Practices(公式ドキュメント、無料)
Anthropic の同等のガイドです。モデルに選択させる場合と特定のツールを強制する場合の指針に特に注意してください。
重点項目: 自己説明的な動詞であるツール名を書くこと、いつツールを呼び出すべきかを説明する説明を書くこと(ツールが何をするかだけではない)、パラメータを最小限に保ち適切に型指定すること、そして LLM を呼び出し元として設計すること。
初心者向けヒント: すべてのツールの説明を、「もしドキュメントがなく、この JSON スキーマだけがあった場合、このツールをいつどのように呼び出すべきかを正確に理解できるか?」と自問することでテストしてください。もし理解できなければ、さらに改良が必要です。
3. 状態管理(State Management)
LangGraph において、状態(state)はグラフを流れる共有メモリオブジェクトです。メッセージ、変数、中間結果、決定履歴など、すべての関連情報を保存し、実行中に自動的に管理されます。
状態を理解することは、マルチターンタスクを処理し、障害から回復し、コンポーネント間でクリーンに引き継ぎを行うことができるエージェントを構築するための鍵です。
リソース:
1. LangGraph Official Docs: State Management(無料)
リンク: https://langchain-ai.github.io/langgraph/concepts/low_level/#state
以下は、提供されたガイドラインに従って英語から日本語に翻訳したものです。
決定的なリファレンス。ステートスキーマ、リデューサー、そしてノードとエッジを通じたステートの流れをカバーします。
2. DataCamp: LangGraph エージェントチュートリアル(無料)
リンク: https://www.datacamp.com/tutorial/langgraph-agents
ステート、ノード、エッジの基礎を実践的なコードで解説し、セッションをまたぐ永続メモリを持つステートフルエージェントの構築へと発展させます。
3. Real Python: Python での LangGraph(無料)
リンク: https://realpython.com/langgraph-python/
完全なステートフル LangGraph エージェントを構築する詳細なチュートリアルです。ステートグラフと条件付きエッジについて詳しく説明しています。
重点的に学ぶこと: TypedDict を使用したステートスキーマの定義、並列更新をマージするためのリデューサーの仕組み、インメモリステートと永続化チェックポイントの違い、そして実行中にステートを検査・変更することで機能するヒューマン・イン・ザ・ループの一時停止について。
4. エージェントにおけるリトライと障害処理
エージェントの障害は、通常の LLM 呼び出しとは異なります。ループの途中で不正なツール呼び出しが発生すると、ステートが破損したり、無限ループに陥ったり、誤った回答を黙って生成したりする可能性があります。これらすべてに対して明確な戦略が必要です。
リソース:
1. LangGraph: エラーハンドリングとリトライ(公式ドキュメント、無料)
リンク: https://langchain-ai.github.io/langgraph/how-tos/autofill-tool-errors/
LangGraph のツールノードレベルで自動エラーハンドリングとリトライロジックを追加する方法を説明しています。
2. OpenAI 実践エージェントガイド: ガードレールセクション(無料)
リンク: https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf
ガードレールを多層防御として捉え、LLM ベースのチェック、正規表現などのルールベースのフィルター、モデレーション API を組み合わせて、エージェントループの各段階で入力と出力の両方を検証する方法を説明しています。
重点的に学ぶこと: 無限ループを防ぐための最大反復制限、指数バックオフを使用したツールごとのリトライ、エージェントをクラッシュさせずにツール実行層で例外をキャッチしてログに記録すること、そしてユーザーに障害を通知するタイミングとサイレントリトライするタイミングの判断。
5. エージェントを使用すべきでない場合
これは、AI エンジニアリングにおいて最も重要でありながら、最も見落とされがちなスキルの 1 つです。エージェントは魅力的ですが、遅く、費用がかかり、予測不可能で、デバッグが困難でもあります。よりシンプルな解決策で済む場合を知ることは、優れた判断力の証です。
Anthropic は、可能な限り最もシンプルな解決策を見つけ、必要な場合にのみ複雑さを増やすことを推奨しています。つまり、エージェントシステムをまったく構築しないという選択も含まれます。
エージェントシステムは、レイテンシとコストと引き換えにタスクパフォーマンスを向上させるものであり、このトレードオフがいつ意味をなすのかを慎重に検討する必要があります。
判断の枠組みは次のとおりです:
- 適切なコンテキストがあれば 1 つのプロンプトでタスクを解決できる場合は、単一の LLM 呼び出しを使用する
- ステップが固定されており予測可能な場合は、ワークフローを使用する
- ステップ数が本当に予測不可能で、動的な意思決定が必要な場合にのみエージェントを使用する
リソース:
1. Anthropic: 効果的なエージェントの構築、エージェントを使用するタイミング(公式、無料)
リンク: https://www.anthropic.com/research/building-effective-agents
この質問に対する最も権威ある回答が、モデルを構築するチームから直接提供されています。
2. Simon Willison: エージェンティックループの設計(無料)
リンク: https://simonwillison.net/2025/Sep/30/designing-agentic-loops/
シニアエンジニアによる、エージェントの複雑さが正当化されるタイミングとエージェンティックループ設計についての実践的な考察です。
記憶すべきこと: 3 回の固定 LLM 呼び出しのチェーンは、3 回の呼び出しを行う可能性のあるエージェントよりも常に高速で、安価で、デバッグが容易です。エージェントは、真にオープンエンドなタスクのために予約してください。
6. マルチステップワークフロー
「単一プロンプト」と「本格的なエージェント」の間には、広大で生産的な中間領域、すなわちワークフローが存在します。ワークフローは、タスクを固定されたサブタスクにきれいに分解できる場合に理想的であり、個々の LLM 呼び出しをより簡単で焦点を絞ったタスクにすることで、レイテンシと引き換えに高い精度を実現します。
一般的なパターンには、プロンプトチェーン(ある呼び出しの出力が次の呼び出しへの入力になる)、ルーティング(入力を分類して専門のハンドラーに送信する)、並列化(複数の呼び出しを同時に実行し結果を集約する)、オーケストレーター・サブエージェント(1 つの LLM が計画し、他が実行する)などがあります。
リソース:
1. Anthropic: ワークフローパターン(公式、無料)
リンク: https://www.anthropic.com/research/building-effective-agents#workflow-patterns
図とコード例を使用して、主要なパターンをすべてカバーしています。並列化とオーケストレーションのセクションが特に役立ちます。
2. LangGraph: マルチエージェントネットワーク(公式ドキュメント、無料)
リンク: https://langchain-ai.github.io/langgraph/concepts/multi_agent/
スーパーバイザーパターンとハンドオフパターンを使用して、複数のエージェントをネットワークとして接続する方法を説明しています。
練習プロジェクト: 3 ステップのコンテンツパイプラインを構築します。
ステップ 1 – LLM が記事から重要な事実を抽出する
ステップ 2 – 別の LLM 呼び出しがそれらの事実を使用して、ツイート、LinkedIn の投稿、要約を並行して生成する
ステップ 3 – 最後の LLM 呼び出しが 3 つすべてを品質でスコアリングし、最適なものを選ぶ
エージェントは不要、純粋なワークフローです。
7. 評価ハーネス
評価は、AI システムが実際に機能しているかどうかを確認する方法です。手動でテストした数例だけでなく、何百もの入力に対して体系的に確認します。
AI エージェントは強力ですが、その確率的でマルチステップの動作により多くの障害ポイントが発生するため、デプロイは複雑です。
エージェントのさまざまな部分(LLM、ツール、レトリーバー、ワークフロー)には、それぞれ独自の評価アプローチが必要です。
リソース:
1. DeepEval(オープンソース、無料)
リンク: https://deepeval.com/docs/getting-started
pytest に触発されたオープンソースの LLM 評価フレームワークです。入力と期待される出力を含むテストケースを作成し、幻覚、回答の関連性、事実の一貫性など 50 以上の組み込みメトリクスで実行し、バージョン間の回帰を検出します。
2. Promptfoo(オープンソース、無料)
リンク: https://github.com/promptfoo/promptfoo
自動テストスイートを使用して LLM アプリをテストおよび評価するための CLI およびライブラリです。複数のモデルにわたる複数のプロンプトのサイドバイサイド比較、CI/CD 統合、セキュリティ脆弱性のためのレッドチーミングをサポートします。
3. LangSmith(無料枠あり)
リンク: https://smith.langchain.com/
LangChain および LangGraph アプリのトレーシング、デバッグ、評価のためのプラットフォームです。無料枠は充実しており、トレーシング UI によりエージェントループのデバッグが格段に容易になります。
4. Ragas(オープンソース、無料)
RAG パイプラインに特化した評価フレームワークです。忠実度、回答の関連性、コンテキストの精度、コンテキストの再現率を測定します。3 ヶ月目から RAG システムを評価する場合に必須です。
重点的に学ぶこと: 期待される出力または評価基準を含む 20 ~ 50 の代表的な入力からなるゴールデンテストセットを構築すること、出力を決定論的に(文字列一致、JSON スキーマ検証)または LLM-as-Judge でスコアリングする評価関数を作成すること、そしてプロンプトを変更したりモデルを交換したりするたびに評価を自動的に実行すること。
重要な考え方: 評価はオプションの付加機能ではありません。評価を実行せずに行うプロンプトの変更、モデルの交換、検索の調整は、すべてギャンブルです。信頼性の高い AI 製品をリリースするエンジニアは、常に評価を実行しています。
8. タスク成功指標
自動化された評価に加えて、エージェントが実際の目標を達成しているかどうかを示す指標が必要です。
リソース:
1. Hamel Husain: あなたの AI 製品には評価が必要です(無料)
リンク: https://hamel.dev/blog/posts/evals/
実際の本番 AI システム向けの評価パイプライン構築について書かれた最も実践的な記事の 1 つで、大規模に実践した経験者が執筆しています。
2. OpenAI Evals フレームワーク(オープンソース、無料)
リンク: https://github.com/openai/evals
OpenAI 自身の評価フレームワークであり、コミュニティから提供された多数の評価パターンライブラリを備えており、これを応用できます。
重点的に学ぶこと: プロセス指標(エージェントは正しいツールを呼び出したか?)と結果指標(タスクは成功したか?)の違い、何かを構築する前に明確な成功基準を定義すること、そして長文回答やマルチステップの推論トレースなど、完全一致が困難な出力の評価に LLM-as-Judge を使用すること。
練習プロジェクト: 3 ヶ月目からの RAG パイプラインを使用して、適切な評価ハーネスを構築します。ドキュメントから 30 の質問と回答のペアを作成し、パイプラインで実行し、DeepEval を使用して各回答の関連性、忠実度、完全性をスコアリングします。次に、1 つの要素(チャンクサイズ、モデル、top-k)を変更し、再実行して改善されたかどうかを確認します。
4 ヶ月目のマイルストーン
今月末までに、以下のことができるようになるはずです。
- エージェントループとは何かを説明し、フレームワークを使わずにゼロから実装する
- 正確かつ確実に選択されるツールの説明文を作成する
- LangGraph または同等のものを使用してエージェントのステートを適切に管理する
- エージェントループ内の障害をクラッシュさせずに処理する
- タスクにエージェント、ワークフロー、単一プロンプトのいずれが必要かを自信を持って判断する
- LLM 呼び出しを連鎖、ルーティング、並列化するマルチステップワークフローを構築する
- プロンプトやモデルを変更した際に回帰を検出する自動評価を作成する
- 構築するあらゆる AI システムのタスク成功指標を定義し、測定する
⏩------------------------------------------------------------------------⏪
5 ヶ月目: デプロイ、プロダクト思考、そして信頼性
今月の目標: これまで構築してきたすべてのものを本番環境に対応させること。
終了時には、実際のユーザー、実際のトラフィック、実際の障害を処理し、午前 2 時に崩壊しない AI アプリをデプロイできるようになるはずです。
ここで多くの AI エンジニアは行き詰まります。優れたデモは作成できても、現実世界との接触に耐えうる製品をリリースすることができません。
ここでのスキルこそ、企業が実際に報酬を払うものです。それは、信頼性、セキュリティ、コスト管理、そして何かが避けられずに壊れたときにシステムを稼働し続ける能力です。
1. FastAPI 本番パターン
1 ヶ月目で FastAPI アプリの構築方法はすでに習得しています。今度は、それを本番トラフィックに耐えられるようにする必要があります。
開発と本番の違いは残酷です。--reload 付きの単一の uvicorn プロセスは開発には適していますが、本番環境では実際のトラフィックが到着した瞬間にボトルネックになります。
実際に必要なもの: マルチワーカー ASGI 設定、適切なエラーハンドリングミドルウェア、ヘルスチェックエンドポイント、CORS ポリシー。
リソース:
1. FastAPI デプロイドキュメント(公式、無料)
リンク: https://fastapi.tiangolo.com/deployment/
Uvicorn ワーカー、Gunicorn、Docker デプロイをカバーする公式ガイドです。他の何よりも先にここから始めてください。
2. FastAPI 本番デプロイガイド(CYS Docs、無料)
リンク: https://craftyourstartup.com/cys-docs/fastapi-production-deployment/
包括的な本番パターン: Gunicorn 設定、Nginx リバースプロキシ、ヘルスチェック、レート制限。応用可能な実際の設定ファイルが含まれています。
3. 本番環境のための FastAPI ベストプラクティス(FastLaunchAPI、無料)
リンク: https://fastlaunchapi.dev/blog/fastapi-best-practices-production-2026
非同期データベースプール、Redis キャッシング、JWT 認証、バックグラウンドタスクをカバーしています。100 人以上の開発者が使用する実際のテンプレートからの本番環境でテスト済みのパターンです。
重点的に学ぶこと: ベア Uvicorn ではなく Gunicorn と Uvicorn ワーカーを実行すること、ヘルスチェックエンドポイントを設定すること、CORS ミドルウェアを追加すること、適切な非同期データベースセッションを実装すること、そしてレスポンスをブロックする必要のないものにはバックグラウンドタスクを使用すること。
2. Docker
Docker は、「私のマシンでは動く」と言うのをやめ、一貫したデプロイを開始するための方法です。
AI アプリを構築している場合、Docker は依存関係の競合を解決し、一貫した環境を保証し、スケーリングを簡単にします。
Docker のエキスパートになる必要はありません。FastAPI + LLM アプリをコンテナ化し、どこにでもデプロイできるようになる必要があります。
リソース:
1. Docker 公式スタートガイド(無料)
リンク: https://docs.docker.com/get-started/
正統な出発点です。イメージ、コンテナ、Dockerfile、Docker Compose をカバーしています。
2. freeCodeCamp: Python と Docker でマルチエージェント AI システムを構築してデプロイする方法(無料)
リンク: https://www.freecodecamp.org/news/build-and-deploy-multi-agent-ai-with-python-and-docker/
Docker Compose を使用して実際のマルチエージェントパイプラインを構築する実践的なエンドツーエンドチュートリアルです。関心の分離、cron スケジューリング、セキュリティ考慮事項をカバーしています。
3. DataCamp: Docker を使用した LLM アプリケーションのデプロイ(無料)
リンク: https://www.datacamp.com/tutorial/deploy-llm-applications-using-docker
RAG パイプラインを使用した LLM アプリに特化したステップバイステップガイドです。Dockerfile の作成、環境管理、デプロイをカバーしています。
4. LLM アプリのための Docker コンテナ化(ApXML、無料)
ベースイメージの選択、依存関係管理、マルチステージビルド、マルチサービス LLM デプロイのための Docker Compose をカバーしています。
重点的に学ぶこと: Python/FastAPI アプリ用の Dockerfile を作成すること、マルチステージビルドを使用してイメージを小さく保つこと、マルチサービス設定(アプリ + データベース + Redis)のための Docker Compose、シークレットのための環境変数、機密ファイルの漏洩を防ぐための .dockerignore。
練習プロジェクト: 3 ヶ月目からの RAG アプリをコンテナ化します。FastAPI アプリ、ベクターデータベース(Chroma または Qdrant)、キャッシュ用の Redis を実行する docker-compose.yml を作成します。docker compose up ですべてが起動するようにデプロイします。
3. バックグラウンドジョブとキュー
LLM 呼び出しは遅いです。ユーザーがドキュメントの処理を依頼し、応答に 30 秒待たせると、ユーザーは離れてしまいます。
バックグラウンドジョブを使用すると、リクエストを即座に受け付け、非同期で処理し、完了時にユーザーに通知することができます。
リソース:
1. Celery 公式スタートガイド(無料)
リンク: https://docs.celeryq.dev/en/stable/getting-started/introduction.html
標準的な Python タスクキューです。基本的なセットアップ、タスク定義、ワーカー管理をカバーしています。
2. FastAPI バックグラウンドタスクドキュメント(公式、無料)
リンク: https://fastapi.tiangolo.com/tutorial/background-tasks/
シンプルなユースケースのための組み込みの軽量バックグラウンドタスクです。迅速なファイアアンドフォーゲットタスクにはこれを使用し、より重い処理には Celery を使用します。
重点的に学ぶこと: FastAPI の組み込み BackgroundTasks と Celery のような本格的なタスクキューのどちらを使用すべきかの理解、メッセージブローカーとしての Redis のセットアップ、タスクの障害とリトライの処理、ジョブステータスのユーザーへの返却。
4. 認証と API キーのセキュリティ
AI アプリに API がある場合、認証が必要です。認証がないと、誰でもエンドポイントを使用し、LLM クレジットを消費し、5,000 ドルの請求書が届くことになります。
リソース:
1. FastAPI セキュリティドキュメント(公式、無料)
リンク: https://fastapi.tiangolo.com/tutorial/security/
OAuth2、JWT トークン、API キー、依存関係ベースの認証パターンをカバーしています。公式リファレンスです。チュートリアル全体をやり遂げてください。
2. OWASP API セキュリティトップ 10(無料)
リンク: https://owasp.org/API-Security/
API セキュリティリスクの権威あるリストです。何かをリリースする前に、認証の破綻、インジェクション、マスアサインメントを理解してください。
3. Auth0: API 認証のベストプラクティス(無料)
リンク: https://auth0.com/docs/get-started/authentication-and-authorization
API で認証と認可を実装するための実践的なガイドです。
重点的に学ぶこと: ユーザー認証のための JWT トークン、サービス間通信のための API キー管理、ユーザー/キーごとのレート制限、コード内でのシークレットの非保存(環境変数を使用)、そして認証(你是谁)と認可(何ができるか)の違いの理解。
5. ロギングと可観測性
本番環境では、何が起こっているか見えなければ、壊れているものを修正することはできません。
LLM アプリには独自の課題があります。モデルが 200 ステータスコードを返しても、役に立たない回答や幻覚による回答を生成する可能性があります。従来の監視ではこれを検出できません。LLM 固有の可観測性が必要です。
リソース:
1. Langfuse(オープンソース、無料枠あり)
リンク: https://langfuse.com/docs/observability/overview
オープンソースの LLM 可観測性プラットフォームです。すべてのリクエスト(送信されたプロンプト、受信した応答、トークン使用量、レイテンシ、ツール呼び出し)をトレースします。プロンプトのバージョン管理、評価、LLM-as-Judge スコアリングをサポートします。OpenAI、Anthropic、LangChain、LlamaIndex と統合できます。
2. LangSmith(無料枠あり)
リンク: https://smith.langchain.com/
LangChain チームによるものです。LangChain/LangGraph を使用している場合、セットアップは 1 つの環境変数で完了します。トレーシング、デバッグ、監視ダッシュボード、オンライン評価。無料枠は開発および小規模な本番環境には十分です。
3. Python Structlog(無料)
リンク: https://www.structlog.org/
Python のための構造化ロギングです。実際に検索可能で解析可能な JSON ログを生成します。本番アプリでの print() や基本的なロギングよりもはるかに優れています。
重点的に学ぶこと: すべての LLM 呼び出し(入力プロンプト、出力、トークン、レイテンシ、コスト)のトレース、JSON 出力による構造化ロギング、リクエスト量、エラー率、1 日あたりのコストを表示するダッシュボードの設定、そして何かが壊れたりコストが急増したときのアラート設定。
6. プロンプトとバージョン管理
本番環境では、プロンプトはコードです。バージョン管理、テスト、ロールバック機能が必要です。
何を変更したかを追跡せずに本番環境でプロンプトを変更することは、問題を引き起こし、その原因を特定できなくなる方法です。
リソース:
1. Langfuse プロンプト管理(無料)
リンク: https://langfuse.com/docs/prompts
テストのための組み込みプレイグラウンドを備えた集中型プロンプトバージョン管理です。アプリケーションコードとは別にプロンプトをバージョン管理します。アプリを再デプロイせずにプロンプトの変更をデプロイできます。
2. Anthropic プロンプト管理のベストプラクティス(無料)
リンク: https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview
プロンプトを大規模に整理、反復、管理するためのベストプラクティスです。
重点的に学ぶこと: アプリケーションコードの外部にプロンプトを保存すること、すべてのプロンプト変更をバージョン管理すること、本番環境でのプロンプトバリアントの A/B テスト、そして新しいプロンプトのパフォーマンスが低下した場合のロールバック戦略の準備。
7. コスト監視とレート制限
LLM API はトークンごとに課金されます。コスト管理がないと、トラフィックの急増やプロンプトのバグにより、数分で数百ドルを消費する可能性があります。
リソース:
1. OpenAI 使用量ダッシュボード(公式)
リンク: https://platform.openai.com/usage
モデル別、日別の支出を追跡し、使用制限を設定します。
2. Anthropic 使用量ダッシュボード(公式)
リンク: https://console.anthropic.com/ Claude API 使用量も同様です。
3. Helicone(無料枠あり)
自動コスト追跡機能付きで、すべての LLM 呼び出しをキャプチャするプロキシベースの可観測性です。設定は 1 行のコードで完了します。ベース URL を変更するだけです。
4. LiteLLM(オープンソース、無料)
リンク: https://github.com/BerriAI/litellm
100 以上の LLM プロバイダーのための統一インターフェースです。プロバイダー間の予算管理、レート制限、支出追跡が含まれます。
重点的に学ぶこと: 1 日/月あたりの厳格な支出制限の設定、API でのユーザーごとのレート制限の実装、単純なタスクにはより安価なモデルを使用すること(すべてに GPT-4/Opus を使用しない)、Redis で同一の繰り返しリクエストをキャッシュすること、そしてリクエストごとのコストを監視して高額なプロンプトを早期に発見すること。
8. キャッシング
ユーザーの 20% が同様の質問をする場合、同じ LLM 呼び出しに対して 20 回支払っていることになります。
キャッシングは、コストとレイテンシを同時に削減する最もシンプルな方法です。
リソース:
1. Redis 公式ドキュメント(無料)
標準的なインメモリデータストアです。高速でシンプルであり、LLM 応答のキャッシングに最適です。
2. GPTCache(オープンソース、無料)
リンク: https://github.com/zilliztech/GPTCache
LLM アプリケーション向けに特別に設計されたセマンティックキャッシングです。埋め込み類似性を使用して、意味的に類似した(同一だけでなく)クエリに対するキャッシュされた応答を検出します。
重点的に学ぶこと: 同一プロンプトに対する完全一致キャッシュ、類似クエリに対するセマンティックキャッシング、キャッシュ無効化戦略(TTL ベースが最もシンプル)、そして実際のコスト削減を理解するためのキャッシュヒット率の測定。
5 ヶ月目のマイルストーン
今月末までに、以下のことができるようになるはずです。
- 適切な本番設定で FastAPI + LLM アプリを Docker にデプロイする
- バックグラウンドジョブとキューを使用して長時間実行タスクを処理する
- 認証、レート制限、API キー管理で API を保護する
- Langfuse または LangSmith を使用して LLM 呼び出しをトレースおよびデバッグする
- バージョン管理とロールバック機能を使用してプロンプトを管理する
- コストをリアルタイムで監視し、支出制限を設定する
- LLM 応答をキャッシュしてレイテンシとコストを削減する
⏩------------------------------------------------------------------------⏪
6 ヶ月目: 専門化し、雇用される状態になる
これらの知識とスキルは、3 つの方向性(確かに、私が見ているのはこれらだけです)に応用できます。
そのうちの 1 つを選択し、実践に集中する必要があります。
上記のすべてについても、実際には実践を通じて学ぶのが最も良いと言えます。
方向性 1: AI プロダクトエンジニア
スタートアップの仕事を早く見つけたい場合に最適です。
これは最も一般的な道です。実際のユーザーが操作する AI 搭載製品を構築します。
1 ~ 5 ヶ月目でほとんどのスキルはすでに身についています。今度はプロダクト面をさらに深く掘り下げます。
焦点:
- LLM アプリ
- RAG
- エージェント
- デプロイ
- プロダクト UX
今月学ぶこと:
1. エンドツーエンドの製品構築
チュートリアルを作るのをやめて、人々が使える製品を構築しましょう。
リソース:
1. Vercel AI SDK(無料)
リンク: https://sdk.vercel.ai/docs
ストリーミングをサポートする AI 搭載 UI を構築するための最速の方法です。React、Next.js、Vue との統合と、組み込みのストリーミング UI コンポーネントを備えています。
2. Streamlit(無料)
リンク: https://docs.streamlit.io/
純粋な Python でデータアプリと AI デモを構築します。内部ツールや MVP に最適であり、本番規模の UI には適していません。
3. Gradio(無料)
リンク: https://www.gradio.app/docsQuick 最小限のコードで ML/AI インターフェースを構築。モデルのデモやプロトタイプ作成に特に優れている。
今月の目標: デモ可能なプロジェクトを 2~3 個完成させる。「ドキュメントと会話する」アプリ、AI を活用した社内ツール、実際のワークフローを自動化するエージェントなど。それらをリリースし、GitHub に公開し、実際に試せる場所にデプロイする。
2. AI のためのプロダクト UX
AI プロダクトが失敗するのは、UX がモデルの限界を考慮していないからだ。
リソース:
1. Google: People + AI Guidebook(無料)
リンク: https://pair.withgoogle.com/guidebook/
人間と AI のインタラクションをデザインするための最高のリソース。期待値の設定、エラー処理、信頼構築をカバー。
2. Nielsen Norman Group: AI UX ガイドライン(無料)
リンク: https://www.nngroup.com/topic/artificial-intelligence/
研究に基づいた AI インターフェースのガイドライン。
今月の目標: ストリーミング時のローディング状態の処理方法、モデルが誤った場合に何を表示するか、ユーザーがフィードバックを送信できる仕組み、AI の出力が確率的である(時には間違う)ことを前提としたデザインについて理解する。
方向性 2: 応用 ML / LLM エンジニア
より深い技術的な役割を目指す場合に最適。
この方向性は、API 呼び出しの先を行き、内部で何が起こっているかを理解したいエンジニア向け。
重点項目:
- ファインチューニング
- ファインチューニングすべきか、プロンプトエンジニアリングで十分か
- 評価
- 推論最適化
- オープンソースモデル
- トレーニングパイプライン
今月学ぶこと:
1. ファインチューニング vs プロンプトエンジニアリングの使い分け
応用 ML における最も重要な判断: モデル自体を変更する必要があるのか、それともモデルとの対話方法を変えるだけでよいのか?
リソース:
1. Google ML Crash Course: ファインチューニング、蒸留、プロンプトエンジニアリング(無料)
リンク: https://developers.google.com/machine-learning/crash-course/llm/tuning
3 つのアプローチと、それぞれをいつ使用すべきかを最も明確に説明している。
2. Codecademy: プロンプトエンジニアリング vs ファインチューニング(無料)
リンク: https://www.codecademy.com/article/prompt-engineering-vs-fine-tuning
各アプローチの明確なユースケースを示す、実践的な判断フレームワーク。
3. IBM: RAG vs ファインチューニング vs プロンプトエンジニアリング(無料)
リンク: https://www.ibm.com/think/topics/rag-vs-fine-tuning-vs-prompt-engineering
アプローチの組み合わせが必要な場合も含め、判断の全体像をカバー。
記憶すべき判断フレームワーク: まずはプロンプトエンジニアリングから始める(最も安価で最速)。モデルが特定のデータにアクセスする必要がある場合は RAG を追加。プロンプト + RAG で必要な品質、一貫性、レイテンシーを達成できない場合にのみファインチューニングを行う。
2. 実践的なファインチューニング
ファインチューニングが必要な場合、その方法は以下の通り。
リソース:
1. OpenAI ファインチューニングガイド(公式、無料)
リンク: https://platform.openai.com/docs/guides/fine-tuning
ファインチューニングを始める最も簡単な方法。JSONL データセットをアップロードし、ジョブを実行し、カスタムモデルを取得する。後でオープンソースモデルに移行する場合でも、ワークフローを学ぶのに最適。
2. HuggingFace Transformers ファインチューニングチュートリアル(無料)
リンク: https://huggingface.co/docs/transformers/training
オープンソースモデルを扱うための標準ライブラリ。トレーニング、評価、モデル保存をカバー。
3. Unsloth(オープンソース、無料)
リンク: https://github.com/unslothai/unsloth
2 倍高速なファインチューニングを 80% 少ないメモリで実現。LoRA と QLoRA を標準サポート。コンシューマ向けハードウェアでオープンソースモデルをファインチューニングする最速の方法。
4. LLaMA-Factory(オープンソース、無料)
リンク: https://github.com/hiyouga/LLaMA-Factory
100 以上の LLM をファインチューニングするための統合フレームワーク。コード不要のファインチューニングを実現する Web UI を含む。LoRA、QLoRA、完全ファインチューニング、RLHF、DPO をサポート。
今月の目標: トレーニングデータセットの準備(JSONL 形式)、LoRA と QLoRA(パラメータ効率的なファインチューニング)の理解、OpenAI または HuggingFace でのファインチューニングジョブの実行、ベースモデルに対するファインチューニング済みモデルの評価、そしてファインチューニングがコストに見合わない場合の判断基準を身につける。
3. オープンソースモデル
すべての処理を OpenAI や Anthropic 経由で行う必要はない。オープンソースモデルは、完全な制御、API コストの削減、ローカル実行の可能性をもたらす。
リソース:
1. Ollama(無料)
リンク: https://ollama.ai/
1 つのコマンドでオープンソース LLM をローカル実行。Llama、Mistral、Gemma など、多数のモデルをサポート。オープンソースモデルを試す最速の方法。
2. HuggingFace Model Hub(無料)
リンク: https://huggingface.co/models
最大のオープンソースモデルリポジトリ。あらゆるタスクに対応するモデルの閲覧、ダウンロード、デプロイが可能。
3. vLLM(オープンソース、無料)
リンク: https://github.com/vllm-project/vllm
高スループット LLM 推論エンジン。ナイーブな HuggingFace サーブと比較して 2~4 倍高速。オープンソースモデルの本番運用における標準。
今月の目標: Ollama を使ったローカルモデル実行のテスト、量子化(GGUF、GPTQ、AWQ)とそのデプロイにおける重要性の理解、ユースケースに基づくオープンソースモデルと API モデルのベンチマーク比較、vLLM を使った本番環境でのモデル提供。
4. 推論最適化
本番環境でモデルをより高速かつ低コストで動作させる方法。
リソース:
1. HuggingFace: LLM 推論の最適化(無料)
リンク: https://huggingface.co/docs/transformers/llm_optims
KV キャッシュ最適化、量子化、バッチング戦略をカバー。
2. NVIDIA TensorRT-LLM(無料)
リンク: https://github.com/NVIDIA/TensorRT-LLM
NVIDIA GPU 上で最大の推論パフォーマンスを実現。大規模な本番 LLM サービスの大半で使用されている。
今月の目標: スループット向上のためのバッチング戦略、メモリとコスト削減のための量子化、高速生成のための KV キャッシュ最適化、推論ワークロードに適したハードウェアの選択。
方向性 3: AI 自動化エンジニア
すぐにビジネス向けの構築を始めたい場合に最適。
この方向性は、AI を使って実際のビジネスワークフローを自動化することに焦点を当てる。プロダクト構築よりも、業務上の問題解決を重視。
重点項目:
- ワークフローオーケストレーション
- ビジネスプロセス自動化
- マルチツールシステム
- CRM、ドキュメント、メール、サポート、業務ユースケース
今月学ぶこと:
1. ワークフローオーケストレーション
実際のビジネス自動化は、ほとんどの場合、1 回の LLM 呼び出しで完結しない。複数のシステムにわたるアクションの連鎖である。
リソース:
1. n8n(オープンソース、セルフホストは無料)
リンク: https://docs.n8n.io/
AI ノードを備えたビジュアルワークフロー自動化ツール。LLM を 400 以上のインテグレーション(Slack、Gmail、Notion、CRM など)に接続可能。AI 自動化のための最良のノーコード / ローコードオプション。
2. LangGraph: マルチエージェントワークフロー(無料)
リンク: https://langchain-ai.github.io/langgraph/concepts/multi_agent/
複雑なマルチエージェントシステムのためのコードファーストオーケストレーション。n8n では不十分で、完全なプログラム制御が必要な場合に使用。
3. Temporal(オープンソース、無料)
リンク: https://docs.temporal.io/
長時間実行、耐障害性のあるプロセスのための耐久性のあるワークフローエンジン。クラッシュ、リトライ、タイムアウトに耐える自動化が必要な場合に使用。
今月の目標: 障害が発生しても優雅に処理できるワークフローの設計、AI と実際のビジネスツール(メール、CRM、データベース、スプレッドシート)の連携、人間による承認ステップの組み込み、監査証跡のためのすべての自動化アクションのログ記録。
2. ビジネスプロセス自動化
AI 自動化における収益源は、特定の高コストなビジネス問題を解決することにある。
リソース:
1. Zapier AI Actions(無料枠あり)
コードなしで AI を 6,000 以上のアプリに接続。カスタムソリューションを構築する前のプロトタイピングに最適。
2. Make(Integromat)(無料枠あり)
高度なロジックと AI 統合を備えたビジュアル自動化プラットフォーム。複雑なワークフローにおいて Zapier より強力。
今月の目標: 最も ROI の高い自動化ターゲットの特定(通常は反復的で時間がかかり、ルールベースのタスク)、人間を置き換えるのではなく補完する自動化の構築、実際に節約された時間とコストの測定。
3. CRM、ドキュメント、メール、サポートの自動化
最も一般的で価値の高い AI 自動化のユースケース。
リソース:
1. OpenAI Cookbook: AI を活用したメール処理(無料)
リンク: https://github.com/openai/openai-cookbook
AI によるメールの分類、振り分け、返信のパターン。
2. LangChain: ドキュメント処理パイプライン(無料)
リンク: https://python.langchain.com/docs/how_to/#document-loaders
80 以上のソースからのドキュメントの取り込みと処理。
今月の目標: AI を活用したメール分類・自動返信システムの構築、構造化データを抽出するドキュメント処理パイプラインの作成、ナレッジベースに対して RAG を使用するサポートチャットボットの構築、既存の CRM ワークフロー(HubSpot、Salesforce など)への AI 統合。
方向性 3 の練習プロジェクト: エンドツーエンドのリード(見込み客)評価システムを構築する。以下の機能を持つこと:
ソース(CSV、API、フォーム)からリードをスクレイピングまたはインポートする
LLM を使用して各リードを調査する(企業情報、適合性評価)
IDEAL CUSTOMER PROFILE(ICP)に基づいてリードをスコアリング・ランク付けする
パーソナライズされた初期コンタクトメッセージを作成する
すべてをスプレッドシートまたは CRM に記録する
これは、企業が実際に費用を支払う、現実で販売可能な自動化である。
⏩------------------------------------------------------------------------⏪
結論
この 6 ヶ月間で何が期待できるか?
正直に言うと、魔法のようなお金の山ができるわけではない。
このロードマップだけで、6 ヶ月で AI のシニアエンジニアになれるわけではない。
しかし、実際の問題を解決する、現実的な AI システムを構築、リリース、デプロイできる人材にはなれる。
そして今、市場が求めているのはまさにそれだ。
AI エンジニアへの需要は衰えることを知らない。求人件数は前年比で 25% 増加している。
PwC の調査によると、AI スキルを必要とする職種は、そうでない同じ職種と比較して 56% の賃金プレミアムがある。
「AI に成熟している」と見なされる企業はわずか 1% であり、残りの 99% は依然として支援を必要としている。米国労働統計局は、2034 年までに 26% の雇用成長を予測している。
これらは誇張された数字ではない。分析に基づく実際の数字だ(Claude から拝借)。
アメリカでフルタイム勤務する場合:
ジュニア AI エンジニア: 年収 $90,000~$130,000
ミッドレベル(3~5 年): 年収 $155,000~$200,000
シニア: 年収 $195,000~$350,000+
Glassdoor(2026 年 3 月)によると、平均は $184,757
ミッドレベルの帯が前年比 9.2% で最も速く成長している。これは、企業が絶え間ない監督なしで本番 AI をリリースできる人材を切実に必要としているからだ。
フリーランスが向いている場合:
AI エージェント開発: 時給 $175~$300
RAG 実装: 時給 $150~$250
LLM 統合: 時給 $125~$200
ある Reddit ユーザーは、法律事務所向けの文書要約ツールを 2 週間で構築し、$8,000 を稼いだ。時給 $150 で週 25 時間稼働するフリーランサーは、年間 $195,000 を稼ぐことになる。
そして、以前の投稿で話したコンサルティングの道に進む場合、以下のように請求できる:
ビジネス向け AI エージェントのセットアップ: $300~$5,000
AI を活用したコンテンツ管理: 月額 $500~$2,000
カスタマーサポートの自動化: $1,000~$4,000
コールドアウトリーチ(新規見込み客への連絡)の設定: $500~$2,000
サービス範囲はさらに広いが、このロードマップのスキルを習得すれば、2026 年にはすでに需要のあるスペシャリストになっている。
これらはすべて、実際の仕事をしている実際の人々の実際の数字だ。
ここで、このすべてから実際に持ち帰ってほしいこと:
各月から 1 つのプロジェクトを選び、それを実際に作ること。読むだけではない。チュートリアルを見るだけではない。作って、壊して、直して、デプロイして、GitHub に公開すること。採用されるエンジニアは、何を学んだかではなく、何を構築したかを示す人たちだ。
学んだことを共有し始めること。X、LinkedIn、どこでもいい。教えることは最速の学習方法であり、同時に評判を築くことにもなる。私が見てきた最高の機会は、500 もの求人に応募した人ではなく、存在を認知されていた人々からもたらされた。
そして、「準備ができた」と感じるまで待ってはいけない。その感覚は永遠に訪れない。「学んでいる」状態と「作っている」状態のギャップこそが、ほとんどの人が永遠に足踏みする場所だ。
動くプロジェクトができたらすぐに、応募を始め、フリーランスを始め、サービスを提供し始めること。完璧でなくても構わない。市場が評価するのは完璧さではない。市場が評価するのは、リリースできる人だ。
本当に努力するなら、6 ヶ月で全てを変えることは可能だ。
そして、これを読んでいる皆さん一人ひとりに、それができると心から信じている。
決して作ることをやめず、学ぶことをやめないでほしい。
これが皆さんの役に立てば幸いです ❤️





