おじさん、フェイスブックの友達に大学教授とか大企業の社長とかCTOがたくさんいます。
だけど、誰も生成AIについてつぶやきやブログを書いていません。
かわいそうに誰も生成AIについていけないのね。
歳を取るって怖いねぇ。
おじさん、毎日必死にコード書いて、LLMの勉強しているのに。
おじさん、今週は特にLLMで使われている、transformerのattentionのbackwardの計算方法を勉強しています。
forwardの計算は上の図のように順番に計算するのでひたすら図の通り計算するだけ。
だけれど、attentionのbackwardの計算方法ってどこにもまとまった資料がない。
まぁ人間じゃ計算できないくらいめんどくさいんだろうなぁ。
Pytorchってホント凄いよね。autograd機能でbackwardなんてわかんなくても勝手に計算して求めてさらに最適化までしてくれます。
この分野って誰に聞けばいいんだよ!
だけど、最近ついにC言語でattentionのbackwardの計算を実装した人が現れました。
GPT2相当なら90分で0からモデルを作れるらしい。
今日このブログを書いてるときに出来たらしい。
llm.c
https://github.com/karpathy/llm.c
OpenAIの創業メンバーのおっさんがOpenAIをやめて暇つぶしで書いてんのね。
4月からこの二か月間すげー勢いでコミットしている。
https://en.wikipedia.org/wiki/Andrej_Karpathy
というかこのおっさんautogradの第一人者じゃないか。
llama.cppの元のllama2.cも書いているし。
すげーなー。
みんなが手軽にLLMの研究をできるようにLLMの重要な技術のほとんどを簡単で動かしやすいコードで解説しているじゃないか
https://github.com/karpathy/nn-zero-to-hero?tab=readme-ov-file
どうやら、このおっさんのYoutubeとコードを見るとattentionのbackwardの計算ができ、スタンフォード大学のAIの大学院に行かなくても卒業と同程度の知識を得られ、ヒーローになれるっぽいです。
まぁ円安だしね。こやってyoutubeでお金をかけずにAIの勉強できるんですね。
おじさん、これらの理論だいぶ前から全部知ってんですが、全然ヒーローになれません。
いったい何がいけないんだろ。
だけど、今週ずっとこのコードをみて、ついに、attentionのbackwardがわかってきた。
まだGPT2相当で限られたattentionしかbackwardできませんがコードを少し改良すれば、日本のスパコンでもLLMの学習ができるはず。