בדקתי מודלים מקומיים על עשרה חוזי Solidity קטנים, כשהשתלתי בהם באגים כגון:
- Reentrancy בפונקציות withdraw
- חוסר ב-access modifiers
- שגיאות עיגול ב-ERC4626
- בדיקות חתימה שגויות
- באגים לוגיים עדינים
הרצתי את Qwen2.5-Coder מול DeepSeek-Coder על מודלים של 7B (או קטנים יותר) דרך Ollama ב-WSL2. אם אתם משתמשים במודלים של 33B, התעלמו מזה.
עבור כל חוזה הנפקתי שלושה פרומפטים:
- סקירת אבטחה כללית
- בדיקה ממוקדת ל-reentrancy ובקרת גישה (access control)
- דוח מובנה עם תגי חומרה (severity tags)
עמידה בהוראות
Qwen 7B מנצח כאן. הוא מציית לכללי פורמט מחמירים כמעט בכל פעם. DeepSeek מוסיף לעיתים קרובות טקסט נוסף או מתעלם ממגבלות. כשמזינים את פלט המודל לתוך pipeline אוטומטי, העקביות של Qwen היא קריטית — כישלון בניתוח (parsing-fail) הוא חסר תועלת.
בדיקות ממוקדות
Qwen נשאר בנושא. תשאלו אותו על reentrancy והוא יענה על reentrancy. DeepSeek נודד לנושאים של אופטימיזציית gas או הערות סגנון, מה שמוסיף רעש.
איכות ההסברים
Qwen מפרט רצפי התקפה בצורה ברורה, ומראה כיצד מתרחש exploit. DeepSeek מציע תשובות כלליות של ספר לימוד. שתיהן נכונות, אך הפירוט של Qwen עוזר בכתיבת דוחות.
ספקנות והזיות (Hallucination)
DeepSeek מסמן יותר בעיות, ומתנהג כמו "מחולל חשדנות". הוא גם ממציא בעיות בקוד נקי.
Qwen, לעומת זאת, שותק כאשר הקוד תקין. DeepSeek, מצד שני, טוען שיש באגים שאינם קיימים.
אזעקה שווא עולה דקות; באג שהוחמץ יכול לעלות הכל. אני נשען על DeepSeek כדי להעלות דברים לבדיקה, אך אני מסתמך על Qwen לצורך אוטומציה.
השורה התחתונה שלי
גודל המודל חשוב יותר מהמותג. מודל של 1.5B לא יכול לבצע הסקה (reasoning) לגבי באגים רב-שלביים או לשמור על פורמט.
ב-7B, שניהם מטפלים בפגמים בסיסיים, אך אף אחד מהם אינו מחליף מבקר (auditor) אנושי עבור לוגיקה עסקית מורכבת. חשבו עליהם כעוזרי מיון (triage), לא כמבקרים.
ההגדרה שלי:
- Qwen 7B: ברירת מחדל לסקירות מובנות ו-pipelines.
- DeepSeek: דעה שנייה כדי לתפוס את מה ש-Qwen מפספס.
- Qwen 1.5B: סינון מהיר ובעל סיכון נמוך בלבד.
קנו את המודל הגדול ביותר שהחומרה שלכם יכולה להריץ. רק אז דאגו למותג.
האם אתם מעדיפים מודל שהוא חשדן או מודל שהוא מדויק?
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi
