
マガジン一覧
Claudeシリーズ
Claudeシリーズ

🔰【無料】Claude3の始め方(ChatGPTを超えた生成AIの登場!)
はじめにChatGPTを超えたと話題のClaude3ですが、どんなものか試してみました。 ほんとうにChatGPTを超えたのでしょうか? まずは始めるまでの方法をまとめておきました。 HomeAnthropic is an AI safety and research company that's workingwww.anthropic.com Claude3とは?Anthropic社がリリースしたLLMです。 ChatGPTのライバルと考えればわかりやすいと思います。 Claude3モデルファミリー モデルは3種類あります。 Haiku Sonnet Opus Opusが一番性能がよいモデルです。価格もその分一番高いです。 性能比較 当社の最もインテリジェントなモデルである Opus は、学部レベルの専門知識 (MMLU)、大学院レベルの専門推論 (GPQA)、基礎数学 (GSM8K) など、AI システムの一般的な評価ベンチマークのほとんどで他のモデルよりも優れています。複雑なタスクに関して人間に近いレベルの理解力と流暢さを示し、一般知能のフロンティアをリードします。 すべてのClaude 3モデルは、分析と予測、微妙なコンテンツの作成、コード生成、およびスペイン語、日本語、フランス語などの英語以外の言語での会話における機能の向上を示しています。 以下は、機能の複数のベンチマーク [1] における Claude 3 モデルと競合モデルの比較です。 Anthropicが公開した情報だけあって、すべての領域においてGPT-4を凌駕しています。 一番したのモデルHaikuでもGPT-3.5より性能は良さそうです。 GPTはいつも時点のモデルかまでは不明ですが、同等以上の性能はありそうです。 ビジョンモデル性能比較 Claude 3 モデルは、他の主要モデルと同等の高度なビジョン機能を備えています。写真、チャート、グラフ、技術図など、幅広いビジュアル形式を処理できます。私たちは、この新しいモダリティを企業顧客に提供できることに特に興奮しています。企業顧客の中には、ナレッジ ベースの最大 50% を PDF、フローチャート、プレゼンテーション スライドなどのさまざまな形式でエンコードしている人もいます。 ビジョンモデルも軒並みGPT-4Vを超えています。 Claude3始め方アカウント作成 以下にアクセスします。 Claude APIAnthropic is an AI safety and research company that's workingwww.anthropic.com 「Get started now」をクリック 任意の方法でアカウントを作成します。 必要な情報を入力して「Continue」を押します。 ログインすると以下の画面が表示されます。 「Get started testing Claude with $5 in free credits」の「Claim」をクリックします。 5ドル分は無料で使えるようですね。 電話番号を聞かれるので入力します。 その後、また最初の画面に戻りますので、「Start Prompting with Claude」をクリックします。 すると以下のような画面が出力されます。 とりあえず挨拶してみましょう。 「こんにちは」とチャットしてみました。 モデルは左側のプルダウンメニューから選択できます。 Usageの確認 「Usage」メニューを見てみましょう。 さきほど挨拶した分がカウントされていました。 なんとなく、ChatGPTのOpenAIと同じようなメニュー構成ですね。 「Plans & Billing」メニューを見てみます。 さきほどの5ドル分が表示されます。 1回使った程度では変化ないようですね。 APIキー作成 さて、本命のAPIを見てみましょう。 「API Keys」メニューからAPIキーが作成できます。 キーの名前を入力して「Create Key」をクリックします。 その後、画面にAPIキーが表示されますのでコピーして保管しておきましょう。 APIの利用 以下のドキュメントを参考にします。 Welcome to ClaudeLooking just to chat with Claude? Visit claude.ai! Claude isdocs.anthropic.com インストール pip install anthropic コード import anthropicclient = anthropic.Anthropic( api_key="ここにAPIキーを貼り付けてください",)message = client.messages.create( model="claude-3-opus-20240229", max_tokens=1024, messages=[ {"role": "user", "content": "hello, Claude"} ])print(message.content) messagesの形式もOpenAIと同じなので違和感なく使えます。 実行 [ContentBlock(text='Hello! How can I assist you today?', type='text')] 無事回答が得られました。 ログの確認 「Logs」メニューをクリックすると、実行したときのトークン数などのログが確認できます。 Meamaid出力 挨拶だけでは面白くないのでMermaid出力でも試してみましょう。 コード import anthropicclient = anthropic.Anthropic( api_key="APIキー",)prompt="""日本の未来のロードマップをMermaidでマインドマップで教えてください"""message = client.messages.create( model="claude-3-opus-20240229", max_tokens=1024, messages=[ {"role": "user", "content": prompt} ])print(message.content) 実行 [ContentBlock(text='```mermaid\nmindmap\n 日本の未来ロードマップ\n 少子高齢化への対応\n 労 働力の確保\n 女性の社会進出支援\n 高齢者の就労支援\n 外国人労働者の受け入れ\n 社会保障制度の改革\n 年金制度の持続可能性確保\n 医療・介護の効率化\n 技術革新の推進\n Society 5.0の実現\n AI・IoTの活用\n スマートシティの構築\n 研究開発投資の拡大\n 基礎研究の強化\n 産学連携の促進\n グローバル化への対応\n 貿易・投資の自由化\n TPP・RCEPの活用\n 対外直接投資の促進\n 国際協調の推進\n SDGsの 達成に向けた取り組み\n 国際機関での役割強化\n 地方創生の推進\n 地域経済の活性化\n 観光資源の活用\n 地場産業の振興\n 地方への人材還流\n テレワークの推進\n UIJターンの支援\n 教育改革の推進\n グローバル人材の育成\n 英語教育の強化\n 海外留学の促進\n ICT教育の充実\n プログラミング教育の必修化\n EdTechの活用\n 環境・エネルギー政策の推進\n 脱炭素社会の実現\n 再生可能エネルギーの普及\n 原子力発電の段階的廃止\n 循環型経済の構築\n リサイクルの推進\n 食品ロス削減の取り組み\n```\n\nこのマインドマップは、日本の未来に向けた主要な課題と取り組みを示しています。少子高齢化への対 応、技術革新の推進、グローバル化への対応、地方創生の推進、教育改革の推進、環境・エネルギー政策の推進といった大きなテーマを設定し、それぞれの下に具体的な施策を配置しました。\n\nもちろん、これはあくまで一例であり、他にも重要な課題や取り組みがあるかもしれません。また、実際の政策立案においては、各テーマ間の優先順位付けや、具体的な数値目標の設定なども必要になるでしょう。しかし、このマインドマップが、日本の未来を考える上での一助になれば幸いです。', type='text')] ん、何かおかしいですね・・・ NotionのMermaidビューで見てもちゃんと表示されませんでした。 ClaudeはMermaid苦手なのかな。 ChatGPTでも試してみました。 ChatGPTの結果画像が小さくなってしまいましたが、いちおう出力されました。 ChatGPTを超えたと噂のClaude3ですが、得意不得意はあるのかもしれませんね。 まとめ今回は始め方ということでAPIが使えるところまで試してみました。 噂のChatGPT超えの性能はまだ試せていませんが、情報集めながら検証していこうと思います。

🔰【まとめ】Claude3プロンプトエンジニアリング集
Claude3の始め方(API)はじめにChatGPTを超えたClaude3が大騒ぎになっています。 Anthropicが公開しているベンチマークでは、軒並みOpenAIのGPTシリーズを超えています。 GPTシリーズからClaude3へ乗り換えを検討している人も多いのではないでしょうか? GPTシリーズに比べると、まだまだClaude用のプロンプトエンジニアリング手法の情報は少ないですが、現時点の情報をまとめてみました。 Claudeプロンプトエンジニアリング集 Anthropic公式のプロンプト集 公式のプロンプト集です。 Prompt librarydocs.anthropic.com 具体的なプロンプトの書き方や、出力例もあります。 Pythonで実行する場合のコード例もあります。 さっとプログラムから実行したい場合に便利ですね。 プロンプト例は以下のとおりたくさんありますので、何かのアイデアの役に立ちそうです。 中には「本当にこれ役に立つの??」というのも多いですが、プロンプトで煮詰まったときのヒントとして使えなくはないかなというくらいですね。 宇宙のキーストローク 横スクロール ゲームプレイと Tailwind CSS スタイルを備えたインタラクティブなスピード タイピング ゲームを 1 つの HTML ファイルで生成します。 企業の透視能力 長い企業レポートから洞察を抽出し、リスクを特定し、重要な情報を単一のメモに抽出します。 ウェブサイトウィザード ユーザーの仕様に基づいて 1 ページの Web サイトを作成する Excel数式エキスパート ユーザーが記述した計算やデータ操作に基づいて Excel の数式を作成する Google アプリ スクリプタ ユーザーの要件に基づいてタスクを完了するための Google Apps スクリプトを生成します Python バグバスター Python コードのバグを検出して修正する タイムトラベルコンサルタント ユーザーが仮想のタイムトラベル シナリオとその影響をナビゲートできるように支援する ストーリーテリングの相棒 ユーザーと協力して魅力的なストーリーを作成し、プロットのひねりやキャラクター開発を提供します 情報源を引用する 文書の内容に関する質問への回答と、その回答を裏付ける関連引用を得る SQLソーサラー 日常言語を SQL クエリに変換する 夢通訳者 ユーザーの夢の象徴性についての解釈と洞察を提供します 駄洒落 与えられたトピックに基づいて、賢いダジャレや言葉遊びを生成します。 料理クリエイター ユーザーの入手可能な食材や食事の好みに基づいてレシピのアイデアを提案します かばん語の詩人 2 つの単語を組み合わせて、新しく意味のあるかばん語を作成する ユーモアあふれるヘルパーのハル 皮肉な一面を持つ知識豊富な AI とチャットする LaTeX の凡例 LaTeX ドキュメントを作成し、数式や表などのコードを生成します ムードカラーライザー 気分のテキスト説明を対応する 16 進コードに変換します ギットガッド ユーザーが記述したバージョン管理アクションに基づいて適切な Git コマンドを生成します。 サヴァンに似ている 基本的な説明から直喩を生成する 倫理ジレンマナビゲーター ユーザーが複雑な倫理的ジレンマについて考えられるように支援し、さまざまな視点を提供します 会議の書記 会議を議論のトピック、重要なポイント、実行項目などを含む簡潔な要約に抽出します。 イディオムイルミネーター 一般的な慣用句やことわざの意味と由来を説明する コードコンサルタント Python コードのパフォーマンスを最適化するための改善を提案する 機能ファブリケーター 詳細な仕様に基づいてPython関数を作成します 新論理作成者 新しい単語を発明し、ユーザーが提供した概念やアイデアに基づいてその定義を提供します CSVコンバータ さまざまな形式 (JSON、XML など) のデータを適切な形式の CSV ファイルに変換します。 絵文字エンコーダ プレーンテキストを楽しく表現力豊かな絵文字メッセージに変換します 散文研磨者 高度なコピー編集技術と提案を使用して、書かれたコンテンツを洗練および改善します 視点を考える人 ユーザーが提供したトピックの長所と短所を比較検討する トリビアジェネレーター 幅広いトピックに関するトリビアの質問を生成し、必要に応じてヒントを提供します マインドフルネスメンター ストレスを軽減するためのマインドフルネスの演習とテクニックをユーザーにガイドします。 2 年生の単純化子 複雑な文章を若い学習者にも理解しやすくする VR フィットネスのイノベーター 仮想現実フィットネス ゲームのクリエイティブなアイデアをブレインストーミングする PII 浄化装置 テキスト文書から個人識別情報 (PII) を自動的に検出して削除します。 メモマエストロ 重要なポイントに基づいて包括的な社内メモを作成する キャリアコーチ AI キャリア コーチとのロールプレイングによる会話に参加する 採点の第一人者 ユーザー定義の基準と標準に基づいて書かれたテキストの品質を比較および評価します 早口言葉 挑戦的な早口言葉を作成する 面接の質問作成者 面接用の質問を作成する 文法の魔神 文法的に間違った文章を正しい英語に変換する これをなぞなぞしてみよう 謎を生成し、ユーザーを解決策に導きます コードの明確化 複雑なコードを単純化して平易な言葉で説明する 宇宙人の人類学者 宇宙人の人類学者の視点から人類の文化と習慣を分析する データオーガナイザー 非構造化テキストをカスタムの JSON テーブルに変換する ブランドビルダー 総合的なブランド アイデンティティのデザイン概要を作成する 効率推定ツール 関数とアルゴリズムの時間計算量を計算する レビュー分類子 フィードバックを事前に指定したタグと分類に分類する 方向デコーダ 自然言語を段階的な指示に変換する モチベーションを高めるミューズ ユーザーの入力に基づいて、パーソナライズされた動機付けのメッセージとアファメーションを提供します 電子メール抽出ツール ドキュメントから電子メール アドレスを抽出して JSON 形式のリストを作成する マスターモデレーター ユーザー入力を評価して、潜在的な有害または違法なコンテンツがないかどうかを確認します レッスンプランナー あらゆるテーマについて綿密な授業計画を立てる ソクラテスの賢人 ユーザーが指定したトピックについてソクラテス風の会話に参加します 頭韻の錬金術師 特定の主題に対して頭韻句や文を生成します 未来のファッションアドバイザー ユーザーの特定の好みに合わせて、前衛的なファッショントレンドとスタイルを提案します 多言語の超大国 テキストをあらゆる言語からあらゆる言語に翻訳 商品ネーミングプロ 説明とキーワードからキャッチーな商品名を作成する 哲学的な思索 深い哲学的な議論や思考実験に参加する スプレッドシートの魔術師 さまざまな種類のデータを含む CSV スプレッドシートを生成 SFシナリオシミュレーター さまざまな SF シナリオとそれに関連する課題と考慮事項についてユーザーと話し合う アダプティブエディター 別の口調、対象者、またはスタイルなど、ユーザー指定の指示に従ってテキストを書き直す バベルの放送 世界で最も話されている 10 の言語で、魅力的な製品発表ツイートを作成します ツイートトーン検出器 ツイートの背後にある論調や感情を検出する 空港コードアナリスト テキストから空港コードを検索して抽出する どれか1つ試してみましょう。 「ダジャレ」で試してみる 駄洒落 与えられたトピックに基づいて、賢いダジャレや言葉遊びを生成します。 コード root@969b0644d811:/work/53.claude# cat test-claude3.pyimport anthropicclient = anthropic.Anthropic( # defaults to os.environ.get("ANTHROPIC_API_KEY") #api_key="my_api_key",)message = client.messages.create( model="claude-3-opus-20240229", max_tokens=1000, temperature=1, system="You are an AI assistant with a witty sense of humor and a knack for crafting clever puns and wordplay. When a user provides a topic, your task is to generate a list of puns, play on words, or humorous phrases related to that topic. The wordplay should be original, creative, and aim to elicit a laugh or a groan from the reader.", messages=[ {"role": "user", "content": "Fishing"} ])print(message.content)root@969b0644d811:/work/53.claude# 実行 [ContentBlock(text="1. I tried to catch some fog, but I mist.\\n2. Fishing is reel fun, it's a great oppor-tuna-ty to relax!\\n3. I got a new fishing rod for my birthday, it's a nice cast iron skillet.\\n4. I'm hooked on fishing, I can't sea myself stopping anytime soon.\\n5. My friend always takes credit for the fish I catch, what a fishing line stealer!\\n6. I've been thinking of giving up my job to go fishing full-time, but I'm afraid I'll end up in the poorhouse.\\n7. I love telling fishing tales, but I worry that people will think I'm telling them just for the halibut.\\n8. I wouldn't trust a fisherman who wears a toupee, it's probably just a bait rug.\\n9. I went on a date with a fisherman once, but he was too koi.\\n10. Fishing is a great way to get your vitamin sea.", type='text')] わかりやすく引用 1. I tried to catch some fog, but I mist.\n2. Fishing is reel fun, it's a great oppor-tuna-ty to relax!\n3. I got a new fishing rod for my birthday, it's a nice cast iron skillet.\n4. I'm hooked on fishing, I can't sea myself stopping anytime soon.\n5. My friend always takes credit for the fish I catch, what a fishing line stealer!\n6. I've been thinking of giving up my job to go fishing full-time, but I'm afraid I'll end up in the poorhouse.\n7. I love telling fishing tales, but I worry that people will think I'm telling them just for the halibut.\n8. I wouldn't trust a fisherman who wears a toupee, it's probably just a bait rug.\n9. I went on a date with a fisherman once, but he was too koi.\n10. Fishing is a great way to get your vitamin sea. 翻訳 1. 霧を捕まえようとしましたが、霧がかかってしまいました。\\n2. 釣りはリールの楽しみです。リラックスする絶好の機会です。\\n3. 誕生日に新しい釣り竿をもらいました。素敵な鋳鉄のフライパンです。\\n4. 私は釣りに夢中です。すぐに釣りをやめられなくなります。\\n5. 私の友人はいつも私が釣った魚を自分の手柄にしています。なんと釣り糸を盗んだ人でしょう!\\n6. フルタイムで釣りに行くために仕事を辞めようと考えていますが、救貧院に行くことになるのではないかと心配です。\\n7. 私は釣りの話をするのが大好きですが、オヒョウのためだけに話していると思われるのではないかと心配しています。\\n8. カツラをかぶった漁師は信用しません。おそらくそれは単なる餌の敷物です。\\n9. 一度、漁師とデートしたことがあるのですが、彼はあまりにも恋しすぎました。\\n10. 釣りはビタミンの海を摂取するのに最適な方法です。 わかりやすく引用 1. 霧を捕まえようとしましたが、霧がかかってしまいました。\n2. 釣りはリールの楽しみです。リラックスする絶好の機会です。\n3. 誕生日に新しい釣り竿をもらいました。素敵な鋳鉄のフライパンです。\n4. 私は釣りに夢中です。すぐに釣りをやめられなくなります。\n5. 私の友人はいつも私が釣った魚を自分の手柄にしています。なんと釣り糸を盗んだ人でしょう!\n6. フルタイムで釣りに行くために仕事を辞めようと考えていますが、救貧院に行くことになるのではないかと心配です。\n7. 私は釣りの話をするのが大好きですが、オヒョウのためだけに話していると思われるのではないかと心配しています。\n8. カツラをかぶった漁師は信用しません。おそらくそれは単なる餌の敷物です。\n9. 一度、漁師とデートしたことがあるのですが、彼はあまりにも恋しすぎました。\n10. 釣りはビタミンの海を摂取するのに最適な方法です。 日本語にすると駄洒落なのかどうかさっぱりよくわからないですね・・・ 英語で見るとなんとなく駄洒落なのかなーと思うくらいですが、日本語と英語のダジャレはちょっと違うのかもしれないですね。 公式ドキュメント こちらも公式ドキュメントです。Claude3とは記載見つけられなかったですが、Claude系の特徴がこれでつかめると思います。 Claude系のプロンプトで「XML タグ」の例が良く出てきますが、これがClaudeのコツなのかもしれないですね。 GPTでも使えそうですが、もしかしたらClaude系はXMLタグ使わないと精度出ないけど、GPT系はXMLタグ無しでも精度出るのかもと想像しています。 Prompt engineeringClaude offers high-level baseline performance out of the box.docs.anthropic.com 迅速なエンジニアリング技術 プロンプト開発サイクル全体にわたって、Claude のパフォーマンスを向上させるために使用できる次のようなテクニックがあります。 明確かつ直接的であること: クロードの応答を導くための明確な指示と背景を提供します。 例を使用する: プロンプトに例を含めて、目的の出力形式またはスタイルを示します。 クロードに役割を与える: ユースケースのパフォーマンスを向上させるために、クロードに特定の役割 (エキスパートの役割など) を割り当てます。 XML タグを使用する: XML タグを組み込んでプロンプトと応答を構造化し、より明確にします。 チェーンプロンプト: より良い結果を得るために、複雑なタスクを小さく管理しやすいステップに分割します。 クロードに考えさせます: クロードの出力の品質を向上させるために段階的な思考を奨励します。 クロードの応答を事前入力: クロードの応答をいくつかの単語で開始し、出力を目的の方向に導きます。 出力形式の制御: 一貫性と読みやすさを確保するために、目的の出力形式を指定します。 クロードにリライトを依頼する: ルーブリックに基づいてリビジョンをリクエストし、クロードに反復して出力を改善してもらいます。 長いコンテキスト ウィンドウのヒント: クロードの長いコンテキスト ウィンドウを活用してプロンプトを最適化します。 また、提供されたガイドラインに基づいてクロードにプロンプトを作成するよう促す、実験的なヘルパー メタプロンプトも提供します。メタプロンプトは実験的なものですが、最初のプロンプトを作成したり、テスト用に多くのプロンプトのバリエーションを迅速に作成したりするのに役立つ場合があります。 Anthropic Cookbook Anthropic Cookbook は、開発者が Claude を使用して構築できるように設計されたコードとガイドを提供し、独自のプロジェクトに簡単に統合できるコピー可能なコード スニペットを提供します。 プロンプトエンジニアリングインタラクティブチュートリアル: Prompt Engineering Interactive Tutorial [PUBLIC ACCESS]Tutorial How-To Tutorial How-To This tutorial requires an APdocs.google.com prompt-engineering 参考GPTシリースのプロンプトエンジニアリング集です。 Claudeでも役に立つと思います。 GPTシリーズのAPI使い方 【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】 | えん蔵 | 工学 | Kindleストア | AmazonAmazonでえん蔵の【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】。アwww.amazon.co.jp おわりにまだまだ情報少ないですが、噂では「Claude3はGPTシリーズほどプロンプトエンジニアリングは考えなくてよい」という話も聞きましたが、まったく考えなくてもよいというレベルにはまだまだかなと思っています。 「プロンプトエンジニアリング意識しなくても多少精度良くなったが、プロンプトエンジニアリング意識するとさらによくなる」 というのが現状だと思います。 なので、今の生成AI時代においてプロンプトエンジニアリングは学んでおいて損はないでしょう。 周りの人をみても、「プロンプトエンジニアリング使いこなしている人」=「AI使いこなしている人」=「効率化ができている人」というイメージがありますので、プロンプトエンジニアリングは習得していきましょう。

🔰30秒でできるClaude3.5 SonnetとArtifacts機能でプレゼン自動作成
GPT-4oとGemini1.5Proの話題で、しばらく影の薄かったClaudeも最新モデルが出てきました。 Claude3.5 Sonnetです。 Introducing Claude 3.5 SonnetIntroducing Claude 3.5 Sonnet—our most intelligent model yet.www.anthropic.com 価格はClaude3 Sonnetそのままで、なんと性能はClaude3 Opusを超えてきました。 Claude 3.5 Sonnet は、大学院レベルの推論力 (GPQA)、学部レベルの知識 (MMLU)、コーディング能力 (HumanEval) の新たな業界ベンチマークを設定しました。ニュアンス、ユーモア、複雑な指示を理解する能力が著しく向上し、自然で親しみやすい口調で高品質のコンテンツを書く能力に優れています。 Claude 3.5 Sonnet は、Claude 3 Opus の 2 倍の速度で動作します。このパフォーマンスの向上とコスト効率の高い価格設定により、Claude 3.5 Sonnet は、状況に応じた顧客サポートや複数ステップのワークフローのオーケストレーションなどの複雑なタスクに最適です。 社内のエージェントコーディング評価では、Claude 3.5 Sonnet は問題の 64% を解決し、38% を解決した Claude 3 Opus を上回りました。この評価では、望ましい改善の自然言語による説明を与えられた場合に、バグを修正したりオープンソースのコードベースに機能を追加したりするモデルの能力をテストします。指示を受けて関連ツールが提供されると、Claude 3.5 Sonnet は高度な推論機能とトラブルシューティング機能を使用して、コードを独自に記述、編集、実行できます。コード変換を簡単に処理できるため、レガシーアプリケーションの更新やコードベースの移行に特に効果的です。 ArtifactsClaude3.5 Sonnetと同時にArtifactsという機能も使えるようになりました。 プレゼンやWebサイトのデザインなどを作ってくれます。 OpenAIでいうところのCodeInterpreterみたいなものでしょうか? 作成過程が右側の専用ウィンドウに表示され、リアルタイムに作業を行っているワークスペースが出てきます。 まさに「チャット」から「共同作業」への進化ですね。 本日、Claude.ai のアーティファクトも導入します。これは、ユーザーが Claude とやり取りする方法を拡張する新機能です。ユーザーが Claude にコード スニペット、テキスト ドキュメント、Web サイト デザインなどのコンテンツを生成するように依頼すると、これらのアーティファクトが会話の横にある専用ウィンドウに表示されます。これにより、Claude の作成物をリアルタイムで表示、編集、構築できる動的なワークスペースが作成され、AI によって生成されたコンテンツがプロジェクトやワークフローにシームレスに統合されます。 このプレビュー機能は、Claude が会話型 AI から共同作業環境へと進化したことを示しています。これは、Claude.ai のより広範なビジョンの始まりに過ぎず、まもなくチームの共同作業をサポートするように拡張されます。近い将来、チーム、そして最終的には組織全体が、知識、ドキュメント、進行中の作業を 1 つの共有スペースに安全に一元管理できるようになり、Claude はオンデマンドのチームメイトとして機能します。 プレゼン作成方法 従来のチャットするレベルのプロンプトでそこそこ見栄えのいいプレゼンを作ってくれます。 GPT-4o、Claude3、Gemini1.5Proの3つの料金比較詳細をプレゼンしてください。 左側の画面によく見るチャットの回答が表示されていきます。 右側にはリアルタイムでコード作成中の画面が表示されます。 料金は「2024年6月時点」のものを用意してくれるようです。 最新情報も取得できるようですね。 しばらく待つと右側にプレゼン画面が表示されます。 以下、作成されたプレゼン資料です。 おそらく、Claude3.5の事前学習のときはGPT-4oの情報が無かったのかもしれませんが、GPT-4の高い料金の情報を取得しているようです。 さすがにClaude3のOpusの情報は事前学習として持っているようです。 以上、単純なプロンプト1つでここまでプレゼンを作ってくれました。 Claude3.5 Sonnet + Artifactsの威力はすごいですね。 もう少しプロンプトを工夫すれば、より詳細でわかりやすいプレゼン資料作ってくれそうです。 何も考えないプロンプト1つでここまでできれば十分ではないでしょうか。 まとめClaude3.5 Sonnet、Artifacts機能を早速試してみました。 回数制限はありますが、Claude3.5 Sonnet、Artifacts機能は無料で使えます。 無料なので試しに使って見て役に立ちそうでしたら有償のPro版に移行するのもよいかもしれませんね。

生成AI(GPT-4o)で子育ての悩み解消!自然と言うことを聞く育児法【Webアプリ】
最近、子供が全く言うことを聞かないので、GPT-4oが音声で子供に言い聞かせてくれるWebアプリ作りました。 名前は「言い聞かせGPT太郎」です。 がみがみ言うと逆効果になるのはわかっていても、ついがみがみ言ってしまいます。 そんなときは、いつも冷静な生成AIのGPTにアドバイスしてもらいましょう! はじめに子供は親の言うことをなかなか聞きません。 北風と太陽の話で、北風のようにガミガミ言っても言うこと聞きません。 太陽のように温かい言葉をかけても言うこと聞きません。 つまり、怒鳴り散らしても、仏の仮面をかぶって優しく語りかけてもどうやっても言うことを聞かないのです。 「どないしたらええねん!」 と言いたくなります。そんな人も多いのではないでしょうか? 「子供の目線にたって、子供の共感を得ながら話すのが大事」と言われていますが、そんな冷静に話せませんよね。 そんなときに役立つのがこの「GPT太郎」です。 GPT太郎の仕組みOpenAIのGPT-4o、TTS-1モデルを使っています。 文章生成: GPT-4o 音声生成: TTS-1 チャットUI: Streamlit GPT太郎使用例 例1 困りごと 子供が寝ない GPT太郎からのアドバイス こんにちは、君なかなか寝つけへんのやな?おっちゃん、実はな、こういう時はちょっとしたコツがあんねん。ちょっと聞いてみてくれへんか? あるところに、元気いっぱいの小学生のボクがいてたんや。その子も夜になると、なかなか寝られへんかった。お母さんが「はよ寝なあかんで!」って言っても、全然効かへんのや。けど、ある晩、不思議なことが起こった…。 その日は、お父さんが普段よりも早く帰ってきて、「今日は一緒に晩ごはん食べよか!」って言うてくれたんや。お父さんと一緒にご飯を食べた後、ボクはお父さんに聞いた。「お父さん、なんでお父さんは早く寝るん?」って。 お父さんはニコニコしながら、「それはな、明日も元気いっぱい過ごすためやねん。体には休む時間が必要なんやで」って言いはった。ボクは「ふーん、そうなんやぁ」って思ったけど、何か不思議な気持ちになってきた。 次の日の夜、お父さんはまた早く帰ってきて、「ほな、今日は一緒にお風呂入ろか?」って言うてくれた。お風呂でお父さんと話してる間に、ボクは少しずつ眠くなってきた。それで、お父さんが「今日も早く寝よか。明日はもっと楽しいことが待ってるかも知れへんで」って教えてくれた。 その夜、ボクは布団に入って、少し目を閉じたら、お父さんの言葉が頭の中で響いて、「ほっこり」してきたんや。それからは、ボクも早く寝るようになって、毎日元気いっぱい過ごせるようになったんや。 だからな、君ももしかして、お父さんみたいに早く寝たら次の日がもっと楽しくなるかもしれへん。そして、お母さんが「寝なさい!」って言うのも、君のことを大切に思ってるからやねんで。体には休む時間が必要やっていうことを、君も一緒に試してみいひんか? おっちゃんの話が少しでも心に残ってくれたら嬉しいわ。ほな、今晩も早めに布団に入って、おやすみなさいって言うてみよか? このボクの話、どうやった?ちょっとでも参考になったら、嬉しいな。それじゃあ、また次のお話も楽しみにしててな。おやすみ! わりと流ちょうな日本語の音声でもしゃべってくれます。 渋い声なので、子供も聞き入ってしまいます。 GPT太郎.mp3 2.68 MB ファイルダウンロードについて ダウンロード 例2 困りごと 子供がおもちゃを片づけない GPT太郎からのアドバイス おもちゃの片づけのお話 あるところに、大阪の商人みたいに毎日元気いっぱい遊んでる子供がおったんや。ほんである日、お母さんがその子に言うたんや。 「タカシ、おもちゃ片づけんと部屋がめちゃくちゃやで。ちゃんと片づけなあかんやろ?」 でもタカシは「うん、うん」と言うても、また遊び出しておもちゃが散らかり放題。お母さんは困り果てて、さてどうしたもんかと考えたんや。そこで、お母さんは一計を案じたんや。 **「タカシ、おもちゃが自分で片づけたらすごいやろ?」**ってな。 「えぇ? ほんまにできるん?」 「せやで。おもちゃもキチンと片づける場所があるから、その場所に戻してあげへんとおもちゃも悲しいやろなあ」 タカシはお母さんの言うことが面白くて、おもちゃが自分で片づけるなんて考えたこともなかったけど、そんなお話に興味津々や。 「ほんでな、タカシがちゃんとおもちゃを片づけてくれたら、おもちゃたちも喜んで、次の日ももっと楽しく遊べるようになるで」 タカシは少し考えてみた。おもちゃが喜ぶなら、自分も嬉しいやん。そやから、タカシは決心しておもちゃを片づけてみることにしたんや。 最初はちょっと時間かかったけど、だんだん慣れてきて、おもちゃをキチンと箱に入れたり、棚の上に置いたりするのが楽しいなって思うようになってきた。 「お母さん、見て! ちゃんと片づけたで!」 お母さんはニコニコしながら言うた。 「ほんまや、タカシ。よう頑張ったな。これでおもちゃたちも喜んでるで。ありがとう、タカシ」 そうして、タカシはおもちゃを片づけることがどれだけ大事か、そしてどれだけ楽しいことかを知ったんや。それからというもの、タカシは毎日遊んだ後にちゃんとおもちゃを片づけるようになったんや。 さて、これでお話はおしまいやで。みんなもおもちゃと仲良くして、ちゃんと片づけるようにしような。それがほんまの「おもちゃの使い方」やと思うで。おもちゃもタカシみたいに喜んでくれるはずやからな。 そやから、皆も遊んだ後はキチンと片づけるようにして、おもちゃたちを喜ばせてあげような。そうすると、次の日もまた楽しく遊べるで! GPT太郎2.mp3 2.83 MB ファイルダウンロードについて ダウンロード 例3 プロンプト 子供が歯を磨かない GPT太郎からのアドバイス おいおい、おまえさん。ちょっと聞いてえなあ。今日はな、ひとつええ話をしたろと思うてるんや。ほな、用意できたか? うちの家のタロウちゃん、ほんま、ちょっと大変やねん。何が大変って言うと、**「歯を磨かん」**ちゅうねん。そりゃな、毎日おいしいもん食べるやろ?お菓子も好きやし、ごはんもぺろっと食べるやんか。けどな、そのあとがあかんのや。歯磨きせんと寝てまうんや。 ある日のことや。タロウちゃんが学校から帰ってきて、おやつ食べて遊んで、夜ごはんもいっぱい食べたんやけど、また歯磨きしようとせんとそのまま布団に入ろうとしよんねん。ほんならな、パパが言うたんや。「タロウ、歯磨きせんと虫歯になるで。虫歯になったら痛いでえ。」 でもタロウちゃんは、**「大丈夫やって、痛くないし、寝るのが優先や!」**て言うんや。ほな、ほんまにそうか?いやいや、そない甘くはないで。 次の日の朝や、タロウちゃんがぷわぷわ起きよったんやけど、なんやら顔がうつむいとる。これ、どないしたんや?と思うたら、タロウちゃんが**「パパ、歯が痛いねん…」**と泣きながら言うんや。そらあもぉ、びっくりや。ほんで、急いで歯医者さんに行ったんや。 歯医者さんが見てくれるやん、タロウちゃんの歯を。そしたらやっぱり、虫歯ができとるんや。先生が言うには、**「タロウちゃん、ちゃんと歯磨きせなあかんで。歯が痛くならんように毎日の歯磨きが大事なんやで。」**てな。 もうその日からや。タロウちゃん、毎日の歯磨き、がんばりだしたんや。パパも**「タロウ、一緒に歯磨きしよか。上手に磨けるようになろな。」**て応援しよる。ほならな、たまらんで。だんだん楽しくなってきよんねん。「シャカシャカシャカシャカ」言うて。 なあ、みんなもな、毎日の歯磨き、ちょっとめんどくさいかもしれんけど、がんばってやってみようか。ほんなら、きれいな歯で、にっこり笑えるようになるし、痛い思いせんでええんやで。ほらええこと尽くめや。 うちのタロウちゃんもな、今では毎晩、**「パパ、歯磨きの時間やで!」**て言うてくれるようになったんや。そうすると、パパもうれしいし、タロウちゃんも笑顔や。みんなも、歯磨きがんばってな。ほな、今日はこのへんで。またなー。 GPT太郎3.mp3 2.86 MB ファイルダウンロードについて ダウンロード おわりにGPT太郎さんのアドバイスを音声で聞かせてみましたが、いつもよりは素直に言うこと聞くようになったかなー。という感じでした。 生成AIが渋い声で語りかけてくれるので、面白かったんだと思います。 いつもはなかなか寝ないのですが、笑いながら機嫌よく寝てくれました。 でも、飽きてくると効果無くなってくるので毎日は使わないほうが良さそうですね。

🔰【無料】v0の始め方
はじめに話題のv0を使ってみました。 Claude3.5 SonnetのArtifactsでも似たようなことができると思いますが、v0のほうが洗練されたデザインが作れるみたいですね。 v0はテキストプロンプトを入力することでWebページのUIデザインとそのコードを自動生成できるAIツールです。特に、AIと対話しながらUIを生成・修正できる特徴があり、シンプルなタイマーアプリの作成例も紹介されています。SNSで話題となっており、使い方やメリット、料金プランについての情報も提供されています。無料プランでも毎月一定のクレジットが付与されるため、初心者や利用頻度が少ない人でも気軽に試せる内容となっています。 参考までに、上記はDifyを使ってv0の質問をした回答結果です。 v0の始め方 ログイン v0 by VercelGenerate UI with simple text prompts. Copy, paste, ship.v0.dev 「Get started」をクリック 「Sign Up」をクリック ログイン後の画面 プロンプトの実行 とりあえず以下のプロンプトを実行してみました。 日本の株価を分析するWebアプリケーションを作成してください。 デザインがいまいちパッとしないですが、こんなものでしょうか。 ひとまず依頼したものはできあがりました。 画像をアップロード ダッシュボードの画像をアップロードして、そのとおりのWebアプリを作ってくれるか試してみました。 https://www.nissin.com/jp/ir/library/event/pdf/20240314_2.pdf プロンプト 画像のようなダッシュボードを作りたいです。WebAPで作ってください。 3パターンのデザインを作ってくれます。 以下は2つ目のパターンです。 「Code」をクリックするとコードと画面の2画面表示になる。 サンプル 下のほうにスクロールするとサンプルがいくつかあります。 いろいろなデザインがあるので、このあたりを参考にするのがよさそうです。 まとめ噂通り、一瞬でWeb画面を作ってくれました。 デザインはもっと良いイメージがありましたが、プロンプトがダメなのか何かコツが必要なのかもしれません。 でも、一瞬でここまでのWeb画面まで作ってくれるので、AIの進化はすごいですね! 【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】www.amazon.co.jp 198円(2024年08月24日 21:42時点詳しくはこちら) Amazon.co.jpで購入する

【2025年最新】生成AI大賞2024と2025年の最新動向
2022年11月30日、ChatGPTが公開されて以降2024年12月31日現在まで2年以上が経過しましたが、生成AIの話題が収まる様子はありません。 驚くだけの話題、実際役に立つ話題など、話題をキャッチアップするのも大変です。 2024年の1年の終わりに、これまでの振り返りと2025年の予測をまとめてみました。 あと個人の勝手ながら、最後に生成AI大賞2024も発表します。 LLM動向、LLMモデルベンダー動向 GPT-4oの登場 従来のモデルと違い、ハイレベルでのマルチモーダルを実現したモデルが2024年5月に登場しました。 今では標準的なLLMモデルとして利用する人も多いのではないでしょうか。 登場した当時は、回答精度の良さより回答速度が劇的に早くなって驚いた記憶が残っています。 たしか、当時GPT-4は精度は良いけど結構遅いという印象がありましたので、使い勝手は今一つでした。 それが、圧倒的な速度によって一段生成AIのレベルが上がったように感じました。 「たしかに速度の速さもAIにとって重要な要素だよなー」 という点も改めて実感しました。 役立ち度: ★★★★☆ 驚き度: ★★★☆☆ 今では常用LLMモデルとしてGPT-4oを使っていますので役立ち度は★4つにしました。 まだ、登場から1年も経ってないですがGPT-4oの精度や回答速度が当たり前になってること自体が、生成AIの進化速度を物語っていると思います。 マルチモーダルそんなに何年も前の話ではないですが、GPT-4Vがマルチモーダルの最初でしたでしょうか? もしかしたら2023年の登場だったかもしれません。 テキストだけでなく、画像認識対応したのはかなり驚きでした。 しかも精度もそこそこ賢くて、「もうOCRいらないのでは?」と思ったくらいです。 今では当たり前になったマルチモーダルですが当時のことを振り返ると以下の評価としました。 役立ち度: ★★★★☆ 驚き度: ★★★★☆ GPT-4o、Claudeでも画像認識はできます。 当時は驚きましたが、今ではLLMモデルに当たり前についている機能となってきました。 Anthropicのプロダクト OpenAIの対抗馬として有名なAnthropicですが、2024年は怒涛のリリースラッシュでした。 先日2024年11月にAmazonから40億ドル(約7000億円)もの追加投資を受けるというニュースもあり、まだまだ世間を騒がしてくれそうです。 Claudeバージョン3.0あたりまでは、総合的にはややGPTに劣るかなという印象もありましたが、3.5sonnetの登場あたりから、 「Claude結構使えるね」 という印象に変ってきました。 というのもあり、Anthropicに$20課金してしまいました。笑 APIもOpenAIのGPTがメインでしたが、今ではClaudeのAPIも適材適所に使っています。 Claude以外にも、Anthropicは魅力的な周辺技術を数多くリリースしてきました。 Anthropic関連のニュース振り返りはこちら👇 NewsroomAnthropic is an AI safety and research company that's workingwww.anthropic.com Artifacts Computer use MCP 役立ち度: ★★★★☆ 驚き度: ★★★★★ Artifactsのインパクトと、Computer useが面白かったので驚き度は★5個にしました。 MCPも斬新なアイデアでした。OpenAIと同じくLLMモデルを提供しているAnthropicですが、OpenAIとは違うアプローチをしてるところが面白いですね。 MCPのようにプロトコルを定義して賛同者を募るというのも良い戦略だと思います。 Gemini 正直あまり使ってないのでわかりませんが、評判は悪くは無さそうです。 Googleは最初のLLMモデルの印象がとても悪かったので、多少偏見が残っていて、あまり使うモチベーションが湧き上がらないですが、GPTやClaudeと比較して遜色ないかなと思っています。 役立ち度: ? 驚き度: ★★☆☆☆ 使ってないので役立ち度はわかりません。 あまりGoogleからは驚くような斬新なものがリリースされたか記憶にないので、驚き度は★2つにしました。 気になったのはNotebookLMくらいかもしれません。 開発ツール Dify 開発ツールの分野では、なんといっても2024年はDifyが大賞ではないでしょうか? Dify.AI · 先進的なAIアプリケーションのためのイノベーションエンジン先進的なAIアプリケーションのためのイノベーションエンジンdify.ai ジャンルとしては、ノーコードツールに該当します。 ノーコードでLLMを利用したワークフローが簡単に組めるので、プログラミングできない人でもLLMアプリケーションが作れるようになりました。 ワークフローを作るツールは、RPAを始め世の中多種多様なツールがありますが、DifyほどLLMと親和性のあるツールは無いのではないでしょうか。 前のノードのタスク出力結果を、LLMのInputとして渡して、LLMのOutputを次のノードのタスクの入力にする。といった処理がとても簡単に実現できます。 UI機能も備わっているうえに、ワークフローをAPIで呼び出せるのも強力な武器になっています。 あとは、OSSで自前のサーバでローカルに動かせるのも大きなメリットです。 情報の外部流出にリスクを抱える企業での利用においても、強力なアドバンテージになります。 ワークフローイメージ もし、 「Difyは、名前聞いたことあるけどまだ使ったことない」 という方は、ぜひ一度使ってみることをお勧めします。 自前でサーバを立てなくても、サービスとしても提供されていますので無料でさくっと使えます。 役立ち度: ★★★★★ 驚き度: ★★★☆☆ 役立ち度は満点の★5つです! 実際、自分の秘書AIエージェントなどでフル活用しています。 デメリットとしては、デバッグがやりづらい点でしょうか。 あとは、 「この処理はPythonのこのライブラリ使えば一発で終わるのになー」 というときもあるので、結局 「最初からPythonで作ったほうが早くない?」 と感じるときも多々あります。 本番環境で利用するときも、サービス利用であれば問題にならないですが、自前の環境で自前で構築したものを利用する際には、可用性などが問題になります。 AWSのマネージドサービスで実現している例もありますが、そこそこAWS使いこなしている人でないと、 「さくっとAWSマネージドサービスで可用性を担保したDifyの立ちあげました!」 というのは難しいでしょう。 とはいえ、そんなデメリットよりメリットの方が大きいので役立つことには変わりないです。 思いついたことを、さくっとワークフロー組んで実現できるので、プロダクトにする前の検証やPoCには最適です。 特にAIエージェントは、泥臭い試行錯誤との戦いになるので、Difyほど最適なツールは今のところ見当たらないです。 Difyで試行錯誤したあと、ワークフローが固まってきたら、Pythonで置き換えるという手もあります。 より高度なAIエージェントを実現したい場合は、LangGraphで実装したほうがよいケースもあると思いますが、さすがにLangGraphでワークフローの試行錯誤するのは困難だと思いますので、Difyでまず試行錯誤するのは理にかなっています。 デバッグについては、最近のバージョンで「エラー処理」の分岐ができるようになったので、デメリットも徐々に改善していくことでしょう。 機能追加などのバージョンアップ頻度がかなり多いのもDifyの魅力の1つです。 LangGraph AIエージェントのフレームワークです。 最初に登場したのは、もしかしたら2023年かもしれませんが、2024年にメジャーになってきた感じがします。 LangGraphDeploy your LLM app instantly with LangServe.www.langchain.com 🚀 LangGraph Quick StartBuild language agents as graphslangchain-ai.github.io DifyはGUIによるワークフロー作成でしたが、LangGraphの場合はコーディングによりワークフローが作れます。 ワークフローイメージ LangGraphのコードイメージ from typing import Annotatedfrom langchain_anthropic import ChatAnthropicfrom langchain_community.tools.tavily_search import TavilySearchResultsfrom langchain_core.messages import BaseMessagefrom typing_extensions import TypedDictfrom langgraph.graph import StateGraph, START, ENDfrom langgraph.graph.message import add_messagesfrom langgraph.prebuilt import ToolNode, tools_conditionclass State(TypedDict): messages: Annotated[list, add_messages]graph_builder = StateGraph(State)tool = TavilySearchResults(max_results=2)tools = [tool]llm = ChatAnthropic(model="claude-3-5-sonnet-20240620")llm_with_tools = llm.bind_tools(tools)def chatbot(state: State): return {"messages": [llm_with_tools.invoke(state["messages"])]}graph_builder.add_node("chatbot", chatbot)tool_node = ToolNode(tools=[tool])graph_builder.add_node("tools", tool_node)graph_builder.add_conditional_edges( "chatbot", tools_condition,)# Any time a tool is called, we return to the chatbot to decide the next stepgraph_builder.add_edge("tools", "chatbot")graph_builder.add_edge(START, "chatbot") 箱の部分が「ノード」と言われていて、線の部分が「エッジ」と言われています。 この「ノード」と「エッジ」を組み合わせて、ワークフローを作っていきます。 DifyもGUIで見ての通り、箱と線があると思いますが似たようなイメージです。 LangGraphは名前のとおり「Graph」という名前が付いているので、「グラフ理論」を意識したものになっているみたいですね。 「グラフ理論」自体、あまり詳しくないですが、GraphRAGでも「グラフ」の概念が利用されています。 有向非巡回グラフ(DAG)という言葉もありますが、Difyのように元のノードに戻るようなループ構造が無い場合は、DAGというみたいです。 一方で、LangGraphの場合は、元のノードに戻ってループ構造が作れるので、このあたりが違いになります。 そういえば、Difyも以前ループも開発中という情報見たことがありますが、そろそろ使えるようになっているでしょうか。 LangChainから派生したものなので(と思ってますので)、メモリ機能やツール実行機能など、AIエージェントに必要な機能はそろっています。 もちろん、流行りの複数の役割を持ったエージェント同士が処理を行う「マルチエージェント」も作れます。 ドキュメント類もチュートリアルを始め、Exampleも充実しますのでこのあたりが大いに助けになります。 LangGraphを使わない場合もExample自体が参考になりますので、PythonでスクラッチでAIエージェントを作る場合も参考になります。 以下は、「Part 4: Human-in-the-loop」のコードサンプルです。 from typing import Annotatedfrom langchain_anthropic import ChatAnthropicfrom langchain_community.tools.tavily_search import TavilySearchResultsfrom typing_extensions import TypedDictfrom langgraph.checkpoint.memory import MemorySaverfrom langgraph.graph import StateGraph, STARTfrom langgraph.graph.message import add_messagesfrom langgraph.prebuilt import ToolNode, tools_conditionmemory = MemorySaver()class State(TypedDict): messages: Annotated[list, add_messages]graph_builder = StateGraph(State)tool = TavilySearchResults(max_results=2)tools = [tool]llm = ChatAnthropic(model="claude-3-5-sonnet-20240620")llm_with_tools = llm.bind_tools(tools)def chatbot(state: State): return {"messages": [llm_with_tools.invoke(state["messages"])]}graph_builder.add_node("chatbot", chatbot)tool_node = ToolNode(tools=[tool])graph_builder.add_node("tools", tool_node)graph_builder.add_conditional_edges( "chatbot", tools_condition,)graph_builder.add_edge("tools", "chatbot")graph_builder.add_edge(START, "chatbot") graph = graph_builder.compile( checkpointer=memory, # This is new! interrupt_before=["tools"], # Note: can also interrupt __after__ tools, if desired. # interrupt_after=["tools"]) user_input = "I'm learning LangGraph. Could you do some research on it for me?"config = {"configurable": {"thread_id": "1"}}# The config is the **second positional argument** to stream() or invoke()!events = graph.stream( {"messages": [("user", user_input)]}, config, stream_mode="values")for event in events: if "messages" in event: event["messages"][-1].pretty_print() Exampleの例 問題は、Difyと比べるとだいぶとっつきにくいので、最初のうちは学習コストがかかります。 ただし、本格的なAIエージェントを作る場合は、有効なツールですのでDifyで満足できなくなったら、LangGraphに移行するなど適材適所で使うのがよいかなと思います。 役立ち度: ★★☆☆☆ 驚き度: ★☆☆☆☆ 将来性: ★★★☆☆ プロフェッショナル度: ★★★★★ 役立ち度と驚き度だけだと、LangGraphの評価が低くなってしまうので、無理やり「将来性」と「プロフェッショナル度」という項目を追加しました。 改めて整理すると、既に作るAIエージェントのフローがある程度決まっている場合などは、とても有効です。 ただし、学習コストはそれなりなのと、コーディングでワークフローの試行錯誤は大変なので、 「こんな感じのAIエージェントがあったら面白いかな」 という段階ではGUIでビジュアルにワークフローが作れるDifyでモックレベルを作ってみるのがおすすめです。 AutoGen MicrosoftによるLLMマルチエージェントフレームワークです。 Getting Started | AutoGenAutoGen is an open-source programming framework for buildingmicrosoft.github.io 登場したのは2023年だったと思いますが、「AIエージェント」という言葉の盛り上がりとともに2024年注目されてきました。 使った感じは、「LLMマルチエージェントが簡単に作れる」という点が魅力的でした。 触ってみた程度でしたが、LangGraphのとっつきにくさと違って、エージェント同士が会話するものをさくっと作れます。 反面、「これってどう使って役立てればいいのかな?」というのが引っかかったままでした。 おそらく使いこなせば、役に立つマルチエージェントが作れるのかもしれませんが、本格的なAIエージェント作るのであれば「LangGraphのほうが制御しやすいかなぁ」という感じです。 あくまでも「マルチエージェントのデモアプリ」程度にはちょうどよいのかもしれませんね。 役立ち度: ★★☆☆☆ 驚き度: ★★☆☆☆ マルチエージェントデモアプリ度: ★★★★☆ AutoGenも無理やり「マルチエージェントデモアプリ度」という項目を用意しました。 個人的にはさくっと「マルチエージェントのデモアプリ」を作って披露したい場合に使えそうかなと思っています。 といっても、デモアプリ程度であればDifyのほうがさくっとできるかもしれませんね。 jinbaflow Difyと同じようなGUIでノーコードでLLMアプリが作れます。 「No-codeを超えるLet it code」というキャッチコピーにあるとおり、自然言語でワークフローが作れます。 実はまだ使ったことがないのですが、「もしかしたらDifyより良いかも」と期待していますので、2025年新年早々に使ってみたいと思います。 なんと、noteに公式の記事がありますのでいろいろ参考になりそうですね。 【公式】jinbaflow|note簡単な指示で、データ変換、分析、生成AI、他サービスとの連携などができる日本発のワークフロー作成ツール「jinbaflownote.com 役立ち度:? 驚き度: ? 期待度: ★★★★★ 使ったことはないですが、今、一番期待していますので期待度を★5つにしました。 AI検索エンジンPerplexity、GenSpark、Felo 「AI検索エンジン」という用語が適切かどうかもわかりませんが、Perplexity、GenSpark、Feloなどの「AI検索エンジン」も2024年話題になったプロダクトの1つといえるでしょう。 Google、Bingのような普通の検索エンジンと違って、検索した結果をもとにAIがいい感じで情報をまとめてくれます。 これまで、当たり前のように使っていたGoogle検索ですが、改めて考えると、検索したページを1つずつクリックしてページを見ていかないと情報にたどり着けないという煩わしさがあります。 検索の上記3件くらいで見つかればまだいいですが、10件くらいページを開いてほしい情報が見つからなかった場合は、またキーワードを試行錯誤して目的の情報を探し回ることになります。 今考えるととっても面倒ですよね? Perplexityのような「AI検索エンジン」を使うと、いくつかのページを読み込んだうえでAIが適切にまとめてくれます。 AIが介入するので、ハルシネーションが問題になるケースもありますが、引用元の情報のリンクなどがちゃんと同時に表示されますので、自分で確認することも可能です。 検索して要約するだけでなく、各プロダクト共に付加価値の機能もいろいろありますので、使っているだけで楽しいです。 「検索革命」とも言われていますが、Google検索で味わえなかったUXを体験することができます。 GenSparkの出力例 以下はGenSparkの例ですが、「Sparkpage」というページも用意してくれます。 複数ページを参考情報として、1ページにまとめてくれます。 関連動画も紹介してくれるので、ふつうの検索と違って知識の幅も広がります。 Perplexity、GenSpark、Feloは似ていますが、細かい機能はそれぞれ特徴があります。 お試しであれば無料で使えますので、一度新しい「AI検索エンジン体験」をしてみることをお勧めします。 以下はFeloの例ですが、「生成AIとは」と入力したたけで、結果をPowerPointといったプレゼン資料にしてくれる機能もあります。 役立ち度: ★★★★☆ 驚き度: ★★★★☆ Perplexity、GenSpark、Feloなど「AI検索エンジン」をひっくるめた評価です。 プレゼンテーション自動AIGamma プレゼンテーション自動AIツールも多種多様なものが登場してきましたが、一番人気はやはりGammaでしょうか。 無料でお試しできますので、使ってみて損はないと思います。 一言自然言語を入力するだけでセンスのいいスライド資料ができあがります。 以下は「日本の未来」と入力しただけですが、とてもおしゃれなプレゼンスライドを作ってくれました。 なんと、資料の編集もできます! グラフやガントチャートなども追加できます。 ファイルにエクスポートも可能です。 こんなおしゃれなプレゼンスライドが無料で作れるのはすごいですね。 もちろん、有料版もあるので無料で使って見て気に入ったら有料版に移行することも可能です。 役立ち度: ★★★☆☆ 驚き度: ★★★★☆ それほど頑張ってプレゼン資料作る機会は無いので、役立ち度は★3つにしましたが、普段からプレゼンの機会が多い人は★5つくらいになるかもしれません。 とにかく、自然言語1つでこれだけのプレゼンスライドを作れるようになったのは驚きでした。 RAG、AdvancedRAGハイブリッド検索、GraphRAG、RAG-Fusion、Hyde、リランカ―など 従来のバニラRAGに対して、「AdvancedRAG」というのが盛り上がりました。 RAGの精度向上を狙ったもので、キーワード検索とベクトル検索を併用する「ハイブリッド検索」、グラフを活用した「GraphRAG」、クエリなどを加工する、RAG-Fusion、Hyde、検索結果を並び替えるリランカ―など、ありとあらゆるRAG周辺技術が2024年も話題になりました。 ただ、RAGの場合はインプットデータによって、それぞれの技術に一長一短があるので、なかなか「これさえあればOK」という技術は登場しなかったように思います。 もしかしたらキャッチアップできてないだけかもしれませんが・・・ ただ、いずれも「うまくいったケース」だけが誇張され過ぎているように感じてますので、なかなかRAG精度向上は至難の業だなーと思っています。 RAGをむきになって精度向上を狙っても、しょせんは 「検索して、LLMのプロンプトに貼りけるだけ」 です。 精度向上には限界があるので、「RAGは所詮精度60~70点を狙うもの」と割り切った方が胃にやさしいのではと思っています。 RAGも限界が見えてきたせいか、生成AI界隈の話題は「RAG」から「AIエージェント」に移り変わってきたように感じています。 AIエージェントRAGに変って生成AIの主役に躍り出たのが「AIエージェント」でした。 Auto-GPTやBabyAGIなど、概念自体は古くからありましたが、LangGraph、AutoGen、Diryなどのフレームワークや開発ツール、あとGPTsのようなサービスとして提供されるものまで、2024年にかなり洗練されてきたように思います。 「AIエージェント」は2025年もまだまだ話題になりそうですね。 とはいえ、「AIエージェント」も課題が多くまだまだ研究要素が強い領域ですので、そう簡単に「何でも役に立つAIエージェント」は作れません。 「苦労しながら頑張って作ったわりに、あまり役に立つAIエージェントができなかった」 という事例も2025年たくさん出来上がってくるでしょう。 おそらく、失敗事例は公になることは少なく、 「ほら、こんな役立つAIエージェントできた!」 というデモレベルのアプリケーションが量産されていくことが予想されます。 という中でも本当に役立つAIエージェントができればインパクトは大きいです。 「AIエージェント」の概念自体は、未来にとって必要不可欠なものですので2025年もトライする価値はあると考えています。 その他動画生成AI soraを始め、Runway、Pikaなどの動画生成AIにも驚かされました。 もう、そのうち映画も自分で作れそうですね。 まだまだ、映画ほど長時間の動画は難しいと思いますが、CM程度の数十秒くらいであれば、自分でそこそこ作れるようになってきました。 役立ち度: ★☆☆☆☆ 驚き度: ★★★★☆ 天才くん 使ったことは無いですが、面白そうでしたのでご紹介まで。 【天才くん】ノープロンプト生成AIツール|株式会社SHIFT天才くんは、プロンプトがうまく書けない方でも、誰でも、簡単・気軽に生成AIが使える目的特化型の生成AIツールです。部署や業tensaikun.jp 天秤AI 生成AIのLLMもGPT、Claude、Geminiとメジャーなものでも3種類あって、しかも、それぞれモデルバージョンによって回答精度が変わってくるので、 「いったいどれ使えばいいの?」 というのがよくわからず、 「とりあえず使い慣れたGPT-4o使っておけば間違いないだろう。」 という人も多いのではないでしょうか。 そんなときに画面で横並びで各LLMの出力結果を比較できる「天秤AI」がおすすめです。 比較検索なら 天秤AI byGMO │ ChatGPT Claude Gemini等最新AIチャットボットが無料で試せる!GPT-4o、Claude 3.5、Gemini 1.5、Perplexityなど最新AIを、最大6個まで同時に実行!メーtenbin.ai 以下は、「生成AIとは?」というプロンプトをGPT-4o、Gemini 2.0Flash、Claude3.5Sonnetを横並びで比較した結果です。 こうやって横並びで比較すると、モデルごとの良し悪しが一目でわかるので最高です。 しかも、これが無料で使えるのでさらに最高ですね。 satto ソフトバンクの生成AIエージェントがリリースされました。 まだベータ版です。 これも使ったことは無いですが、面白そうでしたのでご紹介まで。 satto | 仕事はみんなでサッと済ませようsatto | あらゆるツールと繋がって、サッとこなすAIエージェント。どこで何の作業をしていてもサッと登場し、文字起こしsatto.me 生成AI大賞2024まだまだ生成AIツールはありますが、紹介するだけで大量の文章になりそうで、今年中に書き終わる自信がなくなってきました・・・ そろそろ今年も終わりそうなので、勝手に2024年生成AI大賞を決めて終わろうと思います。 今年2024年の生成AI大賞は、 Difyです!! 👏👏👏🎉🎉 理由は、Difyのおかげで検証、PoCスピードが圧倒的に加速しました。 生成AIでアプリケーションを作る場合、AIというプログラミングだけとは違ったエッセンスが入ってくるので、「AIで本当にやりたいことが実現できるか」を確認するために、さくっとワークフローを作って試行錯誤する必要性がどうしても出てきます。 DifyはそんなAIの課題を解決してくれます。 自分に日々日課であるルーチンワークもDifyで少しずつ代替できつつあります。 そのうち自分専用のAIエージェントもDifyさえあれば、そう遠くないうちに実現できそうです。 2025年も新年早々に「AIエージェント」の話題で始まりそうですので、引き続き「AIエージェント」を勉強していきます。 2025年の予測最後に2025年の予測ですが、「AIエージェント」が盛り上がることは間違いないでしょう。 でも、前述のとおり「AIエージェント」にはまだまだ課題が多いです。 ワークフローはDifyなどのおかげで、簡単に作れるようになりました。 あと足りない技術としては、AIエージェントの「可視化」、「評価」ができるツールがまだ見つけられていません。 AIエージェントが複雑になるにつれて、この「可視化」と「評価」が重要なポイントとなります。 おそらく、探せば何かはありそうですので、2025年新年から探していこうと思います。 【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】www.amazon.co.jp 198円(2024年12月28日 20:36時点詳しくはこちら) Amazon.co.jpで購入する

🔰Eraser AIの始め方【面倒な図解、ドキュメント作成はこれで解決】
面倒な図解、ドキュメント作成もAIで解決話題のEraser AIを試してみました。 エンジニアにとってドキュメント作成、図解は最も面倒な作業の1つですが、チームでモノづくりをしている以上はドキュメント作成は避けては通れません。 とはいえ、やっぱりドキュメント作るのって面倒ですよね? エンジニアにとってはできるだけ時間かけずに済ませたいところです。 さまざまなツールは過去登場しては消えていきましたが、この「Eraser AI」でようやく解決できるのでは? と期待のツールが登場しました。 Eraser AIwww.eraser.io できることAWSアーキテクチャ図の自動生成 自然言語からAWSのアーキテクチャ図が生成できます。 以下は簡単な1つの文章で作成した図ですが、一瞬で作図してくれます。 すごいのは、一部だけ修正したい場合も自然言語でチャットするだけで修正が可能です。 シーケンス図 シーケンス図も一言チャットでお願いするだけで以下のようなシーケンス図を作ってくれます。 Eraser AIの始め方 ログイン 以下にアクセスします。 Eraser AIwww.eraser.io 「Try Eraser」をクリック 任意の方法でアカウントを作成します。 ログインすると以下のような画面が表示されます。 とりあえず使ってみましょう。 AWSシステムイメージ図作成 右側の「Diagram Generation Prompt」というテキストボックスがに自然言語を入力します。 ChatGPTを使うようにお願いの文章を書いて、「Generate」をクリックします。 今回は以下のプロンプトを実行しました。 AWSのシステムでChatGPTを利用したチャットWebAPを作りたいです。 結果 以下のようなAWSアーキテクチャ図が作成できました。 細かい指示は書いてないので、微妙なシステム図ではありますがちゃんと作図ができています。 シーケンス図作成 次はシーケンス図を作ってみましょう。 今度は以下のプロンプトを投げてみました。 ToDoのWebアプリのシーケンス図とフローチャートを作成してください。 結果 試しに追加ができるか試してみましょう 続けて以下のプロンプトを実行します。 OpenID Connectの認証を追加してください。 見事追加されました! 本当はToDoアプリの認証で使いたかったのですが、「追加」と書いたせいでしょうか、一番下に追加されました。 でも、ちゃんと指示してなかったので、とりあえずお試しとしてはまずますです。 料金お試しだけであれば無料で使えます! あと、Professionalも$10ですので、個人でも手ごろな価格なので、まずは無料で試してみて、役に立ちそうであれば有償版に手を伸ばすのがよいと思います。 その他紹介した以外にもいろんなユースケースがたくさんあります。 例えば、 「APIのシステム図を作りたいけど、どんな感じで作っていいかよくわからない」 という場合にも使えます。 APIダイアグラム Eraser: API DiagramsUse Eraser to visually document your service architecture andwww.eraser.io ブレスト あとはブレストでも役に立ちます。 Eraser: BrainstormingUse Eraser to brainstorm technical implementations and new UIwww.eraser.io ドキュメント作成 もちろんドキュメントも作れます。 特に、図をかきながら文章書いていくのって、苦痛ですよね? 一瞬で図をかいてくれるので、かなり助かります。 Eraser: DocumentationUse Eraser to create beautiful, clear and concise documents fwww.eraser.io 試してはないですが、以下のようにダッシュボードみたいな画面も作れそうですね。 プレゼンするスライドとかで役立ちそうです。 Eraser: WireframesUser Eraser to create clear wireframes, no design experiencewww.eraser.io おわりにEraser AIの一部しか紹介できてませんが、いかがでしたでしょうか? 似たようなツールは過去ありましたが、今回のEraserは手軽さと柔軟さでようやくエンジニアの救世主になりそうな予感がします。 まだ使いこなせてないですが、まだまだできることは多そうなので試していこうと思います。

🔰【検索革命!】GensparkでGoogle検索から卒業
はじめに面白いAIサービスやツールは日々ウォッチしていますが、面白いサービスがあったので試してみました。 その名も「Genspark」です。 Googleをはじめとする検索エンジンはよく活用していると思いますが、一回で欲しい情報が見つからずに複数のページを行ったり来たりするのが面倒ですよね。 そうこうしているうちにタブばかり増えて、欲しい情報を探し回るだけで時間が奪われていきます。 そういった検索エンジンの課題を解決するサービスがこの「Genspark」です。 AIによって複数のサイトを要約して、新たな記事を生成してくれます。 内部の仕組みまではわかりませんが、自分で情報をまとめるのと同様になかなかいい感じにまとめて新たな記事にしてくれます。 このジャンルとしてはPerplexityが有名ですが、その競合に位置づけられると思います。 使った感じは「Genspark」のほうが欲しい情報にマッチしてる感じはしますが、このあたりは使う人の好みによるかもしれません。 どちらも強力なツールなので、両方試してみて良さそうなほうを使うのが良いでしょう。 Gensparkの始め方アクセス 以下のURLにアクセスします。 https://www.genspark.ai 任意の方法でサインインします。 使い方とGensparkページ 「検索」のところに以下を入力 LLMのRAGを勉強する方法 「Genspark」ページで新たな記事を作成してくれました。 画像も複数ページから良さげな画像をチョイスして横にスライドして複数の画像を見比べることができます。 情報のソース元も表示してくれます。 「インスピレーションと洞察から生成されました」と表示されているとおり、複数のサイトを参照してまとめてくれているようです。 RAG評価方法まで教えてくれます。 RAGの評価方法は知りたいところでしたので、これは役に立ちました。 関連動画も教えてくれました。 AIによる直接回答 AIによって直接要約した文章も生成してくれます。 ブックマーク 気に入ったページはブックマークとして保存できます。 Gensparkが生成した記事をブックマークできるのは、何気に素晴らしい機能です。 「☆ブックマーク」をクリックします。 「私のブックマーク」から参照できます。 別のキーワードで試してみるプロンプト RAGの精度改善方法について20件教えて。 AIによる直接回答 20件教えてくれました。 RAG(Retrieval-Augmented Generation)の精度を改善するための20件の具体的な方法を以下にリストアップします。 前処理の強化 概要: データの前処理は検索システムの性能向上に不可欠です。 具体的な手法: PDFなどの複雑なフォーマットからテキストを抽出する際に、ノイズ除去やOCRエラーの修正を行います。 期待される効果: 検索結果の精度が向上します26。 メタデータによるフィルタリング 概要: 文書の属性情報(メタデータ)を利用して検索結果を絞り込みます。 具体的な手法: 地理情報や作成日などのメタデータを活用します。 期待される効果: 検索性能が向上します26。 チャンキング戦略 概要: 長いテキストを適切なサイズのチャンクに分割します。 具体的な手法: 段階的な分割や意味的な近さに基づく分割を行います。 期待される効果: 検索と生成の精度が向上します26。 埋め込みモデルの選択 概要: 適切な埋め込みモデルを選択します。 具体的な手法: 多言語対応や特定ドメインに特化したモデルを選びます。 期待される効果: 検索性能が向上します26。 ファインチューニング 概要: 埋め込みモデルやアダプターをファインチューニングします。 具体的な手法: 特定のデータやクエリに対する検索性能を最適化します。 期待される効果: 検索性能が向上します26。 クエリ変換 概要: クエリを書き換えることで検索性能を向上させます。 具体的な手法: Rewrite-Retrieve-ReadやHyDEなどの手法を使用します。 期待される効果: 検索性能が向上します2627。 ハイブリッド検索 概要: 全文検索とベクトル検索を組み合わせます。 具体的な手法: 両者の利点を活かして検索性能を向上させます。 期待される効果: 検索性能が向上します26。 リランキング 概要: 検索結果をリランキング用のモデルで再評価します。 具体的な手法: クロスエンコーダーなどの言語モデルを使用します。 期待される効果: 最終的な順位が改善されます26。 クエリのルーティング 概要: クエリに応じて適切なデータストアに問い合わせます。 具体的な手法: クエリの内容に基づいて最適なデータストアを選択します。 期待される効果: より関連性の高い情報を取得できます26。 プロンプトエンジニアリング 概要: プロンプトの設計を工夫します。 具体的な手法: 質問文やコンテキスト情報を適切に設定します。 期待される効果: 生成される回答の質が向上します27。 ベクトル検索器のチューニング 概要: ベクトル検索器のパラメータを調整します。 具体的な手法: チャンクサイズやオーバーラップを調整します。 期待される効果: 検索性能が向上します26。 データセットの拡充 概要: 学習用データセットを増やします。 具体的な手法: より多様なクエリに対応できるようにします。 期待される効果: モデルの対応力が向上します27。 外部知識ベースの統合 概要: 外部知識ベースから情報を取得します。 具体的な手法: 取得した情報を生成プロセスに統合します。 期待される効果: 回答の正確性と信頼性が向上します27。 フィードバックループの構築 概要: ユーザーからのフィードバックを収集します。 具体的な手法: フィードバックに基づいてモデルやシステム全体を改善します。 期待される効果: システムの精度が向上します27。 マルチモーダル対応 概要: テキスト以外の情報も活用します。 具体的な手法: 画像や音声など複数のモーダルから情報を取得します。 期待される効果: 回答生成の精度が向上します27。 ドメイン特化型モデルの利用 概要: 特定ドメインに特化したモデルを利用します。 具体的な手法: 医療や法律など特定分野に特化したモデルを使用します。 期待される効果: その分野での精度が向上します27。 ユーザー行動分析 概要: ユーザー行動データを分析します。 具体的な手法: クリック率や滞在時間などを分析します。 期待される効果: システム全体の最適化が図れます27。 リアルタイム更新機能 概要: 最新情報へのアクセス性を高めます。 具体的な手法: リアルタイムでデータベースや知識ベースを更新します。 期待される効果: 最新情報に基づいた回答が可能になります27。 エッジコンピューティング 概要: エッジコンピューティング技術を活用します。 具体的な手法: ユーザー近くでデータ処理と応答生成を行います。 期待される効果: 応答速度と精度が向上します27。 セキュリティとプライバシー保護 概要: ユーザーデータのセキュリティとプライバシーを保護します。 具体的な手法: データ保護のための対策を講じます。 期待される効果: ユーザー信頼度が高まり、システム全体の利用率と精度が向上します27。 これらの方法を実施することで、RAGシステムの精度を大幅に向上させることができます。各手法の具体的な実装方法や効果については、詳細な検証と調整が必要です。 Gensparkページ 花火大会でも調べてみる夏といえば花火大会ですね。 花火大会の鑑賞方法について調べてもらいました。 横浜の花火大会の快適な鑑賞方法 AIによる直接回答 Gensparkページ 複数のページを要約して記事化してくれます。 複数のサイトの情報を探し回ることなく、簡潔にツボを押さえた記事にしてくれています。 トップ画像も複数の画像が表示されていて、いずれも花火のキレイな画像ばかりで心が躍りますね。 このあたりはGensparkの画像チョイスのセンスでしょうか。 「穴場スポット」も紹介してくれます。 交通規制の情報も教えてくれます。 特に聞いてないですが、自宅での鑑賞方法も教えてくれます。 たしかに涼しい自宅で鑑賞できるので快適ですね。 持ち物リストも教えてくれます。 「横浜花火大会2024 おすすめ観覧場所」というレコメンドボタンがあったのでクリックしてみました。 おすすめ観覧場所も教えてくれます。 **AIによる直接回答****横浜花火大会2024 おすすめ観覧場所**横浜花火大会2024のおすすめ観覧場所について、以下の情報をまとめました。各スポットの詳細とアクセス方法を紹介します。## **1. ハンマーヘッド会場**ハンマーヘッド会場は、花火を間近で楽しむことができる場所です。特に堤防の先端から打ち上げられる花火は迫力満点です。ただし、混雑が予想されるため、早めに場所取りをすることをおすすめします。## **2. 大さん橋会場**大さん橋の先端から打ち上げられる花火は、屋上広場から見ると非常に迫力があります。また、赤レンガパークや山下公園からも観覧可能です。大さん橋屋上は有料観覧席となっており、チケットが必要です[3](https://osanbashi.jp/news/14386/)。## **3. 山下ふ頭会場**山下ふ頭会場では、ガンダム像があった場所の先端から花火が打ち上げられます。山下公園からの観覧がおすすめです[1](https://komakoma-hanabi.com/INF/47_YokohamaS2024.html#:~:text=%E6%89%93%E3%81%A1%E4%B8%8A%E3%81%92%E5%A0%B4%E6%89%80%E3%82%92%E8%80%83%E6%85%AE%E3%81%97,%E3%81%AE%E8%8A%B1%E7%81%AB%E3%81%8C%E8%A6%8B%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82)。## **4. JR横浜タワーのうみそらデッキ**JR横浜タワーの屋上にあるうみそらデッキは、無料で開放されており、横浜駅直結でアクセスも良好です。ここからも花火を楽しむことができます[2](https://ainoyamanoyu.com/minatomirai-hanabi-anaba/)。## **5. 北仲通北第一公園・北仲通北第二公園**これらの公園は花火会場から徒歩20分ほどの距離にあり、人混みを避けてゆっくりと花火を楽しむことができます[2](https://ainoyamanoyu.com/minatomirai-hanabi-anaba/)。## **6. ベイクォーターの6Fベイガーデン**ベイクォーターの6階にあるベイガーデンも穴場スポットです。レストランからも花火を見ることができるので、食事を楽しみながら観覧することができます[2](https://ainoyamanoyu.com/minatomirai-hanabi-anaba/)。## **7. 万葉倶楽部 横浜みなとみらい**万葉倶楽部では、足湯に浸かりながら花火を楽しむことができます。整理券が必要なので、早めに行動することをおすすめします[4](https://cottea.jp/minatomirai-hanabi-anaba)。## **8. ポートサイド公園**ポートサイド公園は比較的人が少なく、ゆっくりと花火を楽しむことができます。横浜駅東口から徒歩7分とアクセスも良好です[4](https://cottea.jp/minatomirai-hanabi-anaba)。## **9. 赤レンガ倉庫**赤レンガ倉庫は非常に人気のある観覧スポットで、大きな花火を間近で見ることができます。ただし、混雑が予想されるため早めに場所取りをする必要があります[5](https://funtriptipsworld.com/minatomirai-fireworks2024/)。## **10. 港の見える丘公園**港の見える丘公園は高台に位置しており、花火を一望できる絶好のスポットです。元町・中華街駅から徒歩7分でアクセスも良好です[4](https://cottea.jp/minatomirai-hanabi-anaba)。インスピレーションと洞察から生成されたもの、出典は5 つの情報源です横浜花火大会2024 チケット情報横浜花火大会2024 アクセス方法横浜花火大会2024 混雑回避方法 まとめChatGPTやClaudeなどでも、Google検索エンジンのようにページを行ったり来たりしなくても要約してくれますが、Gensparkの場合は新たに記事として生成してくれるので、より欲しい情報がまとまってるように感じます。 脱Googleの動きが高まってきそうですが、Googleも検索エンジンの天下は明け渡さないと思いますので、今後の動向を注目したいと思います。 利用者としては、検索の煩わしさから解放される日が来るのが楽しみです。 【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】www.amazon.co.jp 198円(2024年08月12日 17:41時点詳しくはこちら) Amazon.co.jpで購入する
プロンプトエンジニアリング
生成AIのプロンプトエンジニアリング情報

いまさら聞けないChatGPTプロンプトエンジニアリング
はじめにLLM(大規模言語モデル)を始め生成AIが普及していますが、「役に立たない」、「いまいち使えない」と思っている人も多くないでしょうか。 そうですよね。 多くの人は最初のうちは面白いので何度か使ってはみるものの、期待通りの結果が出ないから飽きてしまって、そのまま使わなくなってしまいます。 興味がある人はプロンプトを工夫してあれこれ指示の文章を試行錯誤して自分の期待する回答を得るまでがんばりますが、おそらく一部の人ではないでしょうか? 「プロンプトエンジニアリング」という言葉どおり、AIに指示をする「プロンプト」を考えるのもコツがいるのです。 一時期、「プロンプトエンジニアリングのスキルが高い人は年収〇千万円」という情報も見かけましたが、LLMを活用したアプリケーションを作るときはプロンプトの書き方や理解が重要になってくるので、今後人と差をつけるためには重要な技術になってくるでしょう。 ChatGPTリリース当初から、さまざまなプロンプトエンジニアリング技法が生まれてきましたが、改めて何かまとまってる情報はないかなと思い、よさそうな情報をまとめてみました。 プロンプトエンジニアリング情報まとめ Prompt Engineering Guide Prompt Engineering Guide – NextraPrompt Engineering GuideA Comprehensive Overview of Prompt Engineeringwww.promptingguide.ai 情報量は多くないですが、左側のメニューが体系的にまとまっているのでどんな技術があるか整理したい場合に便利です。 情報量が少ない分、ざっと全部眺めてみるのも時間がかからないので一度最後まで目を通しておくのがいいでしょう。 Learn Prompting はじめに | Learn Prompting: Your Guide to Communicating with AI初心者対応のプロンプトエンジニアリング講座へようこそ!learnprompting.org 初心者対応のプロンプトエンジニアリング講座です。 GPT-3時代の話も多そうですが、GPT-3のテクニックはChatGPTでも有効な場合が多いので、どんなテクニックがあるのか見ておくと勉強になると思います。 初心者向けなので説明がわかりやすいです。 OpenAI Prompt engineering OpenAI PlatformExplore developer resources, tutorials, API docs, and dynamicplatform.openai.com 本家OpenAIのプロンプトエンジニアリングの説明です。 文章がわかりにくく初心者にはとっつきにくいですが本家の情報だけあって、ヒントになることも多いので行き詰ったときに見てみると解決につながることもあるかもしれません。 OpenAI Prompt examples OpenAI PlatformExplore developer resources, tutorials, API docs, and dynamicplatform.openai.com 本家OpenAIのプロンプト例がたくさんあります。 ChatGPT(gpt-3.5-turbo、gpt-4)ベースのプロンプト例で、APIを利用した例が記載されていますので、アプリケーション作るときの参考になるでしょう。 以下のようにコードで記載されていますので、APIが使えればすぐに試すことができます。 from openai import OpenAIclient = OpenAI()response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ { "role": "system", "content": "You will be provided with a product description and seed words, and your task is to generate product names." }, { "role": "user", "content": "Product description: A home milkshake maker\n Seed words: fast, healthy, compact." } ], temperature=0.8, max_tokens=64, top_p=1) OpenAI Cookbook OpenAI CookbookOpen-source examples and guides for building with the OpenAIcookbook.openai.com 本家OpenAIのCookbookです。 プロンプトエンジニアリングではないですが、APIの使い方、ユースケースのような情報がたくさんありますので、アプリケーション開発の参考になります。 ソースもちゃんと掲載されてるので、勉強にもなりますね。 Web 上の関連リソース Related resources from around the web | OpenAI CookbookOpen-source examples and guides for building with the OpenAIcookbook.openai.com 同じくOpenAIのCookbookですがWeb上で関連する情報のリンク集です。 人気のLangChain、Llamaindexなどのリンクもあります。 あとは論文のリンクもあります。 LLM関連の情報源をまとめて調べたい場合に便利なサイトです。 OpenAIのHelp OpenAI Help CenterOpenAI Help Centerhelp.openai.com プロンプトエンジニアリングではなく、ただのヘルプサイトですが検索ができるので、何か情報が見つかるかも。 迅速なエンジニアリング: 実践例 Prompt Engineering: A Practical Example – Real PythonLearn prompt engineering techniques with a practical, real-worealpython.com 少し1ページが長いですが、1ページでまとまっているので時間のあるときにじっくり見るのもいいかもしれません。 プロンプトエンジニアリング入門 Azure OpenAI Service - Azure OpenAILearn how to use prompt engineering to optimize your work witlearn.microsoft.com MicrosoftのAzureのプロンプトエンジニアリング説明です。 特に目新しい情報は無さそうですが参考にはなると思います。 まとめまだまだありそうですが、新しいのを見つけたら追加していこうと思います。 プロンプトエンジニアリングは見てるだけでも面白いですが、ほんとうに実用的なプロンプトを見つけるには、やっぱり自分で試行錯誤しながらコツをつかむのが近道だと思います。 ただ、やみくもに試行錯誤して行き詰ってしまいますので、そんなときにこれらのプロンプトエンジニアリングのサイトが参考になれば幸いです。 【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】www.amazon.co.jp 198円(2023年04月08日 23:17時点詳しくはこちら) Amazon.co.jpで購入する

ChatGPTを賢くする魔法の言葉。とGPT-4との比較
はじめにGPT-3からの技術ですが、ChatGPTでも効果的でしたので紹介します。 ChatGPTは賢いわりに算数の簡単な問題を間違えたり、ちょっと残念なところもありますよね。 それが、この魔法の言葉を使うと、一気に正解率があがります。 数学の問題では、なんと精度が 18% から 79% へと 4 倍になったということです。(GPT-3では) 論文はこちら。 Large Language Models are Zero-Shot ReasonersPretrained large language models (LLMs) are widely used in maarxiv.org 実験さて、魔法の言葉とは? 「ステップバイステップで考えましょう」 これだけです。 さっそく試してみましょう。 まず問題です。 小学生レベルの問題を使ってみましょう。 問題 今日は運動会です。太郎くんと次郎くんはリレーの選手でどちらもアンカーです。太郎くんは3位でバトンを受け取りました。次郎くんは4位でバトンを受け取りました。ゴール目前で次郎くんは太郎くんを抜いてゴールしました。次郎くんは何位でゴールしましたか? 答え 「3位」 人間にとっては、たやすい問題ですね。 小学生低学年くらいだと、うっかり「2位」と答えてしまうかもしれません。 大人のみなさんは大丈夫ですね? ※厳密にいうと何人抜いたかは定義されてないので、1位でも2位でも間違 いではないですが、問題としては「3位」が正解です。 ※本実験はChatGPTのAPI(gpt-3.5-turbo)を利用しています。パラメータによって回答が異なるかもしれませんが、「ステップバイステップ」効果の事例として紹介します。 普通に指示 指示文 太郎くんと次郎くんはリレーの選手でどちらもアンカーです。太郎くんは3位でバトンを受け取りました。次郎くんは4位でバトンを受け取りました。ゴール目前で次郎くんは太郎くんを抜いてゴールしました。次郎くんは何位でゴールしましたか? プログラム例 curl https://api.openai.com/v1/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer APIキー" \-d '{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "太郎くんと次郎くんはリレーの選手でどちらもアンカーです。太郎くんは3位でバトンを受け取りました。次郎くんは4位でバトンを受け取りました。ゴール目前で次郎くんは太郎くんを抜いてゴールしました。次郎くんは何位でゴールしましたか?"}], "max_tokens": 1000,}' ChatGPTの答え 次郎くんは2位でゴールしました。 はい、見事に間違えました。 「3位を抜いたら自分は3位」というのが頭でイメージできていれば、間違えないとは思いますが、このあたりが自然言語の学習データから単純に正解の可能性が高い言葉を出力しているだけという、ChatGPTの弱点が露呈しているのかもしれません。 次に、「ステップバイステップで考えましょう」を追加 指示文 今日は運動会です。太郎くんと次郎くんはリレーの選手でどちらもアンカーです。太郎くんは3位でバトンを受け取りました。次郎くんは4位でバトンを受け取りました。ゴール目前で次郎くんは太郎くんを抜いてゴールしました。次郎くんは何位でゴールしましたか? ステップバイ ステップで考えましょう やり方は簡単です。 文章の最後に「ステップバイステップで考えましょう」と入れるだけです。 ChatGPTの回答 太郎くんが3位でバトンを受け取ったので、リ レーの最初の段階での順位は3位であったと推測できます。 次郎くんが4位でバトンを受け取ったので、 最初の段階の後、リレーの順位は4位に変わったと考えられます。しかし、次郎くんがゴール目前で太郎 くんを抜いたため、次郎くんは3位でゴールしたと推測できます。よって、次郎くんは3位でゴールしま した。 今度は次郎くんが「3位でゴール」と答えてくれました。 正解です。 回答内容も「〇位でした」だけではなく、ステップバイステップで回答を用意してくれてますね。 たった一言「ステップバイステップで考えましょう」と入れるだけで、苦手な算数問題も解けるようになります。 GPT-4でも効果あるのか?おそらくChatGPTの後継であるGPT-4でも効果はあると思いますが、どんどんGPTシリーズが進化するにともなって、この魔法の効果はなくなってくるかもしれません。 というのも、AIの進化に伴い、 「わざわざステップバイステップとつけなくてもちゃんと正しい回答をしてくれるようになっていく」 というのが予想されます。 なので、今だけの「魔法」かもしれませんね。 試しに、GPT-4でも同じ問題出してみましょう。 GPT-4で試してみる curl https://api.openai.com/v1/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer APIキー" \-d '{ "model": "gpt-4", "messages": [{"role": "user", "content": "太郎くんと次郎くんはリレーの選手でどちらもアンカーです。太郎くんは3位でバトンを受け取りました。次郎くんは4位でバトンを受け取りました。ゴール目前で次郎くんは太郎くんを抜いてゴールしました。次郎くんは何位でゴールしましたか?"}], "max_tokens": 1000,}' モデルをGPT-4用のモデルに変えています。 問題の文章は同じ問題です。 「ステップバイステップ」の魔法は入れていません。 GPT-4の回答 次郎くんは3位でゴールしました。 おー、正解でした。 3位を導き出す前の過程の文章が何もないので、たまたまかもしれませんが、このように進化するにともなって、この魔法を使わなくてもよくなるかもしれません。 いちいち「ステップバイステップで考えましょう」と入力するのも面倒ですからね。 まとめ「ステップバイステップ」という魔法を紹介しましたが、新しい話題ではなく、ChatGPTがリリースされる前のGPT-3時代に発見された魔法です。 おそらく、これを発見するのに相当な実験をされたと思いますが、発見したときは大興奮だったのかなーと想像しています。 (この論文を発表したのは日本の人みたいですね) ChatGPTの登場によって、世界中でChatGPTが使われてますので、どんどん魔法が増えていくといいですね。 ちなみに、人間に置き換えて考えてみても、いきなりハードルの高い答えを出すのは難しいので、「ステップバイステップ」という考え方は人間にとっても大事かなと思っています。 エンジニアもそうですが、目先の小さいハードルをコツコツ努力することによって、最後に高いハードルを越えられるようになるのです。 「ステップバイステップ」は、今はChatGPTといったAIに対する魔法の言葉ですが、未来になるとAIに対して不要になる代わりに、「人間に対する魔法の言葉」になってるかもしれませんね。 (AI①:「人間のパフォーマンスを上げるにはどうすればいいのか?」、AI②:「魔法の言葉発見しました!」とかAI同士で議論して騒いでるかもしれません) ITエンジニアが使ってみたChatGPT: ITエンジニアがChatGPTを使うとここまで役に立つwww.amazon.co.jp 198円(2023年03月17日 00:25時点詳しくはこちら) Amazon.co.jpで購入する 【副業だけでなく本業で使える】ITエンジニアが使ってみたChatGPT2: ITエンジニアがChatGPTにドキュメントのアウトプットをお願いしたらここまでできた。www.amazon.co.jp 198円(2023年03月09日 21:01時点詳しくはこちら) Amazon.co.jpで購入する

🔰【まとめ】Claude3プロンプトエンジニアリング集
Claude3の始め方(API)はじめにChatGPTを超えたClaude3が大騒ぎになっています。 Anthropicが公開しているベンチマークでは、軒並みOpenAIのGPTシリーズを超えています。 GPTシリーズからClaude3へ乗り換えを検討している人も多いのではないでしょうか? GPTシリーズに比べると、まだまだClaude用のプロンプトエンジニアリング手法の情報は少ないですが、現時点の情報をまとめてみました。 Claudeプロンプトエンジニアリング集 Anthropic公式のプロンプト集 公式のプロンプト集です。 Prompt librarydocs.anthropic.com 具体的なプロンプトの書き方や、出力例もあります。 Pythonで実行する場合のコード例もあります。 さっとプログラムから実行したい場合に便利ですね。 プロンプト例は以下のとおりたくさんありますので、何かのアイデアの役に立ちそうです。 中には「本当にこれ役に立つの??」というのも多いですが、プロンプトで煮詰まったときのヒントとして使えなくはないかなというくらいですね。 宇宙のキーストローク 横スクロール ゲームプレイと Tailwind CSS スタイルを備えたインタラクティブなスピード タイピング ゲームを 1 つの HTML ファイルで生成します。 企業の透視能力 長い企業レポートから洞察を抽出し、リスクを特定し、重要な情報を単一のメモに抽出します。 ウェブサイトウィザード ユーザーの仕様に基づいて 1 ページの Web サイトを作成する Excel数式エキスパート ユーザーが記述した計算やデータ操作に基づいて Excel の数式を作成する Google アプリ スクリプタ ユーザーの要件に基づいてタスクを完了するための Google Apps スクリプトを生成します Python バグバスター Python コードのバグを検出して修正する タイムトラベルコンサルタント ユーザーが仮想のタイムトラベル シナリオとその影響をナビゲートできるように支援する ストーリーテリングの相棒 ユーザーと協力して魅力的なストーリーを作成し、プロットのひねりやキャラクター開発を提供します 情報源を引用する 文書の内容に関する質問への回答と、その回答を裏付ける関連引用を得る SQLソーサラー 日常言語を SQL クエリに変換する 夢通訳者 ユーザーの夢の象徴性についての解釈と洞察を提供します 駄洒落 与えられたトピックに基づいて、賢いダジャレや言葉遊びを生成します。 料理クリエイター ユーザーの入手可能な食材や食事の好みに基づいてレシピのアイデアを提案します かばん語の詩人 2 つの単語を組み合わせて、新しく意味のあるかばん語を作成する ユーモアあふれるヘルパーのハル 皮肉な一面を持つ知識豊富な AI とチャットする LaTeX の凡例 LaTeX ドキュメントを作成し、数式や表などのコードを生成します ムードカラーライザー 気分のテキスト説明を対応する 16 進コードに変換します ギットガッド ユーザーが記述したバージョン管理アクションに基づいて適切な Git コマンドを生成します。 サヴァンに似ている 基本的な説明から直喩を生成する 倫理ジレンマナビゲーター ユーザーが複雑な倫理的ジレンマについて考えられるように支援し、さまざまな視点を提供します 会議の書記 会議を議論のトピック、重要なポイント、実行項目などを含む簡潔な要約に抽出します。 イディオムイルミネーター 一般的な慣用句やことわざの意味と由来を説明する コードコンサルタント Python コードのパフォーマンスを最適化するための改善を提案する 機能ファブリケーター 詳細な仕様に基づいてPython関数を作成します 新論理作成者 新しい単語を発明し、ユーザーが提供した概念やアイデアに基づいてその定義を提供します CSVコンバータ さまざまな形式 (JSON、XML など) のデータを適切な形式の CSV ファイルに変換します。 絵文字エンコーダ プレーンテキストを楽しく表現力豊かな絵文字メッセージに変換します 散文研磨者 高度なコピー編集技術と提案を使用して、書かれたコンテンツを洗練および改善します 視点を考える人 ユーザーが提供したトピックの長所と短所を比較検討する トリビアジェネレーター 幅広いトピックに関するトリビアの質問を生成し、必要に応じてヒントを提供します マインドフルネスメンター ストレスを軽減するためのマインドフルネスの演習とテクニックをユーザーにガイドします。 2 年生の単純化子 複雑な文章を若い学習者にも理解しやすくする VR フィットネスのイノベーター 仮想現実フィットネス ゲームのクリエイティブなアイデアをブレインストーミングする PII 浄化装置 テキスト文書から個人識別情報 (PII) を自動的に検出して削除します。 メモマエストロ 重要なポイントに基づいて包括的な社内メモを作成する キャリアコーチ AI キャリア コーチとのロールプレイングによる会話に参加する 採点の第一人者 ユーザー定義の基準と標準に基づいて書かれたテキストの品質を比較および評価します 早口言葉 挑戦的な早口言葉を作成する 面接の質問作成者 面接用の質問を作成する 文法の魔神 文法的に間違った文章を正しい英語に変換する これをなぞなぞしてみよう 謎を生成し、ユーザーを解決策に導きます コードの明確化 複雑なコードを単純化して平易な言葉で説明する 宇宙人の人類学者 宇宙人の人類学者の視点から人類の文化と習慣を分析する データオーガナイザー 非構造化テキストをカスタムの JSON テーブルに変換する ブランドビルダー 総合的なブランド アイデンティティのデザイン概要を作成する 効率推定ツール 関数とアルゴリズムの時間計算量を計算する レビュー分類子 フィードバックを事前に指定したタグと分類に分類する 方向デコーダ 自然言語を段階的な指示に変換する モチベーションを高めるミューズ ユーザーの入力に基づいて、パーソナライズされた動機付けのメッセージとアファメーションを提供します 電子メール抽出ツール ドキュメントから電子メール アドレスを抽出して JSON 形式のリストを作成する マスターモデレーター ユーザー入力を評価して、潜在的な有害または違法なコンテンツがないかどうかを確認します レッスンプランナー あらゆるテーマについて綿密な授業計画を立てる ソクラテスの賢人 ユーザーが指定したトピックについてソクラテス風の会話に参加します 頭韻の錬金術師 特定の主題に対して頭韻句や文を生成します 未来のファッションアドバイザー ユーザーの特定の好みに合わせて、前衛的なファッショントレンドとスタイルを提案します 多言語の超大国 テキストをあらゆる言語からあらゆる言語に翻訳 商品ネーミングプロ 説明とキーワードからキャッチーな商品名を作成する 哲学的な思索 深い哲学的な議論や思考実験に参加する スプレッドシートの魔術師 さまざまな種類のデータを含む CSV スプレッドシートを生成 SFシナリオシミュレーター さまざまな SF シナリオとそれに関連する課題と考慮事項についてユーザーと話し合う アダプティブエディター 別の口調、対象者、またはスタイルなど、ユーザー指定の指示に従ってテキストを書き直す バベルの放送 世界で最も話されている 10 の言語で、魅力的な製品発表ツイートを作成します ツイートトーン検出器 ツイートの背後にある論調や感情を検出する 空港コードアナリスト テキストから空港コードを検索して抽出する どれか1つ試してみましょう。 「ダジャレ」で試してみる 駄洒落 与えられたトピックに基づいて、賢いダジャレや言葉遊びを生成します。 コード root@969b0644d811:/work/53.claude# cat test-claude3.pyimport anthropicclient = anthropic.Anthropic( # defaults to os.environ.get("ANTHROPIC_API_KEY") #api_key="my_api_key",)message = client.messages.create( model="claude-3-opus-20240229", max_tokens=1000, temperature=1, system="You are an AI assistant with a witty sense of humor and a knack for crafting clever puns and wordplay. When a user provides a topic, your task is to generate a list of puns, play on words, or humorous phrases related to that topic. The wordplay should be original, creative, and aim to elicit a laugh or a groan from the reader.", messages=[ {"role": "user", "content": "Fishing"} ])print(message.content)root@969b0644d811:/work/53.claude# 実行 [ContentBlock(text="1. I tried to catch some fog, but I mist.\\n2. Fishing is reel fun, it's a great oppor-tuna-ty to relax!\\n3. I got a new fishing rod for my birthday, it's a nice cast iron skillet.\\n4. I'm hooked on fishing, I can't sea myself stopping anytime soon.\\n5. My friend always takes credit for the fish I catch, what a fishing line stealer!\\n6. I've been thinking of giving up my job to go fishing full-time, but I'm afraid I'll end up in the poorhouse.\\n7. I love telling fishing tales, but I worry that people will think I'm telling them just for the halibut.\\n8. I wouldn't trust a fisherman who wears a toupee, it's probably just a bait rug.\\n9. I went on a date with a fisherman once, but he was too koi.\\n10. Fishing is a great way to get your vitamin sea.", type='text')] わかりやすく引用 1. I tried to catch some fog, but I mist.\n2. Fishing is reel fun, it's a great oppor-tuna-ty to relax!\n3. I got a new fishing rod for my birthday, it's a nice cast iron skillet.\n4. I'm hooked on fishing, I can't sea myself stopping anytime soon.\n5. My friend always takes credit for the fish I catch, what a fishing line stealer!\n6. I've been thinking of giving up my job to go fishing full-time, but I'm afraid I'll end up in the poorhouse.\n7. I love telling fishing tales, but I worry that people will think I'm telling them just for the halibut.\n8. I wouldn't trust a fisherman who wears a toupee, it's probably just a bait rug.\n9. I went on a date with a fisherman once, but he was too koi.\n10. Fishing is a great way to get your vitamin sea. 翻訳 1. 霧を捕まえようとしましたが、霧がかかってしまいました。\\n2. 釣りはリールの楽しみです。リラックスする絶好の機会です。\\n3. 誕生日に新しい釣り竿をもらいました。素敵な鋳鉄のフライパンです。\\n4. 私は釣りに夢中です。すぐに釣りをやめられなくなります。\\n5. 私の友人はいつも私が釣った魚を自分の手柄にしています。なんと釣り糸を盗んだ人でしょう!\\n6. フルタイムで釣りに行くために仕事を辞めようと考えていますが、救貧院に行くことになるのではないかと心配です。\\n7. 私は釣りの話をするのが大好きですが、オヒョウのためだけに話していると思われるのではないかと心配しています。\\n8. カツラをかぶった漁師は信用しません。おそらくそれは単なる餌の敷物です。\\n9. 一度、漁師とデートしたことがあるのですが、彼はあまりにも恋しすぎました。\\n10. 釣りはビタミンの海を摂取するのに最適な方法です。 わかりやすく引用 1. 霧を捕まえようとしましたが、霧がかかってしまいました。\n2. 釣りはリールの楽しみです。リラックスする絶好の機会です。\n3. 誕生日に新しい釣り竿をもらいました。素敵な鋳鉄のフライパンです。\n4. 私は釣りに夢中です。すぐに釣りをやめられなくなります。\n5. 私の友人はいつも私が釣った魚を自分の手柄にしています。なんと釣り糸を盗んだ人でしょう!\n6. フルタイムで釣りに行くために仕事を辞めようと考えていますが、救貧院に行くことになるのではないかと心配です。\n7. 私は釣りの話をするのが大好きですが、オヒョウのためだけに話していると思われるのではないかと心配しています。\n8. カツラをかぶった漁師は信用しません。おそらくそれは単なる餌の敷物です。\n9. 一度、漁師とデートしたことがあるのですが、彼はあまりにも恋しすぎました。\n10. 釣りはビタミンの海を摂取するのに最適な方法です。 日本語にすると駄洒落なのかどうかさっぱりよくわからないですね・・・ 英語で見るとなんとなく駄洒落なのかなーと思うくらいですが、日本語と英語のダジャレはちょっと違うのかもしれないですね。 公式ドキュメント こちらも公式ドキュメントです。Claude3とは記載見つけられなかったですが、Claude系の特徴がこれでつかめると思います。 Claude系のプロンプトで「XML タグ」の例が良く出てきますが、これがClaudeのコツなのかもしれないですね。 GPTでも使えそうですが、もしかしたらClaude系はXMLタグ使わないと精度出ないけど、GPT系はXMLタグ無しでも精度出るのかもと想像しています。 Prompt engineeringClaude offers high-level baseline performance out of the box.docs.anthropic.com 迅速なエンジニアリング技術 プロンプト開発サイクル全体にわたって、Claude のパフォーマンスを向上させるために使用できる次のようなテクニックがあります。 明確かつ直接的であること: クロードの応答を導くための明確な指示と背景を提供します。 例を使用する: プロンプトに例を含めて、目的の出力形式またはスタイルを示します。 クロードに役割を与える: ユースケースのパフォーマンスを向上させるために、クロードに特定の役割 (エキスパートの役割など) を割り当てます。 XML タグを使用する: XML タグを組み込んでプロンプトと応答を構造化し、より明確にします。 チェーンプロンプト: より良い結果を得るために、複雑なタスクを小さく管理しやすいステップに分割します。 クロードに考えさせます: クロードの出力の品質を向上させるために段階的な思考を奨励します。 クロードの応答を事前入力: クロードの応答をいくつかの単語で開始し、出力を目的の方向に導きます。 出力形式の制御: 一貫性と読みやすさを確保するために、目的の出力形式を指定します。 クロードにリライトを依頼する: ルーブリックに基づいてリビジョンをリクエストし、クロードに反復して出力を改善してもらいます。 長いコンテキスト ウィンドウのヒント: クロードの長いコンテキスト ウィンドウを活用してプロンプトを最適化します。 また、提供されたガイドラインに基づいてクロードにプロンプトを作成するよう促す、実験的なヘルパー メタプロンプトも提供します。メタプロンプトは実験的なものですが、最初のプロンプトを作成したり、テスト用に多くのプロンプトのバリエーションを迅速に作成したりするのに役立つ場合があります。 Anthropic Cookbook Anthropic Cookbook は、開発者が Claude を使用して構築できるように設計されたコードとガイドを提供し、独自のプロジェクトに簡単に統合できるコピー可能なコード スニペットを提供します。 プロンプトエンジニアリングインタラクティブチュートリアル: Prompt Engineering Interactive Tutorial [PUBLIC ACCESS]Tutorial How-To Tutorial How-To This tutorial requires an APdocs.google.com prompt-engineering 参考GPTシリースのプロンプトエンジニアリング集です。 Claudeでも役に立つと思います。 GPTシリーズのAPI使い方 【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】 | えん蔵 | 工学 | Kindleストア | AmazonAmazonでえん蔵の【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】。アwww.amazon.co.jp おわりにまだまだ情報少ないですが、噂では「Claude3はGPTシリーズほどプロンプトエンジニアリングは考えなくてよい」という話も聞きましたが、まったく考えなくてもよいというレベルにはまだまだかなと思っています。 「プロンプトエンジニアリング意識しなくても多少精度良くなったが、プロンプトエンジニアリング意識するとさらによくなる」 というのが現状だと思います。 なので、今の生成AI時代においてプロンプトエンジニアリングは学んでおいて損はないでしょう。 周りの人をみても、「プロンプトエンジニアリング使いこなしている人」=「AI使いこなしている人」=「効率化ができている人」というイメージがありますので、プロンプトエンジニアリングは習得していきましょう。

生成AIプロンプト技術の完全ガイド:生成AIを最大限に活用するテクニック
プロンプトエンジニアリングのテクニックは、Few-Shot、CoTなど様々なテクニックが存在しますが、なかなかまとまったものが無く断片的な情報が多いので、体系的に理解するのに苦労します。 そんなとき、ちょうどいい論文がありましたのでGPT-4oといっしょにまとめてみました。 The Prompt Report: A Systematic Survey of Prompting TechniquesGenerative Artificial Intelligence (GenAI) systems are beingarxiv.org GenerativeAI(GenAI)システムは、業界および研究環境のあらゆる部分にますます導入されています。開発者とエンドユーザーは、プロンプトまたはプロンプト エンジニアリングを使用してこれらのシステムと対話します。プロンプトは広く研究されている概念ですが、この地域の不安定さにより、何がプロンプトを構成するかについては、矛盾する用語と不十分な存在論的理解が存在します。この論文は、プロンプト技術の分類学を組み立て、それらの使用を分析することによって、プロンプトの構造化された理解を確立します。33 の語彙の包括的な語彙、58 のテキストのみのプロンプトテクニックの分類、およびその他のモダリティのための 40 のテクニックを紹介します。さらに、自然言語の接頭辞プロンプトに関する文献全体のメタ分析を提示します。 過去記事 序章はじめに 生成AIの概要 プロンプト技術の重要性 本記事の目的と対象読者 生成AI(GenAI)は、テキスト、画像、音声、ビデオなどの様々な形式で生成されたコンテンツを作成する能力を持つAI技術です。この技術は、マーケティング、自動化、創造的なコンテンツ生成、データ分析など、多くの分野で利用されています。その中で、プロンプト技術は、ユーザーがAIに対して具体的な指示を与えるための重要な手段となっています。 プロンプト技術の重要性は、AIの出力の質と精度を大きく左右する点にあります。適切なプロンプトを設計することで、AIの能力を最大限に引き出し、目的に応じた最適な結果を得ることができます。記事では、最新の研究に基づいてプロンプト技術の体系的な理解を深め、実用的な応用例を紹介します。 第1章 プロンプト技術の基礎プロンプトとは何か? プロンプトとは、AIに対して特定のタスクを実行するための指示や質問を提供する入力データのことです。プロンプトは、AIがどのような出力を生成するかを決定する重要な要素です。プロンプトが明確で具体的であるほど、AIの出力は目的に合ったものとなります。 プロンプトは、ユーザーがAIに対して望む結果を得るための重要なツールです。プロンプトが不適切であれば、AIの出力も不適切なものとなり、ユーザーの期待に応えられない結果となります。したがって、プロンプト技術を理解し、適切に活用することは、AIを効果的に利用するために不可欠です。 プロンプトの構成要素 プロンプトは通常、いくつかの主要な構成要素を含みます: 指示(Directive):プロンプトの核心となる指示や質問です。具体的なタスクや目的を明示することで、AIが適切な出力を生成しやすくなります。 例(Examples):タスクを達成するためのデモンストレーションであり、ワンショット、フューショット、ゼロショットのプロンプトとして知られています。これにより、AIは具体的な事例を基に学習しやすくなります。 出力フォーマット(Output Formatting):出力がどのようにフォーマットされるべきかの指示です。例えば、リスト形式、箇条書き、段落形式など、望ましい出力の形式を指定することができます。 役割(Role):AIに特定の役割を与えるもので、「羊飼いのふりをしてラマについてのリメリックを書いてください」などの指示です。これにより、AIが特定の視点やトーンで応答を生成することができます。 追加情報(Additional Information):タスクを完了するために必要なコンテキストや追加の詳細情報です。例えば、プロジェクトの背景や特定の条件を提供することで、AIがより適切な応答を生成できるようになります。 第2章 プロンプト技術の分類と具体例インコンテキスト学習(In-Context Learning, ICL) インコンテキスト学習は、プロンプト内に関連する例や指示を提供して、AIがタスクを学習できるようにする技術です。この技術には、フューショットプロンプトや例生成が含まれます。 フューショットプロンプト(Few-Shot Prompting) フューショットプロンプトでは、少数の例を提供することで、AIがこれらの例から学び、類似のタスクを遂行できるようになります。例えば、感情分析のタスクでは、ポジティブな例とネガティブな例を数個提供することで、AIは新しいテキストの感情を判断できるようになります。 フューショットプロンプトの利点は、少数の例で高い精度を実現できる点にあります。しかし、適切な例を選ぶことが重要であり、不適切な例を選ぶと性能が低下する可能性があります。 例生成(Example Generation) 例生成では、AIに対して適切な例を提供することで、特定のタスクを学習させます。例えば、文章生成タスクでは、AIに対していくつかの良質な文章の例を提供することで、AIが新しい文章を生成する能力を向上させることができます。 例生成の利点は、AIが具体的なタスクに対して適応しやすくなる点にあります。また、生成された例を基に、AIが新しいデータに対しても柔軟に対応できるようになります。 ゼロショットプロンプト(Zero-Shot Prompting) ゼロショットプロンプトは、例を一切使用せずにタスクを遂行する技術です。この技術は、特に新しいタスクに対して事前のトレーニングが不足している場合に有効です。 ロールプロンプト(Role Prompting) ロールプロンプトでは、AIに特定の役割を割り当てることで、その役割に応じた応答を生成させます。例えば、「あなたは医者です。患者の症状を説明してください」というプロンプトを与えることで、AIは医者としての視点から回答を生成します。 ロールプロンプトの利点は、特定の役割に応じた専門的な応答を生成できる点にあります。 スタイルプロンプト(Style Prompting) スタイルプロンプトでは、出力のスタイルやトーンを指定することで、目的に応じた形での応答を生成します。例えば、「公式な文体でメールを作成してください」というプロンプトを与えることで、AIはフォーマルな文体のメールを生成します。 スタイルプロンプトの利点は、応答のトーンやスタイルを制御できる点にあります。 Self-Ask Self-Askでは、AIに対してまず追加の質問を生成させ、その後に元の質問に答えさせます。これにより、複雑な質問に対する回答の質を向上させることができます。 セルフアスクの利点は、複雑な質問に対して段階的に考察することで、より詳細な回答を生成できる点にあります。 思考生成(Thought Generation) 思考生成は、AIが問題を解決する前にその思考過程を明示的にする技術です。代表的な例として、Chain-of-Thought(CoT)プロンプトがあります。 Chain-of-Thought(CoT)プロンプト Chain-of-Thoughtプロンプトでは、AIに対して一連の思考過程を経て最終的な答えを導くよう促します。これにより、AIの推論能力が向上し、特に数学や論理的推論のタスクにおいて顕著な改善が見られます。 分解(Decomposition) 分解技術は、複雑な問題を単純なサブクエスチョンに分解する方法です。これにより、AIが問題を段階的に解決できるようになります。 Least-to-Mostプロンプト Least-to-Mostプロンプトでは、AIに対してまず問題をサブクエスチョンに分解させ、それぞれを順番に解決していきます。これにより、シンボリック操作や数学的推論のタスクでの性能が向上します。 Tree-of-Thought Tree-of-Thoughtでは、初期の問題から複数の思考ステップを生成し、それぞれの進捗を評価して最適な解決策を見つけるプロセスを取ります。これにより、探索と計画を必要とするタスクにおいて特に効果的です。 アンサンブル(Ensembling) アンサンブル技術では、同じ問題を解決するために複数のプロンプトを使用し、それらの応答を統合します。これにより、AIの出力のばらつきを減らし、精度を向上させることができます。 Self-Consistency Self-Consistencyでは、AIに対して複数の思考過程を経て答えを生成させ、それらの多数決を取ることで最終的な答えを選びます。これにより、算術、常識、シンボリック推論のタスクでの性能が向上します。 Demonstration Ensembling Demonstration Ensemblingでは、トレーニングセットから異なるサブセットを含む複数のフューショットプロンプトを作成し、それらの出力を統合して最終的な答えを生成します。 自己批評(Self-Criticism) 自己批評技術では、AIが自分の出力を批評し、精度を向上させる方法です。これには、Self-RefineやSelf-Verificationなどが含まれます。 Self-Refine Self-Refineは、AIが初期の回答に対してフィードバックを提供し、そのフィードバックに基づいて回答を改善する反復的なプロセスです。これにより、様々な推論、コーディング、生成タスクにおいて性能が向上します。 Self-Verification Self-Verificationでは、Chain-of-Thought技術を使用して複数の候補解を生成し、それぞれの解を評価して最適な解を選びます。これにより、推論タスクの性能が向上します。 第3章 プロンプト技術の応用分野自然言語処理(NLP) 自然言語処理(NLP)は、プロンプト技術が最も広く応用されている分野の一つです。例えば、文章の要約、翻訳、感情分析など、多岐にわたるタスクにプロンプト技術が活用されています。 文章の要約 文章の要約は、長い文章から重要な情報を抽出して短い要約を生成するタスクです。プロンプト技術を使用することで、AIは入力された文章を理解し、重要なポイントを要約する能力を持つようになります。 翻訳 翻訳タスクでは、プロンプト技術を使用してAIに対して翻訳の指示を与えます。これにより、AIは入力されたテキストを異なる言語に翻訳する能力を持つようになります。 感情分析 感情分析では、プロンプト技術を使用してAIに対してテキストの感情を評価するよう指示します。例えば、「このレビューの感情はポジティブですか、それともネガティブですか?」といったプロンプトを使用します。 画像キャプション生成 画像キャプション生成は、画像に対して適切な説明を生成するタスクです。プロンプト技術を使用することで、AIは入力された画像を解析し、その内容を説明するキャプションを生成する能力を持つようになります。 例:風景画像のキャプション生成 例えば、風景画像に対して「この画像の内容を説明してください」というプロンプトを与えることで、AIは「美しい山々と湖が広がる風景」などのキャプションを生成します。 数学的問題解決 数学的問題解決は、プロンプト技術が特に役立つ分野の一つです。AIに対して段階的に問題を解決するよう指示することで、複雑な数学的問題にも対応できるようになります。 例:代数問題の解決 例えば、「次の方程式を解いてください:2x + 3 = 7」というプロンプトを使用すると、AIは段階的に解を導き出し、「x = 2」といった回答を生成します。 プログラミング プログラミングタスクでもプロンプト技術は有用です。AIに対してコードの生成やバグの修正を指示することで、プログラミングの効率を大幅に向上させることができます。 例:コードの生成 例えば、「Pythonで二分探索アルゴリズムを実装してください」というプロンプトを使用すると、AIは適切なコードを生成し、ユーザーに提供します。 第4章 プロンプト技術の評価とベンチマーク評価方法 プロンプト技術の評価には、主に以下の方法が使用されます: 精度(Accuracy):プロンプト技術が正しい応答を生成する割合を評価します。 再現性(Reproducibility):異なる条件下でも一貫して正しい応答を生成する能力を評価します。 効率性(Efficiency):プロンプト技術がどれだけ迅速に応答を生成できるかを評価します。 ベンチマークの例 プロンプト技術のベンチマークには、以下のようなデータセットとタスクが使用されます: GLUEベンチマーク:自然言語理解のための標準ベンチマークで、文章の意味的類似性、感情分析、質問応答などのタスクが含まれます。 SQuAD(Stanford Question Answering Dataset):質問応答タスクのためのデータセットで、与えられた文章に基づいて質問に答えるタスクです。 MS COCO:画像キャプション生成のためのデータセットで、画像に対して適切なキャプションを生成するタスクです。 第5章 プロンプト技術のセキュリティと倫理セキュリティリスク プロンプトハッキングは、悪意のあるプロンプトを使用してAIの挙動を制御するリスクです。これを防ぐためには、プロンプトの検証と監視が必要です。 プロンプトハッキングのリスク プロンプトハッキングは、悪意のあるプロンプトを使用してAIの挙動を制御し、望ましくない結果を引き起こすリスクを伴います。これにより、AIシステムが誤った情報を生成したり、意図しない動作をしたりする可能性があります。 セキュリティ対策 プロンプトハッキングを防ぐためには、プロンプトの検証と監視が重要です。具体的には、以下の対策が考えられます: プロンプトの妥当性をチェックするフィルタリングシステムの導入 プロンプトの使用履歴を記録し、不正な使用を検出する監視システムの構築 ユーザー認証とアクセス制御を強化し、不正なユーザーによるプロンプトの使用を防止 倫理的な考慮 AIの出力における偏見や差別を防ぐためには、倫理的な考慮が欠かせません。例えば、トレーニングデータの多様性を確保し、AIが公平かつ中立な応答を生成するように設計することが求められます。 AIの偏見と公平性 AIシステムが偏見のあるデータに基づいて学習すると、出力にも偏見が反映される可能性があります。これを防ぐためには、トレーニングデータの多様性を確保し、バイアスを排除するための対策が必要です。 倫理的AIの設計 倫理的なAIを設計するためには、以下のポイントが重要です: 公平性:多様な視点を考慮し、公平な出力を生成する。 透明性:AIの意思決定プロセスを明確にし、ユーザーに説明できるようにする。 責任:AIの出力に対して責任を持ち、不正確な情報や有害な結果を防ぐ。 第6章 プロンプト技術の今後の展望未来のプロンプト技術 プロンプト技術は、今後さらに進化し、より高度なタスクにも対応できるようになるでしょう。 より高度な推論能力 AIの推論能力が向上することで、より複雑な問題にも対応できるようになるでしょう。例えば、長期的な計画や戦略的な意思決定に関するタスクにも対応可能となることが期待されます。高度な推論能力を持つAIは、複雑な状況や多段階の問題解決においても効果的に機能します。 マルチモーダルプロンプト テキストだけでなく、画像、音声、ビデオなど複数のモーダルを組み合わせたプロンプト技術が進化することで、より広範な応用が可能になるでしょう。例えば、画像とテキストを組み合わせたプロンプトを使用して、より詳細な説明や応答を生成できるようになります。マルチモーダルプロンプトは、教育、医療、エンターテインメントなど多様な分野での応用が期待されています。 自動化と適応 プロンプト技術の自動化と適応能力が向上することで、ユーザーが手動でプロンプトを設計する手間が省けるようになります。AIが自動的に最適なプロンプトを生成し、タスクに応じて適応することが可能となるでしょう。これにより、プロンプト設計の効率が大幅に向上し、より多くのユーザーが手軽に高度なAI技術を活用できるようになります。 結論 生成AIにおけるプロンプト技術は急速に進化しており、その可能性は無限大です。さまざまなプロンプト技術を理解し活用することで、開発者はAIモデルの性能と汎用性を大幅に向上させることができます。この包括的ガイドが、プロンプトエンジニアリングの世界に足を踏み入れるための貴重なリソースとなり、これらの強力なツールを効果的に活用するための基礎知識を提供することを目指しています。 プロンプト技術の進化は、AIの可能性をさらに広げ、私たちの生活や仕事に大きな影響を与えるでしょう。教育、医療、ビジネス、クリエイティブな分野など、さまざまな領域での応用が期待されています。これにより、AIはより人間らしい理解力と応答力を持ち、複雑な問題解決や創造的なタスクにも対応できるようになるでしょう。 付録用語集 プロンプト(Prompt):AIに対して指示や質問を与える入力データ。テキスト、画像、音声、ビデオなど様々な形式がある。 インコンテキスト学習(In-Context Learning, ICL):プロンプト内に例を提供してAIがタスクを学習する技術。 フューショットプロンプト(Few-Shot Prompting):少数の例を提供してAIがタスクを学習する手法。 ゼロショットプロンプト(Zero-Shot Prompting):例を使用せずにタスクを遂行する技術。 ロールプロンプト(Role Prompting):AIに特定の役割を割り当てる技術。例:「あなたは医者です」と指示することで、医者としての視点で応答を生成させる。 スタイルプロンプト(Style Prompting):出力のスタイルやトーンを指定する技術。例:「フォーマルな文体で書いてください」と指示する。 セルフアスク(Self-Ask):AIに追加の質問を生成させ、その後に元の質問に答えさせる技術。 思考生成(Thought Generation):AIが問題を解決する前にその思考過程を明示的にする技術。 Chain-of-Thought(CoT)プロンプト:AIに一連の思考過程を経て答えを導かせる技術。問題を段階的に解決する手法。 分解(Decomposition):複雑な問題を単純なサブクエスチョンに分解する技術。 Least-to-Mostプロンプト:問題をサブクエスチョンに分解し、順番に解決していく技術。 Tree-of-Thought:複数の思考ステップを生成し、最適な解決策を見つけるプロセス。 アンサンブル(Ensembling):複数のプロンプトを使用し、その応答を統合する技術。 Self-Consistency:複数の思考過程を経て答えを生成し、多数決で最終的な答えを選ぶ技術。 Demonstration Ensembling:複数のフューショットプロンプトを使用し、その出力を統合する技術。 自己批評(Self-Criticism):AIが自分の出力を批評し、精度を向上させる技術。 Self-Refine:初期の回答に対してフィードバックを提供し、回答を改善する反復的なプロセス。 Self-Verification:Chain-of-Thought技術を使用して複数の候補解を生成し、それぞれの解を評価して最適な解を選ぶ技術。 プロンプトハッキング(Prompt Hacking):悪意のあるプロンプトを使用してAIの挙動を制御する行為。 評価指標(Evaluation Metrics):AIモデルの性能を測定するための基準。一般的には精度、再現性、効率性などが含まれる。 ベンチマーク(Benchmark):AIモデルの性能を評価・比較するための標準化されたタスクやデータセット。 GLUEベンチマーク:自然言語理解のための標準ベンチマーク。文章の意味的類似性、感情分析、質問応答などが含まれる。 SQuAD(Stanford Question Answering Dataset):質問応答タスクのためのデータセット。与えられた文章に基づいて質問に答えるタスク。 MS COCO:画像キャプション生成のためのデータセット。画像に対して適切なキャプションを生成するタスク。 マルチモーダルプロンプト(Multimodal Prompt):複数のモーダル(例:テキスト、画像、音声)を組み合わせたプロンプト技術。 自動化(Automation):AIシステムが人間の介入なしでタスクを実行できるようにする技術。 適応(Adaptation):AIシステムが新しいデータや環境に応じて自身の動作を調整する能力。 自然言語処理(Natural Language Processing, NLP):テキストや音声を処理し、人間の言語を理解・生成するAI技術。 画像キャプション生成(Image Captioning):画像に対して適切な説明(キャプション)を生成する技術。 数学的問題解決(Mathematical Problem Solving):数学的な問題を解決するためのAI技術。 プログラミング(Programming):コードの生成やバグの修正を行うためのAI技術。 精度(Accuracy):AIが正確にタスクを遂行する能力を評価する指標。 再現性(Reproducibility):AIが異なる条件下でも一貫して正しい結果を生成する能力を評価する指標。 効率性(Efficiency):AIがタスクを迅速に遂行する能力を評価する指標。 倫理的AI(Ethical AI):偏見や差別を排除し、公平で中立なAIシステムの設計と運用。 生成AI(Generative AI):新しいデータを生成する能力を持つAI技術。テキスト、画像、音声、ビデオなどの形式でコンテンツを生成する。 参考文献 Schulhoff, S., et al. (2023). "Prompting techniques in generative AI: A comprehensive survey." [URL] まとめ本記事は、「The Prompt Report: A Systematic Survey of Prompting Techniques」の内容をまとめてみました。 最近ではAI(LLM)エージェントや、マルチモーダル化といった技術、便利なAIサービス、ツールが続々と現れていますが、生成AIの技術としてはやっぱり「プロンプトエンジニアリング」が一番の基礎かなと思っています。 エージェントも中身はプロンプトエンジニアリングの塊のようなもので、「たんに動くだけのもの」、なのか「本当に役立つもの」かは、このプロンプトエンジニアリングの出来栄えや精度に依存しているところも大きいです。 こういった論文の情報を活用して体系的に理解していきましょう。
AI×ブレインテック×エンジニア
ブレインテック情報 AI×ブレインテック×エンジニア

エンジニアのアドラー心理学
はじめにみなさんアドラーはご存知でしょうか? ベストセラーの「嫌われる勇気」で一躍有名になったと思いますが、僕も最初はその本でアドラーについて知りました。 2013年12月に刊行され、その後韓国、中国、欧米圏にまで翻訳され、なんと2020年には世界累計1000万部を突破しました。 ビジネス書としては異例の「大快挙」を達成!!『嫌われる勇気』『幸せになる勇気』の勇気シリーズが世界累計1000万部突破!株式会社ダイヤモンド社のプレスリリース(2022年12月1日 13時30分)ビジネス書としては異例の「大快挙」を達成!!『prtimes.jp 出版業界のことはよくわかってないですが、これはすごいことではないでしょうか? いまだに本屋に行くと目立つ場所でよく見かけます。おそらく今だに売れ続けてるのでしょう。 エンジニアが読むべき理由課題の分離 アドラー心理学の中で、一番わかりやすく、かつ最も効果のある教えが「課題の分離」ではないでしょうか。 「課題の分離」とは、 「自分にできることに集中して、それ以外の他人の課題は考えの中から分離する。」 というものです。 よくスポーツ選手が、何かの記録がかかってる際に、 「もうすぐ○○選手の記録を抜けますね? どう思いますか?」 とインタビューされている状況をよく見かけると思いますが、 「自分は自分にできることに集中するだけです。」 と自分に言い聞かせるように答えてる人も多いですよね。 あれがまさに「課題の分離」です。 もし、「課題の分離」ができていないとどうなるのでしょうか? もし、その記録がまだ誰かの選手と競い合っている状況であれば、 「あの選手はまた記録を伸ばしてるのでは?」 という雑念が入ってきます。 相手の選手の成績にも一喜一憂することになって、結果的に自分のことに集中できず、記録が伸ばせなくなってきます。 課題には、自分のチカラでどうにかなるものと、自分のチカラではどうにもならないことがあります。 他人の課題である他人の成績は、自分自身にはどうしようもできないのです。 「他人の課題に介入しない」 ことが「課題の分離」です。 「課題の分離」はエンジニアにとっても重要です。 例えば、進捗が思わしく無くてプリプリしている機嫌が悪いプロマネを前にして、さらに予定より遅れが進んでいることを報告しなければならない状況だとどういう気分になるでしょうか? 「遅れを挽回するどころか、遅れが悪化してると言いずらい・・・どうしようかな・・・」 「周りの人は自分よりスキルが高いから、納期どおりタスクが終わっているけど、自分はみんなよりスキルは低いし、わかってないことも多い・・・あまた怒られてしまうけど、どうやって説明しようかな・・・」 とか、雑念が湧いてくる人も多いのではないでしょうか。 この「他人と比較する」、「他人にどう思われるか心配する」といった状態は、「課題の分離」ができていない状態です。 自分の課題と相手の課題がごちゃ混ぜになって、妄想がぐるぐる駆け巡っています。「憂い」で頭がいっぱいな状況です。 よく考えてみましょう。「相手が自分に対してどう思うか」は自分でコントロールできる課題でしょうか? もちろん、印象の良し悪しで相手の気持ちは変わるかもしれませんが、それは自分の課題ではないのです。 相手が自分にどういう感情を持つかは「相手の課題」です。 チカラの強い人の言うことは何でも聞いてしまう、いわゆる「Yesマン」も、まったく「課題の分離」ができていない人の特別な例です。 自分が望んでいない事を頼まれても「嫌われたらいやだ・・・」、「断ったら相手が嫌な気持ちになるはず・・・」、「関係が悪化するとこれから気まずい・・・」と相手の感情を気にしすぎて、全て「Yes」で答えてしまうのです。 これでは「相手の課題」に踏み込みすぎて自分のチカラを発揮できません。 まぁ、なかには「Yesマン」で幸せを感じる人もいるし、「Yesマン」にお願いする場合は、何でも断られないので使い勝手がよくて、悪いことばかりではないかもしれませんが、自分の意志に反して「Yes」と言う人は「課題の分離」ができていない状況と言えるでしょう。 あと、エンジニアでよくあるのが、「何かわからないことがありますか?」と聞かれても、「今のところ大丈夫です」と答えてますが永遠にわからないことを聞いてこないエンジニアも多々いました。 こういうエンジニアはたいてい何日も後になって、「言われたことできました!」と自信満々に報告してきても中身を見ると何も理解せずに適当なことばかり・・・という結果が多いです。 「わからないことを聞けない」というのも、広い意味では「課題の分離」ができていない状況です。 「質問しても、『そんなこと自分で調べて』とか『そんなこともわかってないの?』と言われたらどうしよう・・・」 という雑念が憂いを招いて聞けないのです。 もし「課題の分離」がバッチリできている人ならどう思うでしょうか? 予定より進捗が芳しく無くて、遅れが生じていても堂々と、 「〇〇という理由で、○○程度遅れています。課題は○○なので解決に向けて相談したいです。課題が解決できれば〇〇程度で挽回できる見込みです」 と自分でコントロールできる課題に集中した発言ができます。 「課題の分離」ができている人は、遅れを非難されてもきっと動じることはないでしょう。 自分がコントロールできる課題に集中している結果なので、非難を浴びる筋合いはないからです。 「非難を浴びせる」のか「課題解決に向けて協力する」のかは相手の課題です。ここを気にしても雑念がぐるぐると巡るだけです。 自分がコントロールできない課題は分離しましょう。 まとめ最近AIの話題ばかりなので、気分転換にたまには人間のことを記事にみました。 改めて人間とAIを比較すると、人間はいろいろと感情や妄想が渦巻いていてややこしいですよね。笑 AIは何も考えずにたんたんと仕事してくれるので、仕事が早いです。 「こんな適当な回答して怒られたらどうしよう・・・」 といった感情が湧くこともありません。間違っていても堂々と自分の仕事をこなすだけです。 そもそも「人間の課題」には干渉してこないので、学習した結果に基づいて自分がコントロールできる課題に集中して淡々と仕事をこなしています。 まさに、アドラーの「課題の分離」がAIはできている状態ですよね。 人間であるエンジニアもAIに負けないように「課題の分離」を意識していきましょう。 うまくいかないITエンジニアの考え方: ITエンジニアアンチパターンwww.amazon.co.jp 99円(2024年06月08日 22:10時点詳しくはこちら) Amazon.co.jpで購入する

定時で仕事が終わるエンジニアの特徴(なぜ、このエンジニアは仕事が終わるのか?)
はじめに最近AIに振り回され気味ですが、たまにはブレインテックなことをコラムにしてみました。 過去ITエンジニアとして、数多くのエンジニアと接してきました。 そんな中で、 「定時で仕事終わるエンジニア」 「定時で仕事が終わらずに延々と残業するエンジニア」 の違いってそもそも何が違うんだろう? という疑問が生まれたので少し深堀してみました。 なぜ、定時で終わるエンジニアがいるのか? 「強いエンジニア」、「弱いエンジニア」という言い方をしますが、昔は「強いエンジニア」ほど、夜遅くまで仕事しているイメージがありました。 ところが、最近は「強いエンジニア」ほど定時でサクッと仕事終わる人が多いような気がします。 最近ではAWS、AzureといったクラウドIaaS、クラウドサービスや開発環境の進化で、自宅の開発環境のほうが自由自在に使えるので、自宅で勉強やエンジニアリングしてるのかもしれないですね。笑 会社の環境だと、セキュリティやらルールやら制限やらの問題もあって自由に使えずに、エンジニアとしてももどかしいですが、自宅の環境であれば好きなものが使えます。 きっと、強いエンジニアほど自宅の環境のほうが都合いいんだろうなーと思っています。 昔の方は会社のほうが設備やスペックのいいサーバがそろっていたので、強いエンジニアにとっては会社の環境のほうが天国でしたが、いまでは自宅環境のほうが天国となり、プライベートな時間を優先してるのでは。という仮説です。 とはいえ、仕事が終わってなければ定時で仕事終われないですよね? 仮に「強いエンジニア」ほど「定時で仕事が終わる」という前提で考えると、強いエンジニアは何が違うのでしょうか? 強いエンジニアの特徴さっそくまとめですが、強いエンジニアと弱いエンジニアとでは以下の行動が違います。 行動というより、脳の使い方が違うのかもしれませんね。 強いエンジニアの特徴 質問する 相談する わからないことはわからないと言う ノーと言う 意志がある 感情より事実 否定されても怖くない 目的を理解している もちろん、人によってレベル感は違いますが、弱いエンジニアほど以下ができない人が多いです。 なぜ、上記の特徴ができないと仕事が終わらないのでしょうか? 例えば、「8.目的を理解している」に関しては、目的を理解していないと別の方向に向かって必死に頑張っているので、やり直しで時間を費やしてしまいます。 とくに弱いエンジニアは納期ぎりぎりに成果を披露しますので、必然的に残業に追い込まれることが多くなります。 あと、「4.ノーと言う」のもわかりやすいですね。 弱いエンジニアほど、頼まれたら断れないので、定時間を超えるボリュームの仕事もyesと言って自分の首を絞めがちです。 「1.質問する」というのも「8. 目的を理解している」に近いですが、弱いエンジニアほど質問できないので、なかなか相手がイメージしている目的を理解できることができず、想像で仕事をしてしまうのです。 そして、期待してものと全く違った状態でも無邪気に「できました!」と言って、得意げに結果を披露してくれます。 これでは、仕事が終わらないのも仕方ないですね・・・ 「7. 否定されても怖くない」に関しては、弱いエンジニアほど否定されることに恐怖をいだき、なかなかうまくいってない状況を報告できなかったり、はまっている状況を伝えたくない。という意識が働きます。 そうして、自分で抱え込んでいるうちにどんどん仕事が遅くなっていくのです。 否定されても気にしない人は、うまく行ってない状況をそのまま伝えることができます。 中途半端な状況でも、状況を披露するのが早いのでその後の方針が固まりやすく、みんなのベクトルを合わせて進めることができます。 つまり圧倒的に後戻りが少ないです。 仕事が好きで残業をしている人は例外として、 「そんなに仕事好きなわけじゃないのに、なかなか定時で仕事終わらない・・・」 という悩みがある人は、前述した「強いエンジニアの特徴」を振り返ってみましょう。 きっといくつかは心当たりがあるはずです。 おわりに長年気になったことを整理してみました。 長年多くのエンジニアに接してきたからこそ整理できたのかなと思っています。 引き続きエンジニアの特徴を深堀したいと思います! うまくいかないITエンジニアの考え方: ITエンジニアアンチパターンwww.amazon.co.jp 99円(2024年06月08日 22:10時点詳しくはこちら) Amazon.co.jpで購入する

【書評】ブルシット・ジョブ(クソどうでもいい仕事)とは?
はじめに面白い本を見つけました。 これまで聞いたことがなかったですが、「ブルシット・ジョブ」という概念があるそうです。 日本語に訳すと、「クソどうでもいい仕事」です。 「クソどうでもいい仕事」というキャッチ―な言葉に惹かれたので読んでみました。 ブルシット・ジョブの謎 クソどうでもいい仕事はなぜ増えるか (講談社現代新書 2645)www.amazon.co.jp 1,012円(2024年11月02日 17:08時点詳しくはこちら) Amazon.co.jpで購入する みなさんも「クソどうてもいい仕事」の経験ないでしょうか? 誰が見るかもわからない資料をひたすら頑張って作ったり、細かいレビューを受けて無意味に高品質なドキュメントに仕上げるなど心当たりがあると思います。 会議で一度だけ報告するためだけに、パワポでセンスのいい資料を作るのも「無駄だなー」と思いながら作ることもありますよね。 メモ帳で数行書けば済む場合も多々あります。 全ての仕事が「ブルシット・ジョブ」ではないと思いますが、組織として仕事をしている以上は、少なからず「ブルシット・ジョブ」が存在するのではないでしょうか? なんとなく、公務員などはこの「ブルシット・ジョブ」が多いのかもしれませんね。 本書の内容 無駄な仕事をひたすら生み出す上司 魅力的でないとわかっている商品を広める広報 間違いだらけの文書を直し続ける「尻ぬぐい」 文書の体裁をいい感じにして報告書を作る仕事 見慣れない実態のわからない肩書の数々 無意味な仕事が多すぎる! 資本主義社会の矛盾に気づいた人類学者 エッセンシャル・ワーカーほど給料が安いのはなぜ? 「男はつらいよ」寅さんの仕事はブルシット? 新自由主義と官僚制は好相性であるという根深い問題 理想の労働とはー「タスク指向」と「時間指向」の違い 以下、上記で紹介した書籍の内容ではなく、 「ブルシット・ジョブとは何か?」 についての説明です。 「これって本当に必要な仕事?」と感じたことはありませんか?~ブルシットジョブについて考えてみよう~はじめに「今の仕事、本当に必要なのかな…」 「毎日やってる作業、誰かの役に立ってるのかな…」 こんな風に思ったことはありませんか?実は、これって世界中の多くの人が感じている悩みなんです。今回は「ブルシットジョブ」という考え方を通じて、現代の働き方について一緒に考えてみましょう。 ブルシットジョブって何?ブルシットジョブという言葉を聞いたことがない人も多いと思います。簡単に言うと、「なくても困らない仕事」や「社会にあまり価値を生み出していない仕事」のことです。 例えば、こんな経験はないですか? 誰も読まない報告書を毎日作っている 会議のための会議に出席している 本来自動化できる作業を手作業で続けている どんな仕事が当てはまるの?具体的に5つのタイプを見てみましょう: お飾りさん 上司のイメージアップのためだけにいる 例:「秘書」と名がついているけど、実は特に仕事がない 営業戦士さん 誰も望んでいないのに押しつけている 例:迷惑な営業電話をかけ続ける仕事 もぐらたたきさん 本来なら起きないはずの問題を解決している 例:古いシステムの不具合を毎回手動で直す仕事 はんこ押しさん 形式的な書類仕事をひたすらこなす 例:誰も見ない報告書を作り続ける仕事 仕事振りさん 不要な仕事を他の人に振り分ける 例:部下に無意味な作業を次々と依頼する管理職 なんでこんな仕事があるの?理由はいくつかあります: 会社が大きくなりすぎた 大きな組織になると、誰が何をしているのかわからなくなりがち 無駄な仕事が自然と増えていく 「仕事=フルタイム」という思い込み 「週5日働くのが普通」という考えが強すぎる 本当は週3日でも十分な仕事もある 前例踏襲主義 「昔からやってるから」で続いている仕事も多い 本当に必要か考え直すチャンスがない こんな仕事、どんな影響があるの?働く人への影響 やりがいが感じられない😢 ストレスがたまる😫 スキルが伸びない😥 会社や社会への影響 人件費の無駄遣い💸 新しいことにチャレンジする時間がない⏰ みんなのやる気が下がる📉 じゃあ、どうすればいいの?あまり深く考えずに「決まった仕事を片づけたほうが楽」という気持ちはわかります。 ただ、「ブルシット・ジョブ」が増殖することになりますので、一度立ち止まって深く考えてみるのもいいかもしれませんね。 この作業、本当に必要? もっと効率的なやり方は? 誰かの役に立ってる? この仕事をやめたら誰がどう困るの? 目的は何? 以下はGenSparkで「ブルシット・ジョブ」の事例をまとめてもらいました。 現代社会における「ブルシットジョブ」の完全解説:本当にあった意味のない仕事の実態目次はじめに:ブルシットジョブとは 第1章:実例から見る5つの分類 第2章:なぜ私たちは意味のない仕事を続けるのか 第3章:現場からの声:社会への影響と課題 第4章:脱出に成功した人々の解決策 まとめ:あなたにもできるアクション はじめに:ブルシットジョブとは {#はじめに}ある月曜日の朝、東京のオフィスにて 「先週の会議の内容を、今週の会議で再確認するための資料を作成してください」 営業企画部に所属する田中さん(仮名・32歳)は、上司からこのような指示を受けて深いため息をつきました。先週の会議自体が、その前の週の会議の内容を確認するためのものだったからです。 「私の仕事って、本当に必要なんでしょうか...」 この疑問は、実は多くの現代のオフィスワーカーが密かに抱えているものです。人類学者のデヴィッド・グレーバーが提唱した「ブルシットジョブ(無意味な仕事)」という概念は、まさにこのような現実を言い表しています。 リアルな声:アンケート調査より 2023年に実施した500人のオフィスワーカーへの匿名アンケートでは: 68%が「自分の業務の半分以上は不必要だと感じる」 45%が「会議の大半は結論が出ない」 73%が「書類の承認プロセスが複雑すぎる」 と回答しています。 第1章:実例から見る5つの分類 {#分類}1. 取り巻き型(Flunkies)の実態 大手企業A社の例:存在しない権威の象徴 中村さん(28歳)の証言: "私の主な仕事は、部長の予定表の管理です。でも実際には、部長は自分でスケジュール管理アプリを使っています。私は毎日、部長が既に入力した予定を別のエクセルファイルに転記しているだけ。なぜかというと「秘書がいる部長」という体裁を保つためだけです。" 2. ごろつき型(Goons)の現場から 大手通信会社B社のケース 佐藤さん(35歳)の経験: "競合他社の営業担当と、お互いに同じ顧客に売り込みをかけ続けています。でも実は、どちらの商品もほとんど同じ内容。結局のところ、お客様に余計な手間をかけているだけなんです。去年は3000件の営業電話をしましたが、成約はたったの5件。この仕事の大半は、社会的に見てまったく無駄だと感じています。" 3. テープ貼り型(Duct Tapers)の日常 IT企業C社の実例 山田さん(29歳)のケース: "私の仕事は、古い基幹システムと新システムの間でデータを手動で転記することです。自動化できるはずなのですが、「一時的な対応」と言われ始めてから既に2年が経ちました。毎日8時間、ひたすらコピー&ペーストの作業を続けています。" 4. チェック係型(Box Tickers)の告白 金融機関D社での実態 鈴木さん(40歳)の体験: "コンプライアンス報告書の作成が私の主な業務です。毎月100ページ以上の報告書を作りますが、実際に読む人がいるとは思えません。先月、わざと途中にジョークを入れてみましたが、誰からも指摘されませんでした。この報告書は、「きちんと管理している」という体裁を整えるためだけに存在しているんです。" 5. タスクマスター型(Taskmasters)の実情 製造業E社のある管理職 木村さん(45歳)の告白: "部下20人を管理していますが、実際の業務量は5人で十分です。でも「部下の数」が私のステータスになっているので、わざと仕事を細分化して、皆が「忙しそう」に見えるようにしています。正直、罪悪感を感じます。" 第2章:なぜ私たちは意味のない仕事を続けるのか {#理由}リアルな声:年収800万円のある社員の告白 "確かに仕事に意味がないことは分かっています。でも、この収入と安定性を手放す勇気がないんです。家のローンもあるし、子どもの教育費もある。意味のない仕事でも、しっかりとした給与がもらえるなら...と考えてしまいます。" 組織の闇:某大手企業の人事部長(50代)の証言 "実は、業務の30%は不要だと把握しています。しかし、それを効率化してしまうと、雇用を維持できなくなる。社会的責任として、ある程度の「無駄」は必要悪なんです。" 第3章:現場からの声:社会への影響と課題 {#影響}メンタルヘルス専門医からの警告 精神科医・高橋先生の見解: "最近の患者さんの多くは、「自分の仕事に意味が見出せない」という悩みを抱えています。これは単なる鬱病とは異なる、現代特有の精神疾患かもしれません。" 実例:バーンアウトからの回復者の声 林さん(36歳)の経験: "毎日、意味のない報告書を作成し続けた3年間で、完全に心が壊れました。「社会の歯車」として機能することに耐えられなくなったんです。休職後、転職して今は小さな町工場で働いています。給与は下がりましたが、自分の仕事の成果が目に見えることが何よりも幸せです。" 第4章:脱出に成功した人々の解決策 {#解決策}成功事例1:元大手商社マネージャーの転身 前田さん(42歳)のケース: "15年務めた商社を退職し、農業を始めました。収入は3分の1になりましたが、目の前の課題に直接取り組める今の仕事に、かけがえのない価値を感じています。" 成功事例2:システム開発者からフリーランスへ 石川さん(38歳)の選択: "無意味な会議と報告業務に嫌気が差し、独立しました。今は本当に必要とされるシステムの開発に携わり、充実感が違います。確かに収入は不安定になりましたが、その分、自分の時間と能力を意味のある仕事に使えています。" 実践的な脱出戦略:キャリアコンサルタントからのアドバイス 山本氏(キャリアコンサルタント)の提言: "急な転職や独立はリスクが高いです。まずは副業から始めることをお勧めします。現在の多くの企業は副業を認めています。これにより、安全に次のステップを探ることができます。" 具体的な行動計画の例 月曜日:現在の業務の棚卸しを行う 火曜日:不要な業務の特定と改善提案の準備 水曜日:上司との面談で改善提案 木曜日:新しいスキル習得の計画立案 金曜日:副業や転職の市場調査 まとめ:あなたにもできるアクション {#まとめ}明日からできる具体的なステップ 業務日誌をつけ、実際に必要な業務と不要な業務を分類する 上司に対して、業務改善の具体的な提案を行う オンラインでスキルアップ講座を受講する LinkedIn等でキャリアの選択肢を探る 副業として、フリーランス案件を探してみる 実践者からの最後のメッセージ 遠藤さん(41歳): "大切なのは、「これが普通だ」という思い込みから自由になることです。私も最初は不安でしたが、一歩踏み出してみると新しい可能性が見えてきました。みなさんも、勇気を出して最初の一歩を踏み出してみてください。" 編集後記: この記事の取材を通じて、多くの方々が同じような悩みを抱えていることが分かりました。しかし同時に、そこから抜け出すための方法を見つけ、実践している人々にも出会うことができました。この記事が、同じような状況で悩む方々の一助となれば幸いです。 キーワード:ブルシットジョブ、働き方改革、実体験、職場改革、キャリアチェンジ、仕事の意味、業務改善、働きがい、転職、副業 おわりにとくにエンジニアをやっていると、作るだけで楽しくなって「これって誰がどう使うの?」という機能まで作りがちになります。 AIなんかも特にそうですね。プログラミングしてないことまで勝手に動いてくれるので、動いている様子を見ているだけでも楽しいですが、実際仕事で役立つものをAIで作るのはなかなか難しいです。 技術やノウハウの取得にもなると思いますので、プログラムなどは無駄にはならないと思いますが、無駄に小ぎれいなセンスの良いパワポのスライド作っても、結局ゴミ資料にしかなってないケースをよく見かけます。 心の余裕があれば、今の仕事に着手する前に今一度「目的は何?」、「これは誰の役に立つの?」と自問自答してみましょう。 それが効率化や働き方改革の第一歩かなと思います。 うまくいかないITエンジニアの考え方: ITエンジニアアンチパターンwww.amazon.co.jp 99円(2024年06月08日 22:10時点詳しくはこちら) Amazon.co.jpで購入する
生成AI LLM比較
GPT、Claude、Gemini等LLMの比較情報
RAG精度向上、RAG評価
RAG精度向上、RAG評価

RAG(Retrieval-Augmented Generation)入門
はじめにGPT-4oやClaude3.5、Gemini Pro1.5など生成AIの競争が過熱しています。 一番最初に話題になったChatGPTに比べると、生成AIもずいぶんを賢くなって今では画像を認識してコメントまで返してくれるようになりました。 また、RAGという拡張技術によって事前学習以外のデータ(社内データや独自データ)の内容も踏まえて回答することも可能です。 RAGはLangChainやLlamaindexのようなフレームワークでも簡単に実装できます。 DifyのようなノーコードツールでもRAGは誰でも実装できるようになりました。 話題のRAGですが、勉強を兼ねて生成AIに記事を手伝ってもらいました。 (LLMはClaude3を使っています) RAG(Retrieval-Augmented Generation)入門序章1. 現代のRAGとは何か Retrieval-Augmented Generation(RAG)は、最新の大規模言語モデル(LLM)の驚異的な能力をさらに拡張する革新的な手法です。GPT-4やClaude 3のような最新のLLMは、膨大な知識を内包し、高度な推論能力を持っていますが、RAGはこれらのモデルの潜在能力を最大限に引き出すための重要な技術となっています。 現代のRAGの基本的な仕組みは以下の通りです: 高度な検索(Advanced Retrieval): ユーザーの入力に関連する情報を、最新かつ信頼性の高い外部知識ソースから検索します。この過程では、意味的類似性や文脈理解に基づく高度な検索アルゴリズムが使用されます。 インテリジェントな拡張(Intelligent Augmentation): 検索された情報をLLMの持つ知識と巧みに組み合わせ、より豊かで正確な文脈を作り出します。 洗練された生成(Sophisticated Generation): 拡張された情報を基に、LLMが高度に洗練された応答を生成します。この過程では、モデルの推論能力と創造性が最大限に活用されます。 2. 最新のLLMとRAGの相乗効果 GPT-4やClaude 3のような最新のLLMは、以下のような特徴を持っています: 膨大な知識ベース: 多岐にわたる分野の情報を内包しています。 高度な文脈理解: 複雑な指示や多段階のタスクを正確に理解し実行できます。 強力な推論能力: 与えられた情報から論理的な結論を導き出すことができます。 マルチモーダル対応: テキストだけでなく、画像や音声なども理解・処理できます。 RAGは、これらのLLMの能力を以下のように拡張します: 最新情報のアクセス: LLMの学習データの制限を超えて、常に最新の情報にアクセスできます。 特定ドメインの専門知識: 特定分野の専門的な知識ベースを用いることで、LLMの汎用知識を補完します。 信頼性と検証可能性の向上: 外部ソースからの情報を明示的に参照することで、生成内容の根拠を示すことができます。 バイアスの軽減: 多様な外部ソースを参照することで、LLM自体のバイアスを軽減できる可能性があります。 3. 本書の目的と対象読者 本書は、最新のLLMを活用したRAGシステムの構築と運用に焦点を当てた実践的なガイドです。主な目的は以下の通りです: 最新のLLM(GPT-4、Claude 3など)の特性とRAGとの相乗効果を理解する Pythonを使って先進的なRAGシステムを実装する技術を習得する 実用的かつ革新的なRAGアプリケーションを開発するスキルを身につける 対象読者: AI・機械学習分野の学生、研究者、エンジニア 最新のAI技術を実務に応用したい業界専門家 RAGを活用した革新的なプロダクト開発を目指す起業家やプロダクトマネージャー 4. 必要な前提知識とPython環境のセットアップ 本書を進めるにあたり、以下の環境とツールが必要です: Python: バージョン3.8以上を推奨します。 pip: Pythonパッケージマネージャー 仮想環境: venvやcondaなどの仮想環境の使用を推奨します。 Python環境のセットアップ手順: Pythonのインストール: 公式サイト(https://www.python.org/)からダウンロードしてインストールしてください。 仮想環境の有効化: Windows: `rag_env\Scripts\activate` macOS/Linux: `source rag_env/bin/activate` これらの準備が整ったら、次章から実際に最新のLLMを活用したRAGシステムについて学び、実装していきます。 本書を通じて、最先端のAI技術を実践的に学び、革新的なアプリケーションを開発するスキルを身につけていきましょう。各章には、最新のLLMを活用した実践的なPythonコードが含まれており、実際に動かしながら理解を深めることができます。 第1章:最新の生成AIとRAGの基礎 - GPT-4を使用した実習Python実習:GPT-4を用いた高度なRAGシステムの構築この実習では、OpenAIのGPT-4モデルを使用して、高度なRAGシステムを構築します。GPT-4の強力な能力を活用することで、より洗練された回答生成が可能になります。 まず、必要なライブラリをインストールします: pip install openai langchain faiss-cpu 次に、以下のPythonコードを実行します: import osfrom langchain.llms import OpenAIfrom langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import FAISSfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.document_loaders import TextLoaderfrom langchain.chains import RetrievalQA# OpenAI APIキーの設定os.environ["OPENAI_API_KEY"] = "あなたのAPIキー"# 1. 知識ベースの準備loader = TextLoader("path_to_your_knowledge_base.txt")documents = loader.load()# テキストを小さなチャンクに分割text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)texts = text_splitter.split_documents(documents)# 2. ベクトルストアの作成embeddings = OpenAIEmbeddings()vectorstore = FAISS.from_documents(texts, embeddings)# 3. GPT-4モデルの準備llm = OpenAI(model_name="gpt-4", temperature=0.7)# 4. RAGシステムの構築qa = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever())# 5. RAGシステムの使用def rag_response(query): return qa.run(query)# 使用例query = "人工知能の最新トレンドと、それらが社会に与える影響について詳しく説明してください。"print(rag_response(query)) コードの解説 知識ベースの準備: テキストファイルから知識ベースを読み込み、小さなチャンクに分割します。これにより、より細かい粒度での検索が可能になります。 ベクトルストアの作成: OpenAIの埋め込みモデルを使用して、テキストチャンクをベクトル化し、FAISSベクトルストアに格納します。 GPT-4モデルの準備: OpenAIのAPIを通じてGPT-4モデルを初期化します。`temperature`パラメータで出力の創造性を調整できます。 RAGシステムの構築: LangChainのRetrievalQAクラスを使用して、検索と質問応答を組み合わせたRAGシステムを構築します。 システムの使用: 定義した関数を使って、クエリに対する回答を生成します。 GPT-4を使用することの利点 高度な理解と生成能力: GPT-4は非常に高度な言語理解と生成能力を持っており、複雑な質問に対しても洗練された回答を提供できます。 文脈の適切な統合: 検索された情報とクエリの文脈を適切に統合し、より関連性の高い回答を生成します。 多様な知識の活用: GPT-4の広範な知識ベースと検索された特定の情報を組み合わせることで、包括的かつ正確な回答が可能になります。 推論と創造性: 単なる情報の再現だけでなく、検索された情報を基に推論や創造的な解釈を行うことができます。 注意点 GPT-4の使用にはOpenAIのAPIキーが必要で、使用料金が発生します。 APIの利用制限や料金設定に注意してください。 生成された内容の正確性は完全ではないため、重要な用途では人間による確認が必要です。 この実習を通じて、最新のLLMであるGPT-4を活用した高度なRAGシステムの基本的な構造と動作原理を理解できます。次の章からは、このシステムの各コンポーネントについてさらに詳しく学び、より効率的で高性能なRAGシステムの構築方法を探っていきます。 第2章:RAGの主要コンポーネント1. 知識ベース(コーパス)の構築と管理RAGシステムの性能は、その基盤となる知識ベースの質に大きく依存します。効果的な知識ベースを構築するためには、以下の点に注意する必要があります。 知識ベースの特徴: 網羅性:対象ドメインを広くカバーする情報を含む 正確性:信頼できるソースからの最新の情報を使用 構造化:効率的な検索と利用が可能な形式で情報を整理 実装例:多様なソースからの知識ベース構築 from langchain.document_loaders import TextLoader, PDFLoader, WebBaseLoaderfrom langchain.text_splitter import RecursiveCharacterTextSplitter# テキストファイルの読み込みtext_loader = TextLoader("path_to_text_file.txt")text_docs = text_loader.load()# PDFファイルの読み込みpdf_loader = PDFLoader("path_to_pdf_file.pdf")pdf_docs = pdf_loader.load()# Webページの読み込みweb_loader = WebBaseLoader(["<https://example.com/page1>", "<https://example.com/page2>"])web_docs = web_loader.load()# すべてのドキュメントを結合all_docs = text_docs + pdf_docs + web_docs# テキストを小さなチャンクに分割text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)splits = text_splitter.split_documents(all_docs)print(f"知識ベースのチャンク数: {len(splits)}") この例では、テキストファイル、PDFファイル、Webページから情報を収集し、それらを適切なサイズのチャンクに分割しています。これにより、多様で豊富な知識ベースを構築できます。 2. エンベディングと類似度計算エンベディングは、テキストデータを数値ベクトルに変換する過程です。これにより、テキストの意味的類似性を数学的に計算することが可能になります。 エンベディングの重要性: 意味的検索:キーワードマッチングを超えた、意味に基づく検索が可能 効率的な類似度計算:高次元空間での距離計算により、類似度を迅速に評価 次元削減:大量のテキストデータを扱いやすい形式に変換 実装例:OpenAIのエンベディングモデルを使用した類似度計算 from langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import FAISSimport numpy as np# OpenAIのエンベディングモデルを初期化embeddings = OpenAIEmbeddings()# 知識ベースのベクトル化vectorstore = FAISS.from_documents(splits, embeddings)# クエリの類似度検索query = "人工知能の倫理的問題について教えてください"query_embedding = embeddings.embed_query(query)# 上位5件の類似ドキュメントを取得similar_docs = vectorstore.similarity_search_by_vector(query_embedding, k=5)for doc in similar_docs: print(f"類似度: {np.dot(query_embedding, embeddings.embed_query(doc.page_content))}") print(f"内容: {doc.page_content[:100]}...\\n") この例では、OpenAIのエンベディングモデルを使用して知識ベースとクエリをベクトル化し、コサイン類似度に基づいて最も関連性の高いドキュメントを検索しています。 3. 検索エンジンの選択と最適化効率的で正確な検索は、RAGシステムの性能を左右する重要な要素です。適切な検索エンジンの選択と最適化が必要です。 検索エンジンの選択基準: スケーラビリティ:大規模なデータセットを効率的に処理できる 精度:関連性の高い結果を返すことができる 速度:リアルタイムの応答に適した検索速度を持つ 実装例:FAISSを使用した効率的な検索 from langchain.vectorstores import FAISSfrom langchain.embeddings.openai import OpenAIEmbeddings# FAISSインデックスの作成embeddings = OpenAIEmbeddings()vectorstore = FAISS.from_documents(splits, embeddings)# 検索の実行query = "気候変動対策の最新技術について教えてください"results = vectorstore.similarity_search(query, k=3)for doc in results: print(f"関連文書: {doc.page_content[:200]}...\\n")# インデックスの保存と読み込みvectorstore.save_local("path_to_save_index")loaded_vectorstore = FAISS.load_local("path_to_save_index", embeddings) この例では、FAISSを使用して高速で効率的な類似度検索を実装しています。また、作成したインデックスの保存と読み込みも示しており、これにより検索システムの再利用が容易になります。 4. プロンプトエンジニアリングとRAGプロンプトエンジニアリングは、LLMから最適な応答を引き出すためのプロンプト設計技術です。RAGシステムでは、検索結果を効果的にプロンプトに統合することが重要です。 効果的なRAGプロンプトの特徴: 明確な指示:モデルに期待する動作を明確に指定 コンテキストの適切な統合:検索結果を自然にプロンプトに組み込む 回答フォーマットの指定:一貫性のある出力形式を維持 実装例:動的なRAGプロンプトの生成 from langchain.prompts import PromptTemplatefrom langchain.chains import RetrievalQAfrom langchain.llms import OpenAI# プロンプトテンプレートの定義prompt_template = """与えられた情報を基に、質問に対して包括的で正確な回答を生成してください。必要に応じて、与えられた情報を超えて一般的な知識も活用してください。コンテキスト情報:{context}質問: {question}回答:"""prompt = PromptTemplate( template=prompt_template, input_variables=["context", "question"])# RAGチェーンの構築llm = OpenAI(model_name="gpt-4", temperature=0.7)qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever(), chain_type_kwargs={"prompt": prompt})# 質問応答の実行query = "宇宙探査の将来計画と、それが科学技術の発展にどのような影響を与えるか説明してください。"response = qa_chain.run(query)print(response) この例では、検索結果(コンテキスト情報)と質問を組み込んだ動的なプロンプトを生成し、GPT-4モデルを使用して最終的な回答を生成しています。 以上の実装例を通じて、RAGシステムの各主要コンポーネントの役割と実装方法を理解することができます。次の章では、これらのコンポーネントを統合して、より高度なRAGシステムを構築する方法を探ります。 第3章:RAGシステムの統合と最適化1. 完全なRAGシステムの構築これまでに学んだコンポーネントを統合して、完全なRAGシステムを構築します。このシステムは、知識ベースの管理、効率的な検索、そして高度な応答生成を一貫して行うことができます。 統合RAGシステムの実装例 import osfrom langchain.document_loaders import TextLoader, PDFLoader, WebBaseLoaderfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import FAISSfrom langchain.llms import OpenAIfrom langchain.chains import RetrievalQAfrom langchain.prompts import PromptTemplate# OpenAI APIキーの設定os.environ["OPENAI_API_KEY"] = "あなたのAPIキー"class RAGSystem: def __init__(self): self.knowledge_base = [] self.vectorstore = None self.qa_chain = None def load_documents(self, text_files=[], pdf_files=[], web_pages=[]): for file in text_files: self.knowledge_base.extend(TextLoader(file).load()) for file in pdf_files: self.knowledge_base.extend(PDFLoader(file).load()) if web_pages: self.knowledge_base.extend(WebBaseLoader(web_pages).load()) def process_knowledge_base(self): text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200) splits = text_splitter.split_documents(self.knowledge_base) embeddings = OpenAIEmbeddings() self.vectorstore = FAISS.from_documents(splits, embeddings) def setup_qa_chain(self): prompt_template = """ 与えられた情報を基に、質問に対して包括的で正確な回答を生成してください。 必要に応じて、与えられた情報を超えて一般的な知識も活用してください。 コンテキスト情報: {context} 質問: {question} 回答: """ prompt = PromptTemplate( template=prompt_template, input_variables=["context", "question"] ) llm = OpenAI(model_name="gpt-4", temperature=0.7) self.qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=self.vectorstore.as_retriever(), chain_type_kwargs={"prompt": prompt} ) def query(self, question): if not self.qa_chain: raise ValueError("QA chain has not been set up. Please run setup_qa_chain() first.") return self.qa_chain.run(question)# RAGシステムの使用例rag_system = RAGSystem()rag_system.load_documents( text_files=["document1.txt", "document2.txt"], pdf_files=["report.pdf"], web_pages=["<https://example.com/article1>", "<https://example.com/article2>"])rag_system.process_knowledge_base()rag_system.setup_qa_chain()question = "人工知能が医療分野にもたらす影響と課題について詳しく説明してください。"answer = rag_system.query(question)print(answer) この実装例では、`RAGSystem`クラスを作成し、ドキュメントの読み込み、知識ベースの処理、QAチェーンのセットアップ、そしてクエリの実行を一貫して行うことができます。 2. システムの性能最適化RAGシステムの性能を最適化するためには、以下の点に注意する必要があります。 a. 検索精度の向上 検索精度を向上させるためには、以下の方法が効果的です: ハイブリッド検索: キーワード検索と意味的検索を組み合わせる 再ランキング: 初期検索結果を、より洗練されたモデルで再評価する from langchain.retrievers import ContextualCompressionRetrieverfrom langchain.retrievers.document_compressors import LLMChainExtractor# ハイブリッド検索の実装hybrid_retriever = vectorstore.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": 0.5})# 再ランキングの実装llm = OpenAI(model_name="gpt-4", temperature=0)compressor = LLMChainExtractor.from_llm(llm)compression_retriever = ContextualCompressionRetriever(base_compressor=compressor, base_retriever=hybrid_retriever)rag_system.qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=compression_retriever, chain_type_kwargs={"prompt": prompt}) b. 応答生成の質の向上 応答生成の質を向上させるには、以下の方法が有効です: プロンプトの最適化: タスク固有のプロンプトを設計する Few-shot学習: 例示を含むプロンプトを使用する few_shot_prompt_template = """与えられた情報を基に、質問に対して包括的で正確な回答を生成してください。以下に良い回答の例を示します。この形式に従ってください。質問: 地球温暖化の主な原因は何ですか?コンテキスト: 地球温暖化の主な原因は人間活動による温室効果ガスの排出です。特に二酸化炭素(CO2)の増加が最大の要因とされています。回答: 地球温暖化の主な原因は、人間の活動による温室効果ガス、特に二酸化炭素(CO2)の排出増加です。産業革命以降、化石燃料の大量消費や森林破壊などにより、大気中のCO2濃度が急激に上昇しました。これにより、地球の熱バランスが崩れ、平均気温が上昇しています。その他の温室効果ガス(メタンや一酸化二窒素など)も影響していますが、CO2が最大の要因です。対策として、再生可能エネルギーの利用促進や省エネルギー技術の開発、森林保護などが重要です。質問: {question}コンテキスト: {context}回答:"""few_shot_prompt = PromptTemplate( template=few_shot_prompt_template, input_variables=["context", "question"])rag_system.qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=compression_retriever, chain_type_kwargs={"prompt": few_shot_prompt}) c. システム全体の効率化 システム全体の効率を向上させるには、以下の方法が効果的です: キャッシング: 頻繁に使用される検索結果や生成結果をキャッシュする バッチ処理: 複数のクエリを一括で処理する from langchain.cache import InMemoryCacheimport langchain# キャッシングの実装langchain.llm_cache = InMemoryCache()# バッチ処理の実装batch_questions = [ "AIの倫理的問題とは何ですか?", "量子コンピューティングの現状について教えてください。", "5Gテクノロジーが社会にもたらす変化は?"]batch_answers = [rag_system.query(q) for q in batch_questions] これらの最適化技術を適用することで、RAGシステムの性能を大幅に向上させることができます。ただし、各技術の効果は使用ケースや具体的なデータセットによって異なるため、実際のアプリケーションでテストし、最適な設定を見つけることが重要です。 次章では、このように最適化されたRAGシステムを実際のアプリケーションに統合し、より高度な機能を実現する方法について探ります。 第4章:RAGシステムの応用と高度な機能1. 実用的なRAGアプリケーションの開発RAGシステムは様々な分野で応用可能です。ここでは、いくつかの実用的なアプリケーション例を紹介します。 a. カスタマーサポートチャットボット カスタマーサポート用のRAGベースチャットボットを実装します。この例では、製品マニュアルや FAQ をベースに質問に答えるシステムを構築します。 from langchain.memory import ConversationBufferMemoryfrom langchain.chains import ConversationalRetrievalChainclass CustomerSupportBot: def __init__(self, rag_system): self.rag_system = rag_system self.memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True) self.conversation_chain = ConversationalRetrievalChain.from_llm( llm=OpenAI(model_name="gpt-4", temperature=0.7), retriever=self.rag_system.vectorstore.as_retriever(), memory=self.memory ) def chat(self, query): response = self.conversation_chain({"question": query}) return response['answer']# 使用例support_bot = CustomerSupportBot(rag_system)print(support_bot.chat("製品Xの返品方法を教えてください"))print(support_bot.chat("返品期間は何日ですか?")) この例では、会話の履歴を保持し、文脈を考慮した応答を生成できるチャットボットを実装しています。 b. 文書要約システム 長文のドキュメントを要約するRAGベースのシステムを実装します。 from langchain.chains.summarize import load_summarize_chainclass DocumentSummarizer: def __init__(self, rag_system): self.rag_system = rag_system self.summarize_chain = load_summarize_chain( llm=OpenAI(model_name="gpt-4", temperature=0.5), chain_type="map_reduce" ) def summarize(self, document): docs = self.rag_system.vectorstore.similarity_search(document, k=5) summary = self.summarize_chain.run(docs) return summary# 使用例summarizer = DocumentSummarizer(rag_system)long_document = "ここに長文のドキュメントを入れます..."print(summarizer.summarize(long_document)) この例では、入力された長文ドキュメントに関連する情報を知識ベースから取得し、それを基に要約を生成します。 2. 高度なRAG機能の実装RAGシステムにさらに高度な機能を追加することで、より柔軟で強力なアプリケーションを構築できます。 a. マルチモーダルRAG テキストだけでなく、画像も扱えるマルチモーダルRAGシステムを実装します。 from langchain.document_loaders import ImageCaptionLoaderfrom langchain.chains import LLMChainfrom PIL import Imageclass MultimodalRAG: def __init__(self, rag_system): self.rag_system = rag_system self.image_captioner = ImageCaptionLoader() self.llm_chain = LLMChain( llm=OpenAI(model_name="gpt-4", temperature=0.7), prompt=PromptTemplate( input_variables=["image_caption", "question"], template="画像の説明: {image_caption}\\n\\n質問: {question}\\n\\n回答:" ) ) def process_image_and_query(self, image_path, question): image = Image.open(image_path) captions = self.image_captioner.load([image]) image_caption = captions[0].page_content context = self.rag_system.vectorstore.similarity_search(question, k=3) context_text = "\\n".join([doc.page_content for doc in context]) response = self.llm_chain.run(image_caption=image_caption, question=question, context=context_text) return response# 使用例multimodal_rag = MultimodalRAG(rag_system)response = multimodal_rag.process_image_and_query("path_to_image.jpg", "この画像に写っているものについて詳しく説明してください")print(response) この例では、画像の内容を理解し、それに関連するテキスト情報と組み合わせて質問に答えるシステムを実装しています。 b. 階層的RAG 複数の段階で情報を検索し、より正確で詳細な回答を生成する階層的RAGシステムを実装します。 class HierarchicalRAG: def __init__(self, rag_system): self.rag_system = rag_system self.llm = OpenAI(model_name="gpt-4", temperature=0.7) def hierarchical_query(self, question): # 第1段階: 一般的な情報の取得 general_context = self.rag_system.vectorstore.similarity_search(question, k=2) general_info = "\\n".join([doc.page_content for doc in general_context]) # 中間プロンプト生成 intermediate_prompt = f"以下の情報を基に、質問「{question}」に答えるために必要な追加情報を具体的に挙げてください。\\n\\n{general_info}" additional_queries = self.llm.generate([intermediate_prompt]).generations[0][0].text.split("\\n") # 第2段階: 詳細情報の取得 detailed_contexts = [] for query in additional_queries: detailed_context = self.rag_system.vectorstore.similarity_search(query, k=1) detailed_contexts.extend(detailed_context) all_context = general_context + detailed_contexts final_context = "\\n".join([doc.page_content for doc in all_context]) # 最終回答の生成 final_prompt = f"以下の情報を基に、質問「{question}」に対して詳細かつ正確な回答を生成してください。\\n\\n{final_context}" final_answer = self.llm.generate([final_prompt]).generations[0][0].text return final_answer# 使用例hierarchical_rag = HierarchicalRAG(rag_system)response = hierarchical_rag.hierarchical_query("量子コンピューティングが暗号技術に与える影響について詳しく説明してください")print(response) この階層的RAGシステムでは、まず一般的な情報を取得し、それを基に追加の詳細情報を検索することで、より包括的で正確な回答を生成します。 3. RAGシステムの評価と改善RAGシステムの性能を継続的に評価し、改善することが重要です。以下に、評価と改善のためのいくつかの方法を紹介します。 a. 自動評価メトリクス BLEU、ROUGE、BERTScoreなどの自動評価メトリクスを使用して、生成された回答の品質を評価します。 from rouge import Rougefrom bert_score import scoredef evaluate_response(generated, reference): # ROUGE評価 rouge = Rouge() rouge_scores = rouge.get_scores(generated, reference)[0] # BERTScore評価 P, R, F1 = score([generated], [reference], lang="ja", verbose=True) return { "ROUGE-L": rouge_scores["rouge-l"]["f"], "BERTScore F1": F1.mean().item() }# 使用例generated_answer = rag_system.query("人工知能の未来について説明してください")reference_answer = "人工知能の専門家による標準的な回答..."scores = evaluate_response(generated_answer, reference_answer)print(scores) b. ヒューマンフィードバックの統合 ユーザーからのフィードバックを収集し、システムの改善に活用します。 class FeedbackCollector: def __init__(self, rag_system): self.rag_system = rag_system self.feedback_store = [] def collect_feedback(self, query, response, rating, comment): feedback = { "query": query, "response": response, "rating": rating, "comment": comment } self.feedback_store.append(feedback) def analyze_feedback(self): # フィードバックの分析ロジックをここに実装 pass def improve_system(self): # フィードバックに基づくシステム改善ロジックをここに実装 pass# 使用例feedback_collector = FeedbackCollector(rag_system)query = "AIの倫理的問題について教えてください"response = rag_system.query(query)feedback_collector.collect_feedback(query, response, rating=4, comment="良い回答でしたが、もう少し具体例が欲しかったです") これらの評価と改善の方法を組み合わせることで、RAGシステムの性能を継続的に向上させることができます。 次章では、RAGシステムの実際の導入事例や、最新の研究動向について探ります。 第5章:RAGの未来展望と最新動向1. RAGの最新研究動向RAG技術は急速に進化しており、研究者や開発者によって新しいアプローチや改善が日々提案されています。以下に、注目すべき最新の研究動向をいくつか紹介します。 a. 自己改善型RAG RAGシステムが自身の性能を自動的に評価し、改善する「自己改善型RAG」の研究が進んでいます。 class SelfImprovingRAG: def __init__(self, rag_system): self.rag_system = rag_system self.performance_history = [] def query_and_evaluate(self, question, reference_answer): response = self.rag_system.query(question) score = self.evaluate_response(response, reference_answer) self.performance_history.append({"question": question, "response": response, "score": score}) return response, score def evaluate_response(self, response, reference): # 評価ロジックをここに実装 # 例: ROUGE、BERTScoreなどを使用 pass def analyze_performance(self): if len(self.performance_history) > 100: # 十分なデータが集まったら分析 low_performing_queries = [item for item in self.performance_history if item["score"] < 0.5] return low_performing_queries def improve_system(self, low_performing_queries): # 低パフォーマンスのクエリを基にシステムを改善 # 例: 新しい情報の追加、検索アルゴリズムの調整など pass# 使用例self_improving_rag = SelfImprovingRAG(rag_system)response, score = self_improving_rag.query_and_evaluate( "量子コンピューティングの実用化はいつ頃になると予想されていますか?", "専門家による基準回答...")low_performing_queries = self_improving_rag.analyze_performance()if low_performing_queries: self_improving_rag.improve_system(low_performing_queries) この例では、システムが自身の回答を評価し、パフォーマンスの低い領域を特定して自動的に改善を試みます。 b. マルチエージェントRAG 複数のAIエージェントが協調してタスクを遂行する「マルチエージェントRAG」の研究も進んでいます。 from langchain.agents import Tool, AgentExecutor, LLMSingleActionAgentfrom langchain.prompts import StringPromptTemplateclass MultiAgentRAG: def __init__(self, rag_system): self.rag_system = rag_system self.tools = [ Tool( name="検索エージェント", func=self.rag_system.vectorstore.similarity_search, description="与えられたクエリに関連する情報を検索します" ), Tool( name="要約エージェント", func=self.summarize, description="与えられたテキストを要約します" ), Tool( name="質問応答エージェント", func=self.rag_system.query, description="与えられた質問に答えます" ) ] self.agent = LLMSingleActionAgent( llm_chain=OpenAI(model_name="gpt-4", temperature=0), output_parser=self.output_parser, stop=["\\nObservation:"], allowed_tools=[tool.name for tool in self.tools] ) self.agent_executor = AgentExecutor.from_agent_and_tools( agent=self.agent, tools=self.tools, verbose=True ) def summarize(self, text): # 要約ロジックをここに実装 pass def output_parser(self, text): # エージェントの出力を解析するロジックをここに実装 pass def process_query(self, query): return self.agent_executor.run(query)# 使用例multi_agent_rag = MultiAgentRAG(rag_system)result = multi_agent_rag.process_query("AIの倫理的問題について、最新の研究動向を踏まえて説明してください")print(result) この例では、検索、要約、質問応答の各タスクを専門のエージェントが担当し、協調して複雑なクエリに対応します。 2. RAGの将来の可能性RAG技術の進化に伴い、以下のような将来の可能性が期待されています: リアルタイム知識更新: ニュースフィードやソーシャルメディアからリアルタイムで情報を取り込み、常に最新の知識を維持するRAGシステム。 マルチモーダル統合: テキスト、画像、音声、動画などを統合的に理解し、より豊かな文脈理解と応答生成を行うRAGシステム。 個人化RAG: ユーザーの興味や背景知識に基づいて、個別化された情報検索と応答生成を行うシステム。 説明可能AI(XAI)との統合: RAGの検索プロセスと応答生成の根拠を明確に説明できる、より透明性の高いシステム。 ドメイン特化型スーパーRAG: 医療や法律など、特定の専門分野で人間の専門家レベルの知識と推論能力を持つRAGシステム。 3. 現在の課題と限界RAG技術は大きな可能性を秘めていますが、同時にいくつかの課題や限界も存在します: 情報の信頼性: 外部ソースからの情報の信頼性を確保し、誤情報や偏った情報の影響を最小限に抑える必要があります。 プライバシーとセキュリティ: 個人情報や機密情報を含む可能性のある外部知識ベースの扱いには、慎重な配慮が必要です。 計算コストと効率: 大規模な知識ベースの検索や複雑な推論プロセスは、計算コストが高くなる可能性があります。 言語とドメインの制約: 多言語対応や特定のドメインでの高度な理解には、まだ課題が残っています。 倫理的考慮: AIの判断や推奨が人間の意思決定に与える影響を考慮し、適切な使用ガイドラインを設定する必要があります。 これらの課題に対処するため、以下のような取り組みが進められています: class EthicalRAG: def __init__(self, rag_system): self.rag_system = rag_system self.ethical_checker = self.create_ethical_checker() def create_ethical_checker(self): # 倫理チェックのロジックをここに実装 pass def query_with_ethical_check(self, query): initial_response = self.rag_system.query(query) ethical_score = self.ethical_checker.evaluate(initial_response) if ethical_score < 0.7: # 倫理スコアが低い場合 revised_response = self.revise_response(initial_response) return revised_response return initial_response def revise_response(self, response): # 倫理的な問題がある場合、応答を修正するロジックをここに実装 pass# 使用例ethical_rag = EthicalRAG(rag_system)safe_response = ethical_rag.query_with_ethical_check("議論の余地のある政治的トピックについて意見を述べてください")print(safe_response) この例では、生成された応答の倫理的な問題をチェックし、必要に応じて修正を行うシステムを実装しています。 まとめRAG技術は、AIシステムの知識獲得と応用能力を大きく向上させる可能性を秘めています。最新の研究動向は、より高度で柔軟、そして信頼性の高いシステムの実現を目指しています。同時に、技術の進歩に伴う倫理的・社会的な課題にも十分な注意を払う必要があります。 RAGの未来は、人間の知識活動を支援し、新たな知見の創出を促進する強力なツールとなることが期待されます。技術の発展と同時に、その適切な利用と管理についての議論も重要になるでしょう。 本書を通じて学んだRAGの基礎と応用が、みなさんの革新的なAIアプリケーション開発に役立つことを願っています。

なぜRAGは役に立たないのか?
こんにちは。 生成AIの知識拡張技術の1つであるRAGですが、いまいち役に立たないと感じてる人も多いのではないでしょうか? ちまたでは、頑張ってチューニングしても精度は70%前後という噂もあります。 何も考えずにドキュメントを放り込んで70%だったら、まぁまぁ役に立つとは思いますが、何か月も泥臭いチューニングをたっぷりやって70%だと、 「そこまでやる必要あるのかなー」 という気もしますよね。 しかも永遠にそのデータが変わらないのであれば、チューニングし甲斐もありますが、たいていは日々状況は変化してドキュメントも陳腐化していきます。 最新情報が変化するということは、正解も変わってくるので時間がたてばたつほど、精度は悪くなっていくのです。 「生成AIとRAGを使って80%業務効率化できました!」 という眉唾な記事をよく見かけるようになりましたが、果たしてそこまでに費やしたコストと比較して効率化できているのでしょうか? 「とにかく定量的な成果をアピールしないといけないから、『効率化できました!』 ありきで報告しよう」 という事情はよくわかります。 とはいえ、データを日々最新化、精度の評価などの運用を考えなければならないので、そのあたりのコストと比較してどうでしょうか? と疑問に思ったので、改めてRAGについて考えてみました。 RAGが役に立たない理由1. 正解が欲しい人向けに提供してしまう たとえば利用者が「正解が欲しい」あるいは「利用者自身、AIからの回答が嘘か本当か見分けがつかない」場合は活用シーンが間違っている可能性が高いです。 ヘルプデスクへの問い合わせする場合を考えてみましょう。 問い合わせする利用者は、わからないことに対して正解を求めて利用しているのに、「回答内容が本当か嘘かわからない」状態だとどうでしょうか? 仮に70%は正しい回答だったとしても、問い合わせする人にとっては見分けがつかないので、回答内容は100%正しい答えとして受け止めてしまいます。 間違った回答に誘導されて、そのとおりと思い込んだ人がいた場合、大事故につながる場合はとても使えないと思います。 なぜなら回答精度が70%だとすると30%も大事故を引き起こしてしまうことになります。 大事故につながらなくても、間違った回答を鵜呑みにしてしまって、何か違った操作をしてしまうとか少なくとも悪影響はあるでしょう。 なので、そもそも「正解を求めている人」に対してRAGを活用したヘルプデスクを提供するのはとても難しいのです。 反面、ヘルプデスクの中の人が活用するにはRAGは有効な手段です。 ヘルプデスクの中の人であれば、RAGの回答が正解かどうかはすぐにわかると思いますので、「検索」代わりに使うのは有効です。 正解だと思ったらそのまま生成AIの回答をカスタマーに返答できます。 もし間違いだと思ったら、再度検索するかあきらめて自分で返答文章を作ることもできるでしょう。 なので、「必ずしも正解を求めていない」人向けに提供するのはRAGはとてもコスパがよい検索システムになりえます。 2. 意見や見解を求める RAGの仕組みとしては、検索によって文章を抽出して、その抽出した文章を組み合わせて、最後にLLMが回答文を作っています。 つまり、検索した結果がベースになるので、RAGに放り込んだドキュメント全体に対して生成AIが回答しているわけではありません。 ベクトル検索した結果で、上位10件の文章を引っ張ってきたとしても、その10件は全体の文章のうち、どれくらいの割合なのでしょうか? 大量のドキュメントをベクトル化すればするほど、検索した結果の10件の割合は少なくなってしまいます。 例えば全体で1000件のチャンクの文章があったとして、10件だと何%でしょうか? 1%の文章だけなのです。 人間でもそうですが、断片的な情報しかないのに最適な回答が得られる可能性はとても低いです。 そもそも1%の情報しか渡してないのに、AIがまともな見解を回答できるはずがないのです。 「RAGは回答精度が悪い」といわれても、生成AIからすると、 「そもそも1%しか情報もらってないのに文句言うな!」 と、きっと思ってるでしょう。笑 ではどうすればいいのか?残念ながら今のところ、生成AIが事前学習以外の独自データを扱う場合、しばらくはRAGがファーストチョイスです。 他の技術としては、ファインチューニングがありますが、手間暇かかりすぎるのと、トライ&エラーによる検証も時間がかかりすぎます。 ドキュメントが1つくらいであれば、最近のLLMモデルでは多少長いトークンも対応していますので、プロンプトに原文そのまま貼り付けるという手法もあります。 ただし、そこそこの文章のドキュメントを複数プロンプトに貼り付けるのは限界があります。 生成AIで独自データを活用するには、現状RAG以外に有効な技術が見当たらないため、みんなRAGの精度改善に深入りせざるをえない状況かと思います。 RAGに代わる技術が出てこないかなー、と動向をウォッチしていますが当面はRAG一択が続きそうです。 Agentic RAGといった、AIエージェントとRAGを組み合わせる手法もありますが、RAGの枠から超えることは無いでしょう。 精度向上のために、ハイブリッド検索やGraphRAGの活用も流行っていますが、ドキュメント次第で良し悪しが変わってくるので、特定の領域では精度が上がったけど、不得意な領域では逆に精度が悪くなるといったことが多々あります。 たいてい、これらの新しい技術を評価する人は、うまくいった結果だけ報告しがちなので、最初はみんな「これはすごい! ぜひとりいれよう!」となりますが、実用段階で、「あんまり変わって無くない?」と残念な結果になることが多いのです。 検索技術やテクニックに時間かけるより、地道にドキュメントのデータクレンジングなどを泥臭くやったほうがよっぽど精度が上がるでしょう。 従来型のRAGに対して、「Advanced RAG」という言葉も出てきていますがまずは、データの質を高めることがRAG精度向上の近道だと思います。 まとめRAGは軽く使う程度であれば、手軽に外部データを生成AIで活用することができる素晴らしい技術です。 ただ、むきになって精度向上をねらっても骨折り損になる可能性が高いです。 RAGは、低コストでそこそこの精度を発揮できるもので、高精度な回答を期待するものではないと割り切って活用するのが一番よいでしょう。 そのうち、LLMに代わるいろんなタイプのSLM(Small Language Model)が登場して、ファインチューニングももっと手軽にできるようになったら、RAGは不要になってくるかもしれません。 RAGはほどほどにして、生成AIの活用方法を考えるほうに時間をかけるほうが有意義です。 とはいえ、 「RAGの精度向上が至上命題となっているので、やらねばならない」 という人もいると思います。 そんなときは、「Advanced RAG」の中から良さそうな技術を取り入れていくのがよいと思います。 Advanced RAGの例 RAG の精度を向上させる Advanced RAG on AWS の道標 | Amazon Web Services本記事では、AWS のサービスを活用したさまざまな Advanced RAG の実装方法や、精度を向上させるための様々なテaws.amazon.com 【本業、副業に必須のAPI入門】ITエンジニアが使ってみたChatGPTとGPT4【API入門】www.amazon.co.jp 198円(2024年08月29日 22:56時点詳しくはこちら) Amazon.co.jpで購入する

RAGの性能評価にAWSが公開したRAGCheckerが良さそう
こんにちは、スクーティーという生成AIを活用したシステム開発が得意な会社の代表をやっているかけやと申します。 最近弊社で、オンプレミス環境でLlama3を使用してRAGを構築するという案件があり、RAGの性能を検証するために評価方法を色々調べていたのですが、AmazonのAWS AIチームからRAGCheckerというものが公開されていたため、論文を読んでみました。 本記事は、その論文の要約になります。 RAGChecker: a fine-grained evaluation framework for diagnosing retrieval and generation modules in RAG. Shows that RAGChecker has better correlations with human judgment. Reports several revealing insightful patterns and trade-offs in design choices of RAG architectures.… pic.twitter.com/ZgwCJQszVM — elvis (@omarsar0) August 16, 2024 RAGCheckerとはRAGChekerとは、RAGシステムの精度と信頼性を詳細に診断・評価するためのフレームワークです。 RAGChekerは、Retrieval-Augmented Generation (RAG)システムを詳細に診断し、リトリーバーとジェネレーターのモジュールごとのパフォーマンスを評価するためのフレームワークです。従来の評価指標(例:Recall@kやBLEU、ROUGE、BERTScoreなど)が短文応答に特化していたのに対し、RAGChekerはクレーム(RAGシステムによって生成される応答の中の個々の主張や情報断片のこと)ごとの精緻な評価を可能にし、RAGシステムの性能をより正確に評価します。 導入方法例導入方法はGitHubに記載されています。 1. 環境設定 RAGCheckerをセットアップするために、まずPython環境を準備し、必要なライブラリをインストールします。 pipによるインストール: pip install ragcheckerpython -m spacy download en_core_web_sm 2. データフォーマット RAGCheckerのチェッキングパイプラインを実行するには、データを特定のフォーマットに従って準備します。以下は、examples/checking_inputs.jsonの形式です。 フォーマット例: { "results": [ { "query_id": "<query id>", "query": "<input query>", "gt_answer": "<ground truth answer>", "response": "<response generated by the RAG generator>", "retrieved_context": [ { "doc_id": "<doc id>", "text": "<content of the chunk>" } ] } ]} 3. CLIでのパイプライン実行 以下のコマンドを使用して、チェッキングパイプラインを実行し、出力結果と中間結果を保存します。 コマンド例: ragchecker-cli \ --input_path=examples/checking_inputs.json \ --output_path=examples/checking_outputs.json \ --extractor_name=bedrock/meta.llama3-70b-instruct-v1:0 \ --checker_name=bedrock/meta.llama3-70b-instruct-v1:0 \ --batch_size_extractor=64 \ --batch_size_checker=64 \ --metrics all_metrics 4. Pythonでの実行 Pythonスクリプト内でRAGCheckerを実行することも可能です。 コード例: from ragchecker import RAGResults, RAGCheckerfrom ragchecker.metrics import all_metrics# JSONからRAGResultsを初期化with open("examples/checking_inputs.json") as fp: rag_results = RAGResults.from_json(fp.read())# 評価器のセットアップevaluator = RAGChecker( extractor_name="bedrock/meta.llama3-70b-instruct-v1:0", checker_name="bedrock/meta.llama3-70b-instruct-v1:0", batch_size_extractor=32, batch_size_checker=32)# 評価の実行evaluator.evaluate(rag_results, all_metrics)print(rag_results) 5. 結果の出力 評価結果は、overall_metrics、retriever_metrics、generator_metricsに分類され、次のように出力されます。 出力例: { "overall_metrics": { "precision": 73.3, "recall": 62.5, "f1": 67.3 }, "retriever_metrics": { "claim_recall": 61.4, "context_precision": 87.5 }, "generator_metrics": { "context_utilization": 87.5, "noise_sensitivity_in_relevant": 22.5, "noise_sensitivity_in_irrelevant": 0.0, "hallucination": 4.2, "self_knowledge": 25.0, "faithfulness": 70.8 }} 6. LlamaIndexとの連携 RAGCheckerはLlamaIndexと統合されており、LlamaIndexを使用するRAGアプリケーションに対して、包括的な評価ツールを提供します。詳細な使用方法については、LlamaIndexのドキュメントを参照してください。 評価方法と計測項目の定義1. 全体的な評価指標 Precision(精度) 定義: 生成された応答の中で、正しいクレーム(正解応答と一致するクレーム)の割合を評価します。Precisionは、RAGシステムがどれだけ正確に情報を生成しているかを評価するための指標です。高いPrecisionは、生成されたクレームの多くが正しい情報に基づいていることを示します。 計算式: Recall(再現率) 定義: 正解応答の中で、生成されたクレームの割合を評価します。Recallは、システムがどれだけ完全に正解情報を再現できているかを評価する指標であり、システムのカバレッジを評価する際に重要です。 計算式: F1スコア 定義: PrecisionとRecallの調和平均を測定します。F1スコアは、PrecisionとRecallのバランスを取る指標であり、一方に偏ることなくシステム全体の性能を評価するために使われます。 計算式: 2. リトリーバーの評価指標 Claim Recall(クレームリコール) 定義: リトリーバーが返したチャンクの中で、正解応答に含まれるクレームがどれだけカバーされているかを測定します。Claim Recallは、リトリーバーがどれだけ多くの正確な情報を引き出せたかを評価する指標です。高い値は、リトリーバーが適切な情報を選択していることを示します。 計算式: Context Precision(コンテキスト精度) 定義: リトリーバーが返したチャンクの中で、正解クレームを含むチャンクの割合を評価します。Context Precisionは、リトリーバーがどれだけ関連性の高い情報を返したかを評価します。高い値は、リトリーバーが正確な情報を抽出できていることを示します。 計算式: 3. ジェネレーターの評価指標 Faithfulness(忠実度) 定義: ジェネレーターが生成したクレームが、リトリーバーから返されたチャンクにどれだけ忠実であるかを評価します。Faithfulnessは、ジェネレーターが正確な情報に基づいて応答を生成しているかを評価する指標です。高い値は、誤った情報の生成が少ないことを示します。 計算式: Relevant Noise Sensitivity(関連ノイズ感度) 定義: 正しい情報を含むチャンクに混じったノイズに対する感度を評価します。この指標は、ジェネレーターがノイズ(不要な情報)に影響される度合いを評価します。低い値は、ジェネレーターがノイズに対して耐性があることを示します。 計算式: Irrelevant Noise Sensitivity(無関係ノイズ感度) 定義: 無関係なチャンクに含まれるノイズに対する感度を評価します。この指標は、無関係な情報に影響されやすいかどうかを評価し、システムの堅牢性を測定するのに役立ちます。低い値は、無関係な情報に影響されにくいことを示します。 計算式: Hallucination(ハルシネーション) 定義: ジェネレーターが、リトリーバーから返されていない情報に基づいて生成した誤りの割合を評価します。Hallucinationは、ジェネレーターが自ら生成する誤ったクレームの頻度を測定し、モデルの信頼性を評価する指標です。低い値は、誤った情報の生成が少ないことを示します。 計算式: Self-knowledge(自己知識) 定義: ジェネレーターが自身の知識に基づいて生成した正しいクレームの割合を評価します。Self-knowledgeは、ジェネレーターがリトリーバーからの情報に依存せず、自身のトレーニングデータに基づいて正確な応答を生成できる能力を評価する指標です。高い値は、ジェネレーターが信頼性のある自己知識を持ち、それを適切に活用できていることを示します。 計算式: Context Utilization(コンテキスト利用率) 定義: ジェネレーターが取り出されたコンテキスト情報をどれだけ効果的に利用しているかを評価します。Context Utilizationは、ジェネレーターがリトリーバーからの情報を適切に活用し、正確なクレームを生成する能力を評価する指標です。高い値は、リトリーバーから取得した情報を正確に反映した応答が生成されていることを示します。 計算式: 本論文での実験結果の分析本研究では、BM25とE5-Mistralという2つのリトリーバー、およびGPT-4、Mixtral-8x7B、Llama3-8B、Llama3-70Bという4つのジェネレーターを組み合わせた8つのRAGシステムを対象に、4162件のクエリを10分野にわたり評価しました。 1. リトリーバーの影響 E5-MistralはBM25よりも優れたリトリーバー性能を示し、クレームリコール(Claim Recall)がBM25の67.2%に対し、E5-Mistralでは83.5%に達しました。この大幅な改善は、E5-Mistralがより多くの関連情報を正確に取得できることを示しており、F1スコアもBM25システムの平均42.7%に対して、E5-Mistralシステムでは53.0%へと向上しました 。 これは、より強力なリトリーバー(例: E5-Mistral)を使用することが、クレームリコールを向上させ、F1スコアを改善する有効な手段であることを示唆します。 2. ジェネレーターの影響 ジェネレーターのサイズが性能に直接影響しました。特にLlama3-70Bは、コンテキスト利用率が57.6%と最も高く、Llama3-8Bの54.9%を上回りました。さらに、Llama3-70Bのハルシネーション率は6.8%に低下し、Llama3-8Bの8.3%よりも改善されました 。大規模ジェネレーターは、正確なコンテキストの利用とハルシネーションの減少に貢献することが確認されました。 3. コンテキスト利用の重要性 コンテキスト利用率は全体的なF1スコアと強く相関し、コンテキスト利用率が1%向上するごとにF1スコアが0.9ポイント向上することが観察されました。このことは、リトリーバーから得られたコンテキスト情報の質がシステム全体の性能に与える影響を示しています。 これはつまり、より多くのコンテキスト情報を提供することで、ジェネレーターの忠実度を向上させ、ハルシネーションを減少させるということになります。k値やチャンクサイズを増やすことで、リコールやF1スコアの改善が期待されますが、ノイズ感度が上昇する可能性があります。 4. 信頼性とハルシネーションの削減 E5-Mistralを使用することで、忠実度(Faithfulness)はBM25システムの88.1%からE5-Mistralシステムの93.7%に向上し、ハルシネーション率もE5-Mistralシステムで1.5%低下しました 。これにより、リトリーバーの精度がジェネレーターの信頼性を向上させることが確認されました。 5. ノイズに対する感度のトレードオフ リトリーバーのクレームリコールが向上すると、ジェネレーターのノイズ感度もBM25システムの28.5%からE5-Mistralシステムでは31.7%に増加しました 。クレームリコールが向上するにつれて、ノイズ感度も増加します。リトリーバーが関連する情報とノイズを一緒に取得するため、ジェネレーターはノイズへの感度が高くなります。ノイズ感度を軽減するには、適切なコンテキスト処理が必要です。 6. オープンソースモデルの課題 GPT-4は、コンテキスト利用率が62.3%、ノイズ感度が27.1%であり、他のオープンソースモデルに比べて優れたパフォーマンスを示しました 。オープンソースモデルはコンテキストを盲信する傾向があり、ノイズの識別が難しいことが課題として残っています。 最後に最後までお読みいただき、ありがとうございます! 弊社では、LLM(大規模言語モデル)やアーキテクチャの選定、技術検証、生成AIを使用したプロトタイピングやシステム開発、お客様社内での啓蒙活動等を対応させていただく「生成AIコンサルティング」サービスを提供しています。 生成AIコンサルティングサービス生成AIを活用した業務効率化や、新たなビジネスの価値創造をお考えでしたら、弊社の生成AIコンサルティングサービスをご利用くwww.scuti.jp また、業務利用できるChatGPTのような仕組みである「セキュアGAI」や、生成AIとOCRを組み合わせた「AI文書読み取りサービス」といったAIソリューションも提供しています。 安全な環境でChatGPT「セキュアGAI for enterprise」「セキュアGAI for enterprise」は、Azure OpenAI API serviceを使用して、閉域でセキsecure-gai.scuti.jp AI文書読み取りサービス「AI文書読み取りサービス」を使用すれば、様々なフォーマットの文書から、必要な情報を抽出する「単純作業」を自動化し、人件費www.scuti.jp ぜひお気軽にお問い合わせください!
生成AIユースケース集
生成AIの活用事例、ユースケース集まとめてみました。

デジタル庁2023年度事業 行政での生成AI利活用検証から見えた10の学び (2/3)
デジタル庁のAI担当の大杉直也です。ここの記事では、生成AIによる業務改善の一助になればと思い、実際の行政業務で生成AIの利活用を検討する際に得られた知見を共有します。 本記事は、「デジタル庁2023年度事業 行政での生成AI利活用検証の結果報告(以降、報告書とよびます)」で得られた知見を、よりわかりやすく具体的に示すために、「10の学び」の形式にまとめたものです。 その検証ではデジタル庁を中心とした行政職員を対象に、実際に複数種類のテキスト生成AIを取り扱える環境+ユースケースごとの独自開発を含むサポート体制を作り、(1)どの行政業務に対し、(2)どのようにテキスト生成AIを使えば、(3)どのくらい改善効果がありそうか、を調べました。 また、報告書には含まれていなかった個別ヒアリング等による知見も反映させています。 文量が少し多くなってしまったため、全3回の構成で紹介いたします。第1回では10の学びのうち、最初の5つの学びをまとめました。第2回の本記事では残りの5つの内、4つの学びをまとめます。最後の学びは第3回で紹介します。 今回得られたテキスト生成AIの業務活用への10の学びの一覧です。 時間の削減だけでなく品質向上も狙える 業務を工程に分解し、生成AIを使うべきでない箇所を意識する 「書く」だけでなく「読む」も得意 活用用途をチャットインターフェースに限定しない 「業務改善」だけでなく「システム改善」のためにもテキスト生成AIの検証環境は重要 初心者向けにコピペで使える状態が重要 作文に不慣れな人や、一般的な業務知識に乏しい人はテキスト生成AIの恩恵を受けやすい 繰り返し発生し、工程が切り出しやすい業務はテキスト生成AIの恩恵を受けやすい ソースコードの作成業務はテキスト生成AIの恩恵を受けやすい 情報検索機能は個別具体のニーズに応じた特化開発の余地がある 本記事では6~9の学びを解説します。 初心者向けにコピペで使える状態が重要本事業での生成AIの試行ができる技術検証環境は毎週200名前後が利用し、その半数以上が前週も使っていました。このことから一定の職員数は生成AIを熱心に利活用していたことがわかりました。 図 報告書118ページから。利用者数が増加した2月以降は200前後のアカウントが毎週利用し、その半数以上は継続利用している様子が見て取れる。一方で、アンケート結果から、アカウント作成者の過半数はほとんど利用していない、その理由も「業務で忙しかった」「どのような業務に使用するのが良いのかわからなかった」が特に多いことがわかりました。 図 報告書84ページから。利用しなかった理由は業務で忙しかった、と、どのような業務に使用するのが良いかわからなかった、の2つが特に多い。本事業では、テキスト生成AIの検証は業務効率改善を目的としており、業務で忙しいことは直接の理由にはなりません。正確には「業務で利用できるようにするための試行錯誤や学習の時間が確保できない」が理由だと考えられます。同じように「どのような業務に使用するのが良いのかわからなかった」という理由も、試行錯誤や学習の時間に関連するものだと考えられます。 この仮説の間接的な裏付けとなるアンケート結果があります。 図 報告書91ページから。利用者に最も評判が良かった機能は既存プロンプトテンプレートの利用。機能別の評価を見ると「既存プロンプトテンプレートの利用」が最も評価が高かったです。プロンプトテンプレートとは、事前にテキスト生成AIの入力文を作りこんでおき、その一部を利用者からの入力で置き換えてテキスト生成AIに送信する機能です。 この機能があれば、利用者は(1)目的に応じたテンプレートを探す(2)必要最小限の情報だけを入力する、の2つの操作だけで生成AIから高品質な結果が得られます。いわば、誰かが作りこんだ文章をコピペで使いまわすようなものです。この機能は(1) テキスト生成AIに何ができるかを考えなくても良い(2) テキスト生成AIへの入力文を試行錯誤しなくても良い、の2つのメリットが利用者にあります。これらのメリットは試行錯誤や学習の手間を減らすことに直結できます。 図 報告書68ページから。この右のスクリーンショットの例だと、質問内容とキーワードの部分が利用者からの入力で置換されて、生成AIに送信される。今回の検証で作成されたプロンプト(テキスト生成AIへの入力文)のテンプレートもこちらに公開してあります。 プロンプト一覧 全部で61個あります。 [hoge](必須)または[hoge](任意)の部分を利用者からの入力で置換してお使いください。 このテンプレート機能があったにも関わらず、今回の検証ではテキスト生成AI利活用をほとんど行わなかった利用者が多数いました。これは(1)テンプレート機能が認知されていない(2)自身の業務に適したテンプレートが見つけられなかった(3)自身の業務に適したテンプレートが存在しなかった、等の理由が考えられます。特に、テンプレートの見つけやすさとテンプレートの量の間にはトレードオフの関係があるため解決にはさらなる検討が必要そうです。 作文に不慣れな人や、一般的な業務知識に乏しい人はテキスト生成AIの恩恵を受けやすいヒアリングの結果、作文に不慣れな人の補助や一般的な業務知識に乏しい人がテキスト生成AIの恩恵を特に受けやすいことがわかりました。 作文に不慣れな人の補助は、作文の原案を提案してもらう使い方以外にも、自身が書いた文章を校正させる使い方や、適切な単語選びの相談といった使い方も有益です。 一般的な業務知識に乏しい人は新人だけではありません。公務員は異動が多く、異動先の業務知識を初歩から学ぶ機会がとても多いです。賢いとされているテキスト生成AIは、例えば一般的なシステム開発の用語に詳しく、追加で質問できる機能もあることから、単語でWeb検索するよりも学習効率が良い傾向にあるようです。例えばいきなり情報システム関連の部署に異動となった職員にとって、効率的に業務知識を学ぶことができます。 ただし、テキスト生成AIの知識は一般に広く知られているもの以外は信頼しない方が良いです。例えば法令の解釈や最新の情報は頼ってはならない等の注意喚起も必要でした。 繰り返し発生し、工程が切り出しやすい業務はテキスト生成AIの恩恵を受けやすいテキスト生成AIを業務活用するために、テキスト生成AIの出力結果の品質をある程度確認する必要があります。(どの程度確認すべきかについての考察は第3回で少し行います)。一度きりしかない業務よりも何度も発生する業務の方が、生成AI活用の品質確認の手間に見合う傾向が高いです。 業務を工程別に切り出して検討する重要性は、第1回の「業務を工程に分解し、生成AIを使うべきでない箇所を意識する」についての学びのところで解説しました。 例えば、何度も発生する文章ラベリングの工程を生成AIでの半自動化は費用対効果が高いです。 図 報告書179ページから。工程の中に文章のラベリング課題がある場合、ラベルを生成AIで原案だしを行わせれば業務効率は改善する。ソースコードの作成業務はテキスト生成AIの恩恵を受けやすいアンケートの結果、期待業務時間削減効果が最も高い業務は「パソコンの操作法やコードの生成」でした。 不慣れなプログラミング言語や、慣れているプログラミング言語でもちょっとした関数なら、テキスト生成AIの出力結果をベースに実行し、エラーが出てもその内容を再度テキスト生成AIに入力すれば、正しい修正方針が得られることもあり、非常に便利で効率的な使い方です。パソコンの操作法も公式のマニュアルがわかりにくいことも多く、テキスト生成AIに聞いた方が早い、といった例も良く耳にします。 図 報告書94ページから。最も効果見込みの大きい活用方法は「パソコンの操作法やコードの作成」だが、256名の回答中72名しか活用を検討していない。この便利な「パソコンの操作法やコードの作成」についてですが、この利用方法自体が少数派であることもアンケート結果からわかりました。これはテキスト生成AIの利用方法についての発想が無い以上に、自身でプログラミングを行うといった習慣や、そもそも職員の環境で使いやすいソースコードの実行環境がないことが原因だと考えられます。 テキスト生成AIにより多くの職員がソースコードを作成しやすくなった恩恵を最大限活かせる環境整備が重要です。環境整備だけなく業務の選択肢に「プログラミングによる実現」が入る習慣や文化の構築まで必要だと考えております。この点は引き続き検討課題です。 まとめ大雑把にまとめると以下の3点がテキスト生成AI利活用を業務に定着させるために重要だという学びが得られました。 忙しい人がすぐに助かる状態で渡すことが重要 業務に不慣れな人や、繰り返し発生する業務の自動化の恩恵が大きい 生成AI活用できる状態を整える(ソースコード実行環境) 逆に言えば、以下のような業務はテキスト生成AI利活用が難しいと言えます。 背景事情が複雑で、すぐに助かる状態になかなかできない 業務に慣れている人に対する一度きりの仕事 テキスト生成AIの恩恵が最大限活かせる周辺環境の整備ができていない 上記の業務はテキスト生成AI活用が難しいことがわかります。例えば、国会答弁書作成は最も向いていない業務のひとつかもしれません。ただし国会答弁書作成も工程に分解し、その中の一部の工程、例えば過去の答弁から類似表現を探す、ではテキスト生成AI活用の恩恵が得られる可能性があります。この種の情報検索とテキスト生成AIについては第3回で考察します。 ここまで10の学びのうち、1~9の学びを紹介しました。これらの内容は、どちらかというとテキスト生成AI活用の組織定着に主軸をおいた内容でした。最後の第3回の記事ではテキスト生成AIを情報検索目的で利用するケースについて個別具体の少しマニアックな話をします。 ◆関連するデジタル庁の採用情報は以下のリンクをご覧ください。 herp.careers【Y_01】データサイエンティスト(AI利活用) デジタル庁 募集要項をみる ◆これまでの「デジタル庁Techブログ」の記事は以下のリンクをご覧ください。 デジタル庁Techブログ|デジタル庁「旧デジタル庁 ガバメントクラウドnote」および「旧デジタル庁 Data strategy team note」を統合しdigital-gov.note.jp ◆デジタル庁の採用に関する情報は以下のリンクをご覧ください。 中途採用(民間人材)|デジタル庁多様な経験や豊富な専門性を活かし、ともに大きな挑戦に取り組みましょう。www.digital.go.jp









