日本語GPT2をJupyter Notebookで動かす 日本語で事前学習して、ファインチューニングしたGPT2の威力を、手軽にJupyter Notebookで試せるようにした。以下のコードをNotebookにコピペして実行すると入力した導入フレーズを元に自動的に文章を作成します。以下の例の導入フレーズは、"夏目漱石は、"です。青空文庫の夏目漱石作品集で特別にファインチューニングしたので、漱石好きにはたまらない文章が生成されるかも知れません。大規模なGPTモデルなので、最初のモデルロードにかなり時間がかかります。このJupyter Notebook用のファイルはGithubに上げといたのでここからダウンロードできます。jweb_gpt2.ipynb----------------------------------------------------------------------------------------------------------------------------- jweb 日本語GPT2 In [1]: import torch from transformers import T5Tokenizer, AutoModelForCausalLM, T5ForConditionalGeneration, GPT2LMHeadModel In [2]: #tokenizer(字句解析)はT5Tokenizerを使用する tokenizer = T5Tokenizer.from_pretrained("jweb/japanese-soseki-gpt2-1b", use_auth_token=access_token) Special tokens have… ITTech/AI python pytorch Jupyter Notebook GPT GPT-2 Japanese pretrained
Rustで使える日本語で事前学習してチューニングしたGPT2大規模モデルを公開 Rust言語やPythonで使用できる日本語で事前学習して、更にファインチューニングしたGPT2-1.3B大規模モデルをHuggingFaceのTransformers Model Hubで公開した。このjweb/japanese-soseki-gpt2-1bモデルはrinna社のモデルを、青空文庫の夏目漱石の小説を使ってファインチューニング。Pythonだけではなく、Rust言語でも使える初めての日本語GPTモデルになるでしょう。使い方はモデルハブにソースコードを公開しましたが、なにぶん5GBを超える大規模モデルなので、最初の実行はモデルロードに結構時間がかかります。次の実行からはキャッシュ化されるので、ロード時間は大幅に短縮されるでしょう。実際に、"夏目漱石は、"と入力して実行するとランダムに以下のようにかなりちゃんとした文章が自動生成されました。 夏目漱石は、明治から大正にかけて活躍した日本の小説家です。彼は「吾輩は猫である」や「坊っちゃん」、「草枕」「三四郎」、あるいは「虞美人草」などの小説で知られていますが、「明暗」のような小説も書いていました。 Jupyter Notebookでも試せます。 GPTのような自然言語AIもそのうち、将棋やチェスのAIのようになるかも。
ブラームスはお好き(かなっくホール カシオペイア クアルテット演奏会) 東神奈川 かなっくホールでのカシオペイア クァルテットのコンサートを聴いてきた。とてもいい、充実した演奏でした。特に最後に演奏されたブラームスの3番が良かった。名演だった。音楽ホールは300席でライブ過ぎない、デッド過ぎないくらいのちょうどよい響き。 室内楽や小編成のオーケストラが聴きやすい。 今回はホール専属クァルテットによる演奏会。 後半に演奏されたブラームスの第3番は 私にとっては余りよく聴く曲ではなかったが、ブラームス最後の弦楽四重奏曲で複雑な曲だ。 やるせない切なさが感じられ、最後の楽章が幾分明るく、元気に終わる。 第3楽章はヴィオラが主導する印象的な楽章。 ブラームスの音楽の魅力は、ヴィオラの魅力だとよく言われるが、まさにその通りだった。 年寄りを泣かせる曲だ。 そういえば、ブラームスの恩師でもあったシューマンもブラームスと同じく交響曲を4曲、弦楽四重奏曲を3曲遺したが、 単なる偶然の一致だとは思わない。 ブラームスを理解する鍵だと思う。 クァルテットのメンバーは全員がオーケストラ奏者だが、ち密なアンサンブルの良さに特色が表されていた。 1stヴァイオリンとヴィオラの奏者が印象的だった。 今までのつたない音楽体験で、女性の、いい1stヴァイオリンがいるクァルテットは、いいクァルテットが多いと思っていたが、その通りだった。 来年はシューベルトをやるそうだが楽しみだ。 アマデウス弦楽四重奏団によるブラームス 弦楽四重奏曲 第3番 lifestye/music/concert カシオペイア クァルテット
りんな(rinna/GPT2)の愛読書は"夏目漱石" 日本語で事前学習したrinna/japanese-gpt-1bをRust言語で使ってみた。この日本語GPTは、一般的な日本語テキストの特徴を持つ高度な日本語文章を自動生成できるということです。更にこの日本語GPTを青空文庫の夏目漱石作品集でファインチューニングしてみた。さて、これで漱石の文体に特化した、漱石フレーバーな文章を自動作成できるでしょうか。また、RustとPythonで実行した場合の速度比較もやってみます。Rustのようなコンパイラ言語は高速なので、Pythonのようなインタープリタ言語と比較してエネルギー効率が高いという意見もある。C/C++での大規模開発を経験した人は、悪夢のようなメモリー関連のトラブルを味わったことがあるかもしれない。Rustは実用的な言語なので、試してみるには十分価値があると思う。 ITTech/AI GPT-2 Japanese pretrained RUST 機械学習 ITTech/Rust ディープラーニング Transformers EleutherAI/gpt-neo rinna/GPT 夏目漱石 GPT2
キタキツネはRustで日本語GPT-Neoを使う Rust言語で、事前学習した日本語版 GPTNeoを使ってみた。GPTは機械学習による自然言語処理モデルで、人が書いたのと区別できないほどの文章を自動生成できると言われている。Hugging FaceのTransformersに日本語で事前学習したJapanese Pre-trained GPTがいくつか挙がっている。1年半ほど前にはPyTorchで使える日本語GPTモデルがほとんどなかったので、自前で作成して試してみたが、その頃とはだいぶ様子が変わってきた。今回たまたま目についたのが、rinna社のrinna/japanese-gpt-1bとイエローバック社のgpt-neo-japanese-1.3BだがGPT2/3と競うと謳い文句のGPTNeoをRustで試してみた。 ITTech/AI pytorch GPT-2 Japanese pretrained RUST 機械学習 ITTech/Rust GPT-Neo キタキツネ ディープラーニング Transformers EleutherAI/gpt-neo Yellowback/GPTNeo rinna/GPT
キタキツネは非同期で居眠り中(Rustの非同期処理) Rustの非同期処理のサンプル。キタキツネは5秒間居眠りしてますが、この間でも別の処理を待たずに実行できます。 RUST ITTech/Rust 横浜の夜 非同期処理 async
RockPro64でarmbianそしてRust Pine64のRockPro64をarmbianで使ってみた。だいぶ以前に購入したが、OSが安定しなかったのであまり使ってなかった。armbian OSがRockPro64のサポートを始めたのでArmbian Focalをインストルールした。RockPro64 4GBはHex Core Arm(6 CPU)のシングルボードでRaspberry Pi 4よりもCPUは高性能だ。Wi-fiやBluetoothは標準では付いてないが、最近の価格だとRaspberry Pi 4B 4GBよりお買い得かもしれない。Armbian FocalのOSイメージをMicroSDに焼いてOSをインストールした。大容量の256GB MicroSDも使用できる。ボードの電源を入れても起動しない場合は、resetボタンを押すとうまくいくかも知れない。日本語を選択してインストールしても、文字化けする場合は、以下の日本語フォントと、ついでに日本語IMEをインストールする。 sudo apt install language-pack-ja… ITTech RUST RockPro64 armbian Lチカ
難しくないRustで画像表示そして画像認識(Rust+PyTorch) Rust言語は難しいと思われているが、実際使ってみると実用的な優れた言語だと思う。初心者殺しに会わないように、簡単にWindows表示ができて、描画、画像表示、画像認識ができるプログラムを紹介する。RustでWindowを作成して、画像表示、描画をしたい、キーボードやマウスも操作したいとなると、標準のimage クレートではそこまでできない。そこで適当なクレートを探そうとしても、多すぎて見つけるのが困難だ。そういう人にこの記事が参考になると嬉しい。show-imageクレートを使うと、Window作成とキーボード操作が簡単になる。分かりやすいように、エラー処理は省いている。プログラムは以下の様な感じになる。 use show_image::{ImageView, ImageInfo, create_window}; #[show_image::main] fn main() -> Result<(), Box<dyn std::error::Error>> { // 事前にpixel_dataに画像をロードする let image = ImageView::new(ImageInfo::rgb8(1920,… pytorch RUST 機械学習 ITTech/Rust show-image