What developers need to know about generative AI

生成系AIについて開発者が知っておくべきこと

Image of Damian Brady

昨今のニュースを席捲する「生成系AI(Generative AI)」ですが、厳密にはどのようなものでしょうか?
生成系AIについて知っておくべきこと、また開発者にとってどのような意味を持つのかについて説明します。


皆さんはこれまでに、ChatGPTDALL-EGitHub Copilotといった生成系AI(人工知能)ツールについて聞いたことがあるかと思います。生成系AIツールを利用すると、メールの件名からプログラミングコードの関数、アートに至るまで、誰でも瞬時にコンテンツを作成できるため、幅広い関心を集めています。

様々な業界のコンテンツ制作に革命をもたらす可能性があることから、生成系AIとは何か、どのように利用されているか、誰が利用しているかを理解することが重要です。今回は、生成系AIとは何か、どのような仕組みか、実際の応用例、既に人々(および開発者)の働き方をどのように変えているかについて詳しく見ていきます。

生成系AIとは

簡単に言うと、テキスト、画像、動画、音楽、コードなどの新しいコンテンツを作成するための、AIモデルとツールの1つのカテゴリーです。生成系AIは、ニューラルネットワークやディープラーニングアルゴリズムなどの様々な手法を駆使してパターンを識別し、そのパターンに基づいて新たな結果を生成します。コンテンツ、コード、画像などの作成に関して、企業や人々(ソフトウェア開発者やエンジニアを含む)は生成系AIツールにますます期待を寄せています。

生成系AIの使用目的

ChatGPTや新しいBingといった新しい生成系AIツールに関する情報を耳にしたことがあるかもしれませんが、生成系AIには、単一のフレームワーク、プロジェクト、またはアプリケーションよりも多くのものが存在します。

従来型のAIシステムは、パターンを識別するために大量のデータでトレーニングされ、ユーザーや企業を支援する特定のタスクを実行できます。一方、生成系AIは一歩先を行っています。複雑なシステムとモデルを使用し、自然言語プロンプトに基づいて画像、テキスト、または音声の形式で、今までになかった出力を生成します。

例えば、生成系AIモデルとアプリケーションは次の用途に利用できます。

  • テキストの生成:AIツールを利用したテキスト生成は1970年代から開発されてきた分野ですが、最近では、AI研究者が敵対的生成ネットワーク(GAN)をトレーニングして、人間のような会話をモデル化したテキストを生成できるようになりました。主な例として、OpenAI社のアプリケーションであるChatGPTが挙げられます。ChatGPTは何千ものテキスト、書籍、論文、コードリポジトリでトレーニングされ、自然言語プロンプトや質問に対して完全な回答を返すことができます。

An example of text generation in ChatGPT
例:ChatGPTでのテキスト生成

  • 画像の生成:生成系AIモデルを利用すると、自然言語プロンプトで新しい画像を作成できます。これは、現在のツールやアプリケーションで最も人気のある手法の1つです。テキストから画像を生成する際の目標は、与えられたプロンプトの内容を正確に表現した画像を作成することです。例えば、人気のAI画像ジェネレーターであるDALL-E 2に「タロットカード占いをしている柴犬を描いた印象派風油絵」というテキストプロンプトを与えると、下の絵のような結果が得られます(素晴らしい作品ですね)。

An AI-generated image from DALL-E 2 of a Shiba Inu dog giving a tarot card reading
例:DALL-E 2でAIが生成した画像「タロットカード占いをする柴犬」

  • 動画の生成:Stable Diffusionなどの生成系AIモデルは、テキストプロンプトや画像参照を通じて指定されたスタイルを適用することで、既存の動画から新しい動画を作成できます。GitHubにあるプロジェクトの1つであるstable-diffusion-videosでは、Stable Diffusionを使用してテキストプロンプト間でモーフィングできるミュージックビデオと動画の作成方法について、役立つ例とヒントを提供しています。

An example of a video created with a text prompt using diffusion models from [Imagen Video](https://imagen.research.google/).

  • プログラミングコードの生成:サンプルコードを求めてインターネットや開発者コミュニティグループを探し回る必要はありません。生成系AIモデルを利用すると、自然言語プロンプトで新しいプログラミングコードを生成したり、コード提案機能を使って部分的に記述されたコードを完成させたり、あるプログラミング言語から別のプログラミング言語に翻訳することができます。GitHub Copilotの仕組みを簡単に紹介すると、GitHub CopilotはOpenAI社のCodexモデルを使用しており、開発者のエディターから直接コード提案を提供します。ただし、どのソフトウェア開発ツールにも言えることですが、生成されたコードを本番環境にマージする前に必ずレビューするようにしてください。
  • データの生成:生成系AIの一般的な活用例として挙げられるのが、合成データと呼ばれる新しいデータの作成と、既存のデータセットの拡張です。ここでは、既存のデータセットから新たなサンプルを生成してデータセットのサイズを増やし、そのデータセットでトレーニングして機械学習(ML)モデルを改良することが含まれますが、実際のユーザーデータはモデルの強化に利用されないため、プライバシーは確実に守られます。合成データの生成を利用すると、単なる機械学習(ML)のトレーニングではなく、有意義で有用なデータを作成できます。Cruise社Waymo社など、自動運転の開発に携わる多くの企業がAIで生成された合成データを認知システムのトレーニングに利用し、走行中も車両が現実世界の状況に合わせて対応できるようにしています。
  • 言語翻訳:生成系AIと組み合わせた自然言語理解(NLU)モデルは、ますます一般的に利用されるようになり、言語翻訳をその場で提供します。こうしたツールを利用することで、カスタマーサポートやドキュメントなどを顧客の母国語で提供できるため、企業は言語の壁を打ち破り、顧客基盤を拡大することができます。生成系AIは、複雑な深層学習(DL)アルゴリズムを使用してソーステキストの文脈を理解し、文章を別の言語で言語学的に構築できます。これは、例えば関数をPythonからJavaに変換するなど、コーディング言語にも応用できます。

これまでの要点:生成系AIは比較的新しいテクノロジーですが、消費者やビジネス向けアプリケーションで既に使われています。より明確で具体的なニーズを満たすために、生成系AIの活用例は今後も発展を続け、生成系AIを使用して作成されるアプリケーションの数も増え続けるでしょう。

生成系AIの仕組み

生成系AIモデルは、ニューラルネットワークを使用して大規模なデータセットからパターンを識別し、新しいオリジナルのデータまたはコンテンツを生成します。

では、ニューラルネットワークとは何でしょうか?簡単に言うと、人間の脳の神経細胞からインスピレーションを得た、相互に連結されたノードを使用します。ニューラルネットワークは、機械学習(ML)モデルや深層学習(DL)モデルの基盤であり、複雑な構造のアルゴリズムを使用して大量のデータ(テキスト、コード、画像など)を処理します。ニューラルネットワークのトレーニングとして、予測される出力と必要な出力の差を最小限に抑えるために、ニューロン間の接続の重みまたはパラメータを調整します。これにより、ネットワークは間違いから学習し、データに基づいてより正確に予測することができます。

機械学習とAIの違いとは

機械学習はAIの下位分野の1つであり、複雑な一連のアルゴリズムを使用してパターンを識別し、データから学習します。AIとは、コンピューターシステムで人間の知性をシミュレートするタスクを実行できるモデルとアプリケーションを開発することを指します。

アルゴリズムは機械学習や生成系AIモデルにおいて主要なコンポーネントであり、機械がデータから学習するのを支援するだけでなく、出力の精度を最適化したり、入力データに基づいて意思決定やレコメンドをするためにも使われます。

こうしたプロセスの自動化にアルゴリズムは役立ちますが、膨大な量のデータとコンピューティングリソースが必要であるため、生成系AIモデルを構築するのは極めて複雑です。モデルのトレーニングには大規模なデータセットが必要であり、高品質のデータを生成するには時間とコストがかかる可能性があります。

繰り返しになりますが、これらのモデルは複雑なので、改めて一般的な生成系AIモデルとその仕組みについて説明します。

  • 大規模言語モデル(LLM):自然言語テキストを処理・生成する機械学習モデルの一種です。大規模言語モデルの開発における最も重要な進歩のひとつに、書籍、Webサイト、ソーシャルメディアへの投稿など、膨大な量のテキストデータを利用できるようになった点があります。こうしたデータを活用することで、自然言語の応答を様々な文脈で予測・生成できるモデルをトレーニングすることができます。その結果、大規模言語モデルはChatGPTのように、仮想アシスタント、チャットボット、テキストジェネレーターなど、複数の方法で実用的に応用できるようになりました。
  • 敵対的生成ネットワーク(GAN):生成系AIで最もよく使われるモデルの1つであり、2種類のニューラルネットワーク(ジェネレータとディスクリミネータ)で構成されています。ジェネレーターネットワークは、ランダムなノイズ信号から画像や音声などの新しいデータを生成します。一方、ディスクリミネーターネットワークは、トレーニングセットの実際のデータとジェネレーターによって生成されたデータを区別するようにトレーニングされます。

トレーニング中、ジェネレーターネットワークはディスクリミネーターネットワークをだまして本物だと思わせることができるデータを作成しようとします。この「敵対的」プロセスは、ジェネレーターネットワークが、トレーニングセット内の実際のデータとまったく区別できないデータを生成できるようになるまで続きます。このプロセスにより、どちらのネットワークもそれぞれのタスクをより適切に実行できるようになり、結果的により現実的で高品質なデータが生成されます。

A diagram illustrating how a generative adversarial network works. Image [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.en) האדם-החושב on wikipedia
図:敵対的生成ネットワークがどのように機能するかを示す
Wikipediaに掲載されているהאדם-החושב画像[CC BY-SA 4.0]
(https://creativecommons.org/licenses/by-sa/4.0/deed.en)

  • Transformerベースのモデル:Transformerをベースとしたモデルのニューラルネットワークは、連続したデータの関係性を追跡し、文脈や意味を学習することで動作します。つまりこのモデルは、機械翻訳、言語モデリング、質問への回答など、自然言語処理タスクを非常に得意としています。また、GPT-4(Generative Pre-trained Transformer 4)などの人気の言語モデルで使われており、画像認識など連続したデータのモデリングを必要とするタスクにも応用されています。
  • 変分オートエンコーダモデル(VAE):2種類のニューラルネットワーク(エンコーダとデコーダ)を使用して機能するという点でGANに似ています。VAEでは、大量のデータを取得してより小さな表現に圧縮した上で、オリジナルデータに類似した新しいデータを作成できます。VAEは、画像、動画、音声の生成によく使われており、「20万枚を超える有名人の画像が含まれているCelebAのようなデータセットでトレーニングすると、実在しない人のまったく新しいポートレートを作成できる」という面白い事実もあります。

 The smile vector, a concept vector discovered by [Tom White](https://aiartists.org/tom-white) using VAEs trained on the CelebA dataset.
図:スマイルベクトル
CelebAのデータセットでトレーニングされたVAEを使用し、トム・ホワイト氏が発見した概念ベクトル

現実世界での生成系AIの応用

生成系AIの影響が急速に顕在化していますが、まだ初期段階に過ぎません。にも関わらず、(開発者を含む)ユーザーと企業を対象とした、生成系AIモデルの利用によって具体的な成果をもたらすアプリケーション、製品、オープンソースプロジェクトが既に沢山作られています。

オープンソースソフトウェアと生成系AIの関係

オープンソースは長年にわたってソフトウェア開発を支えてきましたが、今ではAIの未来も支えています。オープンソースフレームワーク(PyTorchTensorFlowなど)は、多くのAIアプリケーションの強化に使われており、こうしたフレームワークで構築された一部のAIモデルもオープンソース化されています。当然のことながら、そのうちの多くがGitHub上で実施されています。例えば、Stable Diffusionモデルなどがあります。オープンソースコミュニティで開発されたライブラリ、フレームワーク、ツールにより、開発者はコスト面での典型的な障壁を回避しながら、生成系AIモデルで構築、実験、共同作業を行うことができるようになりました。これにより、独自のモデルを開発するリソースを持たない個人および中小企業が利用しやすくなり、AIの民主化が促進されました。

生成系AIは絶えず進化していますが、既に現実世界ではいくつかの用途で利用されているため、その一部をご紹介します。

コード作成

新人開発者もベテラン開発者も同じように、生成系AIを利用してコーディングプロセスを改善できます。生成系AIを利用したコーディングツールは、テスト作業のような反復性の高いタスクの一部を自動化したり、コードを完成させたり、まったく新しいコードを生成したりするのに役立ちます。GitHubでは、AIを利用した独自のペアプログラマーとしてGitHub Copilotを提供しており、生成系AIによって開発者にコードを提案します。また、2023年3月22日にはGitHub Copilot Xも発表しました。これにより、エディター、プルリクエスト、ドキュメンテーション、CLIなど、多くの場面で生成系AIを利用できます。

アクセシビリティ

生成系AIは、音声からテキストへの文字起こし、音声合成、支援技術など、様々な方法を通じて障がいのある人々のアクセシビリティに大きな影響を与え、改善できる可能性を秘めています。GitHub Copilotツールの中で特に素晴らしいのが音声起動機能(テクニカルプレビュー版)であり、これによってキーボードを使うことが難しい開発者が音声でコードを作成できます。この種のツールは、生成系AIの力を活用することで、より包括的でアクセスしやすい未来のテクノロジーへの道を切り開いています。

ゲーム

生成系AIは、新しいキャラクター、ストーリー展開、設計コンポーネントなどを生成することで、ゲームを新たなレベルに引き上げることができます。例えば、「This Girl Does Not Exist」に携わった開発者は、「ストーリー展開からビジュアルアート、さらには音楽に至るまで、あらゆる構成要素が全てAIによって生成された」と述べています。生成系AIをこのように利用することで、ゲーム製作会社は開発者の作業負荷を増やすことなく、魅力的な新コンテンツを作成できるため、開発者はゲームの他の側面(ストーリー開発など)に取り組むことができます。

Webデザイン

デザイナーは生成系AIツールを活用して設計プロセスを自動化し、時間とリソースを大幅に節約できます。これにより、さらに合理化された効率的なワークフローを実現できます。また、こうしたツールを開発プロセスに組み込むことで、高度にカスタマイズされたデザインとロゴを作成できるようになり、全体的なユーザーエクスペリエンス(UX)が向上し、ユーザーによるWebサイトやアプリケーションの活用が促進されます。様々なデバイスに適用できる最適化されたデザインレイアウトの作成など、生成系AIツールを使用して手間のかかる作業の一部を実行することもできます。例えば、designs.aiなどのツールを使用して、Webサイトのロゴ、バナー、モックアップを短時間で生成できます。

Web検索

Microsoftやその他の業界各社は、よりパーソナライズされた顧客体験を実現するために、生成系AIモデルを検索に多用するようになっています。そのうちの1つが、関連するキーワードを生成して検索数を減らすクエリ拡張です。検索エンジンがリンクのリストを返す検索エンジンにとどまるのではなく、生成系AIを用いることで、改善された新モデルが自然言語応答の形式で検索結果を返すようにサポートできます。現在、BingはOpenAI社との提携によってAIを利用した機能が搭載され、複雑な質問に回答できるようになりました。また、ユーザーはチャットボックスでフォローアップの質問をして、より正確な応答を得ることができます。

ヘルスケア

生成系AIをヘルスケア分野で応用することで、病気の発見や診断の向上、医学研究の前進、製薬分野での進歩を加速させる可能性があるとして関心が集まっています。生成系AIによって大量のデータを分析し、化学構造をシミュレートしたり、新しい化合物が新薬開発に最も効果的であると予測できる可能性があります。NVIDIA Claraは、医療用画像処理やヘルスケア研究向けに特別に設計された生成系AIモデルの一例です(加えて、Gartnerは「2025年までに新しい調合薬と材料の30%以上が生成系AIモデルを介して発見される」と提言しています)。

面白い事実:最近、ChatGPTが臨床医の力を借りることなく、米国医師国家試験に合格したことをご存知ですか?

マーケティングと広告

マーケティングにおいて最も重要なのがコンテンツです。生成系AIにより、これまで以上に大量のコンテンツを迅速に作成することが容易になりました。ソーシャルメディアに投稿するための画像を作成したり、字幕、製品説明、ブログ投稿、メールの件名などを作成するために、多くの企業、代理店、クリエイターが既に生成系AIツールを利用しています。生成系AIは、個人向けにカスタマイズした魅力的なコンテンツを迅速に作成することで、企業による広告体験のパーソナライズを支援することもできます。ライター、マーケター、クリエイターは、Jasperのようなツールを利用してコピーを生成したり、Surfer SEOを利用してオーガニック検索を最適化したり、albert.aiを利用してデジタル広告コンテンツをパーソナライズすることができます。

アートとデザイン

前述の通り、AIの力を利用して素晴らしいポートレートを一瞬のうちに作成できます。アーティストやデザイナーも、こうしたAIツールをインスピレーションの源として利用しています。例えば、建築家は物体や環境の3Dモデルを短時間で作成できます。アーティストは、元の画像にキュビズム様式を追加するなど、AIを使って様々なスタイルを適用することで、ポートレートに新しい命を吹き込むことができます。その証拠として、デザイナーは既に、MidjourneyMicrosoft DesignerなどのAI画像ジェネレーターを使い始めており、Discordコマンドを入力するだけで高品質の画像を作成しています。

金融

MIT Sloan School Initiative on the Digital Economyの特別研究員であるマイケル・シュラージ氏は、技術動向とそれらが金融分野に与える影響に関する最近の議論の中で、「今後ますます、生成系AIが財務予測やシナリオ生成に使われるようになると思う」と述べています。さらに進歩は続き、生成系AIを利用して大量のデータを分析し、不正行為の検出、リスク管理、意思決定への情報提供も可能になるでしょう。金融サービス業界に応用できることも明らかです。

製造業

メーカーは、製品設計、品質管理、予知保全を支援するために、生成系AIソリューションの導入を始めています。生成系AIによって、履歴データを分析し、機械の故障予測の改善やメンテナンス計画の効率的な立案が可能になります。Capgeminiが実施した調査によると、ヨーロッパのメーカーの半数以上が何らかのAIソリューションを実装しています(これまでのところ、生成系AIソリューションではありません)。人間よりも機械の方が膨大な量の製造データを簡単かつ高速に分析できるためです。

パートナーとしてのAI:生成系AIモデルとツールは目的が絞られているため、コンテンツ、コード、画像の生成に最適です。GitHubの調査により、GitHub Copilotによって開発者のコード作成が最大55%高速化されるということがわかりました。これは、生成系AIモデルとツールが全体的な生産性を向上させ、効率性を高めることができることを明確に示しています。こうした指標は、生成系AIツールが個人やチームの働き方を既にどのように変えているかを示すと同時に、こうしたツールが人間の取り組みをどのように補完するかも明確に示しています。

生成系AIモデルの構築における障害

アプリケーション強化の方法として生成系AIモデルが利用されていますが、生成系AIモデルを構築または使用する企業は次の2つの重要な課題に直面するでしょう。

  • 計算能力とデータ量/質:生成系AIには大量のコンピューティングリソース、強力なGPU、大量のメモリーが必要です。このタイプのハードウェアは高額であり、多くの個人または企業が社内ソリューションを構築する際の障壁になっています。
  • 生成系AIモデルをトレーニングして正確な結果を作成するには、大量の高品質データも必要:トレーニングデータに偏りがあったり不完全である場合、モデルは役に立たないコンテンツまたは不正確なコンテンツを生成する可能性があります(そのため、生成系AIを利用したデザインツールで人間の手を再現することは特に困難です)。

まとめ

広告キャンペーン用のビジュアル資料を作成する場合や、病気の診断に役立つ医療用画像の精度を向上させる場合など、生成系AIは複雑な問題を迅速に解決するのに役立っています。また、生成系AIをベースとしたプログラミングツールが登場したことで、開発者によるコードの記述方法が大きく変化しました。

GitHubは、開発者がソフトウェアの迅速な設計と開発を求めていることを理解しており、GitHub Copilotのようなツールによって、開発者が大規模なデータセットにアクセスしてより効率的なコードを記述し、生産性を向上できるよう支援しています。実際、調査対象の開発者の96%がGitHub Copilotを使用することで反復的なタスクに費やす時間が減ったと回答しており、その結果、74%がよりやりがいのある仕事に専念できるようになったと回答しました。

これらのモデルはまだ完璧ではありませんが、日に日に改良されており、開発者と生成系AIにとって、とても楽しみな近未来を創り出しています。