Microsoft Foundry의 대화형 학습(미리 보기)에 대한 주요 개념

Important

이 문서에서 미리 보기로 표시된 항목은 현재 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며 Microsoft 프로덕션 워크로드에 권장하지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

Important

대화형 학습에는 명시적 액세스 승인이 필요합니다. 미리 보기 등록 양식을 통해 액세스를 요청하고 교육 세션을 만들기 전에 승인을 기다립니다.

대화형 학습으로 Microsoft Foundry가 모델을 실행하는 동안 사용자의 프로그램이 모델의 학습 방식을 제어할 수 있습니다. 학습 드라이버라고도 하는 프로그램은 예제를 선택하고, 응답을 평가하고, 모델을 업데이트할 시기를 결정합니다.

아래 개념은 학습 루프의 부분이 어떻게 결합되는지 설명합니다. 코드 및 구현 세부 정보는 SDK 치트시트를 참조하세요.

교육 세션

학습 세션은 실험이 실행되는 동안 모델 및 현재 학습 진행률을 유지합니다. 드라이버는 응답 생성 또는 업데이트 적용과 같은 개별 작업을 요청합니다.

세션은 관리되는 작업 또는 배포와는 다른 용도로 사용됩니다.

Resource Purpose
대화형 학습 세션 프로그램은 학습 루프를 한 번에 하나씩 제어합니다.
관리형 파인튜닝 작업 서비스는 사용자가 제공한 데이터와 설정을 사용하여 미리 정의된 학습 워크플로를 실행합니다.
서비스 배포 학습된 모델은 애플리케이션의 요청에 응답합니다.

드라이버는 실험이 실행되는 동안 세션을 활성으로 유지합니다. 세션에만 저장된 진행률은 영구 기록이 아닙니다. 완료된 학습 검사점은 이를 유지합니다.

LoRA 어댑터

기본 모델은 시작할 때 사용하는 모델입니다. 가중치는 동작을 형성하는 학습된 값입니다.

LoRA(저랭크 적응) 어댑터는 기본 모델에 추가된 학습 가능한 작은 가중치 집합입니다. 학습은 모델의 모든 원래 가중치를 재학습하는 대신 어댑터를 변경합니다.

어댑터에는 실험이 학습한 내용이 포함됩니다. 호환되는 기본 모델에 종속된 상태로 유지됩니다. 해당 모델에 대한 독립 실행형 대체가 아닙니다.

구현 세부 정보는 세션 만들기를 참조하세요.

학습 계층

학습 티어는 학습을 실행하는 데 사용되는 서비스 옵션을 설명합니다. 계층은 학습이 실행되는 위치, 용량 제공 방법 및 적용되는 서비스 보장에 따라 다를 수 있습니다.

사용할 수 있는 옵션은 모델, 지역 및 프로젝트에 따라 달라집니다. 학습 계층은 학습된 모델을 제공하는 데 사용되는 배포 옵션과는 별개입니다. 학습 유형을 참조하세요.

메시지 서식 지정

선택한 모델이 이해하는 양식으로 메시지를 변환해야 합니다. 또한 이 형식은 사용자 프롬프트, 도우미 응답 및 도구에서 반환된 정보를 구분합니다.

  • 토큰은 모델이 읽고 생성하는 단어 또는 단어 부분과 같은 작은 텍스트 단위입니다.
  • 토큰 변환기는 텍스트를 토큰으로 변환하고 토큰을 다시 텍스트로 변환합니다.
  • 채팅 템플릿은 모델이 화자를 구분하고 응답이 시작되는 위치를 인식할 수 있도록 메시지를 구성합니다.
  • 렌더러는 모델의 형식으로 메시지를 준비하고 생성된 응답을 다시 읽을 수 있는 콘텐츠로 변환합니다.

모델별로 다른 메시지 형식을 사용할 수 있습니다. 일관된 서식 지정은 학습 프로그램이 학습에 기여해야 하는 상호 작용 부분을 식별하는 데 도움이 됩니다.

또한 이미지 기반 학습에는 프로젝트에 호환되는 비전 언어 모델 및 이미지 학습 지원이 필요합니다. 이미지를 이해하는 메시지 포맷터가 있다고 해서 해당 이미지에 대한 학습이 가능하다는 것을 보장하는 것은 아닙니다.

학습 루프

대화형 학습은 응답 생성, 학습 신호 계산 및 업데이트 적용을 구분합니다. 드라이버는 이러한 작업을 워크플로로 결합합니다.

Operation 의미
샘플링 모델은 어댑터의 선택한 스냅샷에서 응답을 생성합니다.
순전파 모델은 업데이트를 위해 변경 내용을 누적하지 않고도 손실을 측정하거나 학습 신호를 검사할 수 있도록 예제를 처리합니다.
기울기 계산 학습은 어댑터의 가중치가 학습 목표를 개선하기 위해 어떻게 변경될 수 있는지 계산합니다.
최적화 도구 업데이트 최적화 프로그램은 누적 그래디언트를 적용하여 어댑터를 변경합니다.
평가 드라이버는 학습과 별도로 유지되는 예제에 대한 성능을 측정합니다.

그래디언트는 어댑터에 발생할 수 있는 변화를 나타냅니다. 옵티마이저는 이러한 그래디언트를 업데이트로 변환합니다. 그래디언트를 계산해도 어댑터 자체는 변경되지 않습니다.

여러 예제 집합이 하나의 업데이트에 그래디언트를 기여할 수 있습니다. 업데이트 후 샘플링은 어댑터의 최신 학습 상태를 사용하기 위해 새로 고친 스냅샷이 필요합니다.

평가에서는 학습에 사용되지 않는 홀드아웃 예제를 사용하여 관심 있는 작업의 성능을 확인합니다. 학습 손실이 낮거나 학습 보상이 높다고 해서 그것만으로 더 나은 성능을 입증하지는 않습니다.

코드의 해당 작업은 SDK 치트시트를 참조하세요.

손실 함수 및 토큰 가중치

손실 함수는 학습이 개선하려는 목표를 나타냅니다. 예제 및 학습 신호를 어댑터에 대한 변경을 안내하는 측정값으로 바꿉니다.

학습 방법 업데이트 기준 요소
지도 학습 원하는 응답은 모델이 무엇을 생성해야 하는지 알려줍니다.
보충 학습 생성된 응답 간의 점수 및 비교는 강화해야 하는 동작을 안내합니다.

손실 함수는 워크플로의 한 부분입니다. 이는 예제를 선택하거나 응답을 평가하거나 학습이 중지되는 시기를 결정하지 않습니다.

토큰 가중치는 예제의 각 부분이 학습에 얼마나 강하게 기여하는지를 제어합니다. 마스크는 기여해서는 안 되는 부분을 제외합니다.

예를 들어 감독 학습 워크플로는 사용자의 프롬프트를 재현하는 학습 없이 도우미의 응답에서 학습할 수 있습니다.

강화 학습의 경우 학습 신호는 모델 생성 응답을 사용자나 환경이 제공한 정보와 구별합니다. 나중에 모델이 변경되더라도 각 응답을 생성한 모델의 정보를 사용합니다.

사용자 지정 목표를 사용하면 모델 출력과 드라이버의 계산을 결합할 수 있습니다. 드라이버는 여전히 학습 신호 및 모델 업데이트를 조정합니다.

데이터 구조 및 예제는 감독된 데이터 준비 및 RL 데이터 준비를 참조하세요.

학습 신호가 결합되는 방법

서로 다른 목표는 학습 신호를 함께 더하거나 평균하는 등 학습 신호를 다르게 결합할 수 있습니다. 호환되지 않는 접근 방식을 한 업데이트에 결합하면 크기가 변경되거나 서비스가 이를 거부할 수 있습니다.

동일한 업데이트에 기여하려면 학습 신호를 결합하는 일관된 방법이 필요합니다. 워크플로가 호환되지 않는 접근 방식으로 전환되기 전에 업데이트가 완료됩니다.

보상, 롤아웃 및 이점

강화 학습에서 드라이버는 모델의 동작을 평가하고 그 평가를 학습 신호로 변환합니다.

Concept 의미
롤아웃 생성된 응답 또는 도구 호출 및 관찰을 포함할 수 있는 더 긴 상호 작용입니다.
보상 롤아웃이 작업의 목표를 얼마나 잘 충족하는지 설명하는 점수입니다. 프로그램이 이 점수를 부여합니다.
이점 동일한 프롬프트에 대한 다른 응답과 같이 응답이 참조보다 더 좋거나 더 나쁜지 여부를 나타내는 비교입니다.

한 가지 방법은 동일한 프롬프트에 대한 여러 응답을 생성하고 각 보상을 그룹의 평균 보상과 비교합니다.

  • 평균 이상: 응답에는 긍정적인 장점이 있습니다.
  • 평균 이하: 응답은 불리한 점이 있습니다.
  • 동일한 보상: 모든 응답은 장점이 없으므로 이 비교는 학습 신호를 제공하지 않습니다.

수학 작업의 경우 보상은 최종 답변이 올바른지 여부를 반영할 수 있습니다. 높은 서식 점수만으로는 답이 정확하다는 것을 알 수 없습니다.

드라이버는 채점 규칙 및 비교 방법을 정의합니다. 전체 예제는 미세 조정 샘플 리포지토리를 살펴보세요.

작업 완료

각 작업을 실행하는 데 시간이 걸립니다. 요청을 수락하는 서비스는 요청된 작업을 완료하는 것과 다릅니다.

상태 그것은 당신에게 무엇을 알려줍니다
수락된 서비스가 요청을 받습니다. 작업이 여전히 대기 중이거나 실행 중일 수 있습니다.
Completed 작업이 완료되고 해당 결과는 종속 작업에서 사용할 수 있습니다.
시간 초과 드라이버의 대기 상태가 종료됩니다. 서비스 운영이 실패하거나 중단된다는 것을 증명하지는 않습니다.

순서가 중요합니다. 업데이트는 그래디언트 계산이 완료된 후에 이루어지며, 새로운 가중치에서 샘플링은 새로 고침이 완료된 후에 이루어집니다. 누락된 결과는 성공적인 결과 또는 값이 0인 측정값이 아닙니다.

구현 세부 정보는 비동기 작업 사용을 참조하세요.

Checkpoints

체크포인트은 특정 지점에서 모델 상태를 기록합니다. 학습 검사점 및 샘플러 검사점은 서로 다른 정보를 유지합니다.

Type 보존하는 것들 용도
학습 체크포인트 어댑터의 학습된 가중치 및 최적화 프로그램의 이전 업데이트 기록입니다. 호환되는 세션에서 진행 상황을 복구하거나 학습을 계속합니다.
샘플러 체크포인트 응답을 생성하기 위한 어댑터 가중치의 스냅샷입니다. 학습을 다시 시작하는 데 필요한 정보 없이 선택한 버전의 어댑터에서 샘플링합니다.

샘플러 새로 고침은 생성을 위해 최신 어댑터 상태를 준비합니다. 이는 저장된 학습 체크포인트를 대체하는 것이 아니며, 영구적인 기록을 남기는 것도 아닙니다.

드라이버는 이미 사용한 예시나 평가 시점과 같은 자체적인 진행 상황을 보존해야 합니다. 모델 체크포인트는 진행 상황을 자동으로 복원하지 않습니다.

두 검사점 유형 모두 애플리케이션 엔드포인트가 아닙니다. 애플리케이션에서 학습된 모델을 사용하는 것은 별도의 배포 작업입니다.

코드 예제는 저장 및 학습 다시 시작을 참조하세요.

세션 수명 주기

언로드하면 세션의 활성 학습 리소스가 해제됩니다. 세션 및 저장된 아티팩트를 삭제하는 것과는 목적이 다릅니다.

조치 의미
검열하다 세션의 상태를 확인하고 저장된 체크포인트를 식별합니다.
언로드 활성 세션의 컴퓨팅 리소스를 해제합니다. 검사점 삭제가 아닙니다.
Delete 세션을 제거하세요. 이 경우 검사점 및 샘플링 리소스도 제거할 수 있습니다.

언로드 요청을 제출해도 정리가 완료되었는지는 확인되지 않습니다. 드라이버의 네트워크 연결을 닫는 것도 세션 언로드와 동일하지 않습니다.

완료된 학습 검사점은 세션이 종료되기 전에 진행 상황을 보존합니다. 세션을 삭제하면 저장된 상태가 제거될 수 있으므로 삭제는 컴퓨팅 리소스 해제와 같은 의미가 아닙니다.

구현 세부 정보는 리소스 닫기를 참조하세요.

개념을 사용할 준비가 되면 다음 리소스를 살펴봅니다.