タグ

ブックマーク / tadaoyamaoka.hatenablog.com (6)

  • dlshogiのPyTorch Lightning対応 - TadaoYamaokaの開発日記

    dlshogiの学習は、PyTorchを使用して、モデルの訓練処理を独自に実装していた。 マルチGPUによる分散学習に対応させようと考えているが、独自に実装するより、PyTorch lightningに対応させた方が実装が楽になるため、dlshogiをPyTorch Lightningに対応させたいと考えている。 まずは、訓練の基部分の実装を行った。 PyTorch Lightning CLI ボイラープレートをできるだけ削除するため、PyTorch Lightning CLIを使用して実装する。 PyTorch Lightning CLIを使用すると、コマンド引数のパース処理など含めて自動で行ってくれる。 起動部分の処理は以下のように記述するだけでよい。 def main(): LightningCLI(Model, DataModule) if __name__ == "__main

    dlshogiのPyTorch Lightning対応 - TadaoYamaokaの開発日記
    misshiki
    misshiki 2024/03/04
    “dlshogiの学習は、PyTorchを使用して、モデルの訓練処理を独自に実装していた。”DeepLearningShogi(dlshogi)=将棋でディープラーニングの実験をするためのプロジェクト。
  • Llama2の70Bモデルを4bit量子化して1GPUで実行する方法 - TadaoYamaokaの開発日記

    個人メモ Hugging Faceで公開されているLlama2のモデルを使用して、4bit量子化を有効にして、70Bのモデルを1GPU(A100)で推論する方法について記述する。 dockerコンテナ作成 NVIDIAのPyTorchイメージを使用してDockerコンテナを作成する。 ※ホストのドライババージョンが古いため、少し前のイメージを使用している。 コマンド例 docker run --gpus all --network host -v /work:/work -w /work -it nvcr.io/nvidia/pytorch:22.12-py3 PyTorchバージョンアップ xformersがpytorch 2.0.1を要求するためPyTorchをアンインストールしてからインストール pip uninstall torch torchvision torchtext to

    Llama2の70Bモデルを4bit量子化して1GPUで実行する方法 - TadaoYamaokaの開発日記
    misshiki
    misshiki 2023/07/24
    “Llama2の70Bモデルを4bit量子化して1GPU(A100)で実行する方法について記述”
  • PyTorchのFXグラフモードで量子化認識トレーニングを試す - TadaoYamaokaの開発日記

    ディープラーニングのモデルを推論する際、通常GPUが必要である。しかし、GPUがない場合でも、モデルのパラメータを浮動小数点から整数へと変換する手法を使うことで、CPUだけでも推論処理を高速に行うことが可能である。この手法を量子化と呼ぶ。 PyTorchの量子化 PyTorchには、量子化の方法がいくつか用意されている。 実装は「Eager Mode Quantization」と「FX Graph Mode Quantization」に分かれており、「FX Graph Mode Quantization」の方が新しい実装で、「Eager Mode Quantization」ではモデルのレイヤー融合を手動で行う必要があったところが自動化されている。 また、一般的に量子化の手法として、 ダイナミック量子化 トレーニング後の量子化 量子化認識トレーニング がある。 ダイナミック量子化は、キャリブ

    PyTorchのFXグラフモードで量子化認識トレーニングを試す - TadaoYamaokaの開発日記
    misshiki
    misshiki 2023/05/29
    “GPUがない場合でも、モデルのパラメータを浮動小数点から整数へと変換する手法を使うことで、CPUだけでも推論処理を高速に行うことが可能である。この手法を量子化と呼ぶ。”
  • PaintsChainerをPyTorchで学習 - TadaoYamaokaの開発日記

    Stable Diffusionが公開されてから、拡散モデルで自動着色したいと思っていて、自動着色についていろいろ調べていた。 最近、Style2Paints V5 Previewが発表されて、拡散モデルによる自動着色で高いクオリティの自動着色が実現できることが示された。 ControlNet Style2Paints V5は、ControlNetという方法が使われており、つい先日、論文とソースが公開された。 線画の着色の学習済みモデルも公開されているが、アニメイラストの自動着色のモデルは、権利の関係で公開されていない。 また、公開されたモデルでは、元のイラストの線が少し書き換えられることがあり、生成画像の質は高いが着色用途には問題がある。 イラストの着色には、元の線を保持する特化したモデルが必要である。 従来の着色技術 拡散モデル以前は、GANによる手法が主流であったが、GANによる手法

    PaintsChainerをPyTorchで学習 - TadaoYamaokaの開発日記
    misshiki
    misshiki 2023/02/21
    “GANによる自動着色を、PaintsChainerのソースをPyTorchにポーティングして試してみた。”
  • WhisperのモデルをONNXにする - TadaoYamaokaの開発日記

    WhisperのモデルをONNXに変換する方法について記述する。 Whisperのモデル WhisperのモデルはPyTorchを使ってPythonで実装されている。 そのため、実行にはPyTorchをインストールしたPython環境が必要になる。 環境構築なしでスタンドアロンで利用できると用途が広がる。 また、アプリへの組み込みも行いやすくなる。 ONNXモデル ONNXは、ニューラルネットワークの標準ファイルフォーマットである。 モデルをONNXにすると、ONNX Runtimeなどの推論用のライブラリを使って推論できる。 推論用のライブラリは、組み込みで使うことを意図しているので、スタンドアロンのアプリに組み込むことができる。 ONNXへの変換 WhisperのモデルからONNXへの変換は、pytorch.onnxを使って行う。 ただし、Whisperは、デコーダのループ処理で、前の

    WhisperのモデルをONNXにする - TadaoYamaokaの開発日記
    misshiki
    misshiki 2023/01/30
    “WhisperのモデルをONNXにする方法について記述した。PyTorchとONNXでtorch.catの動作が異なるため、試行錯誤が必要だった。”
  • Stable Diffusionを「いらすとや」で追加学習する - TadaoYamaokaの開発日記

    前回、Stable Diffusionをdanbooruデータセットを使用して追加学習することを試した。 今回は、自分でデータセットを作成して追加学習することを試す。 データセットには、画像とキャプションが揃っている必要があり、キャプションがない場合はCLIPで疑似ラベルを生成するなどする必要がある。 今回は、画像に対するキャプションがある「いらすとや」をスクレイピングして、データセットを作成した。 データセット作成 「いらすとや」から全ての画像とキャプションを取得した。 画像に複数バリエーションがある場合は、1つ目の画像のみを使用した。 キャプションは、日語になっているため、Googleスレッドシートで、「=GOOGLETRANSLATE(XX,"ja","en")」を使って英語に変換を行った。 合計で、22891枚の画像とキャプションのセットが用意できた。 画像サイズ変換 画像は、5

    Stable Diffusionを「いらすとや」で追加学習する - TadaoYamaokaの開発日記
  • 1