நான் பத்து சிறிய Solidity ஒப்பந்தங்களில் (contracts) உள்ளூர் மாதிரிகளை (local models) சோதித்தேன், அதில் பின்வரும் பிழைகளைச் சேர்த்திருந்தேன்:
- withdraw செயல்பாடுகளில் Reentrancy பிழைகள்
- விடுபட்ட access modifiers
- ERC4626 உருட்டல் பிழைகள் (rounding errors)
- தவறான கையொப்பச் சரிபார்ப்புகள் (signature checks)
- நுட்பமான தர்க்கப் பிழைகள் (logic bugs)
நான் WSL2-இல் Ollama மூலம் 7B (அல்லது அதற்கும் குறைவான) மாதிரிகளில் Qwen2.5-Coder மற்றும் DeepSeek-Coder ஆகியவற்றை ஒப்பிட்டுச் சோதித்தேன். நீங்கள் 33B மாதிரிகளைப் பயன்படுத்தினால், இதைத் தவிர்க்கவும்.
ஒவ்வொரு ஒப்பந்தத்திற்கும் நான் மூன்று தூண்டுதல்களை (prompts) வழங்கினேன்:
- ஒரு பொதுவான பாதுகாப்பு ஆய்வு (security review)
- reentrancy மற்றும் access control ஆகியவற்றிற்கான இலக்குச் சரிபார்ப்பு
- தீவிரத்தன்மை குறியீடுகளுடன் (severity tags) கூடிய ஒரு கட்டமைக்கப்பட்ட அறிக்கை
அறிவுறுத்தல்களைப் பின்பற்றுதல் (Instruction Following)
இதில் Qwen 7B வெற்றி பெறுகிறது. இது கிட்டத்தட்ட ஒவ்வொரு முறையும் கடுமையான வடிவமைப்புக் விதிகளுக்குக் கீழ்ப்படிகிறது. DeepSeek பெரும்பாலும் கூடுதல் உரையைச் சேர்க்கிறது அல்லது வரம்புகளைப் புறக்கணிக்கிறது. மாதிரியின் வெளியீட்டை (model output) ஒரு தானியங்கி குழாயில் (automated pipeline) பயன்படுத்தும்போது, Qwen-ன் நிலைத்தன்மை முக்கியமானது—parsing தோல்வியடைந்தால் அது பயனற்றது.
இலக்குச் சரிபார்ப்புகள் (Targeted Checks)
Qwen தலைப்பிலிருந்து விலகுவதில்லை. அதனிடம் reentrancy பற்றி கேட்டால், அது reentrancy பற்றியே பதிலளிக்கும். DeepSeek, gas optimization அல்லது பாணி குறிப்புகளுக்குள் (style notes) சென்று தேவையற்ற தகவல்களைச் சேர்க்கிறது.
விளக்கத்தின் தரம் (Explanation Quality)
Qwen தாக்குதல் வரிசைகளை (attack sequences) தெளிவாக விளக்குகிறது, ஒரு சுரண்டல் (exploit) எவ்வாறு நிகழ்கிறது என்பதைக் காட்டுகிறது. DeepSeek பொதுவான பாடப்புத்தக பதில்களை வழங்குகிறது. இரண்டும் சரியானவைதான், ஆனால் Qwen-ன் விரிவான தகவல்கள் அறிக்கை எழுத உதவுகின்றன.
சந்தேகம் மற்றும் மாயத்தோற்றம் (Skepticism and Hallucination)
DeepSeek அதிக சிக்கல்களைக் கண்டறிகிறது, ஒரு "சந்தேகத் தயாரிப்பாளர்" (suspicion generator) போலச் செயல்படுகிறது. இது சுத்தமான குறியீட்டிலும் (clean code) சிக்கல்களைத் தானாகவே உருவாக்குகிறது.
இதற்கு நேர்மாறாக, குறியீடு பிழையாக இருக்கும்போது Qwen அமைதியாக இருக்கிறது. மறுபுறம், DeepSeek இல்லாத பிழைகளை இருப்பதாகக் கூறுகிறது.
ஒரு தவறான எச்சரிக்கை சில நிமிடங்களை வீணடிக்கும்; ஆனால் ஒரு பிழையைக் கவனிக்கத் தவறினால் அனைத்தும் பறிபோகலாம். ஆய்வு செய்ய வேண்டிய விஷயங்களைக் கண்டறிய நான் DeepSeek-ஐப் பயன்படுத்துகிறேன், ஆனால் தானியங்கி பணிகளுக்கு (automation) Qwen-ஐ நம்பியிருக்கிறேன்.
எனது இறுதித் தீர்ப்பு (My Final Verdict)
பிராண்டை விட மாதிரியின் அளவு (Model size) முக்கியமானது. ஒரு 1.5B மாதிரி பல படிநிலைகளைக் கொண்ட பிழைகளை ஆராயவோ அல்லது வடிவமைப்பைப் பின்பற்றவோ முடியாது.
7B அளவில், இரண்டுமே அடிப்படைப் பிழைகளைக் கையாளுகின்றன, இருப்பினும் சிக்கலான வணிகத் தர்க்கங்களுக்கு (business logic) மனிதத் தணிக்கையாளருக்கு (human auditor) இவை மாற்றாக முடியாது. இவற்றைத் தணிக்கையாளர்களாகப் பார்க்காமல், முதலுதவி உதவியாளர்களாக (triage assistants) கருதவும்.
எனது அமைப்பு (My setup):
- Qwen 7B: கட்டமைக்கப்பட்ட ஆய்வுகள் மற்றும் குழாய்களுக்கு (pipelines) இயல்பானத் தேர்வு.
- DeepSeek: Qwen தவறவிடுவதைக் கண்டறிய இரண்டாவது கருத்து (Second opinion).
- Qwen 1.5B: வேகமான, குறைந்த முக்கியத்துவம் வாய்ந்த வடிகட்டுதலுக்கு (filtering) மட்டும்.
உங்கள் வன்பொருள் (hardware) இயக்கும் மிகப்பெரிய மாதிரியை வாங்கவும். அதன் பிறகு பிராண்டைப் பற்றி கவலைப்படலாம்.
நீங்கள் சந்தேகப்படும் மாதிரியை விரும்புகிறீர்களா அல்லது துல்லியமான மாதிரியை விரும்புகிறீர்களா?
Optional learning community: https://t.me/GyaanSetuAi
