Openai cookbook : Azure OpenAI - How to get embeddings from Azure OpenAI
2023. 3. 19. 03:17 |
Azure OpenAI를 사용하려면 해당 서비스를 사용할 수 있는 권한을 Microsoft 사로부터 얻어야 합니다.
저는 공부 목적으로 필요하다고 신청했는데 거부 됐습니다.
실제 이 Azure OpenAI를 이용해서 제품을 개발하고자 한다면 한번 신청해 보세요.
신청 방법은 아래 글에 정리 해 놨습니다.
https://coronasdk.tistory.com/1304
저는 일단 실습은 못하고 Cookbook에 있는 글로 공부해 보겠습니다.
https://github.com/openai/openai-cookbook/blob/main/examples/azure/embeddings.ipynb
참고로 Azure OpenAI Embeddings + Search 관련 유투브 클립입니다.
https://www.youtube.com/watch?v=ocxq84ocYi0
아래부터 Cookbook 내용입니다.
Azure embeddings example
In this example we'll try to go over all operations for embeddings that can be done using the Azure endpoints.
This example focuses on embeddings but also touches 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 endpoints를 사용하여 수행할 수 있는 embeddings 에 대한 작업을 살펴보겠습니다.
이 예제는 임베딩에 중점을 두지만 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으로 이동하여 리소스를 찾은 다음 "Resource Management" -> "Keys and Endpoints" 에서 "Endpoint" 값을 찾습니다.
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 that we can use to create embeddings.
이 섹션에서는 embeddings을 만드는 데 사용할 수 있는 deployment 를 만들 것입니다.
Deployments: Create manually
Let's create a deployment using the text-similarity-curie-001 model. Create a new deployment by going to your Resource in your portal under "Resource Management" -> "Model deployments".
text-similarity-curie-001 모델을 사용하여 배포를 생성해 보겠습니다. "Resource Management" -> "Model deployments"에서 포털의 리소스로 이동하여 새 deployment를 만듭니다.
(Optional) Deployments: Create programatically
We can also create a deployment using code:
코드를 사용하여 deployment 를 만들 수도 있습니다.
model = "text-similarity-curie-001"
# 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"]
(Optional) Deployments: Retrieving
Now let's check the status of the newly created deployment
이제 새로 생성된 배포의 상태를 확인하겠습니다.
print(f'Checking for deployment status.')
resp = openai.Deployment.retrieve(id=deployment_id)
status = resp["status"]
print(f'Deployment {deployment_id} is with status: {status}')
Deployments: Listing
Now because creating a new deployment takes a long time, let's look in the subscription for an already finished deployment that succeeded.
이제 새 deployment 를 만드는 데 시간이 오래 걸리므로 이미 완료된 deployment 에 대한 subscription 을 살펴보겠습니다.
print('While deployment running, selecting a completed one that supports embeddings.')
deployment_id = None
result = openai.Deployment.list()
for deployment in result.data:
if deployment["status"] != "succeeded":
continue
model = openai.Model.retrieve(deployment["model"])
if model["capabilities"]["embeddings"] != True:
continue
deployment_id = deployment["id"]
break
if not deployment_id:
print('No deployment with status: succeeded found.')
else:
print(f'Found a succeeded deployment that supports embeddings with id: {deployment_id}.')
Embeddings
Now let's send a sample embedding to the deployment.
이제 배포에 샘플 임베딩을 보내겠습니다.
embeddings = openai.Embedding.create(deployment_id=deployment_id,
input="The food was delicious and the waiter...")
print(embeddings)
(Optional) Deployments: Delete
Finally let's delete the deployment
마지막으로 deployment를 삭제하겠습니다.
'Open AI > CookBook' 카테고리의 다른 글
Openai cookbook : Azure OpenAI - How to fine-tune GPT-3 with Azure OpenAI (0) | 2023.03.19 |
---|---|
Openai cookbook : Azure OpenAI - How to get completions from Azure OpenAI (0) | 2023.03.18 |
Azure OpenAI 를 사용하기 위한 사전 요구 사항들 - 사용 요청 거부 됨 (0) | 2023.03.18 |
Openai cookbook : DALL-E - How to generate and edit images with DALL-E (1) | 2023.03.17 |
Openai cookbook : Fine-tuning GPT-3 - Fine-tuned classification (0) | 2023.03.15 |
Openai cookbook : Fine-tuning GPT-3 - Guide: best practices for fine-tuning GPT-3 to classify text (0) | 2023.03.08 |
Openai cookbook : ChatGPT , How to format inputs to ChatGPT models (2) | 2023.03.04 |
Openai cookbook : GPT-3 , Code Editing examples (0) | 2023.03.04 |
Openai cookbook : GPT-3 , Code explanation examples (0) | 2023.03.04 |
Openai cookbook : GPT-3 , Code writing examples (0) | 2023.03.04 |