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 |