言語モデル

言語モデル#

文章が生成される確率を推定したい。 もっともらしい(確率的にありえる)文章を生成したい。

P()>P()

文章をトークンに置き換えて考えると、文章の確率ではなくトークンの同時確率として扱うことができる

P(,,,,,)

記号にすると、ある文章Sをトークン化したのを(w1,w2,,wn)とすると、

P(S)=P(w1,w2,,wn)

を求めたいということになる。これは条件付き確率の積として表せる

P(w1,w2,,wn)=P(w1)×P(w2|w1)×P(w3|w1,w2)×=i=1np(wi|ci)

ここでciwiより前のトークン列ci=(w1,w2,,wn)で、文脈(context)と呼ばれる

言語モデルの位置づけと活用#

この言語モデルの考え方がNLPではベースとなっている。

この派生で、DNNを使うword2vecがあったり(word2vecはcontextがwiの前後n個という感じでやや違うが)、

「contextは時系列的な関係がある」ということで系列性を扱えるRNNやLSTMを使う流れが生まれたり、

「RNNやLSTMは勾配消失の問題がある」ということでTransformerを使ってBERTやGPTを使ったり

「もっと大規模な表現力の高いモデルに」となりLLMに派生していった