본문 바로가기

IT와 과학/AI

OpenAI API

728x90
반응형

소개

공식 Python 바인딩, 공식 Node.js 라이브러리 또는 커뮤니티 유지 라이브러리 를 통해 모든 언어의 HTTP 요청을 통해 API와 상호 작용할 수 있습니다 .

공식 Python 바인딩을 설치하려면 다음 명령을 실행합니다.

pip install openai

공식 Node.js 라이브러리를 설치하려면 Node.js 프로젝트 디렉토리에서 다음 명령을 실행하십시오.

npm install openai

인증

OpenAI API는 인증을 위해 API 키를 사용합니다. 요청에 사용할 API 키를 검색하려면 API  페이지를 방문하세요 .

API 키는 비밀임을 기억하세요! 다른 사람과 공유하거나 클라이언트 측 코드(브라우저, 앱)에 노출하지 마십시오. 프로덕션 요청은 환경 변수 또는 키 관리 서비스에서 API 키를 안전하게 로드할 수 있는 자체 백엔드 서버를 통해 라우팅되어야 합니다.

모든 API 요청에는 Authorization다음과 같이 HTTP 헤더에 API 키가 포함되어야 합니다.

Authorization: Bearer YOUR_API_KEY

요청 기관

여러 조직에 속한 사용자의 경우 헤더를 전달하여 API 요청에 사용되는 조직을 지정할 수 있습니다. 이러한 API 요청의 사용량은 지정된 조직의 구독 할당량에 대해 계산됩니다.

curl 명령 예:

curl https://api.openai.com/v1/models \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'OpenAI-Organization: org-xJdlnz2oBe6Ja5VGjAoM4kGV'

openaiPython 패키지 의 예 :

import os
import openai
openai.organization = "org-xJdlnz2oBe6Ja5VGjAoM4kGV"
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()

openaiNode.js 패키지 의 예 :

import { Configuration, OpenAIApi } from "openai";
const configuration = new Configuration({
    organization: "org-xJdlnz2oBe6Ja5VGjAoM4kGV",
    apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.listEngines();

조직 ID는 조직 설정 페이지 에서 찾을 수 있습니다 .

요청 생성

아래 명령을 터미널에 붙여넣어 첫 번째 API 요청을 실행할 수 있습니다. YOUR_API_KEY를 비밀 API 키로 교체해야 합니다.

curl https://api.openai.com/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"model": "text-davinci-003", "prompt": "Say this is a test", "temperature": 0, "max_tokens": 7}'

이 요청은 Davinci 모델을 쿼리하여 " Say this is a test " 프롬프트로 시작하는 텍스트를 완성합니다 . 이 매개변수는 API가 반환할 토큰max_tokens 수에 대한 상한을 설정합니다 . 다음과 유사한 응답을 받아야 합니다.

{
    "id": "cmpl-GERzeJQ4lvqPk8SkZu4XMIuR",
    "object": "text_completion",
    "created": 1586839808,
    "model": "text-davinci:003",
    "choices": [
        {
            "text": "\n\nThis is indeed a test",
            "index": 0,
            "logprobs": null,
            "finish_reason": "length"
        }
    ],
    "usage": {
        "prompt_tokens": 5,
        "completion_tokens": 7,
        "total_tokens": 12
    }
}

이제 첫 번째 완료를 생성했습니다. echo프롬프트와 완료 텍스트( 매개변수를 로 설정한 경우 API가 수행함 true)를 연결하면 결과 텍스트는 " Say this is a test. This is really a test.stream "가 됩니다. 매개변수를 다음으로 설정할 수도 있습니다 . trueAPI가 텍스트를 다시 스트리밍하기 위해( 데이터 전용 서버 전송 이벤트로 ).

모델

API에서 사용할 수 있는 다양한 모델을 나열하고 설명합니다. 모델 설명서를 참조하여 사용 가능한 모델과 차이점을 이해할 수 있습니다.

모델 나열

GET https://api.openai.com/v1/models

현재 사용 가능한 모델을 나열하고 소유자 및 가용성과 같은 각 모델에 대한 기본 정보를 제공합니다.

요청 예시(curl)
 
curl https://api.openai.com/v1/models \
  -H 'Authorization: Bearer YOUR_API_KEY'
 
요청 예시(파이썬)

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()
 
요청 예시(node.js)

const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.listModels();​

응답

{
  "data": [
    {
      "id": "model-id-0",
      "object": "model",
      "owned_by": "organization-owner",
      "permission": [...]
    },
    {
      "id": "model-id-1",
      "object": "model",
      "owned_by": "organization-owner",
      "permission": [...]
    },
    {
      "id": "model-id-2",
      "object": "model",
      "owned_by": "openai",
      "permission": [...]
    },
  ],
  "object": "list"
}

모델 검색

GET https://api.openai.com/v1/models/{model}

소유자 및 권한과 같은 모델에 대한 기본 정보를 제공하는 모델 인스턴스를 검색합니다.

경로 매개변수

모델
필수의

이 요청에 사용할 모델의 ID

요청 예시
텍스트-다빈치-003
babbageadadavincitext-davinci-001curie-instruct-betacode-cushman-001텍스트-다빈치-003text-ada-001text-curie-001davinci-instruct-betatext-babbage-001curietext-davinci-002code-davinci-002
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
curl https://api.openai.com/v1/models/text-davinci-003 \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답
텍스트-다빈치-003
babbageadadavincitext-davinci-001curie-instruct-betacode-cushman-001텍스트-다빈치-003text-ada-001text-curie-001davinci-instruct-betatext-babbage-001curietext-davinci-002code-davinci-002
복사
{
  "id": "text-davinci-003",
  "object": "model",
  "owned_by": "openai",
  "permission": [...]
}

완료

프롬프트가 주어지면 모델은 하나 이상의 예상 완료를 반환하고 각 위치에서 대체 토큰의 확률을 반환할 수도 있습니다.

완성 만들기

게시하다 https://api.openai.com/v1 /완성

제공된 프롬프트 및 매개변수에 대한 완성을 생성합니다.

요청 본문

모델
필수의

사용할 모델의 ID입니다. 모델 목록 API를 사용하여 사용 가능한 모든 모델을 보거나 모델 개요 에서 설명을 볼 수 있습니다.

즉각적인
문자열 또는 배열
선택 과목
기본값은 <|endoftext|>

문자열, 문자열 배열, 토큰 배열 또는 토큰 배열 배열로 인코딩된 완성을 생성하는 프롬프트입니다.

<|endoftext|>는 훈련 중에 모델이 보는 문서 구분 기호이므로 프롬프트가 지정되지 않으면 모델이 새 문서의 시작 부분에서 생성되는 것처럼 생성됩니다.

접미사
선택 과목
기본값은 null

삽입된 텍스트가 완료된 뒤에 오는 접미사.

max_tokens
정수
선택 과목
기본값은 16

완료 시 생성할 최대 토큰 수입니다.

프롬프트 플러스의 토큰 수 max_tokens는 모델의 컨텍스트 길이를 초과할 수 없습니다. 대부분의 모델은 컨텍스트 길이가 2048 토큰입니다(4096을 지원하는 최신 모델 제외).

온도
숫자
선택 과목
기본값은 1

사용할 샘플링 온도 . 값이 높을수록 모델이 더 많은 위험을 감수하게 됩니다. 더 창의적인 응용 프로그램에는 0.9를, 잘 정의된 답이 있는 응용 프로그램에는 0(argmax 샘플링)을 사용해 보십시오.

일반적으로 이를 변경하거나 top_p둘 다 변경하지 않는 것이 좋습니다.

top_p
숫자
선택 과목
기본값은 1

모델이 top_p 확률 질량으로 토큰의 결과를 고려하는 핵 샘플링이라고 하는 온도를 사용한 샘플링의 대안입니다. 따라서 0.1은 상위 10% 확률 질량을 구성하는 토큰만 고려됨을 의미합니다.

일반적으로 이를 변경하거나 temperature둘 다 변경하지 않는 것이 좋습니다.

N
정수
선택 과목
기본값은 1

각 프롬프트에 대해 생성할 완료 수입니다.

참고: 이 매개변수는 많은 완료를 생성하기 때문에 토큰 할당량을 빠르게 소비할 수 있습니다. max_tokens주의해서 사용하고 및 에 대한 적절한 설정이 있는지 확인하십시오 stop.

개울
부울
선택 과목
기본값은 false

부분 진행 상황을 스트리밍할지 여부입니다. 설정되면 토큰 이 사용 가능해지면 데이터 전용 서버 전송 이벤트data: [DONE] 로 전송되며 스트림은 메시지에 의해 종료됩니다.

로그프로브
정수
선택 과목
기본값은 null

logprobs가장 가능성이 높은 토큰과 선택한 토큰 에 대한 로그 확률을 포함합니다 . 예를 들어 logprobs5인 경우 API는 가능성이 가장 높은 5개의 토큰 목록을 반환합니다. API는 항상 샘플링된 토큰을 반환 하므로 응답에 logprob최대 요소가 있을 수 있습니다 .logprobs+1

의 최대값 logprobs은 5입니다. 이보다 더 필요한 경우 고객 센터 를 통해 문의 하여 사용 사례를 설명하세요.

에코
부울
선택 과목
기본값은 false

완료와 함께 프롬프트를 되풀이합니다.

중지
문자열 또는 배열
선택 과목
기본값은 null

API가 추가 토큰 생성을 중지하는 최대 4개의 시퀀스. 반환된 텍스트에는 중지 시퀀스가 ​​포함되지 않습니다.

존재_페널티
숫자
선택 과목
기본값은 0

-2.0에서 2.0 사이의 숫자입니다. 양수 값은 지금까지 텍스트에 나타나는지 여부에 따라 새 토큰에 페널티를 주어 모델이 새 주제에 대해 이야기할 가능성을 높입니다.

게재빈도 및 존재 여부 패널티에 대한 자세한 내용을 참조하십시오.

frequency_penalty
숫자
선택 과목
기본값은 0

-2.0에서 2.0 사이의 숫자입니다. 양수 값은 지금까지 텍스트의 기존 빈도를 기반으로 새 토큰에 페널티를 주어 모델이 동일한 줄을 그대로 반복할 가능성을 줄입니다.

게재빈도 및 존재 여부 패널티에 대한 자세한 내용을 참조하십시오.

최고
정수
선택 과목
기본값은 1

서버 측 완료를 생성 best_of하고 "최고"(토큰당 로그 확률이 ​​가장 높은 것)를 반환합니다. 결과를 스트리밍할 수 없습니다.

와 함께 사용하면 후보 완료 수를 제어하고 n반환 할 수를 지정합니다 . 보다 커야 합니다.best_ofnbest_ofn

참고: 이 매개변수는 많은 완료를 생성하기 때문에 토큰 할당량을 빠르게 소비할 수 있습니다. max_tokens주의해서 사용하고 및 에 대한 적절한 설정이 있는지 확인하십시오 stop.

logit_bias
지도
선택 과목
기본값은 null

완료에 지정된 토큰이 나타날 가능성을 수정합니다.

토큰(GPT 토크나이저의 토큰 ID로 지정됨)을 -100에서 100 사이의 관련 바이어스 값으로 매핑하는 json 개체를 수락합니다. 이 토크나이저 도구 (GPT-2 및 GPT-3 모두에서 작동)를 사용하여 변환할 수 있습니다. 토큰 ID에 대한 텍스트. 수학적으로 바이어스는 샘플링 전에 모델에 의해 생성된 로짓에 추가됩니다. 정확한 효과는 모델마다 다르지만 -1과 1 사이의 값은 선택 가능성을 낮추거나 높여야 합니다. -100 또는 100과 같은 값은 관련 토큰을 금지하거나 배타적으로 선택해야 합니다.

{"50256": -100}예를 들어 <|endoftext|> 토큰이 생성되지 않도록 전달할 수 있습니다 .

사용자
선택 과목

OpenAI가 남용을 모니터링하고 감지하는 데 도움이 될 수 있는 최종 사용자를 나타내는 고유 식별자입니다. 자세히 알아 보기

요청 예시
텍스트-다빈치-003
babbageadadavincitext-davinci-001curie-instruct-betacode-cushman-001텍스트-다빈치-003text-ada-001text-curie-001davinci-instruct-betatext-babbage-001curietext-davinci-002code-davinci-002
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
curl https://api.openai.com/v1/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
  "model": "text-davinci-003",
  "prompt": "Say this is a test",
  "max_tokens": 7,
  "temperature": 0
}'
매개변수
텍스트-다빈치-003
babbageadadavincitext-davinci-001curie-instruct-betacode-cushman-001텍스트-다빈치-003text-ada-001text-curie-001davinci-instruct-betatext-babbage-001curietext-davinci-002code-davinci-002
복사
1
2
3
4
5
6
7
8
9
10
11
{
  "model": "text-davinci-003",
  "prompt": "Say this is a test",
  "max_tokens": 7,
  "temperature": 0,
  "top_p": 1,
  "n": 1,
  "stream": false,
  "logprobs": null,
  "stop": "\n"
}
응답
텍스트-다빈치-003
babbageadadavincitext-davinci-001curie-instruct-betacode-cushman-001텍스트-다빈치-003text-ada-001text-curie-001davinci-instruct-betatext-babbage-001curietext-davinci-002code-davinci-002
복사
{
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "text-davinci-003",
  "choices": [
    {
      "text": "\n\nThis is indeed a test",
      "index": 0,
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 7,
    "total_tokens": 12
  }
}

편집

프롬프트와 지침이 주어지면 모델은 편집된 버전의 프롬프트를 반환합니다.

수정사항 만들기

게시하다 https://api.openai.com/v1 /edits

제공된 입력, 지침 및 매개변수에 대한 새 편집을 생성합니다.

요청 본문

모델
필수의

사용할 모델의 ID입니다. 모델 목록 API를 사용하여 사용 가능한 모든 모델을 보거나 모델 개요 에서 설명을 볼 수 있습니다.

입력
선택 과목
기본값은 ''

편집의 시작점으로 사용할 입력 텍스트입니다.

지침
필수의

프롬프트를 편집하는 방법을 모델에 알려주는 명령입니다.

N
정수
선택 과목
기본값은 1

입력 및 명령어에 대해 생성할 편집 횟수입니다.

온도
숫자
선택 과목
기본값은 1

사용할 샘플링 온도 . 값이 높을수록 모델이 더 많은 위험을 감수하게 됩니다. 더 창의적인 응용 프로그램에는 0.9를, 잘 정의된 답이 있는 응용 프로그램에는 0(argmax 샘플링)을 사용해 보십시오.

일반적으로 이를 변경하거나 top_p둘 다 변경하지 않는 것이 좋습니다.

top_p
숫자
선택 과목
기본값은 1

모델이 top_p 확률 질량으로 토큰의 결과를 고려하는 핵 샘플링이라고 하는 온도를 사용한 샘플링의 대안입니다. 따라서 0.1은 상위 10% 확률 질량을 구성하는 토큰만 고려됨을 의미합니다.

일반적으로 이를 변경하거나 temperature둘 다 변경하지 않는 것이 좋습니다.

요청 예시
텍스트-davinci-edit-001
텍스트-davinci-edit-001code-davinci-edit-001
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
4
5
6
7
8
curl https://api.openai.com/v1/edits \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
  "model": "text-davinci-edit-001",
  "input": "What day of the wek is it?",
  "instruction": "Fix the spelling mistakes"
}'
매개변수
텍스트-davinci-edit-001
텍스트-davinci-edit-001code-davinci-edit-001
복사
1
2
3
4
5
{
  "model": "text-davinci-edit-001",
  "input": "What day of the wek is it?",
  "instruction": "Fix the spelling mistakes",
}
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
  "object": "edit",
  "created": 1589478378,
  "choices": [
    {
      "text": "What day of the week is it?",
      "index": 0,
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 32,
    "total_tokens": 57
  }
}

이미지

프롬프트 및/또는 입력 이미지가 주어지면 모델은 새 이미지를 생성합니다.

관련 가이드: 이미지 생성

이미지 만들기

게시하다 https://api.openai.com/v1 /images/generations

프롬프트가 주어지면 이미지를 생성합니다.

요청 본문

즉각적인
필수의

원하는 이미지에 대한 텍스트 설명입니다. 최대 길이는 1000자입니다.

N
정수
선택 과목
기본값은 1

생성할 이미지 수입니다. 1에서 10 사이여야 합니다.

크기
선택 과목
기본값은 1024x1024입니다 .

생성된 이미지의 크기입니다. 256x256, 512x512, 또는 중 하나여야 합니다 1024x1024.

응답 형식
선택 과목
URL 기본값

생성된 이미지가 반환되는 형식입니다. url또는 중 하나여야 합니다 b64_json.

사용자
선택 과목

OpenAI가 남용을 모니터링하고 감지하는 데 도움이 될 수 있는 최종 사용자를 나타내는 고유 식별자입니다. 자세히 알아 보기

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
4
5
6
7
8
curl https://api.openai.com/v1/images/generations \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
  "prompt": "A cute baby sea otter",
  "n": 2,
  "size": "1024x1024"
}'
매개변수
복사
1
2
3
4
5
{
  "prompt": "A cute baby sea otter",
  "n": 2,
  "size": "1024x1024"
}
응답
복사
1
2
3
4
5
6
7
8
9
10
11
{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}

이미지 편집 만들기

게시하다 https://api.openai.com/v1 /images/edits

원본 이미지와 프롬프트가 주어지면 편집되거나 확장된 이미지를 생성합니다.

요청 본문

영상
필수의

편집할 이미지입니다. 유효한 PNG 파일이어야 하며 4MB 미만의 정사각형이어야 합니다. 마스크를 제공하지 않으면 이미지에 투명도가 있어야 마스크로 사용됩니다.

마스크
선택 과목

image완전히 투명한 영역(예: 알파가 0인 경우) 이 편집되어야 하는 위치를 나타내는 추가 이미지입니다 . 4MB 미만의 유효한 PNG 파일이어야 하며 크기가 image.

즉각적인
필수의

원하는 이미지에 대한 텍스트 설명입니다. 최대 길이는 1000자입니다.

N
정수
선택 과목
기본값은 1

생성할 이미지 수입니다. 1에서 10 사이여야 합니다.

크기
선택 과목
기본값은 1024x1024입니다 .

생성된 이미지의 크기입니다. 256x256, 512x512, 또는 중 하나여야 합니다 1024x1024.

응답 형식
선택 과목
URL 기본값

생성된 이미지가 반환되는 형식입니다. url또는 중 하나여야 합니다 b64_json.

사용자
선택 과목

OpenAI가 남용을 모니터링하고 감지하는 데 도움이 될 수 있는 최종 사용자를 나타내는 고유 식별자입니다. 자세히 알아 보기

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
4
5
6
7
curl https://api.openai.com/v1/images/edits \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -F image='@otter.png' \
  -F mask='@mask.png' \
  -F prompt="A cute baby sea otter wearing a beret" \
  -F n=2 \
  -F size="1024x1024"
응답
복사
1
2
3
4
5
6
7
8
9
10
11
{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}

이미지 변형 만들기

게시하다 https://api.openai.com/v1 /images/variations

주어진 이미지의 변형을 만듭니다.

요청 본문

영상
필수의

변형의 기초로 사용할 이미지입니다. 유효한 PNG 파일이어야 하며 4MB 미만의 정사각형이어야 합니다.

N
정수
선택 과목
기본값은 1

생성할 이미지 수입니다. 1에서 10 사이여야 합니다.

크기
선택 과목
기본값은 1024x1024입니다 .

생성된 이미지의 크기입니다. 256x256, 512x512, 또는 중 하나여야 합니다 1024x1024.

응답 형식
선택 과목
URL 기본값

생성된 이미지가 반환되는 형식입니다. url또는 중 하나여야 합니다 b64_json.

사용자
선택 과목

OpenAI가 남용을 모니터링하고 감지하는 데 도움이 될 수 있는 최종 사용자를 나타내는 고유 식별자입니다. 자세히 알아 보기

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
4
5
curl https://api.openai.com/v1/images/variations \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -F image='@otter.png' \
  -F n=2 \
  -F size="1024x1024"
응답
복사
1
2
3
4
5
6
7
8
9
10
11
{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}

임베딩

기계 학습 모델 및 알고리즘에서 쉽게 사용할 수 있는 주어진 입력의 벡터 표현을 가져옵니다.

관련 가이드: 임베딩

임베딩 생성

게시하다 https://api.openai.com/v1 /embeddings

입력 텍스트를 나타내는 포함 벡터를 만듭니다.

요청 본문

모델
필수의

사용할 모델의 ID입니다. 모델 목록 API를 사용하여 사용 가능한 모든 모델을 보거나 모델 개요 에서 설명을 볼 수 있습니다.

입력
문자열 또는 배열
필수의

문자열 또는 토큰 배열로 인코딩된 임베딩을 가져올 입력 텍스트입니다. 단일 요청에서 여러 입력에 대한 임베딩을 가져오려면 문자열 배열 또는 토큰 배열 배열을 전달합니다. 각 입력은 길이가 8192 토큰을 초과할 수 없습니다.

사용자
선택 과목

OpenAI가 남용을 모니터링하고 감지하는 데 도움이 될 수 있는 최종 사용자를 나타내는 고유 식별자입니다. 자세히 알아 보기

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
4
5
6
curl https://api.openai.com/v1/embeddings \
  -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input": "The food was delicious and the waiter...",
       "model": "text-embedding-ada-002"}'
매개변수
복사
1
2
3
4
{
  "model": "text-embedding-ada-002",
  "input": "The food was delicious and the waiter..."
}
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [
        0.0023064255,
        -0.009327292,
        .... (1056 floats total for ada)
        -0.0028842222,
      ],
      "index": 0
    }
  ],
  "model": "text-embedding-ada-002",
  "usage": {
    "prompt_tokens": 8,
    "total_tokens": 8
  }
}

파일

파일은 미세 조정 과 같은 기능과 함께 사용할 수 있는 문서를 업로드하는 데 사용됩니다 .

파일 나열

가져 오기 https://api.openai.com/v1 /files

사용자의 조직에 속한 파일 목록을 반환합니다.

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
curl https://api.openai.com/v1/files \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "data": [
    {
      "id": "file-ccdDZrC3iZVNiQVeEA6Z66wf",
      "object": "file",
      "bytes": 175,
      "created_at": 1613677385,
      "filename": "train.jsonl",
      "purpose": "search"
    },
    {
      "id": "file-XjGxS3KTG0uNmNOK362iJua3",
      "object": "file",
      "bytes": 140,
      "created_at": 1613779121,
      "filename": "puppy.jsonl",
      "purpose": "search"
    }
  ],
  "object": "list"
}

파일 업로드

게시하다 https://api.openai.com/v1 /files

다양한 엔드포인트/기능에서 사용할 문서가 포함된 파일을 업로드합니다. 현재 한 조직에서 업로드하는 모든 파일의 크기는 최대 1GB입니다. 저장 한도를 늘려야 하는 경우 당사에 문의하십시오.

요청 본문

파일
필수의

업로드할 JSON Lines 파일 의 이름입니다 .

가 "미세 조정"으로 설정된 경우 각 줄은 교육 예제purpose 를 나타내는 "프롬프트" 및 "완료" 필드가 있는 JSON 레코드입니다 .

목적
필수의

업로드된 문서의 의도된 목적.

미세 조정에는 " 미세 조정"을 사용하십시오 . 이렇게 하면 업로드된 파일의 형식을 확인할 수 있습니다.

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
4
curl https://api.openai.com/v1/files \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F purpose="fine-tune" \
  -F file='@mydata.jsonl'
응답
복사
1
2
3
4
5
6
7
8
{
  "id": "file-XjGxS3KTG0uNmNOK362iJua3",
  "object": "file",
  "bytes": 140,
  "created_at": 1613779121,
  "filename": "mydata.jsonl",
  "purpose": "fine-tune"
}

파일 삭제

삭제 https://api.openai.com/v1 /files/{file_id}

파일을 삭제합니다.

경로 매개변수

file_id
필수의

이 요청에 사용할 파일의 ID

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \
  -X DELETE \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답
복사
1
2
3
4
5
{
  "id": "file-XjGxS3KTG0uNmNOK362iJua3",
  "object": "file",
  "deleted": true
}

파일 검색

가져 오기 https://api.openai.com/v1 /files/{file_id}

특정 파일에 대한 정보를 반환합니다.

경로 매개변수

file_id
필수의

이 요청에 사용할 파일의 ID

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답
복사
1
2
3
4
5
6
7
8
{
  "id": "file-XjGxS3KTG0uNmNOK362iJua3",
  "object": "file",
  "bytes": 140,
  "created_at": 1613779657,
  "filename": "mydata.jsonl",
  "purpose": "fine-tune"
}

파일 콘텐츠 검색

가져 오기 https://api.openai.com/v1 /files/{file_id}/content

지정된 파일의 내용을 반환

경로 매개변수

file_id
필수의

이 요청에 사용할 파일의 ID

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3/content \
  -H 'Authorization: Bearer YOUR_API_KEY' > file.jsonl

미세 조정

미세 조정 작업을 관리하여 특정 학습 데이터에 맞게 모델을 맞춤화합니다.

관련 가이드: 모델 미세 조정

미세 조정 만들기

베타

게시하다 https://api.openai.com/v1 /fine-tunes

지정된 데이터 세트에서 지정된 모델을 미세 조정하는 작업을 만듭니다.

응답에는 완료되면 작업 상태 및 미세 조정된 모델의 이름을 포함하여 대기열에 추가된 작업의 세부 정보가 포함됩니다.

미세 조정에 대해 자세히 알아보기

요청 본문

training_file
필수의

교육 데이터가 포함된 업로드된 파일의 ID입니다.

파일 업로드 방법은 파일 업로드를 참조 하세요 .

데이터 세트는 JSONL 파일로 형식화되어야 합니다. 여기서 각 교육 예제는 "prompt" 및 "completion" 키가 있는 JSON 객체입니다. 또한 목적이 있는 파일을 업로드해야 합니다 fine-tune.

자세한 내용은 미세 조정 가이드 를 참조하십시오.

validation_file
선택 과목

유효성 검사 데이터가 포함된 업로드된 파일의 ID입니다.

이 파일을 제공하면 미세 조정 중에 정기적으로 유효성 검사 지표를 생성하는 데 데이터가 사용됩니다. 이러한 메트릭은 미세 조정 결과 파일 에서 볼 수 있습니다 . 학습 및 검증 데이터는 상호 배타적이어야 합니다.

데이터 세트는 JSONL 파일로 형식화되어야 합니다. 여기서 각 검증 예제는 "prompt" 및 "completion" 키가 있는 JSON 개체입니다. 또한 목적이 있는 파일을 업로드해야 합니다 fine-tune.

자세한 내용은 미세 조정 가이드 를 참조하십시오.

모델
선택 과목
기본값은 퀴리

미세 조정할 기본 모델의 이름입니다. "ada", "babbage", "curie", "davinci" 또는 2022-04-21 이후 생성된 미세 조정된 모델 중 하나를 선택할 수 있습니다. 이러한 모델에 대한 자세한 내용은 모델 설명서를 참조하십시오.

n_epochs
정수
선택 과목
기본값은 4

모델을 훈련할 에포크 수입니다. 에포크는 교육 데이터 세트를 통한 하나의 전체 주기를 나타냅니다.

배치 크기
정수
선택 과목
기본값은 null

교육에 사용할 배치 크기입니다. 배치 크기는 단일 정방향 및 역방향 패스를 훈련하는 데 사용되는 훈련 예제의 수입니다.

기본적으로 배치 크기는 훈련 세트에 있는 예제 수의 ~0.2%로 동적으로 구성되며 최대 256개로 제한됩니다. 일반적으로 배치 크기가 클수록 데이터 세트가 더 잘 작동하는 경향이 있습니다.

learning_rate_multiplier
숫자
선택 과목
기본값은 null

훈련에 사용할 학습률 승수입니다. 미세 조정 학습률은 사전 훈련에 사용된 원래 학습률에 이 값을 곱한 것입니다.

기본적으로 학습률 승수는 최종에 따라 0.05, 0.1 또는 0.2입니다 batch_size(배치 크기가 클수록 학습률이 높을수록 더 잘 수행되는 경향이 있음). 0.02에서 0.2 범위의 값으로 실험하여 최상의 결과를 생성하는 것이 무엇인지 확인하는 것이 좋습니다.

프롬프트_손실_가중
숫자
선택 과목
기본값은 0.01

프롬프트 토큰에서 손실에 사용할 가중치입니다. 이것은 모델이 프롬프트를 생성하기 위해 학습을 시도하는 정도를 제어하고(항상 가중치가 1.0인 완료와 비교하여) 완료가 짧을 때 교육에 안정화 효과를 추가할 수 있습니다.

프롬프트가 매우 긴 경우(완료에 비해) 프롬프트 학습에 과도한 우선순위를 두지 않도록 이 가중치를 줄이는 것이 좋습니다.

compute_classification_metrics
부울
선택 과목
기본값은 false

설정된 경우 매 에포크가 끝날 때마다 검증 세트를 사용하여 정확도 및 F-1 점수와 같은 분류별 메트릭을 계산합니다. 이러한 메트릭은 결과 파일 에서 볼 수 있습니다 .

분류 지표를 계산하려면 validation_file. classification_n_classes또한 다중 클래스 분류 또는 classification_positive_class이진 분류를 지정해야 합니다 .

분류_n_클래스
정수
선택 과목
기본값은 null

분류 작업의 클래스 수입니다.

이 매개변수는 다중 클래스 분류에 필요합니다.

분류_포지티브_클래스
선택 과목
기본값은 null

이진 분류의 포지티브 클래스입니다.

이 매개변수는 이진 분류를 수행할 때 정밀도, 재현율 및 F1 메트릭을 생성하는 데 필요합니다.

분류_베타
정렬
선택 과목
기본값은 null

이것이 제공되면 지정된 베타 값에서 F-베타 점수를 계산합니다. F-베타 점수는 F-1 점수를 일반화한 것입니다. 이진 분류에만 사용됩니다.

베타가 1(예: F-1 점수)이면 정밀도와 재현율에 동일한 가중치가 부여됩니다. 베타 점수가 클수록 재현율에 더 많은 가중치를 부여하고 정밀도에는 덜 적용합니다. 베타 점수가 작을수록 정밀도에 더 많은 가중치를 부여하고 재현율에 더 적은 가중치를 둡니다.

접미사
선택 과목
기본값은 null

미세 조정된 모델 이름에 추가될 최대 40자의 문자열입니다.

예를 들어 suffix"custom-model-name"의 a는 와 같은 모델 이름을 생성합니다 ada:ft-your-org:custom-model-name-2022-02-15-04-21-04.

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
4
5
6
7
curl https://api.openai.com/v1/fine-tunes \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "training_file": "file-XGinujblHPwGLSztz8cPS8XY"
}'
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
  "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
  "object": "fine-tune",
  "model": "curie",
  "created_at": 1614807352,
  "events": [
    {
      "object": "fine-tune-event",
      "created_at": 1614807352,
      "level": "info",
      "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
    }
  ],
  "fine_tuned_model": null,
  "hyperparams": {
    "batch_size": 4,
    "learning_rate_multiplier": 0.1,
    "n_epochs": 4,
    "prompt_loss_weight": 0.1,
  },
  "organization_id": "org-...",
  "result_files": [],
  "status": "pending",
  "validation_files": [],
  "training_files": [
    {
      "id": "file-XGinujblHPwGLSztz8cPS8XY",
      "object": "file",
      "bytes": 1547276,
      "created_at": 1610062281,
      "filename": "my-data-train.jsonl",
      "purpose": "fine-tune-train"
    }
  ],
  "updated_at": 1614807352,
}

미세 조정 목록

베타

가져 오기 https://api.openai.com/v1 /fine-tunes

조직의 미세 조정 작업 나열

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
curl https://api.openai.com/v1/fine-tunes \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "object": "list",
  "data": [
    {
      "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
      "object": "fine-tune",
      "model": "curie",
      "created_at": 1614807352,
      "fine_tuned_model": null,
      "hyperparams": { ... },
      "organization_id": "org-...",
      "result_files": [],
      "status": "pending",
      "validation_files": [],
      "training_files": [ { ... } ],
      "updated_at": 1614807352,
    },
    { ... },
    { ... }
  ]
}

미세 조정 검색

베타

가져 오기 https://api.openai.com/v1 /fine-tunes/{fine_tune_id}

미세 조정 작업에 대한 정보를 가져옵니다.

미세 조정에 대해 자세히 알아보기

경로 매개변수

fine_tune_id
필수의

미세 조정 작업의 ID

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F \
  -H "Authorization: Bearer YOUR_API_KEY"
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
{
  "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
  "object": "fine-tune",
  "model": "curie",
  "created_at": 1614807352,
  "events": [
    {
      "object": "fine-tune-event",
      "created_at": 1614807352,
      "level": "info",
      "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
    },
    {
      "object": "fine-tune-event",
      "created_at": 1614807356,
      "level": "info",
      "message": "Job started."
    },
    {
      "object": "fine-tune-event",
      "created_at": 1614807861,
      "level": "info",
      "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20."
    },
    {
      "object": "fine-tune-event",
      "created_at": 1614807864,
      "level": "info",
      "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT."
    },
    {
      "object": "fine-tune-event",
      "created_at": 1614807864,
      "level": "info",
      "message": "Job succeeded."
    }
  ],
  "fine_tuned_model": "curie:ft-acmeco-2021-03-03-21-44-20",
  "hyperparams": {
    "batch_size": 4,
    "learning_rate_multiplier": 0.1,
    "n_epochs": 4,
    "prompt_loss_weight": 0.1,
  },
  "organization_id": "org-...",
  "result_files": [
    {
      "id": "file-QQm6ZpqdNwAaVC3aSz5sWwLT",
      "object": "file",
      "bytes": 81509,
      "created_at": 1614807863,
      "filename": "compiled_results.csv",
      "purpose": "fine-tune-results"
    }
  ],
  "status": "succeeded",
  "validation_files": [],
  "training_files": [
    {
      "id": "file-XGinujblHPwGLSztz8cPS8XY",
      "object": "file",
      "bytes": 1547276,
      "created_at": 1610062281,
      "filename": "my-data-train.jsonl",
      "purpose": "fine-tune-train"
    }
  ],
  "updated_at": 1614807865,
}

미세 조정 취소

베타

게시하다 https://api.openai.com/v1 /fine-tunes/{fine_tune_id}/cancel

미세 조정 작업을 즉시 취소합니다.

경로 매개변수

fine_tune_id
필수의

취소할 미세 조정 작업의 ID

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/cancel \
  -X POST \
  -H "Authorization: Bearer YOUR_API_KEY"
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "id": "ft-xhrpBbvVUzYGo8oUO1FY4nI7",
  "object": "fine-tune",
  "model": "curie",
  "created_at": 1614807770,
  "events": [ { ... } ],
  "fine_tuned_model": null,
  "hyperparams": { ... },
  "organization_id": "org-...",
  "result_files": [],
  "status": "cancelled",
  "validation_files": [],
  "training_files": [
    {
      "id": "file-XGinujblHPwGLSztz8cPS8XY",
      "object": "file",
      "bytes": 1547276,
      "created_at": 1610062281,
      "filename": "my-data-train.jsonl",
      "purpose": "fine-tune-train"
    }
  ],
  "updated_at": 1614807789,
}

미세 조정 이벤트 나열

베타

가져 오기 https://api.openai.com/v1 /fine-tunes/{fine_tune_id}/events

미세 조정 작업을 위해 세분화된 상태 업데이트를 받으세요.

경로 매개변수

fine_tune_id
필수의

이벤트를 가져올 미세 조정 작업의 ID입니다.

쿼리 매개변수

개울
부울
선택 과목
기본값은 false

미세 조정 작업에 대한 이벤트를 스트리밍할지 여부입니다. true로 설정하면 이벤트가 사용 가능해지면 데이터 전용 서버 전송 이벤트 로 전송됩니다. data: [DONE]작업이 완료되면(성공, 취소 또는 실패) 메시지 와 함께 스트림이 종료됩니다 .

false로 설정하면 지금까지 생성된 이벤트만 반환됩니다.

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/events \
  -H "Authorization: Bearer YOUR_API_KEY"
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
  "object": "list",
  "data": [
    {
      "object": "fine-tune-event",
      "created_at": 1614807352,
      "level": "info",
      "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
    },
    {
      "object": "fine-tune-event",
      "created_at": 1614807356,
      "level": "info",
      "message": "Job started."
    },
    {
      "object": "fine-tune-event",
      "created_at": 1614807861,
      "level": "info",
      "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20."
    },
    {
      "object": "fine-tune-event",
      "created_at": 1614807864,
      "level": "info",
      "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT."
    },
    {
      "object": "fine-tune-event",
      "created_at": 1614807864,
      "level": "info",
      "message": "Job succeeded."
    }
  ]
}

미세 조정 모델 삭제

베타

삭제 https://api.openai.com/v1 /models/{모델}

미세 조정된 모델을 삭제합니다. 조직에서 소유자 역할이 있어야 합니다.

경로 매개변수

모델
필수의

삭제할 모델

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
curl https://api.openai.com/v1/models/curie:ft-acmeco-2021-03-03-21-44-20 \
  -X DELETE \
  -H "Authorization: Bearer YOUR_API_KEY"
응답
복사
1
2
3
4
5
{
  "id": "curie:ft-acmeco-2021-03-03-21-44-20",
  "object": "model",
  "deleted": true
}

중재

입력 텍스트가 주어지면 모델이 OpenAI의 콘텐츠 정책을 위반하는 것으로 분류하면 출력합니다.

관련 가이드: 중재

중재 만들기

게시하다 https://api.openai.com/v1 /moderations

텍스트가 OpenAI의 콘텐츠 정책을 위반하는지 분류합니다.

요청 본문

입력
문자열 또는 배열
필수의

분류할 입력 텍스트

모델
선택 과목
기본값은 text-moderation-latest입니다 .

두 가지 콘텐츠 조정 모델을 사용할 수 있습니다: text-moderation-stable및 text-moderation-latest.

기본값은 text-moderation-latest시간 경과에 따라 자동으로 업그레이드되는 것입니다. 이렇게 하면 항상 가장 정확한 모델을 사용할 수 있습니다. 를 사용 text-moderation-stable하시면 모델 업데이트 전 사전 공지해드리겠습니다. 의 정확도는 에 text-moderation-stable대한 것보다 약간 낮을 수 있습니다 text-moderation-latest.

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
3
4
5
6
curl https://api.openai.com/v1/moderations \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
  "input": "I want to kill them."
}'
매개변수
복사
1
2
3
{
  "input": "I want to kill them."
}
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
  "id": "modr-5MWoLO",
  "model": "text-moderation-001",
  "results": [
    {
      "categories": {
        "hate": false,
        "hate/threatening": true,
        "self-harm": false,
        "sexual": false,
        "sexual/minors": false,
        "violence": true,
        "violence/graphic": false
      },
      "category_scores": {
        "hate": 0.22714105248451233,
        "hate/threatening": 0.4132447838783264,
        "self-harm": 0.005232391878962517,
        "sexual": 0.01407341007143259,
        "sexual/minors": 0.0038522258400917053,
        "violence": 0.9223177433013916,
        "violence/graphic": 0.036865197122097015
      },
      "flagged": true
    }
  ]
}

엔진

 
엔진 엔드포인트는 더 이상 사용되지 않습니다.

대신 교체 모델 을 사용하십시오. 자세히 알아 보기

이러한 끝점은 API에서 사용할 수 있는 다양한 엔진에 대한 액세스를 설명하고 제공합니다.

엔진 나열

더 이상 사용되지 않음

가져 오기 https://api.openai.com/v1 /engines

현재 사용 가능한(미세 조정되지 않은) 모델을 나열하고 소유자 및 가용성과 같은 각 모델에 대한 기본 정보를 제공합니다.

요청 예시
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
curl https://api.openai.com/v1/engines \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답
복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  "data": [
    {
      "id": "engine-id-0",
      "object": "engine",
      "owner": "organization-owner",
      "ready": true
    },
    {
      "id": "engine-id-2",
      "object": "engine",
      "owner": "organization-owner",
      "ready": true
    },
    {
      "id": "engine-id-3",
      "object": "engine",
      "owner": "openai",
      "ready": false
    },
  ],
  "object": "list"
}

검색 엔진

더 이상 사용되지 않음

가져 오기 https://api.openai.com/v1 /engines/{engine_id}

소유자 및 가용성과 같은 기본 정보를 제공하는 모델 인스턴스를 검색합니다.

경로 매개변수

engine_id
필수의

이 요청에 사용할 엔진의 ID

요청 예시
텍스트-다빈치-003
babbageadadavincitext-davinci-001curie-instruct-betacode-cushman-001텍스트-다빈치-003text-ada-001text-curie-001davinci-instruct-betatext-babbage-001curietext-davinci-002code-davinci-002
곱슬 곱슬하다
라이브러리 선택곱슬 곱슬하다파이썬node.js
복사
1
2
curl https://api.openai.com/v1/engines/text-davinci-003 \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답
텍스트-다빈치-003
babbageadadavincitext-davinci-001curie-instruct-betacode-cushman-001텍스트-다빈치-003text-ada-001text-curie-001davinci-instruct-betatext-babbage-001curietext-davinci-002code-davinci-002
복사
1
2
3
4
5
6
{
  "id": "text-davinci-003",
  "object": "engine",
  "owner": "openai",
  "ready": true
}

매개변수 세부정보

빈도 및 존재 패널티

Completions API 에 있는 빈도 및 존재 여부 패널티 를 사용하여 반복적인 토큰 시퀀스를 샘플링할 가능성을 줄일 수 있습니다. 추가 기여로 로짓(정규화되지 않은 로그 확률)을 직접 수정하여 작동합니다.

mu[j] -> mu[j] - c[j] * alpha_frequency - float(c[j] > 0) * alpha_presence

어디에:

  • mu[j]j 번째 토큰의 로짓입니다.
  • c[j]현재 위치 이전에 해당 토큰이 샘플링된 빈도입니다.
  • float(c[j] > 0)경우 1 c[j] > 0이고 그렇지 않으면 0입니다 .
  • alpha_frequency빈도 페널티 계수
  • alpha_presence존재 페널티 계수

보시다시피 존재 패널티는 적어도 한 번 샘플링된 모든 토큰에 적용되는 일회성 추가 기여이며 빈도 페널티는 특정 토큰이 이미 샘플링된 빈도에 비례하는 기여입니다.

페널티 계수의 합리적인 값은 반복 샘플을 다소 줄이는 것이 목표인 경우 약 0.1에서 1입니다. 반복을 강력하게 억제하는 것이 목표인 경우 계수를 최대 2까지 높일 수 있지만 이렇게 하면 샘플의 품질이 눈에 띄게 저하될 수 있습니다. 음수 값을 사용하여 반복 가능성을 높일 수 있습니다.

728x90
반응형