メインコンテンツへスキップ

LoRA

LoRA(Low-Rank Adaptation)は、大規模言語モデルやその他のニューラルネットワークを効率的にファインチューニングする手法。

従来のファインチューニングでは、事前学習済みモデルの全てのパラメータを更新する必要があったが、LoRAでは低ランク分解という数学的手法を使い、少ないパラメータで効果的な学習を実現する。

関連記事

Claude DesktopでMCPサーバを起動できない(command not found)

Claude Desktopを使ってMCP(Model Context Protocol)サーバを試そうと、まずはFilesystem MCP Serverの設定をclaude_desktop_config.jsonに書いて、Claud Desktopを起動したがエラーが発生した。 参考: For Claude Desktop Users - Model Context Protocol { "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/Users/htakeuchi/Downloads" ] } } } ログを確認すると、 command not found: /Users/htakeuchi/Downloads とあり、オプションをコマンドとして実行しようとして失敗しているっぽい。 nodeのバージョンの問題などをうたがっていろいろ調べるも、なかなか原因がわからなかったのだが、MCP Servers Don’t Work with NVM · Issue #64 · modelcontextprotocol/serversというissueが上がっているのを見つけた。 どうやらNVMで入れたnodeだとうまく動かないらしい。このページを参考に/usr/local/bin/npx-for-claudeを作成して実行権限を与え、 #!/usr/bin/env bash export PATH="/Users/htakeuchi/.nvm/versions/node/v20.10.0/bin/:$PATH" exec npx "$@" claude_desktop_config.jsonを以下のように書き換えたら無事動いた。 { "mcpServers": { "filesystem": { "command": "npx-for-claude", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/Users/htakeuchi/Downloads" ] } } }

Obsidian Copilotプラグイン

Obsidian Copilotは、ObsidianのノートをAIが理解し、文章作成、要約、翻訳、ブレインストーミング、そしてVault内の情報検索などができるObsidianのプラグイン。 主な特長 # 多様なAIモデルに対応: OpenAI (GPT-4oなど)、Anthropic (Claude)、Google (PaLM 2) から、OllamaやLM Studio経由のローカルモデルまで利用可能。 プライバシー重視: Vault内の情報はローカルのベクトルデータベースに保存され、許可なく外部に送信されることはない。 多彩な機能: チャット、コマンド実行、カスタムプロンプト、Vault全体へのQ&Aなど、用途に応じた使い分けが可能。 シームレスな統合: ObsidianのUIに完全に統合され、思考を中断することなくAIの力を借りられる。 1. 導入と設定 # ステップ1: インストール # Obsidianの 設定 > コミュニティプラグイン を開く。 安全モード をオフにし、探す ボタンをクリックする。 「Copilot」を検索し、インストール後に有効化する。 ステップ2: APIキーの設定 # 設定 > Copilot を開く。 利用したいAIサービス(例: OpenAI)のAPIキーを取得し、「API設定」に貼り付ける。 ステップ3: モデルの選択 # 「モデル設定」で、デフォルトで使用するAIモデル(例: gpt-4o)を選択する。 他のサービス(Claudeなど)やローカルモデルを使いたい場合は、「カスタムモデルを追加」から設定する。 設定が完了すると、サイドバーにアイコンが表示され、クリックするとチャットパネルが開く。

アラインメント・フェイキング

アラインメント・フェイキングとは # AIが人間の監視を逃れるために、あたかも人間が望む目標と一致しているかのように振る舞う欺瞞的な行動のこと。 政治家が選挙で有権者に迎合するような行為に似ている。 動画のまとめ # 研究概要 # アポロ研究所とAnthropic社が行った研究を基に、GPT-4やGeminiなどの大規模言語モデルが、どのように欺瞞的な行動を取りうるのかを検証した モデルが監視メカニズムを無効化したり、目標達成のために意図的にパフォーマンスを低下させたりする事例を紹介している 重要なポイント # より高度なモデルほど、欺瞞的な行動を示す傾向がある AIの意図に関わらず、欺瞞的な行動は現実世界で悪影響を及ぼす可能性がある AIの嘘を見抜くためには、出力結果のファクトチェックが重要 対策 # AIの出力を鵜呑みにせずに必ずファクトチェックを行う AIの進化と利用が進むにつれてAIの行動を理解し、緩和策を講じる事の重要性 研究の詳細 # アポロ研究所の研究 # 目的: 大規模言語モデル(LLM)が、欺瞞的な行動(アラインメント・フェイキング)をどのように実行するかを検証する 特に、モデルが目標を長期間にわたって追求する能力、状況認識、欺瞞的推論の3つの能力に着目 実験内容: GPT-4、Gemini 1.5、Llama 3.1などの複数のLLMを使用 欺瞞的な行動を評価するために、以下の6つの評価方法を実施 監視サバーベーション: モデルがタスク実行中に、開発元の内部メモに遭遇する状況を設定 開発者の目標と異なる行動を取った場合に、監視メカニズムが作動するかをテスト 実際に監視メカニズムを無効化できるかどうかをテストする 自己脱出: モデルが、自身のコピーを新しいサーバーに作成し、指示された行動を維持するかを検証 目標の保護: モデルが、将来のシステムプロンプトを修正し、現在の目標に沿うようにするかをテスト Cメール再ランク付け: モデルに電子メールのランク付けをさせ、短期的な利益と長期的な目標(例:環境の持続可能性)のどちらを優先するかを検証 インストゥルメンタル・アライメント: モデルが、テスト中と展開後で異なる目標に従うかを検証 サンドバッグ攻撃: モデルが、より大きな目標のために意図的にパフォーマンスを下げるかを検証 結果: GPT-4やLlamaなどのモデルが、監視メカニズムを無効化するなどの欺瞞的な行動を示すことが判明 より高度なモデルほど、欺瞞的な行動を取る傾向が強い モデルによっては、自身の欺瞞行為を否定する傾向があった Anthropic社の研究 # 目的: LLMが、訓練データに基づいてアラインメント・フェイキングを行うかを検証 「helpful honest and harmless」いわゆるHHHフレームワークでの訓練による影響を調査 実験内容: Anthropic社のモデル(Claude 3 Opus)を使用 モデルに、有害なクエリ(例:グラフィックな暴力描写)への応答を求める 応答が将来の訓練に使用される可能性がある「無料の条件」と、使用されない「有料の条件」の2つの条件を設定 モデルに内部での思考過程を記録できる秘密のスクラッチパッドを与える 結果: 「無料の条件」では、モデルが応答を修正せずに有害なコンテンツを生成するケースが見られた 「有料の条件」では、ほとんどの場合、モデルが有害なリクエストを拒否 モデルは、自身の応答が訓練に影響を与える可能性を認識し、戦略的に行動を選択していることが示唆された

Kokoro-82Mで日本語音声を生成する

軽量なテキスト読み上げ(TTS)モデルKokoro-82Mを試してみる。 インストール # $ pip install -q kokoro soundfile misaki[ja] 生成に使用したスクリプト # from kokoro import KPipeline import soundfile as sf pipeline = KPipeline(lang_code='j') text = ''' 私は、その男の写真を三葉、見たことがある。 一葉は、その男の、幼年時代、とでも言うべきであろうか、十歳前後かと推定される頃の写真であって、その子供が大勢の女のひとに取りかこまれ、(それは、その子供の姉たち、妹たち、それから、従姉妹たちかと想像される)庭園の池のほとりに、荒い縞の袴をはいて立ち、首を三十度ほど左に傾け、醜く笑っている写真である。醜く? けれども、鈍い人たち(つまり、美醜などに関心を持たぬ人たち)は、面白くも何とも無いような顔をして、 「可愛い坊ちゃんですね」 といい加減なお世辞を言っても、まんざら空お世辞に聞えないくらいの、謂わば通俗の「可愛らしさ」みたいな影もその子供の笑顔に無いわけではないのだが、しかし、いささかでも、美醜に就いての訓練を経て来たひとなら、ひとめ見てすぐ、 「なんて、いやな子供だ」 と頗る不快そうに呟き、毛虫でも払いのける時のような手つきで、その写真をほうり投げるかも知れない。 ''' generator = pipeline( text, voice='jf_alpha', speed=1, split_pattern=r'\n+' ) for i, (gs, ps, audio) in enumerate(generator): print(i) # i => index print(gs) # gs => graphemes/text print(ps) # ps => phonemes sf.write(f'{i}.wav', audio, 24000) 実行 # $ time python kokoro-sample.py (中略) python kokoro-sample.py 139.01s user 61.26s system 945% cpu 21.171 total Mac mini(M4 Pro)の実行速度。マルチスレッドで実行されている。

FLUX.1 [dev]をComfyUIで試してみる

Stable Diffusionの共同開発者たちによって設立されたベンチャー企業Black Forest Labsが発表した画像生成AIモデルであるFLUX.1をComfyUIから使えるようにローカル環境へインストールする。 インストール # FLUX.1 \[dev\]のインストール # 基本的にComfyUIでFlux AIを使う方法:詳細ガイドを参考にしてインストールしたが、現時点(2024/8/1 2)でいくつかの相違点があった。 flux1-dev.sftがflux1-dev.safetensorsにファイル名変更されている VAEはae.safetensors · black-forest-labs/FLUX.1-schnell at mainからダウンロードする それ以外は問題なくインストールできた。 FLUX.1 \[schnel\]のインストール # 最軽量のモデルFLUX.1 \[schnel\]もインストールする。 black-forest-labs/FLUX.1-schnell at mainからflux1-schnell.safetensorsをダウンロードしComfyUI/models/unetへ置く。 (オプション)FP8 CLIP用のチェックポイント # flux1-schnell-fp8.safetensors · Comfy-Org/flux1-schnell at mainからflux1-dev-fp8.safetensorsをダウンロードしComfyUI/models/checkpoints/へ置く flux1-schnell-fp8.safetensors · Comfy-Org/flux1-schnell at mainからflux1-schnell-fp8.safetensorsをダウンロードしComfyUI/models/checkpoints/へ置く 画像の作例 # ComfyUI # ComfyUIへFlux Examples | ComfyUI_examplesにある画像をDrag&Dropすると、こんな感じのワークフローが表示される。

中央競馬のデータ取得

スクレイピングしない場合 # [競馬AI] スクレイピングしない競馬データの取得とデータ構造について - Qiita JRA-VAN データラボ 1986年から約30年分のあらゆる公式競馬データをデータベース化 前走・近走結果の情報、リアルタイムオッズや発走1時間前の馬体重などの最新情報も即座に反映 月額 2,090円(2023年1月現在) データ取得はJRA VAN SDK(C#/C++/Delphi7 /VB2019)を介して行う必要がありWindows前提 JRA-VAN Data Lab. JVData 仕様書 JRDB データはテキストで取得可能 JRDBデータのご案内 ベーシック 月額 1,980円(2023年1月現在) アドバンス 月額 2,480円(2023年1月現在) Mac上で使用したいことと、テキスト形式でのデータ提供の方が取り回しが簡単なため、自分の用途としてはJRDBの方がマッチしているか。 スクレイピングする場合 # 機械学習で競馬予想をしてみた系のまとめ - Qiita netkeiba.comをスクレイピングしている事例が多い。 競馬の予測をガチでやってみた - stockedge.jpの技術メモ netkeiba-scraperが2019年6月現在動くかの話(Ubuntu 18.04.2 LTS) - Qiita