SlideShare a Scribd company logo
6
Most read
8
Most read
10
Most read
© 2020 NTT DATA Corporation
NTTデータ テクノロジーカンファレンス 2020
プログラムを自動生成する技術
2020年10月15日
株式会社NTTデータ デジタル技術部 竹之内 啓太
~ Programming by Example ~
© 2020 NTT DATA Corporation 2
自己紹介
NTTデータ 技術革新統括本部 デジタル技術部 (APモダナイズチーム)
論文投稿などアカデミックな活動をメインにしてます
• 情報処理学会 ソフトウェア工学研究会 運営委員
今日は、ソフトウェア研究の話をします!
前半:自動プログラミングについて
後半:私のチームの研究について
竹之内 啓太
© 2020 NTT DATA Corporation 3
プログラマなら、こんなこと考えたことありませんか?
プログラム書くの
めんどくさいなぁ。
〇〇〇するプログラム
いい感じに書いといて カシコマリマシタ!
© 2020 NTT DATA Corporation 4
プログラマなら、こんなこと考えたことありませんか?
サンキュー! デキマシタ!
© 2020 NTT DATA Corporation 5
プログラマなら、こんなこと考えたことありませんか?
サンキュー! デキマシタ!
本日は
“自動プログラミング”
の話をします
© 2020 NTT DATA Corporation 6
じつは、古くから研究されているテーマです
Computer ( Volume: 21 , Issue: 8 , 1988 )
“最初のプログラマがプログラミングの難しさに直面して以来ずっと、
自動プログラミングはコンピュータサイエンス・人工知能の目標である”
2020
1988
© 2020 NTT DATA Corporation 7
はるか昔から、自動プログラミング技術は存在します
Communications of the ACM ( Vol. 1, No. 4, 1958 )
2020
1988
1958
© 2020 NTT DATA Corporation 8
今でも数値計算に使用される
プログラミング言語
なぜ FORTRAN が “自動プログラミング” 技術?
高級言語からマシン語が自動生成されるから。
Communications of the ACM ( Vol. 1, No. 4, 1958 )
1988
1958 2020
© 2020 NTT DATA Corporation 9
2020
1958 1988
© 2020 NTT DATA Corporation 10
問題提起:“抽象的な仕様” からプログラムを生成
高級言語 マシン語
抽象的な仕様
自然言語
「住所から郵便番号と区を抽出せよ」
入出力の例
入力例:“〒135-6033 東京都江東区豊洲3-3-3”
出力例:“135-6033”, “江東区”
1958
1988
2020
1958 1988
© 2020 NTT DATA Corporation 11
2020年はどうなってるのか?
2020
1958 1988
© 2020 NTT DATA Corporation 12
2020年はどうなってるのか?
入出力の例 からの自動プログラミング
MS Excel に
搭載されるほど
実用的な技術になった
2020
1958 1988
© 2020 NTT DATA Corporation 13
「住所から郵便番号を
抜き出したい」
© 2020 NTT DATA Corporation 14
出力(郵便番号)の
例を人間が作る
© 2020 NTT DATA Corporation 15
「フラッシュフィル」 ボタンを
クリック
© 2020 NTT DATA Corporation 16
残りの住所から
郵便番号を抽出できる
※ Excel の内部では
プログラムが
自動生成されている
© 2020 NTT DATA Corporation 17
© 2020 NTT DATA Corporation 18
© 2020 NTT DATA Corporation 19
自チームの取り組み|入出力例から SQL の生成
データ分析のため、誰もが SQL を書ける時代へ
SQL クエリ
?
出力例
入力例
先行研究の性能を大きく上回る技術の開発に成功
© 2020 NTT DATA Corporation 20
© 2020 NTT DATA Corporation 21
論文書きました(2020年10月12日公開)
© 2020 NTT DATA Corporation 22
さいごに
1958
高級言語 マシン語
抽象的な仕様
ぜひ高評価 お願いします!
1988
問題提起
2020
一部の領域で
実用化
汎用的な
自動プログラミング
20XX
抽象的な仕様、
自然言語、入出力例
Programming by Example、
Excel、SQLクエリ
機械学習,
言語モデル(GPT-3), ...

More Related Content

PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
PDF
Pythonによる黒魔術入門
PPTX
AWSでGPUも安く大量に使い倒せ
PDF
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
PDF
Kubernetesによる機械学習基盤への挑戦
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
PDF
PostgreSQLでスケールアウト
PDF
DSIRNLP#1 ランキング学習ことはじめ
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
Pythonによる黒魔術入門
AWSでGPUも安く大量に使い倒せ
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
Kubernetesによる機械学習基盤への挑戦
Python 3.9からの新定番zoneinfoを使いこなそう
PostgreSQLでスケールアウト
DSIRNLP#1 ランキング学習ことはじめ

What's hot (20)

PDF
Data-Centric AIの紹介
PPTX
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
PDF
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
PDF
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
PDF
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
PPTX
[DL輪読会]Graph R-CNN for Scene Graph Generation
PDF
【チュートリアル】コンピュータビジョンによる動画認識
PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
Prometheus at Preferred Networks
PDF
あなたの知らないPostgreSQL監視の世界
PPTX
ビッグデータ処理データベースの全体像と使い分け
2018年version
PPTX
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
PDF
爆速クエリエンジン”Presto”を使いたくなる話
PDF
タクシー運行最適化を実現する機械学習システムの社会実装
PDF
ナレッジグラフ入門
PPTX
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
PPTX
Dockerからcontainerdへの移行
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PDF
GPU と PYTHON と、それから最近の NVIDIA
Data-Centric AIの紹介
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
ネットワーク ゲームにおけるTCPとUDPの使い分け
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
[DL輪読会]Graph R-CNN for Scene Graph Generation
【チュートリアル】コンピュータビジョンによる動画認識
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
Prometheus at Preferred Networks
あなたの知らないPostgreSQL監視の世界
ビッグデータ処理データベースの全体像と使い分け
2018年version
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
爆速クエリエンジン”Presto”を使いたくなる話
タクシー運行最適化を実現する機械学習システムの社会実装
ナレッジグラフ入門
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
Dockerからcontainerdへの移行
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
GPU と PYTHON と、それから最近の NVIDIA
Ad

Similar to プログラムを自動生成する技術 ~ Programming by Example ~(NTTデータ テクノロジーカンファレンス 2020 発表資料) (20)

PPTX
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
PDF
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
PPTX
テクノアカデミー郡山 現役ソフトウェアエンジニアが語る。IT の今と未来
PDF
Tokyo H2O.ai Meetup#2 by Iida
PDF
Tuning, etc.
PDF
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
PPTX
Bigdata 2012 06-03
PPTX
Machine learning
PDF
Deep learning reading club @ nimiri for SWEST
PDF
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
PDF
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
PPTX
信頼できるAIシステム開発の勘どころ ~AI開発方法論×AI品質保証~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PDF
ビッグデータ革命 クラウドがコモデティ化する「奇跡」
PPTX
20190313_Introduction of ai development neural network console which became f...
PPTX
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
PDF
Astah UML/ER/mindmapping modeling tool Introduction
PDF
The Story of CPU
PDF
機械学習工学と機械学習応用システムの開発@SmartSEセミナー(2021/3/30)
PDF
プログラミング
PDF
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
テクノアカデミー郡山 現役ソフトウェアエンジニアが語る。IT の今と未来
Tokyo H2O.ai Meetup#2 by Iida
Tuning, etc.
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
Bigdata 2012 06-03
Machine learning
Deep learning reading club @ nimiri for SWEST
機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
信頼できるAIシステム開発の勘どころ ~AI開発方法論×AI品質保証~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ビッグデータ革命 クラウドがコモデティ化する「奇跡」
20190313_Introduction of ai development neural network console which became f...
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
Astah UML/ER/mindmapping modeling tool Introduction
The Story of CPU
機械学習工学と機械学習応用システムの開発@SmartSEセミナー(2021/3/30)
プログラミング
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
Ad

More from NTT DATA Technology & Innovation (20)

PDF
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
PDF
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
2025年現在のNewSQL (最強DB講義 #36 発表資料)
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...

プログラムを自動生成する技術 ~ Programming by Example ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)

  • 1. © 2020 NTT DATA Corporation NTTデータ テクノロジーカンファレンス 2020 プログラムを自動生成する技術 2020年10月15日 株式会社NTTデータ デジタル技術部 竹之内 啓太 ~ Programming by Example ~
  • 2. © 2020 NTT DATA Corporation 2 自己紹介 NTTデータ 技術革新統括本部 デジタル技術部 (APモダナイズチーム) 論文投稿などアカデミックな活動をメインにしてます • 情報処理学会 ソフトウェア工学研究会 運営委員 今日は、ソフトウェア研究の話をします! 前半:自動プログラミングについて 後半:私のチームの研究について 竹之内 啓太
  • 3. © 2020 NTT DATA Corporation 3 プログラマなら、こんなこと考えたことありませんか? プログラム書くの めんどくさいなぁ。 〇〇〇するプログラム いい感じに書いといて カシコマリマシタ!
  • 4. © 2020 NTT DATA Corporation 4 プログラマなら、こんなこと考えたことありませんか? サンキュー! デキマシタ!
  • 5. © 2020 NTT DATA Corporation 5 プログラマなら、こんなこと考えたことありませんか? サンキュー! デキマシタ! 本日は “自動プログラミング” の話をします
  • 6. © 2020 NTT DATA Corporation 6 じつは、古くから研究されているテーマです Computer ( Volume: 21 , Issue: 8 , 1988 ) “最初のプログラマがプログラミングの難しさに直面して以来ずっと、 自動プログラミングはコンピュータサイエンス・人工知能の目標である” 2020 1988
  • 7. © 2020 NTT DATA Corporation 7 はるか昔から、自動プログラミング技術は存在します Communications of the ACM ( Vol. 1, No. 4, 1958 ) 2020 1988 1958
  • 8. © 2020 NTT DATA Corporation 8 今でも数値計算に使用される プログラミング言語 なぜ FORTRAN が “自動プログラミング” 技術? 高級言語からマシン語が自動生成されるから。 Communications of the ACM ( Vol. 1, No. 4, 1958 ) 1988 1958 2020
  • 9. © 2020 NTT DATA Corporation 9 2020 1958 1988
  • 10. © 2020 NTT DATA Corporation 10 問題提起:“抽象的な仕様” からプログラムを生成 高級言語 マシン語 抽象的な仕様 自然言語 「住所から郵便番号と区を抽出せよ」 入出力の例 入力例:“〒135-6033 東京都江東区豊洲3-3-3” 出力例:“135-6033”, “江東区” 1958 1988 2020 1958 1988
  • 11. © 2020 NTT DATA Corporation 11 2020年はどうなってるのか? 2020 1958 1988
  • 12. © 2020 NTT DATA Corporation 12 2020年はどうなってるのか? 入出力の例 からの自動プログラミング MS Excel に 搭載されるほど 実用的な技術になった 2020 1958 1988
  • 13. © 2020 NTT DATA Corporation 13 「住所から郵便番号を 抜き出したい」
  • 14. © 2020 NTT DATA Corporation 14 出力(郵便番号)の 例を人間が作る
  • 15. © 2020 NTT DATA Corporation 15 「フラッシュフィル」 ボタンを クリック
  • 16. © 2020 NTT DATA Corporation 16 残りの住所から 郵便番号を抽出できる ※ Excel の内部では プログラムが 自動生成されている
  • 17. © 2020 NTT DATA Corporation 17
  • 18. © 2020 NTT DATA Corporation 18
  • 19. © 2020 NTT DATA Corporation 19 自チームの取り組み|入出力例から SQL の生成 データ分析のため、誰もが SQL を書ける時代へ SQL クエリ ? 出力例 入力例 先行研究の性能を大きく上回る技術の開発に成功
  • 20. © 2020 NTT DATA Corporation 20
  • 21. © 2020 NTT DATA Corporation 21 論文書きました(2020年10月12日公開)
  • 22. © 2020 NTT DATA Corporation 22 さいごに 1958 高級言語 マシン語 抽象的な仕様 ぜひ高評価 お願いします! 1988 問題提起 2020 一部の領域で 実用化 汎用的な 自動プログラミング 20XX 抽象的な仕様、 自然言語、入出力例 Programming by Example、 Excel、SQLクエリ 機械学習, 言語モデル(GPT-3), ...