이 문서에서는 Azure Machine Learning 스튜디오에서 프롬프트 흐름을 사용하는 주요 사용자 경험을 안내합니다. Azure Machine Learning 작업 영역에서 프롬프트 흐름을 사용하도록 설정하고, 프롬프트 흐름을 만들고 개발하고, 흐름을 테스트 및 평가한 다음, 프로덕션에 배포하는 방법을 알아봅니다.
Prerequisites
- Azure Machine Learning 작업 영역 작업 영역의 기본 스토리지는 Blob 형식이어야 합니다.
- Azure OpenAI 계정 또는 배포와 기존 Azure OpenAI 연결. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
Note
가상 네트워크를 사용하여 프롬프트 흐름을 보호하려면 작업 영역 관리형 가상 네트워크를 사용하여 보안 프롬프트 흐름의 지침을 따르세요.
연결 설정
연결을 사용하면 LLM(큰 언어 모델) 및 기타 외부 도구(예: Azure Content Safety)와 상호 작용하는 데 필요한 비밀 키 또는 기타 중요한 자격 증명을 안전하게 저장하고 관리할 수 있습니다. 연결 리소스는 작업 영역의 모든 멤버와 공유됩니다.
Note
프롬프트 흐름의 LLM 도구는 추론 모델(예: OpenAI o1 또는 o3)을 지원하지 않습니다. 추론 모델 통합을 위해 Python 도구를 사용하여 모델 API를 직접 호출합니다. 자세한 내용은 Python 도구에서 추론 모델 호출을 참조하세요.
Azure OpenAI 연결이 이미 있는지 확인하려면 Azure Machine Learning 스튜디오 왼쪽 메뉴에서 프롬프트 흐름을 선택한 다음 프롬프트 흐름 화면에서 연결 탭을 선택합니다.
공급자가 AzureOpenAI인 연결이 이미 표시되는 경우 이 설정 프로세스의 나머지 부분을 건너뛸 수 있습니다. 이 연결에는 예제 흐름에서 LLM 노드를 실행할 수 있는 배포가 있어야 합니다. 자세한 내용은 모델 배포를 참조하세요.
Azure OpenAI 연결이 없는 경우 만들기 를 선택한 다음 드롭다운 메뉴에서 AzureOpenAI 를 선택합니다.
Azure OpenAI 연결 추가 창에서 연결 이름을 제공하고, 구독 ID 및 Azure OpenAI 계정 이름을 선택하고, 인증 모드 및 API 정보를 제공합니다.
프롬프트 흐름은 Azure OpenAI 리소스에 대한 API 키 또는 Microsoft Entra ID 인증을 지원합니다. 이 자습서에서는 인증 모드에서 API 키를 선택합니다.
API 정보를 얻으려면 Azure OpenAI 포털의 채팅 플레이그라운드 로 이동하여 Azure OpenAI 리소스 이름을 선택합니다. 키를 복사하여 Azure OpenAI 연결 추가 양식의 API 키 필드에 붙여넣고 엔드포인트를 복사하여 양식의 API 기본 필드에 붙여넣습니다.
Microsoft Entra ID 인증에 대한 자세한 내용은 Microsoft Entra ID 인증을 사용하여 Microsoft Foundry 모델에서 Azure OpenAI를 구성하는 방법을 참조하세요.
모든 필드를 채운 후 [저장 ]을 선택하여 연결을 만듭니다.
예제 흐름에서 LLM 노드를 실행하려면 먼저 연결이 배포와 연결되어야 합니다. 배포를 만들려면 모델 배포를 참조하세요.
프롬프트 흐름 만들기 및 개발
프롬프트 흐름 홈 페이지의 흐름 탭에서 만들기를 선택하여 프롬프트 흐름을 만듭니다. 새 흐름 만들기 페이지에는 흐름을 만들기 위해 복제할 수 있는 기본 제공 샘플을 만들 수 있는 흐름 유형과 흐름을 가져오는 방법이 표시됩니다.
샘플에서 복제
탐색 갤러리에서 기본 제공 샘플을 찾아보고 타일에서 세부 정보 보기를 선택하여 시나리오에 적합한지 미리 볼 수 있습니다.
이 자습서에서는 웹 분류 샘플을 사용하여 기본 사용자 경험을 안내합니다. 웹 분류는 LLM을 사용한 다중 클래스 분류를 보여 주는 흐름입니다. URL이 제공되면 흐름은 몇 번의 샷, 간단한 요약 및 분류 프롬프트를 사용하여 URL을 웹 범주로 분류합니다. 예를 들어, URL https://www.imdb.com가 주어지면, 해당 URL은 Movie로 분류됩니다.
샘플을 복제하려면 웹 분류 타일에서 복제를 선택합니다.
복제 흐름 창은 작업 영역 파일 공유 저장소 내에서 흐름을 저장할 위치를 표시합니다. 원하는 경우 폴더를 사용자 지정할 수 있습니다. 그런 다음 복제를 선택합니다.
복제된 흐름이 제작 UI에서 열립니다. 연필 편집 아이콘을 선택하여 이름, 설명 및 태그와 같은 흐름 세부 정보를 편집할 수 있습니다.
컴퓨팅 세션 시작
흐름 실행에 컴퓨팅 세션이 필요합니다. 컴퓨팅 세션은 필요한 모든 종속성 패키지를 포함하는 Docker 이미지를 포함하여 애플리케이션을 실행하는 데 필요한 컴퓨팅 리소스를 관리합니다.
흐름 작성 페이지에서 컴퓨팅 세션 시작을 선택하여 컴퓨팅 세션을 시작합니다.
흐름 작성 페이지 검사
컴퓨팅 세션을 시작하는 데 몇 분 정도 걸릴 수 있습니다. 컴퓨팅 세션이 시작되는 동안 흐름 제작 페이지의 일부를 봅니다.
페이지 왼쪽의 흐름 또는 평면 보기 는 노드를 추가 또는 제거하거나 노드를 인라인으로 편집 및 실행하거나 프롬프트를 편집하여 흐름을 작성할 수 있는 주요 작업 영역입니다. 입력 및 출력 섹션에서 입력 및 출력을 보고, 추가 또는 제거하고, 편집할 수 있습니다.
현재 웹 분류 샘플을 복제할 때 입력 및 출력이 이미 설정되었습니다. 흐름의 입력 스키마는 문자열 형식의 URL입니다
name: url; type: string. 미리 설정된 입력 값을 수동으로 같은 다른 값으로https://www.imdb.com변경할 수 있습니다.오른쪽 위에 있는 파일에 흐름의 폴더 및 파일 구조가 표시됩니다. 각 흐름 폴더에는 flow.dag.yaml 파일, 소스 코드 파일 및 시스템 폴더가 포함됩니다. 테스트, 배포 또는 공동 작업을 위해 파일을 만들거나 업로드하거나 다운로드할 수 있습니다.
오른쪽 아래 의 그래프 보기는 흐름의 모양을 시각화하기 위한 것입니다. 확대 또는 축소하거나 자동 레이아웃을 사용할 수 있습니다.
흐름 또는 평면화 보기에서 파일을 인라인으로 편집하거나 원시 파일 모드 토글을 켜고 파일에서 파일을 선택하여 편집할 탭에서 파일을 열 수 있습니다.
이 샘플의 경우 입력은 분류할 URL입니다. 흐름은 Python 스크립트를 사용하여 URL에서 텍스트 콘텐츠를 가져오고, LLM을 사용하여 텍스트 콘텐츠를 100단어로 요약하고, URL 및 요약된 텍스트 콘텐츠를 기반으로 분류합니다. 그런 다음 Python 스크립트는 LLM 출력을 사전으로 변환합니다. prepare_examples 노드는 분류 노드의 프롬프트에 몇 가지 예제 샷을 제공합니다.
LLM 노드 설정
각 LLM 노드에 대해 LLM API 키를 설정하려면 연결을 선택해야 합니다. Azure OpenAI 연결을 선택합니다.
연결 유형에 따라 드롭다운 목록에서 deployment_name 또는 모델을 선택해야 합니다. Azure OpenAI 연결의 경우 배포를 선택합니다. 배포가 없는 경우 모델 배포의 지침에 따라 Azure OpenAI 포털에서 배포를 만듭니다.
Note
Azure OpenAI 연결 대신 OpenAI 연결을 사용하는 경우 연결 필드에서 배포가 아닌 모델을 선택해야 합니다.
이 예제에서는 제공된 프롬프트 예제가 채팅 API용이므로 API 유형이 채팅인지 확인합니다. 채팅과 완료 API의 차이점에 대한 자세한 내용은 흐름 개발을 참조하세요.
두 LLM 노드인 summarize_text_content 및 classify_with_llm의 연결을 흐름에 설정합니다.
단일 노드 실행
단일 노드를 테스트하고 디버그하려면 흐름 보기에서 노드 맨 위에 있는 실행 아이콘을 선택합니다. 입력을 확장하고 흐름 입력 URL을 변경하여 다른 URL에 대한 노드 동작을 테스트할 수 있습니다.
실행 상태가 노드의 맨 위에 나타납니다. 실행이 완료되면 노드 출력 섹션에 실행 출력 이 표시됩니다.
그래프 보기에는 단일 실행 노드 상태도 표시됩니다.
fetch_text_content_from_url 실행한 다음 summarize_text_content 실행하여 흐름이 웹에서 콘텐츠를 성공적으로 가져오고 웹 콘텐츠를 요약할 수 있는지 확인합니다.
전체 흐름을 실행합니다.
전체 흐름을 테스트하고 디버그하려면 화면 맨 위에서 실행을 선택합니다. 흐름 입력 URL을 변경하여 흐름이 다른 URL에 대해 동작하는 방식을 테스트할 수 있습니다.
각 노드의 실행 상태 및 출력을 확인합니다.
흐름 출력 보기
흐름 출력을 설정하여 한 곳에서 여러 노드의 출력을 확인할 수도 있습니다. 흐름 출력은 다음을 지원합니다.
- 단일 테이블에서 대량 테스트 결과를 확인합니다.
- 평가 인터페이스 매핑을 정의합니다.
- 배포 응답 스키마를 설정합니다.
복제된 샘플에서는 범주 및 증거 흐름 출력이 이미 설정되어 있습니다.
위쪽 배너 또는 위쪽 메뉴 모음에서 출력 보기를 선택하여 자세한 입력, 출력, 흐름 실행 및 오케스트레이션 정보를 봅니다.
출력 화면의 출력 탭에서 흐름은 범주 및 증명 정보가 포함된 입력 URL을 예측합니다.
출력 화면에서 추적 탭을 선택한 다음 노드 이름 아래에서 흐름을 선택하여 오른쪽 창에 자세한 흐름 개요 정보를 표시합니다. 흐름을 확장하고 단계를 선택하여 해당 단계에 대한 자세한 정보를 확인합니다.
테스트 및 평가
단일 데이터 행을 사용하여 흐름이 성공적으로 실행된 후 큰 데이터 집합으로 잘 수행되는지 테스트합니다. 대량 테스트를 실행하고 필요에 따라 평가 흐름을 추가한 다음 결과를 확인할 수 있습니다.
먼저 테스트 데이터를 준비해야 합니다. Azure Machine Learning은 데이터에 대한 CSV, TSV 및 JSONL 파일 형식을 지원합니다.
- GitHub로 이동하여 웹 분류 샘플의 골든 데이터 세트인 data.csv다운로드합니다.
Batch 실행 및 평가 마법사를 사용하여 일괄 처리 실행 및 선택적으로 평가 메서드를 구성하고 제출합니다. 평가 메서드는 Python 또는 LLM을 사용하여 정확도 및 관련성 점수와 같은 메트릭을 계산하는 흐름이기도 합니다.
흐름 제작 페이지의 맨 위 메뉴에서 [평가 ]를 선택합니다.
기본 설정 화면에서 원하는 경우 실행 표시 이름을 변경하고 선택적 실행 설명 및 태그를 추가한 다음 다음을 선택합니다.
Batch 실행 설정 화면에서 새 데이터 추가를 선택합니다. 데이터 추가 화면에서 데이터 세트의 이름을 제공하고 찾아보기를 선택하여 다운로드한 data.csv 파일을 업로드한 다음 추가를 선택합니다.
데이터를 업로드하거나 작업 영역에 사용하려는 다른 데이터 세트가 있는 경우 드롭다운 목록에서 데이터 세트를 검색하여 선택하여 처음 5개 행을 미리 봅니다.
입력 매핑 기능은 열 이름이 일치하지 않더라도 흐름 입력을 데이터 세트의 모든 데이터 열에 매핑하도록 지원합니다.
필요에 따라 하나 이상의 평가 방법을 선택하려면 [다음 ]을 선택합니다. 평가 선택 페이지에는 기본 제공 및 사용자 지정된 평가 흐름이 표시됩니다. 기본 제공 평가 메서드에 대해 메트릭이 정의되는 방법을 확인하려면 메서드의 타일에 대한 자세한 내용을 선택할 수 있습니다.
웹 분류는 분류 시나리오이므로 평가에 사용할 분류 정확도 평가를 선택하고 다음을 선택합니다.
평가 구성 화면에서 평가 입력 매핑을 설정하여 groundtruth를 흐름 입력 ${data.category}에 매핑하고, 예측을 흐름 출력 ${run.outputs.category}에 매핑하세요.
검토 + 제출을 선택한 다음 제출을 선택하여 일괄 처리 실행 및 선택한 평가 방법을 제출합니다.
결과 확인
실행이 성공적으로 제출되면 실행 목록 보기를 선택하여 프롬프트 흐름 실행 페이지에서 실행 상태를 확인합니다. 일괄 실행을 완료하는 데 다소 시간이 걸릴 수 있습니다. 새로 고침을 선택하여 최신 상태를 로드할 수 있습니다.
일괄 처리 실행이 완료되면 실행 옆에 있는 검사를 선택한 다음 , 출력 시각화 를 선택하여 일괄 처리 실행의 결과를 확인합니다.
출력 시각화 화면에서 자식 실행 옆의 눈 모양 아이콘을 활성화하면 배치 실행 결과 테이블에 평가 결과를 추가할 수 있습니다. 총 토큰 수와 전체 정확도를 볼 수 있습니다. 출력 테이블은 입력, 흐름 출력, 시스템 메트릭 및 올바르지 않거나 잘못된 평가 결과와 같은 각 데이터 행에 대한 결과를 보여 줍니다.
출력 테이블에서 다음을 수행할 수 있습니다.
- 열 너비를 조정하고, 열을 숨기거나 표시하고, 열 순서를 변경합니다.
- 현재 페이지를 CSV 파일로 다운로드하려면 내보내기를 선택하거나 로컬로 출력을 다운로드하기 위해 실행할 수 있는 Jupyter Notebook 파일로 데이터 내보내기 스크립트를 다운로드합니다.
- 행 옆에 있는 세부 정보 보기 아이콘을 선택하여 해당 행에 대한 전체 세부 정보를 보여 주는 추적 보기를 엽니다.
정확도는 분류 작업을 평가할 수 있는 유일한 메트릭이 아닙니다. 예를 들어, 회수를 사용해 평가할 수도 있습니다. 다른 평가를 실행하려면 실행 페이지에서 출력 시각화 옆에 있는 평가를 선택하고 다른 평가 방법을 선택합니다.
엔드포인트로 배포
흐름을 빌드하고 테스트한 후에는 실시간 유추를 위해 엔드포인트를 호출할 수 있도록 엔드포인트로 배포할 수 있습니다.
엔드포인트 구성:
일괄 처리 실행 페이지에서 실행 이름 링크를 선택하고 실행 세부 정보 페이지에서 위쪽 메뉴 모음에서 배포 를 선택하여 배포 마법사를 엽니다.
기본 설정 페이지에서 엔드포인트 이름 및 배포 이름을 지정하고 가상 머신 유형 및 인스턴스 수를 선택합니다.
다음을 선택하여 고급 엔드포인트, 배포 및 출력 및 연결 설정을 구성할 수 있습니다. 이 예제에서는 기본 설정을 사용합니다.
검토 + 만들기를 선택한 다음 만들기를 선택하여 배포를 시작합니다.
엔드포인트 테스트
알림에서 엔드포인트 세부 정보 페이지로 이동하거나 스튜디오 왼쪽 탐색에서 엔드포인트 를 선택하고 실시간 엔드포인트 탭에서 엔드포인트를 선택하여 연결할 수 있습니다. 엔드포인트를 배포하는 데 몇 분 정도 걸립니다. 엔드포인트가 성공적으로 배포되면 테스트 탭에서 테스트 할 수 있습니다.
입력 상자에 테스트할 URL을 넣고 테스트를 선택합니다. 엔드포인트에서 예측한 결과가 표시됩니다.
리소스 정리
컴퓨팅 리소스 및 비용을 절약하기 위해 컴퓨팅 세션 사용을 완료한 경우 컴퓨팅 세션을 중지할 수 있습니다. 실행 중인 세션을 선택한 다음 , 컴퓨팅 세션 중지를 선택합니다.
스튜디오 왼쪽 탐색 영역에서 컴퓨팅 을 선택하고, 컴퓨팅 인스턴스 목록에서 컴퓨팅 인스턴스를 선택하고, 중지를 선택하여 컴퓨팅 인스턴스 를 중지할 수도 있습니다.
이 자습서에서 만든 리소스를 사용하지 않으려는 경우 요금이 발생하지 않도록 삭제할 수 있습니다. Azure Portal에서 리소스 그룹을 검색하고 선택합니다. 목록에서 만든 리소스가 포함된 리소스 그룹을 선택한 다음, 리소스 그룹 페이지의 위쪽 메뉴에서 리소스 그룹 삭제 를 선택합니다.