نویسنده(های): ایگور نوویکوف
در ابتدا منتشر شد به سمت هوش مصنوعی.
یکی از چالش های اصلی در استفاده از LLMs در تجارت این است LLMs توهم داشتن چگونه می توانید مشتریان خود را به یک ربات چت بسپارید که هر لحظه ممکن است دیوانه شود و به آنها چیزی نامناسب بگوید؟ یا چگونه می توانید به دستیار هوش مصنوعی شرکتی خود اعتماد کنید اگر به طور تصادفی همه چیز را درست کند؟
این یک مشکل است، به خصوص با توجه به اینکه نمی توان یک LLM را اخراج کرد یا پاسخگو بود.
این چیزی است که در مورد سیستمهای هوش مصنوعی وجود دارد – آنها به هیچ وجه از دروغ گفتن به شما سود نمیبرند، اما در عین حال، با وجود هوشمندی به نظر میرسند، آنها یک شخص نیستند، بنابراین نمیتوان آنها را نیز سرزنش کرد.
برخی RAG را به عنوان یک روش درمانی معرفی می کنند، اما در واقعیت فقط یک علت خاص را حل می کند و به دیگران کمک نمی کند. تنها ترکیبی از چندین روش می تواند کمک کند.
با این حال همه امیدها از بین نمی روند. راه هایی برای کار با آن وجود دارد، پس بیایید به آن نگاه کنیم.
بنابراین برای اینکه در مورد توهم زیاد فلسفی نشویم، بیایید مهمترین موارد را تعریف کنیم:
- مدل سوال را می فهمد اما پاسخ نادرستی می دهد
- مدل سوال را متوجه نشد و در نتیجه پاسخ نادرستی داد
- هیچ پاسخ درست یا غلطی وجود ندارد، و بنابراین اگر با حالت مخالف هستید – آن را نادرست نمی کند. مانند اگر از اپل در مقابل اندروید بپرسید، هر چیزی که پاسخ دهد از نظر فنی فقط یک نظر است
بیایید با دومی شروع کنیم. اینها دلایلی هستند که چرا یک مدل می تواند سؤالات را اشتباه درک کند:
- سوال مزخرف است (مبهم، روشن نیست، و غیره) و بنابراین پاسخ آن مزخرف است. تقصیر مدل نیست، سوالات بهتری بپرسید
- مدل زمینه ندارد
- زبان: مدل زبانی که شما استفاده می کنید را نمی فهمد
- بدشانسی یا به عبارت دیگر توزیع تصادفی استدلال را به طرز عجیبی هدایت کرد
حالا بیایید به اولین مورد نگاه کنیم: چرا یک مدل دروغ می گوید، که به طور واقعی و قابل تأیید اطلاعات نادرست می دهد، اگر سؤالات را درک می کند؟
- تمام مراحل منطقی برای رسیدن به نتیجه را دنبال نکرد
- زمینه کافی نداشت
- اطلاعات (زمینه) در این نیز نادرست است
- اطلاعات درستی دارد اما گیج شده است
- برای دادن پاسخ های نادرست (به دلایل سیاسی و موارد مشابه) آموزش داده شده بود.
- بدشانسی، و توزیع تصادفی منجر به استدلال به روشی عجیب شد
- پیکربندی شده است تا خیال پردازی شود (که گاهی اوقات می تواند مطلوب باشد)
- برازش و عدم تناسب: مدل در زمینه خاصی آموزش دیده است و سعی می کند منطق خود را در زمینه دیگری اعمال کند که منجر به استنتاج یا استقراء نادرست در پاسخ می شود.
- مدل غرق در داده است و شروع به از دست دادن زمینه می کند
من قصد ندارم در مورد چیزهایی بحث کنم که مشکل مدل نیستند، مانند سوالات بد یا سوالات بدون پاسخ درست. بیایید روی آنچه که میتوانیم برای حل آن تلاش کنیم، یک به یک تمرکز کنیم.
مدل دارای زمینه یا اطلاعات کافی نیست یا اطلاعاتی که به آن ارائه شده صحیح یا کامل نیست
اینجاست که RAG وارد عمل می شود. RAG، زمانی که به درستی پیاده سازی شود، باید زمینه لازم مدل را فراهم کند تا بتواند پاسخ دهد. در اینجا مقاله ای در مورد چگونگی انجام آن وجود دارد RAG را به درستی انجام دهید.
مهم است که آن را به درستی انجام دهید، با تمام ابرداده های مورد نیاز در مورد ساختار اطلاعات و ویژگی ها. مطلوب است که از چیزی مانند GraphRag و Reranking در مرحله بازیابی استفاده شود، به طوری که به مدل فقط زمینه مربوطه داده شود، در غیر این صورت، مدل ممکن است گیج شود.
همچنین بسیار مهم است که دادههایی را که به مدل ارائه میدهید بهروز نگه دارید و با در نظر گرفتن نسخهسازی بهطور مداوم آنها را بهروزرسانی کنید. اگر تضاد داده ای دارید، که غیر معمول نیست، مدل شروع به تولید پاسخ های متناقض نیز می کند. روش هایی مانند الگوریتم حداکثر ارتباط حاشیه ای (MMR) وجود دارد که ارتباط و تازگی اطلاعات را برای فیلتر کردن و مرتب سازی مجدد در نظر می گیرد. با این حال، این یک نوشدارویی نیست و بهتر است در مرحله ذخیره سازی اطلاعات به این موضوع رسیدگی شود.
زبان
همه مدل ها همه زبان ها را به یک اندازه خوب نمی فهمند. همیشه ترجیح داده می شود از انگلیسی برای درخواست ها استفاده کنید زیرا برای اکثر مدل ها بهترین کار را دارد. اگر مجبور به استفاده از یک زبان خاص هستید – ممکن است مجبور شوید از یک مدل ساخت برای آن استفاده کنید، مانند Qwen برای چینی.
یک مدل تمام مراحل منطقی را برای رسیدن به نتیجه دنبال نمی کند
میتوانید با تکنیکهایی مانند SelfRag، Chain of Thought یا SelfCheckGPT مدل را مجبور کنید که یک فرآیند تفکر خاص را دنبال کند. اینجا یک است مقاله در مورد این تکنیک ها
ایده کلی این است که از مدل بخواهیم به صورت مرحلهای فکر کند و نتیجهگیری و مراحل میانی آن را توضیح/تأیید کند تا بتواند خطاهای خود را پیدا کند.
همچنین میتوانید از مدل Agents استفاده کنید، که در آن چندین عامل LLM با یکدیگر ارتباط برقرار میکنند و خروجیهای یکدیگر و هر مرحله را تأیید میکنند.
یک مدل با اطلاعاتی که داشت گیج شد و “بدشانسی”
این دو در واقع ناشی از یک چیز هستند و این یک مشکل است. روش کار مدل ها این است که به طور تصادفی نشانه بعدی را در یک جمله پیش بینی می کنند. این فرآیند تا حدودی تصادفی است، بنابراین ممکن است مسیری با احتمال کمتر انتخاب کند و از مسیر خارج شود. در مدل و نحوه کار آن تعبیه شده است.
روش های مختلفی برای مدیریت این موضوع وجود دارد:
- MultiQuery – چندین پرس و جو برای پاسخ یکسان انجام داد و با استفاده از امتیاز مرتبط مانند Cross Encoder بهترین مورد را انتخاب کرد. اگر 3 پاسخ بسیار مشابه و یک پاسخ بسیار متفاوت دریافت کنید – احتمالاً این یک توهم تصادفی بوده است. سربار معینی را اضافه می کند، بنابراین شما هزینه را پرداخت می کنید، اما روش بسیار خوبی برای اطمینان از اینکه به طور تصادفی پاسخ بدی دریافت نمی کنید، است.
- دمای مدل را روی مقدار پایینتری تنظیم کنید تا از رفتن آن به جهات کمممکن (یعنی خیالپردازی) جلوگیری کنید.
یکی دیگر وجود دارد که رفع آن سخت تر است. مدل ایده های مشابه از نظر معنایی را در فضای برداری نزدیک نگه می دارد. پرسیدن در مورد حقایقی که دارای حقایق دیگری هستند که نزدیک به هم هستند اما در واقع مرتبط نیستند، مدل را به مسیری با کمترین مقاومت سوق می دهد. این مدل به اصطلاح حافظه تداعی دارد، بنابراین در تداعی فکر می کند، و این حالت تفکر برای کارهایی مانند بازی شطرنج یا ریاضی مناسب نیست. طبق توضیحات کانمن، این مدل دارای مغز سریع فکری است، اما مغز کندی ندارد.
مثلا از یه حالتی میپرسی 3 + 7 چیه جواب میده 37 چرا؟؟؟
اما همه چیز منطقی است زیرا اگر به 3 و 7 در فضای برداری نگاه کنید، نزدیکترین بردار به آنها است. 37. در اینجا اشتباه آشکار است اما ممکن است بسیار ظریف تر باشد.
مثال:
پاسخ نادرست است.
- “آفونسو” سومین پادشاه پرتغال بود. نه «آلفونسو». هیچ «آلفونسوی دوم» به عنوان پادشاه پرتغال وجود نداشت.
- مادر “آفونسو دوم” دولچه آراگون بود، نه اوراکای کاستیا.
از دیدگاه LLM، “آلفونسو” اساساً همان “آفونسو” است و “مادر” یک تطابق مستقیم است. بنابراین، اگر “مادر” نزدیک به “آفونسو” وجود نداشته باشد، LLM ترکیب آلفونسو/مادر را انتخاب خواهد کرد.
در اینجا یک مقاله توضیح داده شده است جزئیات و راه های بالقوه برای رفع این مشکل همچنین، به طور کلی، تنظیم دقیق مدل بر روی دادههای دامنه، احتمال وقوع آن را کمتر میکند، زیرا مدل کمتر با واقعیتهای مشابه در موارد لبه اشتباه میشود.
مدل پیکربندی شده است به طوری که مجاز به خیال پردازی است
این کار را می توان از طریق یک اعلان اصلی یا با تنظیم دمای مدل بسیار بالا انجام داد. بنابراین اساساً باید به مدل دستور دهید:
- اگر مطمئن نیستید یا اطلاعاتی ندارید جواب ندهید
- اطمینان حاصل کنید که هیچ چیزی در دستورات اعلان به مدل برای ساختن حقایق و به طور کلی، ارائه دستورالعمل بسیار واضح
- دما را پایین تر تنظیم کنید
بیش از حد و کم تناسب
اگر از مدلی استفاده میکنید که در فضای مراقبتهای بهداشتی برای حل وظایف برنامهنویسی آموزش دیده است، توهم ایجاد میکند، یا به عبارت دیگر، سعی میکند تکههای مربعی را در سوراخهای گرد قرار دهد، زیرا فقط میداند چگونه این کار را انجام دهد. این یک جور واضح است. اگر از یک مدل عمومی استفاده کنید که بر روی داده های عمومی از اینترنت برای حل وظایف خاص صنعت آموزش دیده است.
راه حل این است که از یک مدل مناسب برای صنعت خود استفاده کنید و آن را در آن زمینه تنظیم/آموزش دهید. که در موارد خاص صحت را به طور چشمگیری بهبود می بخشد. من نمی گویم که همیشه باید این کار را انجام دهید، اما ممکن است مجبور شوید.
مورد دیگر استفاده از مدل است خیلی کوچک (از نظر پارامترها) تا وظایف خود را حل کنید. بله، برخی از کارها ممکن است به یک مدل بزرگ نیاز نداشته باشند، اما مطمئناً نیاز دارند، و شما باید از یک مدل کوچکتر از اندازه مناسب استفاده کنید. استفاده از یک مدل خیلی بزرگ برای شما هزینه خواهد داشت، اما حداقل به درستی کار خواهد کرد.
مدل غرق در داده است و شروع به از دست دادن زمینه می کند
ممکن است فکر کنید که هر چه داده های بیشتری داشته باشید بهتر است – اما اصلاً اینطور نیست!
پنجره زمینه مدل و دامنه توجه هستند محدود است. حتی مدلهای اخیر با میلیونها نشانه پنجره زمینه به خوبی کار نمیکنند. آنها شروع به فراموش کردن چیزها، نادیده گرفتن چیزهای وسط، و غیره خواهند کرد.
راه حل در اینجا استفاده از RAG با مدیریت اندازه زمینه مناسب است. شما باید فقط داده های مرتبط را از قبل انتخاب کنید، آنها را مجددا رتبه بندی کنید و به LLM بدهید.
اینجا من است مقاله که برخی از تکنیک های انجام آن را مرور می کند.
همچنین، برخی از مدلها به هیچ وجه زمینه طولانی را مدیریت نمیکنند و در نقطهای مشخص، کیفیت پاسخها با افزایش اندازه بافت شروع به افت میکند، در زیر ببینید:
اینجا یک است مقاله تحقیقاتی روی آن
سایر تکنیک های عمومی
انسان در حلقه
شما همیشه می توانید فردی را در حلقه برای بررسی واقعی خروجی های LLM داشته باشید. به عنوان مثال، شما از LLM برای حاشیه نویسی داده ها استفاده می کنید (که یک ایده عالی است) – باید از آن در ارتباط با انسان های واقعی برای تایید نتایج استفاده کنید. یا از سیستم خود در حالت Co-pilot استفاده کنید که در آن انسان ها تصمیم نهایی را می گیرند. اگرچه این مقیاس به خوبی انجام نمی شود
اوراکل
از طرف دیگر، اگر آن گزینه در دسترس باشد، میتوانید از یک Oracle خودکار برای بررسی واقعی نتایج سیستم استفاده کنید.
ابزارهای خارجی
برخی از کارها، مانند محاسبات و ریاضیات، باید خارج از LLM و با استفاده از ابزارهایی که در اختیار LLM قرار می گیرد، انجام شود. به عنوان مثال، می توانید از LLM برای ایجاد یک پرس و جو در پایگاه داده SQL یا Elasticsearch و اجرای آن استفاده کنید و سپس از نتایج برای ایجاد پاسخ نهایی استفاده کنید.
مطالب بعدی را بخوانید:
راهنمای معماری RAG
راهنمای RAG پیشرفته
صلح!
منتشر شده از طریق به سمت هوش مصنوعی
منبع: https://towardsai.net/p/machine-learning/ways-to-deal-with-hallucinations-in-llm-3