LLM-കൾക്കൊപ്പം TOON എങ്ങനെ ഉപയോഗിക്കാം

എൽഎൽഎം
പ്രോംപ്റ്റ് എഞ്ചിനീയറിംഗ്

നിങ്ങൾ എപ്പോഴെങ്കിലും ഒരു വലിയ JSON അറേ ChatGPT-ലേക്കോ ക്ലോഡിലേക്കോ ഒട്ടിച്ചിട്ടുണ്ടെങ്കിൽ, സന്ദർഭ വിൻഡോ അടയ്ക്കുന്നതിൻ്റെ വേദന നിങ്ങൾക്ക് അനുഭവപ്പെട്ടിരിക്കാം. വെബ് API-കൾക്ക് JSON വളരെ മികച്ചതാണ്, എന്നാൽ വലിയ ഭാഷാ മോഡലുകൾക്ക് (LLM-കൾ) ഇത് അവിശ്വസനീയമാംവിധം പാഴായതാണ്. ഓരോ റെക്കോർഡിനും "id":, "name":, "timestamp": എന്നിങ്ങനെയുള്ള ഫീൽഡ് നാമങ്ങൾ ആവർത്തിക്കുന്നത് വെറുതെയല്ല; യഥാർത്ഥ പണവും വിലയേറിയ സന്ദർഭ സ്ഥലവും ചിലവാക്കുന്ന ടോക്കണുകളിലൂടെ ഇത് കത്തിക്കുന്നു.

ഇവിടെയാണ് TOON (Table Object Notation) തിളങ്ങുന്നത്. ഇത് ഒരു ഡാറ്റ ഫോർമാറ്റ് മാത്രമല്ല; LLM ഇടപെടലുകൾ ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനുള്ള ഒരു തന്ത്രമാണിത്. JSON-ൻ്റെ വാക്യഘടനാ നികുതി ഒഴിവാക്കി വ്യക്തമായ ഘടനാ തലക്കെട്ടുകൾ ചേർക്കുന്നതിലൂടെ, TOON നിങ്ങളുടെ മോഡലുകളിലേക്ക് കൂടുതൽ ഡാറ്റ കൈമാറാനും പകരം കൂടുതൽ വിശ്വസനീയമായ ഘടനാപരമായ ഔട്ട്പുട്ടുകൾ നേടാനും നിങ്ങളെ അനുവദിക്കുന്നു.

ടൂണിൻ്റെ ടോക്കൺ ഇക്കണോമിക്സ്

ഫോർമാറ്റുകൾ മാറ്റുന്നതിൽ എന്തിനാണ് ബുദ്ധിമുട്ടുന്നത്? ഗണിതം ലളിതമാണ്. ഒബ്‌ജക്റ്റുകളുടെ ഒരു സാധാരണ JSON ശ്രേണിയിൽ, ഓരോ വരിയിലും സ്കീമ ആവർത്തിക്കുന്നു. നിങ്ങൾക്ക് 50 ഉപയോക്താക്കളുടെ ഒരു ലിസ്റ്റ് ഉണ്ടെങ്കിൽ, നിങ്ങൾ ഫീൽഡ് പേരുകൾക്കായി 50 തവണ പണമടയ്ക്കുന്നു.

തലക്കെട്ടിൽ ഒരിക്കൽ സ്കീമ പ്രഖ്യാപിക്കുന്നതിലൂടെ TOON ഈ ആവർത്തനത്തെ ഇല്ലാതാക്കുന്നു. ഡാറ്റ ഒരു സാന്ദ്രമായ, സ്ട്രീം-ലൈൻ ഫോർമാറ്റിൽ പിന്തുടരുന്നു. പ്രായോഗികമായി, ഇത് ഫോർമാറ്റ് ചെയ്ത JSON-നെ അപേക്ഷിച്ച് യൂണിഫോം അറേകൾക്കായി ടോക്കൺ ഉപയോഗത്തിൽ **30-60% കുറയ്ക്കുന്നതിന് കാരണമാകുന്നു. നിങ്ങൾ വൻതോതിലുള്ള സന്ദർഭ വിൻഡോകൾ അല്ലെങ്കിൽ ഉയർന്ന വോളിയം API കോളുകൾ കൈകാര്യം ചെയ്യുമ്പോൾ, ആ കാര്യക്ഷമത നേരിട്ട് കുറഞ്ഞ ബില്ലുകളിലേക്കും കുറഞ്ഞ ലേറ്റൻസിയിലേക്കും വിവർത്തനം ചെയ്യുന്നു.

ഡാറ്റ അയയ്ക്കുന്നു: "കാണിക്കുക, പറയരുത്" നിയമം

ഡാറ്റ വിശകലനം ചെയ്യാൻ നിങ്ങൾക്ക് ഒരു LLM ആവശ്യമുള്ളപ്പോൾ, നിങ്ങളുടെ പ്രോംപ്റ്റ് തന്ത്രം നിർണായകമാണ്. തുടക്കക്കാർ പലപ്പോഴും ഡാറ്റ ഫോർമാറ്റ് വിശദീകരിക്കുന്ന നീണ്ട ഖണ്ഡികകൾ എഴുതുന്നു. TOON ഉപയോഗിച്ച്, നിങ്ങൾ അത് ചെയ്യേണ്ടതില്ല.

LLM-കൾ പാറ്റേൺ-മാച്ചിംഗ് എഞ്ചിനുകളാണ്. YAML, CSV എന്നിവയുടെ ഒരു ഹൈബ്രിഡ് പോലെ തോന്നിക്കുന്നതിനാൽ അവർ TOON-നെ അവബോധപൂർവ്വം മനസ്സിലാക്കുന്നു - പരിശീലന സമയത്ത് അവർ കോടിക്കണക്കിന് തവണ കണ്ടിട്ടുള്ള ഫോർമാറ്റുകൾ.

ഡാറ്റ അയയ്‌ക്കുന്നതിന്, അത് ഒരു വേലിയിറക്കിയ കോഡ് ബ്ലോക്കിൽ പൊതിയുക. നിങ്ങൾക്ക് ഇത് ടൂൺ എന്ന് ലേബൽ ചെയ്യാം, എന്നാൽ മോഡലിൻ്റെ വാക്യഘടന ഹൈലൈറ്റർ ഔദ്യോഗികമായി പിന്തുണയ്ക്കുന്നില്ലെങ്കിലും, മോഡൽ ഉടനടി ഘടന മനസ്സിലാക്കുന്നു.

ഇൻപുട്ട് ഉദാഹരണം

സ്കീമ വിവരിക്കുന്നതിനുപകരം, ബ്ലോക്ക് നൽകുക:

ഉപയോക്താക്കൾ[3]{id,name,role,lastLogin} എന്ന തലക്കെട്ട് മോഡലിന് അറിയേണ്ടതെല്ലാം പറയുന്നു: എൻ്റിറ്റി തരം, എണ്ണം (3 വരികൾ), ഫീൽഡുകളുടെ ക്രമം. ഇൻഡൻ്റേഷൻ ശ്രേണിയെ കൈകാര്യം ചെയ്യുന്നു. ഈ "സ്വയം-രേഖപ്പെടുത്തൽ" സ്വഭാവം, വാക്യഘടന പാഴ്‌സിംഗ് നിർദ്ദേശങ്ങളേക്കാൾ യഥാർത്ഥ ലോജിക് ടാസ്‌ക്കിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കാനുള്ള നിങ്ങളുടെ പ്രോംപ്റ്റിനെ സ്വതന്ത്രമാക്കുന്നു.

ഉപയോക്തൃ പ്രവർത്തന ലോഗ് ഇതാ. ഡാറ്റ TOON ഫോർമാറ്റിലാണ് (2-സ്പെയ്സ് ഇൻഡൻ്റ്, വ്യക്തമായ തലക്കെട്ടുകൾ). 

ഉപയോക്താക്കൾ[3]{id,name,role,lastLogin}: 
1,ആലിസ്,അഡ്മിൻ,2025-01-15T10:30:00Z 
2,ബോബ്,ഉപയോക്താവ്,2025-01-14T15:22:00Z 
3,ചാർലി,ഉപയോക്താവ്,2025-01-13T09:45:00Z 

ടാസ്‌ക്: ലോഗുകൾ വിശകലനം ചെയ്യുകയും കഴിഞ്ഞ 24 മണിക്കൂറിനുള്ളിൽ ഏതൊക്കെ ഉപയോക്താക്കൾ ലോഗിൻ ചെയ്യാത്തവരാണെന്ന് തിരിച്ചറിയുകയും ചെയ്യുക. 

വിശ്വസനീയമായ ഔട്ട്പുട്ട് സൃഷ്ടിക്കുന്നു

ഡാറ്റ വായിക്കാൻ LLM നേടുന്നത് എളുപ്പമാണ്; ഇത് സാധുവായ ഘടനാപരമായ ഡാറ്റ generate ആക്കുന്നത് ബുദ്ധിമുട്ടുള്ള ഭാഗമാണ്. JSON നെ ഭ്രമിപ്പിക്കാനോ വെട്ടിച്ചുരുക്കാനോ ബ്രേസുകൾ അടയ്ക്കുന്നത് മറക്കാനോ മോഡലുകൾ ഇഷ്ടപ്പെടുന്നു.

TOON അതിൻ്റെ ഹെഡർ വാക്യഘടനയിലൂടെ സുരക്ഷിതത്വത്തിൻ്റെ ഒരു പാളി ചേർക്കുന്നു, പ്രത്യേകിച്ചും [N] എണ്ണം. TOON ഔട്ട്‌പുട്ട് ചെയ്യാൻ നിങ്ങൾ ഒരു മോഡലിനോട് ആവശ്യപ്പെടുമ്പോൾ, അത് ഡാറ്റ ജനറേറ്റുചെയ്യുന്നതിന് മുമ്പ് ഒരു ഘടനയിൽ പ്രതിബദ്ധത പുലർത്താൻ നിങ്ങളോട് ആവശ്യപ്പെടുന്നു.

ജനറേഷനായി ആവശ്യപ്പെടുന്നു

മികച്ച ഫലങ്ങൾ ലഭിക്കുന്നതിന്, നിങ്ങൾ പ്രതീക്ഷിക്കുന്ന തലക്കെട്ട് ഫോർമാറ്റ് നൽകുകയും വരികൾ പൂരിപ്പിക്കാൻ മോഡലിനെ നിർദ്ദേശിക്കുകയും ചെയ്യുക.

[N] കണക്കാക്കാൻ മോഡലിനോട് ആവശ്യപ്പെടുന്നതിലൂടെ, മോഡൽ ഔട്ട്‌പുട്ട് വലുപ്പം ആസൂത്രണം ചെയ്യേണ്ട ഒരു "ചിന്തയുടെ ശൃംഖല" പ്രക്രിയയ്ക്ക് നിങ്ങൾ നിർബന്ധിതരാകുന്നു. ഈ ചെറിയ പരിമിതി, ഒരു ലിസ്റ്റിലൂടെ പാതിവഴിയിൽ മോഡൽ വെട്ടിമാറ്റാനുള്ള സാധ്യതയെ ഗണ്യമായി കുറയ്ക്കുന്നു.

ടാസ്ക്: "ഉപയോക്താവ്" എന്ന റോളുള്ള സജീവ ഉപയോക്താക്കളുടെ ലിസ്റ്റ് തിരികെ നൽകുക. 
ഫോർമാറ്റ്: TOON ഉപയോഗിക്കുക. നിങ്ങൾ സൃഷ്ടിക്കുന്ന വരികളുടെ കൃത്യമായ എണ്ണവുമായി പൊരുത്തപ്പെടുന്നതിന് തലക്കെട്ടിലെ [N] മൂല്യം സജ്ജമാക്കുക. 

പ്രതീക്ഷിക്കുന്ന ഫോർമാറ്റ്: 
ഉപയോക്താക്കൾ[N]{id,name,role,lastLogin}: 

കർശനമായ മോഡ് ഉപയോഗിച്ച് സാധൂകരിക്കുന്നു

LLM-ൽ നിന്ന് നിങ്ങൾക്ക് പ്രതികരണം ലഭിക്കുമ്പോൾ, നിങ്ങൾ അത് വിശ്വസിക്കരുത്. ഇവിടെയാണ് TOON ലൈബ്രറിയുടെ കർശനമായ മോഡ് പ്രൊഡക്ഷൻ ആപ്ലിക്കേഷനുകൾക്ക് ഒരു സൂപ്പർ പവറായി മാറുന്നത്.

നിങ്ങൾ ടൈപ്പ്സ്ക്രിപ്റ്റ് ലൈബ്രറിയാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, ജനറേറ്റുചെയ്‌ത വരികൾ തലക്കെട്ടിൻ്റെ എണ്ണവുമായി പൊരുത്തപ്പെടുന്നുണ്ടെന്ന് കർശനമായ മോഡ് ഉപയോഗിച്ച് ഡീകോഡ് ചെയ്യുന്നത് സാധൂകരിക്കുന്നു:

നിങ്ങളുടെ ആപ്ലിക്കേഷനിൽ മോശം ഡാറ്റ കണ്ടെത്തുന്നതിന് പകരം "അലസമായ" മോഡൽ ഔട്ട്‌പുട്ടുകളോ നെറ്റ്‌വർക്ക് വെട്ടിച്ചുരുക്കലുകളോ ഉടനടി പ്രോഗ്രാം ചെയ്യാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.

'@toon-format/toon'-ൽ നിന്ന് {ഡീകോഡ്} ഇറക്കുമതി ചെയ്യുക; 

ശ്രമിക്കുക { 
// മോഡൽ [5] എന്ന് പറയുന്നുണ്ടെങ്കിലും 4 വരികൾ നൽകുന്നുവെങ്കിൽ, ഇത് ഒരു പിശക് ഉണ്ടാക്കുന്നു. 
കോൺസ്റ്റ് ഡാറ്റ = ഡീകോഡ്(മോഡൽഔട്ട്പുട്ട്, {കണിശമായത്: സത്യം}); 
console.log('സാധുവായ ഡാറ്റ ലഭിച്ചു:', ഡാറ്റ); 
} പിടിക്കുക (പിശക്) { 
console.error('മോഡൽ ഹാലൂസിനേഷൻ അല്ലെങ്കിൽ വെട്ടിച്ചുരുക്കൽ കണ്ടെത്തി:', error.message); 
} 

വിപുലമായ ഒപ്റ്റിമൈസേഷൻ: ടാബ് ട്രിക്ക്

നിങ്ങൾക്ക് ഒപ്റ്റിമൈസേഷനിൽ താൽപ്പര്യമുണ്ടെങ്കിൽ (എൽഎൽഎമ്മുകളുടെ ലോകത്ത്, നിങ്ങൾ ഒരുപക്ഷേ അങ്ങനെയായിരിക്കണം), നിങ്ങളുടെ ഡിലിമിറ്ററുകൾ വിവേകത്തോടെ തിരഞ്ഞെടുക്കുന്നതിലൂടെ നിങ്ങൾക്ക് കൂടുതൽ കാര്യക്ഷമത നേടാനാകും.

കോമകൾ സാധാരണമാണ്, എന്നാൽ ടാബുകൾ (\t) പലപ്പോഴും പല ടോക്കണൈസർ പദാവലികളിലും ഒരൊറ്റ ടോക്കണായി പ്രതിനിധീകരിക്കുന്നു. കൂടാതെ, സ്വാഭാവിക ടെക്സ്റ്റ് ഫീൽഡുകൾക്കുള്ളിൽ ടാബുകൾ അപൂർവ്വമായി മാത്രമേ ദൃശ്യമാകൂ, അത് രക്ഷപ്പെടൽ പ്രതീകങ്ങളുടെ ആവശ്യകത കുറയ്ക്കുന്നു (ഉദ്ധരണികളിൽ സ്ട്രിംഗുകൾ പൊതിയുന്നത് പോലെ).

മോഡലിലേക്ക് അയയ്ക്കുന്നതിന് മുമ്പ് ടാബുകൾ ഉപയോഗിച്ച് നിങ്ങളുടെ ഡാറ്റ എൻകോഡ് ചെയ്യാം:

പ്രോംപ്റ്റിൽ മോഡലിനെ അറിയിക്കാൻ ഓർമ്മിക്കുക: "ഡാറ്റ ടാബ്-വേർതിരിക്കപ്പെട്ട TOON." ഇത് മോഡലിന് പാഴ്‌സ് ചെയ്യാനും ജനറേറ്റുചെയ്യാനും അവിശ്വസനീയമാംവിധം എളുപ്പമുള്ള ഒരു ഹൈപ്പർ-കോംപാക്റ്റ് പ്രാതിനിധ്യം സൃഷ്ടിക്കുന്നു.

const toonPrompt = എൻകോഡ്(ഡാറ്റ, {ഡിലിമിറ്റർ: '\t'}); 

ഒരു സമ്പൂർണ്ണ വർക്ക്ഫ്ലോ ഉദാഹരണം

നമുക്ക് ഒരു യഥാർത്ഥ ലോക സാഹചര്യം നോക്കാം: സിസ്റ്റം ലോഗുകൾ ഫിൽട്ടറിംഗ് ചെയ്യുന്നു. നിങ്ങൾക്ക് മോഡലിലേക്ക് റോ ലോഗുകൾ അയയ്‌ക്കാനും പിശകുകളുടെ ഘടനാപരമായ ഒരു ലിസ്റ്റ് തിരികെ നേടാനും നിങ്ങൾ ആഗ്രഹിക്കുന്നു.

പ്രോംപ്റ്റ്:

മാതൃക ഔട്ട്പുട്ട്:

TOON ഫോർമാറ്റിലുള്ള സിസ്റ്റം ലോഗുകൾ (ടാബ്-വേർതിരിക്കപ്പെട്ടത്): 

ഇവൻ്റുകൾ[4]{id,level,message,timestamp}: 
1,പിശക്,കണക്ഷൻ കാലഹരണപ്പെട്ടു,2025-01-15T10:00:00Z 
2, മുന്നറിയിപ്പ്, മന്ദഗതിയിലുള്ള അന്വേഷണം, 2025-01-15T10:05:00Z 
3,വിവരങ്ങൾ,ഉപയോക്തൃ ലോഗിൻ,2025-01-15T10:10:00Z 
4, പിശക്, ഡാറ്റാബേസ് പിശക്025-01-15T10:15:00Z 

ടാസ്ക്: ലെവൽ 'പിശക്' ഉപയോഗിച്ച് എല്ലാ ഇവൻ്റുകളും എക്‌സ്‌ട്രാക്‌റ്റ് ചെയ്യുക. അപ്‌ഡേറ്റ് ചെയ്‌ത തലക്കെട്ടുകളുടെ എണ്ണം ഉപയോഗിച്ച് ഫലം സാധുവായ TOON ആയി നൽകുക. 

ഫലം:

ഇവൻ്റുകൾ[2]{id,level,message,timestamp}: 
1,പിശക്,കണക്ഷൻ കാലഹരണപ്പെട്ടു,2025-01-15T10:00:00Z 
4,പിശക്,ഡാറ്റാബേസ് പിശക്,2025-01-15T10:15:00Z 

മോഡൽ ലിസ്റ്റ് ശരിയായി ഫിൽട്ടർ ചെയ്യുകയും, പ്രധാനമായി, ഹെഡർ ഇവൻ്റ്സ്[2] എന്നതിലേക്ക് അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്തു. ഈ പ്രതികരണം ഡീകോഡ് ചെയ്യുന്നതിലൂടെ, നിങ്ങളുടെ ആപ്ലിക്കേഷൻ ലോജിക്കിനായി വൃത്തിയുള്ളതും ടൈപ്പ്-സുരക്ഷിതവുമായ ഒരു ശ്രേണി നിങ്ങൾക്ക് ലഭിക്കും.

സംഗ്രഹം

TOON മനുഷ്യൻ്റെ വായനാക്ഷമതയും യന്ത്രത്തിൻ്റെ കാര്യക്ഷമതയും തമ്മിലുള്ള വിടവ് നികത്തുന്നു. ശക്തമായ സോഫ്‌റ്റ്‌വെയർ വികസനത്തിന് ആവശ്യമായ ഘടന നൽകുമ്പോൾ LLM-കളുടെ ചെലവ് നിയന്ത്രണങ്ങളെ ഇത് മാനിക്കുന്നു.

  1. ഇത് ചെറുതാക്കി സൂക്ഷിക്കുക: നിങ്ങളുടെ ഉദാഹരണങ്ങളിൽ 2-5 വരികൾ ഉപയോഗിക്കുക; മോഡൽ പൊതുവൽക്കരിക്കും.
  1. വ്യക്തമാകുക: തലക്കെട്ടുകൾ വ്യക്തമായി നിർവ്വചിക്കുക, അങ്ങനെ മോഡലിന് സ്കീമ അറിയാം.
  1. ** കർശനമായി സാധൂകരിക്കുക:** ജനറേഷൻ പിശകുകൾ കണ്ടെത്താൻ ഫോർമാറ്റിൻ്റെ മെറ്റാഡാറ്റ ഉപയോഗിക്കുക.

നിങ്ങളുടെ പ്രോംപ്റ്റ് പേലോഡുകൾക്കായി JSON-ൽ നിന്ന് മാറുന്നതിലൂടെ, നിങ്ങൾ ടോക്കണുകൾ സംരക്ഷിക്കുക മാത്രമല്ല-നിങ്ങൾ കൂടുതൽ വിശ്വസനീയമായ AI പൈപ്പ്ലൈൻ നിർമ്മിക്കുകയാണ്.