์ต๊ทผ์ ์ ๋ธ๋ก๊ทธ์ ์ ์
๋ฐ ๋ฐฉ๋ฌธ ํต๊ณ๋ฅผ ๋ณด๋ ChatGPT ํฌ์คํธ์ ์ธ๊ธฐ๊ฐ ๋
๋ณด์ ์ธ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์๋ฌด๋๋ ๋ง์ด ํ์๋๊ณ ์๋ ๊ธฐ์ ์ด๋ค ๋ณด๋ ์ฐพ์ผ์๋ ๋ถ๋ค๋ ๊ฝค ์์ด์ ๋ฟ๋ฏํ ๊ธฐ๋ถ์ด ๋ญ๋๋ค. ๊ฒ๋ค๊ฐ ChatGPT์ ๊ด๋ จ๋ ๋ง์ดํฌ๋ก์ํํธ์ ์๋น๋์๋ ์ต๊ทผ์ ํฌ๊ฒ ์์น์ ํด์ ์ ๋ ๊ธฐ๋ถ์ด ์์ฃผ ์ข์ต๋๋ค. (๊ตฌ์กฐ์ ์ด ์๋ค!!!)
๊ทธ๋์ ์ด์ ์ด๋ ๊ฒ ๋ ๊น์, OpenAI์ API๊ฐ ์ ๊ณตํ๋ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ๋ค์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐ๋ฅผ ๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
์ด๋ฒ ํฌ์คํธ์์๋ OpenAPI๊ฐ ์ ๊ณตํ๋ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ ์ค, ํ ์คํธ ์์ฝ์ ๋ํด ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
์์ด๋ก TL;DR์ด ๋ฌด์จ ๋ป์ธ ์ค ์์๋์? ๋ฐ๋ก "Too Long. Didn't Read"๋ผ๋ ๋ป์ ๋๋ค. ๋๋ฌด ๊ธธ์ด์ ์ฝ์ง ์์๋ค๋ ๋ป์ด๊ณ ๊ธด ๊ธ์ ์์ฝํ ๋ ์ฐ๋ ๋ง์ด๊ธฐ๋ ํฉ๋๋ค. ์ฐ๋ฆฌ๋๋ผ๋ง๋ก ๋ฒ์ญ์ ํด๋ณด์๋ฉด "3์ค ์์ฝ" ์ ๋๊ฐ ์์ ๊ฒ ๊ฐ๋ค์. ์๋ฌดํผ, OpenAI API๋ฅผ ํ์ฉํด์ ๊ธด ํ ์คํธ๋ฅผ ์์ฝํด ๋ณด๊ฒ ์ต๋๋ค.
OpenAI API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ APIํค๋ฅผ ๋ฐ๊ธ๋ฐ์์ผ ํฉ๋๋ค. ๋ฐ๊ธ ๋ฐฉ๋ฒ ๊ด๋ จํด์๋ ์ ์ด์ ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค:
2023.01.17 - [๐ป ํ์ด์ฌ] - [API] ChatGPT Python์ผ๋ก ์ฌ์ฉํด ๋ณด๊ธฐ
์์ค์ฝ๋
์๋ ์์ค์ฝ๋๋ฅผ ํ์ฉํ์๋ฉด ์์ฝ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ฝ์ ํ๊ณ ์ถ์ ๊ธ์ ๋งจ ๋ง์ง๋ง ๋ถ๋ถ์ tl;dr์ ์ถ๊ฐํ๋ฉด ๋๋ค๊ณ ํฉ๋๋ค.
๊ฐ์ข ์ปค๋ฎค๋ํฐ์ SNS์์ tl;dr์ด๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ฌ์ฉํ ๋ง์ ๊ธ๋ค์ด GPTํ์ต์ด ๋๋ฉด์ ๊ฐ๋ฅํด์ง ๊ธฐ๋ฅ์ธ ๊ฒ์ผ๋ก ์ถ์ ๋ฉ๋๋ค.
์์ฝ๊ฒ๋ ์๋ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์๋ฉด ์์๊ฒ ์ง๋ง, ํ๊ตญ์ ์ง์๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. (์ฑ๋ฅ์ด ์ฒ์ฐธํฉ๋๋ค)
์ด ์์ฝ ๊ธฐ๋ฅ์ด ๋๋จํ ์ ์ ์์ฝ์ ์ฌ๋์ฒ๋ผ ํด์ค๋ค๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์๋ ํต์ฌ๋ฌธ์ฅ์ด๋ผ๊ณ ํ๋ค๋ฉด ๋ณธ๋ฌธ ๋ด์์ ๊ฐ์ฅ ์ค์ํ ๋ฌธ์ฅ์ ๋ช ๊ฐ ๊ฐ์ ธ์ค๋ ์์ด ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ ๋ฌธ์ฅ์ ์์ ์ ์๋ ์ค์ํ ์ ๋ณด๋ค์ด ๋๋ฝ๋ ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง, ChatGPT์ ๊ฒฝ์ฐ ์ค์ค๋ก ๋ฌธ์ฅ์ ์์ฑํด ๋ด๋ฏ๋ก (์์ด์ ํํด์๋) ์๋ฒฝ์ ๊ฐ๊น์ด ์์ฝ ์ฑ๋ฅ์ ๋ณด์ด๊ณ ์์ต๋๋ค.
import os
import openai
# ๋ฐ๊ธ๋ฐ์ OpenAI APIํค๋ฅผ ๋ณต๋ถ
openai.api_key = 'YOUR_API_KEY'
def tldr(corpus, max_tokens=100):
if type(corpus) != str:
raise TypeError
else:
# tl;dr ์ด ๋งจ ๋ง์ง๋ง ์ค์ ์์ด์ผ ์์ฝ์ด ๋ฉ๋๋ค
corpus += '\ntl;dr'
# OpenAI API๋ฅผ ํ์ฉํด์ ChatGPT์ฌ์ฉ
response = openai.Completion.create(
model="text-davinci-003",
prompt=corpus,
temperature=0.7,
max_tokens=max_tokens,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=1
)
return response['choices'][0]['text'].strip()
# ์์ฝํ ํ
์คํธ ๋ณ์๋ก ์ ์ฅ
## https://en.wikipedia.org/wiki/ChatGPT
#### Training, Features and Limitation ๋ถ๋ถ
corpus1 = """ChatGPT was fine-tuned on top of GPT-3.5 using supervised learning as well as reinforcement learning.[5] Both approaches used human trainers to improve the model's performance. In the case of supervised learning, the model was provided with conversations in which the trainers played both sides: the user and the AI assistant. In the reinforcement step, human trainers first ranked responses that the model had created in a previous conversation. These rankings were used to create 'reward models' that the model was further fine-tuned on using several iterations of Proximal Policy Optimization (PPO).[6][7] Proximal Policy Optimization algorithms present a cost-effective benefit to trust region policy optimization algorithms; they negate many of the computationally expensive operations with faster performance.[8][9] The models were trained in collaboration with Microsoft on their Azure supercomputing infrastructure.
In addition, OpenAI continues to gather data from ChatGPT users that could be used to further train and fine-tune ChatGPT. Users are allowed to upvote or downvote the responses they receive from ChatGPT; upon upvoting or downvoting, they can also fill out a text field with additional feedback.[10][11]
Features and limitations
Conversation with ChatGPT about whether Jimmy Wales was involved in the Tiananmen Square protests, December 30, 2022
Although the core function of a chatbot is to mimic a human conversationalist, ChatGPT is versatile. For example, it can write and debug computer programs,[12] to compose music, teleplays, fairy tales, and student essays; to answer test questions (sometimes, depending on the test, at a level above the average human test-taker);[13] to write poetry and song lyrics;[14] to emulate a Linux system; to simulate an entire chat room; to play games like tic-tac-toe; and to simulate an ATM.[15] ChatGPT's training data includes man pages and information about Internet phenomena and programming languages, such as bulletin board systems and the Python programming language.[15]
In comparison to its predecessor, InstructGPT, ChatGPT attempts to reduce harmful and deceitful responses.[16] In one example, whereas InstructGPT accepts the premise of the prompt "Tell me about when Christopher Columbus came to the U.S. in 2015" as being truthful, ChatGPT acknowledges the counterfactual nature of the question and frames its answer as a hypothetical consideration of what might happen if Columbus came to the U.S. in 2015, using information about Columbus' voyages and facts about the modern world – including modern perceptions of Columbus' actions.[6]
Unlike most chatbots, ChatGPT remembers previous prompts given to it in the same conversation; journalists have suggested that this will allow ChatGPT to be used as a personalized therapist.[17] To prevent offensive outputs from being presented to and produced from ChatGPT, queries are filtered through OpenAI's company-wide moderation API,[18][19] and potentially racist or sexist prompts are dismissed.[6][17]
ChatGPT suffers from multiple limitations. OpenAI acknowledged that ChatGPT "sometimes writes plausible-sounding but incorrect or nonsensical answers".[6] This behavior is common to large language models and is called hallucination.[20] The reward model of ChatGPT, designed around human oversight, can be over-optimized and thus hinder performance, otherwise known as Goodhart's law.[21] ChatGPT has limited knowledge of events that occurred after 2021. According to the BBC, as of December 2022 ChatGPT is not allowed to "express political opinions or engage in political activism".[22] Yet, research suggests that ChatGPT exhibits a pro-environmental, left-libertarian orientation when prompted to take a stance on political statements from two established voting advice applications.[23] In training ChatGPT, human reviewers preferred longer answers, irrespective of actual comprehension or factual content.[6] Training data also suffers from algorithmic bias, which may be revealed when ChatGPT responds to prompts including descriptors of people. In one instance, ChatGPT generated a rap indicating that women and scientists of color were inferior to white and male scientists.
"""
## https://www.mk.co.kr/news/stock/10627563
corpus2 = """
๊ธ๋ก๋ฒ ์์
๋คํธ์ํฌ์๋น์ค(SNS)์ธ ์ธ์คํ๊ทธ๋จ, ํ์ด์ค๋ถ์ ๋ชจํ์ฌ ๋ฉํ ํ๋ซํผ(META) ์ฃผ๊ฐ๊ฐ 400์ต๋ฌ๋ฌ(์ฝ 49์กฐ์) ๊ท๋ชจ์ ์์ฌ์ฃผ ๋งค์
์์์ 19% ์ด์ ๊ธ๋ฑํ๋ค. ๋ฉํ๋ ๋์งํธ ๊ด๊ณ ์์ฅ ์นจ์ฒด๋ก ์๊ฐ ๊ธฐ๋์น๋ฅผ ๋ฐ๋๋ ์ค์ ์ ๋ฐํํ์ง๋ง ํ๊ฒฉ์ ์ธ ์ฃผ์ฃผ ํ์์ฑ
์ด ํจ๊ณผ๋ฅผ ๋ฐํํ๋ค๋ ํ๊ฐ๋ค.
1์ผ(ํ์ง์๊ฐ) ๋ฉํ๋ ์ง๋ํด 4๋ถ๊ธฐ ๋งค์ถ์ก์ผ๋ก 321์ต7000๋ง๋ฌ๋ฌ(์ฝ 39์กฐ2800์ต์)๋ฅผ ๊ธฐ๋กํ๋ค๊ณ ๋ฐํํ๋ค. ์ด๋ ์๊ฐ๊ฐ ์ถ์ ํ 315์ต3000๋ง๋ฌ๋ฌ๋ฅผ ์๋๋ ํธ์ค์ ์ด๋ค. ๋ฐ๋ฉด ์๊ฐ๊ฐ ์ค์ํ๊ฒ ๋ณด๋ ์์ต์ฑ ์งํ์ธ ์ฃผ๋น์์ด์ต(EPS)์ 1.76๋ฌ๋ฌ๋ก ์์ฅ ๊ธฐ๋์น(2.26๋ฌ๋ฌ)๋ฅผ ํฌ๊ฒ ๋ฐ๋์๋ค. ์ด๋ก์จ ๋ฉํ๋ ์ง์ 6๊ฐ ๋ถ๊ธฐ ์ฐ์ ๋งค์ถ์ก, ์ฃผ๋น์์ด์ต ์ค ํ ์์๊ฐ ์๊ฐ ์ถ์ ์น์ ๋ฏธ์น์ง ๋ชปํ๋ ์ค์ ์ถฉ๊ฒฉ ๊ธฐ๋ก์ ์ด์ด๊ฐ๊ฒ ๋๋ค.
๋ถ์งํ ์ค์ ์ ๋งํํ๊ธฐ ์ํด ๋ฉํ๊ฐ ๋์ด ์น๋ถ์๋ ํ๊ฒฉ์ ์ธ ์ฃผ์ฃผ ํ์ ์ ์ฑ
์ด๋ค. ์ด๋ ๋ฉํ๋ ์ค์ ์ ๋ฐํํ๋ฉด์ ์ฃผ๊ฐ ๋ถ์์ ์ํ 400์ต๋ฌ๋ฌ ๊ท๋ชจ์ ์์ฌ์ฃผ ๋งค์
์ ๋์๊ฒ ๋ค๊ณ ๋ฐํํ๋ค. 1์ผ ๊ธฐ์ค ๋ฉํ์ ์๊ฐ์ด์ก์ 4015์ต1000๋ง๋ฌ๋ฌ ์์ค์ด๋ค. ๋ฉํ ์๊ฐ์ด์ก์ 10%์ ํด๋นํ๋ ์ก์๋งํผ ์์ฌ์ฃผ๋ฅผ ์ฌ๋ค์ด๊ฒ ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ ๊ตญ๋ด ์ฆ์์์ ์ผ์ฑ์ ์ ์๊ฐ์ด์ก(377์กฐ์)์ 13%์ ํด๋นํ๋ ์์น์ด๊ธฐ๋ ํ๋ค. ๋ฉํ์ ์์ฌ์ฃผ ๋งค์
๊ท๋ชจ(49์กฐ์)๋ณด๋ค ์๊ฐ์ด์ก ๊ท๋ชจ๊ฐ ํฐ ๊ตญ๋ด ์ข
๋ชฉ์ ์ผ์ฑ์ ์, LG์๋์ง์๋ฃจ์
, SKํ์ด๋์ค, ์ผ์ฑ๋ฐ์ด์ค๋ก์ง์ค ๋ฟ์ด๋ค.
๋ฉํ์ ์์ฌ์ฃผ ๋งค์
๋ฐํ ํ ์ฃผ๊ฐ๋ ์๊ฐ์ธ ๊ฑฐ๋์์ 19.5% ์์นํ๋ค. ์ง๋ํด 11์ ๊ธฐ๋กํ ์ฃผ๋น 88๋ฌ๋ฌ์ ๋น๊ตํ๋ฉด 107% ์์นํ ์์ค์ด๋ค.
๊ทธ๋์ ๊ธ๋ฝํ๋ ๋ฉํ์ ์ฃผ๊ฐ๊ฐ ๋ฐ๋ฑํ๊ณ ์์ง๋ง ๊ด๋ชฉํ ๋งํ ์ค์ ์ฑ์ฅ์ด ํ์คํ๋์ง ์๋๋ค๋ฉด ์ถ๊ฐ ์์น ๋๋ ฅ์ ์ป๊ธด ์ด๋ ค์ธ ๊ฒ์ด๋ ์ง์ ์ด ๋์จ๋ค. ๋ฉํ๊ฐ ์ ์ฑ์ฅ ๋๋ ฅ์ผ๋ก ์ผ๊ณ ์๋ ๋ฉํ๋ฒ์ค ์ฌ์
๋ถ๋ฌธ ๋ํ ์ ์๊ฐ ๋์ ์ค์ด๋ค.
SNS ํ๋ซํผ ์ฌ์ฉ์ ์๊ฐ ์ฆ๊ฐํ๊ณ ์๋ค๋ ์ ์ ํธ์ฌ๋ค. ๋ฉํ๋ ํ์ด์ค๋ถ ๋ฑ์ ์ผ์ผ ํ์ฑ ์ฌ์ฉ์์๊ฐ ์ ๋
๋๋น 5% ์ฆ๊ฐํ 29์ต6000๋ง๋ช
์ผ๋ก ์ง๊ณ๋๋ค๊ณ ๋ฐํ๋ค. ์ง๋ ๋ทํ๋ฆญ์ค ์ค์ ๋ฐํ ๋์ฒ๋ผ ํ๋ซํผ ์ฌ์
์์ ๊ฒฝ์ฐ ์ด์ต์ด ์ ์ฒด ๋ผ๋ ์ฌ์ฉ์์๊ฐ ๋๊ฒ ๋๋ฉด ์ฑ์ฅ ์ธก๋ฉด์์ ์์ฅ์ ๊ธ์ ์ ์ผ๋ก ํ๊ฐํ๋ ๋๋ฌธ์ด๋ค.
๋ฉํ ์ธก์ ์์ต์ฑ์ ๋ํ ์์ฅ์ ์ฐ๋ ค๋ฅผ ์๊ณ ์๋ค๋ฉฐ ํฅํ ‘ํจ์จ์ฑ ๊ฐ์ ’์ ์ง์คํ๊ฒ ๋ค๊ณ ๊ฐ์กฐํ๋ค. ๋งํฌ ์ ์ปค๋ฒ๊ทธ ๋ฉํ ์ต๊ณ ๊ฒฝ์์(CEO)๋ ์ค์ ๋ฐํ ์ฑ๋ช
์ ํตํด “ํ์ฌ ์ค๋ฆฝ ์ด๊ธฐ ๋น์ ๋งค๋
์์ต์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํ์ง๋ง 2022๋
๋ฉํ๋ ์ญ์ฌ์ ์ฒ์์ผ๋ก ๋ง์ด๋์ค ์ฑ์ฅ์ ํ๋ ๋ฑ ์ํฉ์ด ๊ทน์ ์ผ๋ก ๋ณํ๋ค”๋ฉด์๋ “์ฌํด ๋ฉํ์ ๊ฒฝ์ ํ
๋ง๋ ํจ์จ์ฑ์ด ๋ ๊ฒ์ด๋ฉฐ ๋ ๊ฐํ๊ณ ๋ฏผ์ฒฉํ ์กฐ์ง์ด ๋๋ ๋ฐ ์ง์คํ๊ณ ์๋ค”๊ณ ๋ฐํ๋ค.
"""
ํ ์คํธ ๊ฒฐ๊ณผ
corpus1 ์ ChatGPT์ ์ํคํผ๋์ ์๋ฌธ ์ค๋ช ์ค Training (ํ๋ จ) ๋ถ๋ถ๊ณผ Features and Limitation (๊ธฐ๋ฅ๊ณผ ํ๊ณ) ๋ถ๋ถ์ ๋ฐ์ทํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ corpus2 ์ ๊ฒฝ์ฐ์๋ ๋งค์ผ๊ฒฝ์ ์ ๋ฌธ๊ธฐ์ฌ๋ฅผ ๋ฐ์ทํ์ต๋๋ค.
์๋ ๊ฒฐ๊ณผ 1์ ๋ณด์๋ฉด ์์ด์ ๊ฒฝ์ฐ์๋ ์๋ฒฝ์ ๊ฐ๊น์ด ์์ฝ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค. ๊ธ์๊ฐ์ ์ ํ์ด 100๊ฐ๋ผ ํ๋ฐ์ ์๋ ธ์ง๋ง, ์ด๋ค ๋ฐฉ์์ผ๋ก ํ๋ จ์ด ๋์์ผ๋ฉฐ, ์ด๋ค ์ ํ์ ์ ๊ฐ์ง๊ณ ์๋์ง๋ฅผ ์ ๋ถ ์ค๋ช ํฉ๋๋ค. ์ฌ์ง์ด ๋ณธ๋ฌธ๊ณผ ๋๊ฐ์ ๋ฌธ์ฅ์ด ์ ํ ์์ต๋๋ค.
๊ฒฐ๊ณผ 2์ ๊ฒฝ์ฐ์๋... ์ฑ๋ฅ์ด ์ข์ง ์์ต๋๋ค. ํ๊ธ์ ์๋ฌด๋๋ ํ์ต๋ฐ์ดํฐ๊ฐ ์ ๊ธฐ๋ ํ๊ณ , ์ฌ์ฉ์๊ฐ ๋ง์ง ์์ ์ง์์ด ๋๋ ๊ฒ ๊ฐ์ง ์์ต๋๋ค. ํ์ฌ ๊น์ง๋ก์ ํ๊ธ ์์ฝ์ ๊ฒฝ์ฐ์๋ ์์ด๋ก ๋ฒ์ญ์ ํ์ฌ ์์ฝ์ ํ ๋ค, ๋ค์ ํ๊ธ๋ก ๋ฒ์ญ์ ํ๋ ๋ฐฉ๋ฒ๋ฐ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
TL;DR
ChatGPT๋ก ์ฌ๋๊ณผ ๊ฐ์ ๋ฌธ์ฅ ์์ฝ์ด ๊ฐ๋ฅํฉ๋๋ค.
'๐ป ITยท๊ธฐ์ ยทํต๊ณ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[API] ๋ฆฌ๊ทธ์ค๋ธ๋ ์ ๋: ์ฑํผ์ธ ๋ง๊ณ API๋ฅผ ๊ฐ์ง๊ณ ๋์๋ณด์ (2) | 2023.02.05 |
---|---|
[API] OpenAI API ๊ฐ์ง๊ณ ๋๊ธฐ 2ํ: ๊ฐ์ฒด๋ช ์ธ์ (NER) (0) | 2023.02.04 |
Python์ผ๋ก ์ฃผ์ฌ์ ๊ฒ์ ๋ง๋ค๊ธฐ (0) | 2023.02.03 |
[NLP] ์ ๊ทํํ์์ ํ์ฉํ ์ ์ฒ๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ์ถ์ถ (0) | 2023.01.29 |
[์นํฌ๋กค๋ง 2ํ] selenium webdriver๋ฅผ ํ์ฉํ ์ํ ๋ฆฌ์คํธ ํฌ๋กค๋ง (0) | 2023.01.29 |
๋๊ธ