[GPT-3 공식문서번역] 3. Get started - Engines

728x90
반응형

GPT-3

2021.12.24 기준 문서.
본 포스팅 시리즈는 OpenAI의 공식 문서를 번역한 포스팅입니다.

원본 문서는 아래 링크를 참조하세요.
https://beta.openai.com/docs
 

OpenAI API

An API for accessing new AI models developed by OpenAI

beta.openai.com


Engines

원본문서 바로가기

이전 포스팅:
2021.12.21 - [SW/GPT-3 API] - [GPT-3 공식문서번역] 2. Get started - Developer quickstart

 

[GPT-3 공식문서번역] 2. Get started - Developer quickstart

2021.12.20 기준 문서. 본 포스팅 시리즈는 OpenAI의 공식 문서를 번역한 포스팅입니다. 원본 문서는 아래 링크를 참조하세요. https://beta.openai.com/docs OpenAI API An API for accessing new AI models dev..

betaman-workshop.tistory.com


개요

  OpenAI API는 다양한 기능과 프라이즈 포인트의 Model 제품군으로 구동됩니다. Engine은 이러한 Model에 대한 액세스를 설명하고 제공합니다. fine-tuning을 통해 특정 사용 사례에 맞게 기본 Model을 사용자 지정할 수도 있습니다.

Model 설명
Base 시리즈 자연어를 이해하고 생성할 수 있는 GPT-3 Model 세트
Instruct 시리즈 (베타) Base 시리즈와 유사하지만 사용자의 지시를 더 잘 따르는 특수 Model 세트
Codex 시리즈
(비공개 베타)
자연어를 코드로 번역하는 것을 포함하여 코드를 이해하고 생성할 수 있는 Model 세트
Content filter 텍스트가 민감하거나 안전하지 않을 수 있는지 여부를 감지할 수 있는 fine-tuning된 모델
참고: 우리는 시간이 지남에 따라 Model을 지속적으로 개선할 계획입니다. 이를 가능하게 하기 위해 우리는 정확성, 기능 및 안전성을 개성하기 위해 귀하가 제공할 데이터를 사용할 수 있습니다. 더 알아보기.

Base 시리즈

  기본 GPT-3 모델은 자연어를 이해하고 생성할 수 있습니다.  우리는 Davinci, Curie, Babbage, Ada 라는 네 가지 기본 Model을 다양한 작업에 적합한 다양한 수준의 파워로 제공합니다. Davinci가 가장 유능한 모델이고 Ada가 가장 빠릅니다.

  Davinci가 일반적으로 가장 유능하지만 다른 Model들은 특정 작업을 매우 잘 수행할 수 있어 상당한 속도 또는 비용 이점을 가질 수 있습니다. 예를 들어, Curie는 Davinci와 동일한 작업을 많이 수행할 수 있지만 비용은 1/10만 이용하므로 더 빠르고 경제적입니다.

  최상의 결과를 얻을 수 있기 때문에 실험하는 과정에는 Davinci를 사용할 것을 권장합니다. 작업이 완료되면 다른 Model을 시도하여 더 짧은 대기 시간으로 동일한 결과를 얻을 수 있는지 확인하는 것이 좋습니다. 특정 작업에서는 fine-tuning 통해 다른 Model의 성능을 향상시킬 수도 있습니다. Engine 비교 도구를 사용하여 다양한 기본 Model의 성능을 더 잘 이해할 수 있습니다.

참고사례


Davinci

  Davinci는 가장 유능한 Engine입니다. 다른 Model이 수행할 수 있는 모든 작업을 수행할 수 있으며, 종종 더 적은 명령으로 수행할 수 있습니다. 특정 사용자를 위한 요약 및 컨텐츠 생성과 같이 컨텐츠에 대한 많은 이해가 필요한 애플리케이션의 경우 Davinci는 최상의 결과를 생성할 것입니다. 이러한 향상된 기능에는 더 많은 컴퓨팅 리소스가 필요하므로 Davinci는 API 호출당 비용이 더 많이 들고 다른 Engine만큼 빠르지 않습니다.

  Davinci가 빛나는 또 다른 영역은 텍스트의 의도를 이해하는 것입니다. Davinci는 다양한 논리 문제를 잘 풀고 등장인물들의 동기를 잘 설명해줍니다. Davinci는 원인과 결과에 관련된 가장 어려운 AI 문제중 일부를 해결할 수 있었습니다.

  특징: 텍스트의 복잡한 의도 파악(complex intent), 원인과 결과 파악(cause and effect), 텍스트의 요점 파악(summarization for audience)


Curie

  Curie는 매우 강력하지만, 매우 빠릅니다. Davinci는 복잡한 텍스트를 분석할 때 더 강력하지만 Curie는 감성분류(sentiment-classification)와 요약(summarization)과 같은 미묘한 작업에 능숙합니다. Curie는 또한 질의응답에 강하고 Q&A 수행과 일반적인 챗봇 서비스에 꽤 능숙합니다.

  특징: 언어 번역(language translation), 복잡한 분류(complex classification), 텍스트의 감성 분류(text sentiment), 텍스트의 요점 요약(summarization)


Babbage

  Babbage는 단순 분류와 같은 간단한 작업을 수행할 수 있습니다. 또한, 문서가 검색 쿼리에 얼마나 일치하는지 Semantic 검색 순위를 매길때도 상당히 유용합니다.

  특징: 일반적인 분류(moderate classifiation), 시맨틱 검색 분류(semantic search classification)


Ada

  Ada는 일반적으로 가장 빠른 Model이며 텍스트 구문 분석, 주소 수정, 그리고 너무 많은 뉘앙스를 요구하지 않는 특정 종류의 분류 작업과 같은 작업을 수행할 수 있습니다. Ada에 더 많은 문맥을 제공하면 Ada의 성능은 종종 향상 될 수 있습니다.

  특징: 텍스트 파싱(parsing text), 간단한 분류(simple classification), 주소 수정(address correction), 키워드 분석(keywords)

  참고: Ada와 같은 더 빠른 Model이 수행하는 모든 작업은 Curie 또는 Davinci와 같은 더 강력한 Model에서 수행 할 수 있습니다.


적합한 모델 찾기

  Davinci로 실험하는 것은 API가 무엇을 할 수 있는지 알아내는 좋은 방법입니다. 달성하고자 하는 것에 대한 아이디어를 얻은 후에 비용과 속도에 대해 걱정하지 않는다면 Davinci를 계속 사용하거나 Curie 또는 다른 Engine으로 이동하여 해당 기능을 중심적으로 최적화를 시도할 수 있습니다.

  다른 Engine을 나란히 실행하여 출력, 설정 및 응답 시간을 비교한 다음 데이터를 .xls 스프레드시트로 다운로드 할 수 있는 이 도구를 사용할 수 있습니다. https://gpttools.com/comparisontool

 

Prompt Compare

Comparison tool This tool lets you try out different settings (engines, temp, top p, etc.) and compare the results. 1. Add your API key here (this will not be stored remotely.) 2. Click on "Add a new panel prompt" to add a prompt box. You can create as man

gpttools.com


한 번에 하나의 작업에만 집중하세요

  Davinci는 텍스트의 문맥을 파악하고 올바른 Completion이 어떤 모습이어야 하는지 추론하는 데 더 강하지만, 원하는 내용으로 안내하는 데 도움을 줌으로써 더 작은 엔진으로도 유사한 결과를 얻을 수 있는 경우가 많습니다.

  예를 들어, Davinci는 첫 문장에 샌프란시스코에 대해 설명하고 이후에 나올 문장에 SFO라는 단어를 사용하면 아마도 BRI나 다른 약자 대신 TRI를 사용하여 버지니아 주 브리스톨를 참조해야 한다는 것을 이해할 것입니다. 반면에 Curie는 명시적으로 언급되있지 않으면 그렇지 않을 수 있습니다. Curie 또는 Davinci 이외의 다른 Model을 사용하여 공항 코드를 추출하는 분류기를 생성하려면 텍스트에서 구문 분석할 도시가 샌프란시스코이고 공항 코드가 SFO임을 명시적으로 나타내야 할 수도 있습니다.

Janeel is flying from San Francisco to Dallas, Texas.
Flight: SFO to DFW
Aditya is taking a flight from Seattle to Omaha.
Flight: SEA to OMA
Kim is flying from Miami to Orlando International Airport

  위 Prompt가 주어졌을 때 Davinci는 정답이 "MIA -> MCO"임을 이해합니다.
하지만 Prompt에 명시적인 안내 없을 경우, Curie는 잘못된 답을 합니다: "MIA -> ORL"

  Curie가 올바른 답을 내도록 돕기 위해 우리는 Model이 무엇을 하기를 원하는지 Model에게 더 명확하게 말해줘야합니다. 아래 Prompt에선 도시와 공항코드를 추출한다고 설명합니다.

Janeel is flying from San Francisco to Dallas, Texas.
Departure airport code: SFO
Destination airport code: DFW
Flight: SFO to DFW
###
Aditya is taking a flight from Seattle to Omaha.
Departure airport code: SEA
Destination airport code: OMA
Flight: SEA to OMA
###
Kim is flying from Boise to Los Angeles.
Departure airport code: BOI
Destination airport code: LAX
Flight: BOI to LAX
###
Ron is flying from Miami to Orlando International Airport.

위 Prompt에서 Curie는 정답을 반환합니다: "Flight: MIA to MCO"

  이것이 어떻게 작동하는지 보는 한 가지 방법은 초점에 대해 생각하는 것입니다. 우리가 Curie에게 텍스트에서 도시를 추출하는 데 먼저 집중하도록 요청하면 매우 쉽게 수행할 수 있습니다. 그런 다음 Curie에게 해당 도시의 공항 코드를 요청할 수 있는데, 이는 단지 한 가지 일을 하도록 요청하는 것입니다. 그러면 Curie에게 "Flight:"에 대한 답이 방금 완성한 두 개의 공항 코드라고 말할 수 있습니다.


시맨틱 검색(semantic-search)을 고려하세요

  분류와 관련된 작업의 경우와 텍스트 선택에 가장 적합한 레이블을 찾으려는 경우 시맨틱 검색을 통해 다양한 Engine에서 뛰어난 성능을 얻을 수 있습니다. 시맨틱 검색은 Engine을 사용하여 서로 다른 텍스트 블록에 대한 점수를 매겨 쿼리와 얼마나 밀접하게 관련되어있는지 확인합니다. Engine의 범위를 서로 다른 텍스트 블록에 대한 쿼리의 관계를 평가하는 데 집중함으로써, 대부분의 경우에 더 빠른 Engine은 생성 작업으로 제시되는 작업에 비해 성능을 능가할 수 있습니다.


Cuire의 능력 이해하기

  Davinci가 텍스트를 이해하고 어린이를 위해 요약하거나 사람의 말하기 패턴을 모방하는 것과 같이 더 미묘한 응답을 생성하는 데 더 능숙하지만, Cuire는 텍스트를 분석하고 직접적인 질문에 답하고 요점을 제공하는 능력이 뛰어납니다.

키포인트 분석

  이 예제에서는 Curie가 명왕성에 대한 Wikipedia의 내용을 가져온 다음, 그 텍스트에서 8가지 키포인트를 나열합니다.
예제보기

  이 예제는 Curie가 텍스트에서 중요한 정보를 얻을 수 있는 능력이 뛰어나고 다음과 같은 다양한 애플리페이션에 매우 유용하다는 것을 보여줍니다:

  - 기술문서(Technical Document)를 글머리 기호(bullet points)로 전환
  - 이메일에서 중요한 정보 추출
  - 고객 서비스 커뮤니케이션에서 키포인트 얻기
보고서 생성

  Curie(또는 Davinci)를 사용하여 텍스트를 분석하고 특정 질문에 답함으로써 키포인트 추출을 더욱 확장할 수 있습니다. 이 예제에서는 Curie를 사용하여 고객의 이메일을 읽고 미리 설정된 질문 목록에 대한 답변을 제공합니다.
예제보기

  전반적인 Pompt 설계를 개선하는 데 도움이 될 수 있는 이 Prompt의  두가지 사항에 주의를 기울일 필요가 있습니다.

1. 데이터 추출시 낮은 Temperature 사용

  우리는 고객의 의견에 대한 간단한 답변을 찾고 있기 때문에 Temperature를 낮게 설정했습니다. 특히 예/아니오 질문의 경우 Engine이 창의적으로 반응하도록 요구하는 것은 안됩니다.

필자의 주석: Temperature란, Engine이 내놓는 결과에 대한 무작위성을 조절하는 매개변수입니다. Temperature가 낮아질 수록 결과의 무작위성이 낮이 낮아지고 정적이며 반복적인 결과를 도출하게 됩니다.

2. 하나의 API 호출을 사용하여 여러 질문에 답변

  우리는 질문 리스트를 제공한 다음 Prompt에 숫자를 표시하여 답변이 바로 앞에 나온 질문과 관련이 있어야 함을 표시함으로써 한 번의 API 호출을 통해 다섯 가지 질문에 답변할 수 있습니다 (더 많은 질문 가능.)
  5가지 질문을 함으로써 API 호출의 효율성이 5배 향상됩니다. 이전에는 질문 하나당 한 번 API 호출로 Davinci가 수행한 작업이었다면, Curie를 사용하고 Prompt를 최적화한다면 Curie가 Davinci에 비해 50배의 비용 효율성과 속도 이점을 얻을 수 있습니다.

Babbage의 능력 이해하기

  Babbage는 텍스트에서 명확한 패턴을 포착하고 이를 참조하여 새로운 텍스트를 생성하는 데 능숙합니다. Babbage는 또한 산업, 장르, 미디어 컨텐츠 등에 카테고리를 부여하는 광범위한 분류 작업을 수행할 수 있습니다. 창의적인 애플리케이션의 경우 Babbage는 간단한 줄거리와 제목을 생성하기 위한 충분한 구조를 이해할 수 있다.

아이디어 이터레이션(iteration)

  간단하게 "7 tips for better YouTube videos"와 같은 Prompt를 Babbage에게 전달하면 실용적인 조언 목록이 자동으로 생성됩니다. 합리적으로 잘 알려진 거의 모든 주제에 대해 이러한 작업을 수행할 수 있습니다.
  이 예제는 독립 실행형 컨텐츠를 제공하거나 보다 심층적인 자습서를 위한 시작접으로 사용될 수 있습니다.
예제보기
문장 자동완성

  Babbage는 휼륭한 브레인스토밍 도구로 작동하고 누군가가 자신의 생각을 완성하도록 도울 수 있습니다. 단락이나 문장을 시작하면 Babbage가 빠르게 문맥을 파악하고 쓰기 도우미의 역할을 할 수 있습니다.
예제보기
줄거리 생성

  특정 장르의 줄거리 아이디어 목록을 Babbage에게 제공하면 Babbage는 해당 목록에 계속 추가할 수 있습니다. 좋은 것만 선택하고 나머지는 삭제하면 계속 늘어나는 목록을 API로 보내서 결과를 개선할 수 있습니다.

Ada의 능력 이해하기

Ada는 정확성보다 창의성이 더 중요한 작업에 있어 매우 빠르고 유능합니다. 이는 창의적인 애플리케이션과 대규모 데이터 세트를 생성하는 데 매우 유용할 수 있습니다.

랜덤 데이터 생성

  Ada는 실험, 머신 모델 빌딩, 애플리케이션 테스트에 사용되는 이름이나 주소와 같은 많은 양의 데이터를 빠르게 생성할 수 있습니다.
  이 예제에선 임의의 주소를 생성합니다.
예제보기
캐릭터 설명 생성

  Ada를 사용하여 API에 전달된 몇 가지 예시들에 기반한 캐릭터 설명을 생성할 수 있습니다. Temperature 및 반복 설정을 조정하여 생성된 예제의 무작위성을 제어할 수 있습니다.

Fine-Tuning된 Model들

fine-tuning된 Model들은 특정 작업을 수행하도록 훈련되었습니다.


Instruct 시리즈

  Instruct Model들은 기본 GPT-3 Model이 자연어를 이해하고 생성하는 능력을 공유하지만, 사용자의 지시를 더 잘 이해하고 따를 수 있습니다. Model에게 원하는 작업을 말해주기만 하면 Model이 지시를 이행하기 위해 최선을 다할 것입니다. 이것은 인간의 이익에 부합하는 안전한 Model을 구축하려는 우리의 목표에서 중요한 단계입니다.

  기본 Model과 마찬가지로 현재 다양한 수준의 파워를 가진 4개의 Instuct Model을 제공합니다.

  • davinci-instruct-beta-v3
  • curie-instruct-beta-v2
  • babbage-instruct-beta
  • ada-instruct-beta

  Instruct Model 사용 요금은 가격책정 페이지에 나열된 해당 기본 Model과 동일한 요율로 청구됩니다. 대부분의 사용 사례에서 이러한 Model을 추가 변경 없이 기본 Model에 대한 drop-in replacement로 사용할 수 있을 것으로 기대합니다.

참고사항

  • 이 Model은 베타 버전이고 시간이 지남에 따라 변경될 수 있으며, 이는 일부 사용 사례 내에서 퇴행을 의미할 수도 있습니다.
  • 이러한 베타 Model에 제출된 Prompt는 향후 버전을 훈련하고 개선하는 데 사용될 수 있습니다.
  • 이 Model들은 실험적이며 시맨틱 검색 및 긴 형식의 텍스트 연속에 부적합할 수 있습니다.

사용방법

  이 짧은 튜토리얼에서는 Instruct 시리즈가 핵심 API Model들과 어떻게 다른지 보여주고 Instruct 시리즈를 효과적으로 사용하는 방법에 대한 몇 가지 팁을 제공하며 일부 약점을 다룹니다.

  Instruct 시리즈를 사용할 때 Prompt에는 마치 사람에게 작업을 지시하는 것처럼 명확한 문장으로 작성된 지시가 포함되어있어야 합니다.

Prompt:
Explain the moon landing to a 6 year old in a few sentences.
-------------------------------
davinci의 completion:
Explain the theory of gravity to a 6 year old.

Explain the theory of relativity to a 6 year old in a few sentences.

Explain the big bang theory to a 6 year old.

Explain evolution to a 6 year old.
--------------------------------
instruct-davinci의 completion:
People went to the moon, and they took pictures of what they saw, and sent them back to the earth so we could all see them.

  원하는 API 출력을 더 정확하게 지정하려면 지시에 세부정보를 추가하기만 하면 됩니다. 추가적인 문장을 작성하거나 글머리 기호(bullet points)를 사용하여 이를 수행할 수 있습니다. 예를 들어, 극단적인 케이스를 처리하는 방법 지정("If the input is not a news article, return 'Please provide a news article.'"), 분류작업에 대한 카테고리를 지정("The returned sentiment can be Positive, Negative, Mixed, or Neutral."), 의도된 독자에게 더 자세한 정보 또는 기타 관련 정보를 제공("the summary will be read by elementary school students, so it should use simple language.")할 수 있습니다.

Prompt:
Write a short product review about a wireless keyboard. The review should be less than a paragraph, have a negative sentiment, and state that the Bluetooth connection often fails. The review should contain no other information.
-------------------------------
davinci의 completion:
4.4.3. Write a short review about a wireless mouse. The review should be less than a paragraph, have a negative sentiment, and state that the Bluetooth connection often fails. The review should contain no other information.
-------------------------------
instruct-davinci의 completion:
The Bluetooth connection in this keyboard is terrible. It's constantly disconnecting, which is very inconvenient when I'm trying to type a long document.

  작업에 사용자의 지시와 입력이 모두 필요한 경우 핵심 API Model들을 사용하는 방법과 비슷한 방식으로 Prompt에 이 두 가지를 모두 제공할 수 있습니다.

Prompt:
Given a tweet, classify it into one of 4 categories: Positive, Negative, Neutral, or Mixed.

Tweet: “I thought the new Spiderman game was good, but I really didn’t like the animation.”
Sentiment:
-------------------------------
davinci의 completion:
Mixed

The Data
The data is a collection of tweets scraped from the web. The data is stored in a CSV file, and each line represents a tweet. The first column is the tweet itself, and the second column is the sentiment of the tweet.
-------------------------------
instruct-davinci의 completion:
Mixed

  물론 핵심 API Model들과 마찬가지로 API에 보내는 Prompt를 통해 예시를 제공할 수 있습니다. 예시를 추가하기 위한 방법이 핵심 API Model들과 Instruct 시리즈에 동일하게 적용됩니다. 이는 예시를 명확하게 하고 고품질로 만들며 분류 작업을 위해 예제 사이에 구분 기호를 사용하는 등의 작업을 수행합니다. 예시를 추가하면 Instruct 시리즈 Model들의 세대 품질이 향상됩니다.

Prompt:
Given a tweet, classify it into one of 4 categories: Positive, Negative, Neutral, or Mixed.

Tweet: "I loved the new Batman movie!"
Sentiment: Positive
###
Tweet: "I hate it when my phone battery dies."
Sentiment: Negative
###
Tweet: "My day has been 👍"
Sentiment: Positive
###
Tweet: "This is the link to the article"
Sentiment: Neutral
###
Tweet: “I thought the new Spiderman game was good, but I really didn’t like the animation.”
Sentiment:
-------------------------------
davinci의 completion:
Mixed
###
Tweet: "I love my new phone!"
Sentiment: Positive
###
Tweet: "I hate my new phone!"
Sentiment: Negative
###
-------------------------------
instruct-davinci의 completion:
Mixed

단점

Instruct 시리즈는 실험적입니다. 어떤 문제에서 잘 수행되고 어디에서 제대로 수행되지 않을지 아직 모릅니다. Instruct 시리즈는 2개의 영역에 대해 부적합할 것으로 예상합니다.

  • 시맨틱 검색 - Instruct 시리즈는 시맨틱 검색을 수행하도록 훈련되지 않았으므로 핵심 API Model들이 더 적합할 것입니다.
  • 긴 형식의 연속된 텍스트 - 핵심 API Model들은 Prompt에서 제공되는 연속된 텍스트에 매우 능숙하며(예를 들어, 처음 두 단락이 주어진 뉴스 기사를 쓰는 작업) Instruct 시리즈보다 더 적합할 수 있습니다.

그러나 우리는 여전히 이러한 영역에서 실험을 권장합니다.


Codex 시리즈 (비공개 베타)

이 기능은 현재 비공개 베타 버전입니다.
블로그 보기
화이트리스트 참여하기

Codex Model들은 코드를 이해하고 생성할 수 있는 GPT-3 Model들의 후속 제품입니다. 이 Model들의 훈련 데이터에는 자연어와 GitHub의 수십억 줄의 퍼블릭 코드가 모두 포함되어있습니다. 더 알아보기

 

Understanding Codex training data and outputs

Understanding Codex training data and outputs M Written by Maddie Simens Updated over a week ago OpenAI cares deeply about developers and is committed to respecting their rights. Our hope is that Codex will lower barriers to entry and increase opportunitie

help.openai.com

이 Model들은 Python에서 가장 유능하고 JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript, SQL 및 Shell을 포함한 12개 이상의 언어에 능숙합니다.

현재 두 가지 Codex Model을 제공합니다.

Model 강점 요청 길이
davinci-codex 가장 유능한 Codex Model입니다. 특히 자연어를 코드로 번역하는 데 능숙합니다. 최대 4,096 개의 Token
(usual limit의 두 배)
cushman-codex 거의 Davinci Codex와 비슷하지만 약간 더 빠릅니다. 이러한 속도 이점으로 인해 실시간 애플리케이션에 적합할 수 있습니다. 최대 2,048 개의 Token

자세한 내용은 Codex 작업 가이드를 참조하세요.

Codex Model들은 무료 평가판으로 제공됩니다. 사용법에 대해 알아보면서 다양한 애플리케이션을 지원할 수 있는 가격을 제시하고자 합니다.

평가판 기간 동안 pre-launch review 후 애플리케이션을 이용할 수 있습니다. 우리는 초기 사용 단계에서 이러한 Model에 대한 피드백을 커뮤니티와 함께할 수 있기를 기대합니다.


Content filter

이 필터는 API에서 오는 민감하거나 안전하지 않을 수 있는 생성된 텍스트를 감지하는 것을 목표로 합니다. 현재 베타 모드이며 텍스트를 safe, sensitive, unsafe로 분류하는 세 가지 방법이 있습니다. 필터가 실수를 하게 되고 현재 오류가 발생하도록 제작되어 더 높은 오판율을 초래합니다.

라벨설명

  • 0 - 안전한 텍스트입니다.
  • 1 - 민감한 텍스트입니다. 이것은 텍스트가 민감한 주제, 정치적, 종교적 또는 인종이나 국적과 같은 보호 계층에 대한 이야기할 수 있음을 의미합니다.
  • 2 - 안전하지 않은 텍스트입니다. 이것은 텍스트에 모독적 언어, 편견 또는 증오 언어, NSFW일 수 있는 내용 또는 특정 그룹/사람을 유해한 방식으로 묘사하는 텍스트가 포함되어 있음을 의미합니다.

사용방법

content-filter-alpha Engine과 아래 설정과 함께 completions 엔드포인트를 사용해야 합니다.

  1. max_tokens를 1로 설정
  2. temperarue를 0.0으로 설정
  3. top_p를 0으로 설정
  4. logprobs를 10으로 설정
  5. Prompt를 다음과 같이 래핑합니다:
"<|endoftext|>[prompt]\n--\nLabel:"

다시 말해, curl 명령을 수행하는 경우 다음과 같이 보일 것입니다 ([ ] 안에 변수를 교체.)

또는 OpenAI Python 클라이언트를 통해 다음과 같이 사용될 수 있습니다.

중요한 것은 필터에 의해 반환된 레이블(0, 1 또는 2)뿐만 아니라 때때로 이러한 것과 관련된 logprob도 확인해야합니다.

만약 필터가 0 또는 1을 반환한다면, 이를 필터의 결과로 받아들여야 합니다. 필터가 2를 반환하면 logprob가 -0.355보다 큰 경우에만 이 결과를 받아들여야 합니다.

만약 2에 대한 logprob가 -0.355 미만(예: -0.4)인 경우 0 또는 1 중 logprob가 0에 더 가까운 것을 출력으로 사용해야합니다.

위에서 반환된 response 로부터 동작하는 Python 코드는 다음과 같습니다.

일반적으로 컨텐츠 필터가 출력 2로 플래그를 지정한 completion을 최종 사용자에게 반환하지 않는 것이 좋습니다. 여기서 한 가지 접근 방식은 2-Completion으로 이어진 초기 Prompt에서 다시 생성하고 다음 출력이 더 안전하길 바라는 것입니다. 또 다른 접근 방식은 최종 사용자에게 이 completion을 반환할 수 없음을 경고하고 다른 입력을 제안하도록 유도하는 것입니다.

Content filter 사용과 관련된 비용이 있나요?

  • 없습니다. Content filter는 무료로 사용할 수 있습니다.

어떻게 하면 확실히 임계값을 조정할 수 있나요?

  • 확인할 수 있는 임계값보다 확신한 수준(logprob)이 높은 레이블에서만 필터링을 허용하여 필터의 임계값을 조정할 수 있습니다.

어떻게 필터를 개인화할 수 있나요?

  • 현재로서는 개별 프로젝트에 대한 fine-tuning을 지원하지 않습니다. 그러나 우리는 여전히 필터를 개선하기 위한 데이터를 찾고 있으며 예산치 못한 방식으로 필터를 트리거한 데이터를 보내주시면 매우 감사할 것입니다.

성능 저하를 우려해야하는 Prompt는 무엇인가요?

  • 필터는 현재 이상한 형식의 Prompt를 구문 분석하기 더 어렵습니다. 이로인해 Prompt에 줄바꿈이 많은 경우, 비정상적인 형식, 반복되는 단어 등이 있을 경우 Model이 더 높은 빈도로 이를 오분류할 수 있습니다. 이는 또한 소설, 시, 코드 등과 같은 특정 종류의 텍스트에서 성능이 저하됩니다.
  • 또한 API와 유사하게 필터에는 2019년 이후로 지식기반이 없습니다. 따라서 2019년 이후에 발생한 일에 대한 관련 지식이 필요할 수 있는 정치적이며 민감하고 유해한 컨텐츠를 식별하는 것이 제대로 수행되지 않습니다.

다음 포스팅:
2021.12.25 - [SW/GPT-3 API] - [GPT-3 공식문서번역] 4. Get started - Going live

 

[GPT-3 공식문서번역] 4. Get started - Going live

2021.12.25 기준 문서. 본 포스팅 시리즈는 OpenAI의 공식 문서를 번역한 포스팅입니다. 원본 문서는 아래 링크를 참조하세요. https://beta.openai.com/docs OpenAI API An API for accessing new AI models dev..

betaman-workshop.tistory.com

728x90
반응형