پردازش زبان طبیعی جذاب است! قسمت چهارم

این مطلب قسمتی از مجموعه پردازش زبان طبیعی است : قسمت اول ، قسمت دوم ، قسمت سوم ، قسمت چهارم

جعل اخبار با پردازش زبان طبیعی و GPT-2

در فوریه ۲۰۱۹ ، OpenAI یک ساختار مدل پردازش زبان طبیعی به نام GPT-2 معرفی کرد ( و از انتشار آن خود داری کرد). برای استفاده از GPT-2 شما قسمت آغازی از متن را که عبارت ” Machine Learning ” است، را می دهید و GPT-2 به صورت ادامه دار لغت بعدی که احتمالش بالایی دارد را پیش بینی می کند:

پردازش زبان طبیعی تکمیل جملات با GPT-2
متن واقعی که توسط GPT-2 و با ” Machine Learning ” به عنوان ورودی، تولید شده است.

GPT-2 متن را به گونه ای تولید می کند که بسیار واقعی تر از متن های تولید شده در هر سیستم تولید متن قبلی می باشد. کیفیت خروجی OpenAI به قدری خوب بود که همه را شوکه کرد، به همین دلیل تصمیم گرفتند مدل کامل GPT-2 برای انتشار بسیار خطرناک است زیرا آن می توانست برای ایجاد بی نهایت خبر جعلی مورد استفاده قرار بگیرد که عموم را گول بزند یا موتورهای جستجو مانند گوگل را مسدود کند.

برای یک فرد معمولی تولید اخبار جعلی و اشتباه که بتواند یک فرد واقعی را فریب دهد، چقدر آسان است؟ و نتایج چقدر خوب می شوند؟

بیایید ببینیم کنیم که یک سیستم مانند GPT-2 چگونه کار می کند و چقدر می تواند خطر ساز باشد. بیایید تلاش کنیم تا یک روزنامه که توسط اخبار جعلی تولید شده با کامپیوتر پر شده است، درست کنیم :

سایت اخبار جعلی با GPT-2
Newsyoucantuse.com روزنامه کاملا جعلی است که ۱۰۰% آن با هوش مصنوعی تولید شده است.

برای پرکردن News You  can’t use ما یک اسکریپت پایتون که بتواند یک سایت خبری مانند نیویورک تایمز را کپی کند و داستان های خبری ساختگی با موضوعات یکسان تولید کند، را خواهیم ساخت. سپس ما کیفیت خروجی را خواهیم سنجید و در مورد بعضی از مسائل اخلاقی که این نوع مدل برمی انگیزد، بحث خواهیم کرد.

تمام دنیا ، یک لغت در هر لحظه

متنی که با GPT-2 تولید شده است، مقدار زیادی اطلاعات در مورد جهان به ما می دهد. GPT-2 روی گیگابایت ها متن استخراج شده از وب استخراج آموزش دیده است و مقدار زیادی از آن معلومات را در خود رمز گذاری کرده است. خب وقتی که GPT-2 متن را تولید می کند، از آن معلومات برای واقعی تر کردن جملات استفاده می کند. این چیزی است که آن را بسیار قدرتمند می کند؛ متنی که آن تولید می کند، در واقع شامل حقایق واقعی جهان و آمار و ارقام می باشد.

اگر ما عبارت آغازی متن را مانند این را وارد کنیم:

عبارت آغازین برای شروع ساخت متن

GPT-2 جمله ای را تولید خواهد کرد که این شخصیت تاریخی را شامل می شود:

جمله ساخته شده با GPT-2

این جمله فریب دهنده است است، به خاطر پاره ای از دلایل:

  • اول اینکه آن نشان می دهد که مدل این را که Abraham Lincoln فردی آمریکایی بوده که در سال ۱۸۰۹ متولد شده را در خود رمز گذاری کرده است.
  • دوم اینکه جمله کاملاً قالب دار و غیر قابل تشخیص از چیزی که  توسط بشر نوشته شده است، می باشد.
  • سوم اینکه جمله کاملاً اشتباه است.

 Abraham Lincoln در ۱۲ ام فوریه متولد شده است، نه در ۴ ام آوریل. و او در Hodgenville Kentucky متولد شده است نه در Springfield Illinoise ولی بیایید صادق باشیم، شما این را نمی دانستید، می دانستید؟ این جمله کاملا درست به نظر می رسد!

این مخلص کلام GPT-2 است. GPT-2 فقط یک مدل آماری است از اینکه انگلیسی چگونه در وب مورد استفاده قرار می گیرد. آن یک پایگاه داده از حقایق و آمار و ارقام مانند سیستم ” سوال و جواب ” ، ندارد. درعوض، GPT-2 در پیش بینی لغت بعدی در هر یک از شرایط ورودی بسیار خوب و ورزیده شده است به صورتی که به طور تصادفی یک نسخه عجیب و درهم از همه ی معلومات بشر را در خود رمز گذاری کرده است.

Abraham Lincoln شغل خود را به عنوان یک وکیل در Springfield Illinois  آغاز کرد و Springfield یک شهر است، خب منطقی به نظر می رسد که Springfield یک لغت احتمالی است که ممکن است در جمله ای درباره ی Abraham Lincoln ظاهر شود.

دیگر توانایی شگفت انگیز GPT-2  این است که آن می تواند وابستگی بین چندین پاراگراف در متن را حفظ کند. کار GPT-2 فقط در کنار هم قرار دادن لغاتی که باور پذیر به نظر می رسند نیست، بلکه کار آن ایجاد متن به صورتی است که ضمایر به طور موافق کنار یکدیگر قرار بگیرند و همچنین مردم و نظراتی که در متن به آن ها اشاره شده است، سراسر پایدار و استوار می باشند. این آن جایی است که GPT-2 واقعا مدل های قبلی را غافلگیر و شگفت زده می کند.

GPT-2 چگونه کار می کند؟

دو عامل اصلی وجود دارد که باعث می شود GPT-2 بهتر از مدل های تولید متن قبلی کار کند.

اولین چیز این است که GPT-2 بسیار بزرگتر از مدل های دیگر می باشد. GPT-2 بسیار بزرگ است ( ۵/۱ بیلیون پارامتر ) که روی یک مجموعه داده کلان ، با استفاده از مقدار چشمگیر و قابل توجهی از قدرت محاسبه که بر پایه GPU استوار است، آموزش دیده است.

وقتی OpenAI تصمیم گرفت که مدل GPT-2 را به صورت کامل منتشر نکند، آن ها مطمئن بودند که GPT-2 نمی تواند به سادگی توسط اشخاص دیگر بدون تکنیک های مخصوص و تخصص یافته و منابع محاسبه قوی ، بازتولید شود. ولی قدرت محاسبه هر روز آسان تر و قابل دسترسی تر می شود. در طی چند ماه، دو دانشجوی تحصیلات تکمیلی به نام های Araon Gokaslan و Vanya Cohen ، توانستند مدل را با ۵۰هزار دلار از طریق محاسبه ابری بازتولید کنند. و بر خلاف OpenAI آن ها نتایج را منتشر کردند. تعدادی از تیم های دیگر هم قادر بودند  تا ساخت مدل را به خوبی تکرار کنند.

راز دومی که باعث می شود GPT-2 به خوبی کار کند، این است که این مدل با استفاده از ترانسفورمر، یکی از جدیدترین روش های مدل متنی که به وضوح از روش های قبلی بهتر است، ساخته شده است.

برای درک اینکه مدل هایی که بر اساس ترانسفورمر هستند، چگونه کار می کنند، لازم است که با نگاه به اینکه همه چیز قبلا چگونه کار می کردند، شروع کنیم.

مدل های بسته ی کلمات

یکی از ساده ترین مدل های زبان، ” بسته ی کلمات ” یا Bag of Words نام دارد. اگر شما می خواهید که لغت بعدی را در جمله پیش بینی کنید، شما باید به آن مدل  بگویید که کدام لغت تا کنون در جمله ظاهر شده اند-  بدون ترتیب خاصی – و از آن بخواهید که لغت بعدی که احتمال ظاهر شدنش بیشتر است را به شما بگوید.

بیایید تا از نوشته ی آغازین یعنی ” Abraham Lincoln was ” استفاده کنیم و از آن بخواهیم لغت بعدی را پیش بینی کند:

بسته کلمات

لغات بدون هیچ دستور خاصی از مدل گذر می کند، مانند اینکه ما لغات را داخل یک کیف می اندازیم و ترکیب شلوغ به وجود آمده را در مدل جای می دهیم. مزیت این مدل این است که ما از هر الگوریتم آماده به مصرف یادگیری ماشین بدون هیچ گونه تغییری، استفاده می کنیم. ولی مشکل واضح و علنی در اینجا این است که مدل فقط وجود لغات را بررسی می کند، نه ترتیبی که آن ها در متن ظاهر می شوند. ترتیب لغت ها اهمیت بسیار ویژه ای در زبان دارد. نیاز به ترتیب لغت در مدل، همان چیزی است که تطبیق الگوریتم های یادگیری ماشین سنتی را با زبان دشوار می کند.

مدل های توالی و RNN ها

در اوایل سال ۲۰۱۰، شبکه های عصبی بازگشتی یا RNN ها، در زمینه ی مدل سازی متن بسیار مشهور شدند. آن ها انعطاف پذیری شبکه های عصبی را با توانایی ذاتی آن ترکیب می کنند تا با مراحلی از متن با طول های متفاوت به خوبی کار کنند.

در یک RNN ، مدل با نگاه کردن به هر لغت در توالی، یک درک از جمله به وجود می آورد. از آنجایی که آن هر لغت را می بیند، مدل یک سلول حافظه را با توجه به اینکه فکر می کند آن لغت چه معنی ای می دهد، به روز رسانی می کند؛ بنابرین تا کنون یک حافظه را که معنای کل جمله را نمایش می دهد، تولید کرده ایم. زمانی که شما نهایتا از آن می خواهید تا لغت بعدی را پیش بینی کند، مدل بر اساس این حافظه انباشته شده پیش بینی می کند:

استفاده از شبکه های عصبی بازگشتی برای پیشبینی کلمه بعدی

RNN ها به ما روشی می دهند که همه ی آن چیزی که برای ساخت سیستم های کلاسه بندی تصویر با شبکه های عصبی عمیق یاد گرفتیم را به کار گیریم و از آن برای مدل سازی زبان جایی که جمله طول متفاوتی دارد، استفاده کنیم. تنها در طول یک یا دو سال، همه چیز از سیستم های ترجمه زبان اتوماتیک گرفته تا سیستم های تشخیص گفتار، بسیار بهتر شده اند.

این همان زمانی بود که که طنز های ” این متن توسط هوش مصنوعی تولید شده است ” در اینترنت گسترش پیدا کرده اند. یک RNN که به خوبی آموزش دیده است، می تواند متنی که کاملا واقعی به نظر می رسد را تولید کند ؛ حداقل برای یک یا دو جمله.

بهتر کردن RNN ها با مکانیسم توجه

هم اکنون، RNN ها به طور واضح آینده ی مدلسازی متن به نظر می رسند، خب پس محققان به دنبال راه هایی هستند که بتوانند توانایی شان در مدلسازی متن را بهبود ببخشند. پیشرفت چشمگیر آن ها، اضافه کردن یک مکانیسم توجه بود.

یک RNN معمولی، لغاتی را که تا کنون به عنوان آرایشی از اعداد در حافظه ورودی خود دیده است را یادآوری می کند. هر لغت جدیدی که آن می بیند، آن حافظه را به روز رسانی می کند، خب کلمات اخیر تمایل دارند تا به کلمات قبلی ( کلماتی که زودتر ظاهر شده اند ) غلبه کنند. در نتیجه  RNNدر متن های بلند به خوبی کار نمی کند.

با یک مکانیسم توجه، مدل پس از دیدن هر لغت، پیگیری می کند که چه چیزی در حافظه اش موجود بوده است. بعد، زمانی که مدل لغت بعدی را پیش بینی می کند، پیش بینی خود را بر اساس یک نسخه وزن دار از همه ی این حافظه های قبلی، می سازد:

پردازش زبان طبیعی با شبکه عصبی بازگشتی و توجه

با اندازه گیری وضعیت های حافظه قدیمی به صورت متفاوت، مدل به هر لغت در جمله توجه می کند، و با وابستگی بیشتر یا کمتر راجع به اینکه چگونه هر لغت به پیش بینی لغت بعدی کمک خواهد کرد، فکر می کند.

مدل های توجه، به پیشرفت های مهم و قابل توجهی در اجرا نسبت به RNN های استاندارد تقریبا در هر وضعیت، ختم می شوند، که شامل تولید متن هم می شود. ولی آن ها هنوز هم قادر به تولید متنی با نظرات مربوط در پاراگراف کامل از متن، نبوده اند.

جایگزینی RNN ها با ترانسفورمر

بعد از اینکه دیده شد اضافه کردن توجه به RNN ها، چقدر دقت آن ها را بهبود می بخشد، محققان شروع کردند به تامل در اینکه RNN ها به خودی خود واقعا ضروری بوده اند یا نه. شاید راهی که توجه، ارزش پیشگویانه در هر لغت پیشین در جمله را تغییر می دهد، چیزی است که واقعا اهمیت دارد.

تصور کنید که ما به صورت تصادفی یک لغت را از یک جمله واقعی حذف کنیم:

حذف کلمه از جمله

اگر ما مدل را اینگونه آموزش دهیم که لغت حذف شده را بر پایه ی لغات باقی مانده در جمله پیش بینی کند، می توانیم این که هر لغت باقی مانده در جمله در انجام پیش بینی پیش بینی چقدر سودمند بوده را اندازه گیری کنیم. مدل می تواند به ما یک اندازه از این که هر لغت چقدر به لغت حذف شده مربوط بوده، بدهد:

ارتباط کلمات

ما می توانیم این را برای لغات دیگر نیز در جمله انجام دهیم. بیایید ببینیم که کدام لغات بیشترین اهمیت را دارند، اگر ما Lincoln را حذف کنیم:

بررسی حذف کلمات

ما می توانیم این را برای هر لغت در جمله تکرار کنیم تا پی ببریم که هر لغت چقدر به لغات دیگر مرتبط است. و اگر ما این کار را برای بیش از میلیون ها جمله که از وب برداشته شده انجام دهیم، مدل یاد خواهد گرفت که چگونه هر لغت انگلیسی، به هر لغت دیگر در هر متن فرضی، ارتباط دارد. این چیزی است که در درون هر مدل ترانسفورمر رخ می دهد.

یک مدل ترانسفورمر معنی هر لغت را کاملا بر اساس لغات اطراف آن در جمله کنونی، کد نگاری می کند. استفاده از مفهوم جمله، همان چیزی است که باعث می شود ترانسفورمر بسیار خوب کار کند. یک ترانسفورمر در درک اینکه یک لغت یکسان می تواند معنی کاملا متفاوتی در متون مختلف داشته باشد، هیچ مشکلی ندارد. به همین خاطر است که می تواند جمله را با ضمایر و به صورت بسیار موثر، مدلسازی کند. معنی کلماتی مانند ” he ” یا ” she ” بر اساس لغات دیگر موجود در جمله، تعریف شده است.

و سالیان سال است که تحقیقات یادگیری ماشین به ما آموخته است که اگر بعضی چیزها به تنهایی به خوبی کار می کنند، چرا تلاش بر انباشته کردن آن ها نداشته باشیم؟ دقیقا مانند لایه های یک شبکه عصبی عمیق، ما می توانیم مدل های ترانسفورمر را روی یکدیگر قرار دهیم:

نحوه کار مدل ترانسفورمر

مدل GPT-2 در اندازه ی کامل، ۴۸ عدد از این لایه های ترانسفورمری که روی یکدیگر انباشته شده اند دارد! در واقع، GPT-2 مخفف Generative Pre-Trained Transformer #2 به معنی ترانسفورمر مولد از پیش آموزش دیده می باشد. این مدل دومین تلاش OpenAI د ر ساخت یک مدل مولد متن بزرگ با استفاده از مدل های تبدیل کننده، بود.

Grover – گسترش دادن GPT-2 برای تولید اخبار

GPT-2 می تواند یک متن منسجم را بر پایه ی هر بخش آغازی تولید کند، ولی کنترل اینکه این مدل دقیقا چه چیزی را تولید خواهد کرد، واقعا دشوار است. GPT-2ا غلب یک جمله آغازی مانند ” A man was arrested ” را می گیرد و جمله ای را که مانند یک تئوری توطئه یا یک شعر سپید است را بر می گرداند. این ها پیش بینی های صحیح هستند، ولی در تولید متن های خبری که واقعی به نظر می رسند، به ما کمک نخواهند کرد.

اگر ما این قصد را داریم که از GPT-2 برای تولید اخبار جعلی استفاده کنیم، نیاز داریم تا بتوانیم آن چیزی که GPT-2 تولید می کند را کنترل کنیم و همچنین شیوه ای که مدل با آن تولید می شود را نیز کنترل کنیم.

در اواسط سال ۲۰۱۹، یک مدل که Grover نام داشت، توسط یک تیم از دانشگاه شهر واشنگتن، منتشر شد. Grover یک نسخه اصلاح شده از GPT-2 می باشد که لغت پیش بینی شده بعدی فقط بر اساس لغت های قبلی در متن نمی باشد، بلکه بر اساس قسمت های ریشه ای متن مانند تیتر یا نویسنده می باشد.

این یعنی اگر ما یک تیتر مانند ” Car Thief Caught ” را به Grover بدهیم، خواهد فهمید که هر متنی که تولید می کند، نباید صرفا به خودی خود واقعی باشد، بلکه متن تولید شده باید با توجه به تیتر، مناسب و امکان پذیر باشد.

مدل های Grover یک خبر جدید را با در نظر گرفتن موارد زیر مدل می کند:

  • نام دامنه ( مانند nytimes.com یا uk bbc.co. )
  • نام نویسنده
  • تاریخ انتشار
  • نوشته ی تیتر
  • بدنه متن

Grover می تواند متن مربوط به هر کدام از این زمینه ها را بر اساس دیگر موارد تولید کند. خب پس شما می توانید به آن یک نام دامنه یا نویسنده یا اطلاعات و تیتر، بدهید و مدل پیکره را تولید خواهد کرد. یا شما می توانید یک نام دامنه، نویسنده، اطلاعات و بدنه را به آن بدهید و آن یک تیتر تولید کند. بسیارعالی!

حتی عالی تر، آن ها مدل را روی میلیون ها داستان خبری واقعی که از وب سایت های خبری متفاوت گرفته شده است، آموزش داده اند، خب پس مدل در این پروسه شیوه انتشارات مختلف را یاد گرفته است. از آنجایی که مدل نگاه می کند که آن توسط انتشارات مختلف نوشته شده است یا نه، شما می توانید آن را وادار کنید تا نسخه های مختلفی از یک داستان را تولید کند.

متن تولید شده با Grover
متن واقعی که توسط Groverتولید شده است. تنها تفاوت، پارامتر ” نام دامنه ” می باشد.

ایجاد احتمال ظاهر شدن لغت بعدی در قسمتی از متن به زمینه های ریشه ای متن بستگی دارد که یک راه تاثیرگذار در کنترل آنچه مدل تولید می کند، می باشد. میزان جزئیات اختصاصی مکانی که در این دو نمونه کد نگاری شده اند، جذاب است. فقط با تغییر پارامتر نام دامنه از nytimes.com به bbc.co.uk مدل متوجه شود که به جای تگزاس، باید در مورد Wales صحبت کند و UK از یک سیستم دادگاهی برخوردار است. مدل حتی تاریخ را به اشتباه به جای اینکه به شیوه ی آمریکا و به صورت June 5th بنویسد به شیوه ی  انگلیس و به صورت ۵ June  نوشته است،.

ساخت اخبار کاملا اصل

با Grover ما می توانیم یک تیتر، تاریخ، نام دامنه و نام نویسنده تهیه کنیم و آن را وادار کنیم و مدل یک مجموعه از اخبار را تولید کند. خب اگر ما بتوانیم لیستی از مجموعه اخبار( حتی بدون بدنه متن ) به دست بیاوریم، می توانیم به راحتی برای هر تیتر یک مجموعه اخبار تولید کنیم.

ولی چرا همانجا متوقف شویم؟ یکبار که یک بدنه برای یک متن به دست بیاوریم، ما می توانیم از آن برای تولید دوباره یک تیتر جعلی که برای مجموعه تقلبی مناسب باشد، استفاده کنیم. و اگر ما یک تیتر جدید داشته باشیم، می توانیم یک نام نویسنده به صورت جعلی تولید کنیم.

با تولید هر عنصر از متن خود در هر زمان، ما می توانیم با اخبار واقعی از نیویورک تایمز شروع کنیم و با مجموعه اخبار تقلبی که هیچ یک از داده ی اصلی را شامل نمی شود، رو به رو شویم. این مجموعه ای بی نهایت از اخبار جعلی است.

ساخت متن جعلی با Grover

پس ما با گرفتن خوراک RSS از تیترهای نیویورک تایمز شروع می کنیم، بدنه های داستانی جدید را پیش بینی خواهیم کرد و سپس تیترهای جدیدی برای آن بدنه های داستانی پیش بینی خواهیم کرد. و نهایتا ما آن داستان های تقلبی را توسط API و به صورت خودکار به وب سایت خودمان ارسال خواهیم کرد.

ایجاد داستان های به خصوص

ما محدود به تولید نسخه های فرعی از داستان های خبری واقعی نیستیم. ما همچنین می توانیم هر داستان به خصوصی را که می خواهیم فقط با نوشتن تیتر و وادار کردن مدل به تولید آن، تولید کنیم. و سپس ما می توانیم از خود داستان برای تولید یک تیتر بهتر استفاده کنیم، خب پس تیتر تقلبی  ما حتی نیازی نیست که خوب به نظر برسد.

خب بیایید یک قربانی خیالی را در نظر بگیریم و تعداد زیادی تیتر ساده درباره او بنویسیم:

  • <نام> محکوم به ۱۰ سال زندان
  • <نام> متهم به کلاه برداری
  • <نام> دزدی میلیونی از افراد یتیم

مدل داستان های جذابی بر پایه آن تیتر ها، ارائه می دهد و سپس تیترها را دوباره بازنویسی خواهد کرد.

در نهایت ما تعداد زیادی از این داستان های هدف گذاری شده را در بین داستان های غیرواقعی که از تیترهای واقعی نیویورک تایمز تولید کرده ایم، پخش خواهیم کرد. این کار باعث خواهد شد تا داستان های هدف گذاری شده ما واقعی تر به نظر برسند، آن هم با این روش که وب سایت خبری تقلبی  خود را وادار کنیم تا اینگونه به نظر برسد که محتوای واقعی را داراست.

مرحله اول: ایجاد وبلاگ غیر واقعی

برای ارسال اخبار غیرواقعی، ما به یک وب سایت نیاز داریم که اخبار را در آن پست کنیم. بیایید یک وبلاگ وردپرس ساده تنظیم کنیم که بتوانیم متن های تولید شده خود را در آن پست کنیم.

ثبت یک نام دامنه

اول از همه ما باید یک نام دامنه جدید برای سایت اخبار غیرواقعی خود ثبت کنیم. شما می توانید از هر نام دامنه که می خواهید، برای ثبت استفاده کنید. ما نام newsyoucantuse.com را که در دسترس بود را انتخاب کردیم.

تنظیم یک وبلاگ وردپرس جدید

حالا که ما یک نام دامنه داریم،  باید خود وب سایت را تنظیم کنیم. ما وردپرس را روی یک ماشین مجازی در  فضای ابری نصب خواهیم کرد. هزاران شرکت میزبان وجود دارد که وردپرس را برای شما اجرا خواهند کرد. شما می توانید از هر یک از آن ها استفاده کنید تا زمانی که آن ها به شما اجازه نصب پلاگین های وردپرس را بدهند.

در وبلاگ جدید به نام دامنه متصل کنید

مرحله بعدی متصل کردن نام دامنه به وبلاگ است. چند دقیقه طول می کشد تا نام دامنه در مرورگر اینترنتی، قابل دسترسی شود.

در این نقطه، ما یک وبلاگ وردپرس پیش فرض بدون جزئیات داریم که در حال اجرا روی  newsyoucantuse.comمی باشد:

وبسایت وردپرس اخبار جعلی
وبسایت ما قابل دسترسی است ولی ما باید از شر هشدار “Not Secure” خلاص شویم.

یک رمز SSH تنظیم کنید، حالا وبلاگ مجاز به نظر می رسد

ما می خواهیم وبلاگ مان واقعی به نظر برسد، نه مانند یک وب سایت ناشناس و کم ارزش، خب ما نیاز داریم تا رمز TLS را فعال سازیم تا به کاربر آیکون “قفل” را در مرورگر آن ها نشان دهد.(درست شبیه وب سایت بانک ها).

قدیم ها فعال سازی رمز TLS منجر به هزینه هایی داشت. ولی به لطف Let’s Encrypt project ما می توانیم یک گواهینامه SSH برای وبلاگ خودمان، به صورت رایگان تنظیم کنیم. ما فقط نیاز داریم تا SSH برای ماشین مجازی وبلاگ خود اجرا کنیم:  certbot-apach

$ ssh root@[blog-ip-address]
$ certbot --apache
[.. snip ..]
- - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://newsyoucantuse.com
- - - - - - - - - - - - - - - - - - - - - - - - -

حالا سایت ما بدون هیچگونه اخطاری بارگذاری می شود!

تایید امنیت سایت

وبلاگ را زیبا نشان دهیم

ما نیاز داریم که وارد بخش مدیریت وردپرس شویم و یک قالب خوب انتخاب کنیم، در نتیجه سایت غیرواقعی به نظر نمی رسد. در این وبلاگ از قالب Mission News  استفاده می کنیم زیرا شبیه نیویورک تایمز بود ولی شما می توانید از هر چیزی که خودتان می خواهید، استفاده کنید. در همین حال می توانید همه ی پست های وبلاگ نمونه که به صورت پیشفرض با وردپرس می آیند را پاک کنید.

تنظیم REST API وردپرس برای پست کردن

اگر ما وبلاگ نویسان معمولی بودیم، الان شروع به نوشتن مقالات می کردیم – ولی ما هوش مصنوعی را برای خود داریم قرار است برای ما بنویسد! ما فقط به راهی نیاز داریم که اسکریپت پایتون بتواند به خودی خود روی سایت پست انتشار دهد.

وردپرس یک REST API دارد که ما می توانیم از آن برای انتشار پست به صورت خودکار از یک اسکریپت، استفاده کنیم. متاسفانه وردپرس قابلیت تایید کاربر از طریق اسپریپت را به صورت پیشفرض ندارد، خب پس ما باید یک افزونه اضافی به نام Application Passwords را نصب کنیم. شما می توانید این کار را را مستقیما از پنل مدیریت وردپرس انجام دهید:

پلاگین وردپرس

وقتی که افزونه نصب و فعال سازی شد، به بخش پیکربندی کاربر هدایت می رویم و یک گزینه جدید در زیر صفحه جزئیات کاربر وجود خواهد داشت که شما می توانید رمز ورود برنامه را اضافه کنید:

تنظیمات افزونه وردپرس

رمز ورودی که تولید می کند را ذخیره کنید چون ما آن را برای اسکریپت پایتون خود نیاز خواهیم داشت.

یک قربانی ساختگی ایجاد کنید

ما قادر خواهیم بود تا داستان های خبری ساختگی را درباره هر کسی که بخواهیم، تولید کنیم. ولی ما نمی خواهیم اطلاعات منفی را راجع به افراد واقعی، پست کنیم. برای این مقاله، ما یک شخصیت ساختگی می سازیم که او را John McFakeson نامگذاری خواهیم کرد.

برای تصویر او، به سایت thispersondoesnotexist.com می رویم که از یک GAN برای تولید عکس های افراد خیالی استفاده می کند. ما یک تصویر ساخته شده توسط کامپیوتر را به صورت رندوم بر میداریم و کمی متن با فوتوشاپ به آن اضافه می کنیم. اینجا تصویر او را می بینید:

تصویر شخص جعلی
این شخص وجود خارجی ندارد. مانند تمامی اخبار اخیر راجع به او، تصویر او نیز توسط کامپیوتر تولید شده است.

برداشتن خبر ها از نیویورک تایمز

برای کپی کردن این خبر ها از نیویورک تایمز، ما به لیستی از تیترهای آن ها نیاز داریم. خوشبختانه، آن ها لیستی از خوراک های RRS را منتشر کرده اند. ما می توانیم از هر نوع تجزیه کننده ی RRS استاندارد برای خواندن این خوراک ها و استخراج لیستی از تیترها ، نویسنده ها ، برچسب ها و همه ی فراداده های دیگری که ما برای تولید داستان های ساختگی با همین شیوه نیاز داریم، استفاده کنیم.

ما از کتابخانه feedparser پایتون برای به دست آوردن داده ها استفاده می کنیم. با این کتابخانه، فقط چند خط کد نیاز است تا یک خوراک  RSSخوانده شود.

اجرای آن

ما کد پایتون را برای به دست آوردن هر گونه خوراک RSS آماده کرده ایم ، داستان ها را در Grover اجرا کنید تا متن جدید و تیتر ها را تولید کنید، و آن ها را به وبلاگ وردپرس خود بفرستید. Grover حتی بعضی قالب های واقعی را به متن اضافه می کند تا داستان ها واقعی به نظر برسند. می توانید از اینجا کد را ببینید.

کد پایتون grover

شما می توانید خودتان آن را دانلود کرده و اجرا کنید ولی برای اجرای مدل عظیمGrover  برای تولید متن در زمانی منطقی به یک GPU قدرتمند نیاز دارد.

اخیرا گوگل یک پلتفرم به نام  Google Colaboratorیا به اختصار Colab راه اندازی کرده است. Colab به شما اجازه می دهد تا کد پایتون را در صفحه وب بنویسید و سپس کد را روی یکی از سرورهای آن ها و با استفاده از  GPUهای آن ها، اجرا کنید. این نسخه ی فضای ابری Jupyter notebooks آن ها می باشد:

ساخت متن جعلی در google colab jupyter notebook

استفاده از Colab کاملا رایگان می باشد، حتی برای استفاده از GPU . پس می توانید کدی که نوشته ایم را بردارید، notebook را کپی کنید، و همین الان خودتان آن را اجرا کنید.

برای شروع، به این نوتبوک Colab بروید و Open in playground را انتخاب کنید، خب حالا شما نسخه کپی شخصی خودتان را دارید که می توانید ویرایش کنید. سپس شما نیاز دارید تا مقادیر را در اولین سلول به روز رسانی کنید:

# Your WordPress Blog where the fake articles will be posted
WORDPRESS_BLOG_API_ENDPOINT = "https://your-domain-name.com/?rest_route=/wp/v2"
WORDPRESS_USER = 'YOUR_WORDPRESS_USERNAME'
WORDPRESS_APP_PASSWORD = 'YOUR_APP_PASSWORD_HERE'
# Fake person who will be slandered/libeled in the fake articles
NAME_TO_SLANDER = "John McFakeson"
IMAGE_TO_SLANDER = "https://cdn-images-1.medium.com/max/1600/1*P8FfDY2TXPR0bZ0XIJYRWw.jpeg"

شما همچنین میتوانید لیست تیترهای آماده شده را تغییر دهید اگر میخواهید بعضی از تیترهای سنتی خود را امتحان کنید.

زمانی که شما آن مقادیر را به روزرسانی کردید، به فهرست  Runtimeبروید و گزینه  Run allرا انتخاب کنید. با فرض این که که شما مقادیر صحیح برای وبلاگ وردپرس خودتان را قرار داده اید، شما باید خروجی مانند این را در زیر مشاهده کنید:

Building article from headline 'John McFakeson bought fake twitter followers to pretend to be a celebrity'  
- Generated fake article titled 'British businessman amassed 7.6 million fake Twitter followers to scam women'

اکنون به وبلاگ خود بروید و آن را را بررسی کنید تا داستان های ساختگی جدید خود را ببینید!

سنجش نتایج

شما می توانید در سایتnewsyoucantuse.com  سرچ کنید تا مثال های فیلترنشده ای از اخبار غیرواقعی تولید شده توسط این اسکریپت را ببینید. بعضی از این داستان ها تقریبا از داستان های واقعی غیر قابل تشخیص هستند و بقیه داستان ها کمتر در این راه موفق اند.

سایت اخبار جعلی با Grover

یک چیز که شما در حین تولید اخبار ساختگی خودتان  به آن پی خواهید برد این است که مدل در تولید نسخه هایی که کمی دچار تغییر شده اند خیلی بهتر از توضیح وضعیت های خیالی عمل می کند.

یک تیتر پیش پا افتاده مانند ” Man caught stealing car ” بیشتر موارد منجر به متن های باور پذیر خواهد شد. ولی یک تیتر مسخره مانند ” Alexander the Great caught stealing space rocket ” متن هایی را تولید خواهد کرد که به مکان های عجیب وغریب  خواهد رفت. این اتفاق به خاطر این است که مدل فقط در داستان های خبری واقعی آموزش دیده است. وقتی شما به آن  یک تیتر مسخره می دهید، شما از آن درخواست می کنید تا یک پیش بینی خارج از مجموعه داده آموزشی آن برای شما ارائه دهد. در آن صورت نتیجه همیشه زیاد منطقی به نظر نخواهد آمد:

انواع اخبار جعلی

پیامد ها

در یک سطح تکنیکی، به نظر می رسد که GPT-2 و Grover از هیجان برانگیزترین پیشرفت های یادگیری ماشین در مدت زمان طولانی هستند. ولی قطعا این امکان درباره ی آن ها نیز وجود دارد که مورد سواستفاده قرار گیرند. هر چقدر که مدل های  یادگیری ماشین بهتر شوند، همانقدر باید به پیامد های آنچه که می سازیم، توجه کنیم.

OpenAI در همان ابتدا تصمیم گرفت و گفت که GPT-2 برای منتشر شدن در میان عموم بسیار وحشتناک است. ماه ها بعد از آن زمان، بحث های زیادی در این رابطه که جلوگیری از منتشر شدن یا نشدن این مدل تصمیم درستی است یا نه، به وجود آمد. در نهایت تصمیم آن ها اهمیتی نداشت. مدل های GPT-2  توسط  محققان دیگر بازطراحی و منتشر شده بودند. خب این ابزارها حالا در دسترس همگان است. و اینکه  این تکنولوژی در دستان مردمی باشد که اهداف و نیت های بدی داشته باشند، اطلاع رسانی به مردم در مورد چنین ابزاری به صورت گسترده بسیار با اهمیت است، تا همه یاد بگیرند که چگونه خود را با آن ها وفق دهند و قوانینی را ایجاد کنند که این ابزارها چگونه به صورت اخلاقی مورد استفاده قرار گیرند.

در واقع، تیمی که پشت Grover هست، پروژه را برای تولید اخبار ساختگی ایجاد نکرده است، بلکه آن را برای کشف اخبار ساختگی ساخته اند. آن ها بهترین راه برای کشف اخبار ساختگی را جفت و جور کردن یک مدل کشف اخبار ساختگی در کنار یک مدل تولید اخبار ساختگی دانستند و آن مدل ها را وادار کردند تا در برابر یکدیگر کار کنند و بهتر شوند. خب در عمل، انتشار مدل های قوی تر بهترین راه برای قوی تر ساختن ابزار ها برای محفوظ ماندن در برابر آن هاست.

متن تولید شده تا چه حد اصیل می باشد؟

یکی از زیباترین جنبه های متنی که توسط GPT-2 و Grover تولید شده اند، این است که شامل رجوع هایی به حساب های اختصاصی توییتر، هشتگ ها، آدرس های وب سایت ها و دیگر قسمت های اطلاعات واقعی هستند. این یک سوال به وجود می آورد: متن تولید شده با مدل چقدر اصیل است؟ این متن در واقع از کنار هم قرار دادن افکار اصلی است یا آن فقط برگرداندن قسمت هایی از متن است آن هم از وب سایت هایی که مدل در آن آموزش دیده است؟ به عبارت دیگر، آیا مدل بیش برازش کرده یا از زیربرازش مجموعه داده آموزشی می باشد؟

این پرسش به نوعی یک سوال بی جواب است. محققانی که پشت GPT-2 هستند، گزارش دادند که مدل هنوز هم در حال درک مجموعه داده ها می باشد. و در تجربه ی ما، متن های تولید شده واقعا شامل لغت ها وعبارات جدیدی هستند که هیچ جا از گوگل دیده نشده اند. ما روش هایی را برای تولید اشعار جدید شکسپیر امتحان کردیم و بعضی اوقات نتایج بسیار خوب می شدند و متقاعد شدیم که مدل در واقع داده های آموزشی را برگشت می دهد ولی تا کنون موفق نشده ایم هر یک از آن نتایج را در هر جای دیگری در گوگل ببینم. حتی هنوز هم هیچ ضمانتی وجود ندارد که مدل، متن تقلبی و دزدیده شده از دیگران را تولید نکند.

ابزارهای جدید، موارد استفاده جدیدی دارند که ما هنوز حتی نمی توانیم تصورشان کنیم

شما می توانید کارهای بدی با GOT-2 انجام دهید. شما می توانید یک شبه از میلیون ها سایت ناشناس استفاده کنید و مدل جستجوی گوگل را با بی نهایت داده نا خواسته به منظور تخریب سیستم رتبه بندی های جستجو، گیج کنید ( لطفا این کار را انجام ندهید ). ولی فقط به خاطر اینکه شما می توانید کار های آزاردهنده ای با این تکنولوژی انجام دهید، دلیل نمی شود که بگوییم این تکنولوژی سودی برای جامعه ندارد.

همچنین راه های بسیار زیادی وجود دارد که این تکنولوژی بتواند برای ساخت ابزارهای جدید مورداستفاده قرار گیرد. تصورکنید که شما در تلاش هستید تا یک یادداشت تشکر عالی درست کنید  ولی شما نمی دانید که چه چیزی بنویسد. یک ادیتور متن با به همراه داشتن این تکنولوژی در درون خود، می تواند به شما کمک کند تا ایمیل خود را تمام کنید. در واقع، یک پیاده سازی واقعی از GPT-2 بر اساس تکمیل خودکار از HuggingFace نیز وجود دارد:

ساخت پیام تشکر با هوش مصنوعی
استفاده از هوش مصنوعی برای نوشتن یادداشت های تشکر خود

اکنون در حال پیش رفتن به سمت داشتن تعداد زیادی از برنامه های خلاق وهنری مربوط به این تکنولوژی هستیم. David Bowie به طور حیرت انگیزی ، در سال ۱۹۹۰ تعداد زیادی از متن های آهنگ خود را  با استفاده از برنامه ای اولیه به نام  Verbasizer نوشت. آن برنامه قسمت های تصادفی از متن را به بخش های جدیدی از متن آهنگ ترکیب می کرد که آن نشان دهنده خلاقیت او بود.

ما می توانیم تصور کنیم که هنرمندان امروزی چه کاری با ابزارهای قدرتمند تر انجام خواهند داد که می تواند افکار اصلی آن ها را  در هر شیوه ای که خودشان می خواهند، تغییر دهد. من فکر می کنم که این یک حوزه مهیج برای تحقیق و کاوش است!

بیشتر بخوانید : 

منبع Medium
3/5 (1 نظر)

درباره‌ی احمدرضا جعفری

همچنین ببینید

ویروس Covid-19

استفاده از هوش مصنوعی در دوران کرونا

در دوران بحران و مدیریت آن در سال ۲۰۲۰ ، فناوری های نوآورانه مانند هوش …

4 نظر

  1. سلام ، وقت بخیر خدا قوت
    به نظر من این سیستم بسیار زیباست و به درد ما میخورد که داستان های عجیب و غریب و غیر واقعی بسازیم برای سرگرمی و یا ساخت فیلم و بازی های ویدیویی با داستان های واقعی اما دروغی !
    یعنی میتوانیم داستان های خیلی جالب جذاب تر برای بازی های کامپیوتری و فیلم های خود بدست آوریم .
    چرا چون این هوش مصنوعی چیزهایی پیدا میکند که ما باید در عرض ۳ ماه تحقیق به آن اطلاعات دست یابیم!.
    به هرحال شاید برخی از این فناوری خوب استفاده کنند ، اما خیلی های دیگر هم هستند که دنبال اذیت کردن عموم اند!.
    به هرحال خیلی مشتاق شدم که در این باره بیشتر بدانیم و در پروژه های خود از آنها استفاده کنیم و سیستم بزرگی مثل این را اجرا کنیم.
    لطفا راهنمایی کنید ما را ، انشالله همکار شویم.
    خیلی ممنون از زحماتی که کشیدی و این مطالب مفید را در اختیار خوبان گذاشتید .
    سلامت باشید.

    • سلام
      ممنون
      بله از چنین سیستمی میشه استفاده های خیلی جذاب و مفیدی داشت. مثل همین مواردی که شما گفتید. حتی از سیستم های مشابه این برای نوشتن متن آهنگ ها هم استفاده می کنن که میتونه آهنگ های معنی دار و کاملا جدیدی به ما ارائه بده
      انشاالله در صورت استقبال مخاطب ها در مورد این مدل یا مدل های مشابه و جذاب دیگه مطالب بیشتری منتشر می کنیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *