Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ChatGPTとPythonを用いた 高速なデータ可視化プロトタイピング
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ingtk
July 11, 2023
Technology
190
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ChatGPTとPythonを用いた 高速なデータ可視化プロトタイピング
ingtk
July 11, 2023
More Decks by ingtk
See All by ingtk
APIゲートウェイと認証認可サービスを導入した / Implement API Gateway and Auth Service
ingtk
0
870
Other Decks in Technology
See All in Technology
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
1
300
AWS DevOps Agent スキルをつかいこなそう / Master AWS DevOps Agent Skills
kinunori
2
570
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
840
AIに会社の文脈を理解させる技術~上流工程・非エンジニアにも広げるハーネスエンジニアリング実践~
ochtum
0
130
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.8k
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
830
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
3
21k
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
1.7k
TiDBファミリーにDWHが新登場!! TiDB最新情報 / TiDB update 202609
yoshiakiyamasaki
0
120
「どのログを見ればいい?」 から始めた サーバーレス障害解析
y_waka1
1
150
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
250
猫でもわかるKiro Web
kentapapa
1
130
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
Designing for humans not robots
tammielis
254
26k
Chasing Engaging Ingredients in Design
codingconduct
0
340
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
The SEO identity crisis: Don't let AI make you average
varn
0
560
Optimizing for Happiness
mojombo
378
71k
Raft: Consensus for Rubyists
vanstee
142
7.7k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Music & Morning Musume
bryan
48
7.4k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Transcript
ChatGPTとPythonを用いた 高速なデータ可視化プロトタイピング
自己紹介 稲垣 隆徳 Twitter: @ingtk8 Github: ingtk データ可視化サービスチームのテックリード バックエンドエンジニア歴:12年ほど。最近ではデータ基盤、フロントエンドもやります。
今日話すこと • バックエンドエンジニアのプロトタイピングへの関わり方 ◦ なぜプロトタイピングをやるのか ◦ プロトタイピングの課題 • データ可視化アプリケーションを爆速で作る
なぜプロトタイピングをやるか: アイデアの可視化 1. システムの初期モデルをつくる(草案とも言える製品の概念を具体化する) 2. 設計の問題を明らかにする。UIの特定の要素が直感的でない、期待通りに動作し ない場合、これらの問題はプロトタイピングの段階で発見され、修正することができ る。 3. 開発チームがクライアントの要件をより深く理解する。具体的なプロダクトを通して、
クライアントや関係者とコミュニケーションをとる機会を得る。
なぜプロトタイピングをやるか: 製品開発リスクの低減 • 技術的リスクの低減: 技術的な課題や障壁を早期に発見し、開発の遅延や市場投 入の遅れを防ぐ • スケジュールおよび予算リスクの低減: 必要な時間やリソースをより正確に見積も り、スケジュールの遅れや予算超過を防ぐ
プロトタイピングの課題 • 適切な粒度の把握 ◦ 具体的すぎると、細部に捉われ進行速度が遅くなる ◦ 抽象的すぎると、重要な詳細を見落とし実装が現実的でなくなる ◦ 目的と範囲、リソース、期限等を考慮し、プロトタイピングのゴールを適切な粒度に定める •
時間とリソース ◦ プロトタイピングは時間とリソースを必要とする ◦ プロトタイピングのゴールを明確化と、最短で達成するためのツール選定が重要。 ◦ 短期的には課題となるが、長期的にはプロトタイピングにおける恩恵の方が大きい。
プロトタイピングの実践例(テーマ) • 弊社で開催された LLM アイデアソン(Chat GPT を既存のプロダクトに応用する )
プロトタイピングの実践例(デモ) • 170 行くらいのコード(プロンプトが 50 行) • 開発に使った時間は4時間ほど
ポイント • Why ◦ 実際に今携わっているプロダクトに活かせるものを作る(製品開発リスクの低減) ◦ 実現可能性を示すことで、アイデアソンで優位性を築く(アイデアの具体化) • 課題 ◦
期間が 1 週間しかなかったため、最短で実現可能性を示さないといけない(時間とリソース)
ゴールの明確化 検証したいこと • ChatGPT が、入力に応じた適切な SQL を生成することができるかどうか ◦ 適切なプロンプトを考える •
指示の入力〜可視化までを表現することで参加者に実現可能性をわかりやすく示 したい ◦ 可視化・集計の手段は本質ではないので、なるべくコストをかけずに表現したい
技術選定 • 可視化・集計の手段は本質ではないので、なるべくコストをかけずに表現したい • 集計・可視化をローコストでやるなら、Python は有力 ◦ データサイエンス関連の豊富なライブラリ ◦ pandas
/ matplotlib / seaborn / Streamlit ...
Streamlitとは • Python を用いた高速な Web アプリケーション作成を可能にするライブラリ ◦ データサイエンス関連ライブラリとの親和性の高さ • 直感的な
API で、GUI やデータ可視化が非常に簡単に実現できる • ホットリローディング
プロトタイピングのスコープ 1. ユーザからの入力を受け付けることができる(UI) 2. 適切なプロンプト作成することができる(バックエンド) 3. ChatAPIからSQLを取得することができる(バックエンド) 4. SQLの実行結果を可視化することができる(UI)
テキストエリアを配置する
テキストエリアの配置 こんな感じで表示される
プロンプト作成 • 入力「部署ごとの人数だして」→ 当然出してくれない • 要求や与えることができる情報をなるべく正確に伝える ◦ 使用しているデータベース、テーブル定義 ◦ 項目の対応表
◦ 固有項目定義 ◦ 期待するアウトプット
データベース情報とテーブル定義を伝える
項目の対応表を伝える CREATE文は列名が英語なので、日本語との対応表を渡してあげる
個別項目定義を伝える この定義を教えることによって、「部署ごとのリーダー数だして」とか、テナントごとに定義 がことなる項目を含む指示をChatGPTが理解してくれる
期待するアウトプットを伝える ユーザの指示を含める。また、SQLで記述することを伝える。 SQL以外の情報はすべて〜の部分が重要でこの一文がないと、出力したSQLの解説を しはじめる
dataframeをテーブルとして表示 これだけ
dataframeを表示
グラフを表示 seaborn(データフレームを可視化するライブラリ)を使ってグラフを描画する。 dataframeにSQL実行結果の値が入っていれば、これだけ。
グラフを表示 簡単✌
まとめ • プロトタイピングは製品開発リスクの低減、アイデア具現化の重要な手段。 • 適切なゴールの設定と、ツール選定による時間とリソースを節約し、最短で目的を 達成することができる
サンプルコード • https://github.com/ingtk/autosql
ご清聴ありがとうございました