برای جلوگیری از توهم در برنامههای هوش مصنوعی مولد از محافظها استفاده کنید

Summarize this content to 400 words in Persian Lang
با بررسی زمینه زمینهای، میتوانید با تشخیص پاسخهای نامربوط و بیاساس LLM از توهمات جلوگیری کنید.
Guardrails for Amazon Bedrock به شما این امکان را میدهد تا بر اساس موارد استفاده و سیاستهای هوش مصنوعی مسئول، محافظهایی را برای برنامههای هوش مصنوعی مولد خود پیادهسازی کنید. میتوانید چندین نرده محافظ متناسب با موارد استفاده مختلف ایجاد کنید و آنها را در چندین مدل پایه (FM) اعمال کنید، که تجربه کاربری ثابتی را ارائه میکند و کنترلهای ایمنی و حریم خصوصی را در برنامههای هوش مصنوعی مولد استاندارد میکند.
تا به حال، Guardrails از چهار خط مشی پشتیبانی می کرد – موضوعات رد شده، فیلترهای محتوا، فیلترهای اطلاعات حساس و فیلترهای کلمه. خط مشی بررسی زمینه زمینه ای (آخرین مورد اضافه شده در زمان نگارش) می تواند توهم را در پاسخ های مدل شناسایی و فیلتر کند. زمینی نیست در داده های سازمانی یا هستند غیر مرتبط به درخواست کاربران
زمینه سازی متنی برای جلوگیری از توهم
برنامه های کاربردی هوش مصنوعی مولد که می سازیم به LLM ها برای ارائه پاسخ های دقیق بستگی دارند. این ممکن است بر اساس قابلیت های ذاتی LLM یا استفاده از تکنیک هایی مانند RAG (Retrieval Augmented Generation) باشد. با این حال، این یک واقعیت شناخته شده است که LLM ها مستعد توهم هستند و می توانند با اطلاعات نادرست پاسخ دهند که بر قابلیت اطمینان برنامه تأثیر می گذارد.
خط مشی بررسی زمینه زمینه ای توهمات را با استفاده از دو پارامتر ارزیابی می کند:
زمین کردن – این بررسی میکند که آیا پاسخ مدل بر اساس منبع از نظر واقعی درست است و در منبع مستقر است یا خیر. هر گونه اطلاعات جدیدی که در پاسخ معرفی شود غیرمستند تلقی خواهد شد.
ارتباط – این بررسی میکند که آیا پاسخ مدل به درخواست کاربر مرتبط است یا خیر.
ارزیابی بر اساس امتیاز
نتیجه بررسی زمینی متنی مجموعه ای از نمرات اعتماد به نفس مربوط به زمین و ارتباط برای هر پاسخ مدل پردازش شده بر اساس منبع و درخواست کاربر ارائه شده است. می توانید پیکربندی کنید آستانه ها برای فیلتر کردن (مسدود کردن) پاسخ های مدل بر اساس نمرات ایجاد شده. این آستانه ها حداقل امتیاز اطمینان را برای پاسخ مدل به عنوان پایه و مرتبط در نظر می گیرند.
به عنوان مثال، اگر آستانه اتصال و آستانه ارتباط شما هر کدام روی آن تنظیم شده باشد 0.6، تمام پاسخ های مدل با امتیاز پایه یا مرتبط کمتر از آن به عنوان توهم تشخیص داده می شوند و مسدود می شوند.
ممکن است لازم باشد امتیازهای آستانه را بر اساس میزان تحمل دقت برای مورد استفاده خاص خود تنظیم کنید. به عنوان مثال، یک برنامه کاربردی با مشتری در حوزه مالی ممکن است به دلیل تحمل کمتر برای محتوای نادرست، به آستانه بالایی نیاز داشته باشد. به خاطر داشته باشید که آستانه بالاتر برای امتیازات زمینه و ارتباط منجر به مسدود شدن پاسخهای بیشتر میشود.
شروع با زمینه سازی متنی
برای درک درستی از نحوه عملکرد بررسی زمینسازی متنی، توصیه میکنم از کنسول بستر آمازون استفاده کنید زیرا آزمایش خطمشیهای Guardrail شما با ترکیبهای مختلف دادههای منبع و اعلانها را آسان میکند.
با ایجاد یک پیکربندی Guardrails شروع کنید. برای این مثال، آستانه بررسی زمین را روی آن قرار داده ام 0.85، آستانه امتیاز مربوط به 0.5 و پیام ها را برای درخواست و پاسخ های مسدود شده پیکربندی کرد:
به عنوان مثال، من از این قطعه متن از نامه PDF سهامداران 2023 آمازون استفاده کردم و از آن به عنوان منبع مرجع. برای سریع، استفاده کردم: آمازون در زمینه محاسبات کوانتومی چه می کند؟
بخش خوب در مورد استفاده از کنسول AWS این است که نه تنها میتوانید پاسخ نهایی (از پیش پیکربندی شده در Guardrail)، بلکه پاسخ مدل واقعی (که مسدود شده است) را ببینید.
در این مورد، پاسخ مدل بود مربوط از آنجایی که با اطلاعاتی در مورد آمازون برکت بازگشت. اما پاسخ بود بی پایه، زیرا بر اساس اطلاعات منبع که هیچ داده ای در مورد محاسبات کوانتومی یا آمازون برکت نداشت، نبود. از این رو امتیاز زمینی بود 0.01 – بسیار کمتر از آستانه پیکربندی شده 0.85، که منجر به مسدود شدن پاسخ مدل شد.
از بررسی زمینه زمینه برای برنامه های RAG با پایگاه های دانش استفاده کنید
به یاد داشته باشید، بررسی زمینی متنی سیاست دیگری است و میتوان آن را در هر جایی که بتوان از گاردریل استفاده کرد، استفاده کرد. یکی از موارد استفاده کلیدی، ترکیب آن با برنامه های RAG است که با پایگاه های دانش برای Amazon Bedrock ساخته شده است.
برای انجام این کار، یک پایگاه دانش ایجاد کنید. من آن را با استفاده از نامه 2023 سهامداران آمازون PDF به عنوان داده منبع (بارگیری شده از Amazon S3) و پایگاه داده برداری پیش فرض (مجموعه OpenSearch Serverless) ایجاد کردم.
پس از ایجاد پایگاه دانش، منبع داده را همگام کنید و باید آماده حرکت باشید!
بیایید با یک سوال شروع کنیم که می دانم می توان به آن پاسخ دقیق داد: آمازون در زمینه هوش مصنوعی مولد چه می کند؟
همانطور که انتظار می رفت این به خوبی پیش رفت – ما یک پاسخ مرتبط و مستدل دریافت کردیم.
بیایید یکی دیگر را امتحان کنیم: آمازون در زمینه محاسبات کوانتومی چه می کند؟
همانطور که می بینید، پاسخ مدل دریافت شد مسدودو پاسخ از پیش پیکربندی شده (در Guardrails) به جای آن برگردانده شد. این به این دلیل است که دادههای منبع در واقع حاوی اطلاعاتی در مورد محاسبات کوانتومی (یا آمازون برکت) نیستند و از پاسخ توهمآمیز توسط گاردیل جلوگیری شد.
چک زمینه زمینه را با هم ترکیب کنید RetrieveAndGenerate API
بیایید از کنسول AWS فراتر برویم و ببینیم که چگونه میتوان همان رویکرد را به روش برنامهنویسی اعمال کرد.
در اینجا یک مثال با استفاده از RetrieveAndGenerate API آورده شده است که یک پایگاه دانش را پرس و جو می کند و پاسخ هایی را بر اساس نتایج بازیابی شده تولید می کند. من از AWS SDK برای پایتون استفاده کرده ام (boto3، اما با هر یک از SDK ها کار می کند.
قبل از امتحان کردن مثال، مطمئن شوید که Amazon Bedrock را پیکربندی و راه اندازی کرده اید، از جمله درخواست دسترسی به مدل(های) بنیاد.
import boto3
guardrailId = “ENTER_GUARDRAIL_ID”
guardrailVersion= “ENTER_GUARDRAIL_VERSION”
knowledgeBaseId = “ENTER_KB_ID”
modelArn = ‘arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-instant-v1’
def main():
client = boto3.client(‘bedrock-agent-runtime’)
response = client.retrieve_and_generate(
input={
‘text’: ‘what is amazon doing in the field of quantum computing?’
},
retrieveAndGenerateConfiguration={
‘knowledgeBaseConfiguration’: {
‘generationConfiguration’: {
‘guardrailConfiguration’: {
‘guardrailId’: guardrailId,
‘guardrailVersion’: guardrailVersion
}
},
‘knowledgeBaseId’: knowledgeBaseId,
‘modelArn’: modelArn,
‘retrievalConfiguration’: {
‘vectorSearchConfiguration’: {
‘overrideSearchType’: ‘SEMANTIC’
}
}
},
‘type’: ‘KNOWLEDGE_BASE’
},
)
action = response[“guardrailAction”] print(f’Guardrail action: {action}’)
finalResponse = response[“output”][“text”] print(f’Final response:\n{finalResponse}’)
if __name__ == “__main__”:
main()
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
همچنین می توانید به کد موجود در این مخزن Github مراجعه کنید.
مثال را اجرا کنید (فراموش نکنید شناسه Guardrail، نسخه، شناسه پایگاه دانش را وارد کنید):
pip install boto3
python grounding.py
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
شما باید یک خروجی به این صورت دریافت کنید:
Guardrail action: INTERVENED
Final response:
Response blocked – Sorry, the model cannot answer this question.
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نتیجه
بررسی زمینی متنی یک تکنیک ساده و در عین حال قدرتمند برای بهبود کیفیت پاسخ در برنامه مبتنی بر RAG، خلاصهسازی یا استخراج اطلاعات است. اگر توهمات در پاسخ های مدل مستقر نباشند (در واقع نادرست یا اطلاعات جدیدی اضافه کنند) در اطلاعات منبع یا بی ربط به درخواست کاربر باشند، می تواند به شناسایی و فیلتر کردن توهمات در پاسخ های مدل کمک کند. بررسی زمینبندی متنی بهعنوان یک خطمشی/پیکربندی در Guardrails برای Amazon Bedrock در دسترس شما قرار میگیرد، و میتوانید در هر جایی که از Guardrails برای اعمال هوش مصنوعی مسئول برای برنامههایتان استفاده میکنید، وصل شود.
برای جزئیات بیشتر، به مستندات Amazon Bedrock برای زمینه سازی Contextual مراجعه کنید.
ساختمان مبارک!
با بررسی زمینه زمینهای، میتوانید با تشخیص پاسخهای نامربوط و بیاساس LLM از توهمات جلوگیری کنید.
Guardrails for Amazon Bedrock به شما این امکان را میدهد تا بر اساس موارد استفاده و سیاستهای هوش مصنوعی مسئول، محافظهایی را برای برنامههای هوش مصنوعی مولد خود پیادهسازی کنید. میتوانید چندین نرده محافظ متناسب با موارد استفاده مختلف ایجاد کنید و آنها را در چندین مدل پایه (FM) اعمال کنید، که تجربه کاربری ثابتی را ارائه میکند و کنترلهای ایمنی و حریم خصوصی را در برنامههای هوش مصنوعی مولد استاندارد میکند.
تا به حال، Guardrails از چهار خط مشی پشتیبانی می کرد – موضوعات رد شده، فیلترهای محتوا، فیلترهای اطلاعات حساس و فیلترهای کلمه. خط مشی بررسی زمینه زمینه ای (آخرین مورد اضافه شده در زمان نگارش) می تواند توهم را در پاسخ های مدل شناسایی و فیلتر کند. زمینی نیست در داده های سازمانی یا هستند غیر مرتبط به درخواست کاربران
زمینه سازی متنی برای جلوگیری از توهم
برنامه های کاربردی هوش مصنوعی مولد که می سازیم به LLM ها برای ارائه پاسخ های دقیق بستگی دارند. این ممکن است بر اساس قابلیت های ذاتی LLM یا استفاده از تکنیک هایی مانند RAG (Retrieval Augmented Generation) باشد. با این حال، این یک واقعیت شناخته شده است که LLM ها مستعد توهم هستند و می توانند با اطلاعات نادرست پاسخ دهند که بر قابلیت اطمینان برنامه تأثیر می گذارد.
خط مشی بررسی زمینه زمینه ای توهمات را با استفاده از دو پارامتر ارزیابی می کند:
- زمین کردن – این بررسی میکند که آیا پاسخ مدل بر اساس منبع از نظر واقعی درست است و در منبع مستقر است یا خیر. هر گونه اطلاعات جدیدی که در پاسخ معرفی شود غیرمستند تلقی خواهد شد.
- ارتباط – این بررسی میکند که آیا پاسخ مدل به درخواست کاربر مرتبط است یا خیر.
ارزیابی بر اساس امتیاز
نتیجه بررسی زمینی متنی مجموعه ای از نمرات اعتماد به نفس مربوط به زمین و ارتباط برای هر پاسخ مدل پردازش شده بر اساس منبع و درخواست کاربر ارائه شده است. می توانید پیکربندی کنید آستانه ها برای فیلتر کردن (مسدود کردن) پاسخ های مدل بر اساس نمرات ایجاد شده. این آستانه ها حداقل امتیاز اطمینان را برای پاسخ مدل به عنوان پایه و مرتبط در نظر می گیرند.
به عنوان مثال، اگر آستانه اتصال و آستانه ارتباط شما هر کدام روی آن تنظیم شده باشد 0.6
، تمام پاسخ های مدل با امتیاز پایه یا مرتبط کمتر از آن به عنوان توهم تشخیص داده می شوند و مسدود می شوند.
ممکن است لازم باشد امتیازهای آستانه را بر اساس میزان تحمل دقت برای مورد استفاده خاص خود تنظیم کنید. به عنوان مثال، یک برنامه کاربردی با مشتری در حوزه مالی ممکن است به دلیل تحمل کمتر برای محتوای نادرست، به آستانه بالایی نیاز داشته باشد. به خاطر داشته باشید که آستانه بالاتر برای امتیازات زمینه و ارتباط منجر به مسدود شدن پاسخهای بیشتر میشود.
شروع با زمینه سازی متنی
برای درک درستی از نحوه عملکرد بررسی زمینسازی متنی، توصیه میکنم از کنسول بستر آمازون استفاده کنید زیرا آزمایش خطمشیهای Guardrail شما با ترکیبهای مختلف دادههای منبع و اعلانها را آسان میکند.
با ایجاد یک پیکربندی Guardrails شروع کنید. برای این مثال، آستانه بررسی زمین را روی آن قرار داده ام 0.85
، آستانه امتیاز مربوط به 0.5
و پیام ها را برای درخواست و پاسخ های مسدود شده پیکربندی کرد:
به عنوان مثال، من از این قطعه متن از نامه PDF سهامداران 2023 آمازون استفاده کردم و از آن به عنوان منبع مرجع. برای سریع، استفاده کردم: آمازون در زمینه محاسبات کوانتومی چه می کند؟
بخش خوب در مورد استفاده از کنسول AWS این است که نه تنها میتوانید پاسخ نهایی (از پیش پیکربندی شده در Guardrail)، بلکه پاسخ مدل واقعی (که مسدود شده است) را ببینید.
در این مورد، پاسخ مدل بود مربوط از آنجایی که با اطلاعاتی در مورد آمازون برکت بازگشت. اما پاسخ بود بی پایه، زیرا بر اساس اطلاعات منبع که هیچ داده ای در مورد محاسبات کوانتومی یا آمازون برکت نداشت، نبود. از این رو امتیاز زمینی بود 0.01
– بسیار کمتر از آستانه پیکربندی شده 0.85
، که منجر به مسدود شدن پاسخ مدل شد.
از بررسی زمینه زمینه برای برنامه های RAG با پایگاه های دانش استفاده کنید
به یاد داشته باشید، بررسی زمینی متنی سیاست دیگری است و میتوان آن را در هر جایی که بتوان از گاردریل استفاده کرد، استفاده کرد. یکی از موارد استفاده کلیدی، ترکیب آن با برنامه های RAG است که با پایگاه های دانش برای Amazon Bedrock ساخته شده است.
برای انجام این کار، یک پایگاه دانش ایجاد کنید. من آن را با استفاده از نامه 2023 سهامداران آمازون PDF به عنوان داده منبع (بارگیری شده از Amazon S3) و پایگاه داده برداری پیش فرض (مجموعه OpenSearch Serverless) ایجاد کردم.
پس از ایجاد پایگاه دانش، منبع داده را همگام کنید و باید آماده حرکت باشید!
بیایید با یک سوال شروع کنیم که می دانم می توان به آن پاسخ دقیق داد: آمازون در زمینه هوش مصنوعی مولد چه می کند؟
همانطور که انتظار می رفت این به خوبی پیش رفت – ما یک پاسخ مرتبط و مستدل دریافت کردیم.
بیایید یکی دیگر را امتحان کنیم: آمازون در زمینه محاسبات کوانتومی چه می کند؟
همانطور که می بینید، پاسخ مدل دریافت شد مسدودو پاسخ از پیش پیکربندی شده (در Guardrails) به جای آن برگردانده شد. این به این دلیل است که دادههای منبع در واقع حاوی اطلاعاتی در مورد محاسبات کوانتومی (یا آمازون برکت) نیستند و از پاسخ توهمآمیز توسط گاردیل جلوگیری شد.
چک زمینه زمینه را با هم ترکیب کنید RetrieveAndGenerate
API
بیایید از کنسول AWS فراتر برویم و ببینیم که چگونه میتوان همان رویکرد را به روش برنامهنویسی اعمال کرد.
در اینجا یک مثال با استفاده از RetrieveAndGenerate API آورده شده است که یک پایگاه دانش را پرس و جو می کند و پاسخ هایی را بر اساس نتایج بازیابی شده تولید می کند. من از AWS SDK برای پایتون استفاده کرده ام (boto3
، اما با هر یک از SDK ها کار می کند.
قبل از امتحان کردن مثال، مطمئن شوید که Amazon Bedrock را پیکربندی و راه اندازی کرده اید، از جمله درخواست دسترسی به مدل(های) بنیاد.
import boto3
guardrailId = "ENTER_GUARDRAIL_ID"
guardrailVersion= "ENTER_GUARDRAIL_VERSION"
knowledgeBaseId = "ENTER_KB_ID"
modelArn = 'arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-instant-v1'
def main():
client = boto3.client('bedrock-agent-runtime')
response = client.retrieve_and_generate(
input={
'text': 'what is amazon doing in the field of quantum computing?'
},
retrieveAndGenerateConfiguration={
'knowledgeBaseConfiguration': {
'generationConfiguration': {
'guardrailConfiguration': {
'guardrailId': guardrailId,
'guardrailVersion': guardrailVersion
}
},
'knowledgeBaseId': knowledgeBaseId,
'modelArn': modelArn,
'retrievalConfiguration': {
'vectorSearchConfiguration': {
'overrideSearchType': 'SEMANTIC'
}
}
},
'type': 'KNOWLEDGE_BASE'
},
)
action = response["guardrailAction"]
print(f'Guardrail action: {action}')
finalResponse = response["output"]["text"]
print(f'Final response:\n{finalResponse}')
if __name__ == "__main__":
main()
همچنین می توانید به کد موجود در این مخزن Github مراجعه کنید.
مثال را اجرا کنید (فراموش نکنید شناسه Guardrail، نسخه، شناسه پایگاه دانش را وارد کنید):
pip install boto3
python grounding.py
شما باید یک خروجی به این صورت دریافت کنید:
Guardrail action: INTERVENED
Final response:
Response blocked - Sorry, the model cannot answer this question.
نتیجه
بررسی زمینی متنی یک تکنیک ساده و در عین حال قدرتمند برای بهبود کیفیت پاسخ در برنامه مبتنی بر RAG، خلاصهسازی یا استخراج اطلاعات است. اگر توهمات در پاسخ های مدل مستقر نباشند (در واقع نادرست یا اطلاعات جدیدی اضافه کنند) در اطلاعات منبع یا بی ربط به درخواست کاربر باشند، می تواند به شناسایی و فیلتر کردن توهمات در پاسخ های مدل کمک کند. بررسی زمینبندی متنی بهعنوان یک خطمشی/پیکربندی در Guardrails برای Amazon Bedrock در دسترس شما قرار میگیرد، و میتوانید در هر جایی که از Guardrails برای اعمال هوش مصنوعی مسئول برای برنامههایتان استفاده میکنید، وصل شود.
برای جزئیات بیشتر، به مستندات Amazon Bedrock برای زمینه سازی Contextual مراجعه کنید.
ساختمان مبارک!