はじめに
この記事は「ただただアウトプットを癖付けるための Advent Calendar 2024」に投稿した記事です。
最初の記事にも書いた通り、私は生物物理の実験を専門にしている研究者です。
最近はデータ解析のため機械学習のコード開発も行っており、幸いにもその成果がNeurIPSに採択されました。
ここまでいくつかの記事でLLMについて触れてきましたが、あくまでも使う側であったり、論文を読むというところでした。
今回からは、自分でファインチューニングを行ってみることにしました。
関連記事
前の記事 「生物物理屋によるNeurIPS2024の感想」
次の記事「生物物理屋がファインチューニングに挑戦してみた話その2」
参考書
今日から使えるファインチューニングレシピ AI・機械学習の技術と実用をつなぐ基本テクニック
githubにリポジトリがあります。
今回の目標
教師なし異常検知のファインチューニングに関するレシピを体験してみる
タスク
anomalibという異常検知用ライブラリのPatchCoreモデルを、テストデータでファインチューニングする
やったこと
リポジトリのReadMeから、異常検知のjupyter notebookのところにあるopen in colabをクリックして、Colabで開きました。
セッションをGPU使用に変更し、セルを実行していきます。
画像データのダウンロードにおいてkaleidoというパッケージが必要だといわれたので、最初のセルのpip installに追加しました。
セッションを再起動して、セルを実行すると、最後まで回り切りました。
事前学習のみのPatchCoreモデルを使った場合にどうなるか確認してみようとしましたが、エラーが出てしまいました。
PatchCoreモデルの出力は、あくまでもファインチューニングを介して保持した特徴量との比較を前提として構築されるため、事前学習なしにはそもそも予測が不可能なようです。
この特徴量は、model.memory_bankに格納されていました。上記のエラー内容を見ると、これとデータの特徴量との距離を計算することで、異常度を算出しています。