텍스트 요약 개발: GPT-3.5를 사용한 Python 자습서

텍스트 요약 개발: GPT-3.5를 사용한 Python 자습서

소스 노드 : 2571007

텍스트 요약 개발: GPT-3.5를 사용한 Python 자습서
이미지로 프리무필름 on Freepik
 

인공지능의 돌파구가 나날이 찾아오는 시대입니다. 몇 년 전만 해도 AI로 생성된 기술이 대중에 많이 공개되지 않았지만 지금은 모든 사람이 이 기술에 접근할 수 있습니다. 시간이 오래 걸릴 수 있는 복잡한 것을 개발하기 위해 기술을 크게 활용하려는 많은 개인 크리에이터나 회사에 적합합니다.

우리가 일하는 방식을 바꾸는 가장 놀라운 혁신 중 하나는 OpenAI의 GPT-3.5 모델. GPT-3.5 모델이란 무엇입니까? 모델이 스스로 말하게 놔둔다면. 그럴 때 답은 "자연어 처리 분야의 고도로 발전된 AI 모델로 문맥상 정확하고 관련성 높은 텍스트 생성이 크게 개선되었습니다.티".

OpenAI는 텍스트 요약기와 같은 간단한 앱을 개발하는 데 사용할 수 있는 GPT-3.5 모델용 API를 제공합니다. 이를 위해 Python을 사용하여 모델 API를 의도한 애플리케이션에 원활하게 통합할 수 있습니다. 프로세스는 어떻게 생겼습니까? 그것에 들어가자.

이 자습서를 따르기 전에 다음과 같은 몇 가지 전제 조건이 있습니다.

– 외부 라이브러리 및 IDE 사용 지식을 포함한 Python 지식

– API에 대한 이해 및 Python으로 엔드포인트 처리

– OpenAI API에 대한 액세스 권한 보유

OpenAI API 액세스 권한을 얻으려면 OpenAI 개발자 플랫폼 프로필 내 API 키 보기를 방문하세요. 웹에서 "새 비밀 키 만들기" 버튼을 클릭하여 API 액세스 권한을 얻습니다(아래 이미지 참조). 그 이후에는 키가 표시되지 않으므로 키를 저장해야 합니다.
 

텍스트 요약 개발: GPT-3.5를 사용한 Python 자습서
작성자 별 이미지
 

모든 준비가 완료되면 OpenAI API 모델의 기본 사항을 이해해 보겠습니다.

XNUMXD덴탈의 GPT-3.5 제품군 모델 많은 언어 작업에 대해 지정되었으며 제품군의 각 모델은 일부 작업에서 탁월합니다. 이 자습서 예제에서는 다음을 사용합니다. gpt-3.5-turbo 이 기사를 작성할 당시 권장되는 현재 모델은 기능과 비용 효율성 때문입니다.

우리는 종종 text-davinci-003 OpenAI 튜토리얼에 있지만 이 튜토리얼에서는 현재 모델을 사용합니다. 우리는 채팅 완료 현재 권장 모델이 채팅 모델이기 때문에 완료 대신 끝점. 이름이 채팅 모델이더라도 모든 언어 작업에 작동합니다.

API가 어떻게 작동하는지 이해해 봅시다. 먼저 현재 OpenAI 패키지를 설치해야 합니다. 

pip install openai

 

패키지 설치를 완료한 후 ChatCompletion 끝점을 통해 연결하여 API를 사용하려고 합니다. 그러나 계속하기 전에 환경을 설정해야 합니다.

선호하는 IDE(나에게는 VS Code)에서 다음 두 개의 파일을 만듭니다. .envsummarizer_app.py, 아래 이미지와 유사합니다.

 

텍스트 요약 개발: GPT-3.5를 사용한 Python 자습서
작성자 별 이미지
 

XNUMXD덴탈의 summarizer_app.py 여기에서 간단한 요약기 애플리케이션을 빌드하고 .env 파일은 API 키를 저장하는 위치입니다. 보안상의 이유로 Python 파일에 API 키를 하드 코딩하는 대신 다른 파일에 API 키를 분리하는 것이 항상 권장됩니다.

. .env file 다음 구문을 입력하고 파일을 저장합니다. your_api_key_here를 실제 API 키로 바꿉니다. API 키를 문자열 객체로 변경하지 마세요. 그대로 두십시오. 

OPENAI_API_KEY=your_api_key_here

 

GPT-3.5 API를 더 잘 이해하기 위해 다음 코드를 사용하여 단어 요약자를 생성합니다.

openai.ChatCompletion.create( model="gpt-3.5-turbo", max_tokens=100, temperature=0.7, top_p=0.5, frequency_penalty=0.5, messages=[ { "role": "system", "content": "You are a helpful assistant for text summarization.", }, { "role": "user", "content": f"Summarize this for a {person_type}: {prompt}", }, ],
)

 

위의 코드는 OpenAI API GPT-3.5 모델과 상호 작용하는 방법입니다. ChatCompletion API를 사용하여 대화를 만들고 프롬프트를 통과한 후 의도한 결과를 얻습니다.

더 잘 이해하기 위해 각 부분을 분해해 봅시다. 첫 번째 줄에서 우리는 openai.ChatCompletion.create API에 전달할 프롬프트에서 응답을 생성하는 코드입니다.

다음 줄에는 텍스트 작업을 개선하는 데 사용하는 하이퍼파라미터가 있습니다. 다음은 각 하이퍼파라미터 함수의 요약입니다.

  • model: 사용하고자 하는 모델군입니다. 이 튜토리얼에서는 현재 권장 모델(gpt-3.5-turbo).
  • max_tokens: 모델이 생성하는 단어의 상한. 생성된 텍스트의 길이를 제한하는 데 도움이 됩니다.
  • temperature: 온도가 높을수록 모델 출력의 임의성이 더 다양하고 창의적인 결과를 의미합니다. 값 범위는 0에서 무한대 사이이지만 2보다 큰 값은 일반적이지 않습니다. 
  • top_p: Top P 또는 top-k 샘플링 또는 핵 샘플링은 출력 분포에서 샘플링 풀을 제어하는 ​​매개변수입니다. 예를 들어 값 0.1은 모델이 분포의 상위 10%에서 출력만 샘플링함을 의미합니다. 값 범위는 0에서 1 사이였습니다. 더 높은 값은 더 다양한 결과를 의미합니다.
  • frequency_penalty: 출력에서 ​​반복 토큰에 대한 패널티입니다. 값 범위는 -2에서 2 사이이며, 양수 값은 모델이 반복되는 토큰을 억제하고 음수 값은 모델이 더 반복적인 단어를 사용하도록 합니다. 0은 패널티가 없음을 의미합니다.
  • messages: 모델과 함께 처리할 텍스트 프롬프트를 전달하는 매개변수입니다. 값이 컨텍스트인 동안 모델이 컨텍스트와 구조를 이해하는 데 도움이 되는 역할 개체("시스템", "사용자" 또는 "보조자")가 키인 사전 목록을 전달합니다.
    •  역할 "시스템"은 모델 "도우미" 행동에 대해 설정된 지침입니다.
    •  "사용자" 역할은 모델과 상호 작용하는 사람의 프롬프트를 나타냅니다.
    •  "도우미" 역할은 "사용자" 프롬프트에 대한 응답입니다.

위의 매개변수를 설명하면 messages 위의 매개변수에는 두 개의 사전 객체가 있습니다. 첫 번째 사전은 모델을 텍스트 요약자로 설정하는 방법입니다. 두 번째는 텍스트를 전달하고 요약 출력을 얻는 곳입니다. 

두 번째 사전에서 변수도 볼 수 있습니다. person_typeprompt. 그만큼 person_type 튜토리얼에서 보여줄 요약 스타일을 제어하는 ​​데 사용한 변수입니다. 동안 prompt 요약할 텍스트를 전달하는 곳입니다.

자습서를 계속 진행하면서 아래 코드를 summarizer_app.py 파일을 만들고 아래 기능이 어떻게 작동하는지 살펴보겠습니다.

import openai
import os
from dotenv import load_dotenv load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY") def generate_summarizer( max_tokens, temperature, top_p, frequency_penalty, prompt, person_type,
): res = openai.ChatCompletion.create( model="gpt-3.5-turbo", max_tokens=100, temperature=0.7, top_p=0.5, frequency_penalty=0.5, messages= [ { "role": "system", "content": "You are a helpful assistant for text summarization.", }, { "role": "user", "content": f"Summarize this for a {person_type}: {prompt}", }, ], ) return res["choices"][0]["message"]["content"]

 

위의 코드는 이전에 논의한 다양한 매개변수를 받아들이고 텍스트 요약 출력을 반환하는 Python 함수를 만드는 곳입니다. 

매개변수로 위의 기능을 시도하고 출력을 확인하십시오. 그런 다음 Streamlit 패키지로 간단한 애플리케이션을 만드는 자습서를 계속 진행해 보겠습니다.

스트림릿 기계 학습 및 데이터 과학 웹 앱을 만들기 위해 설계된 오픈 소스 Python 패키지입니다. 사용하기 쉽고 직관적이어서 많은 초보자들에게 추천합니다. 

자습서를 계속하기 전에 Streamlit 패키지를 설치해 보겠습니다.

pip install streamlit

 

설치가 완료되면 다음 코드를 summarizer_app.py.

import streamlit as st #Set the application title
st.title("GPT-3.5 Text Summarizer") #Provide the input area for text to be summarized
input_text = st.text_area("Enter the text you want to summarize:", height=200) #Initiate three columns for section to be side-by-side
col1, col2, col3 = st.columns(3) #Slider to control the model hyperparameter
with col1: token = st.slider("Token", min_value=0.0, max_value=200.0, value=50.0, step=1.0) temp = st.slider("Temperature", min_value=0.0, max_value=1.0, value=0.0, step=0.01) top_p = st.slider("Nucleus Sampling", min_value=0.0, max_value=1.0, value=0.5, step=0.01) f_pen = st.slider("Frequency Penalty", min_value=-1.0, max_value=1.0, value=0.0, step=0.01) #Selection box to select the summarization style
with col2: option = st.selectbox( "How do you like to be explained?", ( "Second-Grader", "Professional Data Scientist", "Housewives", "Retired", "University Student", ), ) #Showing the current parameter used for the model with col3: with st.expander("Current Parameter"): st.write("Current Token :", token) st.write("Current Temperature :", temp) st.write("Current Nucleus Sampling :", top_p) st.write("Current Frequency Penalty :", f_pen) #Creating button for execute the text summarization
if st.button("Summarize"): st.write(generate_summarizer(token, temp, top_p, f_pen, input_text, option))

 

명령 프롬프트에서 다음 코드를 실행하여 응용 프로그램을 시작하십시오.

streamlit run summarizer_app.py

 

모든 것이 제대로 작동하면 기본 브라우저에 다음 애플리케이션이 표시됩니다.

 

텍스트 요약 개발: GPT-3.5를 사용한 Python 자습서
작성자 별 이미지
 

그렇다면 위의 코드에서 무슨 일이 일어났을까요? 우리가 사용한 각 기능을 간단히 설명하겠습니다.

  • .st.title: 웹 애플리케이션의 제목 텍스트를 제공합니다.
  • .st.write: 애플리케이션에 인수를 씁니다. 주로 문자열 텍스트가 아닌 다른 것이 될 수 있습니다.
  • .st.text_area: 변수에 저장하고 텍스트 요약기 프롬프트에 사용할 수 있는 텍스트 입력 영역을 제공합니다.
  • .st.columns: 병렬 상호 작용을 제공하는 개체 컨테이너입니다.
  • .st.slider: 사용자가 상호작용할 수 있는 설정 값으로 슬라이더 위젯을 제공합니다. 값은 모델 매개변수로 사용되는 변수에 저장됩니다.
  • .st.selectbox: 사용자가 원하는 요약 스타일을 선택할 수 있도록 선택 위젯을 제공합니다. 위의 예에서는 다섯 가지 스타일을 사용합니다.
  • .st.expander: 사용자가 확장하여 여러 객체를 담을 수 있는 컨테이너를 제공합니다.
  • .st.button: 사용자가 눌렀을 때 원하는 기능을 실행하는 버튼을 제공합니다.

Streamlit은 주어진 코드를 위에서 아래로 따라 UI를 자동으로 디자인하므로 상호 작용에 더 집중할 수 있습니다.  

모든 조각이 제자리에 있으면 텍스트 예제로 요약 응용 프로그램을 사용해 봅시다. 이 예에서는 다음을 사용합니다. 상대성 이론 Wikipedia 페이지 요약할 텍스트입니다. 기본 매개변수와 XNUMX학년 스타일을 사용하여 다음과 같은 결과를 얻습니다.

Albert Einstein was a very smart scientist who came up with two important ideas about how the world works. The first one, called special relativity, talks about how things move when there is no gravity. The second one, called general relativity, explains how gravity works and how it affects things in space like stars and planets. These ideas helped us understand many things in science, like how particles interact with each other and even helped us discover black holes! 

 

위의 결과와 다른 결과를 얻을 수 있습니다. Housewives 스타일을 시도하고 매개변수를 약간 조정해 보겠습니다(토큰 100, 온도 0.5, 핵 샘플링 0.5, 빈도 페널티 0.3).

The theory of relativity is a set of physics theories proposed by Albert Einstein in 1905 and 1915. It includes special relativity, which applies to physical phenomena without gravity, and general relativity, which explains the law of gravitation and its relation to the forces of nature. The theory transformed theoretical physics and astronomy in the 20th century, introducing concepts like 4-dimensional spacetime and predicting astronomical phenomena like black holes and gravitational waves.

 

보시다시피, 우리가 제공하는 동일한 텍스트에 대한 스타일에 차이가 있습니다. 변경 프롬프트 및 매개변수를 사용하면 애플리케이션이 더 기능적일 수 있습니다. 

텍스트 요약기 애플리케이션의 전체 모습은 아래 이미지에서 볼 수 있습니다.

 

텍스트 요약 개발: GPT-3.5를 사용한 Python 자습서
작성자 별 이미지
 

GPT-3.5로 텍스트 요약기 애플리케이션 개발을 만드는 방법에 대한 자습서입니다. 응용 프로그램을 더욱 조정하고 응용 프로그램을 배포할 수 있습니다.

제너레이티브 AI가 부상하고 있으며 환상적인 애플리케이션을 만들어 기회를 활용해야 합니다. 이 자습서에서는 GPT-3.5 OpenAI API의 작동 방식과 이를 사용하여 Python 및 streamlit 패키지의 도움으로 텍스트 요약기 애플리케이션을 만드는 방법을 배웁니다.
 
 
코넬리우스 유다 위자야 데이터 과학 보조 관리자 및 데이터 작성자입니다. Allianz Indonesia에서 풀타임으로 일하는 동안 그는 소셜 미디어와 글쓰기 미디어를 통해 Python 및 데이터 팁을 공유하는 것을 좋아합니다.
 

타임 스탬프 :

더보기 너 겟츠