自分の好みを学習するローカルAI「Anagnorisis」— 音楽・画像・動画をプライベートにレコメンド
この記事の要約
- Anagnorisis(アナグノリシス) は、自分のコンテンツ評価データをもとにAIモデルをローカルでファインチューニングできる、完全プライベートなレコメンデーションツールです。
- 音楽・画像・テキスト・動画の4種類のメディアに対応しており、「自分好み度」をスコアで表示・並べ替えできます。
- クラウドへのデータ送信はゼロ。すべての学習と推論がお手元のマシンで完結します。
- Dockerを使った起動が推奨されており、コマンド数は5ステップ程度と比較的シンプルです。
- 今回の検証ではディスク容量不足(約45GB必要)のためインストールが完了しませんでしたが、アプリのコード自体に問題はありませんでした。
- GPUなしのCPUのみでも動作しますが、推論速度が大幅に低下する点に注意が必要です。
- つまずきやすいポイントは「ストレージ不足」と「Windowsでの不安定動作」の2点です。
- この記事は「要約→結論→できること→おすすめの人→インストール手順→検証レポート→FAQ→用語解説」の順で読むと理解しやすいです。
ひとことでいうと
Anagnorisis は、「自分専用のレコメンドAI」を自分のパソコンの中だけで育てられるソフトウェアです。たとえば、好きな曲・嫌いな曲を100曲ほど評価するだけで、AIが「あなたならこの新曲も好きそう」と予測してくれるようになります。SpotifyやYouTubeのレコメンドと似た体験を、データを外部に渡さずに実現できる点が最大の特徴です。プライバシーを大切にしながら、大量のコンテンツを自分好みに整理したい人にとって、非常に強力な選択肢といえます。
このソフトで何ができる?
この章では、Anagnorisis の主要な機能と、どんな体験ができるかを理解できます。
Anagnorisis の中心機能は「個人の好みを学習したAIモデルの作成」です。使い方の流れはシンプルで、まず音楽・画像・テキストなどのコンテンツを 0〜10のスケールで評価します。その評価データがローカルデータベースに蓄積されていき、十分な量が集まったら「Train(トレーニング)ページ」でモデルをファインチューニングできます。ファインチューニングとは、既存のAIモデルを自分のデータで追加学習させる手法のことです。
学習が完了すると、まるで自分が評価したかのようにスコアを予測するモデルが完成します。このモデルで新しいコンテンツをスコアリングし、気に入らない評価があれば「再評価→再学習」のサイクルを繰り返すことで、自分の好みにどんどん精度高く対応するパーソナルモデルが育っていきます。つまり、使えば使うほど賢くなる仕組みです。
モジュール構成により Images(画像)・Music(音楽)・Text(テキスト)・Videos(動画)・Train(学習UI) の5つが標準搭載されており、外部モジュールのインストールにも対応しています。埋め込みモデル(Embedding、テキストや音声を数値ベクトルに変換するAIのこと)には、CLAP(音声用)・SigLIP(画像用)・jina-embeddings-v3(テキスト用)を採用しています。最新バージョン(0.3.4以降)では MiniCPM-o-4.5 によるオムニ記述モデル(ひとことで言うと、複数種類のデータをひとつのAIで処理するモデル)で全データを統一的に扱う方向へ移行中です。将来的には1つのモデルがすべてのデータ種別を評価する「デジタルツイン」的な構成を目指しています。
こんな人におすすめ — 活用シーンと使い道
この章では、Anagnorisis がどんな人にとって役立つかを具体的なシーンで紹介します。
1. 音楽コレクターやDJには特に有用です。ローカルに保存した数千曲のライブラリを自分の好みで自動スコアリング・ソートでき、新着アルバムを「自分好みかどうか」でフィルタリングできます。ランダム再生に頼らず好みの曲を効率的に発見できるため、大きなライブラリを持つほど恩恵が大きくなります。
2. フォトグラファーや画像キュレーターにとっても強力なツールです。大量の写真や画像ファイルを手作業でタグ付けするのは大変ですが、Anagnorisis に好みのサンプルを学習させれば、新たに追加した画像を自動的に好み順に並べ替えて表示できます。数年分の写真ライブラリから「ベストショット集」を自動生成することも可能です。
3. 研究者やプライバシー重視のテックユーザーにも最適です。クラウドAIサービスに個人データを預けることへの懸念を持つ方でも、Anagnorisis なら学習データも推論もすべてローカルで完結するため安心です。センシティブなコンテンツや個人的なコレクションも、外部サーバーに送らずに管理できます。
そのほかの活用アイデアとしては、テキストモジュールで記事を評価・学習させる個人ニュースフィルター、instances/ ディレクトリのサンプルを使って家族ごとに独立したインスタンスを起動する複数ユーザーでの並行運用、外部モジュール WebSearch をインストールしてウェブクロールと意味検索を組み合わせた独自の検索エンジン構築なども紹介されています。
インストール・セットアップ(Docker 推奨)
この章では、Anagnorisis を実際に起動するまでの手順を、Docker を使った方法でステップごとに説明します。
Anagnorisis の推奨起動方法は Docker Compose(ドッカー・コンポーズ) です。Docker とは、アプリの実行環境をまるごとパッケージ化する技術のことです。依存ライブラリのバージョン問題を気にせず動かせるため、開発元が強く推奨しています。なお、初回起動時はモデルのダウンロードが行われるため、ストレージは約45GB以上の空き容量が必要です。
Step 1: リポジトリのクローン
git clone https://github.com/volotat/Anagnorisis.git
cd Anagnorisis
git clone はリモートリポジトリ(インターネット上のソースコード置き場)を手元にコピーするコマンドです。cd Anagnorisis でそのフォルダに移動します。このステップで失敗する場合は、Git がインストールされていないか、インターネット接続を確認してください。
Step 2: オーバーライド設定ファイルの作成
cp docker-compose.override.example.yaml docker-compose.override.yaml
サンプルの設定ファイルをコピーして、自分用の設定ファイルを作ります。このファイルに「どのフォルダをコンテナに見せるか」を記述します。このステップを飛ばすと、次の Step 3 で編集するファイルが存在せずエラーになります。
Step 3: マウントパスの設定
volumes:
- /home/user/Anagnorisis-config:/mnt/project_config
- /home/user/Photos:/mnt/media/images/Photos
- /home/user/Music:/mnt/media/music/Music
- /home/user/Documents:/mnt/media/text/Documents
- /home/user/Videos:/mnt/media/videos/Videos
docker-compose.override.yaml を開き、上記の /home/user/... の部分を自分の実際のフォルダパスに書き換えます。ボリューム(volumes)とは、ホストPC(自分のPC)とコンテナ(Docker の仮想環境)の間でフォルダを共有する仕組みです。パスを間違えると、アプリが音楽や画像フォルダを認識できません。
Step 4: コンテナの起動
docker compose up -d
-d はバックグラウンドで起動するオプションです。初回はUbuntu 22.04・CUDAドライバ・各種MLモデルを含む大型イメージをダウンロードするため、かなり時間がかかります。進捗は logs/anagnorisis-app_log.txt で確認できます。
Step 5: ブラウザでアクセス
http://localhost:5001
コンテナが正常に起動したら、ブラウザでこのURLを開けばアプリのUIが表示されます。停止するときは docker compose down を実行します。表示されない場合は、docker compose logs でエラーログを確認してみてください。
ローカル環境での起動方法(Dockerを使わない場合)
この章では、Dockerを使わずにPython環境で直接起動する手順を説明します。ただしWindowsでは動作が不安定になる場合があるため、可能な限りDockerの利用を推奨します。
Step 1: 依存パッケージのインストール
pip install -r requirements.txt
pip はPythonのパッケージ管理ツールです。requirements.txt に書かれたすべてのライブラリを一括インストールします。PyTorchなど大型ライブラリが含まれるため、ストレージ容量と通信時間に注意してください。
Step 2: 設定ファイルの確認・編集
config.yaml(設定ファイル)でデータフォルダのパスなどを自分の環境に合わせて設定します。このファイルを正しく設定しないと、アプリが読み込むメディアフォルダを認識できません。
Step 3: アプリケーションの起動
python app.py
Step 4: ブラウザでアクセス
http://localhost:5001
NVIDIA GPU(VRAM 8GB以上)での動作が推奨されますが、RAM 16GBあればCPUのみのモードでも動作します。GPUなしでは推論速度が大幅に低下する点に注意が必要です。
Docker 検証レポート — 分かったこと
この章では、実際にDockerコンテナで起動を試みた際の記録と、ログの読み方を解説します。
今回の検証環境では、pip install の段階でディスク容量不足エラーが発生しました。これはホスト環境のストレージ制約によるもので、アプリケーション自体の問題ではありません。
ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device
この行は「パッケージのインストール中にOSエラーが発生した」という意味です。Errno 28 は Linux における「デバイスに空き容量がない」エラーコードです。つまり、ディスクの空きがなくなったためにインストールが強制終了しています。
README にも記載のとおり、Anagnorisis の Docker イメージは Ubuntu 22.04・CUDAドライバ・複数の大型機械学習モデルと依存関係を含むため、ビルド後のストレージ使用量は約45GBに達します。今回の検証環境はその要件を満たしていませんでした。
ModuleNotFoundError: No module named 'flask'
この行は「Flaskというライブラリが見つからない」というエラーです。Flask(フラスク)はPythonのWebフレームワーク(Webアプリを作るための土台)で、Anagnorisis のサーバー部分に使われています。pip インストールが途中で失敗したため、Flaskも含めすべてのライブラリが導入されていない状態になっています。これはインストール失敗の連鎖的な結果であり、コード自体のバグではありません。
一方、Python 3.12.13 が利用可能であることは確認でき、ソースコード(app.py、src/text_embedder.py)やリソースファイル(static/、project_info/)は正しくリポジトリに存在していました。アプリケーションのコード構造自体に問題はなく、環境さえ整えば動作する状態です。
デモについて
今回の検証環境ではディスク容量不足のため pip インストールが完了せず、Flask や PyTorch 等の依存ライブラリを導入できませんでした。アプリケーション本体は約45GBのストレージとGPUを前提とした大型MLモデルを必要とするため、簡易的なデモ環境の作成は現実的ではありません。実際の動作は、公式YouTubeの「Anagnorisis: Search Your Data Effectively」などの動画や、ローカルでのDocker起動によって確認することをお勧めします。
よくある質問
Q1. GPUがないパソコンでも動きますか?
動作はします。RAM 16GB以上あれば、CPUオンリーモードで起動できます。ただし、AIモデルの推論(コンテンツのスコアリング)速度がGPU使用時より大幅に遅くなります。大量のコンテンツを一度に処理する場合は特に時間がかかるため、GPU環境の用意を検討することをお勧めします。
Q2. データはどこかに送られませんか?
送られません。Anagnorisis はすべての処理をローカル環境で完結させる設計になっています。評価データも学習済みモデルも、インターネットには出ていきません。プライバシーを重視する用途にも安心して使えます。
Q3. 何曲・何枚評価すればAIが賢くなりますか?
READMEには明確な最低件数は記載されていませんが、機械学習の一般的な知識として、数十件以上の評価データがあれば傾向を学習し始めるといわれています。評価件数が多ければ多いほど精度は向上するため、気長に使い続けることが大切です。
Q4. Windowsでは動かないのですか?
完全に動かないわけではありませんが、READMEでは「Windowsでは不安定になる場合がある」と明記されています。Windowsユーザーは特にDocker経由での起動を強く推奨されています。Docker Desktop for Windows を使えば比較的安定して動作する可能性があります。
Q5. ストレージが45GBも必要なのはなぜですか?
Anagnorisis は音声・画像・テキストそれぞれの専用AIモデル(CLAP・SigLIP・jina-embeddings-v3など)を内包しているためです。これらは高精度なレコメンドを実現するための大型モデルで、ひとつひとつのサイズが数GBになります。加えてUbuntu 22.04のベースイメージやCUDAドライバも含むため、合計で約45GBに達します。
まとめ・つまずきポイントと対処法
この章では、記事全体の振り返りと、実際に使う前に知っておきたい注意点をまとめます。
Anagnorisis は「あなたの好みを学習するローカルAI」という明確なビジョンを持つ、意欲的なオープンソースプロジェクトです。クラウドサービスに依存せず、すべての学習・推論をローカルで完結させるアーキテクチャは、プライバシーを重視する現代のユーザーのニーズに応えるものです。音楽・画像・テキスト・動画と幅広いメディアタイプに対応し、モジュール型の拡張システムによって将来的な機能追加も容易な設計になっています。
つまずきやすいポイントは主に2つです。第一にストレージ容量で、約45GBの空き容量が必要です。Dockerイメージのダウンロード前に必ず確認しましょう。第二にWindowsでの動作不安定で、これはDocker利用で回避できる場合があります。
最新バージョンではオムニ記述モデルによる統一的な埋め込み生成へと移行を進めており、長期的なロードマップに基づいた継続的な開発が行われています。技術的なハードルはある程度ありますが、Dockerによる簡単な起動手順が整備されており、挑戦する価値は十分にあるプロジェクトといえます。
用語とポイント解説
Anagnorisis(アナグノリシス) 古代ギリシャ語で「認識・発見」を意味する言葉です。本ソフトウェアの名称として使われており、「自分の好みを発見する」というコンセプトに由来しています。アリストテレスの詩学にも登場する概念です。
ファインチューニング(Fine-tuning) 既存の大規模AIモデルを、追加データで再学習させる技術です。ゼロからAIを育てるより少ないデータと時間で済みます。Anagnorisis では、ユーザーの評価データをもとにファインチューニングを行い、個人専用のレコメンドモデルを作ります。
埋め込み(Embedding) テキスト・音声・画像などのデータを、AIが計算しやすい数値のリスト(ベクトル)に変換する処理です。たとえば「楽しい曲」と「明るい曲」は似た数値になります。この数値の近さを比較することで、好みに近いコンテンツを見つけられます。
Docker(ドッカー) アプリの実行環境をまるごとパッケージ化して持ち運べる技術です。「コンテナ」という単位で環境を隔離するため、ライブラリのバージョン違いによるトラブルを防げます。Anagnorisis の推奨起動方法で、初心者でも環境構築しやすくなります。
Docker Compose(ドッカー・コンポーズ)
複数のDockerコンテナをまとめて管理するツールです。docker-compose.yaml という設定ファイルに起動方法を記述し、docker compose up の1コマンドで環境全体を立ち上げられます。
CUDA(クーダ) NVIDIA製GPUを汎用計算(AIの学習・推論など)に使うためのプラットフォームです。CUDAドライバがインストールされていると、AIモデルの処理を大幅に高速化できます。Dockerイメージにも含まれているため、サイズが大きくなる原因のひとつです。
Flask(フラスク)
PythonでWebアプリを作るための軽量フレームワークです。Anagnorisis のブラウザUI部分のサーバーとして使われています。pip インストールが失敗すると、Flaskが導入されず ModuleNotFoundError エラーが発生します。
ボリューム(volumes)
Dockerにおいて、ホストPC(自分のPC)のフォルダとコンテナ内のフォルダを共有する仕組みです。docker-compose.override.yaml でパスを指定することで、自分の音楽・画像フォルダをアプリから参照できるようになります。
CLAP / SigLIP / jina-embeddings-v3 それぞれ音声・画像・テキスト用の埋め込みモデルです。CLAPは音声の特徴を数値化し、SigLIPは画像を、jina-embeddings-v3はテキストを数値ベクトルに変換します。これらのモデルのおかげで、Anagnorisis は異なるメディア種別のコンテンツを統一的にスコアリングできます。
MiniCPM-o-4.5 複数の入力形式(テキスト・音声・画像など)をひとつのモデルで処理できる「オムニ記述モデル」です。Anagnorisis の最新バージョン(0.3.4以降)ではこのモデルへの移行が進んでおり、将来的にはひとつのモデルで全データ種別を評価する設計を目指しています。
pip(ピップ)
Pythonのパッケージ管理ツールです。pip install -r requirements.txt のように使い、必要なライブラリを一括インストールできます。ストレージ不足や権限エラーがある場合、インストールが途中で止まります。
Errno 28 / No space left on device Linuxのエラーコードで「デバイスに空き容量がない」ことを意味します。Dockerイメージのビルド中やpipのインストール中にこのエラーが出た場合は、ストレージの空き容量を確認する必要があります。Anagnorisis では約45GBの空き容量が必要です。