LLMリサーチエンジニアのJD(職務記述書)の要求事項をすべて満たすためのポートフォリオリストを提案しました。
その中に、個々のプロジェクトは特定の技術領域にフォーカス(高凝聚)しつつ、全体としてLLMリサーチエンジニアに必要なスキルセットを網羅的に証明できるように構成(疎結合)しました。
📜 プロジェクト1:特定ドメイン特化型・日本語LLMの分散学習と性能評価
このプロジェクトは、LLMのコア技術である学習と評価に特化します。
目的: 与えられた日本語の特定ドメイン(例:金融レポート、法律文書、医療対話など)において、既存のオープンソースLLMをファインチューニングし、その性能を定量的・定性的に評価するプロセス全体を実証する。
証明するスキル:
- PyTorch, Transformers, Hugging Face系ライブラリの利用経験:
transformersでモデルをロードし、datasetsでデータセットを処理、PEFT(LoRA/QLoRA)を用いて効率的にファインチューニングを行う。 - ローカルLLMの推論・学習・評価経験: 独自データセットでのファインチューニング、評価スクリプト(JGLUEなどを参考に独自指標も実装)の作成と実行。
- 分散処理・並列処理の実装経験:
AccelerateやDeepSpeedライブラリを利用し、マルチGPU環境でのデータ並列・モデル並列学習を実装。その際の設定やログもリポジトリに含める。 - Pythonでの2年以上の開発経験: 学習・評価パイプライン全体をモジュール化された再利用性の高いPythonコードで記述する。
- PyTorch, Transformers, Hugging Face系ライブラリの利用経験:
具体的な実装内容:
- データ前処理: Hugging Face
Datasetsを使い、日本語のカスタムデータセットを読み込み、トークナイズするスクリプト。 - 学習スクリプト:
transformers.Trainerまたは自作の学習ループにPEFTを組み込み、マルチGPUで学習を実行するスクリプト。設定ファイル(YAMLなど)でパラメータを管理する。 - 評価スクリプト: 定量評価(Perplexity, BLEU/ROUGEなど)と、定性評価(モデルの生成例を比較する)ためのコード。カスタム評価指標を実装すると、よりリサーチ能力をアピールできる。
- 実験管理:
wandbやmlflowとの連携部分を実装し、学習過程や結果を可視化・管理する。
- データ前処理: Hugging Face
GitHub上での見せ方:
🚀 プロジェクト2:LLM推論APIのプロダクション向け実装とCI/CDパイプライン構築
このプロジェクトは、モデルの実用化(デプロイと運用)に特化します。
目的: プロジェクト1で作成した、あるいは既存のオープンソースLLMを、安定して高速に稼働するAPIとして提供する。その開発からデプロイまでのプロセスを自動化し、プロダクションレベルの品質を証明する。
証明するスキル:
- Pythonを用いたプロダクションレベルの開発経験: FastAPIやFlask等を用い、非同期処理、エラーハンドリング、ロギング、単体テスト(
pytest)を完備した堅牢なAPIを開発する。 - 機械学習モデルの実装から本番環境へのデプロイまでの一連の経験: Dockerを用いてAPIをコンテナ化し、クラウドサービス(GCP, AWSなど)へのデプロイ手順を確立する。
- MLOps・LLMOps パイプラインの設計・構築・運用経験: GitHub Actionsを利用し、コードプッシュ時に自動でテスト・ビルド・デプロイが行われるCI/CDパイプラインを構築する。
- Git/GitHub を用いたチームでの開発経験: 開発ブランチ、プルリクエスト、コードレビューのフローを一人でも実践し、コミットログを分かりやすく記述する。
- Pythonを用いたプロダクションレベルの開発経験: FastAPIやFlask等を用い、非同期処理、エラーハンドリング、ロギング、単体テスト(
具体的な実装内容:
- APIサーバー: FastAPIで推論エンドポイントを実装。リクエスト・レスポンスの型定義にはPydanticを使用。
- 推論エンジン:
vLLMやText Generation Inferenceなどの高速推論ライブラリを導入し、スループットとレイテンシを最適化する。 - Dockerfile: 推論環境を再現可能にするためのDockerfileを作成。
- CI/CDスクリプト: GitHub Actionsのワークフローファイル(
.github/workflows/main.yml)で、テスト、Dockerイメージのビルド、コンテナリポジトリへのプッシュ、デプロイを自動化する。 - モニタリング: Prometheus形式でAPIのメトリクス(リクエスト数、レイテンシなど)を公開するエンドポイントを実装。
GitHub上での見せ方:
🔬 プロジェクト3:独自プロトコル実装:PythonによるMCP(Model Context Protocol)の設計と実装
このプロジェクトは、単体のモデル開発に留まらず、複数のAIモデル(LLM含む)が連携するエコシステムを構想・実装する能力を証明することに特化します。
目的: 複数のLLMや専門モデル(画像生成、音声認識など)が協調して動作するための、独自のコンテキスト共有プロトコル(MCP)をPythonで設計・実装する。これにより、将来の高度なAIアプリケーション開発を見据えたアーキテクチャ設計能力と、それを実現する高度なPythonエンジニアリングスキルを示す。
証明するスキル:
- Pythonでの2年以上の開発経験: プロトコルの仕様策定、データ構造の設計(Pydantic等)、非同期通信(asyncio)、シリアライゼーション(JSON, Protocol Buffers)といった、高度なソフトウェアエンジニアリング能力を証明する。
- Pythonを用いたプロダクションレベルの開発経験: 再利用可能で拡張性の高いライブラリとしてパッケージングし、堅牢なエラーハンドリングとロギング機構を組み込む。
- 日本語でのビジネスレベルのコミュニケーションスキル: プロトコルの設計思想、仕様、利用方法を
README.mdやドキュメントで明確かつ論理的に日本語で説明する。 - Git/GitHub を用いたチームでの開発経験: プロジェクトの目的やロードマップを明確にし、Issue駆動での開発やセマンティックバージョニングを実践する。
具体的な実装内容:
- プロトコル仕様の定義:
- コアライブラリの実装:
- デモンストレーション用アプリケーション:
- パッケージングとテスト:
GitHub上での見せ方:
効果
ポートフォリオ全体として以下のメッセージをより強力に伝えることができます。
- 技術的先進性: 単なるモデル利用者に留まらず、次世代のAIアプリケーション基盤を自ら設計・実装できる先進的なエンジニアであることを示せます。
- アーキテクチャ設計能力: 「高凝聚・疎結合」という思想を、コードレベルだけでなく、システム全体のアーキテクチャレベルで理解し、実践できることを証明できます。
- 課題解決能力: LLMが社会実装される上で課題となる「複数モデルの連携」というテーマに対し、具体的な解決策を提示できる能力をアピールできます。
プロジェクト1(深層学習)、プロジェクト2(本番運用)、そしてこの新しいプロジェクト3(システムアーキテクチャ)の組み合わせは、LLMリサーチエンジニアとして求められるスキルセットを極めて高いレベルで網羅的に証明するものとなるでしょう。