1
ChatGPTで
MML音楽を奏でてみた
& LLMで思うこと
特定非営利活動法人 日本Androidの会 理事長
株式会社KDDIテクノロジー CTO
嶋 是一
この資料内容の一部には、Googleが作成、提供しているコンテンツを複製したものが含まれておりクリエイティブ コモンズの表示 2.5 ライセンスに記載の条件に従って使用しています。
第1回 GPT / ジェネレーティブAI 勉強会 LT
2023年4月16日
2
自己紹介
嶋 是一 (しま よしかず)
株式会社KDDIテクノロジー
CTO(最高技術責任者) モバイルに関する新規技術の開拓
日本Androidの会
特定非営利活動(NPO)法人 日本Androidの会 理事長
コミュニティー運営委員
MCPCモバイルシステム技術検定 副主査
MCPC : モバイルコンピューティング推進コーンソーシアム
人材育成委員会 モバイルシステム技術検定委員 テキスト作成WG副主査
技能五輪国際大会選手強化委員会
モバイルアプリケーション開発分科会委員
大学
非常勤講師 玉川大学
非常勤講師 東京電機大学
執筆
「Google Android入門」 技術評論社より2008年4月23日出版 ほか
@shimay
3
ストリートピアノで即興演奏弾いています(小さく)
https://www.youtube.com/tentenpiano/
4
ちょっと音楽ネタを
考えてみました
5
MMLとは
• Music Macro Language(ミュージック・マクロ・ラ
ンゲージ)
• 約40年前のPC9801/8801の標準プムグラミング
言語「N88-BASIC」にて、音楽を演奏するために用
いられたフォーマット
• Play命令で再生でき、音譜情報は「CDEDFABC」
とテキストで表現できる
6
MMLとは
• マルチモーダルとなったChatGPTだが、映像とテキスト
のみ。音楽の素材活用は未だ含まれていない
• 音譜をテキストとするならば、いけるんじゃない?と思っ
て音楽を生成してみた
• 事前学習モデルに、音楽音楽に関する知識ドメイン
が含まれているのか試してみた
7
ChatGPTはMMLを知っているか
• GPT3.5
•Music Macro Language(略してMML)は、コンピューターで作曲するための簡易的な音楽言語
です。MMLは、主にゲームミュージックや8ビットコンピューター音楽など、コンピューターが普及
する以前の音楽機器で使用されていた音楽表現方法に基づいています。
•MMLは、音符、休符、音量、音色、エフェクトなどの要素を含むテキストベースの言語で、以下
のような基本的なフォーマットを持ちます。
•ここで、各要素の説明は以下の通りです。
•オクターブ: 0~8の数字で、音程を表します。0が最低音、8が最高音になります。
•音符: C、D、E、F、G、A、B、R(休符)のいずれかで、演奏する音を表します。
•長さ: 数字で、音符や休符の長さを表します。たとえば、4が4分音符、8が8分音符に相当します。
•音量: 0~15の数字で、演奏する音の大きさを表します。0が最小音量、15が最大音量になりま
す。
•エフェクト: L(音符の長さを変更する)、T(テンポを変更する)など、演奏に影響を与える効果を
表します。
•音色: 1~8の数字で、演奏する音の種類を表します。たとえば、1がピアノ、2がオルガン、3が
ギターに相当します。
8
ChatGPTはMMLを知っているか
• GPT4.0
•Music Macro Language(MML)は、簡単なテキスト表記を用いて音楽を記述するための言語
です。コンピュータやゲーム機の音楽制作に広く使われており、様々なシステムやソフトウェアで
サポートされています。基本的なMMLのフォーマットは以下の通りです。
•音符(ノート)の表記:
•MMLでは、音符はアルファベットのAからGまでの文字で表されます。オクターブ(音の高
さ)は、直後に続く数字で指定します。例えば、「C4」は4オクターブのド(C)を表します。
•音の長さ:
•音の長さは、音符の後に続く数字で表されます。例えば、「C4」の後に続く「8」は、8分音符
のド(C4)を意味します。長さの指定がない場合は、デフォルトの長さが適用されます。
•休符(レスト)の表記:
•休符は、「R」の後に続く数字で表されます。例えば、「R8」は、8分の休符を表します。
•オクターブの変更:
•オクターブを変更するには、「<」または「>」を使います。「<」はオクターブを下げ、「>」はオ
クターブを上げます。例えば、「C4>」は、C4の後にオクターブが上がることを意味します。
•テンポの変更:
•テンポは、「T」の後に続く数字で表されます。例えば、「T120」は、テンポが120 BPM(1分
間に120拍)であることを示します。
9
ChatGPTはMMLを知っているか
• GPT4.0
この例では、テンポを120 BPMに設定し、音量を8にしています。その後、M1(トラック1)で、C4
からC5までの音階を演奏しています。このように、MMLでは音楽の要素をテキストで表現するこ
とができます。
さらに複雑な曲や編曲を作成する場合は、以下のような追加の機能を利用できます。
•ループと繰り返し: MMLでは、「[」と「]」を使って、一部分を繰り返すことができます。例えば、
「[C4D4E4]2」は、C4-D4-E4のフレーズを2回繰り返します。
•タイ(スラー): タイは、「&」記号を使って表されます。例えば、「C4&D4」は、C4とD4の音をタイ
(スラー)でつなぐことを意味します。
•ピッチベンド: MMLでは、ピッチベンドを「P」と数字で表現できます。例えば、「C4P8」は、C4の
音のピッチを上げることを示します。
•インストゥルメント(楽器)の変更: MMLでは、「@」に続く数字で楽器を変更できます。例えば、
「@1」は、楽器1に切り替えることを意味します。
これらの機能を組み合わせることで、MMLでより高度な音楽作品を作成することができます。た
だし、具体的な表記法や機能は、使用するMML環境やシステムによって異なるため、そのド
キュメントやチュートリアルを参照してください。
10
知識として
MMLは知っている
ようだ
11
•https://little-strange.hatenablog.com/entry/2021/04/03/230358
12
•Little Strange Software
•https://little-strange.hatenablog.com/entry/2021/04/03/221938
•WebAudioAPIさんを利用させていただきました!
13
あれ?
再生されない
14
15
16
よしよし
17
18
19
少しおかしいけど
メロディーくらい
イケそうだ
20
君が代
21
君が代
22
!!
フォーマット違い?
23
24
残念!
日本ドメスティック
だからかな?
25
アメリカ国家ならどうだ
英語の方が精度が良いはず
26
残念!
27
メジャーな曲
世界で3番目に知られているメロディー 蛍の光
28
残念!
29
日本語なら?
日本語なら? しかし、出力MMLは同じで残念
30
テクノポリス
昔からMMLでよく作成されていた楽曲
31
テンポが速いことだけは分かっているようだ
32
33
34
なんとか
35
MML
LLM
なんだよ、ダジャレ ネタかよ
すいません
36
LLMにて思うこと
ワタシ
37
忘れちゃならないGPT
•G
•P
•T
enerative
re-Trained
ransformer
創造/生成
事前学習
トランスフォーマ
38
トランスフォーマーの構造
38
エンコーダー デコーダー
Confidential & Proprietary Copyright © 2023, KDDI Technology Corporation. All rights reserved.
◼ デコード系 (GPT 生成系)
◼ エンコード系 (BERT 分類系)
文字生成するときの特徴
39
私の ストリートピアノ での ?
私の ストリートピアノ での は 群がる 聴衆 の 人数 測る
で
?
? ?
デコード
人間像
2023/4/16
41
先の事考えず思ったことを口走る
エンコード
人間像
2023/4/16
43
熟慮したうえで、結論見据えて話す
2023/4/16
44
間違えない、そつない
45
利用者のリテラシー教育必要(今は、という前提)
• GPTは原理的に嘘を言う可能性がある
– 思いつきで言葉を継ぎ足しているだけ
– 学習していない情報は「創造」してしまう
– だって、そういう仕組みなんですから! (昔の情報/未取得)
• 嘘をつかれたでなく
– 嘘つく傾向を知った上で利用する
– 人の期待が大きすぎるだけ
• コントローすするためには
– 自分が判断できる知識ドメインの中で実施するべき
• 調べられる契機が必要
• ソースコードもデバックできなければ利用できない
リテラシーを持った
利活用方法
46
ChatGPTを
使えない人は
人を使えない人
by エルカミノリアル 木寺
47
私の ストリートピアノ での ? ? ?
私の ストリートピアノ での ? ? ?
人も、たいがいいい加減
!!
一回目
二回目
•
話をするとき毎回結論をもって話すか?
初めは話し始めて、そのうち考えがまとまってくる?
何度もいろんなバリエーションで話しているうちに、そのうち共
通な気づき事が見つかって結論にありつくことが多い。
48
自分が思うこと
• 人間はどうして理解できるのか
– 普遍点を見つけて理解していると感じている
– 雑雑とした現象を、単一の理論で表現したとき
• ブレスト沢山出した後に理解していく
– ブレストをドンドン出すところをGPTがやってくれている
– そこから普遍点を考えるところはエンコーダ
• デコード型は、ブレストのような会話、根拠のない発散系
• ネタを回収するのが人間の役割
• 役割を今は工夫(LLMの自由度を制限していく方法)で実現?
– 意外とデコードは本質ではないのかと思うようになってきた
• 技術的にこの先がまだあると思われる
– 脳科学の活用も
49
GPTとLLM今後の妄想
• ここは妄想です
– 世の中の期待はGPTに得意なことをお願いできていない気がしている
– GPTのLLMにむち打って(プロンプト活用して)使役しているように感じる
– プロンプトエンジニアは、LLMのテイマーである
– 将来は適所適材のLLM登場も期待
– 言語空間のなかにLLMがあるのか、LLMの中に言語空間があるのか。
その錯覚の違いなのかもしれない。(ヒトリゴト)
💦
50
LLMと私
• GPT2.0の時から構築して試してみてた
– 事前学習にWikipediaを利用
– 日本語は素晴らしく破綻していない
– 課題
• ふわっとしている
• この事前学習だと会話には使いにくい
• GPT3.0から非公開になった
• ChatGPTで多くは解決
– これから
• オープン
• プロンプティング
• ハルシエーション
• 様々なモデルをA100を回しながら学習させています
• 将来は適所適材のLLM登場も期待
51
言い残したこと
• 多くの人が使い、多くの人が改善方法を取り組んでおり
進化している
– オープンソースでないため学習や推論に手を入れることがで
きない
– しかし、箱庭での進化は日本では得意!できる範囲で進化
している
• ChatGPTの進化に合わせた使い方を続けていくべき
• 人の最終領域は「ゴールを設定すること」
– AIの進化でも最終的にはここはおかされない領域
52
所属紹介
53
日本Androidの会とは
コミュニティー運営委員
97名
設立
2008年9月12日
前身はAndroid勉強会2008年5月
会員
22,011名
Androidに興味を持つ人が集まるユーザーコミュニティーです!
•Androidの普及を促進し、ビジネス系、技術系、デザイナー系の人たち
に対して、Androidの注目度を上げることを目的としています。
54
是非ご入会下さい
http://www.android-group.jp/
•個人、法人ともにGoogle Groupsへ登録するだけです。会則並びに設立趣意に賛同し
ていただく以外の作業や費用は、発生いたしません。
•企業様のNPOへのご賛助もお受けしております
Confidential & Proprietary Copyright © 2023, KDDI Technology Corporation. All rights reserved.
株式会社KDDIテクノロジーについて
•55
•モバイルアプリケーション開発 •ソリューション開発
(モバイル / AI etc.)
•IoTソリューション開発
•先端技術検証サポート •通信品質検証サポート
•システム仕様策定検証サポート
AIの仲間も募集しております (人財採用促進中)
https://recruit.kddi-tech.com/
56
ご静聴頂きましてありがとうございます

第1回 GPT / ジェネレーティブAI 勉強会「ChatGPTでMML音楽を奏でてみた&LLMで思うこと」