Generative AI Test 試験対策しようぜ

## はじめに
　JDLAのGenerative AI Test 第2回が本日2023年12月2日に開催されます！そこで必要な知識をまとめました。参考程度にご覧ください。
 
https://www.jdla.org/certificate/generativeai/

**【この記事の目的】**
- Generative AI Testのシラバスを確認する
- 生成AIについて少し理解する
- 試験に合格するための知識をつける　

 　
**【この記事の対象者】**
- Generative AI Test受験者
- シラバスを確認したい方
- 試験に向けてちょっと不安な人
## 試験概要の確認

試験時間 20分
択一式/多肢選択式 19問 ・ 記述式 1問

目安は1問1分　記述問題があるので余裕はなさそう

## シラバスを確認しよう　~生成AIの技術~
### 確率モデル
 LLMは、与えられたコンテキスト（例えば、文章の一部）に基づいて、次に来る単語やフレーズの確率分布を計算します。この確率分布は、過去のデータ（学習データセット）に基づいてモデルが学習した言語のパターンを反映しています。
### ハルシネーション
実際には存在しない、または学習データに基づかない情報や内容を生成する現象です。
### 基盤モデル
機械学習における訓練は、上流（Upstream）と下流（Downstream）の2段階に分けることができ、基盤モデルとは、上流工程である事前学習がされたモデルのことです。GPT-3やBERTなどが基盤モデルに当たります。
### Transformer
Transformerは2017年に発表された論文 "Attention is All You Need" で紹介されたNLPモデルです。
 Transformerの最大の特徴は、"アテンション機構"（特に"Self-Attention"）を使用して、入力シーケンス内の各要素（例えば、文中の各単語）が互いにどのように関連しているかをモデル化することです。これにより、文の各部分が他の部分とどのように関連しているかを効率的に捉えることができます。
### Attention
アテンション機構は、入力されたシーケンス（例えば、文中の単語列）内の各要素が、他の要素とどのように関連しているかを計算します。

Self-Attention: 同じシーケンス内での各要素（単語）間の関連性を分析します。これにより、各単語が文脈内でどのように機能するかをモデルが理解できます。

Multi-Head Attention: 複数のアテンション「ヘッド」を使用して、異なる表現空間でアテンションを計算します。これにより、モデルは複数の異なる文脈や関連性に注目することができます。
### GPT-3
OpenAIが開発した大規模言語モデルで、1750億個のパラメーターを持ちます。GPT-3は、大規模なデータセットを用いた広範囲の言語パターンの学習に基づいており、与えられたテキスト（プロンプト）から文脈を把握し、適切な続きを生成する「コンテキスト内学習」を特徴とします。この柔軟性により、GPT-3は多様なタスクと文脈に対応可能です。また、GPT-3は特定のタスクに対する事前の例示や説明なしに、そのタスクを理解し実行できる「Zero-Shot Learning」の能力を持っています。さらに、数例の例示を与えることで、未知のタスクをより効果的に理解し実行する「Few-Shot Learning」にも長けています。これらの特性により、GPT-3はほとんどのタスクにおいてファインチューニングを必要とせず、幅広い応用が可能です。
### 自己教師あり学習

自己教師あり学習は、ラベルがないデータからモデルが自ら特徴を学習する手法です。この手法では、入力データ自体を利用して学習タスクを生成し、モデルがデータの構造やパターンを自動的に把握するようにします。この学習プロセスはラベル付けされたデータに依存せず、大量の未ラベルデータを活用できるため、効率的かつ広範な特徴抽出が可能になります。
### 事前学習
LLMにおいて、学習の上流過程でモデルが広範囲の言語データから基本的な言語構造やパターンを学習するプロセスです。この段階では、インターネット上の記事、書籍、ウェブサイトなどから収集された大量のテキストデータを使用します。事前学習の目的は、モデルに言語の一般的な理解を与えることで、その後の特定のタスクや応用に向けて柔軟な基礎を築くことです。このプロセスでは、文脈理解、文法、意味論など言語の多面的な側面を捉えることができます。事前学習を終えたモデルは、その後特定のタスクやアプリケーションに合わせてファインチューニングされ、より特化した性能を発揮することが可能になります。
### ファインチューニング
ファインチューニングとは、既に学習済みのモデルに新たな層を追加し、モデル全体を再学習する手法です1。大量のデータで事前学習されたモデル（事前学習済みモデル）に対して、解きたいタスクに応じたデータを追加で学習し、パラメータを微調整することを指します2。この手法は、モデルを再利用するため、一から学習するよりも短時間で少ないデータでモデルの構築が可能になります。
### アラインメント
LLM（大規模言語モデル）におけるアラインメントは、モデルが不適切な、偏見を含む、または誤解を招くような内容を生成しないようにするために、モデルの出力を人間の倫理、価値観、目的と合致するよう調整するプロセスです。
### 人間のフィードバックによる強化学習（RLHF）
人間のフィードバックによる強化学習（RLHF）は、大規模言語モデル（LLM）の性能を向上させるために使用される手法です。この手法では、モデルの出力や振る舞いを人間が直接評価し、そのフィードバックを使ってファインチューニングします。
### インストラクション・チューニング
インストラクション・チューニング（指示調整）は、事前学習済みの言語モデルを、特定の指示やタスクに基づいて最適化し微調整するファインチューニングの手法です。
### コンテキスト内学習
コンテキスト内学習は、大規模言語モデル（LLM）が与えられたテキスト（コンテキスト）から直接学習し、タスクを理解して適切な応答を生成する手法です。コンテキスト内学習の特徴は、特定のタスクに対する事前の例示がない（Zero-Shot）または少数である（Few-Shot）状況でも、モデルが効果的に機能する能力にあり、モデルは与えられた情報を活用して、状況に応じた適切な応答を生成することが可能になります。
### Zero-Shot / Few-Shot
Zero-shot learningは、訓練中に直接学習されなかったクラスの分類を行う技術を指します。これは、モデルが訓練中に見ていない新しいタスクやクラスについての予測を行う能力があります。
Few-Shotlearningは、限られた数の例やデータ（特に、コンテキスト内学習にて与えられた例題）を用いて新しいタスクやドメインに対して学習する能力を指します。
### Chain-of-Thought
Chain-of-Thoughtは、複雑な問題やタスクを解決する際に、中間ステップや推論の過程を明示的に表現する手法です。この方法では、モデルが問題解決のプロセスをステップバイステップで展開し、最終的な結論に至るまでの論理的な連鎖を示します。これにより、モデルの推論がより透明になり、人間が理解しやすくなるとともに、より複雑な問題に対しても効果的に対応できるようになります。
### リーダーボード
#### LLMにおけるリーダーボードの例
GLUE (General Language Understanding Evaluation): 自然言語理解のためのベンチマークで、文の意味理解、文意の推論、質問応答などを評価します。各モデルのスコアはリーダーボード上で更新され、比較されます。

SuperGLUE: GLUEよりも高度で困難なNLPタスクを含むベンチマーク。より洗練された言語理解能力を要求されます。

SQuAD (Stanford Question Answering Dataset): 質問応答の能力を評価するベンチマーク。与えられたパラグラフから質問の答えを見つけ出す能力を測ります。

### ベンチマーク
#### LLMにおけるリーダーボードの例
BERTScore: モデルの生成したテキストと参照テキストの間の類似度を評価します。特に翻訳や要約のタスクで使用されます。

BLEU (Bilingual Evaluation Understudy): 機械翻訳の品質を評価するためのベンチマーク。生成された翻訳文と人間による翻訳文を比較します。

### サンプリング手法

LLM（大規模言語モデル）におけるサンプリング手法は、モデルが生成するテキストの多様性と品質を制御するために使用されます。代表的なサンプリング手法には以下のようなものがあります。

グリーディサンプリング: この方法では、モデルは常に最も高い確率を持つ単語を選択します。結果は一貫していますが、多様性に欠ける場合があります。

トップkサンプリング: この手法では、確率が高い上位k個の単語からランダムに選択します。これにより、生成されるテキストに多様性が生まれます。

トップp (ニュークリアス) サンプリング: トップpサンプリングでは、累積確率がpを超えるまでの単語を選択肢とし、その中からランダムに単語を選びます。この方法は、多様性と品質のバランスを取るのに有効です。

### 条件付き生成
LLMは条件を指定することで出力を制御することも可能です。これが「条件付き生成」です。これにより、AIは、特定の話題やスタイル、観点などに基づいて情報を生成することが可能になります。

### 拡散モデル
拡散モデルは、画像生成などに用いられる深層学習手法で、元のデータに徐々にノイズを加えた後、その逆プロセスを通じて新しいデータを生成します。このモデルは、初期のクリーンなデータから始まり、段階的にノイズを加えるフォワードプロセスと、ノイズデータからノイズを除去して元のデータに似た画像を再構築するリバースプロセスから成ります。この手法により、高品質な画像生成が可能となり、特に画像生成技術において注目されています。

### スケーリング則
LLMにおけるスケーリング則は、モデルの性能がそのサイズ（特にパラメータの数）に応じてどのように変化するかを示す原則です。この原則は、モデルが大きくなるほど、一般にその性能も向上するという観察に基づいています。
### マルチモーダル
マルチモーダルとは、複数の異なるタイプのデータ（例えば、テキスト、画像、音声など）を統合して処理する手法のことです。複数のデータを同時に処理することにより複雑な処理を可能とします。
### 時間的カットオフ
時間的カットオフとは、学習に使用するデータの期間のことで、例えば、Chat-GPT、GPT-4は2021年9月までのデータを使用して学習されています。

## シラバスを確認しよう　~生成AIの利活用~
### ケイパビリティ
ケイパビリティとはが持つ様々な言語処理および生成に関連する機能のことです。これには、テキストの理解、生成、翻訳、要約、質問応答などが含まれます
### プロンプトエンジニアリング
生成モデルに対して、特定のタスクや要求を達成するために最適化された入力（プロンプト）を作成する技術です。モデルにどのように質問するか、あるいはどのように指示するかに焦点を当て、モデルが望ましい、関連性の高い、正確な出力を生成するように誘導します。

### RAG
RAG (Retrieval-Augmented Generation)とは、文章検索で関連文章を抽出してLLMにプロンプトとして渡す手法で、検索拡張生成ともいわれる。
### ドメイン固有
ドメイン知識のような特定の専門となる知識を入れることで特定のタスクに強くする活用法

## 参考
https://tt-tsukumochi.com/archives/8158#google_vignette
https://zenn.dev/umi_mori/articles/jdla-generative-ai-test
https://qiita.com/Nezura/items/ea5516e4d7669e327902