𝗪𝗵𝘆 𝗔𝗜 𝗡𝗲𝗲𝗱𝘀 𝗦𝘁𝗮𝘁𝗲 𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁 𝗠𝗼𝗿𝗲 𝗧𝗵𝗮𝗻 𝗕𝗶𝗴𝗴𝗲𝗿 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗪𝗶𝗻𝗱𝗼𝘄𝘀
പുതിയ മോഡലുകൾ വൻതോതിലുള്ള കോൺടെക്സ്റ്റ് വിൻഡോകളോടു (context windows) കൂടിയാണ് പുറത്തിറങ്ങുന്നത്. ഇതിന്റെ അനുമാനം ലളിതമാണ്. ഒരു റിക്വസ്റ്റിൽ കൂടുതൽ ഡാറ്റ നൽകിയാൽ എല്ലാ പ്രശ്നങ്ങളും പരിഹരിക്കപ്പെടും എന്ന് കരുതുന്നു.
നിങ്ങൾ കൂടുതൽ ഡോക്യുമെന്റുകൾ ചേർക്കുന്നു. കൂടുതൽ ഹിസ്റ്ററി ചേർക്കുന്നു. കൂടുതൽ വർക്ക്ഫ്ലോ ഡാറ്റ ചേർക്കുന്നു.
എന്നാൽ AI പ്രൊഡക്ഷനിൽ പ്രവർത്തിപ്പിച്ചതിന് ശേഷം ഞങ്ങൾ ഒരു പാഠം പഠിച്ചു. കോൺടെക്സ്റ്റ് വിൻഡോകൾ സഹായിക്കുമെങ്കിലും, സ്റ്റേറ്റ് മാനേജ്മെന്റിനാണ് (State management) കൂടുതൽ പ്രാധാന്യം.
AI മോശം ഫലങ്ങൾ നൽകുന്നအခı, ടീമുകൾ പലപ്പോഴും പ്രോംപ്റ്റിൽ കൂടുതൽ വിവരങ്ങൾ ചേർക്കുന്നു. മോഡലിന് കൂടുതൽ ഹിസ്റ്ററിയോ ബിസിനസ് കോൺടെക്സ്റ്റോ ആവശ്യമാണെന്ന് അവർ കരുതുന്നു. അങ്ങനെ പ്രോംപ്റ്റ് വലുതായിക്കൊണ്ടിരിക്കുന്നു.
കൂടുതൽ വിവരങ്ങൾ എന്നാൽ മികച്ച തീരുമാനങ്ങൾ എന്നല്ല അർത്ഥം. പലപ്പോഴും നേരെ തിരിച്ചാണ് സംഭവിക്കുന്നത്. വലിയ കോൺടെക്സ്റ്റ് വിൻഡോകൾ മോശം ആർക്കിടെക്ചറിനെ മറച്ചുവെക്കുന്നു. പ്രസക്തമായ ഡാറ്റ മാത്രം തിരഞ്ഞെടുക്കുന്നതിന് പകരം, സിസ്റ്റങ്ങൾ എല്ലാം ഉൾപ്പെടുത്തുന്നു.
ഇത് പല പ്രശ്നങ്ങൾക്ക് കാരണമാകുന്നു:
- ടോക്കൺ ചിലവ് (Token costs) വർദ്ധിക്കുന്നു
- ലേറ്റൻസി (Latency) കൂടുന്നു
- റീസണിംഗ് (Reasoning) അസ്ഥിരമാകുന്നു
- റിട്രീവൽ നോയിസ് (Retrieval noise) കൂടുന്നു
- ഡിബഗ്ഗിംഗ് (Debugging) പ്രയാസകരമാകുന്നു
മോഡലിന് കൂടുതൽ വിവരങ്ങൾ ലഭിക്കുന്നുണ്ടെങ്കിലും വ്യക്തത കുറയുന്നു.
കോൺടെക്സ്റ്റും (Context) സ്റ്റേറ്റും (State) തമ്മിലുള്ള വ്യത്യാസം നിങ്ങൾ മനസ്സിലാക്കണം. ഒരു സിംഗിൾ റിക്വസ്റ്റ് സമയത്ത് ലഭ്യമാകുന്ന വിവരമാണ് കോൺടെക്സ്റ്റ്. കാലക്രമേണ സിസ്റ്റത്തിന് അറിയാവുന്ന വിവരമാണ് സ്റ്റേറ്റ്.
സ്റ്റേറ്റിന്റെ ഉദാഹരണങ്ങൾ:
- കസ്റ്റമർ പ്രൊഫൈലുകൾ (Customer profiles)
- സംഭാഷണ സംഗ്രഹങ്ങൾ (Conversation summaries)
- വർക്ക്ഫ്ലോ പുരോഗതി (Workflow progress)
- ബിസിനസ് നിയമങ്ങൾ (Business rules)
ഇവ ഓരോ പ്രോംപ്റ്റിനുള്ളിലും ഉൾപ്പെടുത്തേണ്ടതില്ല. എല്ലാ ഡാറ്റയും എല്ലായിടത്തും കൈമാറുന്നതിലൂടെ ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങൾ സങ്കീർണ്ണത പരിഹരിക്കുന്നില്ല. സ്റ്റേറ്റ് മാനേജ് ചെയ്യാൻ അവ ഡാറ്റാബേസുകളും, കാഷുകളും (caches), ക്യൂകളും (queues) ഉപയോഗിക്കുന്നു.
AI സിസ്റ്റങ്ങൾ പലപ്പോഴും ഈ രീതി അവഗണിക്കുന്നു. അവ കോൺടെക്സ്റ്റ് വിൻഡോയെ ഒരു താൽക്കാലിക ഡാറ്റാബേസ് ആയിട്ടാണ് കാണുന്നത്. ഇത് ആർക്കിടെക്ചറിലെ ഒരു വീഴ്ചയാണ് (architectural laziness).
"എല്ലാം ഉൾക്കൊള്ളാൻ കഴിയുമോ?" എന്ന് ചോദിക്കുന്നത് നിർത്തുക. "ഏതൊക്കെ വിവരങ്ങളാണ് ആവശ്യമായത്?" എന്ന് ചോദിച്ചു തുടങ്ങുക.
കോൺടെക്സ്റ്റ് സൈസ് വർദ്ധിപ്പിക്കുന്നതിന് പകരം സ്റ്റേറ്റ് മാനേജ്മെന്റ് മെച്ചപ്പെടുത്തിയതിലൂടെ മികച്ച ഫലങ്ങൾ ഞങ്ങൾ കണ്ടു. ഞങ്ങൾ ഇത് ചെയ്തത്:
- ഓപ്പറേഷണൽ സ്റ്റേറ്റിനെ റീസണിംഗ് സ്റ്റേറ്റിൽ നിന്ന് വേർതിരിച്ചു
- പ്രോഗ്രസ് പ്രോംപ്റ്റുകൾക്ക് പുറത്ത് സൂക്ഷിച്ചു
- മെമ്മറിക്ക് എക്സ്പയറേഷൻ നിയമങ്ങൾ (expiration rules) നിശ്ചയിച്ചു
- ഡ്യൂപ്ലിക്കേറ്റ് കോൺടെക്സ്റ്റ് കുറച്ചു
ഇത് ചിലവ് കുറയ്ക്കാനും വേഗത്തിൽ പ്രവർത്തിക്കാനും സഹായിച്ചു. ഇതിന് വലിയ മോഡലുകളുടെ ആവശ്യമില്ലായിരുന്നു. മറിച്ച് മികച്ച ഡിസൈൻ ആവശ്യമായിരുന്നു.
മോഡലിന് എല്ലാ കാര്യങ്ങളിലും പ്രവേശനം നൽകുക എന്നതല്ല ലക്ഷ്യം. ശരിയായ സമയത്ത് ശരിയായ വിവരങ്ങൾ മോഡലിന് നൽകുക എന്നതാണ് ലക്ഷ്യം.
Source: https://dev.to/karan2598/why-ai-systems-need-state-management-more-than-bigger-context-windows-2a4m
Optional learning community: https://t.me/GyaanSetuAi