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
1日50万件貯まるクエリのログを活かして、SQLの生成に挑戦している話
Search
nagai shinya
December 14, 2023
2.2k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
1日50万件貯まるクエリのログを活かして、SQLの生成に挑戦している話
2023/12/14「データ基盤×LLM」勉強会にて発表
https://forkwell.connpass.com/event/302234/
nagai shinya
December 14, 2023
More Decks by nagai shinya
See All by nagai shinya
Analytics Engineeringチームを立ち上げて学んだこと
__hiza__
4
2.6k
Analytics Engineeringチームの目標管理
__hiza__
73
48k
データ整備の優先順位付けに役立つテクニック
__hiza__
6
3.6k
データマネジメントがちょっと楽になるBigQuery監査ログの使い方
__hiza__
1
6.5k
レガシー化したdata pipelineの廃止
__hiza__
0
1.1k
メルカリにおける分析環境整備の取り組み
__hiza__
8
8.5k
LookerのDashboardをより柔軟に作る
__hiza__
0
1.7k
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Making the Leap to Tech Lead
cromwellryan
135
10k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Practical Orchestrator
shlominoach
192
12k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
4 Signs Your Business is Dying
shpigford
187
23k
How to build a perfect <img>
jonoalderson
1
6.1k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Optimizing for Happiness
mojombo
378
71k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
WENDY [Excerpt]
tessaabrams
14
40k
Transcript
1 150ສ݅ஷ·ΔΫΤϦͷϩάΛ׆͔ͯ͠ɺ SQLͷੜʹઓ͍ͯ͠Δ 2023/12/14 Nagai Shinya (@_ _hiza_ _)
2 • എܠ ◦ ͦͦͳͥSQLΛੜͤ͞Α͏ͱࢥͬͨͷ͔? • ԿΛͨ͠ͷ͔? ◦ ݴ༿Ͱࢦࣔͨ͠༰ͷSQLΛੜ͢ΔγεςϜΛ࡞ͬͯΈͨ ◦
ͦͷγεςϜʹඞཁͳϝλσʔλLLMʹੜͤͯ͞Έͨ • ݁ՌͲ͏ͩͬͨͷ͔? ◦ ޮԽʹߩݙ͢Δπʔϧ͕࡞Εͦ͏ ◦ ͨͩ͠ԿͰLLMͰΕ͍͍Θ͚Ͱͳ͍ ͓͢Δ͜ͱ ࣾͷσʔλੳʹ͏SQLΛLLMʹੜͤͯ͞ΈͨऔΓΈ
3 • ׂ ◦ ࣾͷσʔλͷར༻ऀͷੜ࢈ੑΛߴΊΔɻσʔλͷར༻ΛΊΔ • ओཁͳϓϩδΣΫτ ◦ ABςετͷࣗಈԽ ◦
BIπʔϧ(Looker)ͷ։ൃͱల։ ◦ ੳ༻தؒςʔϒϧͷ։ൃ ◦ LLMͷ׆༻ ϝϧΧϦ BI productνʔϜ ͍ΘΏΔAnalytics Engineeringʹׂ͍ۙΛͬͨνʔϜ
4 • ࣾͷώΞϦϯά ◦ 30ऑͷνʔϜ͔Βσʔλ׆༻ͷ՝ΛώΞϦϯά ◦ ňSQLΛॻ͘ͷ͕େมʼn • σʔλ ◦
BigQueryͷར༻ऀ 1000ਓ (1݄͋ͨΓ) ◦ 1͋ͨΓͷΫΤϦ20ʙ40 (1ਓ͋ͨΓ) ۃͱͯ͋͠ΒΏΔूܭॲཧ͕ॠ࣌ʹߦ͑ͨΒܶతͳۀվળ͕ݟࠐΊΔ σʔλ׆༻ͷ՝ ňSQLΛॻ͘ͷ͕େมʼn
5 • ňSQLΛॻ͘ͷ͕େมʼnͳཧ༝? ͜Ε·ͰɺSQLΛॻ͘࡞ۀͷෛՙܰݮʹऔΓΜͰ͖ͨ ͜Ε·ͰͷΞϓϩʔν தؒςʔϒϧͷඋɾBIπʔϧɾγεςϜԽ ϝλσʔλͷෆ → ϝλσʔλඋ
ෳࡶͳςʔϒϧߏ தؒςʔϒϧͷඋ SQLࣗମ͕͔Βͳ͍ BIπʔϧͷඋ ಉ͡Α͏ͳΫΤϦΛ܁Γฦ͠ॻ ͍͍ͯΔ ఆܕతͳॲཧͷࣗಈԽ
6 ৽ͨͳΞϓϩʔν • γϯϓϧͳΞΠσΟΞ a. Ϣʔβʔ(ΞφϦετͳͲ)͕ɺ࣮ߦ͍ͨ͠ॲཧΛγεςϜʹ༩͑Δ b. LLM͕SQLΛੜ͢Δ → SQLΛॻ͍ͯΔ࣌ؒΛॖ
LLM͑ΔͷͰͳ͍͔? SQLੜ γεςϜ SQL Γ͍ͨ ूܭ (ࣗવݴޠ)
7 • ୯ʹૉͷLLM(ྫ: ૉͷChatGPT)ʹࢦࣔΛ༩͑ΔͱͲ͏ͳΔ͔ ◦ ୯ʹLLMʹࢦࣔΛ༩͑ͯ͑ΔSQLੜͰ͖ͳ͍ ◦ LLMɺࣾDBͷߏ(ϝλσʔλ)ΛΒͳ͍ͨΊ LLMʹΑΔSQLੜͷ՝ᶃ -
ࣾࣝΛͲ͏͋ͨ͑Δ͔ ՝: LLMࣾࣝΛ࣋ͨͳ͍
8 LLMʹΑΔSQLੜͷ՝ᶃ - ࣾࣝΛͲ͏͋ͨ͑Δ͔ LLM SQL Γ͍ͨूܭ (ࣗવݴޠ) ςʔϒϧAͷઆ໌ ςʔϒϧBͷઆ໌
…. ➕ Ϣʔβʔ͕ ೖྗͨ͠ࢦࣔ ࣾࣝ Ϣʔβʔ͕ೖྗͨ͠ࢦࣔʹࣾࣝΛ͚Ճ͑ͯLLMʹ༩͑ΔγεςϜʹ͢Δ ղܾࡦ: ϝλσʔλΛϓϩϯϓτͰ༩͑Δ ৄࡉͿ͖·͕͢Retrieval-Augmented Generation(RAG)ͱ͍͏ςΫχοΫͰϓϩϯϓτʹ͍ΕΔ͖ϝλσʔλΛϝ λσʔλͷDB͔Βநग़ͯ͠ಈతʹՃͯ͠·͢ɻ
9 • 50ʙ300ςʔϒϧ͘Β͍ͷϝλσʔλΛ४උ͍ͨ͠ ◦ BigQueryͷaudit logΛੳ ▪ Ͳͷςʔϒϧ͕ଟ͘ࢀর͞Ε͍ͯΔ͔͔Δ ▪ ༻్Λߜͬͯ50ςʔϒϧςʔϒϧͱΧϥϜͷઆ໌͕ཉ͍͠
◦ ͦͦਓ͕ΫΤϦΛॻ͘ࡍʹඞཁͳͷ͕ͩඋ͖͠Ε͍ͯͳ͍ LLMʹΑΔSQLੜͷ՝ᶄ - ࣾࣝΛͲ͏༻ҙ͢Δ͔ ՝: ϝλσʔλͷ४උେม
10 • BigQuery audit logʹࣾͰ࣮ߦ͞ΕͨSQLͷϩά͕શͯ͋Δ ◦ 1͋ͨΓ50ສ݅ͷSQL࣮ߦϩά͕ཷ·͍ͬͯΔ ◦ ಛఆͷςʔϒϧΛࢀরͨ͠ΫΤϦͷྫΛLLMʹ͋ͨ͑ͯɺϝλσʔλ Λਪఆͤ͞Δɻ
LLMʹΑΔSQLੜͷ՝ᶄ - ࣾࣝΛͲ͏༻ҙ͢Δ͔ ղܾࡦ: LLMͰϝλσʔλਪఆͤ͞Δ
11 LLMʹΑΔSQLੜͷ՝ᶄ - ࣾࣝΛͲ͏༻ҙ͢Δ͔ ੜͨ͠ϝλσʔλͷྫɻগ͠खΛՃ͑Εेʹ͑Δ༰ͩͬͨ ༰ͷޡΓͷଞʹɺ༻ޠͷෆ౷ҰͳͲදݱํ๏ͷଟগى͖Δɻ
12 γεςϜͷશମ૾ Audit Log͔Βͷϝλσʔλใ + ूܭ༰ͷࢦࣔ → SQL LLM SQL
Γ͍ͨूܭ (ࣗવݴޠ) ςʔϒϧAͷઆ໌ ςʔϒϧBͷઆ໌ ➕ Step2. SQLͷੜ Step1. ϝλσʔλͷਪఆ SQLͷྫ1 SQLͷྫ2 ϝλσʔλΛ ਪఆ͍ͯͩ͘͠͞ ➕ LLM ςʔϒϧAͷઆ໌ ςʔϒϧBͷઆ໌
13 • ੳͰ͑ͦ͏ͳΫΤϦΛूܭͤͯ͞Έͨ ◦ ͋Δ݄ʹొͨ͠Ϣʔβʔʹ͍ͭͯɺొ݄͔Βͷܦա݄͝ͱʹߪ ೖΛܭࢉ͍ͯͩ͘͠͞ɻ(͍ΘΏΔొ͔Βͷίϗʔτੳ) • ݁Ռ ◦ 1ʙ2Օॴमਖ਼͢Εಈ͘ΫΤϦ͕ੜͰ͖ͨɻ
◦ ͜ͷྫΑΓ͏গ͍͓͠͠Ͱಉ͘͡Β͍ͷ࣭ɻ ▪ ňγϯϓϧͳwindows͕۟ඞཁʼn͘Β͍ͷқͳΒग़དྷͨ ੑೳͷݕূ ݁Ռ: ΞφϦετ͕গ͠खΛՃ͑Εे͑ΔSQL͕ੜͰ͖ͨ
14 ग़ྗͷྫ ← SQL ← ूܭͷ༰ɺલఏ
15 • SQLΛॻ͘ੜ࢈ੑΛ͔ͳΓ্͛ΒΕͦ͏ ◦ ΞφϦετաڈʹॻ͍ͨSQLΛॻ͖͑͏έʔε͕ଟ͍ ◦ ͦͷňԼॻ͖ʼnͱͯ͠ͳΒLLMेʹ͑Δ • ՝ ◦
θϩ͔ΒSQLΛॻ͚ΔਓͰͳ͍ͱਖ਼֬ੑΛ୲อͰ͖ͳ͍ ◦ QAग़དྷͳ͍ ◦ LLMͰղܾ͖͢՝ͳͷ͔? ▪ Ͳͷςʔϒϧಉ࢜Λjoinͨ͠Βཉ͍͠σʔλ͕ಘΒΕΔ? → ྑ͘join͢ΔΈ߹ΘͤͳΒதؒςʔϒϧΛ࡞͓͖ͬͯ͘ ͬͯΈ͔ͯͬͨLLMʹΑΔSQLͷੜ ᶃ͑ͦ͏ɻᶄͳΜͰLLMͰΕྑ͍Θ͚Ͱͳ͍ɻ
16 • ఆܗੑͷߴ͍χʔζ ◦ ྫ: ABςετͷޮՌݕূͰຖճಉ͡SQLॻ͍ͯΔ ▪ ABςετΛࣗಈԽ͢ΔπʔϧΛ࡞Δ ▪ ͔ͬ͠ΓQA͠ɺߴԽ͠ɺࣗಈԽ͢Δ
◦ ྫ: ͲͷςʔϒϧΛjoin͢Εཉ͍͠σʔλ͕ಘΒΕΔ? ▪ ύλʔϯԽͯ͠ΔͳΒதؒςʔϒϧԽ • ඇఆܕͷχʔζ ◦ ্ه͔Β࿙Εͨχʔζશൠʹର͢Δੜ࢈ੑΞοϓʹLLM͕͖ͦ͏ ͍͚ͷඞཁੑ ňඇఆܕͷࡉ͔͍ूܭͷޮΛఈ্͛͢Δʼnͱ͍ͬͨ༻్ʹ͖ͦ͏
17 ňͬͯΈͨʼnͷઌʹ͋Δͷ ձࣾͷ՝ʹର͢Δཧղͬͯॏཁ • ࠓճͷҐஔ͚ͮ ňͬͯΈͨʼn ◦ ·ͩۀʹཱ͍ͬͯΔΘ͚Ͱͳ͍ɻٕज़తʹݫີͳ༁Ͱͳ͍ ◦ ͰͬͯΈΔ͜ͱͰಘΒΕΔใେ͖͍
◦ LLMͰ”Կ͕ग़དྷͦ͏”ͳͷ͔? • Կ͔͕ग़དྷͦ͏ͳ࣌ɺԿΛ͖͢? ◦ ͲΜͳ՝Λղܾ͢Εɺձࣾͷʹͭͳ͕Δͷ͔? ◦ ͦΕΛͬͯΔ͔Βٕज़͕͍͚ΒΕΔ ◦ ͦΕΛΒͳ͍ͱňͬͯΈͨʼnͷઌ͕ͳ͍ ▪ ώΞϦϯάɺσʔλੳʹΑΔձࣾ՝ͷཧղͬͯେࣄ
18 @_ _hiza_ _ https://twitter.com/__hiza__ ͜ͷςʔϚʹ͍ͭͯΧδϡΞϧʹ͍ͨ͠ํ͕ډͨΒ ͓ؾܰʹDM͍ͩ͘͞ɻ