サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
zenn.dev/bilzard
今回は思考の整理を兼ねて、timm (pytorch image models)などの公開モデルを目的のタスクに合わせてカスタマイズする時に、自分がいつもやっているルーティーンについて紹介します。 後半では最近参加したコンペ(Yale, BYU)で遭遇したハマりどころを紹介しつつ、学習・推論の高速化のTipsについて書きました。 知識編 座学として最初に押さえておくと良いのは以下のような内容だと思います。 convolutionの機能とパラメータを正確に理解する(kernel size, padding, stride, dilation, group) convolution以外の基本部品と合成部品の構造と機能を理解する(Upsample/Downsample, PixelShuffle, deconvolution, SCSE, MetaFormerBlock etc.) アーキテクチ
本記事はTransformerの8bit行列演算を実装した以下の論文のまとめ記事です。推論フェーズでは4bitの量子化が主流の現在において、8bitの量子化手法はメリットが薄れた感がありますが、outlierとLLMの推論性能の関係についての考察とoutlierとそれ以外を分けて計算するアプローチが面白かったので取り上げました。 なお、著者らが実装したコードは現在でもbitsandbytes[6]という名前でGitHubでメンテされHuggingFaceのエコシステムに組み込まれています。本記事ではソースコードの実装箇所に関して調査した結果についてもAppendix Aに掲載しています。 paper: LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale, Nov 2022 Overview Transforme
本記事は4bit量子化重み+LoRAによるファインチューニング手法QLoRAのまとめ記事です。特に4bit量子化フォーマットNF4の技術的詳細を掘り下げて記述しています。 paper: QLoRA: Efficient Finetuning of Quantized LLMs, May 2023 Overview モデルの重みの4bit量子化フォーマット(NF4)を提案 モデルの重みをNF4で量子化した状態でRoLAの重みを学習→QLoRAは16bit精度のfull-finetuningと同等の性能を実現 QLorAはfine-tuningにおけるGPU環境の敷居を下げた(33Bモデルを24GBのGPUで、65Bモデルを48GBのGPUで学習) fine-tuningからさらに発展させて、QLoRAを用いてInstruction TuningしたモデルQuanaco(7B~65B)の包括的
本記事はModernBERT[1]で採用された「モダンな」BERTの学習に関する技術についてまとめたものです。 調査した論文: Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference, Dec 2024 論文中に明記されていない情報は参考文献やソースコードの内容を元に記載(ソースコードの該当箇所はAppendix C参照)。 また、今回未調査だが個人的に気になった技術のリストはAppendix D参照。 ModernBERTとは? 2018年のBERTのリリース以降、業界の興味がLLMに集中していく中でBERTと同規模の小さいパラメータのTransformerについては長らく記録更
Abstract 本記事では、重みの量子化でパフォーマンスが改善する仕組みについて、Rooflineという図を使って視覚的に説明する。前半ではパフォーマンスのボトルネックを可視化するRooflineという図の作図法と各領域の意味について説明する。後半ではRooflineを使ってなぜ重みの量子化がシステムのパフォーマンスを改善するのかについて、AWQの論文を例にして説明する。 なお、この記事でいうパフォーマンスとはシステムリソースの利用効率のことをさし、精度などのベンチマーク性能ではないことに注意。 Rooflineとは? Rooflineとは、計算機システムのボトルネックを視覚的に判断するための図であり、ボトルネックが以下のどちらにあるのかを判断することができる。 memory-bound / bandwidth-bound: データの転送で詰まってて、GPUは暇を持て余している状態。 c
paper: s1: Simple test-time scaling, Feb 2025 Summary 慎重にキュレートした1KのデータセットでQwen2.5-32B-InstructをSFTするとAIMEなど数学のベンチマークでo1-previewのスコアを上回った。 良いデータセットを選ぶ指針: 1) Quality, 2) Difficulty, 3) Diversityがどれも重要。どれかが欠けると劣った性能を示した。 推論時スケーリングをコントロールする手法を提案。Budget Forcing (BF) Method キュレート方法 最初にAIME, NuminaMath, OlympicArenaなど複数のデータセットから59Kのサンプルプールを用意し、Google Gemini Flash Thinking APIを使って思考過程を生成する。 Quality: APIエラ
はじめに llama.cppは独自の量子化アルゴリズムを使用している。公式でまとまった資料がないため、PRやIssueを追わないといけないっぽい。 以下の記述はReddit post[1]の内容をもとに、関連するPR/Issueを辿って詳細を補足したもの。 用語について GGUFはファイルフォーマットの名称であって、量子化アルゴリズムを指すものではない GGMLはllama.cppの計算ライブラリをさす名称のようだが、issueでは"In the existing ggml quantization types"という使われ方をしていて、GGMLは仕様の名称としても使われてるっぽい。 この記事では無難に「llama.cppの量子化アルゴリズム」と呼ぶことにする llama.cppの量子化アルゴリズム Legacy quants: 固定ビットレート QX_[0-4]という名前がついたもの(例
はじめに この記事では、これまでに提案されてきたLLMを数学タスクにアライン(=適合)する各種手法について概観する。 現時点でオープンウェイトのモデルの中では最も性能が良いQwen2.5に至るまでの提案手法を俯瞰的に把握することを目的としている。 後半では紹介した提案手法の特徴と課題に関して主観を交えながら考察した。 なお、以下で紹介する内容は私がこれまでに読んだことのある論文に基づいて説明している。網羅的なサーベイではないことに注意されたい。 数学タスクにアラインするための学習手法の分類 初見の人が頭の中で整理しやすいように、これから紹介する提案手法を以下の4通りに分類する。どれも候補選択の方法に違いがある。 ベースライン - Few shotプロンプト [Hendrycks, 2021] ナイーブ手法 - 多数決 [Huang, 2022a] [Huang, 2022b] ルールベース
はじめに 「Transformerのattentionはトークン間の類似度をモデリングしている」という説明をよく聞くが、この表現は適切でないことを示す。 なお、このような説明がよくされる背景としては、Transformerのdot-product attentionは内積で計算され、コサイン類似度も正規化されたベクトルの内積で計算される点によるものと思われる。しかしながら両者は正規化の有無に違いがあり、ベクトル空間に埋め込んだ時の数学的性質はかなり異なるということを本稿では指摘する。 TL; DR Attention(dot-product attention)は類似度とは異なる数学的性質を持つ 類似度はトークン間の近接関係はモデリングできるが、それ以外の多様な関連をモデリングするには適さない。 dot-product attentionはトークン間の近接関係を含むさまざまな関連をモデリン
概要 本稿ではAdamWの論文[1]の内容を元に、AdamとAdamWの違いを掘り下げて説明する。 本稿で扱う内容 AdamとAdamWの違いについて Adamのweight decayにはどのような問題があるか?また、AdamWではこの問題をどのようにして解決しているか? 論文の実装と主要なフレームワークの実装の違いについて Adam と AdamWの違いについて AdamWはAdamのweight decayの実装を改良することを目的としたもので、以下のような違いがある: Adamにおけるweight decayは実際にはL2正則化として実装されたのに対し、AdamWはweight decayを本来の形式(重み減衰)で実装している なお、weight decayの実装以外については両者は同じものである。 L2正則化とweight decay L2正則化とweight decayは以下の
以下の記事で対処法について知った。 なお、この問題についてはnvidia-dockerがISSUEの原因と対処法について文書を公開している。 原因は、簡単にいうと、cgroupの管理がsystemctlとdockerとで競合しているということらしい。cgroupの管理をsystemctl以外にすることがワークアラウンドになる。 nvidia-dockerの次のpactch releaseで解決する予定とのこと。 2024/08/17 追記: NVIDIA/nvidia-container-toolkitにissueが移されたあと進捗なし。 環境
概要 KaggleのHMSコンペ[4]の1st place solution[3]のアンサンブルモデルの一つにSuperlets[1]というfilterbankが使われていた。このfilterbankの特徴を原著により確認していく。 原著ではEEGに対する視覚的評価などを行なっているが、ここではとりあえず何をやっているかを把握したいだけなので理論的な内容に留める。 なお、タイトルの「超解像度」というのは原著のタイトルにちなんだ。おそらく著者らの意図としては「単一フィルタにおける理論的な制約を超えた解像度の表現が得られる」というのが言いたいのだと思われる。 用語 日本語でどう訳すのが一般的かわからなかったが、本稿では仮に以下の訳を用いる。 周期数(number of cycles): Wavelet変換(Morlet)における窓関数のパラメータc。直感的には「window中に含まれる有効な周
本Surveyの目的 近年LLMの学習や推論に関するさまざまな新しい手法が提案されている。本surveyではこれらの手法を外観することで、近年のLLM研究のキャッチアップを容易にすることを目的とする。また、これらの手法で用いられたアイデアの幾つかはLLM以外の言語モデルや、言語以外のドメインにおいても転用できるものもあると信じている。 LLMに関する提案手法の外観 以下の観点でまとめる。 アーキテクチャの改善に関する手法 事前学習の安定性に関わる手法 事前学習の高速化に関わる手法 推論の高速化に関する手法 Decode手法 解釈性に関する手法 注意事項として、今までに自分が読んだ論文を中心にまとめているため網羅的なsurveyとはなっていない。また、fine-tuningに関わる手法については提案された手法の多さと比較して自分の調査した範囲が不足していると考えたためこのsurveyからは除
概要 Transformerはvision, textなど各種ドメインで成功を収めているが、計算量とメモリ消費が系列長の2乗に比例するため、長い系列を扱うのに課題がある。本稿ではこのような計算量の課題に対応することを目的として提案されたTransFormerの代替アーキテクチャについてまとめる。 以下に挙げる手法は自分が過去に論文を読んだことのあるものをまとめたものであり、網羅的ではないことに注意。 代替パターン 概ね以下のいずれかに分類される。 attentionの間引き 近似計算 計算過程の最適化 表1に画像、言語の各ドメインについてこれらの手法をまとめる。 Attentionの間引き Attentionは長さNの系列について、全てのペアについてattentionを計算しているが、関連性の強いペアのみに限定することで計算量を減らすというのがこの種の手法の方針である。 画像ドメインにいて
概要 勾配ベースの最適化手法について直近数ヶ月で読んだ論文を元にまとめる。網羅的ではないことに注意。 構成 以下のような構成でまとめる。 Adamの派生手法 補助的に用いられる最適化手法 リソース消費を最適化する手法 1. Adamの派生手法 Decoupled weight decay (SGDW, AdamW) [5]ではAdamのweight decayの実装の問題点を理論的に解明し、これに対処する代替アルゴリズムを提案した。提案手法はAdamの汎化性能を改善し、CIFAR-10, ImageNet32x32による評価でSGD with momentum(提案手法以前ではAdamを上回ることが多かった)と同等の性能となることを示した。 Rectified Adam (RAdam) RMSpropやAdamなどのadaptiveな最適化手法において、warmupが学習の安定性や汎化性能
はじめに Transformerにおけるアテンションの計算式は、scaleを無視すると以下のように計算される[1]。 \text{output} := \text{softmax}(QK^\top) \tag{1}V この計算が数理的にどのような意味を持つのかについて考察する。 記法 以下の議論では、表記を簡単にするため、「Xの埋め込みベクトルのシーケンス」を単に「Xのシーケンス」と表現する。 考察 まず、式(1)の計算は以下の2つのパートに分割できる: アテンションスコアの計算 特徴量の選択 1. アテンションスコアの計算 \text{softmax}(QK^\top)の部分である。ここで、Q, Kはそれぞれ(n, d)次元のベクトルとする。nはシーケンス長で、dは埋め込みベクトルの次元である。すなわち、Q, Kの行方向はトークンのシーケンスを表し、列方向は埋め込みベクトルを表す。この時
このページを最初にブックマークしてみませんか?
『bilzardさんの記事一覧』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く