Morning Spinach March
2023-03-01
- 04:45. 昨日の昼間ミーティングで眠気を抑えるべくカフェインを採ったら案の定睡眠が mess されてしまった。
- ぱぱっと Podcast 用意して出すべし。
- いちおう一回くらい聞くか・・・。
- 聞きつつ gdrive の使い方を調べましょう。
- うごかねー :-(
- もうめんどくさいのでブラウザからポイっと upload してみるか 50GB のファイル群を・・・。17 時間かかるらしい。クラッシュしませんように。なお上りは 1.5MB/s くらいです。しょんぼり・・・。
- さて、このボランティア活動はこのへんで wrap up として、次なにやるかな・・・とメモを見直す。
Next Project: LLM 冷やかし活動
- LLM 流行ってるしおもしろそうなので、教科書的には理解しておきたいなという気分がある。教科書的な理解というと曖昧だけど、学部生的理解とでもいえばいいかな。実践できるスキルや知識ではないが、それが何なのか一定程度わかっている、みたいな。CS 卒業してればボンクラでも仮想記憶とかプロセスとか GC とか一応わかっている、という程度に LLM というか language model というものを理解したい。マルコフ連鎖のごついやつでしょ、とか口走らないようにしたい。
- 具体的には以下のような疑問に答えたい:
- なぜあんなにパラメタがクソでかいのか知りたい。アーキテクチャがわかればこの答えはわかると思うので、つまりアーキテクチャを把握したい。
- なぜマルチタスクに出来るのか知りたい。これむかし向井さんが BERT を紹介してくれたときに出てきたけど、よくわかんなかったのだよね。
- その他自分の知らない重要なアイデアがあれば、それも知っておきたい。
- ステップとしては:
- 一般人向けにかかれた読み物を何本か読んで、心の準備と重要なアイデアをポップカルチャー的に把握する。願わくば重要な論文とかもリンクされていると期待できるので、そういう reading list も可能ならつくっていく。
- Reading list が揃わなかったら、なんらかの新しいサーベイを探す。ML 分野やたら論文あるので、きっとサーベイもあることでしょう。
- Reading list のうち重要そうな論文 (GPT-3 とか?) をよむ 。理解はできない。
- 理解するのに必要な論文を backtrack しながら読んでいく。
ここで、いちおうその重要そうな論文は理解できたことにする。
と、ここまでできれば満足であろう。以下はストレッチ項目:
- 大企業各社の出している LLM 関係の論文をいくつかひやかし、どういう違いがあるのか見てみる。
- なんらかの実装のコードを読んで見る (nanogpt とか?)
- 何らかの pre-trained な小さいモデルを持ってきて hello world してみる。
といったところかな。
2023-03-02
- 04:05. さて本題に入る前に調べものがございますのでそれを軽くやります。
- さてそれはいいとして一般向けLLM読み物を探しましょう。ちなみに HN search で適当にさがすというひどい探し方をしています。
- 10 本前後あつまったが全部よむ必要があるとは思えないな。
- 一本目:
What Is ChatGPT Doing … and Why Does It Work?—Stephen Wolfram Writings - Wolfman Language に GPT-2 が入ってるの面白いな・・・。
- Token のリストからの選択に乱数性をあらわす "temperature" というパラメタを使う。
- GPT-2/3 以外の話は全部知ってる話で、肝心な話は具体性が足りなすぎてまったくわからない・・・。重みを二次元の画像として可視化してもなんもわかんないよ!
- ただ GPT-3 でなく 2 (あるいは 1?) の論文から始めるほうがよさそう、ということはわかった。
- 途中ですが時間切れ。
2022-03-03
- 05:10. カフェインをとったわけでもないのに睡眠を mess してしまった。もう時間ないけど、ちょっとだけ読み進めるべし。
- What Is ChatGPT Doing … and Why Does It Work?—Stephen Wolfram Writings 読了。あまりに philosophical であった。ただカッコだけの言語で train すると何が起こるか、みたいな実験は面白い。こういうのできたらよいね。あと Aligning language models to follow instructions も読むとよさそうなことがわかった。
- 引き続きポップカルチャー読み物を消化していきます。
- Large Language Model: world models or surface statistics?
- なんらかの philosophical discussion だとうと思って読み始めたら、オセロの盤面で GPT を train する(とわりかし間違えずにオセロできるようになる)という話だった。面白いな。こういう用途なら手元で動くようなモデルでも遊べるかもしれない。
- しかし model に介入するというところはよくわからなかった。まあいいです。
2022-03-04
- 04:30.
- How does GPT Obtain its Ability? Tracing Emergent Abilities of Language Models to their Sources
- 正直この文章がなんなのかよくわかっていないが、HN にあったので。
- In-context learning, Chain-of-Thought, Reinforcement-with-Human-Feedback など、どこかで聞いた単語が登場するが、なんなのだろうね。
- コードで train するのがモデルの賢さを高めている、とか書いてあってほんまかいなという気になる (hard evidence はないらしい). 日頃からコードを読んで鍛えている我々プログラマ、普通の人類より賢いのでは!? (programmer supremacism)
- めちゃ新しい論文がリンクされまくっており、みんながんばってんのね、ということがわかった。OpenAI ストーカーとして圧倒的実力を発揮しており素晴らしい。LLM というものを理解する上でこんなに OpenAI 中心にものを考えるのが良いのかはよくわからないが、ポップカルチャー的には正しい態度とも言える。
- LLM だけじゃなくて、上に出てきた buzzwords もなんとなく理解したいもんだねーそのうち。
- A Closer Look at Large Language Models Emergent Abilities
- ちょっと寄り道して同じ人が書いたブログ(?)をもう一本読んでみる。
- GSM8K という算数問題データセットがあるらしい。へー。そして OpenAI である。インターナルには 8M くらいもってるのでは。テックカンパニーは問題集の出版社でも買収して問題つくらせればよくね? (such a jerk!) MathQA というのもある。
- 自分は math では LLM に勝てない気がするが、特に何の悲しみもないな・・・。
- "prompting" と fine-tuning の違いがわからん。まあ何も論文読んでないので当然である。
- [2201.11903] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models これがメジャーなやつっぽい模様。Google いい researcher いるんじゃん。しゃちょーさんのご乱心にとばっちりして嫌気が刺さないよう気をつけてな。
- OpenAI は ChatGPT 以外もそれなりに API-accessible にしていて偉いね。Google など他の大手もそうしないと、こうやって外野に評価してもられないのでは。
- 先の記事の補足としてちょうどいい感じだった。よき。
- On Emergent Abilities, Scaling Architectures and Large Language Models — Yi Tay
- ついでにもういっこリンクされてたやつ。
- 細かい LLM のアーキテクチャの違いとかでモデルを巨大化したときの "emergence abilities" の性能に差がつくことがあるが、そういうのってモデルはでかいし評価すべきタスクは色々あるしで評価するのが大変。困ったね、というような話。まあががんばってくれや。
- しかし small model を fine-tune しても large model の "prompting" に勝つ日はこないなら、人類は PyTorch のことは忘れておとなしく OpenAI の API を呼べということだよな。
- まあ LLM のあとにはこういうのをよむと良さそうというのがわかった日でした。明日からはまた初歩的なモデルの構造とかの話を読んでくぞ。なおまだ論文には進まず pop culture が続きます。
- ちょっと時間があるのでかるく次もひやかすか
- How GPT3 Works - Visualizations and Animations – Jay Alammar – Visualizing machine learning one concept at a time.
- やばいくらい情報量のない記事だなこれ・・・
- The Illustrated GPT-2 (Visualizing Transformer Language Models) – Jay Alammar – Visualizing machine learning one concept at a time.
- これを見たほうが良いっぽいが・・・。これなら論文よむ方が良さそうな雰囲気だなあ。
- The GPT-3 Architecture, on a Napkin
ちらっとみると、やはりこんなのよりは論文みとけという雰囲気である。 - というわけで論文リスト
Understanding Large Language Models -- A Transformative Reading List - GPT1 の論文がどれかわかってなかったが、これでわかった。めでたい。そこからだな。ついでに "RLHF" とかの論文もリンクされていてよい。
- というわけで明日はいよいよ GPT1 です。読んでくぞー。
2023-03-05
- 05:30. 起きられず
- Improving language understanding with unsupervised learning
- 掴みくらいはよんどくべ。
- GPT = Generative Pre-Traiing か。その上で Discreminative Fine-Tuning をしろということらしい。
- 肝心の transformer decoder は mountain view の方の論文を読まんとあかんらしい・・・
- [1801.10198] Generating Wikipedia by Summarizing Long Sequences
- Matrix を softmax にいれると u の probability が出てくるのがなぜかわからないこの math 力のなさ・・・。
- チート記事と照らし合わせると自分は u を誤解しているな。これは次の単語の probability ではなく、入力の "decode" 結果なのか。しかしこれがなにを予測しているのかわからん。やっぱその論文よまないとだめだな。
- 時間切れ。
2023-03-06
- 04:05. やむにやまれぬ事情から前日午後 7 時にカフェインを摂取したため起きられてますが、昼間が辛い一日になることでしょう.
- さて一番重要な 3.1 Unsupervised pre-training がわかってませんが、睨んでいてもわからなそうなので一旦論文を最後まで読み、そのあと理解に必要な資料を探すことにしましょう。登場する変数が説明されてないんだからわかんなくても俺のせいじゃねー。
- さて fine-tune している各種タスクだが、微妙にわかるやつとわからんやつがあるね。Classification と Similarity, Multiple Choice までいいが、Textural Entailment とはなんぞや。そして Question Answering and Commonsense Reasoning もどうすればいいの?
- Textual Entailment
Textural Entailment は { Text, Hypothesis } -> {Entailment, Contradiction, Neutral} という問題らしい。 - Question Answering, Commonsense Reasoning は Multiple Choice で、別に自然言語で回答するわけではなく選択肢を選ぶ。
- どのタスクも "traversal-style" すなわち入力に特別な構造はなくて delimiter をつあって concat するだけ、かつ LM のあとも linear layer 一個だけ、という素朴な構造。この traversasl style は前例はあるが一般的ではないとしている。ですよねえ。無茶だよな。
- training data は BookCorpus で、これはもともと smashwords という indie ebook サイトから無料なものをダウンロードしてきたらしい。Copyright は各著作についているが、常識的に考えて再配布できないですよね。しかし huggingface などで普通に配布されており、やべーなこいつら。まあいいです。Move on...
- 比較されている他のモデルも何らかのデータで pre-train されているのかなあ。ELMO とはされてるんだろうけど。まあ、何らかの形でされているよな多分。
- Zero-shot learning のスコア。Zero-shot learning ってどうやって可能なのか全然わかっていなかったが、創意工夫なのだね。Sentiment analysis. とか、[本文..., very] と feed して "positive" と "negative" の probability を比較するとかいっている。何でも zero-shot できるわけではなさそう。
- でも Question Answering も zero-shot できるのか。クラウド業者が LLM as as service を売るときはこういう創意工夫が出来る程度には細部を expose してほしいもんです。OpenAI の API とか眺めればなにかわかるのかもしれない。
- まあいいです。面白いね。
- そして懸念である model の謎を解くべくなんかよむべし。
- ところでふと文献を見ると Attention is All You Need は translation しかやっておらず、LM をつくった BERT は GPT のあとなのだね。競争の激しい分野である。
- [1801.10198] Generating Wikipedia by Summarizing Long Sequences
- "Transformer decoder" paper (のはず).
- 要約をするにあたり元の文から word を extract するのではなく generative にやるぞ、という話らしい。
- Wikipedia の引用記事とタイトルでぐぐった結果のページから Wikipedia の記事を generate する、というプロジェクトらしい。熱いな。
- ところで今気づいたが GPT の parameter size のセクションをすっかりスキップしてしまったな。アーキテクチャがわかったら戻って眺めます・・・。
- それにしても transformer まったく解説されていない!超不親切だな Mountain View の会社・・・。
- 一方、LM の定式化が書いてあって気づいたが、もしかして GPT の出力にでてきた token の probability のリストは P(w_i|(...,w_{i-1})) 的な各 token の条件付き確立なのかな?それなら全部かければいいということになるが、そうなの?
- まあいい。Transformer block を理解するには何らかのチートが必要。チートシートさがすべし。
- 大量のゴミのなか、2,3 個はまともっぽいのが発掘された。ゆるそうな順に読んでいくべし。しかし今日は時間切れです。
2023-03-07
- 04:07. やってくぞ!
- [2207.09238] Formal Algorithms for Transformers チートシート論文。
- "The reader is assumed to be familiar with basic ML terminology and simpler neural network architectures such as MLPs." MLP くらいならわかる気がするよ!
- "Despite their popularity, it seems no pseudocode has ever been published for any variant. Contrast this to other fields of computer science" そう思ってたのあたしだけじゃなかった!
- "Some 100+ page papers contain only a few lines of prose informally describing the model [RBC+21](...) No pseudocode. No equations. No reference to a precise explanation of the model." そうだそうだ! もっと言ってやれ!
- 期待が高まるじゃん。
- Tokenization - 色々あるが "Byte Pair Encoding" が人気。そのうちひやかす。
- positional embedding / encoding って昔は sin とか謎のハードコードだったけど、今は learn するのだね。
- "It will be useful to define the softmax function for matrix arguments" そうですよね。
- GELU ってなに....というと、モダン ReLU なのか:
[1606.08415] Gaussian Error Linear Units (GELUs) - GPT のアーキテクチャわかった。この paper は神。
- 明日もう一本くらい補足資料を読みたい感じだな。
- 社内名簿をさがし、著者に「神論文でした!ちょうさんくす!」とメールしておく。
2023-03-08
- 04:40.
- さて昨日の Phuong-Hutter 論文を改めて軽く眺めます・・・。
- Encoder-Decoder, Encoder-only, Decoder-only と三種類もあるのに混乱しかけていたが、冷静に考えるとまあ納得だよな。
- E-D は翻訳なので、まず原文を encoder した上で、encoded な原文を参照しつつ翻訳を generate (decode) していくわけだ。そして原文は全部みえていいから mask せず、翻訳は先を見たらチートなので mask する。
- Decoder-only も別に違和感はない。
- 奇妙なのは Encoder-only で、何が奇妙かというと mask しないので先を見てしまっていることだよな。だから BERT の task は穴あき文を埋めるみたいなヘンな構造をしているのだね。Decoder-only の方が自然な感じがする。だから良いかと言うと、知らんけど。
- Decoder-only にしても、ちょっと不思議だよね。出力は単語の出現確率のリストで、リストの一番目は一番目の次(つまり二番目)の単語の予測、二番目はの出力は三番目の予測 .... N 番目の出力は N+1 番目の予測となっている。そしてほしいのはこの N 番目の出力だけである。なぜなら一番目の予測である二番目は入力に含まれているのでわかっているからである。
- にもかかわらず、loss の計算にはN 個目だけでなく全ての出力を使っている。N-1 個までは答えを知っているから(モデルの作りによっては)答えをチートしてしまえるはずで、でも mask で隠してあげているからチートはしていない、という紳士協定(?)によってこの loss が成立している。N だけ使うのじゃダメなのかな?まあ全部使ったほうがお得な感じはするけれども。
- まあいいです。この論文は印刷したので手元においておくべし。
- GPT-2 に戻りたいが、その前にこの論文と似たようなブログ記事を冷やかすターン。
- The Transformer Family Version 2.0 | Lil'Log
- 自分には advanced すぎる内容だが、attention span を長くするために人々が色々な工夫をしていることがわかった。色々ありすぎるので、GPT-whatever などの自分が読む論文に出てきたアプローチだけを理解するくらいで良いでしょう。
- Better language models and their implications -> Language Models are Unsupervised Multitask Learners
- GPT-2!
- "language provides a flexible way to specify tasks, inputs, and outputs all as a sequence of symbols. For example, a translation training example can be written as the sequence (translate to french, english text, french text)." ずっとこういうビジョンでやってたのだねえ。類似研究もあるらしいし。
- "To do this we only scraped web pages which have been curated/filtered by humans. Manually filtering a full web scrape would be exceptionally expensive so as a starting point, we scraped all outbound links from Reddit, a social media platform, which received at least 3 karma. This can be thought of as a heuristic indicator for whether other users found the link interesting, educational, or just funny." Web はゴミばかりなので WebText というクロールデータを集めるにあたっては Reddit を頼りました。ウケる。
- Tokanization は例の Byte Pair Encoding だが、なんかいじってあるらしい。GPT1 は spacy の実装を使うだけだったので、素朴だったね。
- "2.3. Model" はちょうあっさりで、GPT1 をすこしいじりました、としか書いてない。いいんだよ絵で書いてくれても・・・。まあいいです。
- Q-and-A system のデータセットでは 4% 正解。これは相対的には大したこと無いが、たまに答えが返ってくるのはまあ、面白いよな。Hugging Face で試してみたら全然答えてくれないけど、なんらかの conditioning が必要なのだろうか。
- "the zero-shot performance of GPT-2 is still far from use-able" 四年前はこんなかんじだったのだねえ。
- LM による Generative vs 従来の ML の Extractive というテーマがあるわけだが、generate するってめちゃ語彙あるよな、という素朴なびっくり感が未だに拭えない。そうした無限の語彙(というのは token レベルじゃなく compound なレベルで) から確率的に言葉を紡ぐのだねえ LM さんたちは・・・。
- しかし Q&A 含む各種タスクをどうやって GPT2 に feed したのか全然書いてないな。そういう "prompt engineering" のやり方がキモなんじゃないのかね。結果だけ載せてさ・・・。
- やっぱ学会通した paper でないと単なる企業ブログやプレスリリースとかわらんねえ。しかし大企業の AI 部門が出すこの手のデカデカモデル訓練終了のお知らせは学会通す気ゼロなので、あまり真面目に読んでも仕方ない。
- 明日は GPT-3 をやる気なく読みます。
2023-03-09
- 04:50. 朝起きる気合が足りてない。眠くはないのだが・・・
- さて [2005.14165] Language Models are Few-Shot Learners
- うげ 75 pages か。長いな。
- お、in-context learning という言葉をつかっているぞ。GPT-2 みたいなやつのことなのだね。
- Sparse Transformer というのを使っているらしい。
[1904.10509] Generating Long Sequences with Sparse Transformers - GPT-2 と違い、Common Crawl というデータセットを cleanup して使う。"The Common Crawl corpus contains petabytes of data collected over 12 years of web crawling. ". 10 年以上前からあるのだねえ。これが S3 にしかなくて GCP においてないあたり、GCP の頑張りのなさを感じるよな。Public data はぜんぶミラーしてくれ。なお使ったのは最近の 45TB ぶんで、フィルタしたあとは 500GB. べつに petabytes 使っているわけではない。その 500GB や WebText を公開しないあたり、Open じゃない AI であることよ。
- あとは例の Reddit からリンクを集めた WebText も引き続き利用。
- training は "we use a mixture of model parallelism within each matrix multiply and model parallelism across the layers of the network" って行列の掛け算すら単一 GPU に収まらないのか・・・どんだけ・・・。
- Chapter 3 はひたすらテスト結果の紹介である。モデルサイズによってビューンと伸びるものもあれば、収束してるっぽいものもありますねー、Zero-shot とくらべると Fw-shot はいいですねー、というのの繰り返し。
- Fire 3.16, 英単語の意味を教えて例文を書かせる。やー GPT 単語帳やりたいなー。それと Anki があれば英単語暗記は solved problem for-free じゃん。
- Limitations. "samples still sometimes repeat themselves semantically at the document level, start to lose coherence over sufficiently long passages, contradict themselves, and occasionally contain non-sequitur sentences or paragraphs." 人々が騒ぐ以前に登場時点から既知である。
- "scaling pure self-supervised prediction is likely to hit limits, and augmentation with a different approach is likely to be necessary." それがあこのあと出てくる論文たちということなのだろうねえ。というか "Promising future directions in this vein might include learning the objective function from humans [ZSW+19a], fine-tuning with reinforcement learning, or adding additional modalities such as images to provide grounding and a better model of the world" すべて予告されている。
- "Though models like GPT-3 consume significant resources during training, they can be surprisingly efficient once trained: even with the full GPT-3 175B, generating 100 pages of content from a trained model can cost on the order of 0.4 kW-hr, or only a few cents in energy costs." よくコストで騒いでるけど、実際は言うほどでもないのかな?
- とにかくでかくしたら色々できるようになった、という論文だった。アーキテクチャには新しさはないかもしらんが、他社に先駆けサイズをバーンを 10x することでいち早く新しい知見を導いて競合を引き離したのはビジョンがあってイノベーティブと言ってよいのではないだろうか。
- GPT-2 の論文よりはたくさん context (prompt) の例が載っている。
- 時間切れにつき今日はここまで。明日は reading list 再整理かな。
2023-03-10
- 04:20.
- Figma のリクルータからメールが来た。あのひとたちこのご時世に hiring してんのね。しかし wasm だってさ。なんも知らん。
- さて GPT-3 のあとに何を読みましょう。
- 要素技術 (Byte Pair Encoding, Sparse Transformer) を読んでみたい気もするが、細かい話なのであとにすべし。
- In-context learning はじめ様々な buzzwords についての論文を読んでいきたい気もするが、なにしろ量が多すぎてどこから始めたものやらである。
- まずは OpenAI の GPT-3 改善論文を探し、一旦 ChatGPT までたどり着くのが良い?
- チートシート Illustrating Reinforcement Learning from Human Feedback (RLHF) 論文いっぱいあるなー・・・。まずこのチートシート自体をよむか。
- "Proximal Policy Optimization" (PPO) という RL アルゴリズムがあるらしい。
- KL-divergence...そのうち読んで表面的に理解してあげるからね... しかしそんなには重要でないっぽく、ある種の regularization factor として使われている。
- Human feedback は集めると "reward function" を作れるらしいが、まったく自明でないな。
- Human preference の他に well-written text も必要とされているが、よくわかんないなあ。
- 勤務先も human feedback を社内で集めていると報道されているが、レイオフ真っ盛りのなかでそんなん知るかよって感じだよな。ほんとちぐはぐだよね。まあいい。
- LM に対する RL はかなり early phase という感じで、ぜんぜん決定打はない模様。色々読んでバリエーションを理解するのは難しそうなので、OpenAI のやってるやつだけよむことにしょう。ただ RL をまったくわかってない問題があるね。いちおうInstructGPT の論文を読み、そこから参照されている RL 関係の論文をよむ、ということにしておこう。RL はそのうちちゃんと勉強したいと思いつつはや 五 年くらい経ってますねえ・・・これなー・・・。PPO が出てくるなら読んでみるかとおもったが、検索しても載ってる様子なし。
- しかし!OpenAI がオンラインに RL チュートリアルを書いてくれている!Introduction — Spinning Up documentation これをそのうちチラっと読もうではないか。
- Aligning language models to follow instructions
- さて InstructGPT です。また 70 pages くらいある・・・
- データのラベル付け(詳細はあとで出てくる)、模範解答の執筆、比較採点。ずいぶん色々人間にやらせておる。API から submit された模範解答(を submit できるのか)も使ってるというので、機密データを OpenAI に渡すのは微妙?どのAPIなのだろうな。
- ”Alignment tax" Instruct すると instruct の対象になっていない NLP task のスコアが下がる。なんらかの小細工で tax を減らせる。
- OpenAI 自身の prior work: [2009.01325] Learning to summarize from human feedback
- まず prompt をあつめるのか。これが API に submit されたデータ。出所は playground (もう存在しない) なので、さすがに paid customer のデータは使っていなかった。
- 採点にせよ模範解答にせよ、このデータセットの質は超重要なのでは・・・。Crowdsource ではなく contractor を使っている。そのうち正社員を雇うようになりそうね。訓練用模範解答書くとか普通のラベル付け以上に心が摩耗しそうだが、Language model を自分色に染められるならアリか?この論文では数万件のデータだけど、たぶんもっとほしいよね。でも upwork とかじゃなくてもうちょっと出所のしれた人間を雇える方が良さそうだが・・・。
- Labeller に "sensitive topic" への繊細さなどをチェックする採用試験があるらしい!世紀末感あるな。Appendix B を見よ。
- Labeller, ゲームや映画の staff roll みたいなかんじで about ページとかに名前を載せてあげればやりがい搾取できるかもしれない。
- Reward Model は小さめ (6B) の LM の最後をちょこっといじってスコアを出すようにした上で train するらしい。なるほど。
- 一応ざっと眺めたが、この paper は何が新しいのだろうな。
- 最初の模範解答による supervised fine-tuning は・・・Fine-tuning である。これは昔からやられている。
- ということは、回答を比較してランクづけし、そこから Reward Model をつくり、それをつかって RL する、というところがあたらしいのだろうね。なんとなくそのランキングのデータがあれば RM+RL を介さず LM を直接 train できそうなものだけれど、そうでないのはなぜなのかな?なんか differentiable にできない側面があるのだろうか。
- というか、模範解答全体に対するランキング・スコアを、トークン単位での生成結果にフィードバックするというのはどういうかんじなのだろうね。というと、RM も per-token なのだろうな。でもランキングは per-token ではついていないから・・・よくわからんな。
- ただ模範解答づくりよりは採点作業の方がコストは低そうである。
- 時間切れ。
2023-03-11
- 04:13. すこし雑用があるのでそれを先に。
- さて。これでひととおり ChatGPT まで追いついたと言えるのではないか。次何読もうかな。
- まず取りこぼしリストがあります。Byte Pair Encoding, Sparse Transformer.
- 取りこぼしリストの大物に RL / Policy Gradient / PPO がありますが、RL 勉強するのはかなり気合と時間が必要そうなので、このシリーズの中ではやりたくない。
- 色々なバズワードの把握状況:
- In-Context Learning. これが何かはわかった。ただ世間は「なぜ In-Context Learning が可能なのか」について色々研究しており、そういうのは一本くらい読んでも良さそうである。
- Chain-of-Thought. これ一連の論文では登場しなかったけど、よく見かけるのはなんだろうね。
- Reinforcement Learning with Human Feedback. InstructGPT でだいたい気が済んだ。他の人たちがやってるバリエーションもあるっぽいけど、まそれはいいかな。[2210.11416] Scaling Instruction-Finetuned Language Models くらいは読んで良いかもしれない。
- Prompting/Prompt Engineering. これは GPT-3 登場直後くらいから流行り始めた単語でそれなりに論文もあるが、なんか意味あるのかね。要するに In-context learning を上手にやる tips みたいな話で、モデルを finetune してしまうのに比べると小手先感があるようにかじるが・・・。まあなんか一本くらい読んで気を済ませて良いかもしれない。
- Multi-modal modeling. これがきっと next frontier なのだろうねえ。ちょっと cutting edge すぎて腰が引けるので、まずは他のバズワードからだな。
- といったところですね。他に読んでみたいエリアはあるか、というと他社の LLM の進捗だな。Meta, Google/Deepmind, etc. まあそれも buzzwords 把握後である。
- というわけで、まずはどうでもよさそうな prompt engineering についてなんか読んでみましょう。山のようにリンク集がありますね・・・。
- dair-ai/Prompt-Engineering-Guide: Guides, papers, lecture, and resources for prompt engineering この辺をよむか。
- まあよくまとまっており、論文のリンクもあり、なかなかよいね。
- Chain-of-Thought は prompting の文脈で登場するものらしい。
- ChatGPT というセクション、面白いけど、結局 prompt engineering はベースにあるモデルのデザインによってあっさり無効化されがちで儚い分野だよなあ。ピュアな自然言語でなんかやろうとするより、OpenAI が ChatML でマークアップして構造を与えた prompt で finetune / "instruct" した方が圧倒的に効率的で、そういうのにうまく乗っかる方がよっぽど大事じゃない。
- ところで chatgpt などが会話の文脈を覚えているのが前は不思議だったけれど、API みると自明だね。つまりコンテクストに履歴を詰め込んでいる。API が UI に比べていいところは、失われてほしくないコンテクストを明示的に残しておけるとこだね。
- 要約システムみたいのを併用するとコンテクストにある程度長い会話を詰め込めそうである。以前はそういう "コンテスト" は謎の embeddding みたいのになるのだろうと想像していたが、ふつうに自然言語として要約コンテクストを作る時代の方が先に来そうだな・・・。
- まあ ChatGPT はいいとして、リンクされている興味深そうな論文:
- [2201.11903] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models Chain-of-Thougt 論文
- [2101.00190] Prefix-Tuning: Optimizing Continuous Prompts for Generation
- [2104.08691] The Power of Scale for Parameter-Efficient Prompt Tuning
- CoT はあとにとっといて、まずもうちょっとしょうもなさそうなやつをよむか。
- [2101.00190] Prefix-Tuning: Optimizing Continuous Prompts for Generation
- おもったより面白い話だった。LLM を finetune すると重みがでかくて保存コストなどがかかるので、finetune するパラメタをモデルの外に持つ、という line の研究で、これはなんと入力の sequence の冒頭に "prefix" という形で trainable な embedding をつけるのである!In-context learning で prompt を工夫する、というのを finetune としてやる。よさそうじゃん。
- ただしモデルにアクセスできないとこういう小細工はできないので、OpenAI のひとが GPT API にこういう fine-tune を口を用意してくれる必要がある。
- というか OpenAI の API は finetune の口があったはずだけど、どうやってるんだろうね。ChatGPT のモデルは finetune できないけど GPT3 はできたはずで、このレイヤにあるどのくらいのパラメタを unfreeze してくれてたのだろうな。
- いずれにせよやはり純粋な prompt-engineering はしょぼい、という印象を強調する論文であった。
- [2104.08691] The Power of Scale for Parameter-Efficient Prompt Tuning
- "Our method can be seen as a simplification of the recently proposed “prefix tuning” of Li and Liang (2021)" あ、そうなの。
- ここでもやはり LLM ではモデルまるごとを finetune するのが普通と言っており、そんな気もするけれど、しかしそれはやはり GPT-3 が API ごしに finetune できるという事実と相反する気がするのだが・・・。まああいつらはなんらかの unpublished way で space saving やってるのだろうね。ChatGPT model を finetune させてくれないのはちょっと不思議だけど、単に忙しいとかそいう大したことない理由なのでしょう。
- 論文つづき・・・をよむには時間切れ。
2023-03-13
- 04:17. 昨日は夏時間時差ボケでダウン。今日も眠いがやってくぞ。
- karino2 が bing を褒めており、改めて Bing や Neeva について考える。こいつらは (Neeva では当たり前だが) ChatGPT ではないよな。そのモデルを使ってはいるだろうが。Neeva AI が出てきたときは引用が表示されて ChatGPT との違いにびっくりした (ChatGPT のような "AI / Language Model" は引用はできないと人々は言っていたので) けれど、サーチエンジンと組み合わせればまあ、できても不思議はないよね。そしていくつか論文をよんでわかったのは「要約」というのは LLM というか NLP ではよく研究された分野なのだった。Decoder Transformer にしろ RLHF にしろもとの論文は要約が題材なわけじゃん. Decoder transformer なんて引用とタイトルからWikipedia 本文を生成するという研究で、ある意味 search bot そのものである。とはいえこういうのはリサーチの話で、Bing はそれを製品まで持っていったのが偉かった 。報道からうける印象とちがい、単に ChatGPT 別のガワをかぶせたものではない。Neeva は先行したのはよかったが、ベースにある LM がへぼかったのかなんなのか、力不足で惜しかった。ただ Bing が API の値段を 10x したのは、Bing API と OpenAI API があれば Bing bot はわりかし実現可能だとわかっているからじゃないかな。Google も Bard なてやってないでサーチ頑張るべし。
- といった与太話はさておき、続きを読んでまいりましょう。
- んーむ自分の読解力では一本前の "Prefix tuning" とこの "Prompt tuning" の違いはわからないな。まあメインのモデルをいじらず入力につっこむシーケンスの一部分を learn するアプローチがなら cost effective に LM の finetuning が可能、というくらいまで理解できれたのでいいです。はい。
- こういうのは OpenAI のような hosted model なら彼らが対応してくれればできるししてくれなければ終了だが、相対的に小さいモデルを手元で動かす場合は自分で実装できないといけないので引き続き AI 人材スキルは引き続き重宝されそうである。遊びではそもそも finetune 用の training data が揃えられないので few shots / in-context でがんばるしかない。
- つぎ。
- [2201.11903] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
- Chain-of-Thought! Buzzword イエーイ!
- GMS8K, 何問か自力で解いてみる必要があるな・・・ openai/grade-school-math
- Chain-of-Thought を annotate する人によってスコアが違う。当たり前だが面白い。そして Google Brain で働くエーアイ人材くらいの知性がないと良い chain-of-thought がかけないのだとしたら・・・?エーアイ人材はともかく塾講師が副業で chain-of-thought を提供する時代は近いな。
- 「自然言語で思考過程を書くと AI が本気だす」というアイデアのわかりやすさ(+素人にも真似できそうな感じ) と GMS8K で SOTA というインパクトの組み合わせが buzzword worthy な論文であった。
- 次は CoT を learn して finetune ... みたいな話がでてくるのでしょう・・・。
- Prompt-Engineering-Guide/papers.mdx at main · dair-ai/Prompt-Engineering-Guide · GitHub しかしこのページにある "prompt engineering" 論文の量産ぶり、おまえらちょっと落ち着け・・・というかんじである。あまり深入りしないでおきたい所存。
- 若干おなかいっぱいなので reading list を整理してよむもの考えましょう・・・。今日はここまで。
2023-03-14
- 04:58. 寝坊.
- In-Context Learning 与太話ちょっとよむか・・・
- "Emergent Behavior" あるいみ buzzword だな...
- How does in-context learning work? A framework for understanding the differences from traditional supervised learning | SAIL Blog
- Prompt は Bayesian 的に解釈できるなぜなら language model というのは条件的確率だからである... みたいなことを様々な実権などから主張している... のだろうか... むずかしい。
- Solving a machine-learning mystery | MIT News | Massachusetts Institute of Technology
- LLM の中には linear model が隠れているよ・・・とは・・・。
- [2211.15661] What learning algorithm is in-context learning? Investigations with linear models
- 記事から参照されている論文。めちゃ math である。LM のレイヤ一つが計算の 1 演算を代替できると主張している。そうかい・・・。GPT-3 は 100 レイヤくらいなので、そのくらいのステップは進められるということだろうか。
- [2212.10559v2] Why Can GPT Learn In-Context? Language Models Secretly Perform Gradient Descent as Meta-Optimizers
- 似たような趣旨の論文 from MSR.
- "As shown in the above equations, the attention to the demonstration tokens is equivalent to parameter"
- やはり式を追う気力 (math 力) がないが、Attn(V,K,q) が update の step になっている、という主張に読める。なんか self attention だといまいちそうじゃない?一般に、こういう in-context learning に強くするアーキテクチャ上の選択というのはありそうだよな。パラメタ数をでかくするだかけではなくて。一方、そういう ICL に強いアーキテクチャが一般的に良い LM なのかというと・・・まったくわからないね。そいうアーキテクチャの自明でなさを指摘した論文をどこかで読んだ気がするが、どれだったかな・・・。
- とおもってインターネットを探していたら・・・
- Jason Wei | LinkedIn CoT はじめ重要論文を書きまくっていた Google Brain のスターが OpenAI にとられちゃってますねー。あーあ。まあ選べる身分ならレイオフするような会社では働きたくないよなあ。しゃっちょーさん、いくら節約したか知らないけど星が散っていくのが見えてるかい。
- まあいいです。これにて CoT のひやかしを終了いたします。
- [2212.06713v1] Structured Prompting: Scaling In-Context Learning to 1,000 Examples これが残っていたので abstract だけ眺めるが・・・ prompt に 1000 example をつっこむためにすごいアーキテクチャにしてみたよ、という話であった。いや 1000 もあるなら finetune すればいいのでは・・・という気になったところで終了。
- リストが完全にはけました。これにて CoT のひやかしを終了いたします。
- 本日はここまで。
2023-03-14
- 04:23.
- さて GPT-4 が発表されたので technical report を冷やかしましたが、びっくりするほど何も書いてないねー・・・。GPT 論文シリーズここに極まれりという感。ただ aurhorship のセクションが社員の名前全部書いてるんじゃないかという勢いで、総力戦なのはよくわかる。そりゃ企業秘密は話したくないでしょうな。リサーチャーも下手に論文書くより GPT-x やってましたという方が箔が付く勢いだろうし。
- context length が 32k! に伸びたのと multimodal なのが表から見える範囲の特徴なので、とりあえず multimodal の論文を読んでいきましょう。ぱっと調べた範囲だと Google の PaLM-E, Deepmind Gato, Microsoft Kosmos-1 というのが目についたので、Kosmos-1 を読んでくぞ。なおそのほか Visual ChatGPT というのもあった。
- [2302.14045] Language Is Not All You Need: Aligning Perception with Language Models
- MetaLM という自社内前例があるのか・・・。
- ChatML みたいにマークアップするのだね。<image> とかなんとも・・・。
- 画像は "Vision Encoder" と "Resampler" を使って embedding にするそうです。積読スタック伸びてくぞ・・・。
- Base-model は Magneto という MS GPT みたいなものらしい。各社持ってるわけだねオレオレ LLM を...
- "Intealeaved data" すなわち画像を埋め込んだ HTML のテキストみたいので learn するというのは・・・なんかタグのまわりのテキストを画像検索に使おうみたいな話だよな。
- training ではなぜか github/archive/so を外している。なぜ?こういうテキストでテストをしたいからかな?リサーチ論文というかんじである。商用化するなら全部突っ込むわけだが、MS products は OpenAI を使っているので今の所はアカデミックな態度を取れるのだった。読者としてはめでたい。
- Image Representation は CLIP を使うと書いてあるが、それは "Vision Encoder" とかとは違うのかな・・・?画像周りの知識がゼロすぎる。
- "The total number of parameters of KOSMOS-1 is about 1.6B." デカデカモデルを作るという話ではないのだねこの論文は。
- InstructGPT 以来 "instruction dataset" というのが色々揃っているらしく、Flanv2 や Unnatural Instruction といった公開データセットを使っている。ふーん。
- "Image captioning" を評価している。考えてみるとこれって stable diffusion とかがやってることの逆だね。そして captioning の ML はけっこう前からあった気がするけれど、そういうのはどういう仕組みだったのかねえ。
- OCR-free text recognition とかヤバイな・・・。ただし正答率は 67% か。言われてみればグリフの画像と読み方を対で入れれば読めるようになりそうですね・・・そういうデータセットに言及があったかな?。
- Chain-of-Thought の例は見るたびに「単なるカンニングなのでは・・・」と思ってしまうな・・・。
- わりかし面白かったです。デカデカモデルの話ではなく、Multimodal に絞っているのが良かった。1.6B でこれか、みたいな。
- [2206.06336] Language Models are General-Purpose Interfaces
- つぎは MetaML という元ネタ論文ね。
- が、これはなんか無駄に複雑な割に知りたいことは特に書いてない。自分に必要なのは vision encoder と resampler らしい。しかし参照がよくわからん・・・
- 一つ前の論文では "vision encoder" といい、この論文では "vision language encoder" と呼んでいる・・・。なんなのそれは・・・。
- [2111.02358] VLMo: Unified Vision-Language Pre-Training with Mixture-of-Modality-Experts これかな? Big Tech は各社フルスタック(?)でぜーんぶ持ってますね。
- OpenAI の論文引用されてるな。GPT-4 ファンクラブ的にはこっちをよむ方がいいのかもしれないね。まああとで。[2103.00020] Learning Transferable Visual Models From Natural Language Supervision
- Related work. なんか決定的なアプローチのない分野っぽいね・・・ Computer Vision と Vision Language tasks が別々に議論されているが、どうちがうんですか・・・?後者がキャプションとかなのかな?しかしそれは前者の superset ではないの?
- そして MS の LM Model Zoo Github をみると VLMo よりあたらしいやつあるっぽいじゃん。そっちのほうがいいんじゃね?というわけでこの論文はここまで。
- MS stack は馴染みがなさすぎるので OpenAI の論文を見てみたほうが良い気もする・・・でも CLIP というのしかないね。2年前だけどこれ読めば良いのかな。そのあと PalM-E も冷やかしてあげよう。
- 今日はここまで。
2023-03-17
- 5:32. 目覚ましを 15 分早くしてみたが完全に逆効果。戻すべし。
- さてそろそろ税金をやらないといけないが、今日は論文よましてちょ。
- A Dive into Vision-Language Models からリンクされていた [2210.09263] Vision-Language Pre-training: Basics, Recent Advances, and Future Trends
- このサーベイを眺めてます。PDF がデカイ。
- というわけで、だいたいよむべき論文がわかりました。たくさんありますが・・・。
2023-03-18
- 04:15
- さて今日は・・・税金やんぞ!
- てか 2/22 にきてんじゃねーか書類!!!TT に騙されたクソったれ・・・めちゃ出遅れてしまった・・・。
- 久しぶりにさわる Colab が納税用 1099 の CSV 化とか、もうね・・・。
- この Notebook でやるのもう何年目かわからんけど、今年は PDF のフォーマットに変化がなかったらしく一発で動いてめでたい。なぜ TT はやってくれないのか・・・。まあいいです。
- 納税終了。TT のせいで大幅に出遅れてしまい不覚。TT への hate は年々高まるばかりですが、通勤に使うバスが同じになるくらい近所なので憎みきれないのだった。テック企業はどこもある面ではろくでもない。仕方ない。
- ついでに免許の更新もオンラインでできるっぽいのでやってしまうべし。
- 済。一瞬でしたね。こんな一瞬なら勝手に更新して送ってくれやと言う感じだが。
- It’s Time to Get Back to Work – Spinach Forest
- GPT-4 paper が期待したものでなかった悲しみを綴るものなり。まあいいですよ。しゃーねえので PALM-E でも読みますわ後日・・・。
- そういえば英語でブログ書くのだいぶ何でもなくなってきたな。もともと何でもなかった疑惑はあるとはいえ・・・。Design doc ぽくドライかつクリアに書くという当初の目標は失われているが、まあ、いいです。
2023-03-20
- 04:09. さて...
- CLIP: Connecting text and images 2021
- "Contrastive Language–Image Pre-training"
- ConVIRT というモデルを simplified したと言っている。
- データセットはインターネットから持ってくる。WebImageText. これが高品質でデカイのが重要。
- Contrastive objective ってなんだい・・・
- N 個の画像xテキスト pair を用意し、NxN 通りの組み合わせについてそれらしさを predict させる。そして正解である N 個を除く NxN - N 個の確率を最小化する。なるほど。比較対照するから contrastive なのだね。
- これはラベルやテキストをズバっと当てさせるより簡単なぶんトレーニングが efficient なのだという。へえ。
- "InfoNCE loss というのをつかう: Contrastive Representation Learning | Lil'Log, Edit Post ‹ Spinach Forest — WordPress.com
- Text と image は embedding を consine similarity にするだけというから、これらの encoder を learn させるのだねえ。
- "image_encoder - ResNet or Vision Transformer" というわけで Vision Transformer がでてきたぞ!
- "The text sequence is bracketed with [SOS] and [EOS] tokens and the activations of the highest layer of the transformer at the [EOS] token are treated as the feature representation of the text which is layer normalized and then linearly projected into the multi-modal embedding space." image と text の embedding なんて全然次元が合わないな・・・とおもっていたが、こうやって調整すうるのだね。
- "we found CLIP’s performance to be less sensitive to the capacity of the text encoder." このタスクだとデカデカモデルは要らないのか。
- ResNet と ViT を両方ためしているが、"For the ViT-L/14 we also pre-train at a higher 336 pixel resolution for one additional epoch to boost performance similar to FixRes (Touvron et al., 2019). We denote this model as ViT-L/14@336px. Unless otherwise specified, all results reported in this paper as “CLIP” use this model which we found to perform best." ということで ViT のほうが良かったのだね。
- Zero-shot. class をtext として encode し、画像も encode し、cosine similarity をとっていちばんデカイのを選ぶ。まあこれはいいよな。
- Text encoder, ラベルの曖昧さが問題になる (重機の crane vs. 鶴の crane, 犬の boxer vs. 格闘技の boxer). あとはただのラベルより "a photo of a {label}" と書いたほうがちょっと性能がでる。といった "prompt engineering" が必要。へー。
- 面白いことは面白かったが GPT でいうと GPT-1 くらいの世代なイメージ。Zero-shot の性能も特別は良くない(ので色々と比較に苦しんでいる雰囲気がある。)ここから multimodal language model までは果てしなく遠いよなあ。2年間の間に何があったのだろうね。
- はさておき、次は vision transformer でも読んでおくか。みんな使ってそうだから。
- [2010.11929] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
- ねむい・・・
2023-03-21
- 04:35. 4 時に起きると眠いというか、眠りの質が悪いな。晩飯を減らし、かつメラトニンでもキメるべきか。
- さて podcast 採ったので出さなければ。
- Reddit いじってるうちに時間を溶かしてしまった・・・。
- Canva は間を開けると free trial を retry できるのか。いいんですかねそれは・・・。Canva は便利すぎるのでこの手のバナーやロゴを作るときだけ金払ってもいいなと思っているのだった。
- 走りに行こうと思ったら、雨。筋トレでもしようかな。雨天に際し、屋内で早朝に脳内麻薬を出す方法は Supernatural 以来発明できていない。
2023-03-22
- 05:01. Kindergarden の tech support をしていたらこんな時間になってしまったぜ・・・
- A Story Writer – Spinach Forest
- 金払って遊んでみた記。なんというか、CoT じゃないけど prompt 工夫しつつストーリー書かせるとか職業の危機みないた話はおいといて遊びとしてふつうに面白いよな。
- 一方の Google は "You are invited to try Bard" とかいうスパムを送ってきて、見てみれば waitlist である。おまえら GPU だか TPU だか足りてんのか。Azure で借りてきたらどうですか。
- さて Podcast 自分のターンの準備でもしますかね・・・。
2023-03-23
- 04:28. Ubuntu の溜まった update を入れていたらこんな時間。
- 引き続き podcast 準備。
2023-03-24
- 05:06. メラトニンを飲んでみたら眠りが深くなり、寝過ごし。ただこれは総体ではよい気がするので今日ものむべし。
- Podcast 準備。
- ChatGPT plugins おや。Bing 的な外部資源要約の vertical version. いよいよ検索エンジンやばくなってきたな。そして WebGPT がこれの論文なのだね。あとでよむべし。
- 準備ほぼ了。いつも後半にいくにつれて滑舌が悪くなっていくので、途中に「ゆっくりはっきりしゃべるべし」とリマインダーの行を挟んでみる試み。
2023-03-29
- 04:55. 週末から子が風邪を引くなどで大人は捗らず。むしろよくぞ今まで dodge してきた、という感はあるけど。
- そしてメラトニンはダメだな。眠くなりすぎる。朝起きられない。寝不足の眠さとは違うので慣れれば起きられるかなとおもったが、ぜんぜんダメ。
- さて Podcast の準備をしていてやはり RL の付け焼き刃が必要だと思い立ったので・・・どうしようね。OpenAI のチュートリアルでもよむか。
- Part 1: Key Concepts in RL — Spinning Up documentation
- とばしすぎでよくわからんが、付け焼き刃とはそういうものです・・・・
- Part 2: Kinds of RL Algorithms — Spinning Up documentation
- わからん・・・。
- Part 3: Intro to Policy Optimization — Spinning Up documentation
- 引き続きまったくわからないが、結局 backprob で gradient を計算する、ということはわかった。では何が supervised learning と違うのかというと・・・正解はないが loss (に相当するもの) は reward を介して存在する、ということなのかな。
- そして ML model との組み合わせ "Deep RL" という点では概ねこの model-free, policy optimization を気にしておけば良さそうである。
- まだ全然わかっていないが、それでも以前よりは解像度が上がったので良しとします。はい。
- Lil'Log ところでこの超便利ブログのひとは OpenAI なのだね。
- Key Papers in Deep RL — Spinning Up documentation
- 無謀になんか一本くらい読んでみるか・・・
- [1602.01783] Asynchronous Methods for Deep Reinforcement Learning
- ランダムすぎました・・・
- Sutton & Barto Book: Reinforcement Learning: An Introduction
- Chapter 13 Policy Gradient Methods に突撃してみるターン
- 時間切れ。
2023-03-31
- 子の風邪から身を守るべ睡眠を優先していたら三月が終わってしまった。やれやれ。父のためにもはやくよくなっとくれ。続きは来月。
- 月初の計画よりは思ったより先に来ている気もするが、GPT-4 によって読むものは色々増えてしまったので引き続き読んでいきます。