본문 바로가기
강의 정리/2023

Chat GPT

by 주연배 2023. 7. 12.

오늘은 방과후에 남아서 MS에서 진행하는 Chat GPT강의를 듣고 실습까지 하고 같다!
그럼 오늘 배운 내용을 정리해보도록 하겠다!


 
인공지능
- 인공 + 지능
- 인간의 학습능력과 추론능력, 지각능력, 자연어 등을 컴퓨터 프로그램으로 실현한 기술

분야
전문가 시스템 (의학)
자연어 처리 (학습, GPT)
- 데이터 마이닝( 필요한 정보 추출)
컴퓨터 비전(얼굴인식, 필터, 자율주행기술)
지능로봇

챗 GPT
- Chat + gpt(Generative pre-trained transformer)
- 방대한 양의 책, 논문, 인터넷의 텍스트 정보를 학습
- 대화형, 거대 자연어 모델
- 이전 단어들을 바탕으로 다음 단어가 나올 확률을 계산해 다음 단어 예측

Chat gpt의 시대
- 우수한 성능
- 파라미터 수, 인간 피드백을 통한 강화학습
- 사용자 친화적인 UI
- 무료 서비스

한계
- 최신 정보 미반영 ( 2021년도까지의 데이터만을 학습, 과거 학습한 정보를 기반으로 답을 생성)
- 환각현상 
  * 틀린 답을 그럴듯하게 생성해 내는 현상
- 윤리적 문제 ( 과제,시험 등 부정행위, 저작권 문제, 가짜 뉴스 및 정보 생성)


Gradio
-인공지능 모델에 대한 웹 기반 사용자 인터페이스를 손쉽게 구축할 수 있는 라이브러리
python 프로그래밍 언어로 작성됨
- 다양한 입력과 출력을 다룰 수 있음

Github
-git repository를 위한 웹 기반 호스팅 서비스
- 클라우드 서버를 사용해서 로컬에서 버전 관리한 소스코드를 업로드하여 공유 가능
- 분산 버전 제어, 액세스 제어, 소스 코드 관리, 버그 추적, 기능 요청 및 작업 관리를 제공
 

Chat GPT에 접속해볼려고 했는데 접속이 안되서 chatgt-poe에 들어가 직접 실습을 해보았다.
내가 원하는 질문과 주제를 던져주면 그에관한 답을 써 내려가는 것이 신기했고 앞으로 유용하게 쓰일 것 같다.
 
 그 후  Gradio의 파이썬 언어를 가지고 '나만의 챗봇 사이트'를 만들어보는 시간을 가졌다.
 
 

 -s.append(input) 코드는 파이썬에서 리스트(List)에 값을 추가하는 코드다.
 
 s는 리스트 객체를 가리키는 변수 이름이며,
append() 함수는 리스트에 새로운 값을 추가하는 함수다.
input은 값을 입력하는 함수로, 이 함수를 통해 사용자로부터 값을 입력받아 리스트 s에 추가하게 된다!
 

s = [1, 2, 3]
s.append(4)

리스트 s는 [1, 2, 3, 4]가 된다.
이렇게 append() 함수를 사용하면, 리스트에 값을 추가하거나 변경할 수 있다.
 
 
# 메세지 입력하기

 
# 함수 호출하기

 

import openai
import gradio

openai.api_key = "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"

start_sequence = "\nAI: "
restart_sequence = "\nHuman: "

prompt = "The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nHuman: Hello, who are you?\nAI: I am an AI created by OpenAI. How can I help you today?\nHuman: "

def openai_create(prompt):
    response = openai.Completion.create(
        model="text-davinci-003",
        prompt=prompt,
        temperature=0.9,
        max_tokens=150,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0.6,
        stop=[" Human:", " AI:"]
    )

    return response.choices[0].text
def chatgpt_clone(input, history):
    history = history or []
    s = list(sum(history, ()))
    # input을 추가한다-> 한 문자로 만듦
    s.append(input)
    inp = ' '.join(s)
    output = openai_create(inp)
    history.append((input, output))
    print(input, output, history)
    return history, history


block = gradio.Blocks()


with block:
    gradio.Markdown("""<h1><center>나만의 GPT 챗봇</center></h1>""")
    chatbot = gradio.Chatbot()
    # 메세지 입력창
    message = gradio.Textbox(placeholder=prompt)
    state = gradio.State()
    submit = gradio.Button("SEND")
    # 함수호출
    submit.click(chatgpt_clone, inputs=[message, state], outputs=[chatbot, state])


block.launch(debug=True)

# block.launch(share=True)

 
위와같이 코드를 짜주게 되면 드디어 나만의 GPT 챗봇을 만들 수 있게 된다!

 

http://127.0.0.1:7860/
 
↑ 위 링크를 복붙하시면 챗봇 사이트에 들어가실 수 있습니다