「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
このコースは、生成AIと大規模言語モデル(LLM)の世界に飛び込みたいと願う、AIエンジニア、データサイエンティスト、そして開発者を目指す方に最適です。わずか8週間で、実践的なアプリケーションを構築し、最先端の技術を習得することで、AIへの理解を飛躍的に深めることができます。急速に進化するAI業界で、他社との差別化を図るための実践的な経験を積むことができます。ぜひご参加いただき、AIテクノロジーのリーダーへの第一歩を踏み出しましょう!
- 最初のLLM製品の構築: トップモデルとトランスフォーマーの探索
企業の Web サイトをインテリジェントにスクレイピングしてナビゲートする AI 搭載のパンフレット ジェネレーターを作成。
- マルチモーダルチャットボットの構築: LLM、 Gradio UI、エージェントの活用
UI と関数呼び出しを備えた航空会社向けのマルチモーダル顧客サポート エージェントを構築。
- OSSのGen AI: Hugging Faceを使った自動化ソリューションの構築
オープンソース モデルとクローズド ソース モデルの両方を使用して、音声から会議の議事録とアクション項目を作成するツールを開発。
- LLM対決: コード生成とビジネスタスクのためのモデルの評価
Python コードを最適化された C++ に変換してパフォーマンスを 60,000 倍向上させる AI を作成。
- RAG をマスターする: ベクトル埋め込みと LangChain を使用した高度なソリューションの構築
RAG を使用して AI ナレッジ ワーカーを構築し、企業関連のすべての問題の専門家になる。
- LoRA/QLORAを用いたFrontier大規模言語モデルの微調整
フロンティア モデルを使用して短い説明から製品の価格を予測します。
- 価格予測で Frontier と競合できるように、オープンソースモデルを微調整。
価格予測で Frontier と競合できるように微調整されたオープンソース モデルを実行。
- モデルと連携した自律マルチエージェントシステムの構築
モデルと連携してお買い得品を見つけ、特別バーゲンを通知する自律マルチエージェント システムを構築します。
- RAG、微調整、エージェントワークフローなど、LLMソリューションのパフォーマンスを向上させる最新の手法を比較対照します。
- 主要な10のフロンティアLLMと10のオープンソースLLMを比較検討し、与えられたタスクに最適な選択肢を選択できるようになります。
詳細 †
- トレーニング・コンテンツでは良いことを言うがソコから0から学ぶものではなく、知っている人が、ソレを思い出すレベルのモノ。
- 故に、Python、Jupyter Notebook、DNN、Transformer、LLM、Embedding、RAG、ファインチューニングなどについての基礎知識は必要と言える。
- しかし、これらの前提知識(E資格相当)がなくとも、コードを書けるようにするだけの目的で、コンテンツは十分に機能はする。
- 英語版のトランスクリプトは微妙なので日本語版を選択する。と言うか、時間の関係からか、講師はコードの詳細をあまり解説できていない。
- しかし、幸いにも、詳細の解説はGitHub上に実装されているので、Copilotに生成してもらうことで代替できる。講師より詳細に説明してくれる。
- ちなみに講師のローカル環境はMACのM1だが、私は、WindowsのWSL2のUbuntuだった。プロキシ環境下、特にSSLフォワード・プロキシでは少々手こずる可能性がある。
- ちなみに、GPUが必要になるような箇所については、Google Clabを使用している。GPU付きのVMを準備する場合は、コチラ や コチラが参考にはなる。
前提ソフト †
パッケージ †
https://github.com/ed-donner/llm_engineering/blob/main/requirements.txt
python-dotenv
jupyterlab
ipywidgets
requests
numpy
pandas
scipy
scikit-learn
matplotlib
gensim
torch
transformers
tqdm
openai
gradio
langchain
langchain-core
langchain-text-splitters
langchain-openai
langchain-chroma
langchain-community
datasets==3.6.0
matplotlib
google-generativeai
anthropic
chromadb
plotly
jupyter-dash
beautifulsoup4
pydub
modal
ollama
psutil
setuptools
speedtest-cli
sentence_transformers
feedparser
protobuf==3.20.2
wandb
アプリ †
サービス †
Week1 †
GPT-4o、Claude 3.5などのフロンティア・モデルを活用し、商用プロジェクトを構築
Day0 †
Day1に含まれる内容だが、環境構築などが中心なので切り出した。
- 内容
- WindowsやMACでOllama(C++版LLMをローカルで実行できるプラットフォーム)を使ってローカル環境でLLM(大規模言語モデル)のLlama 3.2を実行、スペイン語学習用の会話を実演。
- ローカル環境で様々なLLMを試し、特に Qwen2.5の多言語理解力の強さを実感
- 前提環境(Git、Anaconda or venv&pip、JupyterLab、ChatGPT、Claudeの構築をMAC/Windowsで実演)とサポートの話
- ChatGPT、Claudeなどの強力なフロンティア・モデルを使うための設定手順(課金方法や、.envファイルを使用し環境変数にAPIキーを設定する手順)
Day1 †
- 内容
- ウェブページをBeautifulSoup?でスクレイピングする。
- これをフロンティア・モデルに入力し要約させる。
Day2 †
- 内容
- 様々なフロンティア・モデル、OSSモデル、モデルの利用方法、などについて解説。
- ローカルモデル Llama を Python から呼び出し、Day1の要約ツールに組み込む
Day3 †
- 内容
- 様々なフロンティア・モデルの特徴・違い・強み・弱みを理解し、ビジネスやプロジェクトでの活用を考える。
- 複数のLLM(ChatGPT、Claude、Gemini、Cohere Command-R Plusなど)を比較しながら質問を投げかける実演
- 評価項目(ビジネス適合性、自己認識と能力評価、哲学的・人間中心的、単純計算・テキスト分析)
- モデルによって得意・不得意があり(得意分野、限界、比較)複雑な推論や分析に強いモデルは精度が高い
- 「ハワイから17まで跳ぶのに虹はいくつ必要か?」GPT-2、GPT-4o(マルチモーダル、イメージ画像出力)
- GPT-4oの新機能「Canvas」を使ったインタラクティブなコード作業
- Claudeの特徴「思慮深い応答」「倫理・安全性への配慮」「コード生成とClaude Artifacts機能」
- Google Geminiはニュアンス理解が弱く、Cohere Command-R Plusは知識活用に優れるが単純計算や明確なルールのタスクには弱い。
- Meta AI(Llamaのフロントエンド)、Perplexity(検索エンジンベース)事実に基づいた質問や時事問題への回答が得意。
- GPT-4o(Alex)、Claude 3 Opus(Blake)、Gemini 1.5 Pro(Charlie)を用いたリーダー選出ゲームを実施。
Day4 †
- 内容
- トランスフォーマーの歴史とLLMの基礎概念、創発的知能の理解 を中心に、実際の応用やモデル比較の事例も交えて説明
- 最近のAI分野の動向(プロンプトエンジニアの台頭と衰退、カスタムGPTの人気と飽和、Copilotの重要性、エージェントAI)
- LLMのパラメタと規模、従来のモデルとの比較、LLMの特徴的な強さは、桁違いに多いパラメタ数による精緻な出力制御能力にある。
- トークン(文字単位モデル、単語単位モデル)、LLMのトークナイザのトークン化のアプローチ(文字単語の中間)、数字や特殊文字の扱いなど。
- コンテキストウィンドウとは「LLMが一度に参照できる過去の情報量の総和」であり、これが生成可能な出力の質や範囲に直接影響する。
- フロンティア・モデルのチャットUIとAPIの課金構造の違い、API利用時のコストの注意点、代替手段としてOllamaが使えることを説明。
- Vellumのリーダーボードでコンテキストウィンドウとトークン単価を理解することで、モデル利用の規模感やコスト感覚を把握可能。
Day5 †
- 内容:OpenAI APIでワンショットプロンプティングしマーケティングパンフレット生成ツールを作る実践
- JupyterLab上でウェブスクレイピングを行い、GPT-4o miniを活用して企業パンフレット用の情報収集と整理を効率的に行う
- GPT-4oを活用してウェブサイトのリンクを収集・選別し、会社のパンフレットに必要な関連リンクをJSON形式で出力。
- PythonとGPT-4o miniを使った「ウェブページ情報の自動収集 → AIによる整理 → 会社パンフレット生成」という一連の流れを解説。
- まとめ:システムプロンプトで生成結果を制御しつつLLMを複数回呼び出して情報を収集・統合、最後にストリーミングで出力を見せる。
- エクササイズ:自分専用の学習支援ツールを作り、GPTやLlamaを使ってコードの質問に答えさせる演習
Week2 †
GradioでUI構築、マルチモーダルAIアシスタント/チャットボットを開発
Day1 †
- 内容
- GPT-3.5 Turbo、GPT-4o mini、GPT-4o Max、Claude 3.5、Gemini 1.5 Flashを使い、データサイエンティスト向けのジョークを生成。
- 複数チャットボットの会話を管理・生成する方法を学びながら、API操作とPythonのリスト操作 (zip) に慣れるための実践演習。
Day2 †
- 内容:
- Gradioで、フロントエンド開発の煩雑さを省略しLLMのプロトタイプ用UIを迅速に作成・公開
- 「GradioでのシンプルなUI作成→関数呼び出し→公開URL共有」 の基本フローを体験
- GPT-4o・Claudeのモデル選択ドロップダウン、Markdown形式かつストリーミングでの応答表示
- Gradio上で複数モデル対応のストリーミングチャットUIとパンフレット生成UIを簡単に作る。
Day3 †
Day4 †
Day5 †
Week3 †
Hugging Faceを用いたOSSモデル活用(Pipelines API、トークナイザ、モデル探求)
Day1 †
Day2 †
Day3 †
Day4 †
Day5 †
Week4 †
モデル選択とベンチマーク、コード生成課題(Python → 高速C++変換)
Day1 †
Day2 †
Day3 †
Day4 †
Day5 †
Week5 †
RAG(検索拡張生成)を学び、自分用RAGパイプラインを構築
Day1 †
Day2 †
Day3 †
Day4 †
Day5 †
Week6 †
ビジネス課題を設定、従来のMLモデルとフロンティアモデルで解決を試み、ファインチューニング
Day1 †
Day2 †
Day3 †
- Random: Error: $340
- Average: Error: $145
- Features&LinearRegression?: Error: $140
- CountVector?&LinearRegression?: Error: $80
Day4 †
- Human: Error: $126
- gpt_4o_mini: Error: $80
- gpt_4o_frontier: Error: $75
- claude_3.5_sonnet: Error: $100
Day5 †
- フロンティアモデルにおけるファインチューニングの主な目的(使い所はかなり限られそう)
- プロンプトでは実現できない初期出力のスタイルやトーンを設定
- フォーマットなど特定の種類の出力を生成する際の信頼性を向上させる
- 複雑なプロンプトに従えない問題を修正し従順性を高める
- エッジケース(例外的な入力)に対処する
- プロンプトでは難しい新スキル・タスクを実行
Week7 †
OSSモデルを改善し、フロンティアモデルに匹敵する性能を目指す
Day1 †
Day2 †
Day3 †
Day4 †
Day5 †
- Llama 3.1 FTed: Error: $52
- Llama 3.1 FTed + α: Error: $47
Week8 †
最後に複数のエージェントが協力する完全自律型AIソリューションを構築
Day1 †
Day2 †
- gpt_4o_mini + RAG: Error: $48
- RandomForest?: Error: $100
- Ensemble: Error: $55-50
Day3 †
Day4 †
Day5 †
参考 †
コード †
スライド †
https://drive.google.com/drive/folders/1JwNorpRHdnf_pU0GE5yYtfKlyrKC3CoV