Knowledge Bases

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

با تکامل عامل‌های هوش مصنوعی از چت‌بات‌های ساده به موجودات خودمختار با حافظه بلندمدت، چالش ذخیره‌سازی و بازیابی زمینه به امری حیاتی تبدیل شده است. پایگاه‌های داده سنتی کلید-مقدار یا برداری اغلب در درک تکامل ظریف حقایق در طول زمان ناکام می‌مانند. برای حل این مشکل، به گراف‌های دانش زمانی (TKG) روی می‌آوریم. این ساختارها به عامل‌ها اجازه می‌دهند نه تنها درک کنند که چه چیزی درست است، بلکه بدانند چه زمانی درست شده، چه زمانی نادرست شده و چگونه سطح اطمینان تغییر کرده است.

طراحی یک اسکیم مؤثر برای TKG نیاز به تعادل بین بیان‌پذیری و عملکرد پرس‌وجو دارد. در ادامه، سه الگوی حیاتی برای مدل‌سازی داده‌های زمانی در سیستم‌های حافظه عامل‌ها را بررسی می‌کنیم.

۱. مدل حقایق مبتنی بر بازه زمانی

بنیادی‌ترین الگو شامل ذخیره‌سازی صریح بازه‌های زمانی معتبر برای هر ادعاست. به جای در نظر گرفتن یک واقعیت به عنوان یک بولی ایستا، آن را به عنوان یک تپل مدل‌سازی می‌کنیم: (موضوع، گزاره، شیء، زمان_شروع، زمان_پایان، اطمینان).

این رویکرد برای تغییرات حالت گسسته ایده‌آل است، مانند اینکه یک عامل به یاد بیاورد کاربر از ژانویه ۲۰۲۲ تا ژوئن ۲۰۲۳ پایتون را ترجیح می‌دهد و سپس از ژوئن ۲۰۲۳ تاکنون به Rust تغییر داده است.

{
  "id": "fact_9821",
  "subject": "user_001",
  "predicate": "preferred_language",
  "object": "python",
  "valid_from": "2022-01-15T10:00:00Z",
  "valid_to": "2023-06-01T00:00:00Z",
  "confidence": 0.95
}

نکته حرفه‌ای: اطمینان حاصل کنید که وقتی یک واقعیت جدید، واقعیت قدیمی را باطل می‌کند، سیستم به‌طور خودکار مهر زمانی valid_to ورودی قبلی را به‌روزرسانی می‌کند. این کار از هم‌زمانی حالت‌های «جاری» متناقض در نتایج پرس‌وجو جلوگیری می‌کند.

۲. گره‌های رویدادمحور برای زمینه‌های ظریف

مدل‌های بازه‌ای می‌توانند شلوغ شوند اگر حقایق به سرعت تغییر کنند یا از تعاملات خاص استخراج شده باشند. الگوی مقاوم‌تر این است که رویدادها را به عنوان گره‌های درجه اول در گراف در نظر بگیریم. رویداد زمینه زمانی را در خود نگه می‌دارد و واقعیت یک یال است که رویداد را به موضوع/شیء متصل می‌کند.

این روش به‌ویژه برای عامل‌های هوش مصنوعی مفید است که نیاز دارند چرایی وجود یک باور را ردیابی کنند. برای مثال، واقعیت «کاربر به کوهنوردی علاقه دارد» به یک گره رویداد «Conversational_turn_452» متصل است که در 2024-05-12 رخ داده است. این به عامل اجازه می‌دهد نه تنها واقعیت را بازیابی کند، بلکه در صورت نیاز به اعتبارسنجی مجدد، زمینه مکالمه اصلی را نیز به دست آورد.

class TemporalEvent:
    def __init__(self, event_id, timestamp, source_interaction):
        self.id = event_id
        self.timestamp = timestamp
        self.source = source_interaction

    def extract_fact(self, subject, predicate, object, duration):
        return Fact(
            subject=subject,
            predicate=predicate,
            object=object,
            valid_at=self.timestamp,
            decay_rate=duration
        )

۳. اسکیم‌های فرسایش احتمالی و اطمینان

حافظه عامل‌ها به ندرت ۱۰۰٪ مطمئن است. اسکیم‌های پیشرفته TKG یک decay_function یا confidence_score را در خود جای می‌دهند که در صورت عدم تقویت، با گذشت زمان کاهش می‌یابد. این امر حافظه بیولوژیکی انسان را شبیه‌سازی می‌کند.

با ذخیره‌سازی مهر زمانی last_verified_at در کنار initial_observed_at، عامل‌ها می‌توانند حقایق اخیر و تأییدشده را بر حقایق قدیمی اولویت دهند. اسکیم باید از «حذف نرم» به جای حذف سخت پشتیبانی کند تا عامل‌ها بتوانند در صورت بازگشت زمینه، دوباره با حقایق احتمالی فراموش‌شده درگیر شوند.

SELECT * FROM facts
WHERE subject = 'user_001'
AND valid_from <= NOW()
AND (valid_to IS NULL OR valid_to > NOW())
ORDER BY confidence DESC, last_verified_at DESC;

نتیجه‌گیری

طراحی اسکیم‌های زمانی برای عامل‌های هوش مصنوعی کمتر درباره انتخاب موتور پایگاه داده مناسب است و بیشتر درباره تعریف معنای زمان در دامنه خاص شماست. چه از بازه‌های صریح، گره‌های رویدادمحور یا فرسایش احتمالی استفاده کنید، هدف یکسان باقی می‌ماند: ارائه حافظه‌ای به عامل شما که به گذر زمان احترام بگذارد. با پیاده‌سازی این الگوها، عامل‌هایی را فعال می‌کنید که نه تنها آگاه هستند، بلکه زمینه‌ای، تطبیق‌پذیر و آگاه از تاریخچه نیز می‌باشند.

Share: