Deep Learning

Deep Learning

LLMのファインチューニングでEOSが出力されずテキスト生成が終わらない

Llama2のLoRAをしていた時、うまくEOSが出力されず、文章生成がmax_new_tokensの数まで生成されてしまっていた。 解決するのに手間取ったので備忘録。 結論を先に示すとPAD = EOSにしていたのが原因で、EOSもatt...
Deep Learning

LLMの一部レイヤーの重みを固定してLoRAを使わずFP16でファインチューニングする

LLMのファインチューニングを行う際、QLoRAやPEFTで行われている記事が多いが、これらの効率化技術を使わなかった時の性能を確認してみたくなった。 また、大規模データで学習済みのモデルは入力層に近いほどデータの抽象的な特徴を学習している...
Deep Learning

torchinfoでHugging Faceのモデルのsummaryを出力しようとするとRuntimeError: Failed to run torchinfo.

kerasのmodel.summary()と似たようなことをpytorchのモデルで行ってくれるライブラリとして、torchinfoがある。 llama2がどんな構造でパラメータ数なのか気になったのでtorchinfoを使ってみた所、表題の...
Deep Learning

TFRecordsでmodel.fitする時にメモリリークが起きてメモリ使用量が増え続けてしまう

大量のTFRecordsを使い、tf.dataでモデルの訓練をしていた際、メモリの使用量が増え続け、Out of Memoryになってしまっていた。 仮想メモリ(スワップ)を3TB程度用意してみたが、スワップも食い続けてしまったため、ハード...
Deep Learning

GPUでfitしてCPUでpredictすることでTensorFlowのOOMを回避する

TensorFlowで大量の画像や巨大な配列をpredictするとメモリーリークが生じることが多い。 model.fitでは問題ないのに、model.predictになるとOOMになってしまう報告が散見する。 根本的な解決ではないが、pre...
Deep Learning

TensorFlowでscipyのsparse matrixを学習に使う

巨大な疎行列をmodel.fit()させようとした時、numpyのままだとメモリに乗り切らなかったため、scipyの疎行列でtf.kerasを使う方法がないか調べてみた。 まずは公式チュートリアルを見てみる。 TensorFlowは、 tf...
Deep Learning

tf.data.Datasetを使っていた時に AUTO sharding policy will apply DATA sharding policy as it failed to apply FILE sharding policy because of the following reason:

CIFAR10でtf.dataを使った時に表題のwarning。 model.fitは問題なく出来るので無視しようと思ったが、気になったので調べてみた。 (train_features, _), (_, _) = tf.keras.data...
Deep Learning

Scaled-YOLOv4のpredictions.jpgに出力されるconfidenceを消す

Scaled-YOLOv4を使っていた時、検出される物体が多いとラベルに埋もれて画像が見えなくなってしまったため、画像に描画されるconfidenceの値を消したくなった。 C言語のソースコードを追いかけていき、当該箇所を特定してコメントア...
Deep Learning

EfficientNet V2のデフォルトのinput_shape

TensorFlowにEfficientNetV2が実装された。 しかし、デフォルトのinput_shapeはNoneとなっており、学習時にリサイズさせる画像サイズがわからない。 TensorFlow Hubにはサイズが載っていた。 V2 ...
Deep Learning

HuggingfaceのTokenizerのvocabを取得する

Huggingfaceを使って自然言語処理を行っていた時、モデルごとのvocabularyの違いが気になった。 vocab.txt を見れば分かるのだが、Pythonで取得したかったので調べてみた。 まずはTokenizerのリファレンスを...