728x90

openai api

  • text completion api : 가장 먼저 나온 api로 어떤 문장이 주어졌을때 뒤에 나올 문장을 만들어주는 api.
    • A→B 에서 A를 프롬프트라고 한다. 프롬프트를 주면 프롬프트 이후에 나올 그럴듯한 말을 만들어준다.
  • Chat api : 채팅을 위해 assistant와 상호작용하는 대화형 api를 만들때 용이하다.
  • Embeddings api : 어떤 문장, 문서, 짧은 질의가 있을때 그것을 어떤 고정 차원의 벡터로 만들어주는 것이 임베딩 api라고 한다.
    • 임베딩이란 A라는 단어가 있을때 A를 고정된 크기의 벡터로 변환하는 것.
    • 검색, 분류, 텍스트끼리 비교할 때 사용할 수 있다. 어떤 문장이 있다면 비교하고싶은 문서가 있으면 그 문서도 고정된 벡터로 만들어주고 이 두가지를 코사인 유사도를 계산한다. 벡터는 방향이기 때문에 방향이 유사하면 두 벡터의 의미가 유사하다고 평가한다.
    • 가령 문장 A : “오늘 날씨 어때”이고 문장 B : “날씨 알려줘” 라고 한다면 두 문장의 의미는 유사하기 때문에 두 문장의 코사인 유사도는 높다. 가장 높은 값은 1이다.
    • B를 문장이 아니라 단락이라고 하고 그러한 단락들을 여러 개 준비하고 모두 임베딩한 후에 나중에 질의가 들어오면 해당 질의(쿼리, A)와 문서(B)의 임베딩을 비교해서 가장 높은 코사인 유사도를 가지는 문서를 발견하면 그 문서에 대응되는 단락을 가져오면 검색 기능을 만들 수 있다.
  • speech to text api : 음성이 들어오면 문서로 바꿔준다.
  • Image generation api : 텍스트가 들어가면 이미지로 바꿔준다.
  • fine-tuning api : text completion api의 성능을 향상시키는데 활용할 수 있다. prompt와 이 프롬프트에 대해서 만들었으면 하는 응답(completion) 쌍(prompt, completion)을 여러개 준비해서 fine-tuning api로 업로드해서 학습시키면 자신만의 fine-tuning된 gpt 모델로 만들 수 있다.

chat completion api 파라미터

model

사용할 모델 지정 가능, completion, chat completion인지에 따라서 사용가능한 모델이 다르다.

prompt

insturction과 질문을 넣는걸 프롬프트라고 한다. 어떤 텍스트던지 넣으면 적절한 다음 문장을 생성한다.

max_tokens

출력에 사용될 토큰의 개수를 제한할 수 있다. 문장을 자르는 기준이 단어나 음절이 아니라 openai 에서 사용하는 토크나이저의 토큰 기준이다.

temperature

모델 출력의 randomness를 조절하는 파라미터. temperature와 randomness는 비례한다. random하다는건 같은 질문을 반복했을때 답변이 다양하게 나온다는 뜻.

top_p

모델과 관계가 있다. 트랜스포머 모델은 출력의 결과물이 총합이 1인 벡터로 나오는데 해당 벡터 전체에서 확률별로 샘플링을 한다. 이때 top_p는 확률이 높은 몇 번째까지 안에서만 샘플링한다는 뜻이다.

가령, [0.5,0.2,0.1 …]인 벡터가 있을때 top_p가 0.8이면 앞에 3개에서만 샘플링을 한다.

따라서 top_p가 커지면 작은 범위에서 샘플링을 하게된다.

n

생성하는 문장의 개수를 선택할 수 있다.

stop

stop에 해당하는 단어를 정하면 해당 단어가 나오기 이전까지의 생성된 문장만 벡터만 return한다.

presence penalty

어떤 토큰이 반복적으로 나올지 영향을 끼치는 토큰. 단어 하나를 만들때 그 단어가 이전에 존재한 단어면 페널티를 준다.

frequency penalty

모델이 어떤 단어를 만들고 있는데 이전에 n번 나왔으면 n번의 패널티를 중복으로 준다.

'인공지능 > LLM' 카테고리의 다른 글

챗봇 구현 실습 (2) - FastAPI  (1) 2024.03.17
챗봇 구현 실습 (1) - OpenAI API  (0) 2024.03.17
LLAMA2 (3) 답변 받기  (1) 2024.03.15
LLAMA2 (2) 환경설정  (1) 2024.03.15
LLAMA2 (1) 설치  (2) 2024.03.15

+ Recent posts