MATLAB Copilot のための効果的なプロンプトの記述
"プロンプト" は、タスクを実行するための依頼として生成 AI ツールに送信するテキストです。通常、プロンプトは自然言語を使って書く質問または指示です。MATLAB® Copilot では、Copilot チャット パネル、エディター、ライブ エディター、コマンド ウィンドウの Ask Copilot テキスト ボックスを使用してプロンプトを送信できます。
"プロンプト エンジニアリング" は、効果的なプロンプトを巧みに記述し、ソリューションを生成するように AI ツールを導くプロセスです。MATLAB Copilot の効果を最大限に高めるには、明確で詳細なプロンプトを記述することが重要です。期待されるソリューションを生成するには、いくつかのプロンプトと回答を繰り返す必要があるかもしれません。
Copilot チャット パネルでは、Copilot チャットにより自然言語による説明と書式設定されたコード (コメント付き) の両方を含む回答が会話形式で返されます。どのようなプロンプトでも送信できますが、次のような説明を依頼するプロンプトは、Copilot チャットが回答するのに特に適しています。
Explain why some matrices cannot be inverted
エディター、ライブ エディター、コマンド ウィンドウでは、書式設定されたコード (コメント付き) のみが Copilot により返されます。これらのパネルで Copilot を使用する場合は、コードの記述に焦点を当てた次のようなプロンプトを書くことをお勧めします。
Check if matrix can be inverted and invert it
効果的なプロンプトを書くために、次のベスト プラクティスに従うことを検討してください。
具体的にする
プロンプトを書くときは、Copilot に実行させたい内容を明確に指定します。漠然としたプロンプトは詳細な指示を付けることで明確化します。
たとえば、次のような漠然としたプロンプトがあります。
Create a plot
代わりに、Copilot に特定の種類のプロットを作成するように依頼します。
Create a sine wave plot from 0 to 2*pi with a title and labels
入力と出力を説明する
期待する入力と出力について、説明を提供します。データ型とサイズを指定することもできます。また、入力と出力を言葉で説明することもできます。このような詳細は、Copilot がユーザーの要件を理解するのに役立ちます。
以下に例を示します。
Generate a function that takes a numeric array and returns its mean and standard deviation
複雑なタスクを分割する
依頼内容に複数のステップが含まれる場合は、より単純な部分に分割します。各部分を個別のプロンプトとして送信することも、各部分を別々の文で説明する 1 つのパラグラフとして送信することもできます。
以下に例を示します。
First, generate code to read data from a CSV file. Then, plot the data. Add a title, labels, and a legend.
フィードバックを与え、誤りを説明する
Copilot チャット パネルで、Copilot がまるでプロジェクトを手伝ってくれる同僚であるかのように、Copilot とチャットします。Copilot チャットで回答が生成されたら、フィードバックを提供するプロンプトを続けて送信できます。回答のどの部分が役に立ち、どの部分が役に立たなかったかを Copilot に伝えます。Copilot が間違えた場合は、フォローアップ プロンプトでそのことを説明します。
たとえば、表を転置する方法を Copilot に依頼します。
Show me how to transpose a table
回答には、サンプルの table を生成するコードと、それに続く transpose 関数または演算子の呼び出しが含まれる場合があります。ただし、transpose はベクトルと行列のみを操作します。
この場合、生成されたコードを実行すると、代わりに rows2vars 関数を使用することを提案するエラー メッセージが表示されます。したがって、間違いを説明するフォローアップ プロンプトを書くことができます。このプロンプトでは、Copilot に前の回答で生成されたコードまたはデータを使用するように依頼できます。
transpose does not support tables. Show me how to use rows2vars on the sample table from the previous response.
反復、改良、検証
生成された回答が期待どおりでない場合は、プロンプトを改良して再度試してみます。出力が有効な結果であるかどうかを検証します。
必要に応じて詳細を追加し、プロンプトを書き直す。
生成されたコードを実行し、その出力を確認する。
生成されたコードまたはテキストがドキュメンテーションと整合していることを確認する。
理解できないコードが Copilot により生成された場合は、Copilot に詳細な説明を依頼する。Copilot から行ごとの説明が提供されていない場合は、それを依頼する。
Copilot からの説明を表示するには、コードを強調表示して右クリックし、[Copilot] 、 [コードの説明] を選択する。
結果の提示方法を説明する
Copilot に結果をどのように提示して欲しいかを伝えます。たとえば、結果をプロット、配列、table、またはその他のデータ構造として提示するように Copilot に依頼できます。結果をファイルに書き込むように Copilot に依頼することもできます。
たとえば、Copilot チャット パネルに Copilot から返された前の回答が table だったとします。この結果の別の提示方法を依頼することもできます。
Return the results from the previous response as a timetable with variables named "Signal" and "Status", sampled at 50 Hz. Then write the timetable to a CSV file named mysignals.csv.
チャット履歴をクリアする
チャット履歴をクリアすることが推奨される状況には、下記の 2 つがあります。
新しいトピックについての会話を始める前。
回答の質が低下した場合。チャット履歴が長くなると、このような低下が発生する可能性があります。
まず、現在のチャット セッションから有用な情報をすべて保存します。取っておきたい生成されたコードを保存します。チャット パネルの右上隅にある [Copilot チャットのアクション] メニューから [チャット履歴のコピー] オプションを選択して、チャット履歴全体を保存することもできます。次に、チャット履歴をクリアするには、パネルの右上隅近くにある [チャット履歴のクリア] ボタンをクリックします。

チャット履歴はチャット セッション間で保持されません。
例のプロンプトを試す
Copilot は、チャット セッションの開始時に例のプロンプトを提示します。Copilot の機能を調べるのに役立ついくつかの例のプロンプトを次に示します。
Create a line plot that displays multiple sets of x and y dataRoll two six-sided dice 1000 times and plot the sum of each rollCreate a 3D bar graph of data from the magic functionGenerate noisy data from a cubic polynomial, preprocess the data, and plot the resultsSolve the linear equations with coefficients A = [2, 4; 1, 3] and constants B = [8; 5] and display the results