daisukeの技術ブログ

AI、機械学習、最適化、Pythonなどについて、技術調査、技術書の理解した内容、ソフトウェア/ツール作成について書いていきます

サイトマップ

本ブログを見て頂いて、ありがとうございます!

このブログでは、AI、機械学習、最適化、Pythonなどについて、技術的な内容や、ツールの作成/紹介を書いています。

また、はてなブログを始めるにあたり、ブログをカスタマイズした方法についても、詳しく書いています。

もし、このブログでお気づきの点や、問い合わせなどありましたら、問い合わせフォームか、XのDMにお知らせください。

エンジニアグループのランキングに参加中です。

気楽にポチッとよろしくお願いいたします🙇

AI

AI - Optuna

AI - 量子化

Java

Python

Linux

ブログカスタマイズ

ブログ作成&便利ツール

量子化:論文 Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference を読む(2)

「量子化の論文を読む」の2回目です!

Googleが2017年12月にarXivに登録した論文の「Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference」の続きで、今回は2章を読んでいきます。

続きを読む

Raspberry Pi 4のTensorFlow Lite C++をVSCodeでリモートデバッグする

今回もAIの量子化について学んでいきます。論文を読むことは継続しつつ、今回は、TensorFlow Lite C++ の動作を見るために、デバッグ環境を立ち上げたいと思います。

前回は、TensorFlow Lite の C++ で、量子化モデルを動かしました。何が実行されてるか分からなかったので、ソースコードを見ていきます。ソースを追うだけで理解するのは難しいので、デバッグ環境を立ち上げて、動かしながら理解していきます。

Raspberry Pi 上で動作するプログラムのデバッグ環境としては、VSCode のリモートデバッグを使います。さらに、今回は、CMake環境のデバッグということで、そのあたりの基礎的なところからやっていきたいと思います。

続きを読む

TensorFlow Lite C++で量子化モデルをRaspberry Pi 4で動かす

今回もAIの量子化について学んでいきます。論文を読むことは継続しつつ、今回は、実際に量子化モデルを動かして、推論の高速化を実感したいと思います。

前回(TensorFlow Lite Pythonで量子化モデルをRaspberry Pi 4で動かす - daisukeの技術ブログ)は、Python の tflite-runtime をインストールして実行しましたが、今回は、C++でやっていきます。手順通りにやれば、必ず同じことが出来るように、環境構築、ビルド、実行の手順を書いていきます。

それでは、やっていきます!

続きを読む

TensorFlow Lite Pythonで量子化モデルをRaspberry Pi 4で動かす

今回もAIの量子化について学んでいきます。論文を読むことは継続しつつ、今回は、実際に量子化モデルを動かして、推論の高速化を実感したいと思います。

まずは、VirtualBox の Ubuntu 22.04 で動かしていきますが、TensorFlow Lite は、ARM CPU に最適化されていると思うので、性能が出ないかもしれません。その後、Raspberry Pi 4(Raspberry Pi OS)でも動かしていきます。

それでは、やっていきます!

続きを読む

量子化:論文 Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference を読む(1)

今回からAIの量子化について、学んでいこうと思います。具体的には、量子化することによる推論の高速化について調べていきたいと思います。

最近のChatGPTなどに代表される「大規模言語モデル(LLM)」の動向としても、量子化が注目されてきています。

量子化によって、一定の精度劣化はありますが、モデルを小さくしたり、推論速度を改善したりできることから、エッジデバイスで推論する際に、よく使われています。

最近、スマホにLLMを搭載したというニュースが出てました。

AIの量子化では、大きく分けて、PTQ(Post Training Quantization)と呼ばれる「学習後の量子化」と、QAT(Quantization Aware Training)と呼ばれる「学習中の量子化」があります。

PTQは、既に学習が完了したモデルに対して、量子化したモデルに変換する手法で、QATより量子化の精度劣化は大きいものになりますが、手軽に量子化を試せるため、よく使われています。

一方、QATは、学習中に量子化モデルを作成する仕組みを使用するため、精度劣化は最低限に抑えることが出来ますが、学習してみないと、その精度劣化を確認できないため、PTQより手間がかかります。

現在、PyTorchやTensorFlowで実装されているQATは、Googleが2017年12月にarXivに登録した論文の「Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference」がベースになっていると思います。

まずは、量子化の基本から学び、この論文でQATの理論を学んでいこうと思います。

ある程度理解できたら、PyTorchの量子化学習を試してみて、この論文との違いや、特徴などを見ていきたいと思います。

続きを読む

Jarの作り方とJarを含んだJavaのコンパイル方法をパッケージ含めていろいろ試してみる

前回は、Javaのコンパイルと実行時のパスの関係を整理しました。

今回は、Jarを含めた場合をやっていきます。

それではやっていきます!

続きを読む

PyInstallerを使ってTkEasyGUIを使ったGUIアプリ(url2title)をexe化する

前回、URLをコピーしてクリップボードに送ると、Webスクレイピングで記事のタイトルを取得して表示するPythonのTkEasyGUIを使ったGUIアプリ(url2title)を作りました。

はてなブログの記事のURLが日付の場合に、何の記事かを確認するのに、いちいちブラウザで開いてタイトルを確認するのが手間なので、ツール化したものです。

このGUIアプリを使うには、Pythonをインストールした環境が必要でした。今回は、PyInstallerを使って、GUIアプリ(url2title)をexe化して、Python環境がなくても実行できるようにします。

PyInstallerはOSSで商用利用可能です。

それでは、やっていきます!

続きを読む