差分

17,262 バイト追加 、 2025年4月1日 (火) 15:44
1行目: 1行目: −
'''ロボウサコ'''(英: robo usako)は、ますとどんちほーに存在するbotである。[https://www.kemov-project.com/ けものフレンズVぷろじぇくと]の[https://www.kemov-project.com/%E3%82%A6%E3%82%B5%E3%82%AE%E3%82%B3%E3%82%A6%E3%83%A2%E3%83%AA ウサギコウモリ](ウサコ)を模倣したものであり、[[利用者:Nanase|Nanase]]によって作成された。'''ウサコbot'''(英: usako bot)とも呼ばれる。
+
'''ロボウサコ'''(英: robo usako)は、ますとどんちほーに存在するbotである。[https://www.kemov-project.com/ けものフレンズVぷろじぇくと]の[https://www.kemov-project.com/%E3%82%A6%E3%82%B5%E3%82%AE%E3%82%B3%E3%82%A6%E3%83%A2%E3%83%AA ウサギコウモリ](ウサコ)の言動を模倣したものであり、[[利用者:Nanase|Nanase]]によって開発された。'''ウサコbot'''(英: usako bot)、'''AIウサコ'''とも呼ばれる。
   −
== 概要 ==
+
{{Bot
ロボウサコはそのモチーフとなったウサコの口癖である「'''見て見て眷属たち~!'''」<ref group="注">見て眷(みてけん)とも呼ばれる。実際のウサコの発言では「眷属見て~!」などと揺れがあり一定しているわけではない。</ref>をbot化したものである。
+
| bot_name = ロボウサコ
 +
| author = [[利用者:Nanase|Nanase]]
 +
| published_at = 2023年4月29日
 +
| is_active = 稼働中
 +
| is_reacted_with_ltl = する
 +
| development_lang = Node.js(TypeScript/JavaScript)
 +
| bot_id=[https://mstdn.kemono-friends.info/@v v]
 +
| avatar=
 +
| is_reacted_with_reply=する(3.0.0 から)}}
 +
==概要==
 +
 
 +
ロボウサコはそのモチーフとなったウサコの口癖である「'''見て見て眷属たち~!○○でちゅ。'''」<ref group="注">'''見て眷'''(みてけん)とも呼ばれる。実際のウサコの発言では「眷属見て~!」などと揺れがあり一定しているわけではない。</ref>をbot化したものである。「○○」部分はLTLから抽出した'''ワード'''が入り、AIによって自動生成された文が続く。抽出されるワードは名詞とは限らず、いくつかの条件がある(後述)。
 +
 
 +
稼働を開始した当初はURLを無加工で抽出してしまうなど不適切なワードの抽出が多かった。その後にリリースされたバージョン2によって抽出処理は改良され、さらにChatGPTによる会話文の自動生成を開始した。バージョン3からはChatGPTの使用に代わり、Gemini Proによる改良と処理の大幅な改良が行われた。
 +
 
 +
アバター(アイコン)は[[利用者:ムニ|ムニ]]によって提供された<ref>https://mstdn.kemono-friends.info/@muniel/110282143716020546</ref>。それまではもっぱらウサコbotと呼ばれていたが、アバターが採用された頃には正式にロボウサコと呼称されることが多くなった。
 +
 
 +
==歴史==
 +
 
 +
===前史===
 +
開発の動機はMastodonのAPIの利用方法をJavaScriptを用いて学習するためであった。当初は''update_mascot''と呼ばれる、開発者にメンションすることで'''開発者自身の名前とアバターを強制変更'''するクライアントであった。しかし自由な名前とアバターに変更できるわけではなく、けもVのマスコットキャラクターに限られていた。ロボウサコのIDが<code>v</code>であるのはその名残である。しかしアバターを頻繁に変更したことでMastodonクライアントが不安定になることが多発したため数日のうちにupdate_mascotは稼働を停止した。
 +
 
 +
===ロボウサコの誕生===
 +
4月中旬、ますとどんちほーLTLでは「見て見て眷属たち~!○○でちゅ。」「ウルフね、うどんウルフだよ。」といったワードがにわかに流行した。比較的緩い単語抽出であっても意義があると考えた開発者によりロボウサコの開発が始まった。ロボウサコの稼働が開始したのは2023年4月29日である。稼働当初の生成メッセージのフォーマットは「見て見て眷属たち~!○○でちゅ。」「見て見て眷属たち~!○○でちゅ!」の2種類のみであった。
 +
 
 +
===ChatGPT連携の開始===
 +
2023年5月30日にバージョン2.0がリリースされた。ワードの抽出方法が改良されたほか、ChatGPTによる会話文の自動生成が実装された。
 +
 
 +
ウサコの言動をモチーフにメッセージを生成する動きはロボウサコだけではなく、いもばたけによる[https://shindanmaker.com/1164903 見て見て眷属たち~!診断]が存在する。こちらはますとどんちほーを飛び出し、'''ウサコ本人'''<ref>https://twitter.com/Usako_KEMOV/status/1656242526486138880</ref>や他のけもVメンバー<ref>https://twitter.com/Shimarisu_KEMOV/status/1656644603200823298</ref><ref>https://twitter.com/Geoffroy_KEMOV/status/1656895266728058886</ref>も診断結果をツイートするなどの快挙を達成している。ロボウサコの登場よりは後発ではあるが、ロボウサコがChatGPTによる説明文の自動生成を開始する前にこの診断は登場しており<ref group="注">診断ではChatGPTによる自動生成部分は事前生成であり、不適切な文を生成しないよう排除がなされている。対するロボウサコは随時生成であり、不適切な文を生成する可能性がある。</ref>、バージョン2.0以降のロボウサコに強い影響を与えることとなった。
 +
 
 +
2023年上半期は前述のOpenAI社によるChatGPTがリリースされ、AIの前提知識がない大衆向けにも高品質なチャットボットやAI自動回答が大流行した時期であった。さらにはAPIの一般公開によって既存のプロダクトに組み込むことも容易に可能となった。このような時代背景によりウサコの口癖をAIに生成させるという風潮は単独で発生したものではなく、いわば複数の人々によって同時多発的に発生したものである。なおウサコ本人はChatGPTに目をつけ、'''メカ・ウサコ'''と題して複数回の対決(対談)配信<ref>https://www.youtube.com/watch?v=E-UOPHMC-6Q</ref>を行っている。さらに同時期にはけものフレンズプロジェクトから公式にライセンスを受け、Trippy社から'''AIアライさん'''<ref>https://twitter.com/ai_araisan</ref>がサービスを開始している。
 +
 
 +
===AIウサコの出現===
 +
 
 +
2024年2月6日にNanaseがGoogle社のGemini Proを[https://mstdn.kemono-friends.info/@nanase/111879989527497564 試食した]ことをきっかけに、既存のシステムとは別にリプライに反応するチャットボットの実装を開始した。実装は2月9日にかけて行われ、2月10日から稼働を開始した。ウサコ特有の語尾のほか、けものフレンズVぷろじぇくとに関わるもの、ジャパリパークに関わる知識が入力されている。リプライのあとに質問を送ることでチャットができる。見て眷機能は並行して稼働する。
 +
 
 +
Gemini Proの仕様により、NSFWな入力および回答はブロックされる。Googleサーバ側からブロック理由があればそれを表示している。ブロック理由には「露骨な性表現」「ハラスメント」「ヘイトスピーチ」「有害なコンテンツ」の4つのカテゴリがあり、それぞれに「低」「中」「重大」の3つのレベルが存在する。いずれかのカテゴリで「中」以上に該当すればブロックされ、入力または回答が拒否される。
 +
 
 +
反応するがおーは、LTLに流れてきたロボウサコに対するリプライのみである。リプライはロボウサコただ一人のみに向けられたものが必要で、2個以上のリプライには反応しない。リプライは文頭以外でもよく、文末や文中でも反応できる。
 +
 
 +
有志により、きたきつねbotとの連携が達成されている。
 +
 
 +
===フルGemini Pro化でバージョン3へ===
 +
 
 +
2024年3月19日にOpenAIから、API使用料の支払いについて請求書決済(事後決済)を停止し、クレジットの購入(事前決済)が必要と告知を受けた。これを機会にChatGPTの使用を終了し、見て眷機能についてもGemini Proを用いて再実装されることとなった。その他、Mastodonライブラリの改修やbotベースライブラリの導入などによって安定性が増した。ワードの抽出処理もGemini Proに任されており、以前とトリガー条件が変更された。
 +
 
 +
===年表===
 +
{| class="wikitable"
 +
|+
 +
!バージョン
 +
!リリース日
 +
!おもな新機能と変更点
 +
|-
 +
|1.0
 +
|2023年4月29日
 +
|ファーストリリース
 +
|-
 +
|2.0
 +
|2023年5月30日
 +
|
 +
*ChatGPT連携により、ワードの要約や紹介を自動生成できるようになった。
 +
*発言バリエーションを追加した。
 +
*特定ワードが除外できるようになり、抽出精度が上がった。
 +
*特定の文字列を含むがおーの除外ができるようになった。botアカウントではないものの定期的に自動がおーを行っているアカウントが存在するため、それを除外できるようになった。
 +
*特定のアカウントの除外ができるようになった。botでありつつbotフラグが設定されていないアカウントを除外するための改良である。
 +
*特定の文字列以前・以降のサニタイズができるようになった。URLやハッシュタグを除外できるようになった。
 +
*記号、約物のサニタイズを積極的に行うようになった。
 +
*同一ワードの抽選を除外するようになった。
 +
*LTL流速が少ない場合に発言を延期する機能が搭載された。
 +
*その他、内部処理の改良によって安定性を向上させる改良が含まれている。
 +
*ChatGPTに対する出題文は以下のように設定された。
 +
 
 +
与えられたワードに対しての端的な印象や要約を句読点を使わず複数の単語で言い表してください。
 +
回答は必ず角括弧で囲み、`[明るくてとても楽しそう]` のように答えてください。
 +
 
 +
与えられたワードに対する印象を「かわいい」「楽しそう」「怖い」などの1単語で言い表してください。
 +
回答は必ず角括弧で囲み、`[かわいい]` のように答えてください。
 +
|-
 +
|2.0.1
 +
|2023年6月1日
 +
|
 +
*特定の文字が含まれていると抽出処理に失敗する問題が修正された。
 +
|-
 +
|2.0.2
 +
|2023年6月10日
 +
|
 +
*自動生成文部分の語順が修正された。
 +
|-
 +
|2.0.3
 +
|2023年6月19日
 +
|
 +
*特定のメッセージについてChatGPTによる会話文の生成方法を修正した。
 +
|-
 +
|2.0.4
 +
|2023年7月3日
 +
|
 +
*正規表現によるワードの除外が追加された。
 +
|-
 +
|2.0.5
 +
|2023年8月9日
 +
|
 +
*ホームタイムライン(HTL)への接続をやめ、ローカルタイムライン(LTL)のみを取得するようになった。
 +
*ChatGPTのモデルがGPT-3.5モデル(gpt-3.5-turbo)からGPT-4モデル(gpt-4)に変更された。
 +
*ChatGPTに対する出題文が以下のように変更された。<code>temperature</code>の値が1.0から1.1に変更された。
 +
 
 +
与えられたワードに対してのユーモアのある印象や要約を句読点を使わず複数の単語を使って面白おかしく言い表してください。
 +
回答は必ず角括弧で囲み、`[明るくてとても楽しそう]` のように答えてください。
 +
 
 +
与えられたワードに対する印象を「本当にかわいい」「この上なく楽しそう」「震えるほど怖い」のように言い表してください。
 +
回答は必ず角括弧で囲み、`[すっごくかわいい]` のように答えてください。
 +
|-
 +
|2.0.6
 +
|2023年8月16日
 +
|
 +
*ChatGPTのモデルがGPT-4モデル(gpt-4)からGPT-3.5モデル(gpt-3.5-turbo)にリバートされた。
 +
|-
 +
|3.0.0
 +
|2024年2月9日
 +
|
 +
*AIウサコ機能が追加導入され、リプライに応答するチャットボットの稼働が開始された。
 +
*Mastodonライブラリが[https://github.com/h3poteto/megalodon megalodon]に変更された。
 +
*botベースライブラリが大幅に更新され、接続安定性が増した。
 +
|-
 +
|3.0.1
 +
|2024年3月19日
 +
|
 +
*ロボウサコV2の稼働を完全に停止した。
 +
*見て眷機能をAIウサコ機能と統合し、ChatGPTを廃してGemini Proによるワード抽出と回答の自動生成を開始した。
 +
*見て眷機能のトリガーを時間ベースからLTLの流量ベースに変更した。150がおーごとに1回に見て眷が発動する。
 +
|-
 +
|3.0.2
 +
|2024年3月20日
 +
|
 +
*見て眷機能のトリガーを50がおーに1回ごとに変更した。
 +
|-
 +
|3.1.0
 +
|2024年秋
 +
|
 +
* ヒストリ機能を追加。ロボウサコが過去数回分の会話内容を保存するようになり、文脈に従って回答するようになった。
 +
|-
 +
|3.1.1
 +
|2024年秋
 +
|
 +
* ヒストリ機能について、ロボウサコの回答中に「でちゅ」が入っている場合のみ会話内容を保存するようになった。
 +
|-
 +
|3.2.0
 +
|2025年4月2日
 +
|
 +
* 強制見て眷コマンド !miteken が追加された。
 +
* 見て眷がCW(スポイラー)つきのがおーを候補にしないように修正された。
 +
|}
 +
 
 +
==バージョン2までの発言プロセス==
 +
 
 +
ここではバージョン2までの見て眷の発言を生成するプロセスについて説明する。バージョン3からはワード抽出からGemini Proが使用されており、これらのプロセスとは全く別の方法で処理されている。
 +
 
 +
===ワードの抽出===
 +
候補となるワードはLTL(ローカルタイムライン)から抽出される。botアカウントではないユーザのがおーをMeCab(形態素解析エンジン)によって分解し、以下の品詞のみ選択する。
 +
 
 +
*'''名詞'''
 +
*'''形容詞''' - かわいい、大人しい など
 +
*'''接頭辞''' - 大当たりの「大」の部分 など
 +
*'''助詞'''の「'''の'''」
 +
*'''助動詞'''の「'''な'''」
 +
 
 +
分解された品詞が助詞の「の」で接続されている場合、これを1ワードとみなして結合する。たとえば以下のテキストを入力とする。
 +
 
 +
:seiryu: の人気っぷりを分析してみたけど、あの性格だけじゃなく、元動物が存在しないからやりたい放題っていうのも相乗効果としてありそう
 +
 
 +
上述の規則を適用すると以下のようなワードが抽出される。
 +
 
 +
:seiryu:, 人気っぷり, あの, 性格, 元動物, 放題, 相乗効果
 +
 
 +
ワードの有用性を上げるため、さらに以下の条件により適切なワードのみを選択する。
 +
 
 +
*ワードの長さが2文字以上、20文字以内
 +
*ワードに適さない特定の文字、文字列を含んでいない
 +
*語頭が促音(っ)で開始していない
 +
*指示語を含んでいない
 +
*ワードが重複していない
 +
 
 +
さらに以下の規則により、ワードの不適切な部分が除去される。
 +
 
 +
*URLやハッシュタグ部分
 +
*語頭の「ような」「的な」部分
 +
*記号や約物(!や?など)。ただし絵文字のための記号(:)は除外せず、両端にゼロ幅スペースが挿入される
 +
 
 +
上記の規則により、最終的には以下のようなワードが抽出される。
 +
 
 +
:seiryu:, 人気っぷり, 性格, 元動物, 放題, 相乗効果
 +
 
 +
===ワードの抽選===
 +
抽出されたワードはワードプールに溜められる。各ワードにはどのユーザによるものかが判別できるようになっている。
 +
 
 +
発言を行う際にはまず、ランダム(一様分布)にユーザの抽選が行われる。ユーザに紐づいたワードが空ではない場合、さらにランダムでワードを抽選を行う。このようにユーザとワードの2段階で抽選を行うことで、発言回数の多いユーザの当選確率が上昇しないしくみになっている。
 +
 
 +
===ロボウサコ発言の生成===
 +
発言文は以下の規則で生成される。
 +
 
 +
*'''序文'''。「見て見て眷属たち~!」のほか、稀に「眷属たち見て見て~!」が選択される。
 +
*'''提示部'''。抽選されたワードを用いて「○○でちゅ。」を生成する。ただし20%ほどの確率で「○○でちゅ!」が選択される。
 +
*'''説明部'''。ChatGPTによる自動生成が行われる。生成方式は'''印象'''と'''要約'''の2種類があり、印象を説明する文を生成する確率がやや高くなっている。「○○でちゅね~!」または「○○ってワケ!」のどちらかが選択され、稀に両方とも選択される。ChatGPTのAPI呼び出しに失敗した場合は説明部ごと省略される。
 +
 
 +
以下はヴァイオリンというワードが抽選された場合の発言の例である。
 +
 
 +
見て見て眷属たち~!ヴァイオリンでちゅ。感情を奏でる楽器でちゅね!優雅ってワケ!
 +
 
 +
==ロボウサコの発言と幻覚==
 +
<blockquote>''「[[ロボウサコの名言一覧]]」を参照''</blockquote>上記のワードの抽出は厳密ではなく、特に話し言葉では期待した抽出ができないことが多い。ChatGPTの学習データは2021年11月までであり、これ以上の事物については見当違いの回答を生成することがある。このような現象は幻覚<ref group="注">'''幻覚'''(英: hallucination、ハルシネーション)または'''作話'''(英: confabulation、コンファビュレーション)と呼ばれる。</ref><ref>https://ja.wikipedia.org/wiki/%E5%B9%BB%E8%A6%9A_(%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD)</ref>と呼ばれ、十分な知識が存在しないまま回答を正当化してしまう現象に由来する。発言の滑稽さを楽しむ向きもあるが、的を得ない不適切な発言も少なくない。
 +
 
 +
ロボウサコでは抽出されたワードのセンシティビティを判定していない。すなわち、成人向けワードを抽出してしまうことがある。ChatGPTによる回答文では成人向けの出力を行わないようになっているが、そのためにユーモア溢れる言い換えを行うことがある。このような言い換えで生まれた名言のひとつに'''蒸し団子'''がある。
 +
 
 +
==脚注==
 +
===註釈===
 +
<references group="注" />
 +
 
 +
===出典===
 +
<references />
52

回編集