Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIコーディング技術の進化 2015-2025:10年間で変革したソフトウェア開発の世界

AIコーディング技術の進化 2015-2025:10年間で変革したソフトウェア開発の世界

本プレゼンテーションでは、2015年から2025年にかけての10年間におけるAIコーディング技術の急速な進化と、ソフトウェア開発現場への影響を時系列で解説しています。初期の機械学習によるコード補完から始まり、大規模言語モデルの台頭、GitHub Copilotの登場、対話型AIによる開発フロー再発明、そして最新の成熟期に至るまでの重要な転換点を網羅的に紹介。AIが単なる補助ツールから創造的な開発パートナーへと進化し、開発者の役割も変化していく様子を、主要企業・技術の動向とともに分かりやすく解説しています。エンジニア、技術マネージャー、またはテクノロジーの未来に関心のある方々に最適な内容です。

Avatar for naomine-egawa

naomine-egawa

May 25, 2025
Tweet

More Decks by naomine-egawa

Other Decks in Programming

Transcript

  1. func re } class CopilotAssistant { suggest(context) { return this.model.predict(contex

    } } async function trainModel(data) { await model.fit(data, epochs: 100); } const completion = await openai.createCompletion({ model: 'gpt-4', prompt: 'Write a function that...', }); import tensorflow as tf import numpy as np def build_model(): # AI Code Generation Evolution from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained('openai/codex') public class AICodeGenerator { public String generateCode(String specification) { // Implementation } function generateCode(prompt) { return AI.complete(prompt); } cl async function trainModel(data) { await model.fit(data, epochs: 100); } const completion = await openai.createCompletion({ model: 'gpt-4', prompt: 'Write a function that...', }); import tensorflow as tf import numpy as np def build_model(): model = tf.keras.Sequential() # AI Code Generation Evolution from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained('openai/codex') public class AICodeGenerator { public String generateCode(String specification) { // Implementation } } function generateCode(prompt) { return AI.complete(prompt); } class CopilotAssistant { suggest(context) { return this.model.predict(context); } } async function trainModel(data) { await model.fit(data, epochs: 100); } const completion = await openai.createCompletion({ model: 'gpt-4', prompt: 'Write a function that...', }); import tensorflow as tf import numpy as np def build_model(): model = tf.keras.Sequential() # AI Code Generation Evolution from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained('openai/codex') public class AICodeGenerator { public String generateCode(String specification) { // Implementation } } function generateCod return AI.complete } class CopilotAssistant { suggest(context) { return this.model.predict(context); } } const completion = await openai.createCompletion({ model: 'gpt-4', prompt: 'Write a function that...', }); import tensorflow as tf import numpy as np # AI Co from tr model = public class AICodeGenerator { public String generateCode(String specification) { // Implementation } } function generateCode(prompt) { return AI.complete(prompt); } class CopilotAssistant { suggest(context) { return this.model.predict(context); } } 2025年5月15日 AIコーディング技術の進化 2015-2025 AIコーディング技術の進化 2015-2025 10年間で変革したソフトウェア開発の世界 2015 2017 2019 2021 2023 2025
  2. function predictNextToken(context) { return model.predict(context); } class IntelliSense { suggest(prefix)

    { return this.database.lookup(prefix); } // DeepCoder implementation function synthesizeFromExamples(inputs, outputs) { return searchSpace(inputs, outputs); } import def bui model // Microsoft IntelliCode class AICompletionProvider { getRankedCompletions(context) { // Implementation } } class IntelliSense { suggest(prefix) { return this.database.lookup(prefix); } } // DeepCoder implementation function synthesizeFromExamples(inputs, outputs return searchSpace(inputs, outputs); } import tenso def build_mo model = tf // Microsoft IntelliCode class AICompletionProvider { getRankedCompletions(context) { // Implementation } } fun } class IntelliSense { suggest(prefix) { return this.database.lookup(prefix); } } // DeepCoder function synt return sear } import def bu mode // Microsoft IntelliCode class AICompletionProvider { getRankedCompletions(context) { // Implementation } } function predictNextToken(context) { return model.predict(context); } class Intell suggest(pr return t } } // DeepCoder implementation function synthesizeFromExamples(inputs, outputs) { return searchSpace(inputs, outputs); } import tensorflow def build_model(): model = tf.keras // Microsoft IntelliCode class AICompletionProvider { getRankedCompletions(context) { // Implementation } 2 / 8 黎明期:機械学習によるコード補完の開始 (2015-2018) 黎明期:機械学習によるコード補完の開始 (2015-2018) この時期のAIは主に既存コードからのパターン学習が中心 2015年: 2015年: IDEのコード補完は静的解析やルールベースが中心 2017年: 2017年: Microsoft ResearchとケンブリッジⅤ 大学がDeepCoderを発表 入力出力例からコードを合成するAI技術 2018年: 2018年: マイクロソフトがVisual Studio IntelliCodeを発表 オープンソースリポジトリから学習したモデルでコード補完精度向上 2018年: 2018年: OpenAIがGPT研究を進め、GPT-2がコード生成能力を示す カナダの学生Jacob JacksonがTabNineにGPT-2を組み込み Microsoft IntelliCode Visual Studio IntelliCode - AI支援コード補完 2015 2015 2017 2017 2018 2018
  3. def generate_code(prompt): return gpt3.complete(prompt) class CodeModel(torch.nn.Module): def __init__(self, params=175e9): self.transformer

    = Transformer(params) // TabNine completion function getUserIntent(context) { return model.predict(context); } function translate(source_code, from_lang, to_lang) { return transcoder.convert(source_code, from_lang, to_lang); } model = GPT3() result = model.generate("Write a function that sorts an array") def generate_code(prompt): return gpt3.complete(prompt) class CodeModel(torch.nn.Module): def __init__(self, params=175e9): self.transformer = Transformer(params) // TabNine completion function getUserIntent(context) { return model.predict(context); } function translate(source_code, from_lang, to_lang) { return transcoder.convert(source_code, from_lang, to_lang); } model = GPT3() result = model.generate("Write a function that sorts an array") def generate_code(prompt): return gpt3.complete(prompt) class CodeModel(torch.nn.Module): def __init__(self, params=175e9): self.transformer = Transformer(params) // TabNine completion function getUserIntent(context) { return model.predict(context); } fun r } model = GPT3() result = model.generate("Write a function that sorts an array") def generate_code(prompt): return gpt3.complete(prompt) class CodeModel def __init__( self.transf // Tab functi retu } function translate(source_code, from_lang, to_lang) { return transcoder.convert(source_code, from_lang, to_lang); } model = GPT3() result = model.generate("Write a function that sorts an array") 3 / 8 大規模言語モデルの台頭とコード生成への応用 (2019- 2020) 大規模言語モデルの台頭とコード生成への応用 (2019- 2020) 175B GPT-3の パラメータ数 10倍 従来モデルより 大規模化 大規模言語モデルにより汎用AIがコード生成も可能に 2019年: 2019年: TabNineやKiteなどの機械学習活用コード補完ツールの登場 Deep TabNineはGPT-2を活用し、市場の可能性を示す 2020年: 2020年: OpenAIがGPT-3(1750億パラメータ)を発表 汎用モデルながら高いコード生成能力を示す 2020年: 2020年: FacebookのTransCoderが異なるプログラミング言語間の自動翻 訳を実現 コード変換モデルの研究が各社で活発化 "AIがコードを書くのが当たり前になる" この時期から、この見方が現実味を帯び始めた GPT-3によるコード生成デモ 2019 2019 2020 2020
  4. // Describe what you want to do function getUser(id) {

    // Copilot will suggest the implementation } # Generate a function that calcu def fibonacci(n): /** * Sort an array of numbers */ function sortArray(array) { // Create an API client for Twitter class TwitterClient { /* Crea import // Describe what you want to do function getUser(id) { // Copilot will suggest the implementation } # Generate a function that calculates fibonacci def fibonacci(n): /** * Sort an array of numbers */ function sortArray(array) { // Create an API client class TwitterClient { /* Create a React component that shows a form */ import React from 'react'; // Describe what you want to do function getUser(id) { // Copilot will suggest the implementation } # Generate a function that calculates fibonacci def fibonacci(n): /** * Sort an ar */ function sort // Create class Twit /* Create a React component that shows a form */ import React from 'react'; // Describe what you want to function getUser(id) { // Copilot will suggest the } # Generate a function that calculates fibonacci /** * Sort an array of numbers */ function sortArray(array) { // Create an API client for Twitter class TwitterClient { /* Create a React component that shows a form */ import React from 'react'; 4 / 8 AIペアプログラマの黎明: GitHub Copilotの登場 (2021) AIペアプログラマの黎明: GitHub Copilotの登場 (2021) GitHub Copilot 55% 開発速度 向上 120億 パラメータ数 Codex 「人間がナビゲーター、 AIがドライバー」 2021年6月:GitHubとOpenAIが提携し、GitHub Copilotをプレビューリ リース Codex(GPT-3をPythonで微調整、120億パラメータ)をエンジンとして 活用 コメントや関数名から数行~関数全体のコードをリアルタイム提案 AI活用によりコーディング課題完了が平均55%高速化したと報告 ペアプログラミングの概念が再定義され、AIとの対話型コーディング作業 が広がる コメントからコードを自動生成 2021 2021
  5. // GitHub Copilot suggestion function calculateTotal(items) { return items.reduce((acc, item)

    => acc + item.price, 0); } # AWS CodeWhisperer def process_data(data): results = [] for item in data: # Transform the item results.append(item.transform()) /* AlphaCode solution */ class Solution { public int maximumSum(int[] arr) { int n = arr.length; int[] dp = new int[n]; // Open source alternative function generateResponse(prompt) { // Generate a response based on the prompt } // GitHub Copilot suggestion function calculateTotal(items) { return items.reduce((acc, item) => acc + item.price, 0); } # AWS CodeWhisperer def process_data(data): results = [] for item in data: # Transform the item results.append(item.transform()) /* AlphaCode solution */ class Solution { public int maximumSum(int[] arr) { int n = arr.length; int[] dp = new int[n]; // Open source alternative function generateResponse(prompt) { // Generate a response based on the prompt } // GitHub Copilot suggestion function calculateTotal(items) { return items.reduce((acc, item) => acc + item.price, } # AWS CodeWhis def process_da results = for item i # Tran result /* AlphaCode solution */ class Solution { public int maximumSum(int[] arr) { int n = arr.length; int[] dp = new int[n]; // Open source alternative function generateResponse(prompt) { // Generate a response based on the prompt } // GitHub Copilot suggestion function calculateTotal(items) { return items.reduce((acc, item) => acc + item.price, 0); } # AWS CodeWhisperer def process_data(data): results = [] for item in data: # Transform the item results.append(item.transform()) /* AlphaCode solution */ class Solution { public int maximumSum(int[] arr) { int n = arr.length; int[] dp = new int[n]; // Open source alternative function generateResponse(prompt) { // Generate a response based on the prompt } // GitHub Copilot suggestion function calculateTotal(items) { return items.reduce((acc, item) => acc + item.price, 0); } # AWS CodeWhisperer def process_data(data): results = [] for item in data: # Transform the item results.append(item.transform()) /* AlphaCode solution // Open source alternative function generateResponse(prompt) { // Generate a response based on the prompt } 5 / 8 普及と競争の年: マルチプレイヤー時代の幕開け (2022) 普及と競争の年: マルチプレイヤー時代の幕開け (2022) 100万+ Copilot利用者 54% AlphaCodeの 競技プログラミング順位 70% 開発者のAI ツール活用計画 GitHub GitHub Copilotが一般提供開始、有償サブスクリプション化 DeepMind AlphaCodeを発表、競技プログラミングで平均的参加者上位 54%相当の成績 AWS Amazon CodeWhispererを発表し、Copilotに対抗 OSS オープンソース界隈からCodeParrot、PolyCoder、SantaCoderな どの代替モデル登場 OSSコードを許諾なく利用しているとして著作権侵害の集団訴訟が 提起される GitHub Copilot Amazon CodeWhisperer Amazon CodeWhisperer AIコーディングアシスタント市場の競争が激化 VS 2022 2022
  6. // ChatGPT coding assistance function optimizePerformance(data) { // TODO: Implement

    optimization return data.filter(item => !item.isDeprecated); } # GPT-4 code generation def analyze_sentiment(text): """Analyze the sentiment of the given te and return a score between -1 and 1""" # Implementation here /* GitHu class Us // Code Llama example async function fetchUserData() { try { const response = await api.get('/users'); return response.data; } catch (error) { console.error('Error fetching data:', error); } } // ChatGPT coding assistance function optimizePerformance(data) { // TODO I l t ti i ti # GPT- def an "" /* GitHub Copilot X */ class UserAuthentication { private validateCredentials(username, password) { // Security check implementation } } // Code Llama example async function fetchUser try { const response = awa return response.data } catch (error) { console.error('Error } } // fu } # GPT-4 code generation def analyze_sentiment(text): """Analyze the sentiment of the given text and return a score between -1 and 1""" # Implementation here /* GitHub Copilot X */ class UserAuthentication { private validateCredentials(username, password) { // Code Llama example async function fetchUserData() { try { const response = await api.get('/users'); return response.data; } catch (error) { console.error('Error fetching data:', error); } } // ChatGPT coding assistance function optimizePerformance(dat // TODO: Implement optimizatio return data.filter(item => !it } # GPT-4 code generation def analyze_sentiment(text): """Analyze the sentiment and return a score betwee # Implementation here /* GitHub Copilot X */ class UserAuthentication { private validateCredentials(username, password) { // Code Llama example async function fetchUserData() { try { const response = await api.get('/users'); return response.data; } catch (error) { console.error('Error fetching data:', error); } } // ChatGPT coding assistance function optimizePerformance(data) { // TODO: Implement optimization return data.filter(item => !item.isDeprecated); } # GPT-4 code generation def analyze_sentiment(text): """Analyze the sentiment and return a score betwe # Implementation here /* GitHub Copilot X */ class UserAuthentication { private validateCredentials(username, // Security check implementation } } // Code Llama example async function fetchUserData() { try { const response = await api.get('/use return response.data; } catch (error) { console.error('Error fetching data:' } } 6 / 8 対話型AIの台頭と開発フローの再発明 (2023) 対話型AIの台頭と開発フローの再発明 (2023) 62% 開発者が日常的に AIを利用 AI + 対話 開発プロセスを変革 OpenAI ChatGPTの登場(2022年11月〜)がコーディング支援のあり方 を変革 OpenAI 2023年3月:新モデルGPT-4をリリース、プログラミング能力が 大幅向上 GitHub 2023年3月:Copilotの強化版「Copilot X」を発表、GPT-4を組 み込み エディタ内チャットインタフェースの導入により「AIと会話しながらコー ドを書く」開発体験 Meta 2023年8月:Code Llamaをオープンソース公開、高性能モデルの 普及が加速 GitHub Copilot X - エディタ内チャット機能 Copilot X エコシステム GitHub Copilot X ecosystem AIと会話しながらコードを書く新時代 2023 2023 "このコードからSQLインジェ クション脆弱性を修正して"
  7. // Cursor AI code async function pr const results =

    return results return { id: item.id prediction confidence }; }); } # AlphaEvolve algorithm discovery def optimize_sorting(array): """Evolutionary optimized sorting algorithm""" if len(array) <= 1: return array # AI discovered optimization strategy pivot = array[len(array) // 2] left = [x for x in array if x < pivot] middle = [x for x in array if x == pivot] right = [x for x in array if x > pivot] return optimize_sorting(left) + middle + optimize_sorting(right) /* AI agent code generation */ class AutomatedCodeGenerator { constructor(spec) { this.requirements = spec.parse(); this.strategy = this.determineStrategy(); // Codeium multi-language support interface DataProcessor { preprocess(data: T[]): Promise; analyze(data: T[]): Promise>; postprocess(results: Result): Report; } class ImageProcessor implements DataProcessor { // Implementation generated by AI } // Cursor AI code generation async function processData(datase const results = await aiModel.a return results.map(item => { return { id: item.id, prediction: item.forecast, confidence: item.probabilit }; }); } # AlphaEvolve algorithm discovery def optimize_sorting(array): """Evolutionary optimized sorting algorithm""" if len(array) <= 1: return array # AI discovered optimization strategy pivot = array[len(array) // 2] left = [x for x in array if x < pivot] middle = [x for x in array if x == pivot] right = [x for x in array if x > pivot] return optimize_sorting(left) + middle + optimiz /* AI agent code generation */ class AutomatedCodeGenerator { constructor(spec) { this.requirements = spec.pa this.strategy = this.determ } async generateSolution() { const components = await th const tests = this.createTe return this.assembleApplica } // Codeium m interface Da preprocess analyze(da postproces } class ImageP { // Impleme } // Cursor AI code genera async function processDa const results = await return results.map(ite return { id: item.id, prediction: item.f confidence: item.p }; }); } /* AI agent code generation */ class AutomatedCodeGenerator { constructor(spec) { this.requirements = spec.parse(); this.strategy = this.determineStrategy(); // Codeium multi-language support interface DataProcessor { preprocess(data: T[]): Promise; analyze(data: T[]): Promise>; postprocess(results: Result): Report; } class ImageProcessor implements DataProcessor { // Implementation generated by AI } // Cursor AI code generation async function processData(datas const results = await aiModel. return results.map(item => { return { id: item.id, prediction: item.forecast, confidence: item.probabili }; }); } # AlphaEvolve algorithm discovery def optimize_sorting(array): """Evolutionary optimized sorting algorithm""" if len(array) <= 1: return array # AI discovered optimization strategy pivot = array[len(array) // 2] left = [x for x in array if x < pivot] middle = [x for x in array if x == pivot] right = [x for x in array if x > pivot] /* AI age class Aut constru // Codeium multi-language support interface DataProcessor { preprocess(data: T[]): Promise; analyze(data: T[]): Promise>; postprocess(results: Result): Report; } class ImageProcessor implements DataProcessor { // Implementation generated by AI } // Cursor AI code generation async function processData(dataset) { const results = await aiModel.analyze(dataset); return results.map(item => { return { id: item.id, prediction: item.forecast, confidence: item.probability }; }); } # AlphaEvolve algorithm discovery def optimize_sorting(array): """Evolutionary optimized sorting algorithm""" if len(array) <= 1: return array # AI discovered optimization strategy pivot = array[len(array) // 2] left = [x for x in array if x < pivot] middle = [x for x in array if x == pivot] right = [x for x in array if x > pivot] return optimize_sorting(left) + middle + optimize_sorting(right) /* AI agent code generation */ class AutomatedCodeGenerator { constructor(spec) { // Codeium multi-language support interface DataProcessor { preprocess(data: T[]): Promise; analyze(data: T[]): Promise>; postprocess(results: Result): Report; } class ImageProcessor implements DataProcessor { // Implementation generated by AI } 7 / 8 成熟期に向けて:AIと人間の協調 (2024-2025) 成熟期に向けて:AIと人間の協調 (2024-2025) 100億$ Cursor AI評価額 AIエージェント 創造的問題解決 2024年:AIコーディング支援の高度化・統合化 (GitHub Copilotチャット や主要IDEへのAI機能標準搭載) Cursor Codeium などの新興ツールが注目を集め、巨額の資金調達を実 施 エージェント機能の導入により、人手を介さずコード生成を自動化する 段階へ Google DeepMind 2025年5月:AlphaEvolveを発表、AIが創造的な問題解 決に踏み込む 開発者の役割変化:AIを使いこなして大規模開発や非エンジニアのアプリ 構築を支援 次世代AIコーディングツール Cursor AI AIファーストのエディタ設計 Codeium 自社モデルと多言語対応 AlphaEvolve 進化的アルゴリズム発見 開発者の役割変化 AIを活用した創造的問題解決へシフト 2024 2024 2025 2025
  8. // 2015: Early code function predictNext return mostCommonF } //

    2018: Neural networ async function suggestC return await neuralNe } // 2020: GPT-3 code generation function generateFunction(description) { return gpt3.complete(description); } // Example // Input: "Sort an array in ascending order" // Output: function sortArray(arr) { // return arr.sort((a, b) => a - b); // } // 2021: GitHub Copilot /* Write a function to calculate Fibonacci */ function fibonacci(n) { if (n <= 0) return 0; if (n === 1) return 1; return fibonacci(n-1) + fibonacci(n-2); } // 2023: ChatGPT & Copilot X // User: Create a React component for a todo list function TodoList() { const [todos, setTodos] = useState([]); const [input, setInput] = useState(''); const addTodo = () => { setTodos([...todos, input]); setInput(''); } return ( {input} setInput(e.target.value)} /> Add {todos.map((todo, i) => {todo} )} ); } // 2025: AI agents & creative problem solving class AIAgent { async solveTask(requirement) { const solution = await this.designSolution(requirement); const implementation = await this.implementCode(solution); const tested = await this.testAndRefine(implementation); return tested; } } // 2015: Early code completion function predictNextToken(tokens) { return mostCommonFollowing(tokens); } // 2018: Neural network based completion async function suggestCompletion(context) { return await neuralNetwork.predict(context); } // 2020: GPT-3 co function generate return gpt3.com } // Example // Input: "Sort a // Output: functi // return arr.s // } // 2021: GitHub Copilot /* Write a function to calculate Fibonacci */ function fibonacci(n) { if (n <= 0) return 0; if (n === 1) return 1; // 2023: ChatGPT & Copilot X // User: Create a React component for a todo list function TodoList() { const [todos, setTodos] = useState([]); const [input, setInput] = useState(''); const addTodo = () => { setTodos([...todos, input]); setInput(''); } return ( {input} setInput(e.target.value)} /> Add {todos.map((todo, i) => {todo} )} ); } // 2025 class AI async cons cons cons retu } } // 2015: Early code completion function predictNextToken(tokens) { return mostCommonFollowing(tokens); } // 2018: async fun return } // 2020: GPT-3 code generation function generateFunction(descriptio return gpt3.complete(description); } // Example // Input: "Sort an array in ascending // Output: function sortArray(arr) { // return arr.sort((a, b) => a - b // } // 2021: GitHub Copilot /* Write a function to calculate Fibonacci */ function fibonacci(n) { if (n <= 0) return 0; if (n === 1) return 1; // 2023: ChatGPT & Copilot X // User: Create a React component for a todo list function TodoList() { const [todos, setTodos] = useState([]); const [input, setInput] = useState(''); const addTodo = () => { setTodos([...todos, input]); setInput(''); } return ( {input} setInput(e.target.value)} /> Add {todos.map((todo, i) => {todo} )} ); } // 2025: AI agents & creative problem solving class AIAgent { async solveTask(requirement) { const solution = await this.designSolution(requirement); const implementation = await this.implementCode(solution); const tested = await this.testAndRefine(implementation); return tested; } } // 2015: Early code completion function predictNextToken(tokens) { return mostCommonFollowing(tokens); } // 2018: Neural network based completion async function suggestCompletion(context) { return await neuralNetwork.predict(context); } 8 / 8 まとめ:AIとの協調で進化する開発の未来 まとめ:AIとの協調で進化する開発の未来 AIコーディング技術の10年間の進化 AI進化の軌跡 単純なコード補完 から始まり コード生成 を経て 対話型パートナー となり 創造的開発パートナー へと進化 これからの展望 AIとの協調開発が標準に AIをナビゲーターとして活用し、人間はより高度な判断と創造 性に集中 人間の役割の進化 実装からデザイン、アーキテクチャ、倫理的判断へと重点がシ フト AIリテラシーが必須スキルに AIツールの効果的な活用と出力の評価能力が差別化要因に 開発の民主化 非エンジニアもAIの支援で独自アプリケーションを構築可能に 2015-2018: 黎明期 静的解析からニューラルネットワークへ。DeepCoderとIntelliCodeの登場。 2019-2020: 大規模言語モデル GPT-3の登場によりコード生成の可能性が拡大。 2021: AIペアプログラマ GitHub Copilotの登場で開発者とAIの協業が始まる。 2022: 競争の激化 AlphaCode、AWS CodeWhispererなど、市場の拡大と多様化。 2023: 対話型AI ChatGPTとCopilot Xにより開発フローが再発明される。 2024-2025: 成熟と創造 AIエージェントの登場とAlphaEvolveによる創造的問題解決。 AI時代の開発者の価値 「コードを書く人」から 「AIと共に問題を解決する人」へ