Python

Gradioで1つのTextboxから複数のChatbotに同じメッセージを送る

Gradioでチャットボットを実装して色々なLLMやプロンプトで遊んでいた時、同じテキストを入力した場合にLLMの種類やプロンプト設計で結果がどのように変わるのかを比較したくなった。 1つのTextboxから複数のChatbotに同じメッセ...
Linux

Jetson AGX Orinの初期化でエラー Reading board information failed

SDK Managerからイメージを書き込んでJetson AGX Orinの初期化をしようとしていたら表題のエラー。 Flashの手順は以下のページを参考にしていた。 SDK上ではデバイスが認識されているのだが、いざFlashを実行すると...
Python

StreamlitにGoogle Analyticsのタグを埋め込む

Streamlitで作ったwebアプリにGoogle Analyticsのタグ(gtag.js)を埋め込みたかったが手こずった。 st.components.v1.htmlやst.markdownでhtmlを書き込むことが可能だが、<bod...
Deep Learning

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

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

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

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

テキストの前処理でGiNZAを使って個人情報のマスキングをする

LLMの学習データを用意していた際、人名などの個人情報をマスキングしたくなった。 調べてみると、日本語の自然言語処理ライブラリであるGiNZAで固有表現を抽出できるみたい。 v5からTransformersモデルを採用しており、解析精度が向...
Deep Learning

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

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

Ubuntuで電源を落とさずにSSD/HDDをホットスワップする

再起動せずにSSD/HDDを交換したい場面があったので、Ubuntuでのホットスワップの手順をまとめた。 マザーボードやBIOSがホットスワップに対応していること前提。 以下、交換したいストレージは/dev/sdbでアンマウント済、ルートユ...
その他

EndNoteにarXivの文献を取り込む方法

文献管理ツールのEndNoteにarXivの論文を取り込むのに手こずったので備忘録。 arXivの論文ページ右側のDownloadからNASA ADSをクリック。 左側のExport Citationを選択し、Export FormatをE...
LeetCode

pythonで深さ優先探索の行きがけ、帰りがけ、通りがけの使い分け

深さ優先探索では、行きがけ(preorder)、帰りがけ(postorder)、通りがけ(inorder)を使い分けることがあるが、こんがらってしまう。 理解しやすいよう2分木で簡単な実装をしてみた。以下、当該ノード、左部分技、右部分技のこ...