در این آموزش به شما نشان می دهم که چگونه می توانید از BERT با کتابخانه Huggingface Pytorch استفاده کنید تا یک مدل را به سرعت و کارآمد تنظیم کنید تا در طبقه بندی جمله ها به وضعیت عملکرد هنری نزدیک شوید. به طور گسترده تر ، من کاربرد عملی یادگیری انتقال در NLP را توصیف می کنم تا مدل های با کارایی بالا با حداقل تلاش در طیف وسیعی از کارهای NLP ایجاد شود.
این پست به دو شکل ارائه شده است - به عنوان یک پست وبلاگ در اینجا و به عنوان یک نوت بوک Colab در اینجا.
محتوا در هر دو یکسان است ، اما:
پست وبلاگ شامل یک بخش نظرات برای بحث است.
نوت بوک COLAB به شما امکان می دهد کد را اجرا کرده و همانطور که خوانده اید ، آن را بازرسی کنید.
من همچنین یک ویدیویی از این پست را در کانال YouTube خود منتشر کرده ام!
فهرست
معرفی
تاریخ
سال 2018 یک سال دستیابی به موفقیت در NLP بود. یادگیری ، به ویژه مدلهایی مانند Elmo Allen Ai ، OpenAi's Open-GPT و Google's Bert به محققان اجازه داد تا چندین معیار را با حداقل تنظیم دقیق کار خاص انجام دهند و بقیه جامعه NLP را با مدل های پیش ساخته فراهم کنند که به راحتی می توانند (با داده های کمتری می توانند (با داده های کمتریو زمان محاسبه کمتر) برای تولید نتایج هنری به خوبی تنظیم و اجرا شود. متأسفانه ، برای بسیاری از افراد در NLP و حتی برای برخی از تمرین کنندگان با تجربه ، تئوری و کاربرد عملی این مدل های قدرتمند هنوز به خوبی درک نشده است.
برت چیست؟
برت (بازنمایی رمزگذار دو طرفه از ترانسفورماتورها) ، که در اواخر سال 2018 منتشر شد ، مدلی است که ما در این آموزش از آن استفاده خواهیم کرد تا درک بهتری از راهنمایی و راهنمایی عملی برای استفاده از مدل های یادگیری انتقال در NLP فراهم کند. BERT روشی برای بازنمودهای زبان پیش بینی است که برای ایجاد مدلهایی استفاده می شود که تمرین کنندگان NLP می توانند سپس بتوانند به صورت رایگان بارگیری و استفاده کنند. شما می توانید از این مدل ها برای استخراج ویژگی های زبان با کیفیت بالا از داده های متن خود استفاده کنید ، یا می توانید این مدل ها را بر روی یک کار خاص (طبقه بندی ، تشخیص موجودیت ، پاسخ به سؤال و غیره) با داده های خود تنظیم کنید تا وضعیت خود را تولید کنیدپیش بینی های هنری.
این پست توضیح می دهد که چگونه می توانید BERT را اصلاح و تنظیم کنید تا یک مدل قدرتمند NLP ایجاد کنید که به سرعت نتایج هنری را به شما می دهد.
مزایای تنظیم دقیق
در این آموزش ، از برت برای آموزش طبقه بندی متن استفاده خواهیم کرد. به طور خاص ، ما مدل BERT از قبل آموزش دیده را در نظر خواهیم گرفت ، یک لایه نشده از نورون ها را در انتها اضافه می کنیم و مدل جدید را برای کار طبقه بندی خود آموزش خواهیم داد. چرا این کار را به جای آموزش قطار یک مدل یادگیری عمیق خاص (CNN ، BILSTM و غیره) انجام می دهد که برای کار خاص NLP مورد نیاز شما مناسب است؟
توسعه سریعتر
اول ، وزن مدل BERT از قبل آموزش داده شده در حال حاضر اطلاعات زیادی را در مورد زبان ما رمزگذاری می کند. در نتیجه ، برای آموزش مدل تنظیم دقیق ما زمان بسیار کمتری طول می کشد - به نظر می رسد که ما قبلاً لایه های پایین شبکه خود را به طور گسترده آموزش داده ایم و فقط باید در حالی که از خروجی خود به عنوان ویژگی هایی برای کار طبقه بندی خود استفاده می کنیم ، آنها را به آرامی تنظیم کنیم. در حقیقت ، نویسندگان فقط 2-4 دوره آموزش را برای تنظیم دقیق BERT در یک کار خاص NLP توصیه می کنند (در مقایسه با صدها ساعت GPU مورد نیاز برای آموزش مدل اصلی برت یا LSTM از ابتدا!).
داده های کمتر
علاوه بر این و شاید به همان اندازه مهم ، به دلیل وزن های از پیش آموزش دیده ، این روش به ما امکان می دهد تا وظیفه خود را بر روی یک مجموعه داده بسیار کوچکتر از آنچه در مدلی که از ابتدا ساخته شده است تنظیم کنیم. اشکال اصلی مدل های NLP که از ابتدا ساخته شده است این است که ما اغلب به یک مجموعه داده بزرگ و بزرگ نیاز داریم تا شبکه خود را به دقت معقول آموزش دهیم ، به این معنی که باید زمان و انرژی زیادی را در ایجاد مجموعه داده ها قرار داد. با تنظیم دقیق BERT ، ما اکنون می توانیم با آموزش یک مدل به عملکرد خوب در مقدار بسیار کمتری از داده های آموزشی ، از بین برویم.
نتایج بهتر
سرانجام ، این روش ساده تنظیم دقیق (به طور معمول اضافه کردن یک لایه کاملاً متصل در بالای BERT و آموزش برای چند دوره) برای دستیابی به نتایج ART با حداقل تنظیمات خاص کار برای طیف گسترده ای از کارها نشان داده شد: طبقه بندی، استنباط زبان ، شباهت معنایی ، پاسخ به سؤال و غیره. به جای اجرای معماران عرف و گاه وسواس که نشان داده می شود به خوبی در یک کار خاص کار می کند ، به سادگی تنظیم دقیق BERT یک جایگزین بهتر (یا حداقل برابر) است.
تغییر در NLP
این تغییر برای انتقال یادگیری موازی همان تغییراتی است که چند سال پیش در دید رایانه رخ داده است. ایجاد یک شبکه یادگیری عمیق خوب برای کارهای بینایی رایانه می تواند میلیون ها پارامتر را به خود اختصاص دهد و برای آموزش بسیار گران باشد. محققان دریافتند که شبکه های عمیق بازنمایی ویژگی های سلسله مراتبی را می آموزند (ویژگی های ساده مانند لبه ها در پایین ترین لایه ها با ویژگی های تدریجی پیچیده تر در لایه های بالاتر). به جای اینکه هر بار یک شبکه جدید را از ابتدا آموزش دهید ، لایه های پایین یک شبکه آموزش دیده با ویژگی های تصویر عمومی را می توان کپی و برای استفاده در شبکه دیگری با یک کار متفاوت کپی و منتقل کرد. به زودی بارگیری یک شبکه عمیق از پیش آموزش داده شده و به سرعت آن را برای کار جدید بازیابی می کند یا لایه های اضافی را در بالا اضافه می کند - بسیار ترجیح می دهد از روند گران آموزش یک شبکه از ابتدا. برای بسیاری ، معرفی مدل های زبان عمیق از قبل آموزش دیده در سال 2018 (ELMO ، BERT ، ULMFIT ، OPEN-GPT و غیره) همان تغییر را برای انتقال یادگیری در NLP که دید رایانه ای دید ، نشان می دهد.
بیا شروع کنیم!
1. راه اندازی
1. 1استفاده از GPU COLAB برای آموزش
Google Colab GPU و TPU های رایگان را ارائه می دهد! از آنجا که ما در حال آموزش یک شبکه عصبی بزرگ خواهیم بود ، بهتر است از این استفاده کنیم (در این حالت ما یک GPU را ضمیمه خواهیم کرد) ، در غیر این صورت آموزش مدت زمان بسیار طولانی خواهد داشت.
با رفتن به منو و انتخاب می توان یک GPU اضافه کرد:
ویرایش تجارت با گزینههای باینری...
ما را در سایت تجارت با گزینههای باینری دنبال می کنید
برچسب : نویسنده : نازنین فراهانی بازدید : 39 تاريخ : سه
شنبه
16 خرداد
1402 ساعت: 15:36