プロンプトプログラミングってなんだろう?
どんなことができるのだろうか?
「ChatGPT」や「Perplexity AI」など、さまざまなAIチャットボットが登場するなか「プロンプトプログラミング」という言葉が注目を集めています。
今後は、効率的かつ効果的にAIツールを活用してプロンプトプログラミングができるようになるでしょう。ただ、新たに生まれた技術のため、プロンプトプログラミングが何なのかあいまいな人も多いですよね。
そこで、本記事ではそもそもプロンプトプログラミングとは何なのか、その意味をできることも交えわかりやすく解説します。プロンプトプログラミングを用いたサービスや学習方法も紹介するので、ぜひ参考にしてください。
この記事の監修者
フルスタックエンジニア
音楽大学卒業後、15年間中高一貫進学校の音楽教師として勤務。40才のときからIT、WEB系の企業に勤務。livedoor(スーパーバイザー)、楽天株式会社(ディレクター)、アスキーソリューションズ(PM)などを経験。50歳の時より、専門学校でWEB・デザイン系の学科長として勤務の傍ら、副業としてフリーランス活動を開始。 2016年、株式会社SAMURAIのインストラクターを始め、その後フリーランスコースを創設。現在までに100名以上の指導を行い、未経験から活躍できるエンジニアを輩出している。また、フリーランスのノウハウを伝えるセミナーにも多数、登壇している。
プロンプトプログラミングとは?
プロンプトプログラミングとは、テキスト形式のインタフェースに入力するだけでプログラムを自動生成する開発手法です。
ここからは、次のトピックも交えプロンプトプログラミングとは何なのかを詳しく解説します。
プロンプトとは
プロンプトとは、人工知能(AI)やコマンドラインインタフェース(CLI)を扱う際に使用される用語で、主に下記の意味として利用されます。
- CLIにおいて入力が受け付けられている状態を表現する文字や記号などのマーク
- AIに入力するテキスト形式の指示
たとえば、Linuxを操作するとき現在のディレクトリ(カレントディレクトリ)を知りたい場合は、「$」のプロンプトの表示後に「pwd」コマンドを送ります。ユーザーからの入力を則すこの「$」がプロンプトです。
AIチャットボットに質問を行う際は「〇〇について教えて。」と、テキスト形式のプロンプトとして記述します。
まずはプロンプトの意味を正しく理解して、自分の言葉で説明できるようにしましょう。
プロンプトエンジニアリングとの違い
プロンプトプログラミングとプロンプトエンジニアリングは、両者ともに「技術」を指す用語です。ただし、それぞれの意味や概念は異なります。
プロンプトプログラミングは「〇〇のプログラムを作成してほしい」のようにテキストベースの指示を送るだけで、プログラムを生成できる開発手法・技術のことです。
一方、プロンプトエンジニアリングは人工知能や機械学習といった技術を利用し、ユーザーとの対話を通じて課題を解決する手法・技術を指します。
以上から、プロンプトプログラミングはプロンプトエンジニアリングを活用した開発技術とも言えるでしょう。
なお、次の記事ではプロンプトエンジニアリングとは何なのか、その意味を身につけるメリットも交えて詳しく解説しているので良ければ参考にしてください。
コマンドプロンプトとの違い
プロンプトプログラミングは「手法・技術」を指すのに対し、コマンドプロンプトは「ツール」を指すという違いがあります。
コマンドプロンプトとは、キーボードからコマンドを入力することにより、Windowsの設定を操作できるソフトウェアのことです。なお、Windowsの「コマンドプロンプト」は、Linuxの「シェル」、macOSの「ターミナル」と同じような働きをするツールです。
たとえば、Windowsを起動して「コマンドプロンプト」を開き、「dir」コマンドを入力するとディレクトリ中のファイルとサブディレクトリ一覧の表示ができます。
プロンプトプログラミングでできること
ここからは、プロンプトプログラミングでできることを、5つにまとめて紹介します。
自然言語処理
プロンプトプログラミングを用いて自然言語処理技術を活用すると、自然な会話を実現させるプログラムが作成できます。
なお、自然言語処理(NLP)とは人間が普段使用している自然言語(英語・日本語など)を対象に、コンピュータが理解・処理する技術を指します。
たとえば、文章を作成するプログラムでは、プロンプトとして情報を提供すれば、理解しやすい文章にシステムが補完してくれます。また、文章の生成だけではなく、要約や翻訳、感情分析なども可能です。
ソースコードの生成
プロンプトプログラミングを用いると、テキスト形式で実現したいプログラムの内容を伝えるだけで、ソースコードの自動生成ができます。
本来はプログラマーがプログラミング言語を使ってソースコードを記述しなければならないところを、プロンプトプログラミングを活用すればテキストベースの指示を送るだけでプログラムの開発ができてしまいます。
プログラミングが得意でない人でも容易にプログラムを作成できるようになるため、ソースコード生成にかかる手間や時間の削減が可能になります。
画像の生成
プロンプトプログラミングを用いると、画像の認識・生成が可能です。
画像処理の技術を使いこなすには、Python・C言語などのプログラミング言語や画像認識・生成に関するアルゴリズムの知識が必要です。
プロンプトプログラミングを利用すれば、これらの知識・スキルがあまりなくても、要求する画像処理のプログラムを構築できます。
音声の生成
プロンプトプログラミングは画像のみならず、音声にも応用可能です。
画像処理と同様で、音声処理を行うにはプログラミング言語や機械学習、統計学といった様々な知識・スキルが必要になります。
プロンプトプログラミングを活用すれば、高度なスキルを保有していなくても簡単に音声の認識・生成といったプログラムの作成が可能です。
データ分析
プロンプトプログラミングを用いると、情報の整理やデータの分析・処理も可能になります。
プロンプトとしてデータの処理方法を指示すれば、自動的にプログラムの開発が可能です。たとえば、下記の3つを指定することで、線形回帰モデルのプログラムを作成できます。
- プログラミング言語:Python
- ライブラリ:scikit-learn
- プログラム内容:線形回帰モデル
理想通りのプログラムを作成するには、どのようなプログラミング言語やライブラリを使用するかといった知識が必要になります。そのため、プロンプトプログラミングを活用するにあたって、どのような指示をプロンプトとして送るべきかを判断するスキルが求められます。
プロンプトプログラミングを用いたサービス例
プロンプトプログラミングでできることを踏まえ、ここからは実際にプロンプトプログラミングの技術を活用したサービスの一例を6つ紹介します。
ChatGPT
ChatGPTは、Open AIが開発したAIチャットサービスです。ユーザーの入力する質問に対してまるで人間が回答しているかのような技術を搭載しており、人間に近い自然な対話が可能です。
ChatGPTは大規模言語モデル「Large Language Models(LLM)」と呼ばれる膨大なテキストデータを自然言語処理するアルゴリズムによって稼働する仕組みになっています。
質問への回答だけではなく、文章の作成・要約やプログラムの作成、表計算ソフトの関数の記述など様々なことに応用できます。
Perplexity AI
Perplexity AIは、対話型のインタフェースでAI検索できるサービスです。ChatGPTと比べられることもありますが、Perplexity AIは次のような特徴があります。
- ログイン不要で利用できる
- 情報ソースが自動出力される
Perplexity AIはログインしなくても使用できるため、素早くサービスの利用が可能です。また、回答情報の出典元が提供されるので、信頼性に不安のある場合でも情報を遡って調査ができます。
実際に使う場合には、ChatGPTとPerplexity AIのどちらが向いているのかは、実際に両者のサービスを利用してみて判断しましょう。
GitHub Copilot
GitHub Copilotは、OpenAIとGitHubの共同で開発されたAI自動コーディング機能を搭載したサービスです。
ソースコードを記述する、もしくは実現したいプログラムを自然言語で入力することで、GitHub Copilotがプログラムの提案をしてくれます。
なお、GitHub Copilotは下記の開発環境で利用が可能です。
GitHub Copilotを利用すれば、既存エディターと統合し、開発スピードの向上やミス・エラーの防止が期待できます。
Leonardo.Ai
Leonardo.Aiは、豊富な機能の搭載されたAI画像生成サービスです。Webブラウザで利用できるため、アプリのインストールは不要です。
生成したい画像のイメージをテキストのプロンプトとして入力することで、画像の生成ができます。画像数や寸法、背景削除といった様々な設定も行えるので、ニーズにあわせてカスタマイズが可能です。
Leonardo.Aiは無料版だと一部機能が制限され、生成できる画像の枚数も決まっています。無料版からサービスを試してみて、必要に応じて有料版にアップグレードすることをおすすめします。
Creative Reality™ Studio
Creative Reality™ Studioは、D-IDのジェネレーティブAI技術とOpen AIの「GPT-3」、Stability AIの「Stable Diffusion」を統合したテキストから動画を生成できるプラットフォームサービスです。
お気に入りの画像やイラストをアップロードし、発声させたい言葉を入力するだけで、アバターやアニメーションの作成ができます。また、声質や表情をオリジナルにカスタマイズすることが可能です。
Creative Reality™ Studioには複数のプランがあり、無料トライアル期間も用意されています。まずは無料で利用してみて使用感を試してみることをおすすめします。
Notion AI
Notion AIはNotionの有料オプションの一つです。Notion AIを活用すれば、AI技術により自動で文章の要約・改善やデータの抽出・分析、アイデアの創出などが可能になります。なお、Notionとはメモ・タスク管理・Wiki・データベースなどの機能を備えたオールインワンツールです。
たとえば、ドキュメント上で「/AI」と入力し、「アクションアイテム」を選択すると必要な情報を抽出して自動的にタスクの生成ができます。同様に「要約AI」を選択すると、自動で文章の要約が可能です。
Notion AIには複数の料金プランが用意されているので、必要な機能に応じてプランを選んでください。
プロンプトプログラミングの学習方法
ここからは、プロンプトプログラミングを学習する方法を2つにまとめて紹介します。
オンライン教材
メリット | ・端末とネット環境があれば時間や場所を問わず学習できる ・クラウド上で学習情報を記録・保存できる |
デメリット | ・IT機器の故障により勉強できなくなる恐れがある ・サービスが突然終了する場合もある |
こんな人におすすめ | ・インターネットやITツールの操作に慣れている人 ・仕事や育児などと両立して勉強をしたい人 |
オンライン教材を活用すれば、通勤中や外出時でも学習ができます。また、理解しづらい概念・用語が出てきても、インターネット環境を使ってすぐに調査が可能です。ただし、通信環境の乱れやデバイスの故障といったトラブルには注意が必要です。
おすすめのオンライン教材として、下記が挙げられます。
これらのオンライン教材は主に英語で記載されていますが、ブラウザの翻訳機能などを使用すれば日本語での対応も可能です。また、無料で利用できるのも大きなメリットといえます。
学習本/書籍
メリット | ・費用の負担が少ない ・教材に直接書き込みが可能 |
デメリット | ・外出時に教材の持ち運びが面倒 ・実際に手を動かしながらの学習が難しい |
こんな人におすすめ | ・アナログ的な勉強に慣れている人 ・プロンプトエンジニアリングに関する体系的な知識を得たい人 |
学習本/書籍を使用する場合、マーカー・付箋を活用するなど、マイペースに学習ができます。ただし、本・書籍を読んでいるだけでは実務で役立つスキルが身に付きづらいので、勉強した知識をアウトプットする環境を用意することが大切です。
プロンプトプログラミングを学習するうえで、おすすめの学習本/書籍は「ChatGPTの応答精度はプロンプトが9割」です。
話題になっている「ChatGPT」の仕組みから「Perplexity AI」や「Notion AI」などの最新AIツールまで幅広く勉強ができます。
まとめ
今回は、そもそもプロンプトプログラミングとは何なのか、その意味をできることも交えて解説しました。
プロンプトプログラミングの技術により、プログラミングに関する知識があまりなくても、プロンプトとしてテキスト入力するだけでプログラムの構築が可能です。また、自然言語処理や画像・音声処理、データ分析などにも応用できます。
プロンプトエンジニアリングの領域を勉強する際には、オンライン教材や学習本/書籍を活用することが想定されます。しかし、サポートが十分でないと、エラーやバグの発生などにより途中で挫折してしまう可能性があります。そこで、現役エンジニアとマンツーマンのサポートでモチベーションを維持しながら学習できる「SAMURAI ENGINEER」の利用を検討してみるのも一つの手です。