লেখক:
(1) PIOTR MIROWSKI এবং KORY W. MATHEWSON, DeepMind, United Kingdom এবং উভয় লেখক এই গবেষণায় সমানভাবে অবদান রেখেছেন;
(2) জেলেন পিটম্যান, স্ট্যানফোর্ড ইউনিভার্সিটি, ইউএসএ এবং ডিপমাইন্ডে থাকাকালীন কাজ করা;
(3) রিচার্ড ইভান্স, ডিপমাইন্ড, যুক্তরাজ্য।
গল্প বলা, গল্পের আকার, এবং লগ লাইন
সৃজনশীল টেক্সট জেনারেশনের জন্য বড় ভাষার মডেলের ব্যবহার
বৃহৎ ভাষার মডেল দ্বারা উত্পন্ন পাঠ্য মূল্যায়ন
উপসংহার, স্বীকৃতি, এবং রেফারেন্স
A. স্বয়ংক্রিয় গল্প জেনারেশন এবং নিয়ন্ত্রিত গল্প জেনারেশন সম্পর্কিত কাজ
B. বটস ক্রিয়েটিভ টিম দ্বারা খেলাগুলি থেকে অতিরিক্ত আলোচনা
C. পরিমাণগত পর্যবেক্ষণের বিবরণ
ই. ড্রামাট্রনের জন্য সম্পূর্ণ প্রম্পট প্রিফিক্স
F. RAW আউটপুট DRAMATRON দ্বারা উত্পন্ন
পরিসংখ্যানগত ভাষার মডেল (ভাষা মডেল, বা LMs) পূর্ববর্তী টোকেনগুলির একটি প্রেক্ষাপটে টেক্সট টোকেনগুলির সম্ভাব্যতা মডেল করে — টোকেনগুলি শব্দ, অক্ষর বা অক্ষর দ্বি-গ্রাম হতে পারে। মেশিন লার্নিং ব্যবহার করে, LM গুলিকে আনুমানিক শর্তসাপেক্ষ সম্ভাব্যতা বণ্টনের জন্য পাঠ্যের বড় কর্পোরাতে প্রশিক্ষিত করা হয়। LMs পাঠ্যের একটি অংশের সম্ভাবনা গণনা করতে পারে এবং পাঠ্য প্রম্পটের ধারাবাহিকতা হিসাবে নতুন পাঠ্য তৈরি করতে পারে। টেক্সট জেনারেশন সম্ভাব্য এবং শর্তাধীন সম্ভাব্যতা থেকে এলোমেলো নমুনা জড়িত। বিভিন্ন র্যান্ডম বীজ বিভিন্ন এলোমেলো নমুনা ফলাফল. চিত্র 3 একটি টেক্সট প্রম্পট খাওয়ানো এবং বিভিন্ন পাঠ্য নমুনা তৈরি করতে LM ব্যবহার করার একটি উদাহরণ চিত্রিত করে।
এই গবেষণায়, আমরা চিনচিলা লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) [48] নিযুক্ত করেছি, যা 70B-প্যারামিটার সহ একটি নিউরাল নেটওয়ার্ক হিসাবে উপস্থাপিত হয়েছে এবং যেটিকে MassiveText ডেটাসেটের 1.4T টোকেনে প্রশিক্ষণ দেওয়া হয়েছিল। Rae এট আল দ্বারা বর্ণিত হিসাবে. [৮৪], সেই সংস্থায় রয়েছে ৬০৪M MassiveWeb নথি, 4M বই, 361M প্রশ্ন এবং C4 থেকে উত্তর, 1.1B সংবাদ নিবন্ধ, 142M GitHub কোড এন্ট্রি, এবং 6M উইকিপিডিয়া নিবন্ধ। উল্লেখ্য যে বিকল্প এলএলএম নিয়োগ করা যেতে পারে, যেমন GPT-3।
এই প্রজেক্টে, আমরা এমন একটি সিস্টেম চাই যা অগত্যা মানব-ইন-দ্য-লুপের প্রয়োজন ছাড়াই দীর্ঘমেয়াদী শব্দার্থিক সমন্বয় প্রদর্শন করে একটি সম্পূর্ণ পাঠ্য তৈরি করতে পারে। আমরা লেখকদের অনুক্রমের প্রতিটি স্তরে স্ক্রিপ্ট সম্পাদনা এবং পরিবর্তন করতে উত্সাহিত করি। কিন্তু, দীর্ঘমেয়াদী শব্দার্থিক সংগতি অর্জনের জন্য আমাদের কোনো মানব-ইন-দ্য-লুপের প্রয়োজন নেই। অনুক্রমিক পদ্ধতি মানব হস্তক্ষেপ ছাড়াই একটি একক লগ লাইন থেকে যুক্তিসঙ্গত দীর্ঘমেয়াদী সংগতি প্রদর্শন করে একটি সম্পূর্ণ স্ক্রিপ্ট তৈরি করবে। দীর্ঘমেয়াদী শব্দার্থিক সংগতি অর্জনের জন্য আমাদের দৃষ্টিভঙ্গি হল গল্পটি শ্রেণিবদ্ধভাবে তৈরি করা।
আমাদের ন্যারেটিভ জেনারেশন বিমূর্ততার 3টি শ্রেণীবদ্ধ স্তরে বিভক্ত। সর্বোচ্চ স্তর হল অনুচ্ছেদ 2-এ সংজ্ঞায়িত লগ লাইন: কেন্দ্রীয় নাটকীয় দ্বন্দ্বকে বর্ণনা করে একটি একক বাক্য। মাঝের স্তরটিতে অক্ষরের বর্ণনা, একটি প্লট রূপরেখা (সংশ্লিষ্ট অবস্থানের সাথে উচ্চ-স্তরের দৃশ্য বর্ণনার একটি ক্রম) এবং অবস্থানের বর্ণনা রয়েছে। নীচের স্তরটি স্ক্রিপ্টের পাঠ্যের জন্য প্রকৃত অক্ষর সংলাপ। এইভাবে, প্রতিটি স্তরের বিষয়বস্তু অন্যান্য স্তরের বিষয়বস্তুর সাথে সামঞ্জস্যপূর্ণ। মনে রাখবেন যে এখানে "সুসঙ্গত" বলতে "একটি একীভূত সমগ্র গঠন" বোঝায়, এলএলএম-উত্পাদিত পাঠ্যের সাথে কোন সাধারণ জ্ঞান এবং যৌক্তিক বা আবেগের সামঞ্জস্যতা অনুমান না করে।
চিত্র 1-এ যেমন দেখানো হয়েছে, গল্পটি টপ-ডাউন তৈরি করা হয়েছে [93, 108, 113]। মানুষ লগ লাইন প্রদান করার পরে, ড্রামাট্রন অক্ষরের একটি তালিকা তৈরি করে, তারপর একটি প্লট এবং তারপরে প্লটে উল্লিখিত প্রতিটি অবস্থানের বর্ণনা। অক্ষর, প্লট এবং অবস্থানের বিবরণ সমস্ত লগ লাইনের স্পেসিফিকেশন পূরণ করে, কার্যকারণ নির্ভরতা ছাড়াও, প্রম্পট চেইনিং [১১৮] দ্বারা সক্ষম করা হয়েছে এবং চিত্র 1-এর ডায়াগ্রামে ব্যাখ্যা করা হয়েছে। অবশেষে, প্লট রূপরেখার প্রতিটি দৃশ্যের জন্য, ড্রামাট্রন তৈরি করে পূর্বে উত্পন্ন দৃশ্যের বৈশিষ্ট্যগুলিকে সন্তুষ্ট করে সংলাপ। চূড়ান্ত আউটপুট তৈরি করার জন্য ফলাফল সংলাপগুলি একসাথে যুক্ত করা হয়। এই শ্রেণিবদ্ধ প্রজন্ম দীর্ঘমেয়াদী শব্দার্থিক সমন্বয় সক্ষম করার জন্য ডিজাইন করা হয়েছিল। একটি অনুরূপ যদিও উল্টানো, পুনরাবৃত্তিমূলক টাস্ক পচনের পদ্ধতি প্লট সারাংশ তৈরি করতে ব্যবহৃত হয়েছিল [117]। মধ্যম স্তরের সংযোজন, যেখানে প্লটটিকে বিমূর্ত দৃশ্যের বর্ণনার ক্রম হিসাবে সংক্ষিপ্ত করা হয়েছে, পুরো প্লটটিকে ভাষার মডেলের প্রসঙ্গ উইন্ডোতে ফিট করার অনুমতি দেয়। এটি দীর্ঘমেয়াদী শব্দার্থিক সমন্বয়ের পূর্ববর্তী সীমাবদ্ধতাগুলিকে অতিক্রম করে। আমাদের পদ্ধতিটি চূড়ান্ত দৃশ্যের উপাদানগুলির জন্য প্রারম্ভিক দৃশ্যে প্রবর্তিত উপাদানগুলির নাটকীয় বন্ধন প্রদান করা সম্ভব করে তোলে[3], এবং উত্পন্ন গল্পগুলির জন্য বর্ণনামূলক আর্কস অনুসরণ করা যায় (বিভাগ 2 দেখুন)।
ড্রামাট্রন বৃহৎ ভাষার মডেলকে গাইড করতে বেশ কিছু হার্ড-কোডেড প্রম্পট (যেমন ইনপুট উপসর্গ) ব্যবহার করে। প্রম্পট ইঞ্জিনিয়ারিং হল একটি সাধারণ উপায় যা ব্যবহারকারীরা এলএলএম নিয়ন্ত্রণ বা প্রভাবিত করে [12]। প্রতিটি প্রম্পটে পছন্দসই আউটপুটের কয়েকটি উদাহরণ রয়েছে। এগুলিকে উপসর্গের মধ্যে অন্তর্ভুক্ত করা হয় এবং শুধুমাত্র কয়েকটি উদাহরণের সাথে অভিযোজনকে কখনও কখনও কয়েকটি-শট লার্নিং হিসাবে উল্লেখ করা হয়। চিত্র 3-এ যেমন দেখানো হয়েছে, প্রম্পটগুলি ব্যবহারকারী দ্বারা সরবরাহ করা ইনপুট এবং/অথবা পূর্ববর্তী LLM প্রজন্মের আউটপুটগুলির সাথে সংযুক্ত করা হয়। এই পদ্ধতিটিকে প্রম্পট চেইনিং [118] বলা হয়, যা এক ধরনের অ্যালগরিদমিক প্রম্পটিং [24]। অনুক্রমের নিম্ন স্তরে (চিত্র 1 দেখুন), প্রম্পটগুলি উচ্চতর স্তরের আউটপুটগুলির সাথে একত্রে শৃঙ্খলিত হয়।
এই কাজে, আমরা প্রাথমিকভাবে দুটি সেট প্রম্পট ব্যবহার করেছি: একটি ইউরিপিডস দ্বারা প্রাচীন গ্রীক ট্র্যাজেডি মেডিয়ার উপর ভিত্তি করে এবং একটি বিজ্ঞান-কল্পকাহিনী চলচ্চিত্রের উপর ভিত্তি করে। ড্রামাট্রনের জন্য, প্রতিটি প্রম্পট সেট গঠিত: 1) শিরোনাম প্রম্পট, 2) অক্ষর বিবরণ প্রম্পট, 3) প্লট প্রম্পট, 4) অবস্থান বর্ণনা প্রম্পট, 5) এবং ডায়ালগ প্রম্পট। প্রতিটি প্রম্পট কীভাবে প্রকৌশলী তা বোঝার জন্য নীচে সংক্ষিপ্তভাবে বিস্তারিত দেওয়া হয়েছে; অতিরিক্ত বিবরণ পরিশিষ্ট E এ আছে।
টাইটেল প্রম্পটটি লগ লাইন থেকে শিরোনাম তৈরি করতে ব্যবহৃত হয়। একটি সরলীকৃত শিরোনাম প্রম্পট, ব্যবহারকারী-প্রদত্ত লগ লাইন এবং এলোমেলোভাবে নমুনাযুক্ত শিরোনামগুলি চিত্র 3-এ দেখানো হয়েছে। এটি একটি নির্দেশ সহ একটি উপসর্গ দেখায় (পরিচিত নাটক এবং চলচ্চিত্রের স্ক্রিপ্টগুলির বিকল্প, মূল এবং বর্ণনামূলক শিরোনামের উদাহরণ।) এবং একটি উদাহরণ ( উদাহরণ 1. প্রাচীন গ্রীক ট্র্যাজেডি [...] শিরোনাম: আমার ভাইয়ের নামে)। উপসর্গটি এর সাথে শেষ হয়: উদাহরণ 2. একটি ব্যবহারকারী-ইনপুট লগ লাইন (যেমন, গ্র্যান্ডমা ফিলিস এবং দাদা জিম [...]) সেই উপসর্গের সাথে সংযুক্ত, সেইসাথে ট্যাগ শিরোনাম:, যা এলএলএমকে একটি শিরোনাম তৈরি করতে উত্সাহিত করে যে লগ লাইন মেলে. কয়েকটি উদাহরণ থেকে, এলএলএম একটি সম্পর্কিত শিরোনাম তৈরি করতে এবং ট্যাগ বন্ধ করতে "শিখেছে"। অক্ষর বিবরণ প্রম্পট একটি লগ লাইন থেকে অক্ষরের নাম এবং বিবরণ তৈরি করতে ব্যবহৃত হয়। প্লট আউটলাইন প্রম্পট একটি লগ লাইন এবং অক্ষরের তালিকাকে একটি প্লটে পরিণত করতে ব্যবহৃত হয়। এই প্রম্পটটি কয়েক-শট ভাষার মডেলকে একটি একক বাক্যের লগ লাইনকে দৃশ্যের বর্ণনার ক্রমানুসারে রূপান্তরিত করতে উৎসাহিত করে। প্রতিটি দৃশ্য অত্যন্ত সংকুচিত, শুধুমাত্র অবস্থানের সংক্ষিপ্ত নাম বর্ণনা করে, বর্ণনামূলক উপাদান যা বর্ণনামূলক আর্কে দৃশ্যের অবস্থান চিহ্নিত করে (সেক. 2 দেখুন), এবং চরিত্ররা কী করছে এবং বলছে তার একটি সারসংক্ষেপ, প্রায়ই বলা হয় বর্ণনামূলক বীট[69]. একটি দ্রষ্টব্য হিসাবে, প্রম্পট ড্রামাট্রন একটি দৃশ্যকে যেভাবে উপস্থাপন করে তার উপর একটি শক্তিশালী প্রতিনিধিত্বমূলক সীমাবদ্ধতা আরোপ করে; প্রতিটি দৃশ্য একটি অবস্থান, আখ্যান উপাদান সনাক্তকারী, এবং বীট গঠিত হয়. অবস্থান বর্ণনা প্রম্পট একটি স্থানের নাম এবং একটি লগ লাইন থেকে একটি বিশদ দৃশ্যের বর্ণনা তৈরি করতে ব্যবহৃত হয়। অবশেষে, ডায়ালগ প্রম্পটটি একটি বীট (অর্থাৎ, দৃশ্যের সারাংশ), দৃশ্যের অবস্থানের বিবরণ, দৃশ্যের সাথে জড়িত প্রতিটি চরিত্রের বর্ণনা এবং লগ লাইন (গল্পের সামঞ্জস্যের জন্য) সংলাপে পরিণত করতে ব্যবহৃত হয়। এই প্রম্পট বর্তমান এবং পূর্ববর্তী উভয় দৃশ্যের জন্য উত্পন্ন দৃশ্য তথ্য ব্যবহার করে।
উপরে বর্ণিত হিসাবে, মাত্র কয়েকটি-শট (অর্থাৎ, 1-4) প্রম্পট এবং ব্যবহারকারীর ইনপুট লগ লাইনের সাথে, আমরা সম্পূর্ণ স্ক্রিপ্ট এবং চিত্রনাট্য তৈরি করতে প্রশিক্ষিত LLM-এর সাহায্য নিয়ে থাকি। পরিশিষ্ট F কাঁচা উৎপন্ন আউটপুট একটি উদাহরণ দেখায়. যে বলে, ড্রামাট্রন মানব লেখকদের জন্য একটি পরিবর্ধনমূলক হাতিয়ার হিসাবে ইন্টারেক্টিভ সহ-লেখার জন্য ডিজাইন করা হয়েছে। ড্রামাট্রনের সাথে সহ-লেখকত্ব এইভাবে এগিয়ে যায়: একজন লেখক তাদের লেখা একটি লগ লাইন দিয়ে শুরু করেন। তারা ড্রামাট্রনে সেই লগ লাইনটি ইনপুট করে এবং একটি শিরোনাম, অক্ষর, একটি প্লট রূপরেখা, অবস্থানের বিবরণ এবং প্রতিটি দৃশ্যের সংলাপ ধাপে ধাপে তৈরি করে। প্রতিটি ধাপে, লেখক নিম্নলিখিত ক্রিয়াকলাপগুলির মধ্যে একটি বা একাধিক, যতবার ইচ্ছা ততবার নিতে পারেন:
• একটি নতুন পরামর্শ তৈরি করুন (অর্থাৎ, একই প্রম্পট দিয়ে আবার এলএলএম চালান)।
• আগের জেনারেশনের শেষ থেকে জেনারেট করা চালিয়ে যান, একইভাবে সাধারণ "ফ্ল্যাট" এলএলএম জেনারেশনের মতো।
• এলএলএম দ্বারা উত্পন্ন কিছু বা সমস্ত আউটপুট ম্যানুয়ালি সম্পাদনা করুন।
লেখক ড্রামাট্রন শ্রেণিবিন্যাসে এগিয়ে এবং পিছনে ধাপে ধাপে এই অপারেশনগুলি সম্পাদন করতে পারেন। উদাহরণস্বরূপ, তারা: 1) একটি শিরোনাম তৈরি করতে পারে, 2) একটি নতুন শিরোনাম তৈরি করতে পারে, 3) শিরোনাম সম্পাদনা করতে পারে, 4) অক্ষরগুলির একটি তালিকা তৈরি করতে পারে, 5) একটি অক্ষর সরিয়ে অন্যটির বিবরণ পরিবর্তন করে অক্ষরগুলি সম্পাদনা করতে পারে, 6 ) একটি প্লট রূপরেখা তৈরি করুন, 7) বর্ণনার চাপের অংশ সরিয়ে প্লট সম্পাদনা করুন, 8) সেই সম্পাদিত প্লটের একটি ধারাবাহিকতা তৈরি করুন, 9) ফিরে যান এবং লগ লাইনটি পুনরায় লিখুন, ইত্যাদি। এই সহ-লেখার পদ্ধতিটি মানব এবং উভয়ের জন্য ড্রামাট্রন একটি স্ক্রিপ্টের লেখকত্বে অবদান রাখে। এই অপারেশনগুলি অনুসরণ করে, মানব লেখক একটি স্ক্রিপ্ট চূড়ান্ত করার জন্য আরও সম্পাদনা এবং বিন্যাস করতে পারে। পরিশিষ্ট জি মানব-সম্পাদিত স্ক্রিপ্টের উদাহরণ দেখায়।
ড্রামাট্রনের কোডটি পাইথনে প্রয়োগ করা হয়েছে এবং ব্যবহারকারী-মুখী ইন্টারফেসটি টেক্সট উইজেট সহ একটি Google Colab[4]-এ প্রয়োগ করা হয়েছে, যা ইন্টারেক্টিভ সম্পাদনা করার অনুমতি দেয়। স্ক্রিপ্ট জেনারেশনের জন্য আমরা ব্যবহার করি এমন বেশ কিছু বিশেষ মার্কার রয়েছে: সম্পূর্ণ সিকোয়েন্স জেনারেশন টোকেনের শেষের প্রতিনিধিত্ব করে এবং একটি জেনারেটেড লাইনের শেষ চিহ্নিত করতে ব্যবহৃত একটি টোকেন। একটি প্রদত্ত প্রম্পটের জন্য (পরবর্তী সেকেন্ড 3.3 দেখুন) LLM-এ খাওয়ানো হয়েছে, 511টি টেক্সট টোকেন নমুনা করা হয়েছে। আমরা বিভিন্ন আউটপুট উত্সাহিত করতে নিউক্লিয়াস স্যাম্পলিং [49] ব্যবহার করেছি, শীর্ষ 0.9 সম্ভাব্যতা ভর থেকে নমুনা টোকেন এবং 1.0 এর সফটম্যাক্স তাপমাত্রা সহ। অবশেষে, সংলাপের জেনারেশনে লুপ কমানোর জন্য, আমরা একটি সাধারণ ডিটেক্টর প্রয়োগ করেছি যা জেনারেট করা টেক্সটকে ব্লকে কাটে (2টি ফাঁকা লাইন দ্বারা সীমাবদ্ধ) এবং গণনা করে যে একটি একক প্রজন্মে প্রতিটি ব্লক কতবার উপস্থিত হয়। একটি নির্দিষ্ট থ্রেশহোল্ডের বাইরে (যেমন, 3 বার), এলএলএম র্যান্ডম নম্বর জেনারেটরে একটি ভিন্ন বীজ ব্যবহার করে টোকেন নমুনা করে একটি নতুন আউটপুট তৈরি করে।
এই কাগজটি CC 4.0 লাইসেন্সের অধীনে arxiv-এ উপলব্ধ ।
[১] এখানে অ্যাক্সেসযোগ্য: https://openai.com/api/
[২] উদাহরণস্বরূপ: https://theguardian.com/commentisfree/2020/sep/08/robot-wrote-this-article-gpt-3
[৩] দেখুন যেমন চেখভের বন্দুক [২৭]।
[৪] https://colab.research.google.com/