GraphRAG-ഉം പെർസിസ്റ്റന്റ് കോൺടെക്സ്റ്റual മെമ്മറിയും (persistent contextual memory) ഇപ്പോൾ AI ചാറ്റ്ബോട്ടുകളിൽ സംയോജിപ്പിക്കപ്പെടുന്നു. ഇതുവഴി ഒരു പേജ് റീഫ്രഷ് ചെയ്താലോ പുതിയ ബ്രൗസർ ടാബ് തുറന്നാലോ സംഭാഷണം നഷ്ടപ്പെടില്ല. മിക്ക സംഭാഷണ സഹായികളുടെയും ഉപയോക്താക്കളെ ബുദ്ധിമുട്ടിക്കുന്ന "ടാബ്-കിൽ" (tab-kill) മറവി ഒഴിവാക്കാൻ ഈ സംയോജനം സഹായിക്കുമെന്ന് ഡെവലപ്പർമാർ പറയുന്നു.
പഴയ രീതികൾ എവിടെയാണ് പരാജയപ്പെടുന്നത്
മിക്ക ചാറ്റ് അധിഷ്ഠിത AI സംവിധാനങ്ങളും സാധാരണ റിട്രീവൽ-ഓഗ്മെന്റഡ് ജനറേഷൻ (RAG) രീതിയെയാണ് ആശ്രയിക്കുന്നത്. ഈ പ്രക്രിയ നിലവിലെ ചോദ്യവുമായി സാമ്യമുള്ള ടെക്സ്റ്റ് ഭാഗങ്ങൾ കണ്ടെത്തുകയും അവ ഒരു ലാംഗ്വേജ് മോഡലിലേക്ക് നൽകുകയും ഒരു ഉത്തരം തിരികെ നൽകുകയും ചെയ്യുന്നു. "ഫ്രാൻസിന്റെ തലസ്ഥാനം ഏതാണ്?" എന്നതുപോലെയുള്ള ഒറ്റപ്പെട്ട വസ്തുതകൾ അറിയാൻ ഈ രീതി മികച്ചതാണ്.
എന്നാൽ RAG ഓരോ ഉപയോക്താവിന്റെ ഇൻപുട്ടിനെയും ഒരു ഒറ്റപ്പെട്ട അഭ്യർത്ഥനയായിട്ടാണ് കാണുന്നത്. മിനിറ്റുകൾക്ക് മുമ്പ് പറഞ്ഞ കാര്യങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ള ഒരു തുടർചോദ്യത്തിന് മറുപടി നൽകാൻ മോഡലിന് ആ കോൺടെക്സ്റ്റുകളെക്കുറിച്ച് (context) ഓർമ്മയുണ്ടാകില്ല. ഇതിന്റെ ഫലമായി, ഉപയോക്താവിനോട് കാര്യങ്ങൾ വീണ്ടും പറയാൻ ആവശ്യപ്പെടുന്നതോ അല്ലെങ്കിൽ മുൻപത്തെ വിവരങ്ങൾ അവഗണിച്ചുകൊണ്ടുള്ള ഉത്തരങ്ങൾ നൽകുന്നതോ ആയ ഒരു ചാറ്റ്ബോട്ട് ഉണ്ടാകുന്നു. ഇത് ബുദ്ധിശക്തിയുടെ കുറവല്ല; മറിച്ച് 'സ്റ്റേറ്റ്' (state) നിലനിർത്താനുള്ള കഴിവിന്റെ കുറവാണ്.
GraphRAG: പരന്ന ടെക്സ്റ്റിനെ ഒരു ശൃംഖലയാക്കി മാറ്റുന്നു
GraphRAG റിട്രീവൽ ഘട്ടത്തെ പുനർനിർമ്മിക്കുന്നു. പരസ്പരബന്ധമില്ലാത്ത ടെക്സ്റ്റ് കഷണങ്ങൾക്ക് പകരം, ഇത് ഒരു ഗ്രാഫ് (graph) നിർമ്മിക്കുന്നു:
- Nodes (നോഡുകൾ) ആളുകൾ, ഉൽപ്പന്നങ്ങൾ അല്ലെങ്കിൽ സംഭവങ്ങൾ തുടങ്ങിയ എൻ്റേറ്റികളെ (entities) പ്രതിനിധീകരിക്കുന്നു.
- Edges (എഡ്ജുകൾ) അവ തമ്മിലുള്ള ബന്ധങ്ങളെ രേഖപ്പെടുത്തുന്നു—ആരാണ് എന്ത് നൽകുന്നത്, ഏത് പ്രോജക്റ്റ് ഏത് ഘടകത്തെ ആശ്രയിച്ചിരിക്കുന്നു തുടങ്ങിയവ.
ഗ്രാഫ് ബന്ധങ്ങളെ കോഡ് ചെയ്യുന്നതിനാൽ, സിസ്റ്റത്തിന് 'മൾട്ടി-ഹോപ്പ് റീസണിംഗ്' (multi-hop reasoning) നടത്താൻ കഴിയും: ഒരു സാധാരണ ടെക്സ്റ്റ് സെർച്ചിലൂടെ കണ്ടെത്താൻ കഴിയാത്ത ചോദ്യങ്ങൾക്ക് ഉത്തരം നൽകാൻ പല രേഖകളിലായി കിടക്കുന്ന വസ്തുതകളുടെ ശൃംഖല പിന്തുടരാൻ ഇതിന് സാധിക്കും. കൂടാതെ, മുഴുവൻ സബ്-ഗ്രാഫുകളുടെയും (sub-graphs) സംഗ്രഹം നൽകാൻ ഇതിന് കഴിയും, ഇത് ഉപയോക്താവിന് വിവരങ്ങളുടെ ഒരു കൂട്ടത്തിന് പകരം വിഷയത്തെക്കുറിച്ചുള്ള വ്യക്തമായ അവലോകനം നൽകുന്നു.
കോൺടെക്സ്റ്റual മെമ്മറി: സംഭാഷണം ഓർത്തെടുക്കുന്നു
പെർസിസ്റ്റന്റ് കോൺടെക്സ്റ്റual മെമ്മറി ഗ്രാഫിന് മുകളിൽ ഒരു കാലികമായ പാളി (temporal layer) ചേർക്കുന്നു. ഇത് മൂന്ന് ഭാഗങ്ങളായി തിരിക്കാം:
- ഹ്രസ്വകാല മെമ്മറി (Short-term memory) നിലവിലെ സംഭാഷണങ്ങൾ സൂക്ഷിക്കുന്നു, അതിനാൽ കുറച്ച് വാചകങ്ങൾ മുമ്പ് പറഞ്ഞ കാര്യം വീണ്ടും പറയേണ്ടതില്ല.
- ദീർഘകാല മെമ്മറി (Long-term memory) ഉപയോക്താവിനെക്കുറിച്ചുള്ള പ്രധാന വിവരങ്ങൾ—ഇഷ്ടപ്പെട്ട ഭാഷ, ആവർത്തിച്ചുവരുന്ന പ്രശ്നങ്ങൾ അല്ലെങ്കിൽ മുൻപത്തെ വാങ്ങലുകൾ എന്നിവ സെഷനുകൾക്കിടയിലും രേഖപ്പെടുത്തുന്നു.
- തിരഞ്ഞെടുത്ത മെമ്മറി (Selective memory) എന്ത് സൂക്ഷിക്കണം എന്ന് തീരുമാനിക്കുന്നു; സ്റ്റോറേജ് അനാവശ്യമായി കൂടുന്നത് ഒഴിവാക്കാൻ അനാവശ്യമായ വാക്കുകളും സംഭാഷണങ്ങളും ഇത് ഒഴിവാക്കുന്നു.
ഒരു ഉപയോക്താവ് ടാബ് അടച്ചതിന് ശേഷം തിരികെ വരുമ്പോൾ, ദീർഘകാല മെമ്മറി ഉപയോഗിച്ച് പഴയ വിവരങ്ങൾ ലഭ്യമാക്കാൻ സാധിക്കും, ഇത് അവസാനമായി സംഭാഷണം നിർത്തിയ ഇടത്തുനിന്ന് തന്നെ തുടരാൻ ചാറ്റ്ബോട്ടിനെ സഹായിക്കുന്നു.
ഏത് ടൂൾ എപ്പോൾ ഉപയോഗിക്കണം
- തെറ്റായ വിവരങ്ങൾ നൽകുന്നതിലെ നഷ്ടം കുറവായ ലളിതമായ കാര്യങ്ങൾക്കായി സാധാരണ RAG ഉപയോഗിക്കുക.
- തെറ്റായ ഉത്തരങ്ങൾ നൽകുന്നത് വലിയ പ്രശ്നമാകുന്ന സാഹചര്യത്തിലോ, ഒന്നിലധികം രേഖകളിൽ നിന്നുള്ള വിവരങ്ങൾ ബന്ധിപ്പിക്കേണ്ടി വരുമ്പോഴോ GraphRAG ഉപയോഗിക്കുക.
- ഉപയോക്താക്കളെ തിരിച്ചറിയേണ്ടതോ അല്ലെങ്കിൽ ദിവസങ്ങളോ ആഴ്ചകളോ നീണ്ടുനിൽക്കുന്ന ഒരു വ്യക്തിഗത സംഭാഷണം നിലനിർത്തേണ്ടതോ ആയ സാഹചര്യങ്ങളിൽ കോൺടെക്സ്റ്റual മെമ്മറി ചേർക്കുക.
ഈ ഘട്ടങ്ങൾ നിർമ്മിക്കുന്നത് എളുപ്പമുള്ള കാര്യമല്ല. സ്രോതസ്സ് ഡാറ്റ മാറുന്നതിനനുസരിച്ച് ഒരു GraphRAG ഇൻഡക്സ് പുതുക്കേണ്ടതുണ്ട്, കൂടാതെ മെമ്മറി സ്റ്റോറേജ് ചിലവും പ്രസക്തിയും തമ്മിൽ സന്തുലിതാവസ്ഥ നിലനിർത്തുന്നതിനുള്ള നയങ്ങളും ആവശ്യമാണ്. എല്ലാ വാക്കുകളും സൂക്ഷിക്കാൻ ശ്രമിക്കുന്നത് റിട്രീവൽ വേഗത കുറയ്ക്കുകയും മോഡലിനെ അനാവശ്യ വിവരങ്ങളാൽ നിറയ്ക്കുകയും ചെയ്യും.
വിട്ടുവീഴ്ചകൾ
കോൺടെക്സ്റ്റual മെമ്മറി മറവി എന്ന പ്രശ്നത്തിന് പരിഹാരം കാണുന്നു. എന്നാൽ ഇതിന്റെ പ്രവർത്തനപരമായ വെല്ലുവിളി എന്നത് ഒരു ലൈവ് ഗ്രാഫും സെലക്റ്റീവ് മെമ്മറി കാഷെയും (selective memory cache) നിലനിർത്താൻ നിരന്തരമായ എഞ്ചിനീയറിംഗ് പരിശ്രമം ആവശ്യമാണ് എന്നതാണ്.
ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ
ചുരുക്കത്തിൽ: GraphRAG ബന്ധങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ള ഒരു നട്ടെല്ല് (relational backbone) നൽകുന്നു, അതേസമയം പെർസിസ്റ്റന്റ് കോൺടെക്സ്റ്റual മെമ്മറി സമയക്രമം നിലനിർത്തുന്ന ഘടകമായി (temporal glue) പ്രവർത്തിക്കുന്നു. ഇവ രണ്ടും ചേരുമ്പോൾ ചാറ്റ്ബോട്ടുകൾക്ക് ടാബുകൾക്കും സെഷനുകൾക്കും അപ്പുറം സംഭാഷണം തടസ്സമില്ലാതെ മുന്നോട്ട് കൊണ്ടുപോകാൻ കഴിയും.
