大規模言語モデル系があまりに研究が早く、かといってインパクトから考えると無視もできずフォローするために自分用にまとめました。
すでに多数の良記事がありますが、入門用にしては細かすぎて俯瞰ができない、概要すぎて次に進めない記事が多かったので、入門から次に進むステップまでとして書いてみました。(あとMermaidで手軽に作図できるとのことでその練習用!)
技術の流れ
- ざっくりとした流れ
- もう少し細かな流れ
word2vec以前
- TF-IDF
- 単純に文書内の単語の頻度を数えると、特定のトピックだけで出て来る単語、どの文書でも出て来る単語などがある。
- 文書の要約、分類などであれば特定のトピックだけで出て来る単語とその文書でも出て来る単語の頻度は分けて考えた方が良い。
- TFをある単語の文書内での出現頻度、IDFをある単語が出て来る文書数の頻度の逆数とする。
- TF掛けるIDFにより、特定のトピックで頻度が多く他のトピックでは頻度が小さい単語を抽出できるようになる
- Qiita記事TF-IDF
- 単純に文書内の単語の頻度を数えると、特定のトピックだけで出て来る単語、どの文書でも出て来る単語などがある。
- n-gram
- 語のつながりを2文字、3文字、…とカウントしてその頻度を集計する≒単語のつながりを見ていく考え方。
- Qiita記事N-gramの作り方
word2vec以降の技術、LLM
- ざっくり歴史
- LSTMはword2vec以前からあったが、データ数の問題、計算資源の問題からなかなか実装できなかった。
- 昨今のWebデータや計算資源の低コスト化、あるいは深層学習研究の進展によって一気に自然言語研究が進んだ。
- word2vecの革命!により、言語を数値で扱えるようになり、LSTMを初め深層学習が進んだ。
- Transformerにより暗中模索から進むべき道ができ、研究が急加速中。
概念 | ざっくり言うと | Qiitaでの解説記事 | 元論文 | 公式サイト, GitHub | |
---|---|---|---|---|---|
1997 | LSTM | 従来のRNNを改良し長期記憶を可能にした。 長い単語の列=文章として把握できるようになった(ただ、attentionを待つまでは長期記憶が難しかった。 |
Long short-term memory | - | |
2013 | word2vec/Google | 単語の意味を理解したいができないので頻度等を見ていた →word2vecは単語をベクトルで表現できる →ベクトルの近さで意味の近さを →擬似的にだがコンピュータが単語の意味を理解できるようになった |
Word2Vecを理解する | Efficient Estimation of Word Representations in Vector Space | - |
2017 | Transformer (Attention) /Google | RNNによるエンコーダー・レコーダーモデルはいいが、遠いところにある単語の意味は忘れてしまう →attentionとはある単語を理解するときにどの単語に「注意!」したらよいかの重み付けを行うこと →RNNやCNNなしでattentionのみで過去のモデルを凌駕。以降のモデルのベースとなっている |
深層学習界の大前提Transformerの論文解説! | Attention is All You Need | - |
2018 | BERT/Google | Transformerをベースとしている 穴埋め問題、次の語問題を自分で学習し、ジャンルを問わないファインチューニング可能なモデルを作成 →以降の大規模言語モデルの流れを作った |
自然言語処理の王様「BERT」の論文を徹底解説 | BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding | GitHub:google-research/bert |
GPT-1/OpenAI | Transformerをベースにし、事前学習と転移学習を実施。自然言語処理で多くの成果。 | ここまでのGPTの流れを振り返る。 | Improving Language Understanding by Generative Pre-Training | - | |
2019 | GPT-2/OpenAI | 学習量、パラメーターを増強。 | 同上 | Language Models are Unsupervised Multitask Learners | OpenAI API / GitHub:openai/gpt-2 |
2020 | GPT-3/OpenAI | GPT-2をさらに増強。ほぼ人間の文章と話題に。 | 同上 | Language Models are Few-Shot Learners | OpenAI API / GitHub:openai/gpt-3 |
2022 | GPT-3.5/OpenAI | GPT-3.5をさらに増強。 | ここまでのGPTの流れを振り返る。 | OpenAI API | |
PaLM/Google | 会話重視だったLaMDAに文章生成等を増強 | ||||
GPT-4/OpenAI | GPT-4をさらに増強。 | 同上 | GPT-4 is OpenAI’s most advanced system, producing safer and more useful responses | ||
PaLM2/Google | PaLM2 Technical Report | PaLM2のご紹介 |
LLMの大きな3つの種類
従来は大量の自然言語文書を学習データとして、エンコーダー(文書から抽象的な概念を学習)し、デコーダー(抽象的な概念から自然言語にもどす)ということが必要だった。それぞれに特化、両方ができる系統にモデルが進化している。
出所: The Practical Guides for Large Language Models
- エンコーダー系
- BERTなど
- 質問応答(対話ではなく回答となる文を文書中から見つける)、文の比較などが得意
- デコーダー系
- GPT、LLaMA、PaLMなど
- 要約や対話生成などが得意
- エンコーダーとデコーダー両方
- BARTなど
- c.f. 言語理解AIの仕組みと使い方--「BERT」「GPT-3」はどう使うのか?
その他参考になる記事
- Qiita大規模言語モデルの全体像をざっくり理解する
- その他細かなLLMの進化系統樹もある
- Qiita【GPT】大規模言語モデルまとめ
- 関連概念の解説等もあり
- Zennフリーで使える日本語の主な大規模言語モデル(LLM)まとめ
- 大規模言語モデルのソースと論文一覧
Web Sevices
Web Services | 概要 | Qiitaでの解説記事 | 公式サイト | |
---|---|---|---|---|
2022 | ChatGPT/OpenAI | GPT-3.5をベースとし、会話ができるUIを公開 | ここまでのGPTの流れを振り返る。 | ChatGPT |
Bing AI Chat/Microsoft | GPT-4を使用。情報提供を主眼。 | Bing AI Chat | ||
2023 | Bard/Google | PaLM2を使用 | 【ChatGPTのライバル】Google Bard とは | Bard |
学習コンテンツ
Webコンテンツ
- LLMをPythonで扱う
- Hugging FaceのNLP Course
- LLMのモデル等を集めたHuggingFaceが提供しているコンテンツ。
- 自然言語の基礎からLLMの取り扱いをTransformers(TransformerではなくてLLM等を扱うための自然言語処理ライブラリ)を用いて基礎から学べる
- Hugging FaceのNLP Course
- プロンプトエンジニアリング
- Chat系AIから得たい回答を得るための質問し方のテクニック
-
Prompt Engeering Guide
- 日本でChatGPTに対するプロンプトエンジニアリングに関する基礎が学べる
書籍
LLMの進化が早く正直書籍は追いついていない感じだが、書籍でじっくり学びたい方向け。
-
LLM基礎
- 岡野原大輔, 大規模言語モデルは新たな知能か, 岩波書店
-
- 6/20刊行とのことで本記事執筆時点では未刊ですがPFNの岡野原さんの書籍なので間違いなし!
- 岩波のこのシリーズは技術書ではなく一般向け啓蒙書かつ縦書き200ページ未満なのでほんのさわりと思いますが入門には良いでしょう。
-
Python
- 山田 育矢ら, ディープラーニングによる自然言語処理 (Advanced Python 2), 共立出版
-
- Pythonコード付きの和書では現時点で一番新しい2023/05/08刊行。
- AllenNLPライブラリによる。BERTメインの実装例だが、GPTについても解説あり。
- だが残念ながらAllenNLPは開発終了してメンテナンスモードとなっている
- Lewis Tunstallら、中山 光樹翻訳, 機械学習エンジニアのためのTransformers, オライリージャパン
-
- HuggingFace開発者によるTransformers解説本。
- Transformersというライブラリを用いて、Transformer技術を解説している(ややこしいが、Transfomerは自然言語処理技術で自然言語処理ライブラリがTransformers)
- 自然言語処理ライブラリはまた色々有るので別途調査が必要だけれどHuggingFaceのだから当分大丈夫かと。上記のAllenNLP本を除く和書だと現時点で一番新しい2022/08/05刊行
- Transformersベースで進めるならば前述のNLP Courseと併せ必読か。
- Denis Rothman、黒川 利明訳, Transformerによる自然言語処理, 朝倉書店
-
- Transformer、BERT、GPT-2、GPT-3の解説とPythonコード。
- 『機械学習エンジニアのためのTransformers』はライブラリとしてのTransformersの解説に重きだが、本書は技術のTransformerの解説に重き。2022/04/11刊行なので比較的新しく基礎を学ぶには良いと思う。
- 原著のコードGitHubがあるPacktPublishing/Transformers-for-Natural-Language-Processing
- TransformersやAllenNLPを用いている
- Sowmya Vajjalaら、中山 光樹訳, 実践 自然言語処理 ―実世界NLPアプリケーション開発のベストプラクティス, オライリー・ジャパン
- 技術の解説・コード例ということではなく現実の問題への適用集。
- テキスト分類、情報抽出、チャットボット、情報検索、トピックモデル、要約、推薦システム、機械翻訳、質問応答システム
- SNS、Eコマース、医療・金融・法律への適用事例
- 日本語版のみ巻末に日本語自然言語処理ライブラリSpaCyの解説記事がある。
- 本書の公式サイト https://www.practicalnlp.ai/
- 本書のコード例ノートブック Practical Natural Language Processing
- ライブラリとしてTransformersなどを用いている
- Yoav Goldberg、加藤 恒昭ら訳,自然言語処理のための深層学習, 共立出版
-
「【データ分析の必読10冊+差をつける10冊+100冊超】データサイエンス、データ分析、機械学習関連の本」の「テキストマイニング、自然言語処理」の項にちょっと古めですが入門に良い本や、テキストアナリティクス系のほんの紹介を書いております。