مدل زبانی چیست
مدل زبانی یا Language Model یکی از تسکهای مهم حوزه پردازش زبان طبیعی و طبیعتا هوش مصنوعی است. این روزها LLM یا مدل زبانی بزرگ یکی از مباحث داغ هوش مصنوعی است که زیرمجموعهای از تسک Language Modeling محسوب میشود. با من همراه باشید تا ببینیم این مدل زبانی چیست؟
مدل کردن زبان یا Language Modeling
در این بخش، میخواهم خیلی ساده و عامیانه درمورد مدل کردن زبان صحبت کنم. اگر با مدل کردن زبان آشنا نباشید، احتمالا سوالهای متعددی در ذهنتان میچرخد:
- مدل کردن زبان یعنی چه؟
- مدل یعنی چه؟ زبان یعنی چه؟
- اصلا مدل کردن یعنی چه
- و …
ابتدا میخواهم درباره مدل کردن صحبت کنم. اجازه دهید با یک مثال ساده مفهوم مدل کردن را برای شما روشن کنم.
مدل کردن یا Modeling یعنی چه؟
تصور کنید، شما یک سازنده بازیهای کامپیوتری هستید. میخواهید رفتار توپهای مختلف را شبیهسازی کنید (انیمیشن زیر). از راست به چپ، سه توپ بولینگ، فوتبال و بسکتبال را مشاهده میکنید؛ هرکدام از این توپها در برخورد به زمین رفتار متفاوتی از خود نشان میدهند. برای ما این رفتار قابل درک هست. اما چگونه میتوان رفتار این توپها در واقعیت را شبیهسازی کند؟
جواب این هست که ابتدا سعی کنیم، محیط را دقیق مدل کنیم. مثلا میزان سختی زمین، مقاومت هوا و غیره. سپس، هریک از توپها را مدل کنیم. مدل کردن یک توپ به معنای تعریف ویژگیهای آن مانند جنس، شکل، اندازه، وزن و همچنین نحوه حرکت آن در دنیای واقعی است. برای مثال، توپ بولینگ از جنس پلاستیک سخت است، کروی است، وزن نسبتاً بالایی دارد و در برخورد با زمین جهش بزرگی نمیکند. در مقابل، توپ فوتبال از جنس چرم است، کروی است، وزن نسبتا کمی دارد و در برخورد با زمین بیشتر از بولینگ جهش میکند. توپ بسکتبال نیز از جنس چرم است، کروی است، وزن نسبتاً کمی دارد و در برخورد با زمین جهش زیادی دارد. درنهایت، این توپها را در محیط ساختهشده تست کنیم. همه توضیحاتی که من دادم، خیلی سطحی بود. طبیعتا، خیلی دقیقتر از اینها میتوانیم یک توپ را مدل کنیم.
مبحث مدل کردن بسیار وسیع است. به عنوان مثال، در درسهای فیزیک دوران متوسطه، ما دائما دنبال مدل کردن گوی به هوا پرتابشده بودیم. میخواستیم بدانیم تا چه ارتفاعی بالا میرود، چقدر طول میکشد که به نقطه اوج و سرعت صفر برسد، هنگام سقوط، با چه سرعتی به زمین میخورد و … پس مشاهده میکنید که ما دائما درحال مدل کردن پدیدههای موجود در دنیای واقعی هستیم.
مدل کردن به ما این امکان را میدهد که رفتار لحظات پدیده مدنظر را پیشبینی کنیم (این جمله را به خاطر داشته باشید). اینکه در کدام نقطه و چه زمانی توپ/گوی به زمین میخورد. بسیارخب، امیدوارم مفهوم مدل کردن برای شما روشن شده باشد. حالا میخواهم درباره مدل کردن زبان صحبت کنم.
مدل کردن زبان یا Language Modeling یعنی چه؟
اینجا هم مشابه با مثالهای بخش قبلی، ما دنبال مدل کردن پدیده زبان هستیم. منظورم از زبان، همین زبان انسان هست؛ زبان انگلیسی، فارسی و غیره. ما میخواهیم در کامپیوتر مدلی داشته باشیم که زبان انسان را به خوبی بفهمد و البته بتواند شبیه انسان حرف بزند! همانطور که در بالا گفتم، مدل کردن به ما این امکان را میدهد که رفتار لحظات آینده پدیده مدنظر را پیشبینی کنیم. با مدل کردن زبان، ما میتوانیم پیشبینی کنیم که کلمات بعدی یک عبارت چیست:
بچهها لطفا کتاب فارسی را …
این مدل کردن زبان در مغز ما به خوبی انجام شده است. از لحظهای که به دنیا آمدیم، شنیدن و پردازش جملات در مغز ما شروع شده است. با بزرگتر شدن، اگرچه نمیتوانستیم حرف بزنیم، اما کمکم حرف اطرافیان خود را میفهمیدیم. سپس، کمکم شروع کردیم به حرف زدن و …
تا اینجا سعی کردم، شما را خیلی ساده و بدور از هرگونه اصطلاح علمی با مدل کردن زبان آشنا کنم. حالا میخواهم، بحث را جدیتر پیش ببرم و نگاهی علمی داشته باشیم. با مدل کردن زبان، ما یک مدل زبانی یا Language Model میسازیم. بریم ببینیم این مدل زبانی چیست…
مدل زبانی یا Language Model چیست؟
مدل زبانی یا Language Model را میتوان اینگونه تعریف کرد:
یک مدل یادگیری ماشین که مانند انسان قادر به درک و تولید متن است.
خالی از لطف نیست که تعریف مدل زبانی از گوگل را هم بخوانید:
A language model is a machine learning model that aims to predict and generate plausible language. link
تعریف واضح هست؛ یک مدل زبانی از روی دادههای متنی تولیدشده توسط انسان یاد میگیرد که انسانها چگونه مینویسند یا صحبت میکنند. مدل زبانی، علاوهبر درک زبان، میتواند کلمات یا عبارات بعدی در یک جمله را پیشبینی کند. به عبارت دیگر، مدل زبانی میتواند جمله نیمه تمام ما را کامل کند. در شکل زیر، بهصورت نمادین به شما نشان دادهام که مدل زبانی یک متن کوتاه به عنوان ورودی دریافت کرده و سپس ادامه آن متن را در خروجی تولید کرده است.
نمونه مثال از مدل زبانی
بیایید چند نمونه مثال از خروجی یک مدل زبانی باکیفیت را با هم بخوانیم. فقط قبلش بگویم که بخش قرمز، ورودی من به مدل زبانی هست و بخش سیاه، متنی است که مدل زبانی تولید کرده است.
مشغول وبلاگ نوشتن بودم که ناگهان قطرهای باران روی صفحهنمایش لپتاپم افتاد. با وحشت بلند شدم و به پنجره نگاه کردم. آسمان صاف بود و هیچ ابری دیده نمیشد. به قطره باران خیره شدم که داشت مسیر خود را روی صفحه نمایش به سمت پایین طی میکرد. در آن لحظه به پوچی هستی و گذر زمان فکر کردم. قطره باران به لبه صفحه نمایش رسید و سقوط کرد. دوباره به وبلاگ نویسیام ادامه دادم، اما دیگر تمرکز قبل را نداشتم. گویی آن قطره باران، دنیای من را برای لحظهای دگرگون کرده بود.
شگفتانگیزه نه؟! نه نیست! 😃 یک قطره آب چه وحشتی داره؟! از افتادن قطره آب چطوری به پوچی و گذر زمان رسیدی؟! همچنین، نمیدونم چرا دنیاش دگرگون شد! البته، این رو هم بگم که وقتی متنش رو میخواندم، اون صحنه رو هم میدیدم. یعنی، توصیفش بسیار خوب بود. بهتر از من…
من یک جملهای را همیشه تکرار میکنم و آن هم این هست که آمار و ارقام همچون سیلی است. بیایید این جمله را به مدل زبانی بدهیم و ببینیم چه میگوید.
آمار و ارقام، گاهی مانند سیلیای ناگهانی به صورتمان میخورند، تلخ و گزنده. اعداد و ارقامی که گاه بیرحمانه حقایق ناگفتهای را برملا میکنند و ما را از خواب غفلت بیدار میکنند. آمار طلاق، آمار فقر، آمار بیکاری، هر کدام گویی داستانی غمانگیز را روایت میکنند. اما در این میان، آمار و ارقام میتوانند انگیزهای برای تغییر نیز باشند. آمار پیشرفتهای علمی، آمار کاهش مرگ و میر، آمار افزایش امید به زندگی، هر کدام نویدبخش آیندهای روشنتر هستند. آمار و ارقام، زبانی گویا دارند، زبانی که اگر درست درک شود، میتواند راهنمای ما در مسیر زندگی باشد.
چقدر تک تک کلماتی که میگوید دقیق است. جمله آخرش چقدر پرمعناست. اما نکته جذابتر این هست که مدل زبانی فقط زبان انسان را مدل نمیکند! بلکه، هر زبانی را میتواند مدل کند. مثلا میتواند زبان برنامه نویسی پایتون را بفهمد و کد پایتون بنویسد. در کد زیر، پنج خط اول را من نوشتهام و باقی آن را یک مدل زبانی مثل یک کدنویس کد زده است.
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-10, 10, 1000) y = np.sin(x) plt.plot(x, y) plt.xlabel('X') plt.ylabel('sin(X)') plt.title('Plot of sin(X)') plt.grid(True) plt.show()
مدل زبانی میتواند، زبانهای دیگری مانند نُت موسیقی، ریاضیات و غیره را هم درک کند.
انواع مدل زبانی
روشهای مختلفی برای ساخت مدل زبانی وجود دارد. مدل زبانی N-grams سادهترین مدل زبانی است که بدون هرگونه شبکه عصبی و یادگیری، صرفا براساس احتمالات کار میکند. مدل زبانی مبتنی بر شبکه های عصبی عمیق یکی دیگر از روشهای ساخت مدل زبانی است. مدل زبانی مبتنی بر شبکه بازگشتی یا شبکه کانولوشنی یا شبکه ترنسفورمر… بین اینها، فعلا مدل زبانی مبتنی بر شبکه ترنسفورمر از بقیه قدرتمندتر است.
پس من به دو نوع مدل زبانی اشاره کردم که یکی ساده و دیگری مدرن و بسیار قدرتمند است:
- مدل زبانی N-grams
- مدل زبانی عصبی
درادامه درمورد هریک از اینها صحبت میکنم.
ادامه دارد…
مطالب زیر را حتما مطالعه کنید
شبکه اتوانکدر
شبکه عصبی mlp
شبکه ترنسفورمر
مدل MobileLLM
یادگیری عمیق چیست
آموزش یادگیری عمیق رایگان
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
ممنونم از بیان گویا و پر محتواتون.
منتظر ادامه پست ها هستیم
سپاس 😊🙏
بله، ادامه آموزش مدل زبانی رو هم آماده خواهیم کرد.
پیشنهاد میکنیم، پست LLM چیست رو هم مطالعه بفرمایین.
https://howsam.org/large-language-models/