Slide 1

Slide 1 text

Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装 例〜 Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 1

Slide 2

Slide 2 text

@erukiti 2023年からAI全振りの会社である株式会社AlgomaticのAIエンジニア バックエンド・フロントエンド・LLM Opsなど幅広く Zenn/Google主催AI Agent Hackathonに個人で参加 2/10締め切りで、いま審査中 AI エージェント開発ハッカソン参加記事:Gemini 2.0 Flash で技術文書分析ツ ール「Tascario」を作ってみた そこで得られた知見をまとめた gemini-2.0-flashが賢くてコスパがよすぎる件 という記事がバズった Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 2

Slide 3

Slide 3 text

本日の主要トピック 1. LLMの選定とコスパ戦略 Gemini 2.0 Flash がなぜ良いのか? 2. 実践的なプロンプトエンジニアリング Gemini 2.0 Flash の本当の力を見せてあげますよ Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 3

Slide 4

Slide 4 text

LLMの性能で見るべき重要ポイント 1. 入力したコンテキストからの取りこぼしがないこと 2. 指示に追従すること 3. 日本語の読み書き Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 4

Slide 5

Slide 5 text

従来のLLM選択 頭が良く、値段が高い「高性能モデル」 gpt-4o, Claude 3.5 Sonnet LLMのパラメータ数は多め(だから賢いけど、遅くて高い) 頭が悪く、値段が安い「コスパモデル」 gpt-4o-mini, Claude 3.0 Haiku LLMのパラメータ数は少なめ(だから安くて早い) コストは抑えられるが、性能も悪い Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 5

Slide 6

Slide 6 text

Gemini 2.0 Flash 悪くない性能 Gemini 2.0 Flash 無条件で賢いわけではない Gemini無料でも「2.0 Flash」シリーズと対話ができるので試してみて! 対話側AIで「2.0 Flash」を選択して会話するとかなりポンコツ 対話で使うなら、 「2.0 Flash Thinking Experimental」か「2.0 Flash Thinking Experimental with App」 を使うとまともになる API前提だが、適切なプロンプトで高性能モデル相当の仕事が可能 従来のコスパモデルでは、できなかったレベルのことができるようになった コストパフォーマンスがすごく良い Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 6

Slide 7

Slide 7 text

Gemini 2.0 Flash 圧倒的コスパ Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 モデル 入力単価※ 1 出力単価※ 1 出力例40Mtokens※ 2 賢さ※ 3 Claude 3.5 Sonnet $3.00 $15.00 90,000円 すごく賢い GPT-4o $2.5 $10.00 60,000円 賢い Gemini 1.5 Pro $1.25 $5.00 30,000円 うーん Claude 3.5 Haiku $1.00 $5.00 30,000円 賢い Claude 3 Haiku $0.25 $1.25 7500円 うーん GPT-4o-mini $0.15 $0.60 3600円 うーん Gemini 2.0 Flash $0.15 $0.60 3600円 賢い ※ 1: 1Mトークンあたりの価格、キャッシュを考慮せず ※ 2: $1=150円換算、40文字を100万件、4000文字を1万件を想定 ※ 3: 主観によるもの。時期および出力したいものによって賢さは大きく左右される @erukiti 7

Slide 8

Slide 8 text

Gemini 2.0 Flashを賢く使う Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 8

Slide 9

Slide 9 text

プロンプトエンジニアリング 従来の手法vs現代の効果的なアプローチ 効果が限定的な手法 「あなたは最強のマーケッターです」 「ステップバイステップで考えて」 重要な現代のアプローチ i. 混乱のない明確な指示 ii. Chain of Thoughtの活用 iii. 構造化出力 Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 9

Slide 10

Slide 10 text

1. 混乱のない明確な指示 指示やデータに矛盾があると、都合良く処理しようとしてしまう 空配列のJSONデータを与えて「このデータから論点を導き出して」という と、好き勝手ハルシネーションを生み出す 指示が不明瞭だと、答えも不明瞭になりがち 「よしなにビリティ」は、特にコスパモデルでは低くなりがち 否定形文章による指示は苦手 コスパモデルでは特にそうだが、子どもに何かを指示する気持ちでやる Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 10

Slide 11

Slide 11 text

2. Chain of Thought 中間生成物を使って段階的な思考をさせるテクニック LLMの仕組み i. 入力したコンテキストを元に、それに続く文字を1トークン生成する ii. 1で出力したトークンをコンテキストに追加して、終了条件まで1を繰り返す 出力したトークンがコンテキストに追加されるということは? 自分が出力した結果にも左右されるため、段階を追って思考する能力を持つ 問題を分解して、簡単な問題の組み合わせにしてあげると、より確実に答え にたどり着ける コンテキストの取りこぼしのあるモデルでも「最初と最後は見てくれる」の で、一番最近自分が出した出力結果に一番影響を受ける Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 11

Slide 12

Slide 12 text

3. 構造化出力 knowledge: { type: SchemaType.ARRAY, items: { type: SchemaType.STRING }, description: "この文書から得られる知識・知見", }, { "knowledge": [ "Gemini 2.0 Flashを用いた技術文書分析の手法", "Embeddingによる文書のベクトル化と類似度計算", "Google Cloud PlatformにおけるAIアプリケーションの構築", ], } スキーマ定義を与えると、それに沿ったJSONの文字列を出力できる 型としてobject, string, array, number, booleanなどが指定可能 万能ではないが、出力を安定させられる 構造化出力とChain of Thoughtを組み合わせることができる Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 12

Slide 13

Slide 13 text

Tascarioでの中間生成物 ※ TascarioはAI Agent Hackathonで作った、日々大量に生じるインプットをいい感じに分析して、 人間の思考負荷を減らすプロダクト 項目 説明 claims 主張の内容、情報源、根拠、確からしさ description 要約 claimValidation claimsとdescriptionを元に主張を検証させる 整合性、要約との関連性、読者価値 noises 除去すべきノイズ Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 13

Slide 14

Slide 14 text

Tascarioでの最終成果物 項目 説明 keywords 文書の重要なキーワード knowledge 文書から得られる知識・知見 readingContexts 文章が役立つシチュエーション insights 文書から得られる洞察 summary 忙しい人向けの簡潔な解説 Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 14

Slide 15

Slide 15 text

適用例1 (Tascarioそのものの記事) Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 15

Slide 16

Slide 16 text

適用例1 (Tascarioの記事) ※中間生成物なし { "knowledge": [ "Tascarioは、Gemini 2.0 Flashを活用した技術文書分析ツールである", "Tascarioは、文書の取り込み、分析、検索、ノート作成機能を備えている", "Tascarioは、GCP上で動作し、Cloud Run, Firestore, Vertex AIなどのサービスを利用している", ] } ※中間生成物あり { "knowledge": [ "Gemini 2.0 Flashを用いた技術文書分析の手法", "Embeddingによる文書のベクトル化と類似度計算", "Google Cloud PlatformにおけるAIアプリケーションの構築", ] } → 中間生成物により、作ったプロダクトそのものの説明から、読者にとって本当に知りたい的を射た情報に 進化 Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 16

Slide 17

Slide 17 text

適用例2(極めてノイズの多い記事の場合) Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 17

Slide 18

Slide 18 text

適用例2(極めてノイズの多い記事の場合) { "knowledge": [ "「ジト目」は、キャラクターの表情の一種である", "pixivは、イラストや小説などの創作物を共有するプラットフォームである", "機動戦士Gundam GQuuuuuuXは、ガンダムシリーズの一作品である", ] } ※ LLMは、コンテキストに重要な情報が含まれてても、適切な指示を与えないと一般論を述べる悪癖がある { "knowledge": [ "ジト目マチュは、『機動戦士Gundam GQuuuuuuX』の主人公の萌え要素である", "ジト目マチュは、pixivでイラストや小説が投稿されている", "ジト目マチュは、専用タグが作られるほど特徴的なキャラクターである" ] } → 中間分析により、ノイズの多い記事から本質的な情報を抽出できている Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 18

Slide 19

Slide 19 text

まとめ Gemini 2.0 Flashは、コストパフォーマンスが良いだけではなく、適切なプロンプ トエンジニアリングにより高度なタスクをこなせる 効果的なLLMの活用にはプロンプトエンジニアリングが重要 混乱のない明確な指示を出す Chain of Thoughtによる段階的な思考プロセス 構造化出力による安定性の向上 適用例が示すように、構造化出力によるChain of Thoughtを活用することで 少し難のあるモデルでも指示に従うようになる ノイズの多いデータからも本質的な情報を抽出できる gemini-2.0-flashが賢くてコスパがよすぎる件 Gemini 2.0 Flashで実現する高コスパAI開発 〜実践的プロンプトエンジニアリングと文書管理システムの実装例〜 @erukiti 19