Anthropic Claude Code-നെ നയിക്കുന്ന സിസ്റ്റം പ്രോംപ്റ്റിൽ നിന്ന് 80% ഭാഗം ഒഴിവാക്കി, എന്നാൽ കോഡ് എഴുതാനുള്ള അതിന്റെ കഴിവിൽ യാതൊരു കുറവും സംഭവിച്ചില്ലെന്ന് റിപ്പോർട്ട് ചെയ്തു. ലാർജ് ലാംഗ്വേജ് മോഡലുകൾ (LLMs) കൂടുതൽ കാര്യക്ഷമമാകുമ്പോൾ, അവയുടെ പ്രവർത്തനക്ഷമതയെ ബാധിക്കാതെ തന്നെ മോഡലുകളെ ശരിയായ വഴിയിൽ നിലനിർത്താൻ ഉപയോഗിക്കുന്ന വലിയ നിർദ്ദേശങ്ങൾ (scaffolding) കുറയ്ക്കാൻ ഡെവലപ്പർമാർക്ക് കഴിയുമെന്ന് ഈ പരീക്ഷണം കാണിക്കുന്നു.
എന്തുകൊണ്ടാണ് പ്രോംപ്റ്റ് ആദ്യം പ്രധാനപ്പെട്ടതായത്
Claude Code ലോഞ്ച് ചെയ്ത സമയത്ത്, അതിന്റെ സിസ്റ്റം പ്രോംപ്റ്റിൽ ഡസൻ കണക്കിന് നിയമങ്ങൾ ഉണ്ടായിരുന്നു. ബഗുകൾ പ്രത്യക്ഷപ്പെടുമ്പോഴെല്ലാം എഞ്ചിനീയർമാർ പുതിയ വരികൾ ചേർത്തു, എന്നാൽ ശരിയായി പ്രവർത്തിക്കുന്നവ അപൂർവ്വമായി മാത്രമേ നീക്കം ചെയ്തിരുന്നുള്ളൂ. കാലക്രമേണ പ്രോംപ്റ്റ് സങ്കീർണ്ണവും മാറ്റമില്ലാത്തതുമായ ഒരു രേഖയായി വളർന്നു.
മോഡൽ ഗ്യാപ്പ് കുറഞ്ഞുവരുന്നു
ആ അധിക നിയമങ്ങൾ ഒരു “മോഡൽ ഗ്യാപ്പ്” മറച്ചുവെച്ചിരുന്നു – അതായത് മോഡലിന് ചെയ്യാൻ കഴിയുന്നതും ആപ്ലിക്കേഷൻ ആവശ്യപ്പെടുന്നതും തമ്മിലുള്ള വ്യത്യാസം. 2024-ൽ, കോഡിൽ അമിതമായി കമന്റുകൾ ചേർക്കുന്നത് തടയാൻ ഡെവലപ്പർമാർ കർശനമായ നിയന്ത്രണങ്ങൾ നൽകേണ്ടി വന്നിരുന്നു. എന്നാൽ ഇന്ന്, “നിലവിലുള്ള കോഡ് സ്റ്റൈൽ പിന്തുടരുക” എന്ന ഒറ്റ നിർദ്ദേശം നൽകിയാൽ തന്നെ ആ സ്റ്റൈൽ മോഡലിന് മനസ്സിലാക്കാൻ സാധിക്കും. നിയമങ്ങൾ സഹായത്തിന് പകരം അനാവശ്യമായ ശബ്ദമായി (noise) മാറി.
കോൺടെക്സ്റ്റ് എഞ്ചിനീയറിംഗിൽ മാറിക്കൊണ്ടിരിക്കുന്നത് എന്താണ്
Anthropic വരുത്തിയ ഈ മാറ്റം ഡെവലപ്പർമാർ പ്രോംപ്റ്റുകൾ ഘടനപ്പെടുത്തുന്ന രീതിയിലുള്ള വലിയൊരു മാറ്റത്തെ സൂചിപ്പിക്കുന്നു:
- ഒറ്റത്തവണ ഉപയോഗിക്കുന്ന നിർണ്ണായക നിർദ്ദേശങ്ങൾ – ഒരു നിയമം ഒരിക്കൽ പറയുക, അത് മോഡൽ ഓർമ്മിച്ചോളും.
- ഫ്യൂ-ഷോട്ട് എക്സാമ്പിളുകൾക്ക് പകരം ടൂൾ അധിഷ്ഠിത പാരാമീറ്ററുകൾ – ടൂൾ സ്കീമയിൽ ഇൻപുട്ട്, ഔട്ട്പുട്ട് രൂപങ്ങൾ വിവരിക്കുക, അവ പൂരിപ്പിക്കാൻ മോഡലിനെ അനുവദിക്കുക.
- പ്രോഗ്രസീവ് ഡിസ്ക്ലോഷർ (Progressive disclosure) – നിലവിലെ ഘട്ടത്തിന് ആവശ്യമായ കോൺടെക്സ്റ്റ് മാത്രം നൽകുക, ആവശ്യമെങ്കിൽ പിന്നീട് കൂടുതൽ നൽകുക.
- സ്ഥിരമായ മാർഗ്ഗനിർദ്ദേശങ്ങൾ ടൂൾ വിവരണങ്ങളിലേക്ക് മാറ്റുക – “വേരിയബിളുകൾക്കായി camelCase ഉപയോഗിക്കുക” പോലുള്ള കാര്യങ്ങൾ സിസ്റ്റം പ്രോംപ്റ്റിലല്ല, മറിച്ച് ടൂളിന്റെ സ്പെസിഫിക്കേഷനിൽ ആയിരിക്കണം.
- ഹാർഡ്കോഡ് ചെയ്ത നിയമങ്ങൾക്ക് പകരം ഹ്യൂറിസ്റ്റിക്സ് (heuristics) ഉപയോഗിക്കുക – ഒരു നിയമം എപ്പോൾ ബാധകമാകണമെന്ന് മോഡലിനെ തന്നെ തീരുമാനിക്കാൻ അനുവദിക്കുക.
മുമ്പ് വ്യക്തമായി പറയേണ്ടി വന്നിരുന്ന പല രീതികളും മോഡലിന് ഇപ്പോൾ അറിയാവുന്നത് കൊണ്ടാണ് ഈ തന്ത്രങ്ങൾ ഫലപ്രദമാകുന്നത്.
അമിതമായി കുറയ്ക്കുന്നതിലെ അപകടം
അത്യാധുനിക (frontier) മോഡലുകൾക്ക് ഗുണകരമാകുന്ന ഇതേ രീതി ചെറിയ മോഡലുകളെ ദോഷകരമായി ബാധിച്ചേക്കാം. Haiku പോലുള്ള മോഡലുകൾ ശരിയായ രീതിയിൽ പ്രവർത്തിക്കാൻ ഇപ്പോഴും കൂടുതൽ വിവരങ്ങളുള്ള പ്രോംപ്റ്റുകളെ ആശ്രയിക്കുന്നുണ്ടെന്ന് Anthropic ചൂണ്ടിക്കാട്ടുന്നു. കുറഞ്ഞ ശേഷിയുള്ള ഒരു മോഡലിൽ നിന്ന് അമിതമായി നിർദ്ദേശങ്ങൾ ഒഴിവാക്കുന്നത്, പഴയ പ്രോംപ്റ്റുകൾ തടയാൻ ശ്രമിച്ച തെറ്റുകൾ (അസ്ഥിരമായ പേര് നൽകൽ, അമിതമായ കമന്റുകൾ, അല്ലെങ്കിൽ ഒഴിവാക്കപ്പെട്ട എഡ്ജ് കേസുകൾ) വീണ്ടും ഉണ്ടാക്കാൻ കാരണമായേക്കാം.
നിങ്ങളുടെ പ്രോംപ്റ്റുകൾ എങ്ങനെ ഓഡിറ്റ് ചെയ്യാം
നിങ്ങൾ ഒരു കോഡ്-ജനറേഷൻ പൈപ്പ്ലൈൻ കൈകാര്യം ചെയ്യുന്നുണ്ടെങ്കിൽ, ഒരു പ്രോംപ്റ്റ് ഓഡിറ്റ് അനാവശ്യമായ ഭാഗങ്ങൾ കണ്ടെത്താൻ സഹായിക്കും. ഒരു പ്രായോഗിക ചെക്ക്ലിസ്റ്റ് ഇതാ:
- നിർദ്ദേശങ്ങളുടെ സാന്ദ്രത (instruction density) പുനഃപരിശോധിക്കുക – നിങ്ങൾ ഉപയോഗിക്കുന്ന മോഡലിന്റെ ശേഷിക്ക് അനുസൃതമായ നിർദ്ദേശങ്ങൾ മാത്രം നൽകുക.
- ആവർത്തിച്ചുള്ള നിർദ്ദേശങ്ങൾ ഒഴിവാക്കുക – ഒരു നിയമം സിസ്റ്റം പ്രോംപ്റ്റിലും ടൂൾ വിവരണത്തിലും ഉണ്ടെങ്കിൽ, അത് ഒരിടത്ത് മാത്രം നിലനിർത്തുക.
- ഉദാഹരണങ്ങളെ കൂടുതൽ മികച്ച സ്കീമകളാക്കി മാറ്റുക – കൃത്യമായ ഉദാഹരണങ്ങൾക്ക് പകരം എൻയുമേറേറ്റഡ് പാരാമീറ്റർ ടൈപ്പുകളോ (enumerated parameter types) എൻയുമായോ (enums) മാറ്റുക.
- സാഹചര്യപരമായ വിവരങ്ങൾ പുറത്തേക്ക് മാറ്റുക – വലിയ റഫറൻസ് ബ്ലോക്കുകൾ മോഡലിന് ആവശ്യമുള്ളപ്പോൾ എടുക്കാവുന്ന രീതിയിൽ പ്രത്യേക ഫയലുകളിലേക്ക് മാറ്റുക.
- ഇല്ലാതായ പെരുമാറ്റങ്ങളെക്കുറിച്ചുള്ള നിയമങ്ങൾ ഒഴിവാക്കുക – മോഡൽ ഇനി അനാവശ്യമായ കമന്റുകൾ ചേർക്കുന്നില്ലെങ്കിൽ, “no-comment” എന്ന നിയമം ഒഴിവാക്കാം.
വെറും ഊഹങ്ങളിൽ മാത്രം വിശ്വസിക്കരുത്. ഒരു ലളിതമായ “3-ടെസ്റ്റ് റൂൾ” ഉപയോഗിക്കുക: അഞ്ച് യഥാർത്ഥ കോഡിംഗ് ടാസ്ക്കുകൾ ചെയ്യുക, ഓരോ നീക്കം വരുത്തുന്നതിന് മുൻപും ശേഷവും ഫലങ്ങൾ താരതമ്യം ചെയ്യുക, മാറ്റങ്ങൾ ഉണ്ടോ എന്ന് ശ്രദ്ധിക്കുക.
- ബേസ്ലൈൻ (Baseline) – പൂർണ്ണമായ പ്രോംപ്റ്റ് ഉപയോഗിച്ച് പ്രകടനം അളക്കുക.
- ഡിലീറ്റ് (Delete) – ഒരു വരിയോ ബ്ലോക്കോ നീക്കം ചെയ്യുക.
- റീ-റൺ (Re-run) – അതേ അഞ്ച് ടാസ്ക്കുകൾ വീണ്ടും ചെയ്യുക.
ഔട്ട്പുട്ടിൽ മാറ്റം വരുന്നുണ്ടെങ്കിൽ, ആ വരി ഇപ്പോഴും പ്രധാനമാണെന്ന് അർത്ഥം. മാറ്റമില്ലെങ്കിൽ, ആ വരി സുരക്ഷിതമായി ഒഴിവാക്കാം.
ഡെവലപ്പർമാർ ഇനി ശ്രദ്ധിക്കേണ്ടത് എന്താണ്
നിലവിൽ ഇതിൽ നിന്നുള്ള പാഠം വ്യക്തമാണ്: ഒരു സിസ്റ്റം പ്രോംപ്റ്റ് എന്നത് നിരന്തരം മാറിക്കൊണ്ടിരിക്കുന്ന ഒന്നാണ്. ഓരോ വരിയും കാലാനുസൃതമായി മാറ്റേണ്ടവയാണെന്ന് കരുതിക്കൊണ്ട് കൃത്യമായി ഓഡിറ്റ് ചെയ്യുക, മോഡലിന്റെ വർദ്ധിച്ചുവരുന്ന കഴിവുകൾ ഉപയോഗപ്രദമാക്കുക.
Source: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9
