Share via


Azure AI Studio를 사용하여 Meta Llama 모델을 배포하는 방법

참고 항목

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

이 문서에서는 Meta Llama 모델에 대해 알아봅니다. 또한 Azure AI Studio를 사용하여 종량제 청구 서비스 또는 실시간 엔드포인트의 호스트된 인프라를 통해 이 집합의 모델을 배포하는 방법도 알아봅니다.

Important

현재 Azure AI 모델 카탈로그(Microsoft 기술 커뮤니티 블로그) 및 Meta 공지 사항 블로그에서 사용할 수 있는 Meta Llama 3 모델 공지 사항에 대해 자세히 알아봅니다.

Meta Llama 3 모델 및 도구는 80억에서 700억 개의 매개 변수 범위에 이르는 미리 학습되고 미세 조정된 생성 텍스트 모델 컬렉션입니다. 모델 제품군에는 Meta-Llama-3-8B-Instruct 및 Meta-Llama-3-70B-Instruct라고 하는 RLHF(인간 피드백 기반 보충 학습)를 통해 대화 사용 사례에 최적화된 미세 조정 버전도 포함되어 있습니다. LangChain, LiteLLM, OpenAIAzure API와의 통합을 살펴보려면 다음 GitHub 샘플을 참조하세요.

종량제 방식으로 Meta Llama 모델 배포

모델 카탈로그의 특정 모델은 종량제 서비스로 배포할 수 있으므로 구독에서 호스트하지 않고 API로 사용하는 방법을 제공하면서 조직에 필요한 엔터프라이즈 보안 및 규정 준수를 유지할 수 있습니다. 이 배포 옵션에는 구독으로부터의 할당량이 필요하지 않습니다.

Meta Llama 3 모델은 Microsoft Azure Marketplace를 통해 종량제 서비스로 배포되며 더 많은 사용 약관과 가격 책정이 추가될 수 있습니다.

Azure Marketplace 모델 제품

종량제 서비스로 배포된 경우 다음 모델을 Llama 3용 Azure Marketplace에서 사용할 수 있습니다.

다른 모델을 배포해야 하는 경우 대신 실시간 엔드포인트에 배포하세요.

필수 조건

  • 유효한 결제 방법을 사용하는 Azure 구독입니다. 무료 또는 평가판 Azure 구독은 작동하지 않습니다. Azure 구독이 없으면 유료 Azure 계정을 만들어 시작합니다.

  • Azure AI 허브 리소스

    Important

    Meta Llama 3 모델의 경우 종량제 모델 배포 서비스는 미국 동부 2스웨덴 중부 지역에서 생성된 AI 허브에서만 사용할 수 있습니다.

  • Azure AI 스튜디오의 Azure AI 프로젝트.

  • Azure RBAC(Azure 역할 기반 액세스 제어)는 Azure AI Studio의 작업에 대한 액세스 권한을 부여하는 데 사용됩니다. 이 문서의 단계를 수행하려면 사용자 계정에 Azure 구독에 대한 소유자 또는 기여자 역할이 할당되어야 합니다. 또는 계정에 다음 권한이 있는 사용자 지정 역할을 할당할 수 있습니다.

    • Azure 구독에서 Azure AI 프로젝트를 Azure Marketplace 제품에 등록하려면(각 Azure AI 프로젝트에 대해 제품별로 한 번씩) 다음을 수행합니다.

      • Microsoft.MarketplaceOrdering/agreements/offers/plans/read
      • Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
      • Microsoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/read
      • Microsoft.Marketplace/offerTypes/publishers/offers/plans/agreements/read
      • Microsoft.SaaS/register/action
    • 리소스 그룹에서 SaaS 리소스를 만들고 사용하려면 다음을 수행합니다.

      • Microsoft.SaaS/resources/read
      • Microsoft.SaaS/resources/write
    • Azure AI 프로젝트에서 엔드포인트를 배포하려면 다음을 수행합니다(Azure AI 개발자 역할에는 이미 이러한 권한이 포함되어 있음).

      • Microsoft.MachineLearningServices/workspaces/marketplaceModelSubscriptions/*
      • Microsoft.MachineLearningServices/workspaces/serverlessEndpoints/*

    권한에 대한 자세한 내용은 Azure AI Studio의 역할 기반 액세스 제어를 참조하세요.

새 배포 만들기

배포를 만들려면 다음을 수행합니다.

  1. Azure AI 스튜디오에 로그인합니다.

  2. Azure AI Studio 모델 카탈로그에서 배포하려는 모델을 선택합니다.

    또는 AI Studio의 프로젝트에서 시작하여 배포를 시작할 수 있습니다. 프로젝트의 빌드 탭에서 배포>+ 만들기를 선택합니다.

  3. 모델의 세부 정보 페이지에서 배포를 선택한 다음 종량제를 선택합니다.

  4. 모델을 배포하려는 프로젝트를 선택합니다. 종량제 모델 배포 제품을 사용하려면 작업 영역이 미국 동부 2 또는 스웨덴 중부 지역에 속해야 합니다.

  5. 배포 마법사에서 Azure Marketplace 사용 약관에 대한 링크를 선택하여 사용 약관에 대해 자세히 알아봅니다. Marketplace 제품 세부 정보 탭을 선택하여 선택한 모델의 가격 책정에 대해 알아볼 수도 있습니다.

  6. 프로젝트에 모델을 처음 배포하는 경우 Azure Marketplace에서 특정 제공 사항(예: Meta-Llama-3-70B)에 대한 프로젝트를 구독해야 합니다. 이 단계를 수행하려면 계정에 필수 구성 요소에 나열된 Azure 구독 권한 및 리소스 그룹 권한이 있어야 합니다. 각 프로젝트에는 지출을 제어하고 모니터링할 수 있는 특정 Azure Marketplace 제공 사항에 대한 자체 구독이 있습니다. 구독 및 배포를 선택합니다.

    참고 항목

    특정 Azure Marketplace 제품(이 경우 Meta-Llama-3-70B)에 프로젝트를 등록하려면 프로젝트를 만든 구독 수준에서 계정에 기여자 또는 소유자 액세스 권한이 있어야 합니다. 또는 사용자 계정에 필수 조건에 나열된 Azure 구독 권한 및 리소스 그룹 권한이 있는 사용자 지정 역할을 할당할 수 있습니다.

  7. 특정 Azure Marketplace 제공 사항에 대한 프로젝트를 등록하고 나면 이후에 동일 프로젝트에서 동일 제품을 배포할 때 다시 구독할 필요가 없습니다. 따라서 후속 배포에 대한 구독 수준 권한이 필요하지 않습니다. 이 시나리오가 적용되는 경우 계속 배포를 선택합니다.

  8. 배포에 이름을 지정합니다. 이 이름은 배포 API URL의 일부가 됩니다. 이 URL은 각 Azure 지역에서 고유해야 합니다.

  9. 배포를 선택합니다. 배포가 준비되고 배포 페이지로 리디렉션될 때까지 기다립니다.

  10. 모델과 상호 작용을 시작하려면 플레이그라운드에서 열기를 선택합니다.

  11. 배포 페이지로 돌아가서 배포를 선택하고 엔드포인트의 대상 URL과 배포를 호출하고 완료를 생성하는 데 사용할 수 있는 비밀 를 기록해 둘 수 있습니다.

  12. 빌드 탭으로 이동하고 구성 요소 섹션에서 배포를 선택하면 언제든지 엔드포인트의 세부 정보, URL 및 액세스 키를 찾을 수 있습니다.

종량제로 배포된 Meta Llama 모델 청구에 대한 자세한 내용은 서비스로 배포된 Llama 3 모델의 비용 및 할당량 고려 사항을 참조하세요.

Meta Llama 모델을 서비스로 사용

서비스로 배포된 모델은 배포한 모델 유형에 따라 채팅 또는 완료 API를 사용하여 사용할 수 있습니다.

  1. 빌드 페이지에서 배포를 선택합니다.

  2. 만든 배포를 찾아 선택합니다.

  3. 플레이그라운드에서 열기를 선택합니다.

  4. 코드 보기를 선택하고 엔드포인트 URL과 값을 복사합니다.

  5. 배포한 모델 유형에 따라 API 요청을 만듭니다.

    • Meta-Llama-3-8B와 같은 완료 모델의 경우 /v1/completions API를 사용합니다.
    • Meta-Llama-3-8B-Instruct과 같은 채팅 모델의 경우 /v1/chat/completions API를 사용합니다.

    API 사용에 대한 자세한 내용은 참조 섹션을 참조하세요.

서비스로 배포된 Meta Llama 모델 참조

완료 API

메서드 POST를 사용하여 요청을 /v1/completions 경로로 보냅니다.

요청

POST /v1/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json

요청 스키마

페이로드는 다음 매개 변수를 포함하는 JSON 형식 문자열입니다.

Type 기본값 설명
prompt string 기본값은 없습니다. 이 값을 지정해야 합니다. 모델에 보낼 프롬프트입니다.
stream boolean False 스트리밍을 사용하면 사용할 수 있을 때마다 생성된 토큰을 데이터 전용 서버 전송 이벤트로 보낼 수 있습니다.
max_tokens integer 16 완료 시 생성할 최대 토큰 수입니다. 프롬프트의 토큰 수에 max_tokens를 더한 값은 모델의 컨텍스트 길이를 초과할 수 없습니다.
top_p float 1 핵 샘플링이라고 하는 온도 샘플링의 대안으로, 모델은 확률 질량이 top_p인 토큰의 결과를 고려합니다. 따라서 0.1은 상위 10% 확률 질량을 구성하는 토큰만 고려됨을 의미합니다. 일반적으로 이를 변경하거나 top_p 또는 temperature 중 하나만 변경하는 것이 좋습니다.
temperature float 1 사용할 샘플링 온도입니다(0에서 2 사이). 값이 높을수록 모델이 토큰의 분산을 보다 넓게 샘플링함을 의미합니다. 0은 탐욕적 샘플링을 의미합니다. 이를 변경하거나 top_p를 변경하는 것이 좋지만 둘 다 변경하는 것은 바람직하지 않습니다.
n integer 1 각 프롬프트에 대해 생성할 완료 수입니다.
참고: 이 매개 변수는 많은 완료를 생성하므로 토큰 할당량을 빠르게 소모할 수 있습니다.
stop array null API가 추가 토큰 생성을 중지하는 단어를 포함하는 문자열 또는 문자열 목록입니다. 반환된 텍스트에는 중지 시퀀스가 포함되지 않습니다.
best_of integer 1 서버 쪽에서 best_of 완료를 생성하고 "최상"(토큰당 로그 확률이 가장 낮은 것)을 반환합니다. 결과를 스트리밍할 수 없습니다. n과 함께 사용하면 best_of는 후보 완료 횟수를 제어하고 n은 반환할 횟수를 지정합니다. best_ofn보다 커야 합니다.
참고: 이 매개 변수는 많은 완료를 생성하므로 토큰 할당량을 빠르게 소모할 수 있습니다.
logprobs integer null logprobs에 가장 가능성이 높은 토큰과 선택한 토큰에 대한 로그 확률을 포함함을 가리키는 숫자입니다. 예를 들어 logprobs가 10이면 API는 가장 가능성이 높은 10개의 토큰을 반환합니다. API는 항상 샘플링된 토큰의 logprob를 반환하므로 응답에 최대 logprobs+1개 요소가 있을 수 있습니다.
presence_penalty float null -2.0~2.0 사이의 숫자 양수 값은 지금까지 텍스트에 나타나는지 여부에 따라 새 토큰에 페널티를 부여하여 모델이 새 항목에 대해 이야기할 가능성을 높입니다.
ignore_eos boolean True EOS 토큰을 무시하고 EOS 토큰 생성 후 토큰을 계속 생성할지 여부입니다.
use_beam_search boolean False 샘플링 대신 빔 검색을 사용할지 여부입니다. 이 경우 best_of1보다 커야 하며 temperature0이어야 합니다.
stop_token_ids array null 토큰이 생성될 때 추가 토큰 생성을 중지하는 토큰에 대한 ID 목록입니다. 중지 토큰이 특수 토큰이 아닌 한 반환된 출력에는 중지 토큰이 포함됩니다.
skip_special_tokens boolean null 출력에서 특수 토큰을 건너뛸지 여부입니다.

예시

본문

{
    "prompt": "What's the distance to the moon?",
    "temperature": 0.8,
    "max_tokens": 512
}

응답 스키마

응답 페이로드는 다음 필드가 있는 사전입니다.

형식 설명
id string 완료의 고유 식별자입니다.
choices array 입력 프롬프트에 대해 생성된 모델의 완료 선택 목록입니다.
created integer 완료가 만들어진 시점의 Unix 타임스탬프(초)입니다.
model string 완료에 사용되는 model_id입니다.
object string 항상 text_completion인 개체 형식입니다.
usage object 완료 요청의 사용 통계입니다.

스트리밍 모드에서 각 응답 청크마다 finish_reason은 페이로드 [DONE]에 의해 종료되는 마지막 청크를 제외하고 항상 null입니다.

choices 개체는 다음 필드가 있는 사전입니다.

형식 설명
index integer 선택 인덱스입니다. best_of> 1이면 이 배열의 인덱스가 순서가 맞지 않을 수 있으며 0~n-1이 아닐 수 있습니다.
text string 완료 결과입니다.
finish_reason string 모델이 토큰 생성을 중지한 이유는 다음과 같습니다.
- stop: 모델이 자연 중지 지점 또는 제공된 중지 시퀀스에 도달했습니다.
- length: 최대 토큰 수에 도달한 경우입니다.
- content_filter: RAI가 조정되고 CMP가 강제로 조정하는 경우입니다.
- content_filter_error: 조정 중에 오류가 발생했으며 응답을 결정할 수 없습니다.
- null: API 응답이 아직 진행 중이거나 완료되지 않았습니다.
logprobs object 출력 텍스트에서 생성된 토큰의 로그 확률입니다.

usage 개체는 다음 필드가 있는 사전입니다.

Type
prompt_tokens integer 프롬프트에 있는 토큰 수입니다.
completion_tokens integer 완료에서 생성된 토큰 수입니다.
total_tokens integer 총 토큰입니다.

logprobs 개체는 다음 필드가 있는 사전입니다.

Type
text_offsets integersarray 완료 출력에서 각 토큰의 위치 또는 인덱스입니다.
token_logprobs floatarray top_logprobs 배열의 사전에서 선택한 logprobs입니다.
tokens stringarray 선택한 토큰입니다.
top_logprobs dictionaryarray 사전의 배열입니다. 각 사전에서 키는 토큰이고 값은 prob입니다.

예시

{
    "id": "12345678-1234-1234-1234-abcdefghijkl",
    "object": "text_completion",
    "created": 217877,
    "choices": [
        {
            "index": 0,
            "text": "The Moon is an average of 238,855 miles away from Earth, which is about 30 Earths away.",
            "logprobs": null,
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 7,
        "total_tokens": 23,
        "completion_tokens": 16
    }
}

채팅 API

메서드 POST를 사용하여 요청을 /v1/chat/completions 경로로 보냅니다.

요청

POST /v1/chat/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json

요청 스키마

페이로드는 다음 매개 변수를 포함하는 JSON 형식 문자열입니다.

Type 기본값 설명
messages string 기본값은 없습니다. 이 값을 지정해야 합니다. 모델을 프롬프트하는 데 사용할 메시지 또는 메시지의 기록입니다.
stream boolean False 스트리밍을 사용하면 사용할 수 있을 때마다 생성된 토큰을 데이터 전용 서버 전송 이벤트로 보낼 수 있습니다.
max_tokens integer 16 완료 시 생성할 최대 토큰 수입니다. 프롬프트의 토큰 수에 max_tokens를 더한 값은 모델의 컨텍스트 길이를 초과할 수 없습니다.
top_p float 1 핵 샘플링이라고 하는 온도 샘플링의 대안으로, 모델은 확률 질량이 top_p인 토큰의 결과를 고려합니다. 따라서 0.1은 상위 10% 확률 질량을 구성하는 토큰만 고려됨을 의미합니다. 일반적으로 이를 변경하거나 top_p 또는 temperature 중 하나만 변경하는 것이 좋습니다.
temperature float 1 사용할 샘플링 온도입니다(0에서 2 사이). 값이 높을수록 모델이 토큰의 분산을 보다 넓게 샘플링함을 의미합니다. 0은 탐욕적 샘플링을 의미합니다. 이를 변경하거나 top_p를 변경하는 것이 좋지만 둘 다 변경하는 것은 바람직하지 않습니다.
n integer 1 각 프롬프트에 대해 생성할 완료 수입니다.
참고: 이 매개 변수는 많은 완료를 생성하므로 토큰 할당량을 빠르게 소모할 수 있습니다.
stop array null API가 추가 토큰 생성을 중지하는 단어를 포함하는 문자열 또는 문자열 목록입니다. 반환된 텍스트에는 중지 시퀀스가 포함되지 않습니다.
best_of integer 1 서버 쪽에서 best_of 완료를 생성하고 "최상"(토큰당 로그 확률이 가장 낮은 것)을 반환합니다. 결과를 스트리밍할 수 없습니다. n과 함께 사용하면 best_of는 후보 완료 횟수를 제어하고 n은 반환할 횟수를 지정합니다. best_ofn보다 커야 합니다.
참고: 이 매개 변수는 많은 완료를 생성하므로 토큰 할당량을 빠르게 소모할 수 있습니다.
logprobs integer null logprobs에 가장 가능성이 높은 토큰과 선택한 토큰에 대한 로그 확률을 포함함을 가리키는 숫자입니다. 예를 들어 logprobs가 10이면 API는 가장 가능성이 높은 10개의 토큰을 반환합니다. API는 항상 샘플링된 토큰의 logprob를 반환하므로 응답에 최대 logprobs+1개의 요소가 있을 수 있습니다.
presence_penalty float null -2.0~2.0 사이의 숫자 양수 값은 지금까지 텍스트에 나타나는지 여부에 따라 새 토큰에 페널티를 부여하여 모델이 새 항목에 대해 이야기할 가능성을 높입니다.
ignore_eos boolean True EOS 토큰을 무시하고 EOS 토큰 생성 후 토큰을 계속 생성할지 여부입니다.
use_beam_search boolean False 샘플링 대신 빔 검색을 사용할지 여부입니다. 이 경우 best_of1보다 커야 하며 temperature0이어야 합니다.
stop_token_ids array null 토큰이 생성될 때 추가 토큰 생성을 중지하는 토큰에 대한 ID 목록입니다. 중지 토큰이 특수 토큰이 아닌 한 반환된 출력에는 중지 토큰이 포함됩니다.
skip_special_tokens boolean null 출력에서 특수 토큰을 건너뛸지 여부입니다.

messages 개체에는 다음 필드가 있습니다.

Type
content string 메시지의 내용입니다. 모든 메시지에 콘텐츠가 필요합니다.
role string 메시지 작성자의 역할입니다. system, user 또는 assistant 중 하나입니다.

예시

본문

{
    "messages":
    [
        { 
        "role": "system", 
        "content": "You are a helpful assistant that translates English to Italian."},
        {
        "role": "user", 
        "content": "Translate the following sentence from English to Italian: I love programming."
        }
    ],
    "temperature": 0.8,
    "max_tokens": 512,
}

응답 스키마

응답 페이로드는 다음 필드가 있는 사전입니다.

형식 설명
id string 완료의 고유 식별자입니다.
choices array 입력 메시지를 위해 모델이 생성한 완료 선택 목록입니다.
created integer 완료가 만들어진 시점의 Unix 타임스탬프(초)입니다.
model string 완료에 사용되는 model_id입니다.
object string 항상 chat.completion인 개체 형식입니다.
usage object 완료 요청의 사용 통계입니다.

스트리밍 모드에서 각 응답 청크마다 finish_reason은 페이로드 [DONE]에 의해 종료되는 마지막 청크를 제외하고 항상 null입니다. 각 choices 개체에서 messages 키는 delta에 의해 변경됩니다.

choices 개체는 다음 필드가 있는 사전입니다.

형식 설명
index integer 선택 인덱스입니다. best_of> 1이면 이 배열의 인덱스가 순서가 맞지 않을 수 있으며 0~n-1이 아닐 수 있습니다.
messages 또는 delta string messages 개체의 채팅 완료 결과입니다. 스트리밍 모드를 사용하는 경우 delta 키가 사용됩니다.
finish_reason string 모델이 토큰 생성을 중지한 이유는 다음과 같습니다.
- stop: 모델이 자연 중지 지점 또는 제공된 중지 시퀀스에 도달했습니다.
- length: 최대 토큰 수에 도달한 경우입니다.
- content_filter: RAI가 조정되고 CMP가 강제로 조정하는 경우입니다.
- content_filter_error: 조정 중에 오류가 발생했으며 응답을 결정할 수 없습니다.
- null: API 응답이 아직 진행 중이거나 완료되지 않았습니다.
logprobs object 출력 텍스트에서 생성된 토큰의 로그 확률입니다.

usage 개체는 다음 필드가 있는 사전입니다.

Type
prompt_tokens integer 프롬프트에 있는 토큰 수입니다.
completion_tokens integer 완료에서 생성된 토큰 수입니다.
total_tokens integer 총 토큰입니다.

logprobs 개체는 다음 필드가 있는 사전입니다.

Type
text_offsets integersarray 완료 출력에서 각 토큰의 위치 또는 인덱스입니다.
token_logprobs floatarray top_logprobs 배열의 사전에서 선택한 logprobs입니다.
tokens stringarray 선택한 토큰입니다.
top_logprobs dictionaryarray 사전의 배열입니다. 각 사전에서 키는 토큰이고 값은 prob입니다.

예시

다음은 응답의 예입니다.

{
    "id": "12345678-1234-1234-1234-abcdefghijkl",
    "object": "chat.completion",
    "created": 2012359,
    "model": "",
    "choices": [
        {
            "index": 0,
            "finish_reason": "stop",
            "message": {
                "role": "assistant",
                "content": "Sure, I\'d be happy to help! The translation of ""I love programming"" from English to Italian is:\n\n""Amo la programmazione.""\n\nHere\'s a breakdown of the translation:\n\n* ""I love"" in English becomes ""Amo"" in Italian.\n* ""programming"" in English becomes ""la programmazione"" in Italian.\n\nI hope that helps! Let me know if you have any other sentences you\'d like me to translate."
            }
        }
    ],
    "usage": {
        "prompt_tokens": 10,
        "total_tokens": 40,
        "completion_tokens": 30
    }
}

Meta Llama 모델을 실시간 엔드포인트에 배포

종량제 관리되는 서비스를 사용하여 배포하는 것 외에도 Meta Llama 모델을 AI Studio의 실시간 엔드포인트에 배포할 수도 있습니다. 실시간 엔드포인트에 배포되는 경우 모델을 실행하는 데 사용되는 가상 머신과 예상 부하를 처리하는 인스턴스 수를 포함하여 모델을 실행하는 인프라에 대한 모든 세부 정보를 선택할 수 있습니다. 실시간 엔드포인트에 배포된 모델은 구독의 할당량을 사용합니다. Llama 패밀리의 모든 모델은 실시간 엔드포인트에 배포할 수 있습니다.

사용자는 Azure StudioPython SDK에서 새 배포를 만들 수 있습니다.

Azure Studio에서 새 배포 만들기

Azure AI Studio의 실시간 엔드포인트에 Meta-Llama-3-8B-Instruct와 같은 모델을 배포하려면 다음 단계를 따릅니다.

  1. Azure AI Studio 모델 카탈로그에서 배포하려는 모델을 선택합니다.

    또는 AI Studio의 프로젝트에서 시작하여 배포를 시작할 수 있습니다. 프로젝트의 빌드 탭에서 배포 옵션을 선택한 다음 + 만들기를 선택합니다.

  2. 모델의 세부 정보 페이지에서 배포를 선택한 다음 실시간 엔드포인트를 선택합니다.

  3. Azure AI 콘텐츠 보안을 사용하여 배포(미리 보기) 페이지에서 UI를 사용하여 모델을 계속 배포할 수 있도록 Azure AI 콘텐츠 보안 건너뛰기를 선택합니다.

    일반적으로 Meta Llama 모델 배포에 Azure AI 콘텐츠 보안 사용(권장)을 선택하는 것이 좋습니다. 이 배포 옵션은 현재 Python SDK를 사용해야만 지원되며 Notebook에서 발생합니다.

  4. 계속을 선택합니다.

  5. 배포를 만들 프로젝트를 선택합니다.

    선택한 프로젝트에 사용할 수 있는 할당량이 충분하지 않은 경우 공유 할당량을 사용하려 하며 이 엔드포인트가 168시간 후에 삭제됨을 확인합니다 옵션을 사용할 수 있습니다.

  6. 가상 머신과 배포에 할당하려는 인스턴스 수를 선택합니다.

  7. 이 배포를 새 엔드포인트의 일부로 만들 것인지, 기존 엔드포인트의 일부로 만들 것인지 선택합니다. 엔드포인트는 각 배포의 리소스 구성을 배타적인 상태로 유지하면서 여러 배포를 호스트할 수 있습니다. 동일한 엔드포인트 아래의 배포는 엔드포인트 URI 및 해당 액세스 키를 공유합니다.

  8. 유추 데이터 수집(미리 보기)를 사용할지 여부를 나타냅니다.

  9. 배포를 선택합니다. 잠시 후에 엔드포인트의 세부 정보 페이지가 열립니다.

  10. 엔드포인트 만들기 및 배포가 완료될 때까지 기다립니다. 이 단계는 몇 분 정도 걸릴 수 있습니다.

  11. 애플리케이션에서 배포된 모델을 사용하는 데 사용할 수 있는 코드 샘플을 가져오려면 배포의 사용 탭을 선택합니다.

Python SDK에서 새 배포 만들기

Azure AI Generative SDK를 사용하여 실시간 엔드포인트에 Meta-Llama-3-7B-Instruct와 같은 개방형 모델을 배포하려면 다음 단계를 따릅니다.

  1. 필수 라이브러리 가져오기

    # Import the libraries
    from azure.ai.resources.client import AIClient
    from azure.ai.resources.entities.deployment import Deployment
    from azure.ai.resources.entities.models import PromptflowModel
    from azure.identity import DefaultAzureCredential
    
  2. 자격 증명을 제공 합니다. 자격 증명은 Azure AI Studio의 프로젝트 설정에서 찾을 수 있습니다. 왼쪽 탐색 UI의 아래쪽에 있는 톱니바퀴 아이콘을 선택하여 설정으로 이동할 수 있습니다.

    credential = DefaultAzureCredential()
    client = AIClient(
        credential=credential,
        subscription_id="<xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>",
        resource_group_name="<YOUR_RESOURCE_GROUP_NAME>",
        project_name="<YOUR_PROJECT_NAME>",
    )
    
  3. 모델 및 배포를 정의합니다. The model_id는 Azure AI 스튜디오 모델 카탈로그의 모델 카드에서 찾을 수 있습니다.

    model_id = "azureml://registries/azureml/models/Llama-3-8b-chat/versions/12"
    deployment_name = "my-llama38bchat-deployment"
    
    deployment = Deployment(
        name=deployment_name,
        model=model_id,
    )
    
  4. 모델을 배포합니다.

    client.deployments.create_or_update(deployment)
    

실시간 엔드포인트에 배포된 Meta Llama 3 모델 사용

실시간 엔드포인트에 배포된 Llama 모델을 호출하는 방법에 대한 참조는 Azure AI Studio 모델 카탈로그의 모델 카드를 참조하세요. 각 모델의 카드에는 모델에 대한 설명, 코드 기반 유추 샘플, 미세 조정 및 모델 평가가 포함된 개요 페이지가 있습니다.

비용 및 할당량

서비스로 배포되는 Llama 모델의 비용 및 할당량 고려 사항

서비스로 배포되는 Llama 모델은 Meta가 Azure Marketplace를 통해 제공하며, 사용을 위해 Azure AI 스튜디오와 통합됩니다. 모델을 배포하거나 미세 조정하는 경우 Azure Marketplace 가격 책정을 찾을 수 있습니다.

프로젝트가 Azure Marketplace에서 지정된 제품을 구독할 때마다 사용에 연결된 비용을 추적하기 위해 새 리소스가 만들어집니다. 유추 및 미세 조정과 관련된 비용을 추적하는 데는 동일한 리소스가 사용되지만 여러 미터를 사용하여 각 시나리오를 독립적으로 추적할 수 있습니다.

비용을 추적하는 방법에 대한 자세한 내용은 Azure Marketplace를 통해 제공되는 모델에 대한 비용 모니터링을 참조하세요.

다양한 모델 제품 및 관련 미터에 해당하는 다양한 리소스를 보여 주는 스크린샷.

할당량은 배포당 관리됩니다. 각 배포에는 분당 200,000개의 토큰과 분당 1,000개의 API 요청의 속도 제한이 있습니다. 그러나 현재는 프로젝트별 모델당 하나의 배포로 제한됩니다. 현재 속도 제한이 시나리오에 충분하지 않은 경우 Microsoft Azure 지원에 문의하세요.

실시간 엔드포인트로 배포되는 Llama 모델의 비용 및 할당량 고려 사항

실시간 엔드포인트를 사용하는 Llama 모델의 배포 및 유추의 경우 지역별로 구독에 할당된 VM(가상 머신) 코어 할당량을 사용합니다. Azure AI 스튜디오에 등록하면 해당 지역에서 사용할 수 있는 여러 VM 제품군에 대한 기본 VM 할당량이 제공됩니다. 할당량 한도에 도달할 때까지 계속해서 배포를 만들 수 있습니다. 이 제한에 도달하면 할당량 증가를 요청할 수 있습니다.

콘텐츠 필터링

종량제 서비스로 배포되는 모델은 Azure AI 콘텐츠 보안으로 보호됩니다. 실시간 엔드포인트에 배포되는 경우 이 기능을 옵트아웃할 수 있습니다. Azure AI 콘텐츠 보안을 사용하도록 설정한 경우 유해한 콘텐츠의 출력을 탐지하고 방지하기 위한 분류 모델의 앙상블을 통해 프롬프트와 완료가 모두 실행됩니다. 콘텐츠 필터링 시스템은 입력 프롬프트와 출력 완료 모두에서 잠재적으로 유해한 콘텐츠의 특정 범주를 탐지하고 조치를 취합니다. Azure AI 콘텐츠 보안에 대해 자세히 알아보기.

다음 단계