Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2024/12/05 AITuber本著者によるAIキャラクター入門 - AITuberの基礎...
Search
Sald ra
December 05, 2024
Technology
2
840
2024/12/05 AITuber本著者によるAIキャラクター入門 - AITuberの基礎からソフトウェア設計、失敗談まで
2024/12/05 にStudyCoさんにて行われた「AITuber本著者によるAIキャラクター入門」の資料
https://studyco.connpass.com/event/337404/
Sald ra
December 05, 2024
Tweet
Share
More Decks by Sald ra
See All by Sald ra
2023/07/26 - AITuberコミュニティの 開放性と閉鎖性
sr2mg4
1
54
AIキャラについての諸考察
sr2mg4
1
340
2023 AIAD忘年会LT 資料
sr2mg4
0
940
2023/09/23 「AIキャラクターの言動に深みを持たせる」
sr2mg4
2
1k
AIキャラクター開発の側面から見る 新機能実装・検証の高速化の必要性
sr2mg4
1
900
ローカルAITuber勢の現在地と未来
sr2mg4
0
480
Other Decks in Technology
See All in Technology
AI導入の理想と現実~コストと浸透〜
oprstchn
0
190
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
5
730
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
230
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
2
570
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
130
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
Claude Code に プロジェクト管理やらせたみた
unson
0
190
Lazy application authentication with Tailscale
bluehatbrit
0
160
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.7k
Lambda Web Adapterについて自分なりに理解してみた
smt7174
6
160
怖くない!はじめてのClaude Code
shinya337
0
370
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
4
520
Featured
See All Featured
Six Lessons from altMBA
skipperchong
28
3.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
How STYLIGHT went responsive
nonsquared
100
5.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
It's Worth the Effort
3n
185
28k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Code Reviewing Like a Champion
maltzj
524
40k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Transcript
AIキャラクター入門 AITuberの基礎からソフトウェア設計、失敗談まで
自己紹介
AITuberとは
AITuberとは AITuberとは「ネット活動を行うAIキャラ」です • イメージ的には「AI」x「VTuber」に近い • 2023年初頭のOpenAIのAPI出現以降に活発になったジャンル
みた方が早い
基本的な技術 色々なことはできるとして、最低要件から考えてみる 最低要件は「YouTubeと紐づけてコメントに反応し、発話する」になるはず • コメントつなぎこみ • LLMつなぎこみ • 音声合成・再生 •
OBS連携 ここまでを簡易的に実装できるのがAITuberプロンプト本
どう実装してるか 見てみよう
AITuber本でのアーキテクチャ
AITuber本でのアーキテクチャ • エントリー・ポイントがAITuberSystem ◦ コメント取得から発話までが1ターン ◦ 逐次処理 • 発話内容作成がtalker •
VoiceMakerでt2sのwavに変換 • play_soundで仮想マイク再生 • OBSで発話内容を表示
AITuber本でのアーキテクチャ • usecase ◦ talker • interface ◦ voice_maker •
Frameworks & Drivers ◦ OBSAdapter ◦ play_sound ◦ OpenAIAdapter ◦ YouTubeCommentAdapter
どこが問題だろう?
問題点 • interfaceとFrameworks & Driversがごっちゃ • OpenAIの責務をきちんと分けよう ◦ 音声合成とChatを同じクラスで行わない ◦
OpenAI APIでできることが多いのが悪い • AITuberSystemが神クラスになってる ◦ outputはusecaseに紐づいているべきでは ◦ Commentが必要なのはtalkerであり、Systemではない とはいえガッツリ層を分ける必要があるかは疑問 非同期処理にするかは要考慮
どうするのが正解なんだろう • 結論から言うと「試行錯誤するしかない」 • 先ほどのものを変更してみた ◦ outputをまとめて、各usecaseに対応 ◦ OpenAIのAdapter分離 ◦
実際のつなぎこみはClientに任せる • ありえる未来を追加要件にしてみる ◦ singerというusecaseを追加 ▪ こいつはCommentに非依存 設計をしたい人にとってはAITuberは絶好の教材かも
とはいえどこかで 妥協は必要
AITuberの壁の話
AITuberの壁 • 第一の壁「そもそもどうやって作れば良いかわからない」 ◦ 割と解決に向かっている • 第二の壁「単純なQAだけだとつまらない」 ◦ アイデアをどうにかして出し続けるしかない。いつか話すが省略 •
第三の壁「普通に運用コスト高い」 ◦ 一番やばい壁! 第三の壁について話します
なぜ僕は個人で AITuberを作らなくなったか
運用・メンテコストの増大
個人開発末期状態(2023/06) • 疎結合にはなってる ◦ 各サービスの起動コスト上昇 • Unityにしたことでの開発工数上昇 ◦ URPなんもわからん •
独自路線すぎた合成音声 ◦ SBV2なかったからVITS+RVC • GPU負荷高すぎ • ローカルはプロンプト効かない • context-sizeが8kなかった(解決済) 参考:AITuberさくら構築図。2024にllm-jp-3に換装だけした
大事なこと • 「気軽に配信を始められる」は絶対に担保しておくこと • デファクトスタンダードに乗っておけ!絶対後悔する(オーパーツは作れる) ◦ 気軽にやるならVOICEVOX。今だったらAivisSpeechもにじボイスもある ◦ 「プロンプトさえ変えれば同じモデルで色々なことができる」は偉大 ▪
なるべくPromptingで解決しておけ、ローカルは浪漫だか茨の道 ▪ PromptingでできることはAITuberプロンプト本に書いたはず • 自分の力量をきちんと把握しておくこと ◦ LLMでなんでもできるようになった、ただし時間は有限である ◦ その拘りは他の工数を削ってでもやりたいことかは常に考える ▪ (UnityのURPまで僕はやるべきだっただろうか...)
以上!