본문 바로가기
프로그램 개발해서 돈벌기/AI

ChatGPT 개념과 사용법(API 샘플 코드 포함)

by ubmuhan 2023. 2. 6.
반응형

ChatGPt 사용법은 간단합니다. 아래 사이트에서 회원 가입 후 질문하면 답변을 합니다.

가장 큰 특징은 이어서 계속 질문이 가능합니다. (그림 1)

 

그림 1. 메인 화면

 

https://openai.com/blog/chatgpt/

 

ChatGPT: Optimizing Language Models for Dialogue

We’ve trained a model called ChatGPT which interacts in a conversational way. The dialogue format makes it possible for ChatGPT to answer followup questions, admit its mistakes, challenge incorrect premises, and reject inappropriate requests. ChatGPT is

openai.com

 

ChatGPT는 OpenAI에서 개발한 대화형 AI 언어 모델입니다. 대화와 같은 방식으로 사용자 입력에 대한 응답을 생성하는 딥 러닝 기술을 사용하여 작동합니다. 이 모델은 인터넷의 방대한 양의 텍스트 데이터에 대해 교육을 받았기 때문에 광범위한 주제에 관련되고 일관된 응답을 생성할 수 있습니다.

사용자가 텍스트를 입력하면 모델이 이를 처리하고 학습을 기반으로 응답을 생성합니다. 그러면 응답이 사용자에게 반환됩니다. 이 프로세스는 대화의 각 후속 입력 및 응답에 대해 반복됩니다.

 

ChatGPT는 트랜스포머 아키텍처라는 딥 러닝 기술을 기반으로 합니다. 셀프 어텐션 메커니즘(self-attention mechanisms)을 사용하여 입력 텍스트를 처리하고 응답을 생성합니다. 이 모델은 대규모 텍스트 데이터 코퍼스(a large corpus of text data)에 대해 학습되어 언어 패턴을 학습하고 입력과 관련되고 일관된 텍스트를 생성할 수 있습니다.

Transformer 아키텍처는 각각 입력 텍스트를 처리하고 출력 텍스트를 생성하는 일련의 인코딩 및 디코딩 레이어로 구성됩니다. 훈련하는 동안 모델은 입력-출력 쌍을 공급받고 입력이 주어질 가능성이 가장 높은 출력을 생성하는 방법을 학습합니다. 이는 모델의 생성된 출력과 교육 데이터의 실제 출력 간의 차이를 최소화하여 수행됩니다.

학습된 모델은 텍스트 생성, 텍스트 분류, 질문 답변 등 다양한 NLP 작업에 사용할 수 있습니다.

 

그림 2. Methods

InstructGPT 와 동일한 방법을 사용 하지만 데이터 수집 설정이 약간 다른 RLHF(Reinforcement Learning from Human Feedback)를 사용하여 이 모델을 훈련 했습니다. 감독된 미세 조정(supervised fine-tuning: 인간 AI 트레이너가 대화를 제공하여 사용자와 AI 비서 양쪽을 플레이)을 사용하여 초기 모델을 교육했습니다. 강사들에게 모델로 작성된 제안에 대한 액세스 권한을 부여하여 응답을 작성하는 데 도움을 주었습니다. 이 새로운 대화 데이터 세트를 대화 형식으로 변환한 InstructGPT 데이터 세트와 혼합했습니다.

강화 학습을 위한 보상 모델을 만들려면 품질별로 순위가 매겨진 두 개 이상의 모델 응답으로 구성된 비교 데이터를 수집해야 했습니다. 이 데이터를 수집하기 위해 AI 트레이너가 챗봇과 나눈 대화를 수집했습니다. 모델 작성 메시지를 무작위로 선택하고 몇 가지 대체 완료 샘플링했으며 AI 트레이너가 순위를 매겼습니다. 이러한 보상 모델을 사용하여 Proximal Policy Optimization 을 사용하여 모델을 미세 조정할 수 있습니다 . 이 프로세스를 여러 번 반복했습니다. (그림 2.)

 

 

API 사용

파이션을 사용하여 API를 사용할 수 있습니다.


  • 라이브러리 설치 : pip install openai

import openai
import argparse

YOUR_API_KEY = '여기에 API KEY 입력'

def chatGPT(prompt, API_KEY=YOUR_API_KEY):
    
    # set api key
    openai.api_key = API_KEY

    # Call the chat GPT API
    completion = openai.Completion.create(
			  engine = 'text-davinci-003'     # 'text-curie-001'  # 'text-babbage-001' #'text-ada-001'
			, prompt = prompt
			, temperature = 0.5 
			, max_tokens = 1024
			, top_p = 1
			, frequency_penalty = 0
			, presence_penalty = 0)

    return completion['choices'][0]['text']

def main():
    # 지문 입력 란
    prompt = input("Insert a prompt: ")
    print(chatGPT(prompt).strip())

if __name__ == '__main__':
    main()

 

openAI가 발급하는 키 값이 반드시 필요합니다. (유료)

위 코드는 입력을 받고 답변을 출력하는 샘플 소스 입니다. 

 

<< 제약 사항 >>

  • ChatGPT는 2022년 초에 교육을 마친 GPT-3.5 시리즈의 모델에서 미세 조정되었습니다.
  • ChatGPT 및 GPT 3.5는 Azure AI 슈퍼컴퓨팅 인프라에서 학습되었습니다.

 

 

 

 
반응형

댓글