[GPT-4를 활용한 인공지능 앱 개발] GPT-4와 챗GPT의 API ②

아현·6일 전
1

AI

목록 보기
18/18
post-thumbnail

출처: GPT-4를 활용한 인공지능 앱 개발 | 올리비에 케일린

1. 필수 개념


  • 텍스트 완성, 채팅, 편집 등 모델이 설계된 목적에 따라 API 사용 방식이 다르다는 점을 유의하세요.

    • 예를 들어, 챗GPT는 채팅 모델 기반이며 채팅 엔드포인트를 사용합니다.
  • 프롬프트는 오픈AI API에만 국한되지 않으며 모든 LLM의 시작접입니다.

    • 간단히 말해 프롬프트는 입출력 메시지가 목록에 저장되는 채팅 형식입니다.
  • 토큰은 단어 또는 단어의 일부입니다.

    • 영어텍스트에서 토큰 100개는 단어 약 75개에 해당합니다.

    • 오픈AI 모델의 사용료는 요청에 사용한 토큰 수에 따라 책정됩니다.

    • 즉, API 호출 비용은 입력 텍스트와 출력 텍스트의 길이에 따라 다릅니다.



2. 오픈AI API에서 사용 가능한 모델


  • 오픈AI API를 사용하면 오픈AI에서 개발한 다양한 모델에 접근할 수 있습니다.

    • 모델은 API를 통해(직접 HTTP 호출 또는 제공된 라이브러리를 통해) 서비스로 제공됩니다.

      • 개발자는 간단한 쿼리로 멀리 떨어진 오픈AI 서버에서 모델을 실행할 수 있습니다.
  • 각 모델은 서로 다른 기능을 제공하며 사용료도 다릅니다.

  • 파운데이션 모델 자체를 개별 작업자가 직접 조정할 수는 없지만 오픈AI API를 통해 특정데이터로 파인 튜닝할 수는 있습니다.


인스트럭트GPT


  • 이 계열의 모델은 많은 싱글턴 작업을 처리할 수 있습니다.

    • text-ada-001 모델은 간단한 완성 작업만 할 수 있지만 GPT-3 시리즈 중 가장 빠르고 가장 저렴한 모델이기도 합니다.

    • text-babbage-001과 tet-curie-001 모델은 좀 더 강력하지만 더 비쌉니다.

    • text-davinci-003 모델은 우수한 품질로 모든 완성 작업을 수행할 수 있지만 GPT-3 모델 제품군에서 가장 비쌉니다.



챗GPT


  • 챗GPT의 기본 모델은 gpt-3.5-turbo입니다.

    • 채팅 모델로서 프롬프트를 입력으로 받아 적절하게 생성된 메시지를 출력으로 반환합니다.
  • gpt-3.5-turbo의 채팅 형식은 멀티턴 대화에 용이하도록 설계됐지만 대화 없이 싱글턴 작업에도 사용할 수 있습니다.

    • 싱글턴 작업에서 gpt-3.5-turbo의 성능은 text-davinci-003과 비슷하지만 사용료는 davinci 모델의 1/10 수준이므로 gpt-3.5-turbo를 기본 모델로 사용하는 편이 좋습니다.
  • gpt-3.5-turbo 모델은 토큰 4,000개를 입력으로 받을 수 있습니다.

  • 오픈AI는 gpt-3.5-turbo-16k라는 모델도 제공하는데, 이는 표준 gpt-3.5-turbo 모델과 성능은 동일하지만 컨텍스트가 4배 큽니다.

여기서 "컨텍스트"는 모델이 한 번에 처리할 수 있는 입력 텍스트의 최대 길이를 의미합니다.

  • GPT-3.5-turbo-16k 모델의 경우, "16k"는 이 모델이 최대 16,384 토큰의 입력을 처리할 수 있음을 나타냅니다.
    • 이는 표준 GPT-3.5-turbo 모델의 컨텍스트 길이보다 4배 큰 것입니다.
  • 컨텍스트 길이가 크다는 것은 모델이 더 많은 양의 텍스트를 한 번에 이해하고 처리할 수 있다는 것을 의미합니다. 이는 긴 문서나 복잡한 대화의 경우, 더 많은 정보를 한 번에 고려할 수 있어 보다 일관된 응답을 생성하는 데 유리합니다.
    • 예를 들어, 긴 문서의 요약을 생성하거나, 여러 문단에 걸친 복잡한 질문에 답변할 때 유용할 수 있습니다.
  • 따라서, GPT-3.5-turbo-16k 모델은 동일한 성능을 유지하면서도 더 많은 정보를 한 번에 처리할 수 있는 능력을 제공하는 것입니다.



GPT-4


  • 오픈AI가 출시한 모델 중 가장 크고 강력합니다.

  • 광범위한 텍스트 데이터부터 이미지가지 멀티모달이 가능하도록 학습했으며, 다양한 분야의 지식과 전문성을 지닌다고 평가됩니다.

  • GPT-4는 자연어로 입력받은 어려운 문제를 정확하게 해결합니다.

    • 채팅과 싱글턴 작업 모두에 높은 정확도를 보여 다방면으로 사용할 수 있습니다.
  • 오픈AI는 두 가지 GPT-4 모델을 제공합니다.

    • gpt-4 컨텍스트 크기는 토큰 8,000개

    • gpt-4-32k의 컨텍스트 크기는 토큰 32,000개

      • 컨텍스트 32,000개는 단어 약 24,000개를 의미하며 문서로는 약 40페이지 정도입니다.



3. 오픈AI 플레이그라운드로 GPT 모델 사용하기


  • 오픈AI가 제공하는 다양한 모델을 노코드로 테스트하는 데 가장 좋은 방법은 오픈AI 플레이그라운드를 사용하는 것입니다.

  • 플레이그라운드는 오픈AI가 제공하는 다양한 LLM을 특정 작업에서 빠르게 테스트할 수 있는 웹 기반 플랫폼입니다.

    • 플레이그라운드에서는 모델을 선택하고 프롬프트를입력해 생성된 결과를 손쉽게 확인할 수 있습니다.
  • 플레이그라운드 접근 방법

    1. 오픈AI 홈페이지 접속

    2. 로그인 및 가입을 통해 계정을 만듭니다.

      • 플레이그라운드를 비롯해 대부분의 오픈AI 기능을 사용하려면 계정이 필요하므로 오픈AI 계정이 없다면 새로 만들어야합니다.

      • 플레이그라운드와 API는 유료이므로 결제 수단을 입력합니다.

      챗GPT 플러스 요금제와 API 및 플레이그라운드요금제는 별개입니다. 챗GPT 플러스 서비스에 가입했더라도 API나 플레이그라운드사용료는 별도로 청구됩니다.

    1. 로그인 후 [API] 버튼을 누르면 왼쪽 패널에 [Playground] 버튼이 표시됩니다.



플레이그라운드 모드

  • 2023년 12월 기준, 플레이그라운드에서 사용할 수 있는 모드는 [Assistants], [Chat], [Compelete], [Edit]입니다.
    • 2024년 기준 [Compelete], [Edit]은 서비스 종료

  • [Assistants] 모드는 왼쪽에는 어시스턴트 이름과 인스트럭션, 모델을 설정하는 부분이 있습니다.

    • 추가로 코드 인터프리터, 사용자가 업로드한 파일을 활용한 검색(Retrieval) 기능, 직접 코드를 활용하는 함수(Functions) 기능이 있습니다.
  • [Chat] 모드는 화면 왼쪽에는 [System] 창이 있습니다. 이 창에 텍스트를 입력해 채팅 시스템에 역할을 부여합니다.

    • 예를 들어, 필자는 '고양이를 좋아하는 유용한 어시스턴트'라는 역할을 부여했습니다.

      • 또한 고양이에 관해서만 이양기하고 대답은 짧게 하도록 지시했습니다.

      • 이렇게 설정한역할에 따른 출력 결과 화면 중앙에 표시됩니다.

    • 시스템과 대화를 계속하려면 [Add message] 버튼을 누르고 메시지를 입력한 후 [Submit] 버튼을 누릅니다.

    • 화면 오른쪽에 있는 옵션 패널의 모델 목록에서 원하는 모델 선택 가능

      • 모드에 따라 사용할 수 있는 모델 종류도 다르다.

        • [Chat] 모드에서는 GPT-4와 GPT-3.5 터보 계열 모델, 사용자가 직접 파인 튜닝해 만든 모델 사용 가능



4. 시작하기: 오픈AI 파이썬 라이브러리


파이썬으로 오픈AI API를 활용하려면 openai 파이썬 패키지가 설치되어 있어야 합니다.

$ pip install openai
  • 오픈AI는 GPT-4와 챗GPT를 서비스 형태로 제공합니다.

    • 즉, 사용자는 모델의 코드에 직접 접근할 수 없으며 자체 서버에서 모델을 실행할 수 없습니다.

    • 한편 API 형태로 모델을 제공하고 있어 사용자는 계정과 비밀 키만 있으면 모델을 호출할 수 있습니다.



오픈AI 접근 및 API 키


  • 오픈AI 서비스를 이용하려면 API 키가 필요합니다.

  • 이 키는 두 가지 용도로 사용됩니다.

    1. API 메서드를 호출하는 권한을 부여합니다.

    2. 사용료 청구를 위해 API 호출로 계정에 연결합니다.

  • 애플리케이션에서 오픈 서비스를 호출하려면 API 키가 있어야합니다.

    • 키를 받으려면 오픈AI 플랫폼 페이지로 이동

    • 화면 왼쪽 패널에서 [API keys] 버튼 클릭

    • [API keys] 페이지에서 [Create new secret key]를 누르고 키 사본을 만듭니다. 이 키는 'sk-'로 시작하는 긴 문자열 형태입니다.

    이 키는 계정과 직접 연결되며, 도난 시 원치 않는 비용 발생 가능

  • 환경 변수 설정하기

<리눅스, MacOS에서 설정하는 방법>

#현재 세션에서 환경변수 OPENAI_API_KEY 설정
export OPENAI_API_KEY=sk-(...)

#환경 변수가 설정됐는지 확인
echo $OPENAI_API_KEY

<윈도우에서 설정하는 방법>

#현재 세션에서 환경변수 OPENAI_API_KEY 설정
set OPENAI_API_KEY=sk-(...)

#환경 변수가 설정됐는지 확인
echo %OPENAI_API_KEY%
  • 이 코드 스니펫은 환경 변수를 설정하고 동일한 셸 세션에서 실행되는 다른 프로세스에서 키를 사용할 수 있도록 합니다.

    • 리눅스 시스템에서는 이 코드를 .bashrc 파일에 직접 추가할 수도 있습니다.

      • 이렇게 하면 모든 셸 세션에서 환경 변수에 접근할 수 있습니다.
  • 물론 공개 저장소에 푸시하는 코드에는 해당 명령줄을 포함하지 마세요



‘Hello World’ 예제


  • 오픈AI 설치

$pip install openai
  • python 코드
from openai import OpenAI
client = OpenAI(api_key='OpenAI_API_KEY')

#오픈AI 채팅 완성 엔드포인트 호출
response = client.chat.completions.create(
	model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "Hello World!"}]
)

#응답 추출
print(response.choices[0].message.content)

#결과
Hello there! How may I assist you today?
  • CLI에서 바로 출력
$openai api chat_completions.create -m gpt-3.5-turbo \ 
-g user "Hello world"
  • 파일에서 API 키를 로드

$openai.api_key_path = <PATH>,
  • API 키 수동 설정
$openai.api_key = os.getenv("OPENAI_API_KEY")
  • API 키를 .env에 저장하고 .gitignore로 버전 관리에서 제외할 항목으로 지정할 수 있습니다.

    • 파이썬에서는 dotenv를 통해 환경 변수와 openai 라이브러리를 가져옵니다.

      관련 패키지 설치 필요

    • .env파일을 로드한 후에 openai를 호출해야합니다.

      오픈AI 환경 설정 올바르게 적용되지 않을 수 있다.


$ pip install python-dotenv
from dotenv import loqad_dotenv
load_dotenv()
import openai



5. GPT-4와 챗GPT 사용하기


사내 보안으로 현재 사용 불가 (외부에서 실행 필요)

채팅 완성 엔드포인트의 입력 옵션




채팅 완성 엔드포인트의 결과 출력 형식




텍스트 완성에서 함수까지




6. 다른 텍스트 완성 모델 사용하기


텍스트 완성 엔드포인트의 입력 옵션




텍스트 완성 엔드포인트의 출력 결과 형식




7. 고려 사항


사용료와 토큰 한도




보안과 개인 정보 보호




8. 기타 오픈AI API 및 기능



임베딩




모더레이션 모델




위스퍼와 DALL-E




9. 정리 및 치트 시트




profile
For the sake of someone who studies computer science

0개의 댓글

관련 채용 정보