프로그래밍/자연어처리

azure openai 사용하여 임베딩 변환하기

kugancity 2024. 8. 20. 17:24
반응형

 

 

azure openai + postgreSQL를 사용해서 벡터검색 사용하기 

 

 

azure openai에서 제공하는 임베딩 모델은 다음과 같습니다. 

 

 

azure openai 임베딩 모델 

azure openai embedding 모델

 

참고: https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#model-summary-table-and-region-availability

 

 

임베딩 모델별 성능 비교 

 

 

text-embedding-3-small은 효율성이 매우 높은 최신 임베딩 모델로, 2022년 12월에 출시된 text-embedding-ada-002 모델에 비해 크게 개선되었습니다. 

 

성능 향상

text-embedding-ada-002와 text-embedding-3-small을 비교했을 때, 다중 언어 검색(MIRACL)에서의 평균 점수가 31.4%에서 44.0%로 증가했으며, 영어 작업을 위한 벤치마크(MTEB)에서의 평균 점수도 61.0%에서 62.3%로 증가했습니다.

 

가격 인하

text-embedding-3-small은 이전 세대의 text-embedding-ada-002 모델보다 훨씬 더 효율적입니다. 따라서 text-embedding-3-small의 가격은 text-embedding-ada-002에 비해 5배 저렴해졌으며, 1천 토큰당 가격이 $0.0001에서 $0.00002로 인하되었습니다.

 

 

새로운 대형 텍스트 임베딩 모델: text-embedding-3-large

text-embedding-3-large는 차세대 대형 임베딩 모델로, 최대 3072차원의 임베딩을 생성할 수 있습니다.

 

성능 향상

text-embedding-3-large는 현재 가장 성능이 뛰어난 모델입니다. text-embedding-ada-002와 text-embedding-3-large를 비교했을 때, MIRACL에서 평균 점수는 31.4%에서 54.9%로 증가했으며, MTEB에서는 평균 점수가 61.0%에서 64.6%로 상승했습니다.

 

 

결론 

 

왠만하면 text-embedding-3 small 모델을 쓰고 더 좋은 성능이 필요하면 text-embedding-3 large 모델을 사용하자 

 

참고: https://openai.com/index/new-embedding-models-and-api-updates/

 

 

azure openai  사용하기 

 

 

애저 플레이그라운드

 

 

애저 플레이그라운드의 코드보기에서 나오는 ENDPOINT와 API_KEY를 사용해서 아래와같이 접속하고 텍스트 입력을 받아  임베딩 변환을 진행하였습니다. 

 

 

def initialize_azure():
    try:
        azure_client = AzureOpenAI(
            api_key=os.getenv("AZURE_OPENAI_EAST_US_API_KEY"),
            api_version=os.getenv("AZURE_OPENAI_EAST_US_API_VERSION"),
            azure_endpoint=os.getenv("AZURE_OPENAI_EAST_US_ENDPOINT")
        )
        print("Azure OpenAI 연결 성공:", azure_client)
    except Exception as e:
        print(f"Azure OpenAI 클라이언트 초기화 중 오류 발생: {e}")
        azure_client = None
    return azure_client


def get_embedding(azure_client, text):

    try:
        response = azure_client.embeddings.create(
            input=text,
            model="text-embedding-3-small"
        )
        embedding = response.data[0].embedding
        return embedding

    except Exception as e:
        print(f"텍스트 임베딩 중 오류 발생: {e}")
        return None

 

 

참고로 다른 API 키값들은 아래 위치에서 찾을 수 있습니다. 

 

 

 

 

 

 

 

 

 

 

 

참고: 

https://learn.microsoft.com/en-us/azure/ai-services/openai/use-your-data-quickstart?tabs=command-line%2Cpython-new&pivots=programming-language-python

 

 

https://learn.microsoft.com/ko-kr/azure/ai-services/openai/tutorials/embeddings?tabs=python%2Ccommand-line&pivots=programming-language-python

 

728x90
반응형