📖

LLMで問題解決したり新領域に挑戦するスキルを高めよう

2023/05/12に公開

この記事では

LLMとは何か、どのように役立てることができるか、
人が学習しながらLLMと対話を繰り返すプロセスの有用性と
プロセスを適用した問題解決のフレームワークを紹介します。
このフレームワークは新領域への挑戦にも応用できます。

LLMとは

LLM: 大規模言語モデル(Large Language Model)の略で、
大量のテキストデータから学習した人工知能(AI)です。
LLMは、自然言語処理(NLP)という分野で発展してきた技術で、
テキスト入力に対してテキスト出力を生成することができます。

OpenAIのChatGPT(GPT) やGoogleのBard(LaMDA)などで使用されています。
LLMは、様々な種類や形式のテキストデータを学習しているため、多様な知識や情報を持っています。
また、LLMは、入力されたテキストに応じて、回答や提案や文章などを柔軟に生成することができます。

LLMを活用するには

質問が重要

質問(プロンプト)とはAIへの指示や要求のことで、AIに具体的な指示を提供することにより、
AIが期待する結果や応答を生成することができます。
プロンプトエンジニアリングという適切なプロンプトを設計するための手法やプロセスも注目されています。
プロンプトエンジニアリングとは、質問(プロンプト)を工夫することで、
回答(出力結果)を最適化する手法です。
プロンプトエンジニアリングでは、質問の内容や形式や文脈などを調整することで、
回答の品質や精度や信頼性などを向上させることができます。

質問だけでは不十分

しかし、LLMを活用するには質問だけでは十分ではありません。
LLMは、学習したテキストデータから推測したり創造したり、
質問に含まれる情報や前提条件に依存して回答を生成しますが、
間違ったり不適切なものも含みます

そこで、人が学習しながらLLMと対話を繰り返すプロセスが有効です。

人が学習しながらLLMと対話を繰り返すプロセスとは

人がLLMと対話に不足知識やスキルの学習を組み込んで、不足を補いながら対話を繰り返し、
LLMの回答への理解や検証を促進し、結果を修正していく方法です。
最終的な結果の品質や信頼性を向上させることができます。

  • LLMに問題の背景や目的を説明して、関連する知識や情報を教えてもらう
  • LLMにデータの分析方法や出力形式を提案してもらい、その根拠や妥当性を確認する
  • LLMにアクションプランを生成してもらい、その効果やリスクを評価する
  • LLMに分からないことや理解できないことを質問し、詳細な説明を求める
  • LLMが間違った回答や提案をした場合は、その理由や改善策を
    人が推論する・教える/LLMに推論させる・教えてもらう

メリット

  • LLMの回答や提案に盲目的に従わず、自分で判断や検証ができるようになる
  • LLMの回答や提案に満足せず、より良い解決策を探求する姿勢が身につく
  • LLMの回答や提案に疑問や不安がある場合は、自信を持って質問やフィードバックができるようになる
  • LLMの回答や提案に感心や興味がある場合は、自分で学びたいという意欲が高まる

人の学習プロセスを組み込んだ問題解決のフレームワーク

そこで、LLMの活用に人の学習プロセスを組み込んだ汎用的な問題解決のフレームワークを作成しました。

ステップ1〜5からステップ6に経由して、不足しているものはステップ7〜9で解消させる。
このステップを繰り返して問題の解決を目指します。

解決したい問題を当てはめていけば、
専門知識を必要とする新領域の問題に挑戦しても、
問題解決の可能性を高められると思います。

Mermaid記法では表現しきれなかった部分
※ステップ1〜5と9はどこからでもステップ6に経由できる
※9->1の矢印にしたかったのですが、エラーになるので↔にしています

各ステップの解説

LLMを使って問題解決するためには、以下のようなステップを踏むことができます。

  1. 問題理解:問題や課題を明確化し、エラーやその他の問題を特定することから始めます。LLMは、テキスト生成能力を活用して、問題の定義や分析を行うことができますが、その内容が正確で適切であるかどうかは別途検証する必要があります。

  2. データ管理:データを収集し、必要な場合は整理や前後処理を行い、分析のために準備します。LLMは、テキストデータを入力として受け付けることができますが、その形式や品質によっては、分析の精度や効率に影響が出る可能性があります。そのため、データのクリーニングや正規化、トークナイズなどの前処理を行うことが重要です。

  3. 分析:目的を明確化し、データを分析して解決策を検討します。入力データや前提情報の最適化や出力形式の明確化も行います。LLMは、自然言語での質問に対して回答を生成することができますが、その質問の仕方や回答の評価方法によっては、望まない結果になる可能性があります。そのため、質問のプロンプトを工夫したり、回答の信頼度や根拠を確認したりすることが重要です。

  4. 分析結果に基づいてアクションプランを策定:基本的にはこのステップでプロンプトを構築します。アクションプランとは、問題解決のために実行する具体的な行動や手順のことです。LLMは、テキスト生成能力を活用して、アクションプランを提案することができますが、その提案が実現可能で効果的であるかどうかは別途検証する必要があります。

  5. アクションプランを実行して結果をモニタリング:アクションプランを実行し、結果をモニタリングして問題解決を確認します。LLMは、テキスト生成能力を活用して、結果のレポートやフィードバックを作成することができますが、その内容が正確で客観的であるかどうかは別途検証する必要があります。

  6. ステップの中で不足している知識やスキルがあるか説明が必要か:必要に応じて不足している知識やスキルを特定し、情報収集を行います。理解できないことは詳細な説明を求めます。

  7. 情報収集:識者、書籍、Web検索、LLMなどの情報源を利用して、必要な情報を収集します。LLMは、テキスト生成能力を活用して、情報源から情報を抽出したり要約したりすることができますが、その内容が信頼性の高いものであるかどうかは別途検証する必要があります。

  8. 適切な情報源を見つけて学習する:収集した情報をもとに、必要に応じて学習を行います。LLMは、テキスト生成能力を活用して、学習内容の要点や例題を提供することができますが、その内容が適切で効果的であるかどうかは別途検証する必要があります。

  9. 学習内容の理解/反映:学習した内容を理解し、適用することで、プロセスを改善することができます。

  10. 結果が問題を解決したか:アクションプランを実行した結果、問題が解決されたかどうかを確認します。LLMは、テキスト生成能力を活用して、結果の評価や分析を行うことができますが、その内容が正確で客観的であるかどうかは別途検証する必要があります。

  11. 改善策を検討する:問題が解決されなかった場合は、改善策を検討します。LLMは、テキスト生成能力を活用して、改善策の提案や比較を行うことができますが、その内容が実現可能で効果的であるかどうかは別途検証する必要があります。

  12. アクションプランを調整する必要があるか:問題を切り分けてアクションプランを調整する必要があるかどうかを検討します。LLMは、テキスト生成能力を活用して、アクションプランの修正や最適化を行うことができますが、その内容が問題に適合しているかどうかは別途検証する必要があります。

  13. 結果をアウトプットする手順を完了する:問題解決の結果/知識を文書化/記録/共有して、プロセスを完了します。LLMは、テキスト生成能力を活用して、結果のレポートやフィードバックを作成することができますが、その内容が正確で客観的であるかどうかは別途検証する必要があります。

様々な分野のアクションプラン

以下は、問題解決のアクションプランに適用できる様々な分野のアクションの一部です。
分野によっては、追加の手順が必要な場合があります。

分野 アクションプラン
IT/プログラミング分野 ・コードの書き方の検討
・コードのデバッグ
・プログラムの実行
・テストの実行
デザイン分野 ・アイデアのブレスト
・スケッチ/プロトタイプの作成
・ユーザーテストの実施
・フィードバックの収集
マーケティング分野 ・ターゲットオーディエンスの分析
・キャンペーンの企画
・広告の制作
・成果のモニタリング
人事/組織開発分野 ・問題を洗い出すための面談
・問題解決のための戦略の策定
・戦略の実行
・結果のモニタリング
ファイナンス/会計分野 ・データの収集と分析
・問題の切り分け
・解決策の提案
・結果の評価
教育分野 ・教材の作成
・授業の準備
・学生の評価
・フィードバックの収集
医療分野 ・患者の状態の評価
・治療計画の策定
・治療の実施
・結果のモニタリング
法律分野 ・法的問題の調査
・法的解決策の提案
・解決策の実行
・結果のモニタリング
製造分野 ・品質管理の分析
・生産プロセスの改善
・フィードバックの収集
・製品の評価
コンサルティング分野 ・顧客のニーズの理解
・問題の分析
・解決策の提案
・解決策の実行とモニタリング

まとめ

以上が、LLMを活用した問題解決のフレームワークです。
このフレームワークは、様々な分野や問題に応用できます。

LLMを活用することの真価として
専門知識を必要とする領域に、素人でもある程度の深さまで短期間で到達できること
があります。
しかし、新たな領域への挑戦に利用するにはLLMは完璧ではなく、
間違ったり不適切な回答や提案をすることもあります。
そこで、対話と学習を繰り返すプロセスで理解や検証を促進し、
修正することで回答の信頼性を向上させていくことが重要になります。

あなたも対話と学習を繰り返すプロセスを使って新たな領域に挑戦してみませんか?

関連記事

この記事で言いたかったことの実例記事
https://zenn.dev/seiyakitazume/articles/bc11bbd020cdfe

事実→仮設→検証の流れは分野問わず有用
https://zenn.dev/suzuki_hoge/articles/2020-11-logical-debugging-e46a81aa4eb61e0caa5e

一般よりの話ですが、分野ごとにカスタマイズすると面白そう
https://zenn.dev/manabuyasuda/articles/06a369e211c353

Discussion