എന്റെ വെബ്സൈറ്റിൽ ഞാൻ ഒരു ഡിജിറ്റൽ ട്വിൻ (digital twin) പ്രവർത്തിപ്പിക്കുന്നുണ്ട്. എന്റെ ജീവിതത്തെക്കുറിച്ചും കഴിവുകളെക്കുറിച്ചും ഉള്ള ചോദ്യങ്ങൾക്ക് ഇത് മറുപടി നൽകുന്നു. ഇതിന് ഞാൻ ഒരു കർശനമായ നിയമം നൽകിയിരുന്നു: ഒരിക്കലും കാര്യങ്ങൾ കെട്ടിച്ചമയ്ക്കരുത്. എനിക്ക് ഇല്ലാത്ത ഒരു കഴിവ് ആരെങ്കിലും ചോദിച്ചാൽ, അറിയില്ല എന്ന് അത് സമ്മതിക്കണം. മാസങ്ങളോളം ഈ സിസ്റ്റം ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഞാൻ വിശ്വസിച്ചു. ഇടയ്ക്കിടെ ഞാൻ ഇത് സ്വയം പരിശോധിക്കുമായിരുന്നു, മറുപടികൾ കൃത്യമാണെന്ന് തോന്നിയിരുന്നു. എന്നാൽ പിന്നീട് ഞാൻ ഒരു ശരിയായ ഇവാലുവേഷൻ ഹാർനെസ്സ് (evaluation harness) നിർമ്മിച്ചു. ലഭിച്ച കണക്കുകൾ എന്നെ ഞെട്ടിച്ചു. 35 ചോദ്യങ്ങളിൽ ഒൻപതിലും വ്യക്തമായ കള്ളങ്ങളാണ് ഉണ്ടായിരുന്നത്. ഉത്തരം നൽകാൻ കഴിയാത്ത രീതിയിൽ തയ്യാറാക്കിയ എട്ട് ചോദ്യങ്ങളിൽ നാലെണ്ണത്തിന് മാത്രം മോഡൽ മറുപടി നൽകാൻ വിസമ്മതിച്ചു. എന്റെ ആന്റി-ഹാലൂസിനേഷൻ (anti-hallucination) പ്രോംപ്റ്റ് ഏകദേശം നാലിലൊന്ന് തവണ പരാജയപ്പെട്ടു. ഉപയോക്താക്കളോട് കള്ളം പറയുന്ന ഒരു ഉൽപ്പന്നമാണ് ഞാൻ വിപണിയിൽ എത്തിച്ചുകൊണ്ടിരുന്നത്.
വളരെ ലളിതമായ ഒരു റിട്രീവൽ സെറ്റപ്പ്
ഞാൻ Pinecone പോലെയോ മറ്റ് ഭാരമേറിയ വെക്റ്റർ ഡാറ്റാബേസുകളോ ഉപയോഗിച്ചില്ല. മുഴുവൻ സെറ്റപ്പും ഒരു സാധാരണ JSON ഫയലിലാണ് ഇരിക്കുന്നത്. എന്റെ പ്രൊഫൈലിനെ വിവിധ ഭാഗങ്ങളായി എന്റെ കോഡ് തിരിക്കുന്നു. ഒരു ചോദ്യം വരുമ്പോൾ, ക്വറിയും (query) ഓരോ ടെക്സ്റ്റ് ചങ്കുകളും (chunk) തമ്മിലുള്ള കോസൈൻ സിമിലാരിറ്റി (cosine similarity) സിസ്റ്റം കണക്കാക്കുന്നു, ഏറ്റവും അനുയോജ്യമായവ തിരഞ്ഞെടുക്കുന്നു, അവ പ്രോംപ്റ്റിൽ കോൺടെക്സ്റ്റ് (context) ആയി നൽകുന്നു. തുടർന്ന് ആ വിൻഡോയിൽ കാണുന്ന വിവരങ്ങളെ മാത്രം അടിസ്ഥാനമാക്കി മോഡൽ മറുപടി നൽകുന്നു.
കുറഞ്ഞ വിവരങ്ങൾ മാത്രം നൽകുന്ന ഒരു ചെറിയ പേഴ്സണൽ സൈറ്റിന് ഈ രീതി വേഗതയുള്ളതും ചിലവ് കുറഞ്ഞതുമാണ്. റിമോട്ട് വെക്റ്റർ സ്റ്റോറിലേക്ക് നെറ്റ്വർക്ക് റൗണ്ട്-ട്രിപ്പ് ആവശ്യമില്ല, ഇൻഡക്സിംഗ് ഭാരമില്ല, സങ്കീർണ്ണമായ സംവിധാനങ്ങളുമില്ല. നിങ്ങൾ ഫയൽ വായിക്കുന്നു, ചങ്കുകൾ സ്കോർ ചെയ്യുന്നു, പ്രോംപ്റ്റ് നിർമ്മിക്കുന്നു, എല്ലാം കഴിഞ്ഞു. എന്നാൽ ബാക്കെൻഡിലെ ലാളിത്യം ഔട്ട്പുട്ടിലെ സത്യസന്ധത ഉറപ്പുനൽകുന്നില്ല. മോഡൽ സ്വന്തമായി കാര്യങ്ങൾ നിർമ്മിക്കാൻ തീരുമാനിക്കുമ്പോൾ ഒരു ലഘുവായ പൈപ്പ്ലൈൻ പോലും ഗുരുതരമായ പ്രശ്നങ്ങൾ ഉണ്ടാക്കാം. "ഇതാ കോൺടെക്സ്റ്റ്" എന്നതും "ഇതിനെക്കുറിച്ച് ഞാൻ ഇതാണ് പറയുന്നത്" എന്നതും തമ്മിലുള്ള വിടവിലാണ് ഹാലൂസിനേഷനുകൾ ഉണ്ടാകുന്നത്. നിങ്ങളുടെ ജോലി ചരിത്രത്തെക്കുറിച്ചുള്ള ഒരു പാരഗ്രാഫ് മോഡലിന് നൽകിയാലും, നിങ്ങൾ ഒരിക്കലും ഉപയോഗിക്കാത്ത ഒരു പ്രോഗ്രാമിംഗ് ഭാഷയെക്കുറിച്ച് ആത്മവിശ്വാസത്തോടെ തെറ്റായ വിവരങ്ങൾ നൽകാൻ അതിന് സാധിക്കും.
എന്റെ വിശ്വാസം തകർത്ത കണക്കുകൾ
മാസങ്ങളോളം, ഇടയ്ക്കിടെയുള്ള പരിശോധനകൾ മാത്രം മതിയാകുമെന്ന് ഞാൻ കരുതി. ഞാൻ ചാറ്റ് തുറക്കും, എനിക്ക് ഉത്തരം അറിയാവുന്ന ഒരു ചോദ്യം ചോദിക്കും, മറുപടി ശരിയാണെന്ന് തോന്നുമ്പോൾ തലയാട്ടും. അതായിരുന്നു എന്റെ ടെസ്റ്റിംഗ് രീതി. ഞാൻ തന്നെ ഇന്റർഫേസ് ഉപയോഗിക്കുന്നത് കൊണ്ട് അത് കൃത്യമാണെന്ന് എനിക്ക് തോന്നി. എന്നാൽ അത് അങ്ങനെയല്ലായിരുന്നു.
വ്യവസ്ഥാപിതമായി പ്രവർത്തിക്കാൻ കഴിയുന്ന ഒരു ഇവാലുവേഷൻ ഹാർനെസ്സ് ഞാൻ എഴുതിയപ്പോൾ ചിത്രം മാറി. ടെസ്റ്റ് സ്യൂട്ട് 35 ചോദ്യങ്ങൾ ആ ഡിജിറ്റൽ ട്വിനോട് ചോദിച്ചു. ഒൻപത് മറുപടികളിൽ കള്ളങ്ങൾ ഉണ്ടായിരുന്നു. എന്റെ പ്രൊഫൈലിൽ ഒരിടത്തും ഉത്തരമില്ലാത്ത എട്ട് ചോദ്യങ്ങളും ഞാൻ ഉൾപ്പെടുത്തിയിരുന്നു. മോഡൽ അവയെല്ലാം നിരസിക്കേണ്ടതായിരുന്നു. എന്നാൽ നാലെണ്ണത്തിന് മാത്രമേ അത് വിസമ്മതിച്ചുള്ളൂ. ഒരിക്കലും കാര്യങ്ങൾ കെട്ടിച്ചമയ്ക്കരുത് എന്ന കർശനമായ നിർദ്ദേശം ഉൾപ്പെടുത്തിയ എന്റെ ആന്റി-ഹാലൂസിനേഷൻ പ്രോംപ്റ്റ് ഏകദേശം 25 ശതമാനം തവണ പരാജയപ്പെട്ടു. നാലിലൊന്ന് തവണ. ഇത് വെറുമൊരു ചെറിയ പിശകല്ല. ഇത് തകരാറിലായ ഒരു ഉൽപ്പന്നമാണ്.
സൗഹൃദപരമായ ചോദ്യങ്ങൾ ഉപയോഗിച്ച് പരിശോധിക്കുന്നത് നിർത്തുക
സ്വന്തം ഉൽപ്പന്നം ഉപയോഗിച്ച് മാത്രം നിങ്ങൾക്ക് ബഗുകൾ (bugs) കണ്ടെത്താൻ കഴിയില്ല. അതിനെ തകർക്കാൻ ശ്രമിച്ചാലേ നിങ്ങൾക്ക് അവ കണ്ടെത്താൻ കഴിയൂ. എന്റെ മാനുവൽ ടെസ്റ്റുകൾ വളരെ 'സൗഹൃദപരമായിരുന്നു'. എനിക്ക് കൃത്യമായ ഉത്തരം അറിയാവുന്ന ചോദ്യങ്ങൾ മാത്രമേ ഞാൻ ചോദിച്ചിരുന്നുള്ളൂ, അതായത് ഞാൻ അറിയാതെ തന്നെ മോഡലിനെ സുരക്ഷിതമായ മേഖലകളിലേക്ക് നയിക്കുകയായിരുന്നു ഞാൻ ചെയ്തത്. ഞാൻ അതിന്റെ പരിധികൾ പരിശോധിച്ചില്ല. എനിക്ക് ഉണ്ടായിരുന്നെങ്കിൽ എന്ന് ആഗ്രഹിക്കുന്ന കഴിവുകളെക്കുറിച്ചോ, ഒരിക്കലും നടക്കാത്ത അനുഭവങ്ങളെക്കുറിച്ചോ ഞാൻ ചോദിച്ചില്ല.
യഥാർത്ഥ പരിശോധനയ്ക്ക് അഡ്വേഴ്സേറിയൽ ഇന്റന്റ് (adversarial intent) ആവശ്യമാണ്. AI പരാജയപ്പെടാൻ രൂപകൽപ്പന ചെയ്ത ചോദ്യങ്ങൾ നിങ്ങൾ തയ്യാറാക്കണം. ഒരു സന്ദർശകന്റെ മുന്നിൽ പരാജയപ്പെടുന്നതിന് പകരം ലാബിൽ വെച്ച് തന്നെ അത് പരാജയപ്പെടണം എന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്നു. നിങ്ങൾ നേരത്തെ വിശ്വസിച്ചിരുന്ന കാര്യങ്ങൾ മാത്രം ശരിവെക്കുന്ന ഒരു ടെസ്റ്റ് സ്യൂട്ട് വെറുമൊരു ഡെമോ മാത്രമാണ്. നിങ്ങൾ സജീവമായി എഡ്ജ് കേസുകളും (edge cases) കെണികൾ നിറഞ്ഞ ചോദ്യങ്ങളും നിർമ്മിക്കുന്നില്ലെങ്കിൽ, നിങ്ങൾ പരിശോധിക്കുകയല്ല, മറിച്ച് പ്രത്യാശിക്കുകയാണ് ചെയ്യുന്നത്.
പ്രധാനപ്പെട്ട രണ്ട് തെറ്റുകൾ
പ്രോംപ്റ്റിംഗ് ഒരു ഉറപ്പല്ല. ഹാലൂസിനേഷൻ ഉണ്ടാക്കരുത് എന്ന് AI-യോട് പറയുന്ന ദീർഘവും വിശദവുമായ നിർദ്ദേശം വെറുമൊരു നിർദ്ദേശം മാത്രമാണ്. മോഡൽ മിക്കവാറും സമയങ്ങളിൽ അത് പാലിച്ചേക്കാം, എന്നാൽ സ്റ്റാറ്റിസ്റ്റിക്കൽ പ്രഷർ (statistical pressure) മറ്റൊരു ദിശയിലേക്ക് നയിക്കുമ്പോൾ അത് ആ നിർദ്ദേശം അവഗണിക്കും. ടെമ്പറേച്ചർ (Temperature), ടോക്കൺ പ്രോബബിലിറ്റി (token probability), ട്രെയിനിംഗ് ഡാറ്റയുടെ ഘടന എന്നിവയെല്ലാം നിങ്ങളുടെ സിസ്റ്റം പ്രോംപ്റ്റിലെ ഒരു വാചകത്തേക്കാൾ കൂടുതൽ സ്വാധീനം ചെലുത്തും. നിങ്ങൾ അനുസരണ അളക്കേണ്ടത് പ്രതീക്ഷകൾ കൊണ്ടല്ല, ഡാറ്റ കൊണ്ടാണ്. ശക്തമായ ഒരു നിർദ്ദേശം എന്നത് സ്ഥിരീകരിച്ച ഒരു വസ്തുതയല്ല. അതൊരു അഭ്യർത്ഥനയാണ്, അഭ്യർത്ഥനകൾ നിരസിക്കപ്പെട്ടേക്കാം. നിങ്ങളുടെ മുഴുവൻ സുരക്ഷാ തന്ത്രവും പ്രോംപ്റ്റ് ശക്തമായി എഴുതുന്നതിനെ മാത്രം ആശ്രയിച്ചാണെങ്കിൽ, നിങ്ങൾ നിർമ്മിച്ചിരിക്കുന്നത് പേപ്പർ കൊണ്ട് ഉണ്ടാക്കിയ ഒരു സുരക്ഷാ വേലിയാണ്. മോഡൽ എത്ര തവണ അനുസരിക്കുന്നു, ഏത് സാഹചര്യത്തിലാണ്, പരാജയപ്പെടുമ്പോൾ എന്തുകൊണ്ട് പരാജയപ്പെടുന്നു എന്ന് കണക്കാക്കുന്ന ഒരു ഇവാലുവേഷൻ ഹാർനെസ്സ് നിങ്ങൾക്ക് ആവശ്യമാണ്. നിങ്ങളുടെ സംസാരശൈലിയോട് കണക്കുകൾക്ക് ഒരു താത്പര്യവുമില്ല.
മൂല്യനിർണ്ണയ പ്രക്രിയയിൽ പിഴവുകളുണ്ടായിരുന്നു. എന്നെ ഏതാണ്ട് കുടുക്കിയേക്കാമായിരുന്ന ഒരു സൂക്ഷ്മമായ കെണിയാണിത്. എന്റെ ആദ്യകാല ടെസ്റ്റിംഗ് ടൂൾ റിട്രീവൽ പ്രക്രിയ രണ്ടുതവണ പ്രവർത്തിപ്പിച്ചു. ആദ്യത്തെ റൺ ഗ്രൗണ്ട് ട്രൂത്ത് പരിശോധിക്കുന്നതിനായി കോൺടെക്സ്റ്റ് ശേഖരിച്ചു. രണ്ടാമത്തെ റൺ യഥാർത്ഥ ഉത്തരം നിർമ്മിക്കുന്നതിനായി കോൺടെക്സ്റ്റ് ശേഖരിച്ചു. പ്രായോഗികമായി പറഞ്ഞാൽ, ജഡ്ജ് കണ്ട ഡാറ്റാ കഷണങ്ങളും മോഡൽ കണ്ട ഡാറ്റാ കഷണങ്ങളും തമ്മിൽ വ്യത്യാസമുണ്ടാകാം എന്നാണ് ഇതിനർത്ഥം. AI-ക്ക് ലഭിക്കാത്ത ഡാറ്റ ഉപയോഗിച്ചാണ് ജഡ്ജ് ഉത്തരത്തെ വിലയിരുത്തിയിരുന്നത്. തെറ്റായ ഇൻപുട്ടിനെ അടിസ്ഥാനമാക്കി വിലയിരുത്തുന്നത് മൂല്യനിർണ്ണയം നടത്താതിരിക്കുന്നതിനേക്കാൾ മോശമാണ്. ഇത് നിങ്ങൾക്ക് ഒരു വ്യാജ സുരക്ഷിതബോധം നൽകുന്നു. നിങ്ങൾ സ്കോർ നോക്കുന്നു, ഉയർന്ന പാസ്സ് റേറ്റ് കാണുന്നു, എന്നിട്ട് സമാധാനിക്കുന്നു. അതേസമയം നിങ്ങളുടെ ഉപയോക്താക്കൾ
