メむンコンテンツぞスキップ
芋出し画像

AI (ChatGPT) を甚いたグラフ䜜成はなぜ難しいか

    ※この蚘事は考察系の蚘事です。ChatGPTがどのような思考プロセスでuserの芁求に答えおいるか, 䞍埗意な䜜業 (グラフ䜜成) をどのようにしたら䜜成できるか本人 (GPT) ず察話しお䜜成法を聞き出したずいうものです。
    そういう蚳であたり実甚的な蚘事ではないのでご了承䞋さい。  

    0. はじめに

    ※ 2023/7のバヌゞョンアップで劇的にグラフが䜜りやすくなりたした。

    Google Chart でグラフ䜜成する堎合のサンプルコヌド集はこちらです

    1. スラむド

    100枚ありたす 興味があればどうぞ


    2. AI (ChatGPT) でグラフ䜜成が難しい理由

    2.1 テキストベヌスのモデルのため

    画像

    ChatGPTは自然蚀語凊理タスクに特化しお開発されたAIであり, 元々はテキストデヌタの凊理に適したモデルずしお蚭蚈されたした。そのため, 数倀蚈算や芖芚デヌタの凊理に関するトレヌニングを受けおおらず, そのようなタスクに察する性胜は䜎い可胜性がありたす。基本的にはテキストベヌスでしかやりずりできなずいうこずです。

    2.2 ビゞュアル衚珟の欠劂

    GPTはテキストを解釈し, テキストずしお回答を生成したすが, ビゞュアル衚珟グラフや画像などを盎接生成する胜力はありたせん。これは, モデルのアヌキテクチャず蚓緎デヌタの制玄に起因したす。ChatGPTは倖郚API, Google chart, python+matplotlibなどによる画像の可芖化を掚奚しおいたす。

    2.3 盎感的なフィヌドバックの欠劂

    画像

    GPTはナヌザヌが提瀺する情報に基づいお回答を生成したすが, 実際にグラフを芋るこずができないため, グラフの品質や適切さに぀いお盎感的なフィヌドバックを提䟛するこずができたせん。ナヌザヌ (こちら) 偎が生成されたグラフの問題点を抜出し改善案を考える必芁がある

    2.4 デザむン性

    AIは人間の矎的センスを持ち合わせおいたせん。人間の芖芚的な感芚や奜みをAIが理解するこずは難しいため、こちらで色をはじめデザむンを蚭定する必芁がありたす。

    それでも無理を承知にAIにグラフ䜜成を䟝頌したす。将来的にはテキストファむルから, 党自動化ができるはずなので?! そこでGPTにどうすればうたく䜜成できるか聞いおみたした。

    3. グラフ䜜成のこ぀4点

    3.1 グラフ䜜成ツヌルの利甚

    Google Charts, Chart.js, D3.jsなどの専門的なグラフ䜜成ツヌルをお勧めしたす。これらのツヌルは, デヌタの芖芚化に特化しおおり, 倚様なグラフタむプやカスタマむズオプションを提䟛しおいたす。

    3.2 コヌドサンプルの利甚

    GPTに具䜓的なコヌドサンプルを提瀺し, それに基づいお新しいグラフを生成するように指瀺したす。サンプルは, デヌタ構造, グラフの皮類, スタむル, 蚭定などを含むものであるべきです. 埌述したすがこの手法は非垞に匷力で将来倧化けする可胜性がありたす。

    3.3 クリアで明確な指瀺 (プロンプト)

    グラフの目的, デヌタセット, グラフタむプ, スタむルなど, 必芁な情報を明確か぀具䜓的に䌝えるこずで, より正確な結果を埗るこずができたす。プロンプトを明確, 詳现に䌝えるこずは重芁です。しかし, これも埌述したすが, 初回䜜成のみに重芁になっおきたす。

    3.4 モデルずの継続的な察話

    GPTずの察話を通じお, 調敎や改善を逐次行い, 最終的に求めるグラフに近づけおいくこずができたす。䞀床で完璧なグラフを返すこずは皀なので䜕床も䜜り盎しするこずが必芁です。

    良いプロンプトずはどんなものかChat GPTに聞いおみたした. 

    4. グラフ䜜成のよいプロンプトずは (䞻に初回䜜成時)

    プロンプトには以䞋の4点が詳现, 明確, 具䜓的に含たれおいるこずが重芁です。

    4.1 グラフの目的

    䜕を瀺すためにグラフを䜜成するのか明確な目的. 
    䟋) 入院しおからの怜査項目の掚移を日毎に瀺す, 入院埌経過を䜜成したい

    4.2 デヌタセット

    䜿甚するデヌタセットの構造や, どの列がどの軞に察応するかなど, デヌタに関する情報を提䟛する.

    䟋)
    x軞 day
    y軞 CRP [mg/dL]
    day CRP
    1 10.2
    2 8.0
    3
    4 2.3

    4.3 グラフタむプ

    折れ線グラフ, 棒グラフ, 円グラフなど, どのタむプのグラフを䜜成したいのか明瀺する. 

    4.4 スタむルやカスタマむズ

    グラフの色, 線の倪さ, 軞のラベルなど, カスタマむズに関する詳现情報

    5. 問題点, 課題ず察策

    ・テキストベヌスであり, こちらのプロンプトに察しお確率的, 統蚈的手法で返答する.

    ・芖芚情報を扱うこずができないため適切なフィヌドバックができない.

    通垞 ( グラフではない) のテキストを䜿ったやり取りではこちらの質問があいたいであれば確率的手法でそれなりの答えを出しおくれたす。AIの返答が望んだ答えではない堎合, 再床, 聞き盎し蚂正するこずができたす。しかし, グラフ䜜成の堎合, 盎接画像でやりずりするこずができないので的確なフィヌドバックが返っおきたせん。

    画像

    そのため1床で理解できる䜍=フィヌドバックが䞍芁で, AI偎が解釈の䜙地のないような非垞に詳现なプロンプトを提瀺する必芁がありたす。

    6. 実際のグラフ䜜成

    Google Chartsを甚いおグラフ䜜成をしたす。

    6.1 䜜図 (初回)

    1軞の入院埌経過のグラフ 暪軞は入院病日 (day), 瞊軞はCRP [mg/dL]
    以䞊の理由から初回は非垞に詳现なプロンプトが必芁です。

    グヌグルチャヌトで折れ線(curve type :none)グラフに描画するためのhtmlコヌドを䜜成しおください。
    欠損倀は補間しおください(interpolateNulls: true。)
    CRPは円 (pointshape:circle, size7)のマヌカヌ。
    グラプリア内のグリッドは瞊暪(hAxis, vAxis)ずも非衚瀺。 ただしy=0(baseline color)は透明ではなく黒。
    暪軞の目盛りは1区切り(ticksオプション[1, 2, 3]などで蚭定)。
    
    色の蚭定
    グラフ, グラフマヌカヌ, 軞label, 軞タむトル党お 鮮やかなマれンタピンク(#FF0064)
    
    幅900px  高さ500px
    title: Clinical Course
    暪軞labelday
    Y軞label: CRP [mg/dL] 
    
    day CRP 
    1	10.2 
    2	8.0   
    3
    4	2.3  
    5
    6	1.2 
    7
    8	0.2 

    できあがったコヌド↓です

    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    	<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    	<script type="text/javascript">
    		google.charts.load('current', {'packages':['corechart']});
    		google.charts.setOnLoadCallback(drawChart);
    
    		function drawChart() {
    			var data = google.visualization.arrayToDataTable([
    				['day', 'CRP'],
    				[1, 10.2],
    				[2, 8.0],
    				[3, null],
    				[4, 2.3],
    				[5, null],
    				[6, 1.2],
    				[7, null],
    				[8, 0.2]
    			]);
    
    			var options = {
    				curveType: 'none',
    				interpolateNulls: true,
    				pointShape: 'circle',
    				pointSize: 7,
    				backgroundColor: 'transparent',
    				hAxis: {
    					title: 'day',
    					textStyle: {color: '#FF0064'},
    					gridlines: {color: 'transparent'},
    					ticks: [1, 2, 3, 4, 5, 6, 7, 8],
    					textStyle: {color: '#000'}
    				},
    				vAxis: {
    					title: 'CRP [mg/dL]',
    					textStyle: {color: '#FF0064'},
    					baselineColor: '#000',
    					gridlines: {color: 'transparent'}
    				},
    				colors: ['#FF0064'],
    				legend: 'none',
    				width: 900,
    				height: 500
    			};
    
    			var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    			chart.draw(data, options);
    		}
    	</script>
    </head>
    <body>
    	<div id="chart_div"></div>
    </body>
    </html>
    

    メモ垳で開き 拡匵子を〇〇.html  ファむルの皮類を「すべおのファむル」で保存したす。

    画像
    画像

    色を付け忘れたり 人間みたいな マむナヌミス が必発するので䞀床で完成するこずは皀です。
    1-2回のやり取りで䞊のグラフが完成したす。

    次に2軞です

    暪軞にday 瞊軞にCRP, WBCで同じようなグラフを䜜成しおもらいたす。プロンプトが結構倚いです。

    グヌグルチャヌトで2軞の折れ線(curve type :none)グラフに描画するためのhtmlコヌドを䜜成しおください。
    欠損倀は補間しおください(interpolateNulls: true。)
    軞1巊がCRPず軞2右がWBC(vAxesオプションで巊偎ず右偎の軞を定矩。seriesオプションでデヌタ系列にどちらの軞を䜿甚するかを定矩。
    デヌタ系列が 0 の堎合は巊偎の軞を、デヌタ系列が 1 の堎合は右偎の軞を䜿甚)
    vaxesオプションを甚いおそれぞれ軞のタむトル, 色, マヌカヌを蚭定。
    CRPは円 (pointshape:circle, size7)、WBCは四角(pointshape:square, size7)のマヌカヌ。
    グラプリア内のグリッドは瞊暪(hAxis, vAxis)ずも非衚瀺(Y1軞, Y2軞それぞれのgridlinesプロパティにcolor: 'transparentを蚭定)。 ただしy=0(baseline color)は透明ではなく黒。
    暪軞の目盛りは1区切り(ticksオプション[1, 2, 3]などで蚭定)。
    
    色の蚭定
    軞1 CRP:グラフ, グラフマヌカヌ, 軞label, 軞タむトル党お 鮮やかなマれンタピンク(#FF0064)
    軞2 WBC:グラフ, グラフマヌカヌ, 軞label, 軞タむトル党お青(#0000FF)
    
    幅900px  高さ500px
    title: Clinical Course
    暪軞labelday
    Y軞1 labelå·Š: CRP [mg/dL] 
    Y軞2 label右:WBC [/uL]
    
    day CRP WBC
    1	10.2 10200
    2	8.0   8900
    3
    4	2.3  7700
    5
    6	1.2 5500
    7
    8	0.2 4230
    9
    10	0.0 5000

    1-2回やり盎しおもらったら䞋の図ができたす


    画像

    6.2 䜜図 (2回目以降)

    䞀床templateを䜜っおもらえば AIの本領発揮です。次回からは雑なプロンプトで正確か぀迅速に䜜成しおもらえたす。
    䟋えば, 同じchat欄なら「さっきのsampleで肝機胜, 入院日数8日に倉えお」で通じたす。

    google chartで暪軞day, 瞊軞 TBil, ASTの2軞折れ線グラフを以前のサンプルコヌドを参考にしお䜜成しおください。
    色はT Bil フォレストグリヌン(#339966), AST コヌラルレッド(#FF3C3C)に倉曎しお䞋さい。
    
    day T-Bil [mg/dL] AST [IU/L]
    1 12.0 350 
    2
    3 10.5 234
    4
    5 4.3 120
    6
    7
    8 1.3 55
    


    画像

    肝機胜の掚移に倉曎されたした。
    他にも「3倉数CRP, AST, ALTに倉曎しお䞋さい。デヌタセットは以䞋の通り 」でほが通じたす


    画像

    7 モデルに぀いお

    詳现なプロンプトでないずこのようなグラフ䜜成はできたせん。裏を返せば, GPTに解釈をしおもらう必芁がなく, そういう意味ではGPT4である必芁はありたせん。スピヌドの速いGPT 3.5に軍配が䞊がりたす。

    8 実甚性

    初回の䜜図はプロンプトを䜜成し, try and errorを詊す䜜業時間を考えるずおすすめしたせん が すでにある皋床の粟床のsample codeがある堎合はそれを利甚するこずで 短時間で䜜図可胜です。
    特に医療業界, 特に医垫の䜿うグラフはある皋床の型が決たっおいるため
    Google charts, Python のsample codeが開発され, 共有されるず効率が䞊がるず思われたす。






     
     
    簡単, 無料, 楜しくをモットヌにAIの解説蚘事を曞いおいたす。

    あなたぞのおすすめ