টেক্সট সামারাইজেশন ডেভেলপমেন্ট: GPT-3.5 সহ একটি পাইথন টিউটোরিয়াল

টেক্সট সামারাইজেশন ডেভেলপমেন্ট: GPT-3.5 সহ একটি পাইথন টিউটোরিয়াল

উত্স নোড: 2571007

টেক্সট সামারাইজেশন ডেভেলপমেন্ট: GPT-3.5 সহ একটি পাইথন টিউটোরিয়াল
দ্বারা চিত্র ফ্রিমুফিল্ম on Freepik
 

এটি এমন একটি যুগ যেখানে এআই ব্রেকথ্রু প্রতিদিন আসছে। কয়েক বছর আগে আমাদের কাছে জনসমক্ষে অনেক AI-উৎপন্ন ছিল না, কিন্তু এখন প্রযুক্তিটি সবার কাছে অ্যাক্সেসযোগ্য। এটি অনেক স্বতন্ত্র স্রষ্টা বা কোম্পানির জন্য চমৎকার যারা জটিল কিছু তৈরি করতে প্রযুক্তির সুবিধা নিতে চায়, যার জন্য অনেক সময় লাগতে পারে।

আমরা কীভাবে কাজ করি তা পরিবর্তন করে এমন সবচেয়ে অবিশ্বাস্য সাফল্যগুলির মধ্যে একটি হল মুক্তি OpenAI দ্বারা GPT-3.5 মডেল. GPT-3.5 মডেল কি? আমি যদি মডেলকে নিজেদের জন্য কথা বলতে দেই। সেক্ষেত্রে উত্তর হল "প্রাসঙ্গিকভাবে সঠিক এবং প্রাসঙ্গিক টেক্স তৈরিতে ব্যাপক উন্নতি সহ প্রাকৃতিক ভাষা প্রক্রিয়াকরণের ক্ষেত্রে একটি অত্যন্ত উন্নত এআই মডেলt ”।

OpenAI GPT-3.5 মডেলের জন্য একটি API প্রদান করে যা আমরা একটি সাধারণ অ্যাপ তৈরি করতে ব্যবহার করতে পারি, যেমন একটি টেক্সট সামারাইজার। এটি করার জন্য, আমরা পাইথন ব্যবহার করতে পারি মডেল API-কে আমাদের উদ্দিষ্ট অ্যাপ্লিকেশনে নির্বিঘ্নে সংহত করতে। প্রক্রিয়াটি কেমন দেখাচ্ছে? এর মধ্যে প্রবেশ করা যাক।

এই টিউটোরিয়ালটি অনুসরণ করার আগে কয়েকটি পূর্বশর্ত রয়েছে, যার মধ্যে রয়েছে:

- পাইথনের জ্ঞান, বহিরাগত লাইব্রেরি এবং IDE ব্যবহার করার জ্ঞান সহ

- API গুলি বোঝা এবং পাইথনের সাথে শেষ পয়েন্ট পরিচালনা করা

- OpenAI API-তে অ্যাক্সেস থাকা

OpenAI APIs অ্যাক্সেস পেতে, আমাদের অবশ্যই নিবন্ধন করতে হবে OpenAI বিকাশকারী প্ল্যাটফর্ম এবং আপনার প্রোফাইলের মধ্যে ভিউ API কীগুলি দেখুন৷ ওয়েবে, API অ্যাক্সেস অর্জন করতে "নতুন গোপন কী তৈরি করুন" বোতামে ক্লিক করুন (নীচের ছবিটি দেখুন)। কীগুলি সংরক্ষণ করতে ভুলবেন না, কারণ এর পরে তাদের কীগুলি দেখানো হবে না।
 

টেক্সট সামারাইজেশন ডেভেলপমেন্ট: GPT-3.5 সহ একটি পাইথন টিউটোরিয়াল
লেখকের ছবি
 

সমস্ত প্রস্তুতির সাথে, আসুন OpenAI APIs মডেলের বেসিক বোঝার চেষ্টা করি।

সার্জারির GPT-3.5 ফ্যামিলি মডেল অনেক ভাষার কাজের জন্য নির্দিষ্ট করা হয়েছিল, এবং পরিবারের প্রতিটি মডেল কিছু কাজের ক্ষেত্রে পারদর্শী। এই টিউটোরিয়াল উদাহরণের জন্য, আমরা ব্যবহার করব gpt-3.5-turbo যেহেতু এটি প্রস্তাবিত বর্তমান মডেল ছিল যখন এই নিবন্ধটি তার ক্ষমতা এবং খরচ-দক্ষতার জন্য লেখা হয়েছিল।

আমরা প্রায়ই ব্যবহার করি text-davinci-003 OpenAI টিউটোরিয়ালে, কিন্তু আমরা এই টিউটোরিয়ালের জন্য বর্তমান মডেল ব্যবহার করব। আমরা উপর নির্ভর করবে চ্যাট সমাপ্তি সমাপ্তির পরিবর্তে শেষ পয়েন্ট কারণ বর্তমান প্রস্তাবিত মডেলটি একটি চ্যাট মডেল। এমনকি যদি নামটি একটি চ্যাট মডেল ছিল, এটি যেকোনো ভাষার কাজের জন্য কাজ করে।

এপিআই কিভাবে কাজ করে তা বোঝার চেষ্টা করি। প্রথমত, আমাদের বর্তমান OpenAI প্যাকেজগুলি ইনস্টল করতে হবে। 

pip install openai

 

আমরা প্যাকেজ ইনস্টল করা শেষ করার পরে, আমরা ChatCompletion এন্ডপয়েন্টের মাধ্যমে সংযোগ করে API ব্যবহার করার চেষ্টা করব। যাইহোক, আমরা চালিয়ে যাওয়ার আগে আমাদের পরিবেশ সেট করতে হবে।

আপনার প্রিয় আইডিইতে (আমার জন্য, এটি ভিএস কোড), নামক দুটি ফাইল তৈরি করুন .env এবং summarizer_app.py, নীচের ছবির অনুরূপ.

 

টেক্সট সামারাইজেশন ডেভেলপমেন্ট: GPT-3.5 সহ একটি পাইথন টিউটোরিয়াল
লেখকের ছবি
 

সার্জারির summarizer_app.py যেখানে আমরা আমাদের সহজ সংক্ষিপ্তসার অ্যাপ্লিকেশন তৈরি করব, এবং .env ফাইল যেখানে আমরা আমাদের API কী সংরক্ষণ করব। নিরাপত্তার কারণে, পাইথন ফাইলে হার্ড-কোড না করে অন্য ফাইলে আমাদের API কী আলাদা করার পরামর্শ দেওয়া হয়।

মধ্যে .env ফাইলে নিম্নলিখিত সিনট্যাক্স রাখুন এবং ফাইলটি সংরক্ষণ করুন। আপনার প্রকৃত API কী দিয়ে আপনার_api_key_here প্রতিস্থাপন করুন। 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 APIs GPT-3.5 মডেলের সাথে ইন্টারঅ্যাক্ট করি। ChatCompletion API ব্যবহার করে, আমরা একটি কথোপকথন তৈরি করি এবং প্রম্পটটি পাস করার পরে অভিপ্রেত ফলাফল পাব।

আসুন সেগুলি আরও ভালভাবে বোঝার জন্য প্রতিটি অংশকে ভেঙে দেই। প্রথম লাইনে, আমরা ব্যবহার করি openai.ChatCompletion.create প্রম্পট থেকে প্রতিক্রিয়া তৈরি করার জন্য কোড আমরা API এ পাস করব।

পরের লাইনে, আমাদের হাইপারপ্যারামিটার রয়েছে যা আমরা আমাদের পাঠ্য কাজগুলিকে উন্নত করতে ব্যবহার করি। এখানে প্রতিটি হাইপারপ্যারামিটার ফাংশনের সারসংক্ষেপ রয়েছে:

  • model: মডেল পরিবার আমরা ব্যবহার করতে চাই. এই টিউটোরিয়ালে, আমরা বর্তমান প্রস্তাবিত মডেল ব্যবহার করি (gpt-3.5-turbo).
  • max_tokens: মডেল দ্বারা তৈরি শব্দের উপরের সীমা। এটি উত্পন্ন পাঠ্যের দৈর্ঘ্য সীমাবদ্ধ করতে সহায়তা করে।
  • temperature: মডেল আউটপুট এর এলোমেলোতা, একটি উচ্চ তাপমাত্রা সহ, একটি আরো বৈচিত্র্যময় এবং সৃজনশীল ফলাফলের মানে. মানের পরিসর 0 থেকে অসীমের মধ্যে, যদিও 2-এর বেশি মান সাধারণ নয়। 
  • top_p: টপ পি বা টপ-কে স্যাম্পলিং বা নিউক্লিয়াস স্যাম্পলিং হল আউটপুট ডিস্ট্রিবিউশন থেকে স্যাম্পলিং পুল নিয়ন্ত্রণ করার একটি প্যারামিটার। উদাহরণস্বরূপ, মান 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"]

 

উপরের কোডটি হল যেখানে আমরা একটি পাইথন ফাংশন তৈরি করি যা আমরা পূর্বে আলোচনা করা বিভিন্ন পরামিতি গ্রহণ করবে এবং টেক্সট সারাংশ আউটপুট প্রদান করবে। 

আপনার প্যারামিটার দিয়ে উপরের ফাংশনটি চেষ্টা করুন এবং আউটপুট দেখুন। তাহলে চলুন স্ট্রীমলিট প্যাকেজ দিয়ে একটি সাধারণ অ্যাপ্লিকেশন তৈরি করার জন্য টিউটোরিয়ালটি চালিয়ে যাওয়া যাক।

স্ট্রিমলিট মেশিন লার্নিং এবং ডেটা সায়েন্স ওয়েব অ্যাপ তৈরি করার জন্য ডিজাইন করা একটি ওপেন সোর্স পাইথন প্যাকেজ। এটি ব্যবহার করা সহজ এবং স্বজ্ঞাত, তাই এটি অনেক নতুনদের জন্য সুপারিশ করা হয়। 

টিউটোরিয়ালটি চালিয়ে যাওয়ার আগে আসুন স্ট্রীমলাইট প্যাকেজটি ইনস্টল করি।

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: একটি বোতাম সরবরাহ করুন যা ব্যবহারকারী যখন এটি টিপে তখন উদ্দেশ্যমূলক ফাংশনটি চালায়৷

যেহেতু স্ট্রিমলিট স্বয়ংক্রিয়ভাবে উপরে থেকে নীচে প্রদত্ত কোড অনুসরণ করে UI ডিজাইন করবে, আমরা মিথস্ক্রিয়ায় আরও বেশি ফোকাস করতে পারি।  

সমস্ত টুকরো জায়গায় রেখে, আসুন একটি পাঠ্য উদাহরণ সহ আমাদের সংক্ষিপ্তকরণ অ্যাপ্লিকেশনটি চেষ্টা করি। আমাদের উদাহরণের জন্য, আমি ব্যবহার করব আপেক্ষিকতা তত্ত্ব উইকিপিডিয়া পাতা টেক্সট সংক্ষিপ্ত করা হবে. একটি ডিফল্ট পরামিতি এবং দ্বিতীয়-গ্রেডারের শৈলী সহ, আমরা নিম্নলিখিত ফলাফল পাই।

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 দিয়ে টেক্সট সামারাইজার অ্যাপ্লিকেশন ডেভেলপমেন্ট তৈরির টিউটোরিয়াল। আপনি অ্যাপ্লিকেশনটিকে আরও বেশি টুইক করতে পারেন এবং অ্যাপ্লিকেশনটি স্থাপন করতে পারেন।

জেনারেটিভ এআই বাড়ছে, এবং আমাদের একটি চমত্কার অ্যাপ্লিকেশন তৈরি করে সুযোগটি কাজে লাগাতে হবে। এই টিউটোরিয়ালে, আমরা শিখব কিভাবে GPT-3.5 OpenAI API গুলি কাজ করে এবং কিভাবে Python এবং streamlit প্যাকেজের সাহায্যে একটি টেক্সট সামারিজার অ্যাপ্লিকেশন তৈরি করতে ব্যবহার করতে হয়।
 
 
কর্নেলিয়াস যুধা বিজয়া একজন ডেটা বিজ্ঞান সহকারী ব্যবস্থাপক এবং ডেটা লেখক। আলিয়াঞ্জ ইন্দোনেশিয়াতে পূর্ণ-সময় কাজ করার সময়, তিনি সোশ্যাল মিডিয়া এবং লেখার মাধ্যমে পাইথন এবং ডেটা টিপস শেয়ার করতে পছন্দ করেন।
 

সময় স্ট্যাম্প:

থেকে আরো কেডনুগেটস