BERT نام یک مدل زبانی است که در سال ۲۰۱۸ میلادی برابر با ۱۳۹۷ شمسی توسط شرکت گوگل معرفی شد. شاید بتوان گفت که BERT نقش بسیار مهمی در مسیر پیشرفت هوش مصنوعی مولد بهشکلی که امروزه شاهد هستیم، داشته است. آشنایی با BERT به شما کمک میکند تا بدانید که چرا مدلهای بزرگ زبانی مانند چت جیپیتی و گوگل Bard تا این حد موفق بودهاند. به همین دلیل، این نوشتار از مجله فرادرس را به بررسی مفاهیم پایهای تا کاربردهای مدل BERT اختصاص دادهایم تا بهشکلی ساده و تا حد ممکن بهطور کامل به پرسشهای شما در این باره پاسخ دهد.

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

مدل زبانی BERT چیست؟
BERT یکی از نخستین مدلهای بزرگ زبانی بهشمار میرود که در ۳۱ اکتبر ۲۰۱۸ بهعنوان نتیجهای از تلاشهای صورت گرفته توسط پژوهشگران گوگل، منتشر شد. این مدل اپنسورس هوش مصنوعی بهدلیل ارائه نتایج شگفتانگیز در درک زبان طبیعی ما انسانها خیلی سریع، به یکی از معیارهای اساسی و رایج در وظایف مربوط به NLP مانند درک کلی زبان، پرسش و پاسخ، تشخیص اسامی و موجودیتهای نامدار تبدیل شده است.
همانطور که پیشتر نیز اشاره شد، میتوان ادعا کرد که BERT، مسیر را برای تحولات و پیشرفتهای حیرتانگیز هوش مصنوعی مولد هموار کرده است. این مدل هوش مصنوعی نه تنها جزو اولینها و پیشگامان این حوزه محسوب میشود، بلکه در حال حاضر نیز کاربردهای گستردهای را از آن شاهد هستیم. در واقع، انواع گوناگونی از مدل BERT را میتوان یافت که بهطور رایگان و اپنسورس برای انجام کارهای متنوعی مانند تحلیل احساسات، تحلیل مستندات پزشکی، تشخیص نظرات توهینآمیز و غیره آموزش دیدهاند.
در ادامه بهطور دقیقتر به شما میگوییم که مدل BERT چیست، پس، از نام این فناوری شروع میکنیم. BERT مخفف عبارت «Bidirectional Encoder Representations from Transformers» به معنی «بازنماییهای دوسویه رمزگذاری شده از ترنسفورمرها» است.
مدل BERT، تأثیر زیادی روی بسیاری از برنامههای معروف هوش مصنوعی داشته است. بهگونهای که در مدلهایی مانند GPT-2 و ChatGPT نیز از روشهای یادگیری و نسخههای سبکتر این مدل زبانی استفاده شده است.
نقش معماری ترنسفورمر در مدل BERT چیست؟
پژوهشگران گوگل در عملی جاهطلبانه و برای اینکه کارایی معماری ترنسفورمر را بسنجند به توسعه این مدل پرداختند. برای یادآوری نیز باید بدانید که «ترنسفور» (Transformer) معماری عصبی جدیدی بود که محققان گوگل پیش از این و در مقالهای مشهور، به نام «Attention is All You Need» در سال ۲۰۱۷ از آن پرده برداشتند.
برای کسب اطلاعات بیشتر در مورد ترنسفورمرها، میتوانید فیلم آموزش رایگان مدل ترنسفورمر در یادگیری عمیق چیست، تحلیل معماری و کاربردها از فرادرس را مشاهده کنید که لینک آن را در ادامه آوردهایم.
از نقاط قوت و دلایل موفقیت BERT میتوان به همین معماری ترنسفورمر اشاره کرد. در واقع پیش از روی کار آمدن این نوع معماری، مدلسازی زبان طبیعی ما انسانها، کار پرچالش و مشکلی بود. بهگونهای که حتی با پیدایش مدلهای پیچیده عصبی مانند CNN و RNN دستیابی به نتایجی کاملاٌ موفقیتآمیز، میسر نبود و ترنسفورمرها بودند که این محدودیت را تا حد زیادی رفع کردند.
اینکه مدلهای AI به چه صورتی کلمات حذف شده یا جا افتاده از جملات را پیشبینی کنند، بزرگترین مسئلهای بود که در آن زمان وجود داشت. شبکههای عصبی پیشرفته برای این منظور از معماری بسیار قدرتمندی به نام «رمزگذار-رمزگشا» استفاده میکردند که این ساز و کار علیرغم مزیت و بازدهی بالا، به لحاظ سرعت و استفاده از منابع پردازشی بهینه نبود. ضمن اینکه روش خوبی هم برای پردازشهای موازی محسوب نمیشد.

تفاوت BERT با مدل های قدیمی تر
مدلهای زبانی اولیه بهطور معمول متنها را با ترتیب مشخصی، بهطور مثال از راست به چپ یا از چپ به راست میخواندند. اما BERT با استفاده از معماری ترنسفورمر به شیوهای متفاوت عمل میکند. یعنی، برای درک صحیح معنی کلمات، آنها را بهشکل «دوسویه» (Bidirectionality) میخواند. بدینترتیب، BERT برای انجام ۲ کار متفاوت در حوزه پردازش زبان طبیعی آموزش میبیند که البته این ۲ وظیف به هم مرتبط هستند.
- «مدلسازی زبان با واژههای پنهان شده» (MLM): در این روش، کلمهای از داخل جمله حذف یا پنهان میشود و سپس برنامه با توجه به اطلاعات کلی یا «زمینه» (Contex) این کلمه باید بتواند آن را حدس بزند.
- «حدس جمله بعدی» (NSP): در این رویکرد نیز برنامه میبایست تشخیص دهد که آیا جملههای مدنظر، به لحاظ منطقی یا ترتیبی به هم ربط دارند یا اینکه بهشکل تصادفی در کنار هم قرار گرفتهاند.
این مفاهیم را هنگام بررسی معماری BERT و نحوه کار آن بیشتر توضیح میدهیم.
یادگیری ماشین لرنینگ با فرادرس
مدل زبانی BERT، یک از قدرتمندترین مدلهای هوش مصنوعی و یادگیری ماشین در حوزه پردازش زبان طبیعی محسوب میشود. برای ورود به این حوزه تخصصی و کسب مهارت در آن میتوانید از شیوههای آموزشی رایج مانند تحصیلات دانشگاهی، مشاهده ویدیوهای آنلاین، مطالعه کتب تخصصی و شرکت در کارگاههای آموزشی و تخصصی استفاده کنید.
با توجه به اینکه یادگیری از طریق مشاهده ویدیوهای آموزشی جزو بهترین شیوههای آموختن مهارتهای جدید بهشمار میرود، میتوانید برای آشنایی با موضوع ماشینلرنینگ و تسلط بر مفاهیم آن از فیلمهای آموزشی فرادرس مانند مجموعه فیلمهای آموزش یادگیری ماشین مقدماتی تا پیشرفته از فرادرس که در ادامه آورده شده، بهرهمند شوید.

عناوین برخی فیلمهای آموزش این مجموعه را در ادامه فهرست کردهایم.
کارهای قابل انجام با مدل زبانی BERT و تأثیر آن روی NLP
در این قسمت، توضیح میدهیم که BERT برای انجام چه کاری میتواند مورد استفاده قرار گیرد. همچنین تأثیر این مدل زبانی روی پردازش زبان طبیعی را نیز شرح میدهیم. BERT از ترنسفورمرها استفاده میکند و در انجام امور گوناگون در حوزه پردازش زبان طبیعی مانند آنچه در ادامه اشاره میشود، عملکرد بسیار خوبی از خود نشان داده است.
در ادامه، برخی از کارهایی که BERT عملکرد بسیار خوبی را در انجام آنها ارائه داده، فهرست کردهایم.
- پرسش و پاسخ: BERT را میتوان یکی از اولین رباتهای گفت و گو محور یا چتباتهایی دانست که از معماری ترنسفورمر بهره میبرد و نتایج حیرتانگیزی را در زمینه گفت و گو و پرسش و پاسخ با هوش مصنوعی، به کاربران عرضه میکرد.
- تحلیل احساسات: از دیگر مواردی که این مدل زبانی در آن درخشیده است میتوان به تشخیص و پیشبینی نظرات مثبت و منفی مخاطبان در مورد یک فیلم یا یک محصول اشاره کرد.
- تولید محتوای متنی: BERT را میتوان یکی از تأثیرگذاران و پیشگامان چتباتهای کنونی دانست که با دریافت توصیفها و پرامپتهای ساده کاربران، متون طولانی را با هوش مصنوعی تولید میکند.
- خلاصهسازی متنها: در حوزههای مهم و تخصصی مانند امور درمانی و پزشکی و همچنین امور حقوقی نیز BERT علاوه بر درک متون میتواند خلاصهای از آنها را ارائه دهد.
- ترجمه زبانی: با توجه به اینکه BERT روی دادههای آموزشی در زبانهای گوناگون آموزش دیده و مدلی چند زبانی محسوب میشود، میتوان از آن برای ترجمه متون به زبانهای مختلف استفاده کرد.
- تکمیل خودکار: BERT این توانایی را دارد تا وظایف مربوط به تکمیل خودکار را نیز انجام دهد. بهطور مثال هنگام نگارش ایمیل یا نوشتن پیام، ادامه جملات را حدس زده و بهطور خودکار تکمیل کند.
- BERT همچنین برای درک بهتر کوئریهای جستوجو و منظور کاربر مورد استفاده قرار میگیرد.

از کارهای قابل انجام با BERT در حوزه درک زبان طبیعی یا «NUL» میتوان به موارد زیر اشاره کرد.
- طبقهبندی یا کلاسیفیکیشن احساسات
- استنتاج زبان طبیعی
- ابهامزدایی معنای کلمه
- چندمعنایی کلمات و تصریح ارجاع: زمانیکه کلمات به ظاهر یکسان هستند اما در معنا با هم فرق دارند.
مثالی کاربردی
بسیاری از مدلهای بزرگ زبانی با اهداف پژوهشی مورد استفاده قرار میگیرند و شانس ورود به اپلیکیشنها و کاربردهای واقعی را پیدا نمیکنند. اما BERT بهطور مداوم توسط حجم گستردهای از کاربران استفاده میشود، بهگونهای که شاید خود کاربران هم از این موضوع مطلع نباشند.
بهطور مثال در سال ۲۰۲۰ میلادی، گوگل اعلام کرد که از BERT در موتور جست و جوی خود استفاده میکند و رتبهدهی صفحات و همچنین نمایش «پاسخ ویژه» (Featured Snippets) را با بهرهمندی از این مدل زبانی انجام میدهد. این موتور جست و جو در حال حاضر به دلیل بهرهمندی از مکانیزم توجه، زمینه و مفهوم کلی درخواست شما را درک کرده و نتایج بهتر و دقیقتری را برایتان تولید میکند.
مثال دسته بندی جمله با BERT
طبقهبندی یا دستهبندی یکی از سادهترین و رایجترین کاربردهای BERT محسوب میشود. تصویر زیر، چنین سیستمی را با ورودی و خروجی آن بهخوبی نشان داده است.

برای آموزش این مدل، بهطور معمول بیشترین تلاش فرد صرف آموزش «Classifier» میشود و خود مدل BERT در مرحله آموزش، تغییرات زیادی نخواهد داشت. این موضوع که به «تنظیم دقیق» (Fine-Tuning) مدل شناخته میشود، رابطه نزدیکی با روشهایی مانند «ULMFiT» و یادگیری ترتیبی نیمهنظارتی دارد.
همانطور که در تصویر بالا آورده شده، مؤلفه «دستهبندی» بیانگر این است که با یادگیری نظارت شده و دادههای برچسبدار برای آموزش مدل رو به رو هستیم. برای این مثال، دیتاست ما فهرستی از پیامهای موجود در ایمیل را شامل میشود و همچنین برچسب متناظر با هر یک از پیامها که «هرزنامه» بودن یا «غیر هرزنامه» بودن آن را نشان میدهد.
ساخت مدل زبانی BERT شامل ۲ مرحله آموزش نیمهنظارتی و آموزش نظارتی است. شما میتوانید مدلی که در گام نخست آموزش دیده را دانلود کرده و تلاش خود را برای مرحله دوم آموزش اختصاص دهید که همان تنظیم دقیق و بهینهسازی BERT برای عملکردی خاص را در بر میگیرد.
یادگیری نیمه نظارتی BERT
در مرحله نخست، آموزش نیمهنظارتی روی دیتاستهای متنی حجیم را داریم که با استفاده از منابعی همچون، کتابها، ویکیپدیا و غیره صورت میگیرد. در واقع مدل یاد میگیرد تا الگوهای موجود در زبان طبیعی را بفهمد. با این کار، BERT مهارت پردازش زبان را به دست میآورد. سپس میتوان مدلهایی را بر مبنای آن ساخت و مجدد به شیوه نظارتشده آموزش داد.

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

از مثالهای دیگر برای این نوع کاربرد میتوان به موارد زیر اشاره کرد.
- تحلیل احساسات: ورودی این سیستم، نظرات درج شده توسط کاربران برای یک فیلم یا محصول است. تشخیص مثبت یا منفی بودن نظر نیز به عنوان خروجی تولید میشود.
- صحتسنجی: ورودی این سیستم میتواند یک جمله باشد. واقعی یا غیرواقعی بودن آن نیز میتواند بهعنوان خروجی تخمین زده شود.
مزایای مدل BERT چیست؟
مدل BERT در مقایسه با سایر مدلهای زبانی دارای خصوصیاتی است که در ادامه اشاره کردهایم.
- با نگاهی کلی به مدلهای زبانی میتوان گفت که BERT روی زبانهای بیشتر و متنوعتری آموزش دیده و قابل دسترسی است. بنابراین، گزینه ارزشمند و مناسبی برای کار در پژوههای غیر انگلیسی زبان محسوب میشود.
- با توجه به اینکه BERT روی مجموعه دادههای بزرگی آموزش دیده است میتواند یکی از بهترین انتخابها برای افرادی باشد که به دنبال مدلی برای انجام کارهای مشخص و کوچکتر هستند.
- افراد میتوانند BERT را بهطور دقیق تنظیم و بهینه کرده و فوراٌ از مزیت آن بهرهمند شوند.
- علاوه بر موارد اشاره شده، BERT بهدلیل بهروزرسانیهای مکرر، دقت بالایی دارد.
نقاط ضعف مدل BERT چیست؟
مدلهای بزرگ زبانی همیشه دارای چالشها و محدودیتهایی بودهاند که این موارد گریبانگیر BERT نیز شده است. بهطور مثال، میزان درستی و مرتبط بودن نتایج BERT به حجم و کیفیت دیتاستی بستگی دارد که برای آموزش مدل مورد استفاده قرار گرفته است. بنابراین در صورتیکه مدل با دادههای ناقص، بیکیفیت و دارای برخی «سوگیریها» (Biases) آموزش دیده باشد، ممکن است پاسخهای نادقیق و حتی مضر را به کاربر عرضه کند. به چنین پاسخهایی، «توهم» (Hallucinations) مدلهای بزرگ زبانی گفته میشود.
این موضوع در نسخههای ابتدایی BERT ممکن است بیشتر رخ دهد چون که مدل بدون «یادگیری تقویتی مبتنی بر بازخورد افراد» (RLHF) آموزش دیده است. این شیوه در بسیاری از مدلهای پیشرفتهتر از جمله ChatGPT، لاما ۲ و گوگلبارد با هدف افزایش ایمنی هوش مصنوعی مورد استفاده قرار گرفته است. به بیان دیگر، انسانها با هدف دستیابی به سیستمهای قابل اعتماد، کارآمد و ایمنتر، روی روند آموزش مدل نظارت کرده و از طریق بازخوردهای خود آن را هدایت میکنند.
توسعهدهندگانی که به لحاظ منابع پردازشی با محدودیت خیلی زیادی مواجه هستند، شاید نتوانند این مدل را اجرا کرده و آموزش دهند. چون مدل BERT با اینکه مقیاس کوچکتری نسبت به سایر LLM-های پیشرفته مانند ChatGPT دارد، اما برای اجرا و حتی بهطور خاصتر برای آموزش نیز نیازمند توان و منابع محاسباتی زیادی است.
مدل زبانی BERT به دلیل حجم زیاد دادهها و معماری آموزشی، مدل بزرگی محسوب میشود. علاوه بر این، بزرگ بودن BERT باعث شده تا فرایند آموزش، بهدلیل بهروزرسانی وزنهای بسیار زیاد با سرعت کندتری پیش برود.
مدل BERT چگونه کار می کند؟
تکنیکهای پردازش زبان طبیعی بهطور معمول به دنبال این هستند که زبان ما انسانها را بهشکلی صحیح درک کنند. این موضوع در BERT به این شکل است که مدل زبانی توانایی پیشبینی و حدس زدن کلمهای که از جمله حذف یا پنهان شده را داشته باشد. در همین راستا، مدلهای زبانی با دیتاستهای حجیم شامل دادههای برچسبدار و تخصصی که بهشکل دستی توسط زبانشناسان برچسبگذاری شده، آموزش میبینند.
مدل BERT روی دادههای متنی بدونبرچسب و معمولی، مانند محتوای ویکیپدیا و نمونههای متنی «Corpus» آموزش دیده و بههمین شکل، علاوه بر یادگیری بدوننظارت با چنین متونی، هنگام استفاده در برنامههایی مانند «Google Search» نیز عملکرد خود را بهتر میکند. این مرحله که در واقع پیشآموزش BERT محسوب میشود، لایه اصلی دانش آن را تشکیل میدهد.
در ادامه، BERT میتواند خود را با محتوا و پرسشهای جدید وفق داده یا اینکه با توجه به نیازهای کاربر بهینهسازی شود. این مفهوم که به استفاده مجدد از یک مدل آموزش دیده در مسئله دیگر اشاره دارد را بهطور معمول با نام یادگیری انتقال میشناسند.
علاوه بر فرایند پیشآموزش که در بالا توضیح داده شد، BERT برای ارائه عملکرد صحیح به خصوصیاتی دیگری نیز دارد که در ادامه مورد بررسی قرار خواهیم داد.
معماری BERT
BERT بر مبنای ترنسفورمرها ساخته شده که ۲ نسخه شناخته شده از آن را در ادامه آوردهایم.
ویژگیها | مدل BERT Base | مدل BERT Large |
تعداد لایهها (بلوکهای ترنسفورمر) | ۱۲ | ۲۴ |
تعداد «واحد توجه» (Attention Heads) | ۱۲ | ۱۶ |
تعداد پارامترها | ۱۱۰ میلیون | ۳۴۰ میلیون |
برای اینکه یک دید کلی پیدا کنید، باید بدانید که نسخه معمولی مدل GPT که توسط OpenAI ساخته شده، اندازهای مشابه معماری «BERT Base» دارد. تمام لایههای ترنسفورمر BERT نیز از نوع «فقط-انکودر» هستند.
مشاهده فیلم آموزش رایگان بررسی مدلهای BERT ،GPT و DistilBERT، مقایسه و کاربرد در NLP از فرادرس که لینک آن نیز در ادامه آورده شده اطلاعات خوبی را در این باره در اختیارتان قرار میدهد.
تصویر زیر نیز انواع BERT را نشان داده است.

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

همانطور که مشاهده میکنید، ورودی مدل، ترکیبی از چندین امبدینگ مختلف، که نمایشی عددی از ویژگیهای مختلف هستند، به شرح زیر است.
- Token Embeddings: یک توکن [CLS] در ابتدای جمله نخست و یک توکن [SEP] در انتهای هر یک از جملههای بعدی اضافه میشود. کلمات نیز با الگوریتم «WordPiece» به بخشهای کوچکتری تقسیم میشوند. بهطور مثال، کلمه «با مزه» به توکنهایی مانند «با» و «مزه» تبدیل شده است.
- Segment Embeddings: برای اینکه انکودر بتواند جملههای مختلف را از هم تشخیص دهد، برای هر یک از آنها علامت مشخصی را در نظر میگیرد. در تصویر بالا با توجه به اینکه تنها یک جمله داریم، تمام توکنهای با علامت A مشخص شدهاند. اگر جملاتی دیگری هم پس از آن داشتیم ، با B و غیره مشخص میشدند. با این کار مدل میداند که توکن یا کلمه مدنظر مربوط به کدام جمله است.
- Position Embeddings: هدف از بهکارگیری امبدینگهای موقعیتی این است که BERT بتواند جایگاه کلمات در جمله را تشخیص دهد. به این دلیل که ترنسفورمر نمیتواند مانند RNN-ها ترتیب یا توالی را بفهمد.
بدینترتیب، روشی که برای امبدینگ استفاده کردیم، اطلاعات بسیار ارزشمندی را برای مدل فراهم میکند. این ترکیب باعث میشود تا مدل BERT بتواند کارهای مختلفی را انجام دهد. به بیان دیگر، بدون نیاز به اعمال تغییرات عمده در مدل میتوان آن را برای انجام کارهای مختلف و مرتبط با پردازش زبان طبیعی آموزش بدهید.
کارهای مرتبط با پیش آموزش
همانطور که پیشتر نیز اشاره کردهایم، BERT بهگونهای آموزش دیده که وظایف مربوط به پردازش زبان طبیعی به نامهای «MLM» و «NSP» را انجام دهد. در این قسمت میخواهیم مروری دقیقتر در این باره داشته باشیم.
مدل سازی زبان با MASK
آنچه که از قبل بهطور رایج در مدلهای زبانی مانند GPT دیده میشد این بود که تنها از اطلاعات پیش از توکن استفاده میکردند و در نتیجه، مستعد خطای بیشتری بودند. سپس روشی به نام «ELMo» معرفی شد که برای بهدست آوردن اطلاعات از هر ۲ سوی توکن، ۲ مدل زبانی LSTM را آموزش میداد و خروجی را بهشکل سطحی با هم ترکیب میکرد. علیرغم خوب بودن این روش نسبت به شیوههای موجود، نیاز به روشی با عملکرد بهتر مانند BERT احساس میشد. BERT با رویکرد دوسویه خود بهشکلی مؤثر مفهوم و زمینه توکنها را از هر دو سمت آنها جمعآوری میکند.
برای درک بهتر مدلسازی زبان با MASK یا MLM، جمله «من به مشاهده فیلمهای آموزش هوش مصنوعی از فرادرس علاقهمند هستم» را در نظر بگیرید. برای آموزش مدل زبانی دوسویه، بهجای حدس زدن کلمه بعدی جمله، میتوانیم مدلی بسازیم که کلمه پنهان شده در آن را حدس بزند. در چنین حالتی فرض کنید کلمه «علاقهمند» را با [MASK] جایگزین میکنیم. اکنون مدل میبایست به گونهای آموزش ببیند که توانایی پیشبینی کلمه حذف شده که اکنون [MASK] بهجای آن قرار گرفته را داشته باشد.

اکنون که دانستید MLM چیست، بهتر است با برخی نکات توصیه شده از سوی توسعهدهندگان BERT در این مورد نیز آشنا شوید که بهبود عملکرد مدل را به دنبال دارند.
- پنهان کردن ۱۵٪ از کلمات جمله بهطور تصادفی، برای پیشگیری از وابستگی مدل به موقعیتهای خاص در دادهها
- با توجه اینکه در تنظیم دقیق مدل، توکن [MASK] وجود ندارد، کلمات پنهانشده همیشه با این توکن جایگزین نمیشوند. در واقع، حالات زیر را خواهیم داشت.
- در ۸۰٪ مواقع کلمات با توکن [MASK] جایگزین میشوند.
- در ۱۰٪ مواقع، واژههای تصادفی بهجای کلمات قرار میگیرند.
- در ۱۰٪ مواقع نیز کلمات تغییری نمیکنند.
بهطور خلاصه، آموزش مدلهای MLM، به آنها امکان میدهد تا ارتباط میان کلمات را پیدا کنند.
پیش بینی جمله بعدی
همانطور که پیشتر نیز گفته شد، مدلهای BERT برای پیشبینی جمله بعدی یا «NSP» نیز آموزش ببیند تا کارهایی که به فهمیدن ارتباط بین جملات نیاز دارد را نیز بتواند انجام دهد. بهطور مثال، سیستم پرسش و پاسخ جزو همین وظایف محسوب میشود.
تنظیم دقیق BERT برای کاربردهای مختلف
BERT یک مدل کلی و عمومی است که برای انجام امور مختلف مرتبط با پردازش زبان طبیعی شناخته شده است. به بیان دیگر پس از آموزش اولیه مدل، این امکان برای شما وجود دارد که مدل را با دیتاست کوچکتر و با منابع محدودتر بهینه کنید. از این طریق میتوانید شاهد عملکرد دقیقتر و بهینه آن در کارهای مشخصی مانند استنتاج، پاسخ به سوالات و ایجاد پاسخ در مکالمات و غیره باشید.
کسب اطلاعات به شکل تک سویه و دوسویه
در این قسمت، فرق بین درک اطلاعات زمینهای با ۲ رویکرد تکسویه و دوسویه را نشان دادهایم.
رویکرد دوسویه برای کسب اطلاعات زمینه ای
با توجه به شکل زیر، هنگام حدس زدن کلمه درون یک توالی مانند جمله، از تمامی کلمات اطراف آن برای درک بهتر و کسب اطلاعات زمینهای استفاده خواهد شد. در BERT با چنین رویکردی رو به رو هستیم و هدف این است که کلمهای که با [MASK] مشخص شده را پیشبینی کند. این توکن مابین مجموعهای از کلمات دیگر قرار گرفته که در دو سوی آن قرار دارند. بنابراین میتوان از آنها برای درک بهتر زمینه استفاده کرد.

اگر از شما بخواهند که جمله بیان شده در تصویر بالا را تنها از یک جهت بخوانید، ممکن است بهراحتی نتوانید کلمه پنهان شده یا MASK را حدس بزنید. اما اگر از هر ۲ سمت راست و چپ آن را بخوانید با اطلاعات زمینهای به دست آمده به احتمال قوی، کلمه پنهان شده «fishing» را راحتتر حدس خواهید زد.
رویکرد تک سویه برای کسب اطلاعات زمینه ای
همانطور که در تصویر زیر نشان داده شده در رویکرد تکسویه برای حدس زدن کلمات بعدی تنها از واژههای ماقبل آن برای کسب اطلاعات مرتبط با زمینه استفاده خواهد شد. این روش در مدلهای GPT استفاده میشود و هدف این است که کلمه بعدی را پیشبینی و دنباله جدیدی را از طریق اطلاعات زمینهای کسب شده ایجاد کند. جمله ورودی و همچنین کلمات تولید شده نیز جزو مواردی هستند که برای کسب اطلاعات مورد استفاده قرار میگیرند. تصویر زیر را در نظر بگیرید.

در این مثال از مدل خواستهایم تا شعری بسراید و Upon a کلماتی است که از قبل وجود دارد. با توجه به اینکه، کلمات احتمالی زیادی میتوانند بهعنوان کلمه بعدی در نظر گرفته شوند، مدل زبانی GPT با توجه به دادههای آموزشی خود، کلمهای را انتخاب میکند که بیشترین احتمال و تناسب را داشته باشد
فرق GPT با مدل BERT چیست؟
مدل زبانی BERT و مجموعه مدلهای GPT از OpenAI جزو بهترین مدلهای زبانی محسوب میشوند که هر یک برای دستیبابی به اهداف مشخصی ساخته شدهاند. این مورد را در ادامه بیشتر توضیح دادهایم.
مدل BERT
BERT که توسط شرکت گوگل توسعه داده شده است برای درک معنی کلمات از معماری ترنسفورمر دوسویه استفاده میکند. در این روش، مدل برای اینکه معنی کلمات درون متن را بفهمد آنها را از هر دو جهت راست به چپ و همچنین چپ به راست مورد بررسی قرار میدهد. بدینترتیب کامپیوترها میتوانند متن را بفهمند. در طرف دیگر، GPT را داریم که با هدف تولید متن ساخته شده است. از کاربردهای این روشمیتوان به تحلیل احساسی و کارهای مرتبط با NLU اشاره کرد که در جست و جوهای گوگل و همچنین تحلیل بازخوردها و نظرات مشتریان استفاده میشود.
مدل GPT
از مواردی که GPT را از BERT متمایز میکند میتوان به کاربردها و اهدافی اشاره کرد که این مدلهای OpenAI به دنبال آن هستند. مدل GPT با هوش مصنوعی مولد میتواند کاربران را در تولید محتوای متنی و سایر وظایف یاری دهد. علاوه بر این، برای خلاصهسازی متون طولانی، و متون سنگین به لحاظ مفهومی، هم ابزار مناسبی محسوب میشوند.
البته تفاوت BERT و سایر مدلهای زبانی تنها به حوزه کاری و کاربردها محدود نمیشود و در معماری نیز باهم فرق دارند.
چگونه با مدل BERT گفت و گو کنیم؟
برای چت با BERT میتوانید طبق مراحل زیر پیش بروید.
- نصب ابزارهای ضروری: برای راهاندازی BERT در زبان برنامهنویسی پایتون میبایست ابزارهایی مانند تنسورفلو یا پایتورچ و Transformer-های هاگینگفیس را نصب کرده و از آن استفاده کنید.
- وارد کردن کتابخانهها: در ادامه نیز باید ماژولهای لازم برای آمادهسازی متون و BERT را وارد کنید.
- بارگذاری مدل BERT: برای این منظور میتوانید از Transformers هاگینگفیس استفاده کنید. از این طریق و با کمی کدنویسی میتوانید به مدل آموزش دیده BERT دسترسی داشته باشید.
- آمادهسازی متن: در این مرحله میبایست اقداماتی همچون توکنسازی، افزودن توکنهای منحصر به فرد و آمادهسازی متن برای BERT را انجام دهید.
- تعریف معماری مدل: با توجه به اینکه هدف مشخصی از راهاندازی BERT داریم، در این گام باید این مدل زبانی را برای کار مدنظرمان در حوزه NLP مانند طبقهبندی متون یا سایر کارها، تنظیم و سفارشیسازی کنیم.
- آموزش مدل: این مرحله اختیاری است با این حال میتوانید با دادههای برچسبدار، مدل زبانی BERT را بهطور دقیق تنظیم کنید.
- استفاده از مدل: اکنون میتوانید مدل از قبل آموزش دیده یا مدلی که خودتان آموزش دادهاید را بهکار برده و پیشبینیهایی را برای دادههای جدید داشتنه باشید.
- مناسبسازی خروجیها: پاسخهای دریافتی از مدل را بر حسب نیاز خود میتوانید بهشکل و قالب مناسب و کاربردی درآورید.
- استفاده در اپلیکیشن: در این مرحله میتوانید مدل BERT را به اپلیکیشن و برنامه خود اضافه کنید.
- تست و بهینهسازی: در این گام میبایست عملکرد مدل را سنجیده تا مطمئن شوید که بهدرستی کار میکند. همچنین در صورت نیاز آن را بهبود دهید.
نحوه آموزش BERT
تا این قسمت از مطلب احتمالاٌ از قابلیتهای فروان BERT شگفتزده شدهاید. برای اینکه بتوانید از دانش گسترده این مدل زبانی در برنامههای پردازش زبان طبیعی استفاده کنید، روشهای مختلفی وجود دارد که یکی از مؤثرترین شیوهها این است که BERT را برای کار مدنظر خود با دادههای مشخصی فاینتیون یا بهینه کنید.
برای اینکه بهطور عملی هم درک مناسبی از کار با مدل BERT پیدا کنید، این قسمت را به پیادهسازی و نحوه آموزش مدل زبانی BERT برای طبقهبندی متون اختصاص دادهایم. برای دریافت امبدینگهای BERT، از ابزار بسیار کاربردی «Bert-as-Service» استفاده شده که بهصورت اپنسورس موجود است و لینک گیتهاب آن را نیز در ادامه آوردهایم.
- لینگ گیتهاب BERT-As-Service: «+»
ممکن است این سوال برایتان پیش آمده باشد که چرا از این ابزار استفاده کردهایم و بهطور مستقیم به سراغ اجرای BERT نرفتهایم. در پاسخ باید گفت که اجرای BERT به دلیل نیاز به کدنویسی، نصب بستههای ضروری و سایر الزامات ممکن است کمی سخت باشد. اما به کمک این ابزار میتوانید با حداقل میزان کدنویسی، از BERT برای دریافت امبدینگهای مرتبط با جملههای مدنظر خود استفاده کنید.
نصب BERT-As-Service
عملکرد این ابزار بسیار ساده است و با ایجاد یک سرور BERT این امکان را برایتان فراهم میکند تا با کدنویسی به زبان پایتون با آن ارتباط برقرار کنید. در واقع جمله یا جملاتی را به آن ارسال کرده و این ابزار در پاسخ، امبدینگهای مرتبط با آن جملات را به شما بر میگرداند.

برای نصب سرور و کلاینت Bert-as-Service میتوانید به شکل زیر و از دستور pip استفاده کنید.
pip install bert-serving-server # server pip install bert-serving-client # client, independent of `bert-serving-server`
بههمین ترتیب نیز میتوانید روی دستگاههای مختلف خود این مؤلفهها را نصب کنید. نکتهای که میبایست در نظر داشته باشید این است که برای نصب و اجرای سرور لازم است نسخه پایتون و کتابخانه تنسورفلو به ترتیب دارای نسخه ۳٫۵ و ۱٫۱۰ و نسخههای جدید آن باشد.
با توجه به اینکه برای BERT به GPU قدرتمندی نیاز است، بهتر است که bert-serving-server را روی سرویس های GPU ابری یا دستگاهی که توان محاسباتی بالایی دارد اجرا شود.
مجدد به ترمینال سیستم بازگردید، و مدل دلخواه خود از جمله موارد زیر را دانلود کنید. در نهایت نیز فایلZIP دانلود شده را از حالت فشده خارج کنید و درون فولدر قرار دهید.
مدلهای از قبل اموزش دیده BERT به شرح آورده شده در جدول زیر هستند.
مدل | تعداد لایه، ویژگیها، هد، پارامترها | لینک دانلود |
BERT-Base, Uncased | ۱۲، ۷۶۸، ۱۲، ۱۱۰ میلیون | «+» |
BERT-Large, Uncased | ۲۴، ۱۰۲۴، ۱۶، ۳۴۰ میلیون | «+» |
BERT-Base, Cased | ۱۲، ۷۶۸، ۱۲، ۱۱۰ میلیون | «+» |
BERT-Large, Cased | ۲۴، ۱۰۲۴، ۱۶، ۳۴۰ میلیون | «+» |
BERT-Base, Multilingual Cased (New) | ۱۰۴ زبان، ۱۲، ۷۶۸، ۱۲، ۱۱۰ میلیون | «+» |
BERT-Base, Multilingual Cased (Old) | ۱۰۲ زبان، ۱۲، ۷۶۸، ۱۲، ۱۱۰ میلیون | «+» |
BERT-Base, Chinese | زبان چینی ساده و سنتی، ۱۲، ۷۶۸، ۱۲، ۱۱۰ میلیون | «+» |
بهطور مثال، اولین مدل را بهشکل زیر دانلود میکنیم.
wget https://storage.googleapis.com/bert_models/2018_10_18/uncased_L-12_H-768_A-12.zip && unzip uncased_L-12_H-768_A-12.zip
پس از دانلود مدل، اکسترکت کردن فایلهای آن درون یک فولدر، به سراغ اجرای آن بروید. دستور زیر این مورد را نشان میدهد.
bert-serving-start -model_dir uncased_L-12_H-768_A-12/ -num_worker=2 -max_seq_len 50
اکنون زمان کدنویسی فرا رسیده و میخواهیم با استفاده از کتابخانه کلاینت، Bert-as-Service را فراخوانی کنیم. بنابراین، نوتبوک جدیدی باز کرده و کدهایی را به زبان پایتون و بهشکلی که در ادامه آورده شده، بنویسید.
برای کدنویسی در نوتبوک میتوانید از گوگلکولب استفاده کنید. در یکی از مطالب پیشین مجله فرادرس آموزش گوگل کولب و کاربردهای آن را به زبان ساده شرح دادهایم که مطالعه آن میتواند برایتان بسیار مفید باشد.
با این کدها میخواهیم امبدینگهای مربوط به جملهای مانند «I love data science and analytics vidhya.» را از مدل دریافت کنیم. در قسمت «SERVER_IP_HERE » میبایست IP سرور یا Cloud را وارد کنید. با نوشتن این کدها انتظار داریم تا امبدینگ با ابعاد (1,768) یعنی یک جمله که با ۷۶۸ ویژگی نشان داده شده را دریافت کنیم.
شرح مسئله: شناسایی و دسته بندی سخنان توهین آمیز در شبکه اجتماعی
برای اینکه عملکرد و میزان اثربخشی BERT را ببینید از یک دیتاست واقعی استفاده میکنیم. این دیتاست، مجموعهای از توییتها را در بر میگیرد که در یکی از ۲ دسته «سخنان توهینآمیز» (Hate Speech) و «سختار غیر توهینآمیز» قرار گرفتهاند.
برای سادهتر شدن کار، تعریف ما از توییت توهین آمیز، گفتاری است که شامل محتوای نژادپرستی یا تبعیض جنسیتی باشد و کاری که میبایست انجام دهیم این است که توییتهای نژادپرستانه یا تبعیضآمیز را از سایر توییتها جدا یا به اصطلاح طبقهبندی کنیم.
توجه داشته باشید که ما برای دریافت امبدینگهای مربوط به توییتهای داخل دیتاست از مدل BERT استفاده میکنیم. سپس این امبدینگها را برای آموزش مدل طبقهبندی متن بهکار میبریم.
تصویر زیر، نمای کلی پروژه و جریان کاری BERT را نشان میدهد.

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

برای این منظور کدهای زیر را نوشتهایم.
در خط شماره ۵، دیتاست را وارد برنامه کردهایم. در خط شماره ۱۱ تابع clean_text را داریم که برای رفع نویزهای موجود در دادهها مورد استفاده قرار میگیرد. متن ورودی به این تابع از وجود کاراکترهای غیر الفبایی پاکسازی شده و بهصورت حروف کوچک از تابع خارج میشود. در خط شماره ۲۳ نیز تابع clean_text روی تمامی توییتها اعمال ميشود و به همین ترتیب، خروجیهای آماده شده را نیز ذخیره خواهد شد.
تا این قسمت، دادههای پروژه را تمیز و آماده کردهایم. اکنون باید آن را به ۲ بخش «آموزش» و «اعتبارسنجی» تقسیم کنیم. برای این منظور میتوانید از کدهای زیر و کتابخانه sklearn استفاده کنید.
در خط شماره ۴ عمل تقسیمبندی با اختصاص ۲۵٪ از دادهها برای تست و مابقی برای یادگیری انجام شده است. اکنون برای دریافت امبدینگهای مربوط به توییتها از کدهای زیر استفاده میکنیم.
حال به سراغ ایجاد و آموزش مدل طبقهبندی میرویم.
برای طبقهبندی از رگرسیون لجستیک و کتابخانه sklearn استفاده شده است. در خطوط ۶ و ۸ نیز به ترتیب، مدل را آموزش دادهایم و روی دادههای تست امتحان ارزیابی کردهایم. برای ارزیابی مدل و بررسی دقت آن در طبقهبندی، از accuracy_score و کتابخانه sklearn استفاده میکنیم تا میزان درصد تخمینهای درست مدل را به ما نشان دهد.
با اینکه دیتاست مورد استفاده در این پروژه اندازه بزرگی ندارد اما بهطرز حیرتانگیزی دقت مدل ما در طبقهبندی به ۹۵٪ میرسد. شما میتوانید از امبدینگهای مدل زبانی BERT در سایر پروژههای خود نیز استفاده کنید.
ادامه یادگیری با فرادرس
در این مطلب، مدل زبانی BERT را بررسی کردیم. اما با توجه به اینکه این روزها، سیستمهای گوناگون دیگری از مدلهای بزرگ زبانی وجود دارند که ما را در انجام امور مختلف یاری میدهند، در ادامه برخی از فیلمهای آموزشی مرتبط را فهرست کردهایم.

جمعبندی
در این مطلب از مجله فرادرس مدل زبانی BERT شرکت گوگل را بررسی کردیم. مدل بسیار قدرتمندی که توانایی انجام بسیاری از امور به شکلی عالی را فراهم میکند. BERT یکی از نخستین چتباتهای نوین محسوب میشود. ممکن است فکر کنید که این مدل زبانی قدیمی شده اما باید بگوییم که این LLM هنوز هم کاربردهای زیادی دارد و نتایج بسیار خوبی را نیز به کاربرانش ارائه میدهد. همانطور که گفته شد، BERT بهشکل اپنسورس عرضه شده است. به همین دلیل، نسخههای متنوعی از آن وجود دارد. علاوه بر این، میتوانید صدها نسخه از BERT را بیابید که برای انجام کارهای مشخص و متنوعی آموزش دیدهاند.
اپنسورس بودن BERT به این معناست که افراد و توسعهدهندگان مختلف میتوانند بهراحتی و با کمترین محدودیت به آن دسترسی داشته و از امکانات موجود استفاده کنند. از مزایا و همچنین نقاط ضعف مدل BERT نیز به شما گفتیم و سپس طرز کار آن را برایتان شرح دادیم.
source