PingCAPのCEOが「ChatGPT」をフロントエンドにしたLLMによるSQL生成機能「Chat2Query」を解説
MySQL互換の分散型データベースをオープンソースで開発するPingCAPのCEO、Max Liu氏が来日。OpenAIが開発した「ChatGPT」と「TiDB」を組み合わせて自然言語でSQL文を生成する「Chat2Query」に関するインタビューに応えた。
PingCAPはスケーラブルな分散データベースを目指してオープンソースで開発されているHTAP(Hybrid Transaction and Analytical Processing)ソリューションでトランザクション処理と分析処理をリアルタイムで実行するソフトウェアを提供しているが、OpenAIのChatGPTをフロントエンド、「TiDB Cloud」をバックエンドとして利用することで自然言語で問い合わせが行えるChat2Queryをオープンソースで公開した。今回はその解説と背景、将来の構想などについて聞いた。
まず何よりも、Chat2Queryについては以下のブログ記事と動画を参照してほしい。
●Chat2Queryの解説ブログ:
https://pingcap.co.jp/chat2query-ai-powered-sql-generator/
●デモ動画:
https://www.youtube.com/watch?v=Upk-CNGf9EM
この動画では「--」に続くコメントを元にSQL文を生成して、実行する様が記録されている。この場合は企業の給与に関する検索したい内容をコメントで記述すると、それに対応するSQL文が生成されることが理解できる。OSS Insightでは「Data Explorer」という機能の中で利用、その場合は単純に質問を平易な文章で投げればOKだ。言語は英語でも日本語でも可能になっている。
●GitHub上の活動を可視化できるOSS Insight:
https://ossinsight.io/
これを踏まえた上で、Max Liu氏のインタビューはPingCAPが自身が開発するTiDBをベースにしたデータベースのクラウドサービス、TiDB Cloudの上に構築されたOSS Insightに関してデモを交えて解説し質問に答えるという内容となっている。
ー今回のChat2Queryについて教えてください
- Max Liu氏:今回公開したのは、これまでGitHub上で行われているソフトウェア開発の活動、イベントを可視化するためのサービス、OSS Insightについて自然言語で質問を行えるという機能です。これは「Data Explorer」という名称で公開しているベータ版のサービスになります。
ーこのサービスはPingCAPがホストするTiDB CloudをベースにしてそのフロントエンドをChatGPTにして自然言語で検索を行うというものだと理解していますが、それで正しいですか
- Max Liu氏:そうです。ChatGPTによって普通の会話文で検索が行えるわけです。OSS Insightに関してはGitHubのデータを使っていますが、個別のデータセットを用意すれば、自社のデータを自然言語で検索するということが可能になります。
ーでは、例えばECサイトを運営する企業であればプログラマーやDBAdminに頼らなくても「去年、一番売れた製品は何か? 売れた地域は何処か?」といった検索が行えるということですか
- Max Liu氏:そうですね。そのデータセットをTiDB Cloudにアップロードして使う形になります。
ーこの機能はChatGPTがベースになっているということですが、これを開発するためにはどれくらいの時間がかかりましたか
- Max Liu氏:これを思い付いてから約1ヶ月というところでしょうか。時期的には去年の11月くらいから検討して開発にはそれほど時間はかかりませんでしたね。
ーChatGPTについては革新的ではあるものの、その処理結果については賛否両論であると思います。特に間違った回答を出力することもあることが指摘されていますが
- Max Liu氏:Chat2Queryに関してもその可能性はありますが、ベースとしているデータセットが正しいのであればその可能性は低いと思いますね。ただ生成するSQL文については100%正しいとは言えないかもしれません。現在はベータテストの状態ですので微調整が必要になる場合もあると思います。
ーChatGPTの欠点として、知らないことも平気で嘘を言うことがありますよね。個人的にはデータセットにない場合には「申し訳ありませんが、それについては十分なデータがありません」と答えてほしいのですが、それはChat2Queryでも可能でしょうか
- Max Liu氏:それは可能だと思います。そもそもデータセットが少ないことも考えられますので、そのような場合には必ずしも正しい結果が出力されないことも想定できます。
ーGitHubのリポジトリーについて、以前GitHub Universeに参加した際に「Rubyのコミュニティは他のコミュニティに比べて絵文字を多く使う傾向がある」ことを教えてもらいました。例えばChat2Queryに「最も絵文字を使っているコミュニティはどこですか」という質問は可能ですか
- Max Liu氏:絵文字ですか、ちょっとやってみましょう。
(ここでLiu氏が自身のPCから絵文字について質問を作成するが、このインタビューを行った時点ではChat2Queryでemojisが理解されておらず、単純に"emojis”という文字列で検索されてしまい、Liu氏が試行錯誤していたのが印象的だった。実際にOSS Insightに質問したスクリーンショットを参照してほしい。まだemojisとして検索されてしまう場合もあるが、以下は「スマイル(☺)」の絵文字を使って検索した例である。) 実際にはSQL実行のタイムアウトでエラーとなってしまった。これも徐々に改良されるのではと思われるが、Chat2Queryの本質に関する内容ではないことは確かだろう。)
ー今回の来日でChat2Queryをパートナーや顧客に紹介したと思いますが、見せた時の反応は?
- Max Liu氏:皆さんはだいたい「ワーオ!」みたいな反応でしたね(笑)。これが可能になれば、もっと分析が簡単になることに気付く人は多かったと思います。
ーこれが可能になれば、経営者や営業マンが自ら普通の言葉を使ってクエリーを生成できるようになりますね。ありがとうございました!
* * *
この後「メモリーセーフなプログラミング言語であるRustについて、どのように評価しているのか」を質問したところ、「Rustを評価したのはかなり以前のことで、まだRust自体が成熟してない時期だったこともありハイパフォーマンスでメモリーセーフであることは認識しているが、ツール関連がまだ整備されていないと感じている」こと、「Rust自体を学ぶためのコストが高いと感じている」こと、「Goに比べてまだ自然にコードを書くことができない」「Goはすぐに馴染んだがRustにはまだ慣れていない」などのコメントをもらった。
Chat2Queryのように専門知識が必要となるシステムとのインターフェースとしてChatGPTを使うというのは、これからのトレンドになるかもしれない。そのときにどの程度の品質を提供できるのか、エンドユーザーがその品質を受け入れられる使われ方なのか、エラー発生時の処理をどうするのか、などまだまだ解決するべき課題は多いものの、恐るべきスピードで開発が進む大規模言語モデルをどうやって応用するのか、もしくは使うべきではないのか、については、多くのソフトウェアエンジニアがこれから対峙しなければいけない問題となっていくだろう。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- PingCAP CEOのMax Liu、米HTAP Summit 2022でHTAP登場の背景を語る
- MySQL互換のTiDBを開発するPingCAP、日本での本格始動を開始
- NewSQL DBの国内カンファレンス「TiDB User Day 2022」開催、クラウドネイティブ環境の次世代DBは「MySQL互換」がカギ
- 【事例から学ぶ】アーキテクチャ多様化時代にデータベースを「TiDBにまとめる」という選択
- Podのリソース割り当ての推奨値を提案するKRR(Kubernetes Resource Recommender)
- NoSQLとNewSQLの技術革新、マルチテナンシーの実現と高いスケーラビリティを提供
- PingCap、オープンソースの分散型データベース「TiDB 3.0」をリリース
- 需要No. 1言語はどれ? 2016年度人気プログラミング言語を徹底比較
- 【データから紐解く!】2017年の人気プログラミング言語を徹底比較!
- 「最強のバックエンドで最高のゲームを!」 全世界数千万のユーザーを抱えるCygamesのTiDB活用のポイント