주요 콘텐츠

MATLAB Copilot을 위한 효과적인 프롬프트 작성하기

R2025a 이후

프롬프트는 작업 수행을 요청하기 위해 생성형 AI 툴에 제출하는 텍스트입니다. 일반적으로 프롬프트는 자연어를 사용하여 작성하는 질문이나 평서문입니다. MATLAB® Copilot에서는 Copilot Chat 패널, 편집기, 라이브 편집기 및 명령 창에 있는 Copilot에게 물어보기(Ask Copilot) 텍스트 상자를 사용하여 프롬프트를 제출할 수 있습니다.

프롬프트 엔지니어링은 효과적인 프롬프트를 만들고 AI 툴이 해결책을 생성할 수 있도록 안내하는 프로세스입니다. MATLAB Copilot의 효용성을 최대화하려면 명확하고 자세한 프롬프트를 작성하는 것이 중요합니다. 원하는 해결책을 생성하려면 여러 프롬프트와 답변을 반복해야 할 수 있습니다.

Copilot Chat 패널에서는 Copilot Chat이 대화식 답변을 반환하는데, 이 답변에는 자연어로 작성된 설명과 서식 지정된 코드(주석 포함)가 모두 포함될 수 있습니다. 사용자는 모든 종류의 프롬프트를 제출할 수 있지만, Copilot Chat은 다음과 같이 설명을 요청하는 프롬프트에 답변하는 데 적합합니다.

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

복잡한 작업 세분화하기

여러 단계로 구성된 작업을 요청하는 경우 더 단순한 여러 부분으로 나누십시오. 이런 부분을 별도의 프롬프트로 제출하거나 각각의 부분을 설명하는 별도의 문장으로 구성된 하나의 단락으로 제출할 수 있습니다.

예를 들면 다음과 같습니다.

First, generate code to read data from a CSV file.
Then, plot the data. Add a title, labels, and a legend.

피드백 제공 및 실수 설명하기

Copilot Chat 패널에서 Copilot과 채팅할 때는 이를 프로젝트를 도와주는 동료라고 생각해 보십시오. Copilot Chat이 답변을 생성하면 피드백을 담은 프롬프트를 통해 채팅을 계속 이어갈 수 있습니다. Copilot에 답변 중 어떤 부분이 도움이 되었고 어떤 부분이 도움되지 않았는지 알려주십시오. Copilot이 실수한 경우 후속 프롬프트를 통해 이에 대해 설명해 주십시오.

예를 들어 Copilot에 테이블을 전치하는 방법을 알려달라고 요청해 보겠습니다.

Show me how to transpose a 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에 원하는 결과 표시 방법을 알려주십시오. 예를 들어 Copilot에 결과를 플롯, 배열, 테이블 또는 기타 데이터 구조로 표시하도록 요청할 수 있습니다. Copilot에 결과를 파일에 작성하도록 요청할 수도 있습니다.

예를 들어 Copilot Chat 패널에서 이전 Copilot의 답변이 결과를 테이블로 반환했다고 가정해 보겠습니다. 결과를 다르게 표시하도록 요청할 수 있습니다.

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.

채팅 기록 지우기

다음과 같은 두 가지 상황에서는 채팅 기록을 지우는 것이 좋습니다.

  • 새 주제에 대한 대화를 시작하기 전.

  • 답변의 품질이 떨어지는 경우. 채팅 기록이 길면 응답 품질이 떨어질 수 있습니다.

먼저, 현재 채팅 세션에서 의미 있는 내용을 모두 저장합니다. 생성된 코드 중 남기고 싶은 코드를 저장합니다. Chat 패널의 오른쪽 위 코너에 있는 Copilot Chat 동작 메뉴에서 채팅 기록 복사 옵션을 선택하여 전체 채팅 기록을 저장할 수도 있습니다. 이후, 채팅 기록을 지우려면 마찬가지로 패널의 오른쪽 위 코너에 있는 채팅 기록 지우기 버튼을 클릭합니다.

Copilot Chat panel, showing the Clear chat history button and the Copilot Chat actions menu

채팅 기록은 채팅 세션 간에 유지되지 않습니다.

예시 프롬프트 사용해 보기

Copilot은 채팅 세션 시작 시 예시 프롬프트를 제공합니다. 다음은 Copilot 기능을 탐색하기에 좋은 예시 프롬프트입니다.

  • Create a line plot that displays multiple sets of x and y data

  • Roll two six-sided dice 1000 times and plot the sum of each roll

  • Create a 3D bar graph of data from the magic function

  • Generate noisy data from a cubic polynomial, preprocess the data, and plot the results

  • Solve the linear equations with coefficients A = [2, 4; 1, 3] and constants B = [8; 5] and display the results

참고 항목

도움말 항목