-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_UdemyLLMEngineering
- 戻る(テキスト生成系(Transformer系) > 学習系(テキスト生成系(Transformer系)の該当節を参照)、LLMエージェント)
- LLM Engineering:Master AI、Large Language Models&Agents(本ページ)
- The Complete Agentic AI Engineering Course (2025)
- オリジナル・コンテンツ(イキナリLLMからスタートしたい)
- Master Vibe Coding with AI Coding Agents:Claude Code...
- オリジナル・コンテンツ(イキナリLLMコーディング・エージェント)
- https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models/
- 日本語タイトル:世界10万人が学んだ講師が教えるLLM開発(日本語字幕)
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models-japanese/
このコースは、生成AIと大規模言語モデル(LLM)の世界に飛び込みたいと願う、
AIエンジニア、データサイエンティスト、そして開発者を目指す方に最適です。
わずか8週間で、実践的なアプリケーションを構築し、最先端の技術を習得することで、
AIへの理解を飛躍的に深めることができます。
急速に進化するAI業界で、他社との差別化を図るための実践的な経験を積むことができます。
ぜひご参加いただき、AIテクノロジーのリーダーへの第一歩を踏み出しましょう!
- 最初のLLM製品の構築: トップモデルとトランスフォーマーの探索
企業の Web サイトをインテリジェントにスクレイピングしてナビゲートする
AI 搭載のパンフレット ジェネレーターを作成。 - マルチモーダルChatボットの構築: LLM、Gradio UI、エージェントの活用
UI と関数呼び出しを備えた航空会社向けのマルチモーダル顧客サポート エージェントを構築。 - OSSのGen AI: Hugging Faceを使った自動化ソリューションの構築
Open系モデルとClosedモデルの両方を使用して、
音声から会議の議事録とアクション項目を作成するツールを開発。 - LLM対決: コード生成とビジネスタスクのためのLLMの評価
Python コードを最適化された C++ に変換してパフォーマンスを 60,000 倍向上させる AI を作成。 - RAG をマスターする: ベクトル埋め込みと LangChain を使用した高度なソリューションの構築
RAG を使用して、企業関連のすべての問題の専門家になるAIナレッジワーカーを構築 - 最終課題パートA – フロンティアLLMの利用とファインチューニング
フロンティアLLMと、そのファインチューニングを使用して短い説明から製品の価格を予測。 - 最終課題パートB – 価格予測でフロンティアLLMと競合できるように、OSS-LLMをファインチューニング。
価格予測でフロンティアLLMと競合できるようにファインチューニングされたOSS-LLMを実行。 - 最終課題パートC – LLMと連携した自律マルチエージェントシステムの構築
LLMと連携してお買い得品を見つけ、特別バーゲンを通知する
自律マルチエージェント システムを構築。
- RAG、ファインチューニング、エージェントワークフローなど、
LLMソリューションのパフォーマンスを向上させる最新の手法を比較対照。 - 主要な10のフロンティアLLMと10のOSS-LLMを比較検討し、
与えられたタスクに最適な選択肢を選択できるようになります。
-
前提
- 座学でML/DL/LLMに関する良いことを言うケースがあるが、
ソレは0から学ぶものではなく、知っている人が、ソレを思い出すレベル。 - 故に、Python、Notebook、ML/DL/LLM、Embedding、Transformer-Based LLMs、RAG、
ファインチューニングなどについての基礎知識は必要。 - しかし、これらの前提知識(E資格相当)がなくとも、
コードを書けるようにするだけの目的で、コンテンツは十分に機能はする。
- 座学でML/DL/LLMに関する良いことを言うケースがあるが、
-
解説
- 英語版のトランスクリプトは微妙なので日本語版を選択する。
しかし、時間の関係からか、講師はコードの詳細をあまり解説できていない。 - 幸いにも、詳細の解説はGitHub上にコードが配置されているので、
Copilotに生成して貰う事で代替できる。講師より詳細に説明してくれる。 - 余談:日本語版と英語版を比べると、
日本語版が最新版(英語版とGitHub実装)に追いついていないケースが
エージェント版で観測されたので、そういうケースもありそうだと認識しておくと良いかも。
- 英語版のトランスクリプトは微妙なので日本語版を選択する。
-
その他、個人的に思ったコト
-
オープン系のLLMエンジニアリングの一般常識的な知識が得られる
(クローズド環境では得られない機能など)。- 開発環境:JupyterLab、Google Colaboratory、
Modal、Hugging Face Space/Inference Endpoints - ツール類:OpenAIなどLLMクライアント、UI(Gradio、Streamlit)、
他(Beautiful Soup、deep_translator) - RAG/Agent:LangChain/LlamaIndex/ChromaDB、
OpenAI/CrewAI/AutoGen/LangGraph - ローカル系:Ollama、Hugging Face Hub/Python library、WandB
- 開発環境:JupyterLab、Google Colaboratory、
-
講師の嗜好として、プロダクト使いで概念を学ばせるが、
商用利用スクラッチと考えている傾向が見て取れる。 -
LLMを価格推論(回帰)に使用しているのは、主要なユースケースではないが、
その結果はDS的には面白い。 -
もっともニーズのある知識付与のファインチューニングについての
ノウハウがあまりなかったことが残念ではある。
-
- ちなみに講師のローカル環境はMACのM1だが、
私は、WSL2 Ubuntu 24.04 LTSだった。 - プロキシ環境下、特にSSLフォワード・プロキシでは少々手こずる可能性がある。
- ちなみに、GPUが必要になるような箇所については、
Google Colaboratoryや、Hugging Face、Modalを使用。 - GPU付きのVMを自分で準備する場合は、
コチラ(OSSのLLMの該当節を参照)や
コチラ(LLMのFTの該当節を参照)が参考にはなる。
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
-
OpenAIなどフロンティアLLM(クライアント)
-
Hugging Face(クライアント)
-
ChromaDB(LLMのRAGの該当節を参照)
-
UI(Gradio、Streamlit)
-
Beautiful Soup:スクレイピング
-
deep_translator:自動翻訳ライブラリ
-
OpenAIなどフロンティアLLM(サーバー)
-
Ollama(サーバー)
-
Hugging Face(サーバー)
- 各種LLMの検索利用
- LLMデータ保存
- スペース・エンドポイント
-
WandB:学習状況の可視化
-
Modal:サーバーレス環境
-
Pushover:プッシュ通知
-
最初のLLM製品の構築: トップモデルとトランスフォーマーの探索
- GPT-4o、Claude 3.5などのフロンティアLLMを活用し、商用プロジェクトを構築
- 企業の Web サイトをインテリジェントにスクレイピングしてナビゲートする
AI 搭載のパンフレット ジェネレーターを作成。
-
コンテンツ
Day1に含まれる内容だが、環境構築などが中心なので切り出した。
-
表題
- コールドオープン:LLMエンジニアリングにいきなり飛び込む
- WindowsとMacでのローカルLLMデプロイのためのOllama設定
- ローカルLLMの力を解き放つ:Ollamaでスペイン語チューターを構築
- LLMエンジニアリングロードマップ:8週間で初心者からマスターへ
- LLMアプリケーションの構築:チャットボット、RAG、エージェントAIプロジェクト
- ウォール街からAIへ:Ed DonnerがLLMエンジニアになるまでの道のり
- LLM開発環境のセットアップ:ツールとベストプラクティス
- Macセットアップガイド:LLMプロジェクトのためのJupyterLabとConda
- LLMエンジニアリングのためのAnacondaセットアップ:Windowsインストールガイド
- LLMプロジェクトのための代替Pythonセットアップ:Virtualenv vs. Anacondaガイド
- LLM開発のためのOpenAI APIセットアップ:キー、価格、ベストプラクティス
- APIキーを安全に保管するための.envファイルの作成
-
要約
- WindowsやMACでOllama(C++版LLMをローカルで実行できるプラットフォーム)を
使ってローカル環境でLLM(大規模言語モデル)のLlama 3.2を実行、
スペイン語学習用の会話を実演。 - ローカル環境で様々なLLMを試し、特に Qwen2.5の多言語理解力の強さを実感
- 前提環境(Git、Anaconda or venv&pip、
JupyterLab、ChatGPT、
Claudeの構築をMAC/Windowsで実演)とサポートの話 -
ChatGPT、Claudeなどの強力なフロンティアLLMを使うための設定手順
(課金方法や、.envファイルを使用し環境変数にAPIキーを設定する手順)
- WindowsやMACでOllama(C++版LLMをローカルで実行できるプラットフォーム)を
-
コンテンツ
- https://github.com/ed-donner/llm_engineering/blob/main/week1/Guide%20to%20Jupyter.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week1/Intermediate%20Python.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week1/troubleshooting.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week1/Guide%20to%20Jupyter_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week1/Intermediate%20Python_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week1/troubleshooting_ja.ipynb
-
表題
- すぐに成果を実感するプロジェクト:AI搭載ウェブページ要約ツールの作成
- OpenAIのGPT-4とBeautiful Soupを使ったテキスト要約の実装
- 1日目のまとめ:LLMエンジニアリングの主要な学びと次のステップ
-
要約
- ウェブページをBeautifulSoupでスクレイピングする。
- これをフロンティアLLMに入力し要約させる。
-
コンテンツ
-
表題
-
要約
- 様々なフロンティアLLM、OSSモデル、モデルの利用方法、などについて解説。
- OSSモデルの Llama をローカルで Python から呼び出し、
Day1の要約ツールに組み込む
-
コンテンツ
-
表題
- フロンティアLLM:GPT-4、Claude、Gemini、LLAMAの比較
- 主要LLMの比較:長所とビジネス応用
- GPT-4o vs O1 Previewの探求:パフォーマンスの主な違い
- 創造性とコーディング:GPT-4oのCanvas機能を活用する
- Claude 3.5のアライメントとアーティファクト作成:詳細な分析
- LLM比較:気まぐれなタスクと分析的なタスクにおけるGemini vs Cohere
- Meta AIとPerplexityの評価:LLM出力のニュアンス
- LLMリーダーシップチャレンジ:創造的なプロンプトによるLLMの評価
-
要約
-
様々なフロンティアLLMの特徴・違い・強み・弱みを理解し、
ビジネスやプロジェクトでの活用を考える。 -
複数のLLM(ChatGPT、Claude、Gemini、Cohere Command-R Plusなど)を
比較しながら質問を投げかける実演 -
評価項目(ビジネス適合性、自己認識と能力評価、哲学的・人間中心的、
単純計算・テキスト分析) -
LLMによって得意・不得意があり(得意分野、限界、比較)
複雑な推論や分析に強いLLMは精度が高い- 「ハワイから17まで跳ぶのに虹はいくつ必要か?」
GPT-2、GPT-4o(マルチモーダル、イメージ画像出力) - GPT-4oの新機能「Canvas」を使ったインタラクティブなコード作業
- Claudeの特徴「思慮深い応答」「倫理・安全性への配慮」
「コード生成とClaude Artifacts機能」 - Google Geminiはニュアンス理解が弱く、Cohere Command-R Plusは知識活用に優れるが
単純計算や明確なルールのタスクには弱い。 - Meta AI(Llamaのフロントエンド)、Perplexity(検索エンジンベース)
事実に基づいた質問や時事問題への回答が得意。
- 「ハワイから17まで跳ぶのに虹はいくつ必要か?」
-
GPT-4o(Alex)、Claude 3 Opus(Blake)、Gemini 1.5 Pro(Charlie)を用いた
リーダー選出ゲームを実施。
-
-
コンテンツ
-
表題
- リーダーシップの勝者を発表:楽しいLLMチャレンジ
- AIの旅を探る:初期モデルからトランスフォーマーまで
- LLMのパラメタを理解する:GPT-1から兆単位の重みを持つLLMまで
- GPTのトークン化を解説:LLMはテキスト入力をどう処理するか
- コンテキストウィンドウがLLMに与える影響:トークン制限の解説
- LLMのコストをナビゲートする:API価格 vs チャットインターフェースのサブスクリプション
- LLMのコンテキストウィンドウ比較:GPT-4 vs Claude vs Gemini 1.5 Flash
- 4日目のまとめ:主要な学びと実践的な洞察
-
要約
- トランスフォーマーの歴史とLLMの基礎概念、創発的知能の理解 を中心に、
実際の応用やモデル比較の事例も交えて説明 - 最近のAI分野の動向(プロンプトエンジニアの台頭と衰退、
カスタムGPTの人気と飽和、Copilotの重要性、エージェントAI) - LLMのパラメタと規模、従来のモデルとの比較、
LLMの特徴的な強さは、桁違いに多いパラメタ数による精緻な出力制御能力にある。 - トークン(文字単位モデル、単語単位モデル)、
LLMのトークナイザのトークン化のアプローチ(文字と単語の中間)、
数字や特殊文字の扱いなど。 - コンテキストウィンドウとは「LLMが一度に参照できる過去の情報量の総和」であり、
これが生成可能な出力の質や範囲に直接影響する。 - フロンティアLLMのチャットUIとAPIの課金構造の違い、API利用時のコストの注意点、
代替手段としてOllamaが使えることを説明。 - Vellumのリーダーボードでコンテキストウィンドウとトークン単価を理解することで、
LLM利用の規模感やコスト感覚を把握可能。
- トランスフォーマーの歴史とLLMの基礎概念、創発的知能の理解 を中心に、
-
コンテンツ
-
表題
- OpenAI APIとPythonでAI搭載のマーケティングパンフレットを構築する
- JupyterLabチュートリアル:AI搭載の会社パンフレットのためのウェブスクレイピング
- LLMにおける構造化出力:AIプロジェクトのためのJSONレスポンスの最適化
- パンフレットコンテンツのレスポンス作成とフォーマット
- 最終調整:JupyterLabでのマークダウンとストリーミングの最適化
- Multi-Shotプロンプティングをマスターする:AIプロジェクトにおけるLLMの信頼性向上
- 課題:カスタマイズされたLLMベースのチューターを開発する
- 第1週のまとめ:達成事項と次のステップ
-
要約
OpenAI APIでワンショットプロンプティングし
マーケティングパンフレット生成ツールを作る実践- JupyterLab上でウェブスクレイピングを行い、GPT-4o miniを活用して
企業パンフレット用の情報収集と整理を効率的に行う - GPT-4oを活用してウェブサイトのリンクを収集・選別し、
会社のパンフレットに必要な関連リンクをJSON形式で出力。 - PythonとGPT-4o miniを使った
「ウェブページ情報の自動収集 → AIによる整理 → 会社パンフレット生成」
という一連の流れを解説。 - まとめ:システムプロンプトで生成結果を制御しつつLLMを複数回呼び出して
情報を収集・統合、最後にストリーミングで出力を見せる。
- JupyterLab上でウェブスクレイピングを行い、GPT-4o miniを活用して
-
コンテンツ
-
エクササイズ:自分専用の学習支援ツールを作り、
GPTやLlamaを使ってコードの質問に答えさせる演習
-
マルチモーダルChatボットの構築: LLM、Gradio UI、エージェントの活用
- GradioでUI構築、マルチモーダルAIアシスタント/Chatボットを開発
- UI と関数呼び出しを備えた航空会社向けのマルチモーダル顧客サポート エージェントを構築。
-
コンテンツ
-
表題
-
要約
- GPT-3.5 Turbo、GPT-4o mini、GPT-4o Max、Claude 3.5、Gemini 1.5 Flashを使い、
データサイエンティスト向けのジョークを生成。 - 複数Chatボットの会話を管理・生成する方法を学びながら、
API操作とPythonのリスト操作 (zip) に慣れるための実践演習。
- GPT-3.5 Turbo、GPT-4o mini、GPT-4o Max、Claude 3.5、Gemini 1.5 Flashを使い、
-
コンテンツ
-
表題
- GradioでAI UIを構築する:LLMエンジニアのための迅速なプロトタイピング
- Gradioチュートリアル:OpenAI GPTのインタラクティブなAIインターフェースを作成する
- Gradio UIでGPTとClaudeのストリーミングレスポンスを実装する
- GradioでマルチLLMチャットインターフェースを構築:GPT vs Claude
- 高度なAI UIの構築:OpenAI APIからGradioを使ったチャットインターフェースまで
-
要約
- Gradioで、フロントエンド開発の煩雑さを省略しLLMのプロトタイプ用UIを迅速に作成・公開
- 「GradioでのシンプルなUI作成→関数呼び出し→公開URL共有」の基本フローを体験
- GPT-4o・ClaudeのLLM選択ドロップダウン、Markdown形式かつストリーミングでの応答表示
- Gradio上で複数LLM対応のストリーミングチャットUIとパンフレット生成UIを簡単に作る。
-
コンテンツ
-
表題
- AIチャットボットの構築:Gradioでカスタマーサポートアシスタントをマスターする
- OpenAIとGradioで対話型AIチャットボットを構築:ステップバイステップ
- Multi-Shotプロンプティングとコンテキスト強化によるチャットボットの強化
- AIツールをマスターする:LLMに自分のマシンでコードを実行させる力を与える
-
要約
-
LLMを利用したChatボットの仕組みとプロンプト設計のコツを学び、
Gradioで実際にチャットUIを作る。 -
重要な仕組みの解説
- LLM自体は「過去を覚えている」わけではなく、
毎回すべての会話履歴をAPI経由で渡しているだけ。 -
OpenAI APIはリスト形式のメッセージを
特殊なトークンを含むシーケンスに変換してLLMに渡す。 - チャット向けLLMは訓練を通じて「システム」「ユーザー」「アシスタント」といった
特殊トークンの意味を学習している。
- LLM自体は「過去を覚えている」わけではなく、
-
例示や架空会話はワンショット/マルチショット、RAG的な情報補強、
条件付き追加メッセージなどのプロンプティング
-
-
コンテンツ
-
表題
-
要約
- 「航空会社のカスタマーサポートエージェント」を構築し、
ユーザーが「パリに行きたい」と入力すると、航空券の価格を提示できるようにする。 - システムプロンプト設定、Gradioを使ったチャット実装、
ツール(Function calling)(LLMエージェントの該当節を参照)をLLMに組み込む。
- 「航空会社のカスタマーサポートエージェント」を構築し、
-
コンテンツ
-
表題
- マルチモーダルAIアシスタント:画像と音声生成の統合
- マルチモーダルAI:JupyterLabでのDALL-E 3画像生成の統合
- マルチモーダルAIエージェントの構築:音声&画像ツールの統合
- マルチモーダルAIアシスタントの構築方法:ツールとエージェントの統合
-
要約
- day4.ipynbの内容にマルチモーダル化、音声出力を加える。
- ツール連携・画像生成・音声出力を統合したマルチモーダル対応のChatボット実装と活用
-
コンテンツ
-
エクササイズ:Day5の内容に、音声入力、翻訳処理、チケット予約機能を加える。
-
OSSのGen AI: Hugging Faceを使った自動化ソリューションの構築
-
Hugging Faceを用いたOSS-LLM活用(Pipelines API、トークナイザ、モデル探求)を
Google Colaboratory上で行う。 - Open系モデルとClosedモデルの両方を使用して、
音声から会議の議事録とアクション項目を作成するツールを開発。
-
Hugging Faceを用いたOSS-LLM活用(Pipelines API、トークナイザ、モデル探求)を
-
コンテンツ
-
表題
- Hugging Faceチュートリアル:OSS-LLMとデータセットを探る
- Hugging Face Hubを探る:AI開発者のためのモデル、データセット、スペース
- Google Colab入門:機械学習のためのクラウドJupyter Notebook
- Google ColabとのHugging Face統合:シークレットとAPIキーの設定
- Google Colabをマスターする:Hugging FaceでOSS-LLMを実行する
-
要約
-
Hugging Face公式サイトでの基本操作(アカウント作成、プロフィール・設定)と
主要機能「Models」「Datasets」「Spaces」 -
Google Colaboratoryの使い方:クラウド上のNotebook環境、
有料で高速GPUを活用でき、Googleドライブへのアクセス、APIキー管理も可能。 -
Google Colaboratory上でHugging FaceのOSS-LLMの推論(パイプライン)を
実行し、テキスト 画像 音声を生成する。
-
Hugging Face公式サイトでの基本操作(アカウント作成、プロフィール・設定)と
-
コンテンツ
-
表題
- Hugging Face Transformers:PythonでAIタスクにパイプラインを使用する
- Hugging Faceパイプライン:TransformersライブラリでAIタスクを簡素化する
- Hugging Faceパイプラインをマスターする:MLタスクのための効率的なAI推論
-
要約
-
Hugging Faceのコード操作には
大きく2つのモード「推論(モデルの実行)」「低レベルAPIの利用」がある。 - 様々なタスクのデモ、GPU(T4)を使用しテキスト解析、生成、翻訳、画像生成、音声生成
(タスク用のモデルを自動でロード)。
-
Hugging Faceのコード操作には
-
コンテンツ
-
表題
- OSS-LLMのトークナイザを探る:Llama、Phi-2、Qwen、Starcoder
- AIにおけるトークン化技術:LLAMA 3.1モデルでAutoTokenizerを使用する
- トークナイザの比較:OSS-LLMのためのLlama、PHI-3、QWEN2
- Hugging Faceトークナイザ:高度なAIテキスト生成の準備
-
要約
-
Hugging Faceの低レベルAPIを使い、
トークナイザとモデルの内部動作を理解しつつ、実際にトークン化を体験 - 準備とログイン、Llama 3.1モデルの利用、トークナイザの作成、エンコード・デコード、
特殊トークン、語彙と追加情報 - チャット向けLLMのinstructバリアントとそのトークナイザの構造や特徴を比較・理解し、
適切に使うことの重要性の解説。
-
Hugging Faceの低レベルAPIを使い、
-
コンテンツ
-
表題
- Hugging Faceモデルクラス:OSS-LLMでの推論の実行
- Hugging Face Transformers:Bits & BytesでLLMを読み込み&量子化する
- Hugging Face Transformers:OSS-LLMでジョークを生成する
- Hugging Face Transformersをマスターする:モデル、パイプライン、トークナイザ
-
要約
-
Hugging Faceの低レベルAPIを使い、
複数のOSS-LLMで推論・テキスト生成を実践 -
Google ColaboratoryでのLLM実行準備、量子化によるメモリ効率化、
モデルロードと内部構造確認 - モデルの次元とトークナイザを確認、入力をトークン化して GPU に送信、出力生成、
- 小型化・量子化モデルでも十分動作、出力は関数化・ストリーミング化して扱いやすく
-
Hugging Faceの低レベルAPIを使い、
-
コンテンツ
-
表題
- フロンティアLLMとOSS-LLMを組み合わせた音声テキスト要約
- Hugging FaceとOpenAIを使ったAIによる議事録生成
- 合成テストデータ生成ツールの構築:ビジネス向けOSS-LLM
-
要約:会議の議事録作成アプリケーションの構築
- Hugging FaceのMeetingBankで入手可能な米国の議会音声ファイルを使用
- 音声録音をWhisper-1 モデルでテキストに変換(フロンティアLLM/API)
- 議事録をLlama 3.1 8B instructで作成(オープンソースLLM)
- 要約、アクションアイテム、担当者の抽出
- 結果をMarkdownでストリーミング表示
-
コンテンツ
-
エクササイズ
- 指定した条件に応じて合成の個人情報データセットを生成
- https://github.com/ed-donner/llm_engineering/tree/main/week3/community-contributions
-
LLM対決: コード生成とビジネスタスクのためのLLMの評価
- LLM選択とベンチマーク、コード生成課題(Python → 高速C++変換)
- Python コードを最適化された C++ に変換して
パフォーマンスを 60,000 倍向上させるAIを作成。
-
コンテンツ
(座学)
-
表題
- 適切なLLMの選択方法:オープンソースLLMとクローズドソースLLMの比較
- チンチラ・スケーリング則:LLMのパラメタと学習データサイズの最適化
- LLMベンチマークの限界:過学習と学習データ漏洩
- LLMの評価:明かされる6つの次世代ベンチマーク
- Hugging Face OpenLLM Leaderboard:OSS-LLMの比較
- LLMリーダーボードをマスターする:オープンソースLLMとクローズドソースLLMの比較
-
要約
- ベンチマークやリーダーボードを活用しつつ、コスト・性能・制約を総合的に考えて
「目前のタスクに最適なLLMを選ぶ」 - LLMの「パラメタ数と学習データ量のバランスを示すスケーリング則」
「ベンチマークやリーダーボード」
(テキスト生成系(Transformer系)の該当節を参照)
- ベンチマークやリーダーボードを活用しつつ、コスト・性能・制約を総合的に考えて
-
コンテンツ
(座学)
-
表題
- LLMの比較:LLMを評価するためのトップ6リーダーボード
- 専門LLMリーダーボード:ユースケースに最適なLLMを見つける
- LLAMA vs GPT-4:コード生成のためのLLMのベンチマーク
- 人間評価によるLLM:LM Sys Chatbot Arenaを理解する
- LLMの商用応用:法律から教育まで
- コード変換プロジェクトのためのフロンティアLLMとオープンソースLLMの比較
-
要約
- LLMを比較・選定するための多様なリーダーボードやアリーナの活用方法を学び、
実際のビジネスユースケースを通してLLMの適用範囲を理解
(いずれもテキスト生成系(Transformer系)の該当節を参照) - Chatボット・アリーナは人間によるLLM比較投票の場であり、
LLMの最新ランキングや実力を体感しつつ、楽しみながら貢献できる - LLMの商業的利用例を5つの分野で紹介:法律分野(Harvey)人材・採用分野(Nebula)
レガシーコード移植(B.AI)医療分野(Salesforce...)教育分野(Khanmigo)
- LLMを比較・選定するための多様なリーダーボードやアリーナの活用方法を学び、
-
コンテンツ
-
表題
- 高性能C++コード生成のためのフロンティアLLMの活用
- コード生成のためのトップLLM比較:GPT-4 vs Claude 3.5 Sonnet
- LLMによるPythonコードの最適化:GPT-4 vs Claude 3.5
- コード生成の落とし穴:LLMがエラーを生成する時
- 驚異的な速さのコード生成:ClaudeがPythonを13,000倍上回る方法
- LLMによるコード生成のためのGradio UIの構築
- C++コード生成の最適化:GPTとClaudeのパフォーマンス比較
- コード生成におけるGPT-4とClaudeの比較:パフォーマンスベンチマーク
-
要約
- 商業的価値のあるソリューションを構築し、
LLM(フロンティアLLM)を使ってコード生成を行う。 - 円周率計算/最大部分配列和のPythonコードを効率的なC++に変換するツールを作成、
また、コードを実行して性能を測定する。 - リーダーボードでのLLM比較の確認と、
PythonコードをC++に最適化するためのLLM利用方法の実践準備。 - GPT-4oとClaude 3.5 Sonnet、もしくは、GPT-4.1を切り替えてテスト。
LLMのタスクに対する顕著な性能差を確認できる。 - 「Pythonコードを入力 → LLMを切り替えつつC++にストリーミング変換 → 実行 → 出力表示」を、
カスタムGradio UIで試せるプロトタイプ開発。
- 商業的価値のあるソリューションを構築し、
-
コンテンツ
-
表題
- コード生成のためのオープンソースLLM:Hugging Faceエンドポイントの探求
- コード生成LLMのためのHugging Face推論エンドポイントの使用方法
- コード生成のためのオープンソースLLMとフロンティアLLMの統合
- コード生成の比較:GPT-4、Claude、CodeQuen LLM
- LLMによるコード生成をマスターする:技術とLLM選択
-
要約
-
Day3のタスクにおいて、
オープンソースLLMがフロンティアLLMに対抗できるかを確認。 - CodeQwen、CodeGemmaをHugging Faceの Inference Endpoints を利用して
リモートでLLMを呼び出す方法が便利。 - Day3の実装を更に改良(UX向上、拡張対応(LLM、Platform)エラー事前回避)
- 結論としては、当然、オープンソースLLMよりもフロンティアLLMのほうが高性能という結果に。
-
Day3のタスクにおいて、
-
コンテンツ
(座学)
-
表題
- LLMパフォーマンスの評価:モデル中心 vs ビジネス中心のメトリクス
- LLMコード生成をマスターする:Python開発者のための高度な課題
-
要約
- 生成AIの評価方法にモデル中心(技術的指標)とビジネス中心(成果指標)があり、
両者を連携して使用することで、バランスの良い評価が可能。 - 課題の提案:既存ソリューションの調整(モデル追加)、
新課題(コーディングツール、ユニットテスト生成ツール、株式取引コードジェネレーター)
- 生成AIの評価方法にモデル中心(技術的指標)とビジネス中心(成果指標)があり、
-
コンテンツ
-
RAG をマスターする: ベクトル埋め込みと LangChain を使用した高度なソリューションの構築
- RAG(検索拡張生成)を学び、自分用RAGパイプラインを構築
- 架空の保険テクノロジー企業「Insure」を題材に、シンプルなDIY・RAG実装を構築
- RAG を使用して企業関連のすべての問題の専門家になるAIナレッジワーカーを構築
-
コンテンツ
-
表題
- RAGの基礎:外部データを活用してLLMのレスポンスを改善する
- DIY RAGシステムの構築:検索拡張生成の実装
- ベクトル埋め込みを理解する:RAGとLLM検索の鍵
-
要約
- 従業員の姓をキー、HR記録を値とする辞書は、文字列の完全一致に依存するため、
脆弱でスケーラブルではない。 - RAGの重要な要素であるベクトル埋め込み
(テキストの意味を数値化し、RAGで関連情報を効率的に検索する技術)
- 従業員の姓をキー、HR記録を値とする辞書は、文字列の完全一致に依存するため、
-
コンテンツ
-
表題
- LangChainを解き明かす:LLMアプリケーションのためのRAG実装を簡素化する
- LangChainテキスト分割チュートリアル:RAGシステムのためのチャンクの最適化
- ベクトルデータベースの準備:RAGにおけるOpenAI埋め込みとChroma
-
要約
- LangChainはRAGやLLMアプリケーションの開発を効率化する便利なツール、
必要性がやや低下しているものの、依然として有効。 - LangChainを用いたドキュメントの読み込み、チャンク分割、メタデータ付与の実践を通じ、
RAG実装のための準備を学ぶ。
- LangChainはRAGやLLMアプリケーションの開発を効率化する便利なツール、
-
コンテンツ
-
表題
- ベクトル埋め込みをマスターする:LLMエンジニアリングのためのOpenAIとChroma
- 埋め込みの可視化:t-SNEで多次元空間を探る
- RAGパイプラインの構築:ベクトルから埋め込みまでLangChainで
-
要約
-
コンテンツ
-
表題
- RAGパイプラインの実装:LangChainにおけるLLM、リトリーバー、メモリ
- 検索拡張生成をマスターする:ハンズオンLLM統合
- RAGパイプラインをマスターする:効率的なRAGシステムの構築
-
要約
- LangChainの3つの抽象化(LLM、Retriever、Memory)を使い、
わずか4行のコードでRAGパイプラインを構築し、対話型アシスタントを実現する方法を解説。 - 最後にInsureの知識ベースを活用したRAGパイプラインが、シンプルなコードで構築され、
正確な情報検索と文脈に応じた回答生成が可能であることが実証される。
- LangChainの3つの抽象化(LLM、Retriever、Memory)を使い、
-
コンテンツ
-
表題
- RAGシステムの最適化:一般的な問題のトラブルシューティングと修正
- ベクトルストアの切り替え:LangChain RAGパイプラインにおけるFAISS vs Chroma
- LangChainを解明する:RAGパイプライン構築の舞台裏
- RAGのデバッグ:LangChainでのコンテキスト検索の最適化
- パーソナルAIナレッジワーカーを構築する:生産性向上のためのRAG
-
要約
- LangChainのDSL言語や内部動作、RAGの一般的な問題の診断・修正方法について説明し、
本番プロジェクトでの活用をサポート。 - RAGのエキスパートからマスターへ
(VDB切替とLangChainの抽象化の利点、LangChainのLCEL、RAGの問題の診断と修正方法) - プロジェクトのトレースの結果、
RAGシステムが適切なチャンク(文書の断片)を検索できていないことが判明 - チャンキング戦略の見直し、オーバーラップ調整、チャンク数の調整で、
チャンク数を既定値3→25に増やしてコレを解決。
- LangChainのDSL言語や内部動作、RAGの一般的な問題の診断・修正方法について説明し、
-
コンテンツ
- https://github.com/ed-donner/llm_engineering/blob/main/week5/day5.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week5/day4.5.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week5/day5_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week5/day4.5_ja.ipynb
- https://drive.google.com/file/d/1KdhhLgA5js1Ulwj9-8txpJY-L5TN2BH3/view
-
エクササイズ
- RAGを応用し、個人的なAIアシスタントを構築することで、
個人の生産性を高めることを目的としたプロジェクト - https://github.com/ed-donner/llm_engineering/tree/main/week5/community-contributions
- RAGを応用し、個人的なAIアシスタントを構築することで、
-
最終課題パートA – フロンティアLLMの利用とファインチューニング
- ビジネス課題を設定、従来のMLモデルとフロンティアLLM、
フロンティアLLMのファインチューニングで解決を試みる。 - 製品の説明文から価格を推定するeコマースにおける回帰モデルの領域に
転移学習とファインチューニングを応用。
- ビジネス課題を設定、従来のMLモデルとフロンティアLLM、
-
コンテンツ
-
表題
- ファインチューニングLLM:推論から学習へ
- LLMファインチューニングのためのデータセットの発見と作成:情報源と技術
- 製品説明に関するLLMファインチューニングのためのデータキュレーション技術
- 学習データの最適化:LLMファインチューニングのためのスクラビング技術
- LLMパフォーマンスの評価:モデル中心 vs ビジネス中心のメトリクス
-
要約
LLMのファインチューニングやRAGプロジェクトに不可欠なデータの発見と作成について解説。- データは自社データ、Kaggle、Hugging Faceなどから入手可能で、
特にHugging Faceが推奨されている。 - 学習に適したデータセットを構築するため
6ステップ(データの調査、構造化、可視化、品質評価、価値向上)を踏む。 - 実際のデータセット構築
(データセットの分析と課題の洗い出し、形式確認、除外(欠損、データ長、値の分布)) - ファインチューニング用データクレンジング
(不要なテキストや部品番号などをクリーンアップし、180トークンに調整)
- データは自社データ、Kaggle、Hugging Faceなどから入手可能で、
-
コンテンツ
-
表題
- LLMデプロイメントパイプライン:ビジネス問題から本番ソリューションまで
- プロンプティング、RAG、ファインチューニング:各アプローチをいつ使用するか
- LLMの本番化:LLMを大規模にデプロイするためのベストプラクティス
- LLM学習のための大規模データセットの最適化:データキュレーション戦略
- LLM学習のためのバランスの取れたデータセットの作成方法:キュレーション技術
- データセットキュレーションの最終化:価格と説明の相関分析
- Hugging Faceで高品質なデータセットを作成し、アップロードする方法
-
要約
-
Hugging FaceからAmazonの複数カテゴリの280万件以上の商品情報を取得
-
データの不均衡の是正(価格の偏り、カテゴリの偏り)し約40万件に絞り
Hugging Face Hubにアップロードする。 -
LLMをビジネス上の問題に適用するための5段階の戦略
- 理解 (Understand):ビジネス要件、成功の測定方法、
非機能要件(予算、レイテンシなど)を深く掘り下げて文書化 - 準備 (Prepare):既存のソリューションを調査してベンチマーク、
LLMを比較し、データセットを構築 - 選択 (Select):準備段階で定めた基準に基づき、最も適したLLMを選択
- カスタマイズ (Customize):RAGやファインチューニングなどでLLMの性能を向上させる。
- 製品化 (Productize):LLMを本番環境に導入する方法について議論します。
- 理解 (Understand):ビジネス要件、成功の測定方法、
-
LLM最適化の3つの主要なアプローチ(プロンプティング、RAG、ファインチューニング)について解説
- プロンプティング:最も手軽で低コストだが、コンテキストウィンドウのサイズに制限がある。
- RAG:大量のデータを効率的に処理できスケーラブルだが、VDBが必要で、
チャンク取得~適切なコンテキスト追加に課題がある。 - ファインチューニング:強力な手段になり得るが、構築が難しく、
多量のデータと高い学習コストが必要。また「破滅的忘却」のリスクがある。
-
AIプロジェクトを本番稼働させるための5つのステップ
- 理解(ステップ1): 課題特定、成功指標定義、必要なデータとリソースの特定
- 準備(ステップ2): データセットの収集・前処理・特徴量エンジニアリング
- 選択(ステップ3): ベースモデルや適用する技術の選択
- カスタマイズ(ステップ4): チューニングやカスタマイズ
- 本番稼働(ステップ5):
・APIの定義と構築: LLMを呼び出すためのAPIを定義し、
オープンソースLLMやフロンティアLLMを使用。
・デプロイと監視: LLMとAPIをどのようにホストし、デプロイするかを決定し、
セキュリティやスケーリングを監視。
・継続的な改善: ビジネス指標を測定し、
LLMの再学習やパフォーマンス改善を継続的に行う。
-
-
コンテンツ
- https://github.com/ed-donner/llm_engineering/blob/main/week6/day2.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week6/day2%2Blite_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week6/day2%2Bgoogle_colab_ja.ipynb
- https://drive.google.com/file/d/1dsmLNi8I7GEdzmzWWCxRTxM6mpSMGG1e/view
-
表題
- 特徴量エンジニアリングとBag of Words:NLPのためのMLベースラインの構築
- MLにおけるベースラインモデル:単純な予測関数の実装
- Amazon製品価格予測モデルのための特徴量エンジニアリング技術
- LLMパフォーマンスの最適化:高度な特徴量エンジニアリング戦略
- LLMファインチューニングのための線形回帰:ベースラインモデルの比較
- Bag of Words NLP:MLにおけるテキスト分析のためのCount Vectorizerの実装
- サポートベクター回帰 vs ランダムフォレスト:機械学習対決
- 従来のMLモデルの比較:ランダムからランダムフォレストまで
-
要約
-
伝統的な機械学習手法で、商品説明文から価格をどれだけ正確に予測できるかを確認
- 特徴量エンジニアリング: データから価格を予測するための重要な要素を抽出し
「特徴量」として使用。 - ベクトル化:BoW: 単語の出現回数を数えベクトル化、
Word2Vec: 単語をより高度な方法でベクトル化 - 回帰モデルの使用:LinearRegression、LinearSVR、RandomForestRegressorなど
- 以降これらをまとめた予測関数をテスト用クラス「Tester」でテストデータに適用し
結果を視覚的に要約表示する。
- 特徴量エンジニアリング: データから価格を予測するための重要な要素を抽出し
-
Testerから、以下のような結果が得られる。
- Random: Error: $340
- Average: Error: $145
- Features & LinearRegression: Error: $140
- BoW & LinearRegression: Error: $115
- Word2Vec & LinearRegression: Error: $115
- Word2Vec & LinearSVR: Error: $115
- Word2Vec & RandomForestRegressor: Error: $100
-
※ BoWの次元は1000、Word2Vecの次元は400だったこともあり。
- コンテンツ
-
表題
- フロンティアLLMの評価:ベースラインフレームワークとのパフォーマンス比較
- 人間 vs AI:フロンティアLLMにおける価格予測パフォーマンスの評価
- GPT-4o Mini:価格推定タスクのためのフロンティアLLM評価
- GPT-4とClaudeの比較:価格予測タスクにおけるLLMパフォーマンス
- フロンティアAIの能力:従来のMLモデルを上回るLLM
- OpenAIによるLLMのファインチューニング:データ準備、学習、評価
-
要約
-
Day3の価格の推定を、人間による予測、フロンティアLLMによる予測で行う。
-
価格予測をする場合、assistant role の最後の数文字の次単語予測のために
通常と少々異なるセットアップを行う。 -
Testerから、以下のような結果が得られる。
- Human: Error: $126
- gpt_4o_mini: Error: $80
- gpt_4o_frontier: Error: $75
- claude_3.5_sonnet: Error: $100
-
-
コンテンツ
- https://github.com/ed-donner/llm_engineering/blob/main/week6/day4.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week6/day4-results.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week6/day4_ja.ipynb
- https://drive.google.com/file/d/1Ku5zRxMHl3CgcOaxBL9RfyvHGwo9BNpc/view
-
表題
- LLMのファインチューニングのためのJSONLファイルの準備方法
- ステップバイステップガイド:OpenAI APIでGPTファインチューニングジョブを開始する
- LLMのファインチューニング:Weights & Biasesで学習損失と進捗を追跡する
- ファインチューニングされたLLMメトリクスの評価:学習損失と検証損失の分析
- LLMファインチューニングの課題:LLMのパフォーマンスが向上しない時
- フロンティアLLMのファインチューニング:最適化のための課題とベストプラクティス
-
要約
-
フロンティアLLMをファインチューニングする3つのステップ(データ準備、学習(実行)、評価と調整)
-
OpenAIは50~100個のサンプルを推奨しているが、
このセッションではテスト結果に基づいて500個のサンプルを使用。 -
学習データと検証データは、JSON Lines(.jsonl)という特殊な形式で準備する。
-
JSONLファイルを、OpenAI APIを使ってアップロードして
ファインチューニングを実行する。 -
ファインチューニングの結果は、Weights & Biases(WandB)で様子を詳細にモニタリングできる。
-
学習は10-15分で終わり通知される。エポックを数回繰り返すと過学習の傾向が出てくる。
-
ファインチューニング済みLLM名を渡してAPIを呼び出しテストすることが出来る。
-
Testerから、以下のような結果が得られる。
- gpt_Fted: Error: $91
- ビジネス指標(合計差額)が悪化(素の方が精度が高かった)
- しかし、1000を超えるような非常に高い外れ値の予測が是正された。
-
フロンティアLLMにおけるファインチューニングの主な目的(使い所はかなり限られそう)
- プロンプトでは実現できない初期出力のスタイルやトーンを設定
- フォーマットなど特定の種類の出力を生成する際の信頼性を向上させる
- 複雑なプロンプトに従えない問題を修正し従順性を高める
- エッジケース(例外的な入力)に対処する
- プロンプトでは難しい新スキル・タスクを実行
-
-
コンテンツ
- https://github.com/ed-donner/llm_engineering/blob/main/week6/day5.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week6/day5-results.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week6/day5_ja.ipynb
- https://drive.google.com/file/d/14HyYM4q2LAyXh87hdHnzN_ZMkC6V4Vt1/view
-
最終課題パートB – 価格予測でフロンティアLLMと競合できるように、OSS-LLMをファインチューニング。
- OSS-LLMをファインチューニングし、フロンティアLLMに匹敵する性能を目指す
- LoRA(Low-Rank Adaptation of Large Language Models)量子化やQLoRAの技法を使う。
- 価格予測でフロンティアLLMと競合できるようにファインチューニングされたOSS-LLMを実行。
-
コンテンツ
-
表題
- パラメタ効率の良いファインチューニングをマスターする:LoRa、QLoRA、ハイパーパラメタ
- LoRAアダプタ入門:低ランク適応の解説
- QLoRA:LLMの効率的なファインチューニングのための量子化
- LLMの最適化:QLoRAファインチューニングにおけるR、Alpha、ターゲットモジュール
- パラメタ効率の良いファインチューニング:Hugging FaceによるLLMのためのPEFT
- LLMを量子化する方法:8ビット精度でLLMサイズを削減する
- 二重量子化とNF4:4ビットLLM最適化のための高度な技術
- PEFTモデルを探る:LLMファインチューニングにおけるLoRAアダプタの役割
- LLMサイズの概要:量子化されたLLMとファインチューニングされたLLM
-
要約
- QLoRA(Quantized LoRA)は、LLMを限られたGPUメモリ上で動かすための効率的な手法。
- QLoRAの3つの主要ハイパーパラメタ(R、α、ターゲットモジュール)の説明
-
Google Colaboratory上でHugging FaceのPEFTライブラリを用い
Llama 3.1にLoRA (Low-Rank Adaptation) を行う。 - QLoRAの設定を行うことで、Llama 3.1のGPUメモリの消費量がどのように変化するかを観測する。
- 4ビット量子化をすると、32ビット → 4ビットなので、
大凡 4/32 = 1/8 にGPUメモリを圧縮できる。 - LoRAでは学習されるパラメタが追加されサイズが増えるが、
PEFTだけに僅かなパラメタサイズの増加で済む。
-
コンテンツ
-
表題
- LLMのファインチューニングに最適なベースモデルの選択方法
- 最適なベースモデルの選択:Hugging FaceのLLMリーダーボードの分析
- トークナイザの探求:LLAMA、QWEN、その他のLLMの比較
- LLMパフォーマンスの最適化:Llama 3.1の読み込みとトークン化
- LLMへの量子化の影響:パフォーマンス・メトリクスとエラーの分析
- LLMの比較:パラメタ効率の良いチューニングにおけるGPT-4 vs LLAMA 3.1
-
要約
-
Hugging Face Open LLMリーダーボードを使用してLLMを評価し、
Llama 3.1 8Bをベースモデルとして選択 -
リーダーボードのスコア、インストラクト版の性能、トークン化の仕組みを確認する。
-
Llama 3.1、Qwen2、Gemma 2、Phi-3などのトークナイザを比較、
Llamaが、0-999の数字を1つのトークンとして扱える事を確認。 -
Hugging Face Hubからデータを読み込み、Llama 3.1を使って商品の価格を予測、
8→4ビット量子化のパフォーマンスを比較。 -
Testerから、以下のような結果が得られる。
- Llama 3.1(4ビット量子化) : Error: $395
- Llama 3.1(8ビット量子化) : Error: $301
-
-
コンテンツ
-
表題
- QLoRAハイパーパラメタ:LLMのファインチューニングをマスターする
- モデル学習におけるエポックとバッチサイズの理解
- 学習率、勾配蓄積、オプティマイザの解説
- ファインチューニングのための学習プロセスの設定
- LLMの4ビット量子化LoRAファインチューニングのためのSFTTrainerの設定
- LLMのファインチューニング:QLoRAで学習プロセスを開始する
- Weights & Biasesによる学習の監視と管理
-
要約
-
SFTTrainerセットアップ前にハイパーパラメタを解説
(既出のQLoRA系のモノに加え、ドロップアウト) -
基本的なハイパーパラメタ、エポック、バッチサイズ、学習率、勾配累積、オプティマイザ
-
バッチサイズを大きくすると、GPUメモリ消費量が大きくなるので、勾配累積で対処する。
-
Llama 3.1 8Bのファインチューニング概要
- Colab環境(4bitのQLoRAでT4でもできるが、講師はA100を使用)
- ライブラリとツール(Hugging FaceのTRL、SFTTrainer、WandB)
- データの最大シーケンス長は、GPUメモリに収まるように182トークンに設定
- データセットは40万件、時間がかかるので、特定カテゴリ2万件でやるなどの方法もある。
-
Llama 3.1 8Bのファインチューニング詳細
- Hugging Face(プル&プッシュ)とWandB(モニタリング)のログインと設定
- DataCollatorForCompletionOnlyLMを使って、LLMがプロンプト全体ではなく、
価格(price: $の次のトークン)のみを予測するように指示。 - T4でセッションが切れたり、カーネルリスタートが発生する場合、
output_dirやHubの情報からファインチューニングを再開できる。 - 講師はGPUメモリを38/40GB使用、T4を使用する場合は、
バッチサイズを小さくする必要があるため、16から1に変更するなどする。 - ちなみに、過学習の傾向が出るためフロンティアLLMと同様にエポック数は1-3回
(タスクやデータによる可能性はある)。 - (余談:「XXXXはYYYYだ。」と言う100個程度の事実を学習させる場合、
LLMを使用しデータ数を100→10000に拡張するなどするらしい。)
-
-
コンテンツ
-
表題
- 学習コストを低く抑える:効率的なファインチューニング戦略
- 効率的なファインチューニング:QLoRA学習に小規模データセットを使用する
- Weights and BiasesチャートでLLMファインチューニングの進捗を可視化する
- 高度なWeights & BiasesツールとHugging Faceでのモデル保存
- エンドツーエンドのLLMファインチューニング:問題定義から学習済みモデルまで
-
要約
- Day3で行ったファインチューニングの結果の確認する。
-
Hugging Faceをチェックし、
Xステップ毎の重みのリビジョンがコミットされていることを確認。 - WandBをチェックし、深層学習の特徴的な精度向上・損失低下の状況を確認できる。
- 学習序盤の急激な精度向上は「大きな誤差の修正」「簡単な特徴の先行学習」によるもの。
- エポックを繰り返した際の再学習で過学習の「可能性」を確認できる。
実際は、検証データで確認する。
-
コンテンツ
-
表題
- LLM学習の4つのステップ:順伝播から最適化まで
- QLoRA学習プロセス:順伝播、逆伝播、損失計算
- モデル学習におけるソフトマックスと交差エントロピー損失の理解
- ファインチューニングの監視:LLM学習分析のためのWeights & Biases
- 表彰台を再訪:モデルパフォーマンス・メトリクスの比較
- 独自のファインチューニング済みLLMのビジネスメトリクスに対する評価
- 結果の可視化:GPT-4に勝ったか?
- LLMのハイパーパラメタチューニング:PEFTでモデルの精度を向上させる
-
要約
-
言語モデルの理論的背景の振り返り
(言語処理(AI) -> テキスト生成系(Transformer系))。 -
ファインチューニングしたLLMをHugging Faceから取得し
「Tester」でテストデータに適用し結果を視覚的に要約表示する。 -
ちなみに、以下の「 + α」とは、
「上位トークンの確率を使って平均値を算出する」と言う改良を意味している。 -
Testerから、以下のような結果が得られる。
- Llama 3.1 FTed: Error: $52
- Llama 3.1 FTed + α: Error: $47
-
-
コンテンツ
-
最終課題パートC – LLMと連携した自律マルチエージェントシステムの構築
- 最後にこれまでの知識と技術をすべて活用して
複数のエージェントが協力する完全自律型AIソリューションを構築 - 価格比較プラットフォーム「The Price is Right」はRSSを購読し、商品の価値を見積もり、
お得なセール情報を通知を送信。
- 最後にこれまでの知識と技術をすべて活用して
-
コンテンツ
-
表題
- ファインチューニングからマルチエージェントシステムへ:次世代のLLMエンジニアリング
- 自動取引発見システムのためのマルチエージェントAIアーキテクチャの構築
- Modalを解き明かす:サーバーレス環境にLLMにデプロイする
- クラウド上のLLAMA:LLMを効率的に実行する
- サーバーレスLLM価格設定APIの構築:Modalによるステップバイステップガイド
- 複数の本番LLMが控える:高度なRAGソリューションの準備
-
要約
-
「The Price is Right」は7つのエージェントが連携して動作する
- プランニング・エージェント: 下記のエージェントを統合。
- スキャナー・エージェント: RSSフィードからセール情報を見つける。
- メッセージング・エージェント: お得なセール情報をプッシュ通知で送信。
- アンサンブル・エージェント: 3つのモデル(FTed-LLM、RAG、回帰木)エージェントを
アンサンブルし、商品の価値を推定。
-
FTed-LLMはサーバーレス・プラットフォームのModal.com上でホスティングさせる
エージェントによりラップする。 -
同様に(フロンティアLLM+)RAG、回帰モデルをエージェントによりラップする。
-
-
コンテンツ
-
表題
- エージェントワークフローの実装:RAGにおけるフロンティアLLMとベクトルストア
- 大規模Chromaベクトルデータストアの構築:高度なRAGパイプラインのために
- ベクトル空間の可視化:データ探索のための高度なRAG技術
- RAGのための3D可視化技術:ベクトル埋め込みの探求
- 類似製品の発見:LangChainなしでRAGパイプラインを構築する
- RAGパイプラインの実装:検索技術でLLMを強化する
- ランダムフォレスト回帰:トランスフォーマーとMLで価格予測
- アンサンブルモデルの構築:LLM、RAG、ランダムフォレストの組み合わせ
- まとめ:マルチエージェントシステムとRAG統合の最終化
-
要約
-
ちなみに、今回のRAGモデルはLangChainを使用せず
ChromaDB(LLMのRAGの該当節を参照)を直に使用して実装する。 -
また、埋込モデルには、Sentence TransformerというHugging Faceの
無料モデルを使用する。 -
2.0: Sentence Transformerで埋め込みベクトル化し
ChromaDB(LLMのRAGの該当節を参照)に格納する。 -
2.1-2: ベクトルを2Dと3Dで可視化し、
上手くベクトル化(空間上で分類)できていることを確認する。 -
2.3: (フロンティアLLM+)RAGを作成「Tester」でテストデータに適用し
結果を視覚的に要約表示する。 -
2.4: 回帰木を作成し更にアンサンブル(FTed、RAG、回帰木)したモデルを
「Tester」でテストデータに適用し結果を視覚的に要約表示する。 -
Testerから、以下のような結果が得られる。
- gpt_4o_mini + RAG: Error: $48
- RandomForest: Error: $100
- Ensemble: Error: $55-50
-
-
コンテンツ
- https://github.com/ed-donner/llm_engineering/blob/main/week8/day2.0.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week8/day2.1.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week8/day2.2.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week8/day2.3.ipynb
- https://github.com/ed-donner/llm_engineering/blob/main/week8/day2.4.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week8/day2.0_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week8/day2.1_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week8/day2.2_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week8/day2.3_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/week8/day2.4_ja.ipynb
- https://drive.google.com/file/d/1h127QjGAvBht2KugX26LD33ZPTs-Djc4/view
-
表題
- 構造化出力でAIエージェントを強化する:PydanticとBaseModelガイド
- RSSフィードのスクレイピング:AI搭載の取引選択システムの構築
- AIにおける構造化出力:詳細な取引選択のためのGPT-4の実装
- AIワークフローの最適化:正確な価格認識のためのプロンプトの改良
- 自律型エージェントをマスターする:マルチエージェントAIワークフローの設計
-
要約
- スキャナー・エージェントで使う構造化出力(LlamaIndexの該当節を参照)を実装
(OpenAIの機能でプロンプトのデータをPydanticのBaseModelのサブクラスに格納する) - 構造化出力(LlamaIndexの該当節を参照)と、
以前学んだ Function calling(LLMエージェントの該当節を参照)は、
似た技術だが、それぞれ長所と短所がある。 - スキャナー・エージェントを実装
(RSSフィードからセール情報を見つけ構造化出力で処理可能なレコードに変換する。)
- スキャナー・エージェントで使う構造化出力(LlamaIndexの該当節を参照)を実装
-
コンテンツ
-
表題
- エージェントAIの5つの特徴:自律性、計画、メモリ
- エージェントAIシステムの構築:Pushoverを通知に統合する
- エージェントAIの実装:自動化ワークフローのための計画エージェントの作成
- エージェントフレームワークの構築:LLMとPythonコードの接続
- エージェントワークフローの完成:ビジネスアプリケーションのためのスケーリング
-
要約
- メッセージング・エージェントの実装(お得なセール情報をPushoverで通知)
- プランニング・エージェントの実装
(各エージェントを統合し、スキャン → 見積もり → 通知と実行する。) - 余談:エージェントの特徴(自律性、タスク分割、プランニング、ツール使用、環境/フレームワーク)
...このコースのエージェントは最新と比べ原始的。 - 最後にエージェント・フレームワークを開発
(主にエージェントの初期化、ログ出力、メモリ管理、
データ可視化のためのインターフェースとして機能)
-
コンテンツ
-
表題
- 自律型AIエージェント:人間の入力なしでインテリジェントシステムを構築する
- GradioによるAIエージェント:自律型システムのための高度なUI技術
- エージェントAIソリューションのためのGradio UIの最終化
- AIエージェントUIの強化:リアルタイムログ可視化のためのGradio統合
- 結果の分析:エージェントフレームワークのパフォーマンス監視
- AIプロジェクトの振り返り:LLMエンジニアになるための8週間の旅
-
要約
- Gradioを使ってユーザーインターフェースを構築し、
ワークフローを自律的かつ継続的に実行できるように修正 - UIでは定期的にエージェント・フレームワークを実行、セール情報を一覧に表示&通知。
選択すると再通知、ログ、VDBのベクトル可視化。
- Gradioを使ってユーザーインターフェースを構築し、
-
コンテンツ
- https://github.com/ed-donner/llm_engineering/
- 日本語化:https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_llm/
https://drive.google.com/drive/folders/1JwNorpRHdnf_pU0GE5yYtfKlyrKC3CoV
移行メモ
PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、
- 同一ページ内のアンカは、見出しから生成されるアンカに張り替え、
- 他ページのアンカを指すリンクは「〜(
ページ名の該当節を参照)」の形に置き換えた。Week1〜Week8 に「Day1」〜「Day5」の見出しが重複し GitHub Wiki ではアンカが衝突するため、 「Day1(Week1)」のように括弧で週を補って一意にした。
元 Wiki の行頭空白によるプレフォーマット・ブロック(
requirements.txt)は、 フェンス付きコードブロックにした。元ページの誤記を修正した。 「ML/DN/LM」→「ML/DL/LLM」、「そのとファインチューニング」→「そのファインチューニング」、 「文字単語の中間」→「文字と単語の中間」、「以降コレラをまとめた」→「以降これらをまとめた」、 「LLMをのタスクに対する」→「LLM のタスクに対する」、 「チャンキング戦略の見直、」→「チャンキング戦略の見直し、」、 「価格を推定を人間による予測」→「価格の推定を、人間による予測」。
Week6 Day4 の「[Day3>#pe1f8ba1]]」は PukiWiki のリンク記法が壊れていたため、 同ページ内リンクとして復旧した。
Week8 の「分類木」は、実際に用いているのが RandomForestRegressor(回帰)であり 表題も「ランダムフォレスト回帰」であることから「回帰木」に修正した。
Tags: 移行, Udemy, LLM, LLMエンジニアリング, RAG, ファインチューニング, エージェント, Hugging Face, OpenAI, Gradio, QLoRA
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。