반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

'deployment'에 해당되는 글 1

  1. 2023.03.18 Openai cookbook : Azure OpenAI - How to get completions from Azure OpenAI


반응형

Azure OpenAI를 사용하려면 해당 서비스를 사용할 수 있는 권한을 Microsoft 사로부터 얻어야 합니다.

저는 공부 목적으로 필요하다고 신청했는데 거부 됐습니다.

 

 

실제 이 Azure OpenAI를 이용해서 제품을 개발하고자 한다면 한번 신청해 보세요.

 

신청 방법은 아래 글에 정리 해 놨습니다.

 

https://coronasdk.tistory.com/1304

 

Azure OpenAI 를 사용하기 위한 사전 요구 사항들 - 사용 요청 거부 됨

OpenAI CookBook 을 거의 다 공부하고 Azure OpenAI 를 공부할 차례 입니다. https://github.com/openai/openai-cookbook GitHub - openai/openai-cookbook: Examples and guides for using the OpenAI API Examples and guides for using the OpenAI API. C

coronasdk.tistory.com

 

저는 일단 실습은 못하고 Cookbook에 있는 글로 공부해 보겠습니다.

 

https://github.com/openai/openai-cookbook/blob/main/examples/azure/completions.ipynb

 

GitHub - openai/openai-cookbook: Examples and guides for using the OpenAI API

Examples and guides for using the OpenAI API. Contribute to openai/openai-cookbook development by creating an account on GitHub.

github.com

 

Azure completions example

 

In this example we'll try to go over all operations needed to get completions working using the Azure endpoints.
This example focuses on completions but also touches on some other operations that are also available using the API. This example is meant to be a quick way of showing simple operations and is not meant as a tutorial.

 

이 예제에서는 Azure 엔드포인트를 사용하여 작업을 completions 하는 데 필요한 모든 작업을 살펴보겠습니다.
이 예제는 completions 에 중점을 두지만 API를 사용하여 사용할 수 있는 다른 작업도 다룹니다. 이 예제는 간단한 작업을 보여주는 빠른 방법이며 튜토리얼이 아닙니다.

 

import openai
from openai import cli

 

Setup

For the following sections to work properly we first have to setup some things. Let's start with the api_base and api_version. To find your api_base go to https://portal.azure.com, find your resource and then under "Resource Management" -> "Keys and Endpoints" look for the "Endpoint" value.

 

다음 섹션이 제대로 작동하려면 먼저 몇 가지를 설정해야 합니다. api_base 및 api_version부터 시작하겠습니다. api_base를 찾으려면 https://portal.azure.com으로 이동하여 리소스를 찾은 다음 "리소스 관리" -> ""Keys and Endpoints""에서 "Endpoint" 값을 찾습니다.

 

==> 이 부분이 Azure OpenAI 사용 권한이 필요한 부분 입니다.

 

openai.api_version = '2022-12-01'
openai.api_base = '' # Please add your endpoint here

 

다음으로 api_type 및 api_key를 설정해야 합니다. 포털에서 키를 얻거나 Microsoft Active Directory 인증을 통해 얻을 수 있습니다. 이에 따라 api_type은 azure 또는 azure_ad입니다.

 

Setup: Portal

Let's first look at getting the key from the portal. Go to https://portal.azure.com, find your resource and then under "Resource Management" -> "Keys and Endpoints" look for one of the "Keys" values.

 

먼저 포털에서 키를 가져오는 방법을 살펴보겠습니다. https://portal.azure.com으로 이동하여 리소스를 찾은 다음 "Resource Management" -> "Keys and Endpoints"에서 "Keys" 값 중 하나를 찾습니다.

 

openai.api_type = 'azure'
openai.api_key = ''  # Please add your api key here

 

(Optional) Setup: Microsoft Active Directory Authentication

Let's now see how we can get a key via Microsoft Active Directory Authentication. Uncomment the following code if you want to use Active Directory Authentication instead of keys from the portal.

 

(선택 사항) 설정: Microsoft Active Directory 인증
이제 Microsoft Active Directory 인증을 통해 키를 얻는 방법을 살펴보겠습니다. 포털의 키 대신 Active Directory 인증을 사용하려면 다음 코드의 주석을 제거하십시오.

 

# from azure.identity import DefaultAzureCredential

# default_credential = DefaultAzureCredential()
# token = default_credential.get_token("https://cognitiveservices.azure.com/.default")

# openai.api_type = 'azure_ad'
# openai.api_key = token.token

 

Deployments

In this section we are going to create a deployment using the text-davinci-002 model that we can then use to create completions.

이 섹션에서는 completions 를 생성하는 데 사용할 수 있는 text-davinci-002 모델을 사용하여 배포를 생성할 것입니다.

 

 

Deployments: Create manually

Create a new deployment by going to your Resource in your portal under "Resource Management" -> "Model deployments". Select text-davinci-002 as the model.

 

"리소스 관리" -> "모델 배포"에서 포털의 리소스로 이동하여 새 배포를 만듭니다. text-davinci-002를 모델로 선택합니다.

 

(Optional) Deployments: Create programatically

We can also create a deployment using code:

코드를 사용하여 배포를 만들 수도 있습니다.

 

model = "text-davinci-002"

# Now let's create the deployment
print(f'Creating a new deployment with model: {model}')
result = openai.Deployment.create(model=model, scale_settings={"scale_type":"standard"})
deployment_id = result["id"]
print(f'Successfully created deployment with id: {deployment_id}')

 

(Optional) Deployments: Wait for deployment to succeed

Now let's check the status of the newly created deployment and wait till it is succeeded.

 

이제 새로 생성된 배포의 상태를 확인하고 성공할 때까지 기다리겠습니다.

 

print(f'Checking for deployment status.')
resp = openai.Deployment.retrieve(id=deployment_id)
status = resp["status"]
print(f'Deployment {deployment_id} has status: {status}')
while status not in ["succeeded", "failed"]:
    resp = openai.Deployment.retrieve(id=deployment_id)
    status = resp["status"]
    print(f'Deployment {deployment_id} has status: {status}')

 

Completions

Now let's send a sample completion to the deployment.

 

이제 배포에 샘플 완료를 보내겠습니다.

 

prompt = "The food was delicious and the waiter"
completion = openai.Completion.create(deployment_id=deployment_id,
                                     prompt=prompt, stop=".", temperature=0)
                                
print(f"{prompt}{completion['choices'][0]['text']}.")

 

(Optional) Deployments: Delete

Finally let's delete the deployment

 

print(f'Deleting deployment: {deployment_id}')
openai.Deployment.delete(sid=deployment_id)

 

이 과정을 보니까 Azure OpenAI를 사용하는 것은 그냥 OpenAI API 를 사용하기 이전에 openai.Deployment.create() API를 사용해서 Deployment 부터 하네요.

 

그리고 추가적으로 Deployment 가 완료 되는지 여부를 openai.Deployment.retrieve() 를 사용해서 체크하는 부분이 있구요.

 

이렇게 한번 Deployment가 완료 되면 다른 openai API를 사용하는 방법과 똑 같이 openai.Completion.create() API를 사용해서 prompt 를 전달하고 응답을 받습니다.

 

그리고 마지막으로 해당 Deployment를 Delete 하는 과정이 있구요.

이때는 openai.Deployment.delete() API 를 사용합니다.

 

그냥 OpenAI API 를 사용할 때는 (Azure) 를 거치지 않고) 이 Deployment 단계들은 필요 없습니다. 그냥 openai api key 만 전달 한 후 openAI API를 사용하시면 됩니다.

 

참고로 실제로 실습을 하는 모습을 보려면 아래 유투브 클립을 보시면 됩니다.

 

https://www.youtube.com/watch?v=lHw1tZhXlEo 

 

 

반응형
이전 1 다음