ನಾನು ಹತ್ತು ಸಣ್ಣ Solidity ಕಾಂಟ್ರಾಕ್ಟ್ಗಳಲ್ಲಿ ಸ್ಥಳೀಯ ಮಾಡೆಲ್ಗಳನ್ನು ಪರೀಕ್ಷಿಸಿದೆ, ಅದರಲ್ಲಿ ಈ ಕೆಳಗಿನಂತಹ ದೋಷಗಳನ್ನು (bugs) ಸೇರಿಸಿದ್ದೆ:
- withdraw ಫಂಕ್ಷನ್ಗಳಲ್ಲಿ Reentrancy
- Access modifiersಗಳ ಕೊರತೆ
- ERC4626 ರೌಂಡಿಂಗ್ ದೋಷಗಳು (rounding errors)
- ತಪ್ಪಾದ signature ಪರಿಶೀಲನೆಗಳು
- ಸೂಕ್ಷ್ಮ ತರ್ಕದ ದೋಷಗಳು (subtle logic bugs)
ನಾನು WSL2 ನಲ್ಲಿ Ollama ಮೂಲಕ 7B (ಅಥವಾ ಅದಕ್ಕಿಂತ ಚಿಕ್ಕದಾದ) ಮಾಡೆಲ್ಗಳಲ್ಲಿ Qwen2.5-Coder ಮತ್ತು DeepSeek-Coder ಅನ್ನು ಹೋಲಿಕೆ ಮಾಡಿದೆ. ನೀವು 33B ಮಾಡೆಲ್ಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಇದನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ.
ಪ್ರತಿ ಕಾಂಟ್ರಾಕ್ಟ್ಗಾಗಿ ನಾನು ಮೂರು ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ನೀಡಿದೆ:
- ಸಾಮಾನ್ಯ ಭದ್ರತಾ ವಿಮರ್ಶೆ (general security review)
- reentrancy ಮತ್ತು access control ಗಾಗಿ ನಿರ್ದಿಷ್ಟ ಪರಿಶೀಲನೆ
- ತೀವ್ರತೆಯ ಟ್ಯಾಗ್ಗಳೊಂದಿಗೆ (severity tags) ಒಂದು ರಚನಾತ್ಮಕ ವರದಿ
Instruction Following
ಇಲ್ಲಿ Qwen 7B ಗೆ ಜಯ ಸಿಕ್ಕಿದೆ. ಇದು ಬಹುತೇಕ ಪ್ರತಿ ಬಾರಿಯೂ ಕಟ್ಟುನಿಟ್ಟಾದ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ನಿಯಮಗಳನ್ನು ಪಾಲಿಸುತ್ತದೆ. DeepSeek ಹೆಚ್ಚಾಗಿ ಹೆಚ್ಚಿನ ಪಠ್ಯವನ್ನು ಸೇರಿಸುತ್ತದೆ ಅಥವಾ ಮಿತಿಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ. ನೀವು ಮಾಡೆಲ್ನ ಔಟ್ಪುಟ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತ ಪೈಪ್ಲೈನ್ಗೆ (automated pipeline) ನೀಡಿದಾಗ, Qwen ನ ಸ್ಥಿರತೆ ಬಹಳ ಮುಖ್ಯವಾಗುತ್ತದೆ—ಪಾರ್ಸಿಂಗ್ ವೈಫಲ್ಯವು (parsing-fail) ಪ್ರಯೋಜನಕಾರಿಯಲ್ಲ.
Targeted Checks
Qwen ವಿಷಯಕ್ಕೆ ಬದ್ಧವಾಗಿರುತ್ತದೆ. ನೀವು ಅದರ ಬಗ್ಗೆ reentrancy ಬಗ್ಗೆ ಕೇಳಿದರೆ, ಅದು reentrancy ಬಗ್ಗೆಯೇ ಉತ್ತರಿಸುತ್ತದೆ. DeepSeek ಗ್ಯಾಸ್ ಆಪ್ಟಿಮೈಸೇಶನ್ (gas optimization) ಅಥವಾ ಸ್ಟೈಲ್ ನೋಟ್ಸ್ಗಳತ್ತ ಗಮನ ಹರಿಸುತ್ತಾ, ಅನಗತ್ಯ ಮಾಹಿತಿಯನ್ನು (noise) ಸೇರಿಸುತ್ತದೆ.
Explanation Quality
Qwen ದಾಳಿಗಳ ಕ್ರಮವನ್ನು (attack sequences) ಸ್ಪಷ್ಟವಾಗಿ ವಿವರಿಸುತ್ತದೆ, ಅಂದರೆ ಎಕ್ಸ್ಪ್ಲಾಯ್ಟ್ (exploit) ಹೇಗೆ ನಡೆಯುತ್ತದೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. DeepSeek ಸಾಮಾನ್ಯ ಪಠ್ಯಪುಸ್ತಕದ ಉತ್ತರಗಳನ್ನು ನೀಡುತ್ತದೆ. ಎರಡೂ ಸರಿಯಾಗಿವೆ, ಆದರೆ Qwen ನ ವಿವರಣೆಯು ವರದಿ ಬರೆಯಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
Skepticism and Hallucination
DeepSeek ಹೆಚ್ಚು ಸಮಸ್ಯೆಗಳನ್ನು ಗುರುತಿಸುತ್ತದೆ, ಇದು "ಸಂಶಯದ ಜನರೇಟರ್" (suspicion generator) ನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ಸ್ವಚ್ಛವಾದ ಕೋಡ್ನಲ್ಲಿಯೂ ಸಮಸ್ಯೆಗಳನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳುತ್ತದೆ.
ಇದಕ್ಕೆ ವ್ಯತಿರಿಕ್ತವಾಗಿ, ಕೋಡ್ನಲ್ಲಿ ದೋಷಗಳಿದ್ದಾಗ Qwen ಸುಮ್ಮನಿರುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, DeepSeek ಇಲ್ಲದ ದೋಷಗಳ ಬಗ್ಗೆ ಹೇಳಿಕೆ ನೀಡುತ್ತದೆ.
ತಪ್ಪು ಎಚ್ಚರಿಕೆ ನೀಡಿದರೆ ನಿಮಿಷಗಳ ಸಮಯ ವ್ಯರ್ಥವಾಗುತ್ತದೆ; ಆದರೆ ಒಂದು ದೋಷವನ್ನು ತಪ್ಪಿಸಿಕೊಂಡರೆ ಎಲ್ಲವನ್ನೂ ಕಳೆದುಕೊಳ್ಳಬಹುದು. ನಾನು ತನಿಖೆ ಮಾಡಬೇಕಾದ ವಿಷಯಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು DeepSeek ಅನ್ನು ಬಳಸುತ್ತೇನೆ, ಆದರೆ ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು (automation) Qwen ಅನ್ನು ನಂಬುತ್ತೇನೆ.
My Final Verdict
ಬ್ರ್ಯಾಂಡ್ ಗಿಂತ ಮಾಡೆಲ್ ಗಾತ್ರ ಮುಖ್ಯವಾಗುತ್ತದೆ. 1.5B ಮಾಡೆಲ್ ಮಲ್ಟಿ-ಸ್ಟೆಪ್ ದೋಷಗಳನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಅಥವಾ ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ.
7B ಮಟ್ಟದಲ್ಲಿ, ಎರಡೂ ಮೂಲಭೂತ ದೋಷಗಳನ್ನು ನಿಭಾಯಿಸುತ್ತವೆ, ಆದರೂ ಸಂಕೀರ್ಣ ವ್ಯವಹಾರ ತರ್ಕಕ್ಕಾಗಿ (complex business logic) ಇವುಗಳಲ್ಲಿ ಯಾವುದೂ ಮಾನವ ಆಡಿಟರ್ಗೆ ಪರ್ಯಾಯವಲ್ಲ. ಇವುಗಳನ್ನು ಆಡಿಟರ್ಗಳಿಗಿಂತ ಹೆಚ್ಚಾಗಿ ಟ್ರೈಯೇಜ್ ಅಸಿಸ್ಟೆಂಟ್ಸ್ (triage assistants) ಎಂದು ಪರಿಗಣಿಸಿ.
ನನ್ನ ಸೆಟಪ್:
- Qwen 7B: ರಚನಾತ್ಮಕ ವಿಮರ್ಶೆಗಳು ಮತ್ತು ಪೈಪ್ಲೈನ್ಗಳಿಗಾಗಿ ಡಿಫಾಲ್ಟ್.
- DeepSeek: Qwen ತಪ್ಪಿಸಿಕೊಳ್ಳುವ ವಿಷಯಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಎರಡನೇ ಅಭಿಪ್ರಾಯ (second opinion).
- Qwen 1.5B: ವೇಗವಾದ, ಕಡಿಮೆ ಪ್ರಾಮುಖ್ಯತೆಯ ಫಿಲ್ಟರಿಂಗ್ ಮಾತ್ರ.
ನಿಮ್ಮ ಹಾರ್ಡ್ವೇರ್ ಯಾವ ದೊಡ್ಡ ಮಾಡೆಲ್ ಅನ್ನು ಚಲಾಯಿಸಬಲ್ಲದೋ ಅದನ್ನು ಖರೀದಿಸಿ. ನಂತರ ಬ್ರ್ಯಾಂಡ್ ಬಗ್ಗೆ ಚಿಂತಿಸಿ.
ನೀವು ಸಂಶಯಾಸ್ಪದವಾದ ಮಾಡೆಲ್ ಅನ್ನು ಇಷ್ಟಪಡುತ್ತೀರಾ ಅಥವಾ ನಿಖರವಾದ ಮಾಡೆಲ್ ಅನ್ನು ಇಷ್ಟಪಡುತ್ತೀರಾ?
Optional learning community: https://t.me/GyaanSetuAi
