【tmux + zsh】Ctrl-Dでセッションをdetachする
· ☕ 2 min read
はじめに tmuxとは俗に言う端末多重化ソフト(Terminal Multiplexer) のこと. terminalを複数のセッション, ウィンドウ, ペインに分割して使用することができる代物である. ターミナルを終了してもセッションは維持されるので, sshで学習を回す際に便利である. tmuxでは通常のC-dでセッションがexitされてしまうのだが, こ ...

【PyTorch】「CUDA error: device-side assert triggered」 解決の手引き
· ☕ 4 min read
はじめに PyTorchにて, “RuntimeError: CUDA error: device-side assert triggered"というエラーに出くわすことがある ネットに転がってるモデルで発生すると特に厄介である (自分が作った沼ではないので…) またMAEでのマスク処理のような, テクニカルな処理を行う場合などにも頻発 再現性が取れず, 出力されるエラー内容も二転三転. 一定 ...

【巨大データ】gdownの「Access denied」問題は諦めよう
· ☕ 2 min read
TL;DR クソデカファイルをGoogle Driveからダウンロードするときは, gdownではなくcurl直打ちでダウンロードしよう はじめに Google Drive内の50GBほどあるデータをgdownでダウンロードしようとすると以下のエラーが出た Access denied with the following error: Too many users have viewed or downloaded this file recently. Please try accessing the file again later. If the file you are trying to access is particularly large or is shared with many people, it may take up to 24 hours ...

【論文メモ】Lifting the Curse of Multilinguality by Pre-training Modular Transformers
· ☕ 1 min read
NACCL22 多言語を扱うモデルにおいて, 言語の数を増やせば増やすほど精度が下がる「the curse of multilinguality」(多言語の呪い)という現象が存在する この「多言語の呪い」を対処するモデルとしてX-MODを提案 概略 言語ごとにbottleneck型のモジュールを用意し, 言語ごとにスイッチさせる それ故, 拡張は容易で, 学習・推 ...


【論文メモ】SimCSE
· ☕ 1 min read
ENMLP21 Supervised SimCSE 含意関係にある文を正例として対照学習 NLIデータセット Unsupervised SimCSE 同じ文を二回埋め込んで対照学習 dropoutの影響で微かに異なる二つのベクトルに対して対照学習 引用: https://www.slideshare.net/DeepLearningJP2016/dlsimcse-simple-contrastive-learning-of-sentence-embeddings-emnlp-2021 ...


【摩訶不思議】azcopyはなぜ速い?
· ☕ 3 min read
TL;DR azcopyとは, Azure内のblobを操作するためのツールなのだが, これを使えば摩訶不思議. なぜかwgetよりも快適にblobをダウンロードできる. azcopyがなぜこんなにも速いのか誰か教えてくれ 仮説: azcopyはコネクションを大量に張る + サーバを分散させている 導入: wgetが遅い問題 ORTの再現実験のため, ...

日本語版Image Captioningの学習・推論コードを提供する
· ☕ 1 min read
ひょんなことから最近Image Captioning(画像キャプション生成)を触っている だが, ググってもググっても日本語でImage Captioningしてる人があまりに居ない… コードを検索してもヒットしたのはこの子だけ…🤔 (しかもChainer …) https://github.com/yuyay/chainer_nic 日本語での画像キャプション生成界隈はプレイヤ ...


【論文メモ】Can Neural Nets Learn the Same Model Twice? Investigating Reproducibility and Double Descent from the Decision Boundary Perspective
· ☕ 4 min read
はじめに CVPR22 決定境界を描画し, 再現性と汎化性について定量的に考察した論文 決定境界の描画 (領域の決定) 如何に決定境界を描画するかが重要になってくる その上でまず, データ多様体 $\mathcal{M}$の近傍(on-manifold)を取るのか, $\mathcal{M}$から離れた領域(off-manifold)を取るのかを考 ...


【相関係数】Pearson・Spearman・Kendallの使い分け
· ☕ 1 min read
ピアソン $$ r_{xy} = \frac{{\displaystyle \sum_{i = 1}^n (x_i - \overline{x}) (y_i - \overline{y})}}{\sqrt{{\displaystyle \sum_{i = 1}^n (x_i - \overline{x})^2}} \sqrt{{\displaystyle \sum_{i = 1}^n (y_i - \overline{y})^2}}} = \frac{s_{xy}}{s_xs_y} $$ データ(X,Y)が連続で正規分布に従っていることが前提 なので外れ値に弱い スピアマン $$ \rho_{xy} = \frac{\sum_{i=1}^{n}(R(x_i) - \overline{R(x)})(R(y_i) - \overline{R(y)})} {\sqrt{\sum_{i=1}^{n}(R(x_i) - \overline{R(x)})^{2}\cdot\sum_{i=1}^{n}(R(y_i)-\overline{R(y)})^{2}}} = 1 - \frac{6\sum_{i=1}^{n}(R(x_i) - R(y_i))^{2}}{n(n^{2} - 1)} $$ $R(x)$は $x$の順位 順位をそのままピアソンの式に当てはめるイメージ 正規分布・連続という仮定がない分使い勝手が良い ケンドール $$ \tau_{xy} ...

【論文メモ】Test-Time Training with Self-Supervision for Generalization under Distribution Shifts
· ☕ 2 min read
PMLR20 trainとtestで分布が違う場合の再学習手法TTT(Test-Time Training)を提案 まずは普通に学習 次にモデルを前半(A)と後半(B)に分けて, 元のA + 新しいB’ のモデルで自己教師あり学習を行う headを取っ替えるイメージ (B→B') このとき, testサンプルを使用して自己教師あり学習を行う ...

【論文メモ】Energy-Based Learning for Scene Graph Generation
· ☕ 3 min read
はじめに Energy Based Modelを用いて画像からscene graphを生成する手法(フレームワーク)を提案 既存手法は次のようにクロスエントロピーでscene graphを生成する $$\log p(SG|I) = \sum_{i \in O} \log p(o_i| I) + \sum_{j \in R} \log p(r_j | I).$$ このとき, object $O$とrelation $R$が互いに独立に計算されている ここが問題で, 本来なら互いに弱い依存性があるはず し ...


【TeamViewer】sshでパスワードを変更する
· ☕ 1 min read
TeamViewerでパスワードがわからなくなった どうやらsshで入れるならパスワードを変更できるらしい sudo teamviewer passwd [password] で任意のパスワード[password]に変更可 1 2 3 teamviewer info sudo teamviewer passwd [password] teamviewer info ...

【ray】@remoteがメモリを大量に食う時はray.put()を使おう
· ☕ 2 min read
はじめに rayとは → https://github.com/ray-project/ray 分散並列処理を簡単に書けるフレームワーク ray.remoteは怖い @ray.remoteが付された関数が使用するオブジェクトは, 呼び出される都度内部でray.put()が呼ばれ, データがメモリ上に展開される 若干この仕様が厄介で, ray.get()なんかを使うと, 同じオブジェクトを何度もメモリ上に展 ...