$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

生成AI「戦力化」の教科書を読んだ

社内でAI活用を推進するにあたって、どのようなコツがあるかの知識を付けたいと思い、生成AI「戦力化」の教科書を読んだ。

この本は、LLMを自社業務に組み込むための実践的な方法論がまとまっていた。ナレッジベースの構築、転記・抽出、文書作成、レビューといった具体的な業務への適用方法が整理されていて参考になった。

印象に残ったのは以下のポイント。

  • LLMの仕事は常にレビューするべき。そのためLLMに任せるべきかの軸として、ワークフローの入力と出力を人が正解かどうかを判断しやすいかという視点も大切
  • ナレッジベース構築をするための具体的なステップが解説されていたのが良かった。特に(5)のステップは大事だなと思う
    • (1) そもそもナレッジベースをどのようなアウトカムに繋げたいのかから考える
    • (2) 目的にあった文書・情報をリストアップ
    • (3) ベテラン社員がこれらの文書をどのように探し、活用しているかを分析
    • (4) 文書のどこに必要な情報があるのか、その情報から何を得ようとしているのかに着目し、抽出方法などの参考に
    • (5) システムを組む前にどのようなプロンプトで活用するのか検証。この検証段階ではナレッジベースを構築する前に、手動で関連文書を選び、それをプロンプトに含めて応答を確認する
    • (6) プロンプトでの活用イメージがつかめたら、あとはそのプロンプトに必要なデータが検索できるよう、情報を集約する仕組みを考える
  • 転記・抽出、文書作成、レビューそれぞれのワークフロー構築のコツが整理されていて参考になった

AI活用をより社内に広げたい人にとって参考になる本だと思う。そのような人におすすめ。

読書ノート

- マニュアル不足で回答が見つからなかった場合、マニュアルが見つからなかったと明確に返答するように工夫した方が良い 54
- LLMの出力は下書きと考え、最後は人がレビューする必要がある。下書きとして業務フローに加えるだけでも相当な効率化につながるケースが多く見つかる 58
- 洗い出された業務プロセスをもとに、ホワイトボードにどのようなステップの組み合わせになっているか書き出す。ステップごとにそれぞれ何の入力・出力があるかを明確にする。するとそれを生み出すための方法を検討できる 96
- LLMの仕事は常にレビューするべきなので、入力と出力を見た時、人が正解かどうかを判断しやすいかという視点もLLMに任せるべきかの軸に大切 100
- 非構造化データをうまく扱うには、(1)言葉で検索すること、(2)メタデータを付与して整理することの2つが必要 111
    - メタデータは一般的な分類よりも、企業特有のメタデータを付与することが重要
- データレイク、データウェアハウス、データマート、データカタログ 113
    - 非構造化データに応用すると、データレイクとして全ての文書を保存し、データウェアハウスとして業務目的別に整理・加工し、目的に応じたサブセットとなるデータマートに該当するナレッジベースを作り、データカタログでそれらを検索・発見できるようにする、などの構造
- 情報の関連性をグラフと呼ばれる構造で表現し活用可能にしたナレッジグラフを使うと、LLMは単にチャンクを検索するだけでなく、そこから関連する必要なチャンクをうまく見つけられるようになる 119
- ナレッジベース構築と活用をするときの流れ 126
    - (1) そもそもナレッジベースをどのようなアウトカムに繋げたいのかから考える。どのような場面で何を達成するために用意するのか
    - (2) 目的にあった文書・情報をリストアップする。情報がいつ追加・更新・削除されるかのライフサイクルを知ってナレッジベースを常に有効な状態に保つための背景を知っておく
    - (3) ベテラン社員がこれらの文書をどのように探し、活用しているかを分析。このプロセスはナレッジベース設計にもそのまま反映できる
    - (4) 文書のどこに必要な情報があるのか、その情報から何を得ようとしているのかに着目。抽出方法などの参考になる
    - (5) システムを組む前にどのようなプロンプトで活用するのか検証。この検証段階ではナレッジベースを構築する前に、手動で関連文書を選び、それをプロンプトに含めて応答を確認する
    - (6) プロンプトでの活用イメージがつかめたら、あとはそのプロンプトに必要なデータが検索できるよう、情報を集約する仕組みを考える。どこから情報を持ってくるか、更新をどうキャッチするか、どうタグ付けや分類、加工するのか
- 転記・抽出の実現方法 134
    - 必要なのは、書類の読み方・抽出の仕方を教えるワークフローと、過去の抽出例を保存したナレッジベース
    - 「書類のどの部分に注目しているのか」を明確に。どこを見るか明示することで、関係ない項目から間違った値を取り出すことを避けやすくなる
    - どのようなルールや基準で、どの情報を抜き出しているのかを整理する。「契約期間は開始日と終了日をセットで取得する」など
    - 抽出した内容が正しいかどうかを「どのような方法で検証しているのか」、例えば過去の抽出例や他の項目との整合性チェックなども重要なポイント。過去の類似例との比較が必要など
    - 抽出結果を「どのようなフォーマットでまとめる必要があるか」。出力に「参照元ページ」「該当セクションの見出し」など人間が検証しやすいメタデータを付与しておくと、レビューしやすい
- 文書作成の実現方法 142
    - 文書作成業務の基本情報をまとめる。文書を書くことの目的(どのような業務のための誰に対して何を伝えるべきかなど)、文体など
    - 完成品に対してどのような視点で人が読むのか整理する。事実関係や正確性をどのようにチェックしているか、社内のトーンに沿っているかをどう判断するか、など
    - すでに存在している完成品の文書を分解する
    - 個別のセクションの書き方を考える
    - ワークフローを作るときは、セクションごとに一つずつ実現していく
    - 完成物はナレッジベースに登録することで、LLMや人の両方の財産になる
- レビュー観点を分析するには、既存のレビュー済み文書とその指摘・修正履歴を集め、どのような観点でレビューが行われたのか分析する。ChatGPTなどを活用して文書とレビュー結果を提示し、「どのような観点でレビューされたと考えられるか」を推測させるのも有効 155
- ナレッジマネジメントで人がやっていた分類やタグ付け、ようやく作成はLLMとワークフローで自動化できるようになった 167
- エージェントとは「与えられた目的を達成するために、自律的に推論し、計画を立て、状況に応じて対話や外部ツールの操作といった行動を起こすソフトウェア主体」 173
    - 「自律性」「目的志向性」が重要
    - プログラムされた手順をこなすのではなく、最終的なゴールを見据え、その達成のために「今何をすべきか」を自ら判断し、行動を選択する能力を持つ
    - エージェントの代表的な機能要素 176
        - Planning: ユーザーに与えられた課題を どのように解決するか行動計画を考える。
        - Knowledge: エージェントがPlanningや実際の行動の中で 利用できる知識。
        - Tool Use: 外部のツールを動かすエージェントのための 道具の呼び出し。
        - Memory: エージェントがユーザーとどのようなやり取りを 行ったかなどを記憶し処理をパーソナライズする。
        - Evaluation: ユーザーの指示と行動した結果を比較・評価し 次のPlanningに反映する。
- LLMは「ミスを犯しやすい」が、AIエージェントはLLM呼び出しを大量に行うため、エラーの蓄積効果が起きる。各ステップの成功率が90%あっても、5ステップをノーミスでクリアするのは59%まで低下してしまう 184
- エージェントとどう付き合うか 185
    - 全ての業務をエージェントにしようとしない
    - やり方が明確な業務は「ワークフロー」で良い
    - 人間とのコラボレーションを前提とする。人間がレビューや修正を行う前提で設計する
    - 新人の部下レベルであるということを社内で期待値コントロールする
    - 常に人間に「ホウレンソウ」させる。重要な判断を行う前や、一定の処理が完了した時点で
- 業務の自動運転の6段階 201