פיתוח סיכום טקסט: הדרכה לפייתון עם GPT-3.5

פיתוח סיכום טקסט: הדרכה לפייתון עם GPT-3.5

צומת המקור: 2571007

פיתוח סיכום טקסט: הדרכה לפייתון עם GPT-3.5
תמונה על ידי פרימופילמים on פריפיק
 

זהו עידן שבו פריצת דרך בינה מלאכותית מגיעה מדי יום. לא היו לנו הרבה בינה מלאכותית שנוצרה בציבור לפני כמה שנים, אבל עכשיו הטכנולוגיה נגישה לכולם. זה מצוין להרבה יוצרים בודדים או חברות שרוצות לנצל באופן משמעותי את הטכנולוגיה כדי לפתח משהו מורכב, שעשוי לקחת הרבה זמן.

אחת מפריצות הדרך המדהימות ביותר שמשנות את אופן העבודה שלנו היא שחרור ה- דגם GPT-3.5 של OpenAI. מהו דגם ה-GPT-3.5? אם אתן לדוגמנית לדבר בעד עצמה. במקרה כזה, התשובה היא "מודל AI מתקדם ביותר בתחום עיבוד השפה הטבעית, עם שיפורים עצומים ביצירת טקסט מדויק ורלוונטי מבחינה הקשריתt ”.

OpenAI מספקת ממשק API למודל GPT-3.5 שבו נוכל להשתמש כדי לפתח אפליקציה פשוטה, כמו מסכם טקסט. לשם כך, אנו יכולים להשתמש ב-Python כדי לשלב את ה-API של המודל באפליקציה המיועדת שלנו בצורה חלקה. איך נראה התהליך? בואו ניכנס לזה.

יש כמה דרישות מוקדמות לפני ביצוע הדרכה זו, כולל:

- הכרת Python, כולל ידע בשימוש בספריות חיצוניות ו-IDE

– הבנה של ממשקי API וטיפול בנקודת הקצה עם Python

- גישה לממשקי ה-API של OpenAI

כדי לקבל גישה לממשקי API של OpenAI, עלינו להירשם ב- פלטפורמת מפתחים של OpenAI ובקר במפתחות הצג API בפרופיל שלך. באינטרנט, לחץ על הלחצן "צור מפתח סודי חדש" כדי לקבל גישת API (ראה תמונה למטה). זכור לשמור את המפתחות, מכיוון שלא יוצגו להם המפתחות לאחר מכן.
 

פיתוח סיכום טקסט: הדרכה לפייתון עם GPT-3.5
תמונה מאת המחבר
 

עם כל ההכנה מוכנה, בואו ננסה להבין את הבסיס של מודל ה-API של OpenAI.

השמיים דגם GPT-3.5 משפחתי צוין למשימות שפה רבות, וכל דגם במשפחה מצטיין בכמה משימות. עבור דוגמה זו של הדרכה, נשתמש ב- gpt-3.5-turbo כפי שהיה המודל הנוכחי המומלץ כאשר מאמר זה נכתב בשל יכולתו וחסכוניותו.

לעתים קרובות אנו משתמשים ב- text-davinci-003 במדריך OpenAI, אבל נשתמש במודל הנוכחי עבור הדרכה זו. היינו מסתמכים על השלמת צ'אט נקודת קצה במקום השלמה מכיוון שהמודל המומלץ הנוכחי הוא מודל צ'אט. גם אם השם היה מודל צ'אט, זה עובד עבור כל משימת שפה.

בואו ננסה להבין איך עובד ה-API. ראשית, עלינו להתקין את חבילות ה-OpenAI הנוכחיות. 

pip install openai

 

לאחר שסיימנו להתקין את החבילה, ננסה להשתמש ב-API על ידי חיבור דרך נקודת הקצה ChatCompletion. עם זאת, עלינו להגדיר את הסביבה לפני שנמשיך.

ב-IDE האהוב עליך (בשבילי, זה VS Code), צור שני קבצים בשם .env ו summarizer_app.py, בדומה לתמונה למטה.

 

פיתוח סיכום טקסט: הדרכה לפייתון עם GPT-3.5
תמונה מאת המחבר
 

השמיים summarizer_app.py הוא המקום שבו היינו בונים את אפליקציית הסיכום הפשוטה שלנו, ואת .env הקובץ הוא המקום שבו היינו מאחסנים את מפתח ה-API שלנו. מטעמי אבטחה, מומלץ תמיד להפריד את מפתח ה-API שלנו בקובץ אחר במקום לקודד אותם בקובץ Python.

ב .env שים את התחביר הבא ושמור את הקובץ. החלף את your_api_key_here במפתח ה-API האמיתי שלך. אל תשנה את מפתח ה-API לאובייקט מחרוזת; לתת להם כמו שהם. 

OPENAI_API_KEY=your_api_key_here

 

כדי להבין טוב יותר את ה-API של GPT-3.5; נשתמש בקוד הבא כדי ליצור את המילה summarizer.

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 APIs GPT-3.5. באמצעות ה-API של ChatCompletion, אנו יוצרים שיחה ונקבל את התוצאה המיועדת לאחר העברת ההנחיה.

בואו נפרק כל חלק כדי להבין אותם טוב יותר. בשורה הראשונה, אנו משתמשים ב- 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_type ו prompt. ה 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
תמונה מאת המחבר
 

אז מה קרה בקוד למעלה? הרשו לי להסביר בקצרה כל פונקציה שהשתמשנו בה:

  • .st.title: ספק את טקסט הכותרת של יישום האינטרנט.
  • .st.write: כותב את הטיעון באפליקציה; זה יכול להיות הכל מלבד טקסט מחרוזת.
  • .st.text_area: ספק אזור לקלט טקסט שניתן לאחסן במשתנה ולהשתמש בו עבור ההנחיה עבור מסכם הטקסט שלנו
  • .st.columns: מיכלי אובייקט כדי לספק אינטראקציה זה לצד זה.
  • .st.slider: ספק ווידג'ט מחוון עם ערכים מוגדרים שהמשתמש יכול לקיים איתם אינטראקציה. הערך מאוחסן על משתנה המשמש כפרמטר המודל.
  • .st.selectbox: ספק ווידג'ט בחירה למשתמשים כדי לבחור את סגנון הסיכום שהם רוצים. בדוגמה למעלה, אנו משתמשים בחמישה סגנונות שונים.
  • .st.expander: ספק מיכל שמשתמשים יכולים להרחיב ולהחזיק אובייקטים מרובים.
  • .st.button: ספק כפתור שמפעיל את הפונקציה המיועדת כאשר המשתמש לוחץ עליו.

מכיוון ש-streamlit יעצב אוטומטית את ממשק המשתמש בהתאם לקוד הנתון מלמעלה למטה, נוכל להתמקד יותר באינטראקציה.  

עם כל החלקים במקום, בואו ננסה את אפליקציית הסיכום שלנו עם דוגמה לטקסט. לדוגמה שלנו, הייתי משתמש ב- עמוד ויקיפדיה של תורת היחסות טקסט לסיכום. עם פרמטר ברירת מחדל וסגנון כיתה ב', נקבל את התוצאה הבאה.

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! 

 

ייתכן שתשיג תוצאה שונה מזו שלעיל. בואו ננסה את סגנון עקרות הבית ונשנה קצת את הפרמטר (אסימון 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
תמונה מאת המחבר
 

זהו המדריך ליצירת פיתוח יישומי סיכום טקסט עם GPT-3.5. אתה יכול לצבוט את היישום עוד יותר ולפרוס את היישום.

AI גנרטיבי עולה, ועלינו לנצל את ההזדמנות על ידי יצירת אפליקציה פנטסטית. במדריך זה, נלמד כיצד פועלים ממשקי ה-API של GPT-3.5 OpenAI וכיצד להשתמש בהם ליצירת אפליקציית סיכום טקסט בעזרת Python וחבילה יעילה.
 
 
קורנליוס יודא וויאיה הוא עוזר מנהל וכותב נתונים במדעי הנתונים. בעודו עובד במשרה מלאה באליאנץ אינדונזיה, הוא אוהב לחלוק טיפים לפייתון ונתונים באמצעות מדיה חברתית ומדיה כתיבה.
 

בול זמן:

עוד מ KDnuggets