azure openai 사용하여 임베딩 변환하기
azure openai + postgreSQL를 사용해서 벡터검색 사용하기
azure openai에서 제공하는 임베딩 모델은 다음과 같습니다.
azure openai 임베딩 모델
임베딩 모델별 성능 비교
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 키값들은 아래 위치에서 찾을 수 있습니다.
참고: