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

Fall Back

اگه اهل دنیای هوش مصنوعی و پردازش متن باشی، قطعاً اسم NER یا همون Named Entity Recognition رو شنیدی. NER تو حوزه پزشکی یعنی می‌خوای هر وقت تو یه متن اسم یه بیماری، دارو یا ژن اومد، هوش مصنوعی بفهمه اینا اسمن و هایلایت‌شون کنه. حالا موضوع این مقاله اینه که چجوری میشه این کار رو با کمترین دیتا – یعنی اصطلاحاً در حالت “few-shot” (یعنی وقتی فقط چندتا مثال داریم)، با بهترین دقت انجام داد.

اگه بخوام راحت توضیح بدم، مشکل همیشه اینجاست که برای پروژه‌های پزشکی بیشتر وقتا کلی داده دست آدم نیست و آموزش دادن مدل با کلی مثال سخته. مدل‌های بزرگ زبونی (Large Language Models یا همون LLMs – مثلاً همون مدل‌های گنده‌ای که متن تولید می‌کنن یا به سوالا جواب میدن) مثل GPT-4 و LLaMA این اواخر تو این فضا مطرح شدن و دارن کار رو راه می‌اندازن. اما وقتی داده کمه، درست جواب دادن‌شون هم خود یه چالشه.

خب، تیم این مقاله اومدن سراغ یه ایده جدید: فرض کن داری هوش مصنوعی رو مثال می‌زنی تا یاد بگیره. قبلاً یه سری پرسش و پاسخ یا نمونه آماده می‌ذاشن (به این می‌گن «prompting»). حالا اینا رفتن سراغ یه حرکت جالب به اسم dynamic prompting با کمک retrieval-augmented generation یا RAG. ⬅️ حالا RAG چی میشه؟ یعنی مدل هر دفعه که با یه متن جدید روبرو میشه، میاد باهوشانه نمونه‌هایی رو که بیشترین شباهت رو به اون متن دارن پیدا می‌کنه و همونا رو به عنوان راهنما می‌ذاره جلوی مدل. این که دیگه کلی بهتر از اینه که هی نمونه‌های ثابت بذاری، نه؟

توی این مقاله بررسی کردن که چجوری میشه با «prompt engineering» (یعنی روش ساخت و طراحی همین نمونه‌های راهنما)، هم به صورت ثابت (static) و هم پویا (dynamic)، نتایج رو بهتر کرد. نتیجه هم واضح بوده: اگه «prompt» رو به صورت ساختاریافته‌تر بچینن، مثلاً براش قالب مشخص بذارن، حتی مدل‌های خاص مثل GPT-4 یا GPT-3.5 تا ۱۲٪ دقت‌شون میره بالا (اینجا هم به F1-Score نگاه کردن که یه معیار معروف برای ارزیابی مدل هوش مصنوعیه).

ولی اصل قضیه dynamic prompting هست. با ترکیب روش‌های بازیابی مثل TF-IDF (یه متد کلاسیک برای پیدا کردن شباهت متون) و SBERT (یک مدل هوش مصنوعی مخصوص درک معنی جمله‌ها)، هر دفعه بهترین مثال‌های قبلی رو نسبت به متن جدید پیدا می‌کنن و باهاش مدل رو راهنمایی می‌کنن.

نکته جالب: وقتی این روش پویا رو تست کردن، تو حالت ۵ تا مثال و ۱۰ تا مثال (همون ۵-shot و ۱۰-shot)، حتی ۷.۳٪ و ۵.۶٪ هم دقت مدل بیشتر شد. یعنی نشون دادن این تکنیک باعث میشه مدل تو شناسایی اسم‌های توی متون پزشکی خیلی بهتر عمل کنه، حتی زمانی که کلی مثال در اختیارش نیست.

در کل، اگه دنبال اینی که پروژه‌های پزشکی رو با هوش مصنوعی و داده کم پیش ببری، این روش‌های پویا واقعاً میشه به دادت برسه. خلاصه‌ش اینه: هرچی مثال‌هایی که به مدل نشون میدی شبیه‌تر و هوشمندتر انتخاب بشن، خروجی هم باحال‌تر و دقیق‌تر میشه!

منبع: +