iwiwi 備忘録

学んだことを殴り書きます。自分向けのメモです。

Pythonで間違えて全体にインストールしちゃったパッケージを消す

仮想環境をactivateするのを忘れてpip installしたりする。その後の色々な環境に影響したりして最悪。依存でいっぱいインストールされてたりして消すの結構面倒。 import pkg_resources import os directory = os.path.expanduser("~/.local/lib/python3.8/s…

GPT-NeoXをとりあえず動かす

LLM

環境 基本requirementsをインストールしていくんだけど、問題がいくつか best_downloadというライブラリがrequests経由でurllib3を使っているが、 method_whitelist という古い引数名を使っており、そこで落ちる。ダウングレードする手もありそうだが、一旦 …

lm-eval-harnessでよく使われている評価タスク (LAMBADA, HellaSwag, WinoGrande, PIQA, CoQA)

LLM

https://docs.google.com/spreadsheets/d/1kT4or6b0Fedd-W_jMwYpb63e1ZR3aePczz3zlbJW-Y4/edit#gid=0 とりあえずこのシートで使われてるタスクを理解する。 The LAMBADA dataset: Word prediction requiring a broad discourse context https://github.com/E…

VSCodeでPythonをデバッグ

code.visualstudio.com 左の▷を押す、"create a launch.json file" を押してテンプレを作る。 "args"っていうのを追加する(上のサイト参照)。 break pointをエディタ上で設定しとく ▷のとこから実行する break pointに到達したら下の"DEBUG CONSOLE"ってと…

Corsair HS80 Wireless

選定理由 マイク音質を向上したかった マイクを買う事も考えたが、色々面倒そう&邪魔に感じそうだったので、無線ヘッドセットを更新することにした Ubuntuでも利用したいが、Ubuntuでのbluetoothが不安定な印象がある(思い込みかもしれないが)のでUSBドン…

GPTs are GPTs: An Early Look at the Labor Market Impact Potential of Large Language Models

LLM

arxiv.org openai.com generative pretrained transformersがgeneral-purpose technologiesだよ、って言いたい論文。様々な職種における作業へのインパクトを見積もる。 結論 80%の職種で、作業の10%がLLMにより効率化される 20%の職種で、作業の50%がLLMに…

Emergent Abilities of Large Language Models

LLM

arxiv.org 基本的には、既存の文献から"Emergent"な現象をまとめる、という感じの論文だった。現象自体は面白いと思うので、有用な文献だと思う。ただし、本文は、あんま面白くない議論が長々と続いており、「JMLRに通すためのレビュワー対策で色々入れたん…

Scaling Vision Transformers to 22 Billion Parameters

LLM

arxiv.org Google Research Introduction LLMは10B〜540Bって感じだけど、Vision Transformerは4Bとかしか見たことないから頑張るわ ちょっと発散しないためとか工夫必要だったわ 性能良かったわ Model Architecture GPT-J風のparallel layer QK normalizati…

RoFormer: Enhanced Transformer with Rotary Position Embedding

LLM

arxiv.org GPT-NeoX等で使われているposition embedding。 そもそも三角関数足す元祖のposition embeddingしか知らなかったので、relative position embeddingがどういうものかも知れてよかった。この手法自体は足す(additive)んじゃなくて回転させる(multic…

An Empirical Model of Large-Batch Training

arxiv.org OpenAIのLLMの論文がbatchsize関連の議論で頻繁に引用している論文なので見てみた。 理解が正しいかあんま自信ない。 実験的な話 critical batch sizeとは、「そのバッチサイズまでなら上げても効率的」というバッチサイズである。 「効率的」とい…

Scaling Laws for Neural Language Models

LLM

arxiv.org transformerのLMがいわゆるscaling lawに従うという話。 一番大事で有名な結論は、モデルサイズと学習ステップ数を両方増やしていくのが一番効率的だよ、ということだろうか。なるべく定量的に関係を推定しており、具体的な指針となるようになって…

Self-attention Does Not Need O(n2) Memory

LLM

arxiv.org xformers.ops.memory_efficient_attentionはこれを実装してると引用してる。 K*Q全部一旦計算する必要なくてある場所のattention計算するためにはその行列のその行だけでいいから各場所について1つずつ計算すれば必要メモリはO(n)って話。 √nって…

Deduplicating Training Data Makes Language Models Better

LLM

arxiv.org Google Research、ACL2022 学習データのdeduplicationを頑張る方法とその結果について モチベ・利点 umpromptedで出す文字列、データセットで繰り返されまくってた文字列を記憶してるらしく、それを減らせる。 train test overlapによる評価の誤り…

Pythia: A Suite for Analyzing Large Language Models Across Training and Scaling

LLM

arxiv.org EleutherAIの人たちが、学習完了したLLMだけでなく、学習過程の分析をしたい人のために、スナップショットを一杯公開したよ、という話だと理解した。 コードとかも色々あるので参考になるかも。

Generating Long Sequences with Sparse Transformers

LLM

arxiv.org GPT-3で使われているという噂の、sparse attentionの論文。 説明が楽なので一旦causalityを忘れることにする。n tokensあるとする。普通のattentionでは、各tokenに対して、全n tokenにattendできる。sparse attentionでは、各tokenに対し、各head…

Solving Quantitative Reasoning Problems with Language Models

LLM

arxiv.org Google Research 数学っぽい文章で学習したら数学っぽい問題解けるようになったという話。主に、数学っぽい学習データセットを作ったという話と、評価の話。 データセットはWebとarxiv。うちLLaMaでも使われているarxiv datasetの作り方は以下の通…

Language Models are Few-Shot Learners

LLM

arxiv.org GPT3の論文。 いろいろ アーキテクチャ、dense attentionとsparse attentionが交互?Sparse Transformerを読まないといけない scaling lawの元論文、パラメタ数同じぐらいだったら多少のアーキテクチャ(ヘッド数、レイヤー数、チャンネル数など)…

ZeRO-Infinity: Breaking the GPU Memory Wall for Extreme Scale Deep Learning

LLM

arxiv.org host memoryやNVMeを使ったout-of-coreの実装を真面目にクソ頑張ることで、より大きなtransformerを高い実行効率を維持しながら学習できるようにする話。 手法 基本的には各種データ(param, optimizer stats, activationなど)のアクセスパターン…

ZeRO: Memory Optimizations Toward Training Trillion Parameter Models

LLM

arxiv.org クソでかモデルでGPUがメモリ足りない時のための手法。ZeRO-DPとZeRO-Rがある。 ZeRO-DP DP=data parallel。optimizerのstate(momentumなど)、gradient、paramを分散して持てば良い。 stateを分散して持つ場合、各担当ワーカーくんがparamを更新…

Flamingo: a Visual Language Model for Few-Shot Learning

LLM

arxiv.org DeepMindの、VLM(Visual Language Model) / LMM(Large Multimodal Model)の論文。文中に画像が現れてるようなものを読んで、画像と文章の両方を加味した文章生成ができる。例えばin-context learningを通じてVisual QAなどができる。 アプローチ e…

8-bit Optimizers via Block-wise Quantization

arxiv.org 背景 もともとCLIPの論文を読んでた際、"half-precision Adam statistics"という記述があって気になった。が、今はそれどころか8bitでやるこの論文の実装が結構使われてるっぽい気がする? 実装 github.com

Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM

LLM

arxiv.org 最大1 trillionパラメータのtransformerを3000GPUs規模で分散学習する方法について模索するNVIDIAの論文 方法 data parallelism……各ワーカーが同じモデルを持ち違うデータに対してfwd/bwdをして勾配を計算し、勾配をallreduceする model paralleli…

Classifier-Free Diffusion Guidance

arxiv.org huggingface.co この調整できるguidance scaleってどういう仕組みなのか分からなくなったので調べてみた。 ImaGenの論文を見るとこう書いてある(P.4) 一見0≦w≦1で重みつき平均の式……かと思いきや、これでw>1にするらしい。それによって、よりcondi…

FID & CLIP score

こういうやつの意味を理解する。 wandb.ai FID (Frechet Inception Distance) torchmetrics.readthedocs.io Inception V3モデルを利用した指標。生成画像と、リアル画像の、Inception V3による出力feature vectorの分布の違いをFrechet Distanceというので計…

Learning Transferable Visual Models From Natural Language Supervision

arxiv.org 概要 CLIPの論文。CLIPのtext encoderがstable diffusionでも使われている。 画像認識の基盤モデルを作る試み。膨大な(image, text)ペアから事前学習し、ImageNet1kを含む様々なタスクをゼロショットで(classに対応するtext指定するだけで)めち…

High-Resolution Image Synthesis with Latent Diffusion Models

arxiv.org 概要 Latent Diffusionの論文。Stable DiffusionはLatent Diffusionをベースにしてる。 事前に学習したencoder-decoderを利用し、解像度の低いlatent spaceで拡散モデルを学習・推論することにより、効率化。 適当に斜め読みした感じでは、元論文…

DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation

arxiv.org やりたいこと 拡散モデルにて、主題を固定してそいつに関する新しい絵を描画させたい場合の方法を提案。主題に関する画像が何枚か手に入るとする。 手法 基本的なアイディアは、それらの画像でfinetuneする、というだけ。 'sks' や 'djv' みたいな…

An Introduction to Variational Autoencoders

arxiv.org Stable Diffusionでも使われているVAEについて復習。有名な技術なのでわかりやすい解説が色々あるだろうと色々解説を探したが、結局Kingmaご本人のこれが一番わかりやすかった。 生成モデル $x$: 観測されたデータ点たちの集合。 $p^*(x)$: 真の確…

GPT-4 Technical Report

LLM

発表生放送 www.youtube.com https://t.co/oAGLHrFe4tGPT-4の発表生放送をとりあえず観てみたがおもろかった。リアルタイムでGPT-4にdiscordのbot書かせてデバッグもさせて、そのbot経由で視聴者から投稿してもらった画像をGPT-4に見せたり。説得力えぐ。で…

Adding Conditional Control to Text-to-Image Diffusion Models

arxiv.org そういやControlNetの論文読んだけど、なるほどみが深かった。ああいう条件をつけて学習すること自体は拡散モデル的に全く自然で普通のことなんですね。しかし、その種のデータが少ないため、いかに表現力を壊さずfinetuneするかが論点だった、と…