എൽഎൽഎമ്മുകളെ ഏജന്റുകളായി പരിശീലിപ്പിക്കാൻ തുടങ്ങുമ്പോൾ, യഥാർത്ഥ ലോക പരിതസ്ഥിതിയിലേക്കും അതിൽ നിന്നും വിവരങ്ങൾ എങ്ങനെ ഏറ്റവും നല്ല രീതിയിൽ കൈമാറാം എന്ന് ചിന്തിക്കേണ്ടതുണ്ട്. അത് ഒരു ബാഹ്യ ഫങ്ഷൻ വിളിക്കുകയാണെങ്കിൽ, ആർഗ്യുമെന്റുകൾ എങ്ങനെ കൈമാറണം? പരിതസ്ഥിതിയിൽ നിന്നുള്ള ഡാറ്റ മോഡലിലേക്ക് എങ്ങനെ നൽകണം? ഏറ്റവും ലളിതവും (ഏറ്റവും സാമാന്യവുമായ) പരിഹാരം ഘടനാപരമായ ഡാറ്റ ഫോർമാറ്റുകൾ ഉപയോഗിക്കുന്നു, ഉദാഹരണത്തിന് JSON. ഈ ഫോർമാറ്റുകൾക്ക് ഏത് തരത്തിലുള്ള നെസ്റ്റ് ചെയ്ത, വൈവിധ്യമാർന്ന ടൈപ്പുകളുള്ള ഡാറ്റാ സ്ട്രക്ചറുകളും എൻകോഡ് ചെയ്യാൻ കഴിയും.
എന്നാൽ JSON ശരിയായ തിരഞ്ഞെടുപ്പാണോ? നമുക്ക് നിരവധി ഓപ്ഷനുകൾ ഉണ്ട്, ഉദാഹരണത്തിന് TOML, YAML, XML മുതലായവ. ഈ പോസ്റ്റിൽ, ശരിയായ തിരഞ്ഞെടുപ്പ് നടത്താൻ സഹായിക്കുന്ന മെട്രിക്സുകൾ ഞങ്ങൾ പരിഗണിക്കുകയും അളക്കുകയും ചെയ്യുന്നു.
ടോക്കൺ കാര്യക്ഷമത
നിലവിലെ LLM-കളുടെ ഒരു അടിസ്ഥാനപരമായ പരിധി പരിമിതമായ സന്ദർഭം ആണ്. കാലക്രമേണ ഡാറ്റയുടെ മുഴുവൻ ലോകവും മോഡലിലേക്ക് നമുക്ക് ഒഴുക്കാൻ കഴിയില്ല. ഇതിനർത്ഥം, ഏറ്റവും കുറച്ച് ടോക്കണുകളിൽ സാധ്യമായ ഏറ്റവും ഉപയോഗപ്രദമായ വിവരങ്ങൾ ആശയവിനിമയം ചെയ്യാൻ നാം ആഗ്രഹിക്കുന്നു എന്നാണ്.
അതിനാൽ, യഥാർത്ഥ-ലോക ടെലിമെട്രി ഇല്ലാതെ, ഏത് ഘടനാപരമായ ഡാറ്റ ഫോർമാറ്റുകളാണ് ഏറ്റവും കാര്യക്ഷമമായ രീതിയിൽ ടോക്കൺ ആകുന്നത് എന്ന് പരീക്ഷിക്കാം. ഇതിനായി, സിസ്റ്റം നിഘണ്ടു ഉപയോഗിച്ച് നിർമ്മിച്ച കീകളുള്ള ഘടനാപരമായ ഡാറ്റ (കൂട്ടം dict-കളും list-കളും) ഞങ്ങൾ ക്രമരഹിതമായി സൃഷ്ടിക്കുന്നു. ഉദാഹരണത്തിന്, JSON-ൽ:
[
{
"leptomeninx_xylitone": [
147.396,
{ "asellus_spinelike_triliterality": null }
]
},
{
"costively_zoetic": [["decipherably_wheat"]],
"neurectome_sorcery_tangleproof": null
}
]
സാമ്പ്ലിംഗ് പ്രക്രിയയിൽ ഒരു ട്രീ വലുപ്പം തിരഞ്ഞെടുക്കുകയും, റിക്കർസീവ് ആയി ക്രമരഹിതമായി കണ്ടെയ്നർ തരങ്ങളും ടെർമിനൽ മൂല്യങ്ങളും തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്നു. ഉപയോഗിക്കുന്ന ഘടനാപരമായ ടോക്കണുകളുടെ എണ്ണം നമ്മൾ കൈകാര്യം ചെയ്യുന്ന ഡാറ്റയുടെ തരത്തെ ആശ്രയിച്ചിരിക്കുന്നുവെന്ന് നിങ്ങൾ ശ്രദ്ധിച്ചേക്കാം. നിങ്ങളുടെ ഏജന്റിന്റെ ഇൻപുട്ട് ഏകപക്ഷീയമായി കൂട്ടിയ ഡാറ്റ കൈകാര്യം ചെയ്യുന്നില്ലെങ്കിൽ, ഒരു ലളിതമായ സ്പെസിഫിക്കേഷൻ മതിയാകും. ഇത് കണക്കിലെടുക്കാൻ, ഞങ്ങൾ ഒരു കൂട്ടം ആകൃതികൾ നിർവചിക്കുന്നു:
nested: സ്കെയിലർ മൂല്യങ്ങളിൽ അവസാനിക്കുന്ന ആഴത്തിലുള്ള dict/list സംയോജനങ്ങൾ.സാമ്പിൾ
[ { "comforter": { "dosadh_disruption_prosodiac": { "unsnatch_moslem": 837 }, "tone_redefine": { "cribrose_aoul": [ [ "christianization-casuariiformes-overbravery-chevronel" ] ] } } }, { "bovarysm": [ "oropharynx_consentant_fibronuclear", "bajardo-liquidy-calibered-belucki" ], "materialistic": { "paleostylic": -27.23, "praediality_juvenilify_benempt": 104, "roquelaure": -407 } }, { "filicites": [ "unpalatableness-allocaffeine", 126.204, { "manesheet": "emery_tricyclene" } ], "imposing_elchee_mentation": 3, "inadvisability": -12.726 } ]sparse: കൂട്ടിയ ലേഔട്ടുകളിൽ അപൂർവ്വമായ സംഖ്യാ അല്ലെങ്കിൽ ടെക്സ്റ്റ് സ്കെയിലറുകളുള്ള, പ്രധാനമായും null മൂല്യങ്ങൾ.സാമ്പിൾ
[ { "areole_auramine_kojiki": { "hyperabsorption_uraniscorrhaphy": -776 }, "maplebush_piete": [ { "shadowgraphist": null, "stakeholder_busybodyness_crebrity": 644 } ], "preadamite": null }, { "bellmaking_brachydont": { "jalapin_chandelier_accelerando": null, "mandative": -79, "totora_peristaphylitis_graphy": null }, "subferryman_dephlegmator": [ { "manuka_uncriminally_archdeceiver": null } ] }, { "daytime": [ { "overfeminine_catholicist": -242.239, "sulfophthalein_irreciprocal": null } ], "gata": null, "macaranga_circuitman": null, "ostraciidae_subsidiariness": "throneward" } ]tabular: പങ്കിട്ട സ്കീമയുള്ള സ്കെയിലർ മൂല്യങ്ങളുടെ വരികളുള്ള കോളം-അടിസ്ഥാനപരമായ പട്ടികകൾ.സാമ്പിൾ
{ "columns": [ "viragoish_isogonality_swarming", "supralocally_nuncioship", "zoomorph", "cavitary_visie", "permutableness_impunity_bipack", "forby_archly", "rivinian", "unheal_annelidian_samurai" ], "rows": [ [ true, false, "cincinnatia-cyanhidrosis-auto", false, true, null, "acetosoluble nonexclamatory homogangliate croupal", -219 ], [ null, 836, -904, "metasomatic-mundanism-hotchpotchly-secantly", null, 309.642, "floodgate-baluchitherium-unimaginary-sheepkeeper", -396 ], [ "postcritical-tug", true, -948, 0.135, 399.166, -123, "palaeoniscus", true ] ] }
ഞങ്ങൾ ഇനിപ്പറയുന്ന ഫോർമാറ്റുകൾ പരിഗണിക്കുന്നു:
json: ക്രമീകരിച്ച കീകളും കോംപാക്റ്റ് സെപ്പറേറ്ററുകളുമുള്ള പൂർണ്ണമായും മിനിഫൈ ചെയ്ത JSON.സാമ്പിൾ
[{"backlotter_overboast":"calligraphist_megabar_uninstructively","landspout_souper":[null],"liquefier_unconvicting":-151.898,"unbegot":[961],"unreformedness":-189.15},{"detriment_muckender":[469.486,{"aspergillum_sharebroker_akebia":337},-302.978],"heeder_aerophyte_unbase":499.655,"metamer_powsoddy":null},{"fascicled_fibrous_bajardo":{"octaeterid_pharmacolite_tentativeness":{"underfellow":83.76},"plethysmography_unchangeably_positioned":432.985,"transvestitism":82},"mirror":{"uninfallibility_benny":null}}]yaml: ഡിറ്റർമിനിസ്റ്റിക് കീ ക്രമീകരണത്തോടുകൂടിയ ബ്ലോക്ക് ശൈലിയിലുള്ള YAML സീരിയലൈസേഷൻ.സാമ്പിൾ
- backlotter_overboast: calligraphist_megabar_uninstructively landspout_souper: - null liquefier_unconvicting: -151.898 unbegot: - 961 unreformedness: -189.15 - detriment_muckender: - 469.486 - aspergillum_sharebroker_akebia: 337 - -302.978 heeder_aerophyte_unbase: 499.655 metamer_powsoddy: null - fascicled_fibrous_bajardo: octaeterid_pharmacolite_tentativeness: underfellow: 83.76 plethysmography_unchangeably_positioned: 432.985 transvestitism: 82 mirror: uninfallibility_benny: nulltoml: റെക്കോർഡുകൾ അറേയ്ക്ക് കീഴിൽ റെക്കോർഡുകൾ പൊതിയുന്ന TOML ഡോക്യുമെന്റ്, null-കൾ സ്ട്രിംഗ് ആക്കിയത്.സാമ്പിൾ
[[records]] landspout_souper = [ "null", ] backlotter_overboast = "calligraphist_megabar_uninstructively" liquefier_unconvicting = -151.898 unreformedness = -189.15 unbegot = [ 961, ] [[records]] detriment_muckender = [ 469.486, { aspergillum_sharebroker_akebia = 337 }, -302.978, ] heeder_aerophyte_unbase = 499.655 metamer_powsoddy = "null" [[records]] [records.fascicled_fibrous_bajardo] transvestitism = 82 plethysmography_unchangeably_positioned = 432.985 [records.fascicled_fibrous_bajardo.octaeterid_pharmacolite_tentativeness] underfellow = 83.76 [records.mirror] uninfallibility_benny = "null"xml: സെമാന്റിക് ടാഗുകളും വ്യക്തമായ തരം പേരുകളും ഉപയോഗിക്കുന്ന വെർബോസ് XML ട്രീ.സാമ്പിൾ
<records> <object name="record" index="0"> <array name="landspout_souper"> <null name="0" /> </array> <string name="backlotter_overboast">calligraphist_megabar_uninstructively</string> <number name="liquefier_unconvicting">-151.898</number> <number name="unreformedness">-189.15</number> <array name="unbegot"> <number name="0">961</number> </array> </object> <object name="record" index="1"> <array name="detriment_muckender"> <number name="0">469.486</number> <object name="1"> <number name="aspergillum_sharebroker_akebia">337</number> </object> <number name="2">-302.978</number> </array> <number name="heeder_aerophyte_unbase">499.655</number> <null name="metamer_powsoddy" /> </object> <object name="record" index="2"> <object name="fascicled_fibrous_bajardo"> <number name="transvestitism">82</number> <object name="octaeterid_pharmacolite_tentativeness"> <number name="underfellow">83.76</number> </object> <number name="plethysmography_unchangeably_positioned">432.985</number> </object> <object name="mirror"> <null name="uninfallibility_benny" /> </object> </object> </records>csv: ടാബുലാർ റെക്കോർഡുകളിൽ നിന്ന് സൃഷ്ടിച്ച ഹെഡറുള്ള കോമ-വേർതിരിച്ച വരികൾ.സാമ്പിൾ
bicellular_russification_unsinister,crude_paynim,isoetales,postembryonic_encrisp braza apology catalufa tofu,,rampager,triformous ,True,481.226, 421.281,868,photodysphoria,escortage
ഫോർമാറ്റ് അവബോധക്ഷമത
ഒരു അവബോധക്ഷമമായ ഫോർമാറ്റ് ഭാഷാ മോഡലുകൾക്ക് പാഴ്സ് ചെയ്യാനും ജനറേറ്റ് ചെയ്യാനും എളുപ്പമുള്ളതാണ്. അവബോധക്ഷമത അളക്കാൻ, ഞങ്ങൾ താഴെയുള്ള ബെഞ്ച്മാർക്ക് നിർദ്ദേശിക്കുന്നു. എല്ലാ റണുകളും ടൂൾ ഉപയോഗമില്ലാതെ റോ ചാറ്റ് മോഡിൽ DeepSeek V3 (2025-09) ഉപയോഗിക്കുന്നു, അതിനാൽ മോഡലിന് പൈത്തൺ സ്നിപ്പറ്റ് “മാനസികമായി” എക്സിക്യൂട്ട് ചെയ്യേണ്ടതുണ്ട്.
- ഒരു ഫോർമാറ്റ് , ഇൻപുട്ട് ട്രീ വലുപ്പം , ഔട്ട്പുട്ട് ട്രീ വലുപ്പം എന്നിവ നൽകിയാൽ.
- നോഡുകളുള്ള ഒരു ഇൻപുട്ട് ഡാറ്റാ ട്രീ ജനറേറ്റ് ചെയ്യുക
- ഇൻപുട്ട് ഡാറ്റാ ട്രീ ക്വറി ചെയ്യുന്ന,
വലുപ്പമുള്ള ഒരു നെസ്റ്റഡ് ഡാറ്റാ ട്രീയിലേക്ക് മൂല്യനിർണ്ണയം ചെയ്യുന്ന
targetഎന്ന വേരിയബിൾ നിർവചിക്കുന്ന ഒരു പൈത്തൺ പ്രോഗ്രാം ജനറേറ്റ് ചെയ്യുക - ഞങ്ങളുടെ ഫോർമാറ്റ്
ൽ സീരിയലൈസ് ചെയ്ത
targetജനറേറ്റ് ചെയ്യാൻ മോഡലിനോട് പ്രോംപ്റ്റ് ചെയ്യുക
JSON-നുള്ള സാമ്പിൾ പ്രോംപ്റ്റ്
ഫോർമാറ്റ്: json_min ഇൻപുട്ട് നോഡുകൾ നിരീക്ഷിച്ചത്: 8 ടാർഗെറ്റ് ഔട്ട്പുട്ട് നോഡുകൾ: 9
നിർദ്ദേശങ്ങൾ:
- ഡാറ്റാസെറ്റ്
dataഎന്ന പേരുള്ള ഒരു പൈത്തൺ വേരിയബിളിലേക്ക് പാഴ്സ് ചെയ്യുക. targetഎന്ന വേരിയബിൾ പോപ്പുലേറ്റ് ചെയ്യാൻ താഴെയുള്ള പൈത്തൺ സ്നിപ്പറ്റ് എക്സിക്യൂട്ട് ചെയ്യുക.- യഥാർത്ഥ ഫോർമാറ്റ് (json_min) ഉപയോഗിച്ച്
targetസീരിയലൈസ് ചെയ്ത്jsonഎന്ന് ടാഗ് ചെയ്ത ഫെൻസ്ഡ് കോഡ് ബ്ലോക്കിനുള്ളിൽ ഫലം സ്ഥാപിക്കുക. - കോഡ് ബ്ലോക്കിൽ സീരിയലൈസ് ചെയ്ത ഡാറ്റ മാത്രമേ അടങ്ങിയിരിക്കാവൂ.
- ഫോർമാറ്റും ഘടനയും കൃത്യമായി പൊരുത്തപ്പെടുന്നുവെന്ന് ഉറപ്പാക്കാൻ വളരെ ശ്രദ്ധിക്കുക.
ഉദാഹരണങ്ങൾ: ഉദാഹരണം 1: ഡാറ്റാസെറ്റ്:
{"results":{"lo_unaddicted":[{"fleeting_geneserine_desmodynia":[-163.354]},{"subcrepitation_maddeningly":{"homoanisic":-3}},"helminth_vengeable"],"touchiness":[{"cataphyllum_educand":"remilitarize","unhumiliated_poorwill_oryctognostically":"resound","herrnhuter":false},["uptrace",["subastringent"],"scruff","theurgically_tritonymph",[-123]]],"ichthyornithes_revisionary":{"alcogel_freckle":{"inquisition":"lehi"},"oniomaniac_flamineous_ledgerdom":{"tylotoxeate":-141,"hemeralopia":272.837},"unremember":[false,[-30],true]},"amphiumidae":{"unenterprised_meltage":[149],"psilanthropist_garrulinae":{"averrable_deporter":399.228,"riotproof_terebratuloid_monophyodontism":-22},"coed":{"indigoid_pulicid":"airbrush_oenothera","paillasse":"rutelinae"},"inhume_photoprinting_pasturability":["chiselly_backfilling"],"route_anisopogonous":[{"kotal_schematization_zestfulness":-91}]},"unexcised_seamless_intwist":{"cordaitean":-108,"unrising":"monarchist"}}}
പൈത്തൺ സ്നിപ്പറ്റ്:
target = [
data["amphiumidae"]["route_anisopogonous"][0],
data["amphiumidae"]["inhume_photoprinting_pasturability"],
data["touchiness"][1],
]
പ്രതികരണം:
{"results":[{"kotal_schematization_zestfulness":-91},["chiselly_backfilling"],["uptrace",["subastringent"],"scruff","theurgically_tritonymph",[-123]]]}
ഉദാഹരണം 2: ഡാറ്റാസെറ്റ്:
{"results":[[["selachostomous",88.259,"altair_assiniboin",{"samphire_symbolology":{"scarfed_wambutti":-28}},"bocca_ponerid"],[["gibberosity","footway_antecardium",[true],["myxosporous"],"repopulate"]],{"prairied":-13,"amara_huccatoon_massivity":34,"alehouse_uncumber":154}],{"tartary_loculose":[[{"counterwind":"endophasic"}],[{"subhyaline_asiatical_tobikhar":"angolar_cheeriness","scutelliform_riverweed_putback":-7,"thirdsman_phlogistical_tropacocaine":"bawdry"}]],"hydrophore":[{"insubvertible":119,"overwomanize":{"cobble_orography_caprice":-127},"queriman_episcopally_railway":{"unadoration":["weedage"]},"stactometer_toggle_cleavability":[453.262]},{"forejudge_tacnode":{"undersupport":105},"floorward":-170,"dormer_abysmal_occasional":-484.491,"wheatgrower":346.849,"phobism_intendingly":91.698}]},{"conirostres":[{"monorhymed_kioway":"taxlessly","ungloriousness_urosternite":true},["pendanting_allegation",-30],["hemiobol","monont_paradoxial"]],"sistrum":[{"untaintable_polladz":true},[-162,true],{"preclassic_standoffishness_pagina":true}]},[{"earlock_unmantled":{"philoradical_micranthropos":-10,"derout":["unfrock",90.415]},"hepatologist_unrushed":-270.882},[[["argyrol_art"]],["daftness"],[-12,149.452]],[[{"loatuko":"floriken_tecali"},[-153.065],-51,153.874,"pile"]],{"hexacanth":[[-3,-19]]}]]}
പൈത്തൺ സ്നിപ്പറ്റ്:
target = [
data[1]["tartary_loculose"][0][0],
data[1]["hydrophore"][1]["wheatgrower"],
data[1]["tartary_loculose"][1],
data[1]["hydrophore"][0]["queriman_episcopally_railway"]["unadoration"],
data[0][1][0][1],
data[0][2],
data[2]["conirostres"][0]["monorhymed_kioway"],
data[3][2],
]
പ്രതികരണം:
{"results":[{"counterwind":"endophasic"},346.849,[{"subhyaline_asiatical_tobikhar":"angolar_cheeriness","scutelliform_riverweed_putback":-7,"thirdsman_phlogistical_tropacocaine":"bawdry"}],["weedage"],"footway_antecardium",{"prairied":-13,"amara_huccatoon_massivity":34,"alehouse_uncumber":154},"taxlessly",[[{"loatuko":"floriken_tecali"},[-153.065],-51,153.874,"pile"]]]}
ഡാറ്റാസെറ്റ്:
{"results":["relict",{"intolerant_ignify":"cragginess_reapprobation","detriment_wholesalely_spillway":-49},true,"stewardess",-94]}
പൈത്തൺ സ്നിപ്പറ്റ്:
target = [
data[1]["intolerant_ignify"],
data[4],
data[1]["detriment_wholesalely_spillway"],
data[2],
data[3],
data[1],
]
ഉപസംഹാരം
ഡാറ്റയിൽ നിന്നുള്ള പ്രധാന ടേക്ക്അവേ YAML ഉപയോഗിക്കരുത് എന്നതാണ്. LLM-കൾക്ക് ഇത് JSON-നേക്കാൾ മികച്ചതാണെന്ന് ഓൺലൈനിൽ പലരും പറയുന്നത് ഞാൻ കണ്ടിട്ടുണ്ട്, പക്ഷേ ഇത് മിക്കവാറും ശരിയല്ല. ഇത് ശരാശരി ~19% കൂടുതൽ ടോക്കണുകൾ ഉപയോഗിക്കുന്നു, കൂടാതെ വായിക്കാൻ വളരെ ബുദ്ധിമുട്ടാണ്. TOML-ന്റെ വായന/എഴുത്ത് പ്രകടനം JSON-വുമായി താരതമ്യം ചെയ്യുമ്പോൾ മികച്ച രീതിയിൽ സ്കെയിൽ ചെയ്യുന്നതായി തോന്നുന്നു, എന്നാൽ അതേ ഡാറ്റ എൻകോഡ് ചെയ്യാൻ അത് ~44% കൂടുതൽ ടോക്കണുകൾ ഉപയോഗിക്കുന്നു. മിക്ക ഉപയോഗങ്ങൾക്കും JSON ആണ് മികച്ച തിരഞ്ഞെടുപ്പ്.
GitHub-ലെ കോഡ് ഉപയോഗിച്ച് ഫലങ്ങൾ പുനരാവിഷ്കരിക്കുക.