BERTらへんの勉強、動向の追い方
BERT詳しい人、自分もやってるよ!て人がいたら雑に共有してくれたら嬉しいmiyamonz.icon 自分の知ってる範囲で適当に書いていくので、足したりつなげたり勝手にやってOK
smallサイズがBERT-Baseと同程度の性能
個人のGPUでも数日で事前学習ができる!
なので触っている。いま日本語で事前学習やろうとして四苦八苦してる
/Icons2/へえ〜.iconimo.icon
大量のGPUを積み重ねて稼働させている印象があったから、意外
なんでCPUじゃなくてGPUなんだろう、と疑問を持ってたなりに調べてなかったけど、以下の記事の通りなのかなimo.icon
画像認識を例にとりましょう。犬の画像をニューラルネットワークに投入すると、たくさんのパラメーターをもとにそれが犬であると認識します。それができるようになるまで、たくさんの画像をニューラルネットワークへ投入し、どのパラメーターに着目すれば正解に近づくかという重みづけの調整を繰り返すのです。
このとき犬の画像自体もコンピューターの世界では数字の羅列であり、どのパラメーターに重みを置くかというのも重み行列という数値で表現しています。このパラメーターの数はとにかく膨大です。そのため結果的に何百万・何千万という計算を繰り返すことになります。
この時行っている主な計算というのが、重みの行列に別の行列をかけて足し合わせる「行列の積和演算」という処理であり、実はこの処理が三次元のグラフィックスのポリゴンを移動させたり回転させたりするときの行列演算とそのまんま同じだったんですね。
要するに並列計算できて速いからですねmiyamonz.icon
本来GPUは画像とか動画の処理をするものだったんですが
画素ごとに同じ処理を同時にドバっとできる
それをつかって行列計算をする活用が生まれた
行列の積の成分は各行・各列の内積で、成分間の依存がないので、全成分を同時に(並列に)計算できるyosider.icon
(ム、ムズいな…imo.icon)
また今度自分の知識が追いついたら首を突っ込んでみますっ
行列の和でも同じで、$ (a_1,b_1)+(a_2,b_2)=(a_1+a_2,b_1+b_2)みたいに成分ごとに計算できる(b成分を計算するのにa成分の計算結果を待つ必要がない)ので、a成分とb成分を同時に計算できる、みたいな…yosider.icon
CPUだと逐次的に処理するので、a成分を計算してからb成分を計算するけど、GPUは並列に処理できて、a成分とb成分を同時に計算できる
うお~こうやって丁寧に教えてくれるのマジで嬉しいです…話の内容が分かるくらいにはなりたいなimo.icon
こちらこそ、もっと分かりやすく伝えられるようになりたいですね~yosider.icon
ただ、ELECTRA以外のBERT関連のモデルは詳しくないですmiyamonz.icon
愚直に目にするやつの論文を読むのも時間がかかるし面倒…