生成AI～技術士(情報工学)二次試験対策～

技術士二次試験の勉強方法を調べると「キーワード集を作るといいよ」と出てくる。
キーワード集？どうやって作るの？
特に情報工学分野は情報が少なく、手探りで勉強を進める人が多いのではないでしょうか？
私もその一人です。
先輩技術士からアドバイスをもらいつつ作成したキーワード集をシェアします。
「この技術も言及した方が良い」
「今が旬のキーワードはこれだ！」
みたいなアドバイスをいただけると、技術士（情報工学）を受験する人の助けになると思います。

# キーワード：生成AI
## 1.原理原則
従来のAIは入力データの分類や機械翻訳など、人間の感覚に近い判断を行い、作業を自動化できるようになった。
生成AIはテキスト、画像、動画、音声などのコンテンツを生成できる。その品質は業務で使えるレベルに達しており、専門的知識が低い分野のコンテンツ作成が容易になった。
これまで人間しかできなかった分野を生成AIに置き換えられる可能性があり、企業のみならず社会全体のDXを実現できる。

## 2.課題
### 2.1.自社に特化したソリューション
LLM(Large Language Model)は幅広い知見を学習しているため、一般的な事柄に対して有益な回答を生成できる。しかし企業のDXに用いることを考えると、その企業に特化したAIが求められる。
一例としてAIチャットサポートがある。ある製品に対する過去の問い合わせを学習することにより、その製品のサポートをAIに代替できる。
製品開発設計においても生成AIを活用する動きがある。例えば過去の設計資料や不具合情報を学習し、新規開発時に注意すべき点を指摘することなどが検討されている。

### 2.2.正確な情報の生成
生成AIは不正確な情報を生成するハルシネーションを起こす。ニューラルネットワークの欠点として、なぜその結論に至ったか説明できない点がある。検証可能な情報を提示する必要がある。
　AIがハルシネーションを起こす原因として、学習データの問題とAIアーキテクチャの問題がある。
　学習データが古い場合や情報の偏りがあると適切な回答を得られない。知らない情報は出力できないからである。
　AIアーキテクチャは現在広く使われているTransformerなどのニューラルネットワークは、ある単語に対して次に続く可能性が高い単語を並べる傾向がある。このため文法が複雑な自然言語に対して適切な回答を出力できないことがある。

### 2.3.機密情報の流出の防止
　ファインチューニングのために企業が持つ機密情報や個人情報を学習データとすることがある。これらの情報を外部に流出させないようにする必要がある。
　また外部クラウドで提供される生成AIは、事前学習に加え、ユーザが入力した情報も強化学習するものがある。このタイプの生成AIに機密情報を入力すると、他のユーザが機密情報を取得できる可能性がある。


## 3.技術的提案
### 3.1.自社に特化したソリューション
　ドメイン特化型AIは汎用的なAIモデルを元に自社業務に特化させたものである。
　自社の学習用データを用い、汎用AIをファインチューニングする方法があげられる。この方法はカスタマサービス用チャットボットなどで適用されている。
　RAG(Retrieval Augmented Generation)は自社資料など、信頼できる情報を元に回答を生成する手法である。
　あらかじめ回答に使用する資料をリストアップし、プロンプト入力の内容を元に関連資料を選定し、資料に基づきLLMで回答を生成する。関連資料はテキストをトークナイザーで単語（トークン）に分割してベクトル化しておく。プロンプト入力も同様にベクトル化して、資料のベクトルと内積を取り近似する資料を選定する手法が用いられる。
　ファインチューニングとRAGの違いとしてAIの追加学習の有無があげられる。ファインチューニングは追加学習が必要である。そのため元となる汎用AIを変更すると改めて学習させる必要がある。このときGPUなどの計算資源を使用するため、時間とコストがかかる。
　一方RAGは学習を必要としないため、使用するLLMを変更しても再学習する必要はない。
### 3.2.正確な情報の生成
　ハルシネーションの抑制策としてもRAGは有効である。信頼できる資料を参照することにより、回答に一定の信頼性を得ることができる。
　RAGの検索精度を向上させるために様々な方法が提案されている。
　一例としてベクトル検索後に抽出したドキュメントをLLMに渡す前に、リランキングをする方法がある。ベクトル検索で参照候補となる複数の資料をリストアップする。このとき、文書全体のベクトル検索結果とプロンプト入力の近似度合いによって順位付けできる。この順位付けを修正することにより、回答としてふさわしい資料を選定する方法がリランキングである。順位付けの変更方法の一例として、資料内容を資料全体から段落などのテキストの塊（チャンク）単位でベクトル比較する方法がある。
　またRAGの性質上、プロンプト入力と資料を高精度で関連付けすることも重要である。資料のフォーマットが画像やPDFであれば内容を読み取るのは困難である。テキストデータとして読み込める形式の資料を分析対象とした方が、プロンプト入力との整合性を高めやすい。
　またAIが生成した回答に対し、ユーザが評価を行う強化学習も有益である。生成AIシステムを構築する際、ユーザが回答に対して「いいねボタン」のような良し悪しを回答できる仕組みを組み込み、出力結果の良否をフィードバックして学習データに反映する。
### 3.3.機密情報の流出の防止
　機密情報の流出を防ぐために、自社内でAI用サーバーを立ち上げる方法がある。この方法だと外部への機密情報の流出を防げる。しかしサーバー取得や運営に費用が必要となり、AIの専門家も求められる。確実に情報流出を防げる一方、コストや運営に課題が残る。
　OpenAI社などのAIサービスプロバイダの中には、企業用APIを用意している会社がある。APIを経由した情報は学習に使わないことを明言している。このサービスを利用すると、最新のAIモデルを使用できる。しかし外部ネットワークに機密情報が流れるため、セキュリティ対策を怠ると情報流出の可能性がある。

## 4.将来動向
　生成AIはGoogle社のTransformerモデルが発表されて以降、急速に発展している。
ソフトウェア開発においてもAIを用いたコーディングサポートが実現されている。今後は上流工程にもAIを活用したAIドリブン開発が模索されている。
FA(Factory Automation)関連では生成AIから生産工程仕様書から各作業者が注意する点を説明する資料を作成する手法が検討されている。また「いつものやり方」として慣習的に行っている工程に対し、生成AIで別の視点を提示することにより新たな手法を模索する動きもある。
一方、生成AIはGPU資源を多く使う必要があるため、データセンターの消費電力が急増している。社会的側面では安定した電力供給が求められる。
またGPUで汎用的な並列計算をするのではなく、Transformerに特化したASICでGPUの置き換えを試みるスタートアップ企業もある。ASIC化できれば学習の高速化や省電力化が実現できる。
生成AIは技術革新の速度が速く、現在適用不可能な領域でもブレイクスルーが起きる可能性がある。

## 5.参考
- [生成AIコラム](https://dx.mri.co.jp/generative-ai/column/)
- [生成AIのビジネス活用で注目されるRAG（検索拡張生成）とは？ - 仕組みや活用例、精度向上のノウハウなどを紹介 - WOR(L)D ワード｜大和総研の用語解説サイト](https://www.dir.co.jp/world/entry/solution/rag)
- [ハルシネーション | 用語解説 | 野村総合研究所(NRI)](https://www.nri.com/jp/knowledge/glossary/lst/ha/hallucination)
- [生成AIに機密情報を与えない仕組みを整えよう、出力したコードにはレビューを徹底 | 日経クロステック（xTECH）](https://xtech.nikkei.com/atcl/nxt/column/18/02908/080100002/)
- [Etched | The World's First Transformer ASIC](https://www.etched.com/)