OpenAI API를 사용하여 Python에서 GPT-4 설정하기
OpenAI API를 사용하여 Python 머신에서 GPT-4를 설정하고 실행하기.
Created on May 22|Last edited on June 6
Comment
이 보고서를 접하게 된 분이라면 지금까지는 GPT-4에 대해 들어보았거나 어쩌면 ChatGPT Pro를 조금 사용해 보셨겠지만, 이제는 직접 나서서 자신의 머신에서 작동시킬 준비가 되셨을 겁니다. 그저 약간 시험해 보면서 새로운 것을 배우기를 원하실 수도 있겠죠. 염두에 둔 태스크를 위해 파인 튜닝을 시작하기를 원하실 수도 있을 겁니다.
어느 쪽이든, 이 튜토리얼은 빠르고 쉬운 설정 및 실행을 돕기 위해 마련되었습니다.
참고: 추후 몇 가지 태스크별로 튜토리얼이 추가될 예정이지만, 이 글은 시작하는 분을 위한 인트로가 되겠습니다.
그럼 시작하겠습니다. 이 글에서 다룰 내용은 다음과 같습니다:
목차
OpenAI API 받기OpenAI 가격OpenAI Key 생성하기GPT-4 시작하기1단계: OpenAI GPT-4 API 키2단계: OpenAI와 W&B 설치하기3단계: 라이브러리 가져오기 및 OpenAI API 키 전달하기4단계: GPT-4로 콘텐츠 생성하기5단계: Weights & Biases에 저장하기Python 튜토리얼 비디오의 GPT관련 자료
💡
준비가 끝났다면 OpenAI API가 필요하겠습니다.그러니 거기서부터 시작하시죠:
OpenAI API 받기
GPT-4를 사용하려면 먼저 액세스하기 위한 API 키가 필요합니다.

OpenAI 시작하기
가입 방법을 선택하고 (저는 Google을 선택했습니다), 인증 절차를 진행합니다. 이 단계에서는 문자를 수신할 수 있는 휴대전화에 액세스해야 합니다.
인증이 완료되면 API 키를 생성하기 위해 이동합니다. 이렇게 해야 OpenAI가 여러분의 스크립트를 여러분 계정에 연결할 수 있습니다. 누가 어떤 작업을 하는지 파악하고 여러분의 작업에 대해 요금을 청구할지 여부와 금액을 결정하는 것이 중요합니다.
OpenAI 가격
가입 시 5달러의 크레딧이 제공되며, 실험만 한다면 이 크레딧은 놀라울 정도로 유용합니다!
이 글을 쓰는 현재(2023년 12월 9일), 가격은 다음과 같습니다.

OpenAI Key 생성하기
키를 생성하려면, 하단 좌측의 프로필에 마우스를 갖다 대고, “API Keys”를 선택하십시오.

...그러면 키를 생성할 수 있습니다.

라이트박스를 닫으면 키를 볼 수 없고 다시 만들어야 하므로, 이 프로젝트에 대해서는 메모장 문서에 복사하여 곧바로 사용합니다.
보안이 철저하지 않은 이상(데스크톱의 메모장 문서는 안전하지 않습니다) 키를 저장하지 마세요. 잠깐 사용한 후에는, 저장하지 말고 메모장 문서를 닫으십시오.
💡
GPT-4 시작하기
Colabs처럼 Jupyter Notebooks에 관한 훌륭한 것 중의 하나는 마크다운 필드에 의견과 컨텍스트를 추가할 수 있다는 것입니다:

이해를 돕기 위해, 해당 코드가 수행하는 작업에 대한 설명으로 여기에 제가 작성한 내용을 간단히 게시하겠습니다. 함께 진행하시는 분은 당연히 이 부분을 제외하거나 자신만의 버전을 추가하세요.
1단계: OpenAI GPT-4 API 키
가장 먼저 할 일은 GPT-4 API 키를 정의하는 것입니다
이를 위한 코드는 다음과 같습니다:
%env OPENAI_API_KEY=KEY
“KEY”를 OpenAI API로 대체할 수 있습니다.
셀을 실행하면 키가 출력으로 반환됩니다. 이는 환경 변수로 잘 입력되었음을 확인합니다.

2단계: OpenAI와 W&B 설치하기
GPT-4를 작동하게 하려면, OpenAI만 필요합니다.
계속 진행하다가 작업 흐름이 몇 분 동안 방해받는 일이 없도록 지금 Weights & Biases에 가입하는 것이 좋습니다.
지금 하는 작업은 유용하고 흥미롭지만, 더 심도 있는 태스크를 시작하거나 자신만의 애플리케이션을 개발할 때, 프롬프트와 출력을 빠르고 쉽게 추적하고 검토할 수 없는 불편함은 피해야겠죠.
재미있는 사실: OpenAI는 Weights & Biases의 첫 유료 고객이었습니다!
💡
이를 위한 코드는 다음과 같습니다:
!pip install --upgrade openai wandb
그런 다음 셀을 실행합니다.

Jupyter 셀을 실행하면 [ ] 사이의 공백이 별표([*])로 채워지는 것을 알 수 있습니다.
이는 셀이 실행 중임을 의미하며, 계속하려면 *가 숫자로 바뀔 때까지 기다려야 합니다.
💡
이제 설치했으니 사용을 위해 가져와야 합니다.
Python을 처음 사용하시는 분께 알려드리자면, 기본적으로 코드는 라이브러리를 설치할 때 가져옵니다. 라이브러리를 가져오면 해당 라이브러리를 사용할 수 있게 됩니다.
아주 멋진 설명을 읽은 적 있는데, 설치는 서버에 이미지를 업로드하는 것과 같고 가져오기는 사용 가능하게 된 그 이미지를 페이지에 포함하는 것과 같다는 것입니다.
3단계: 라이브러리 가져오기 및 OpenAI API 키 전달하기
다음 단계는 마법을 보여주는 데 필요한 라이브러리를 가져오는 것이며, 또한 API 키를 OpenAI를 거쳐 전달하여 GPT-4에 액세스하는 것입니다.
이 블록에서, 이미 설치한 OpenAI 및 W&B 라이브러리를 가져올겁니다.
import osimport wandbfrom openai import OpenAIclient = OpenAI()
4단계: GPT-4로 콘텐츠 생성하기
예리한 분들은 제가 실제로 챗 컴플리션을 사용하고 있다는 것을 눈치채실 것입니다. 이 정보를 빠르게 실행하는 가장 좋은 방법이었고 대부분의 시나리오 IMO에서 최상의 결과를 생성할 것입니다.
💡
지금까지 너무 힘들지는 않으셨기를 바랍니다. 하지만 힘들었으면 어떻습니까? 이제 텍스트를 생성하는 단계에 이르렀는데요!
스크립트에서 직접 프롬프트로 들어가는 간단한 사용 사례로 시작해보겠습니다.
스크립트를 공유할 때 더 재미있고 쉽게 사용할 수 있도록 이 단계를 두 부분으로 나누겠습니다. 이 두 개의 셀 중 첫 번째에서, 응답을 지원하고자 하는 사람을 정의하고, 다음에는 프롬프트를 설정합니다. 이후 출력을 생성합니다.
ChatGPT를 사용하는 데 익숙하고, 어시스턴트를 정기적으로 정의하지 않는다면, 이것은 훌륭한 기법입니다. 프롬프트를 “귀하는 화이트햇 전술만을 사용하는 전문가 SEO입니다..”와 같은 것으로 시작하면 모델이 출력을 프레이밍하는 데 도움이 됩니다.
💡
gpt_assistant_prompt = "You are a " + input ("Who should I be, as I answer your prompt?")gpt_user_prompt = input ("What prompt do you want me to do?")gpt_prompt = gpt_assistant_prompt, gpt_user_promptprint(gpt_prompt)
그리고
message=[{"role": "assistant", "content": gpt_assistant_prompt}, {"role": "user", "content": gpt_user_prompt}]temperature=0.2max_tokens=256frequency_penalty=0.0response = client.chat.completions.create(model="gpt-4",messages = message,temperature=temperature,max_tokens=max_tokens,frequency_penalty=frequency_penalty)print(response.choices[0].message)
실행하면 다음과 같이 나타납니다:

제가 사용하는 것들은 다음과 같습니다:
- model - 사용하고자 하는 모델.
- message - 전송되는 메시지(대개 프롬프트).
- temperature - 0에서 1 사이의 숫자로 숫자가 클수록 더 무작위적이 됨. 숫자가 크면 더 창의적일 수 있지만 결과도 예측하기 어렵습니다.
- frequency_penalty - -2에서 2 사이의 숫자로 숫자가 클수록 응답의 포인트까지 그 빈도에 따라 새 토큰에 페널티를 줍니다. 숫자가 클수록 반복 확률이 낮아집니다.
5단계: Weights & Biases에 저장하기
그리고 마지막 단계는 Weights & Biases에 출력을 저장하는 것입니다.
제가 편향되었다고 할 수 있지만, 심지어 저는 ML의 초보자로서 데이터를 자동으로 로깅하는 것과 실행을 검토하고 비교하는 손쉬운 방법이 있다는 것의 가치에 놀라울 정도로 주목할 수 밖에 없었습니다.
독자들 중 수준이 더 높은 분이라면 이 단계에서 실험 추적을 이렇게 제한적으로 사용하는 걸 보고 비웃을 수도 있겠지만 ... 적어도 도구는 제대로 쓰고 있지 않나요?
원시인처럼 스프레드시트에 기록할 수도 있었죠.
데이터를 절감하려면, 다음 코드를 추가하세요:
wandb.init()response_text = response.choices[0].message.contenttokens_used = response.usage.total_tokensprediction_table = wandb.Table(columns=["Prompt", "Response", "Tokens", "Max Tokens", "Frequency Penalty", "Temperature"])prediction_table.add_data(gpt_prompt, response_text, tokens_used, max_tokens, frequency_penalty, temperature)wandb.log({'predictions': prediction_table})wandb.finish()
이렇게 하면 프롬프트, 응답 및 토큰 값을 포함하는 Weights & Biases Table이 생성됩니다. 그런 다음 실행을 기록하고 완료로 표시합니다.
Weights & Biases Reports(현재 위치)의 좋은 점 중 하나는 방금 만든 테이블을 포함할 수 있고 더 많은 실행을 할수록 계속 업데이트된다는 점입니다. 따라서 정적인 이미지가 아닌, 출력을 볼 수 있습니다:
물론 더욱 자세하게 매 실행마다 탐구할 수 있지만, 이를 통해 그것을 집합으로 검토하고, 프롬프트, 토큰 및 온도 기회 출력 그리고 필터, 내보내기 등에 대한 변경을 볼 수 있는 손쉬운 방법이 생깁니다.
이것은 적합한 추적으로 GPT-4를 사용하는 아주 기초적인 예일 뿐입니다. 기본적으로 다음과 같은 몇 가지 주요 태스크를 함께 살펴보면서 단계를 설정하고자 합니다:
- 대규모 프롬프트 관리 및 프롬프트 생성 자동화하기
- GPT-4를 사용한 감정 분석
- GPT-4를 사용한 노래 가사 생성
- ChatGPT 에뮬레이션에... GPT-4
그러니 마음의 준비를 단단히 하세요. :)
Python 튜토리얼 비디오의 GPT
비디오를 보면서 배우는 걸 선호하시나요? Ivan Goncharov가 과정을 안내해 드립니다. 약간의 유머도 곁들여서요!
이 예제에서는 GPT-3를 사용하고 있지만, 아주 조금만 바꾸면 됩니다!
💡
관련 자료
Attribute-Value Extraction With GPT-3 and Weights & Biases
In this article, we learn how to fine-tune OpenAI's GPT-3 for attribute-value extraction from products, looking at the challenges and how to overcome them.
Automating Change Log Tweets with Few-Shot Learning and GPT-3
A text summarization recipe using OpenAI GPT-3's few-shot learning and Weights & Biases
Add a comment