Slide 1

Slide 1 text

Music×Analytics Meetup Vol.12 LT2: ⼤規模⾔語モデルでアドリブさせてみた(時のこぼれ話) @triwave33

Slide 2

Slide 2 text

⾃⼰紹介(お前誰よ︕︖) • おばけ👻 (triwave33@) • クラウドベンダ勤務(4年⽬) • 機械学習、⽣成AIのプリセールスエンジニア(ソリューションアーキテクト) • もとは化学屋。有毒ガスのセンサデバイスを開発など • 楽器は主にギターを弾きます。無⼈島に3枚 (アーティスト) 持ってくなら?→Led Zeppelin, Donny Hathaway, 桂枝雀 • MuAna vol.7 (2022年2⽉)でもロングトークさせてもらいました (多謝!) 参考: Deep Learning で⾳楽を作成するにはどうしたらいいの - AWS

Slide 3

Slide 3 text

今⽇話すこと ⼤規模⾔語モデル (is 何?) でアドリブさせてみた (時のこぼれ話) (Photo of Charlie Parker from Wikipedia) https://qiita.com/triwave33/items/b36f85f95db44d252e32

Slide 4

Slide 4 text

⼤規模⾔語モデル (LLM) が実際にやっていること 桃太郎がお供に連れていたのは、⽝、猿、 ⼤規模⾔語モデル キジ 99% ハト 0.1% ネズミ 0.1% 弟 0.1% 与えられたテキストの次に来る単語の確率を算出して最も⾼いものを出⼒する … 4 ︖ 演奏データをテキスト形式に起こせ れば、次のフレーズを⽣成できる

Slide 5

Slide 5 text

音楽の記号化とデータフォーマット 音声信号 (Audio Signal) MIDI ピアノロール X: 1 T: Majide Koi Suru 5 Byoumae C: Mariya Takeuchi M: 4/4 K: C L:1/16 A3 F G2 A2 B2 B4 A2 | G4 E2 D2 C4 z4| ABC MusicXML (抜粋) 演奏データを文字列 (ABC) にしてしまえばLLMで扱える!!

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

やろうとしたこと • とりあえず、過去の偉⼤なミュージシャンと演奏データをMIDI → MusicXML → ABCに変換して学習データにする • データを元にLLMをカスタム (pre-train, fine tuning)。フレーズを⽣成する モデルを作成 • 作成したフレーズを伴奏データに乗せて吟味 (飲みながら楽しむ) • 経緯と結果はブログ参照 • https://qiita.com/triwave33/items/b36f85f95db44d252e32

Slide 8

Slide 8 text

プロンプト実例 やることを指⽰ 実例 詳細 (ABCの解説と制約条件の提⽰) ⼊⼒データの引き渡し (その後にフレーズを出⼒させる)

Slide 9

Slide 9 text

⽣成結果 入力 (提示)シーケンス 出力 (生成) シーケンス

Slide 10

Slide 10 text

感じたこと、苦労したこと • それらしいフレーズが⽣成されて興奮した • (諸理由で)会えない⼈と⾳楽による対話ができる︕︖ • 今回やりたかったことは曲の⽣成ではなく、フレーズの⽣成と対話 • 絵画でいうと 絵が欲しいのではなく筆が欲しかった。 • pre-trainよりfine tuningの⽅が良い結果だった (周辺の演奏情報を埋め込めたので) • ⽣成したフレーズが制約条件(ex. 4拍⼦1⼩節)を満たすことに苦労した • あくまでテキストで返ってくる。LLMはそれらしいことをいう緩い道具 • プロンプトエンジニアリングは⾳楽⽣成においても有効(概念の説明、制約条件の提⽰) • 機械学習の”過学習” (ex. 過去のフレーズの組み合わせの再演)はフレーズ⽣成に悪か︕︖ • 個⼈的にはNo(過学習上等)。かっこいいフレーズかどうかが全て。 • そもそも本番で新規フレーズを錬成する⼈いる︖(B.B.Kingは既存のフレーズ以外は弾かない) • みなさまの楽しい⾳楽 (分析) ライフの⼀助となれば幸いです︕︕