ప్రాంప్ట్లు మాత్రమే సరిపోవు: LLM అవుట్పుట్పై కఠినమైన నిబంధనలను అమలు చేయడం
LLM డెమోలు కఠినమైన అవసరాలను ఎదుర్కొనే వరకు అద్భుతంగా కనిపిస్తాయి.
మోడల్స్ సంభావ్యత (probability) ఆధారంగా పనిచేస్తాయి. ప్రొడక్షన్ సిస్టమ్స్కు గ్యారెంటీలు అవసరం.
అర్జెంటీనాలోని Radio del Volga కోసం ఒక AI న్యూస్ పైప్లైన్ను నిర్మిస్తున్నప్పుడు నేను దీనిని తెలుసుకున్నాను. ఈ సిస్టమ్ వార్తలను తిరిగి రాస్తుంది మరియు సోషల్ మీడియా పోస్ట్లను సృష్టిస్తుంది. ఒక సమస్య ఎదురయ్యే వరకు ఇది బాగానే పనిచేసింది. Gemini నిరంతరం తప్పు స్పానిష్లో రాస్తూ ఉండటం.
అర్జెంటీనాలో, ప్రజలు కొన్ని ప్రత్యేక పదాలను ఉపయోగిస్తారు. వారు "puedes" కి బదులుగా "podés" అని మరియు "eres" కి బదులుగా "sos" అని అంటారు. మోడల్ న్యూట్రల్ స్పానిష్ (neutral Spanish) ఉపయోగిస్తే, స్థానిక పాఠకులకు ఆ టెక్స్ట్ తప్పుగా అనిపిస్తుంది.
మొదట నేను మెరుగైన ప్రాంప్టింగ్ ప్రయత్నించాను. నేను మోడల్కు ఇలా చెప్పాను:
- Rioplatense Spanish ఉపయోగించండి.
- ఎప్పుడూ న్యూట్రల్ స్పానిష్ ఉపయోగించవద్దు.
- నిర్దిష్ట నిషేధిత పదాల జాబితాను (forbidden words list) ఉపయోగించండి.
- పంపే ముందు మీ సమాధానాన్ని మళ్ళీ చదవండి.
ఇది కొంతవరకు సహాయపడింది, కానీ అన్ని సమస్యలను పరిష్కరించలేదు. ఫార్మల్ న్యూస్ సోర్సెస్ మోడల్ను మళ్ళీ న్యూట్రల్ స్పానిష్ వైపు నెట్టేస్తున్నాయి. నేను ప్రాంప్ట్లో ఎంత ఎక్కువగా రాసినా, తప్పులు అలాగే కొనసాగుతున్నాయి.
నేను దీనిని ప్రాంప్టింగ్ సమస్యగా చూడటం మానేశాను. దీనిని వాలిడేషన్ (validation) సమస్యగా చూడటం ప్రారంభించాను.
టోన్ లేదా స్టైల్ వంటి కొన్ని విషయాలు సంభావ్యత (probabilistic) మీద ఆధారపడి ఉంటాయి. మరికొన్ని విషయాలు డిటర్మినిస్టిక్ (deterministic). ఒక టెక్స్ట్లో "puedes" ఉంటే, అది తప్పు. దానిని గుర్తించడానికి మీకు AI అవసరం లేదు. మీకు కావాల్సింది ఒక సింపుల్ కోడ్ మాత్రమే.
నేను ఒక పోస్ట్-ప్రాసెసింగ్ (post-processing) దశను జోడించాను. ఇది AI పని పూర్తి చేసిన తర్వాత రన్ అవుతుంది. ఇది నిర్దిష్ట పదాల కోసం వెతికి వాటిని మారుస్తుంది:
- puedes అనేది podés అవుతుంది
- tienes అనేది tenés అవుతుంది
- eres అనేది sos అవుతుంది
ఈ జాబితా చిన్నది మరియు సురక్షితమైనది. నేను మొత్తం స్పానిష్ భాషను సరిచేయడానికి ప్రయత్నించడం లేదు. కోడ్ ద్వారా ఖచ్చితంగా ధృవీకరించగలిగే నిబంధనలను మాత్రమే నేను సరిచేస్తున్నాను.
ఈ పాఠం స్పానిష్ భాష గురించి కాదు. ఇది ప్రాంప్ట్ ఇంజనీరింగ్ యొక్క పరిమితుల గురించి.
ప్రాంప్టింగ్ పనితీరును మెరుగుపరుస్తుంది, కానీ అది గ్యారెంటీలను ఇవ్వదు. ఒక నిబంధన స్థిరంగా మరియు పరీక్షించదగినదిగా (testable) ఉంటే, దానిని అమలు చేయడానికి కోడ్ను ఉపయోగించండి.
ఫ్లూయెంట్ టెక్స్ట్ను రూపొందించడానికి LLMలను ఉపయోగించండి. బ్రాండ్ పదాలు, రెగ్యులేటరీ పదజాలం మరియు ఫార్మాటింగ్ నిబంధనలను అమలు చేయడానికి డిటర్మినిస్టిక్ కోడ్ను ఉపయోగించండి.
నమ్మకమైన సిస్టమ్స్ బాధ్యతలను విభజిస్తాయి: • మోడల్ కంటెంట్ను రూపొందిస్తుంది. • కోడ్ కఠినమైన నిబంధనలను అమలు చేస్తుంది. • మనుషులు తుది ఎడిటోరియల్ నిర్ణయం తీసుకుంటారు.
Source: https://dev.to/zendev2112/prompts-arent-enough-enforcing-hard-constraints-on-llm-output-2hpo
Optional learning community: https://t.me/GyaanSetuAi