מדוע בינה מלאכותית ממשלתית נכשלת על חוקים אמיתיים שנקראים לאחור, לא רק על מומצאים, ומה למדתי בבניית שער החלטה דטרמיניסטי לכך.
Artificial IntelligenceGovernmentLegal

החוק היה אמיתי. התשובה עדיין הייתה בלתי חוקית.

Ashutosh SinghalAshutosh Singhal28 ביוני 202615 min

התשובה הראשונה שאי פעם ראיתי צ'אטבוט ממשלתי נותן בביטחון ובאופן שגוי הייתה על שובר Section 8.

בעל דירה שואל, במילים פשוטות, האם הוא רשאי לסרב לשוכר שישולם עבורו שכר דירה באמצעות שובר דיור. התשובה הנכונה היא לא. סירוב הוא אפליה על בסיס מקור הכנסה לפי NYC Admin. Code § 8-107(5), ונציבות זכויות האדם של העיר יכולה להטיל קנסות אזרחיים של עד $250,000 על הפרה מכוונת. זו אינה שאלת מלכודת. זהו דין מושרש. ובאוקטובר 2023, הבוט MyCity של העיר ניו יורק עצמה, שרץ על Azure AI, אמר לבעלי עסקים ולבעלי דירות את ההפך. The Markup תיעד זאת במרץ 2024: הבוט אמר שבעלי דירות יכולים לדחות מחזיקי שוברים, שחנויות יכולות לעבור להיות ללא מזומן, שמעסיקים יכולים לכייס חלק מהטיפים של עובדיהם. כל אחת מהתשובות האלה הייתה בלתי חוקית, וכל אחת מהן נשאה את חותם העיר על דומיין .gov.

לא בניתי את CivicCite כי מודל הזה. בניתי אותו בגלל התשובות שהיו כמעט נכונות, ואני רוצה לספר לכם על זו ששינתה את האופן שבו אני חושב על כל הבעיה. אם אתם רוצים לראות את הדבר עצמו, הוא חי כאן: veriprajna.com/he/demos/government-municipal-ai. הקורפוס הוא גרף הדגמה סינתטי-אך-נאמן, לא ייעוץ משפטי. אבל המנגנון אמיתי, והמנגנון הוא החלק ששווה להתווכח עליו.

הרגע שנשאר איתי לא היה הבוט ממציא חוק. זה היה לצפות בצנרת שלי עצמי מושכת את החוק הנכון ועדיין מנסחת את התשובה השגויה.

השבוע שבו ביליתי בהוספת אחזור לבעיה שאחזור אינו יכול לגעת בה

התחלתי בזה כמו שכמעט כל אחד ב-GovTech מתחיל, משוכנע שהתיקון לצ'אטבוט שקרן הוא אחזור טוב יותר. תנו למודל את הקוד העירוני האמיתי. עגנו כל תשובה בהוראה אמיתית. retrieval-augmented generation, התשובה הסטנדרטית לפחד הסטנדרטי — שהמודל ממציא דברים. זה סיפור נקי, הוא מדגים יפה, והאמנתי בו יותר זמן ממה שהיה עליי.

ואז קראתי את מספרי סטנפורד והם הרסו את הסיפור. Magesh ועמיתיו, במחקר מ-2025 שפורסם דרך JELS, מדדו את שני כלי המחקר המשפטי הייעודיים שעושים בדיוק את זה. Lexis+ AI הזה ב-17% מהשאילתות. מחקר בסיוע בינה מלאכותית של Westlaw הזה ב-33%. אלה אינם צ'אטבוטי צעצוע. אלה מערכות שמאחזרות תחילה את החוק ויוצרות שנית, שנבנו על ידי חברות שכל העסק שלהן הוא להיות צודקות לגבי החוק. בערך אחת מכל שלוש תשובות מהכלי השני עדיין הייתה שגויה. האחזור שיפר את הטיוטה. הוא לא הפך את התשובה לבטוחה לשחרור.

אני רוצה להיות כן לגבי איך זה הרגיש, כי בדיוק ביליתי שבוע בבניית אותה ארכיטקטורה ובהרגשת חכמות לגביה. הצנרת שלי פירקה את שאלת האזרח לתת-שאלות משפטיות אטומיות, אחזרה הוראות מועמדות מגרף קוד עירוני, והגבילה את המודל לנסח רק ממה שאחזר. בשאלת Section 8 הוא עשה הכול נכון עד הצעד האחרון. הוא מצא את § 8-107(5). החוק הנכון. הוא משך את הטקסט המדויק על מקור הכנסה חוקי. ואז ניסח משפט שקרא, למעשה, כן, אתה יכול לסרב לשובר.

החוק הנכון. התשובה השגויה. יושבים זה על גבי זה באותה טיוטה.

האחזור מוסר למודל את החוק הנכון. הוא אינו עושה דבר כדי למנוע מהמודל לקרוא את החוק הזה לאחור.

זה היה השבוע שבו הבעיה שינתה צורה עבורי. התייחסתי להזיה כאל האויב, והזיה אמיתית, אבל זה הכשל שאפשר לדמיין שתופסים. הכשל שבאמת שלח את תשובות MyCity עדין יותר וגרוע יותר: ההוראה הנכונה מצוטטת, המסקנה השגויה מנוסחת. אין פברוק בשום מקום במשפט. אין דבר שמסנן של "האם המצאת את זה" יכול לתפוס, כי שום דבר לא הומצא. רק קריאה שגויה בביטחון של חוק שישב בדיוק שם. מצב הכשל הזה בלתי נראה לאחזור, כי האחזור בודק רק שהחוק נוכח, לעולם לא שהמשפט קרא אותו בכיוון הנכון.

מה גרוע יותר, חוק מומצא או חוק אמיתי שנקרא לאחור?

חזרתי שוב ושוב לשאלה הזאת, והתשובה שלי נעשתה ודאית יותר ויותר. החוק המומצא הוא הכשל הבטוח יותר.

חשבו מה אזרח עושה עם כל אחד מהם. חוק מפוברק בבירור נשמע מוזר, מצטט סעיף קוד שאינו נפתר, מרגיש לא בסדר. חוק אמיתי שנקרא לאחור נשמע מושלם. יש לו ציטוט אמיתי. הסעיף קיים. בעל דירה קורא "כן, אתה יכול לסרב לשובר," רואה מספר קוד אמיתי מצורף, ופועל על פיו. עכשיו יש סירוב בלתי חוקי, שוכר עם תביעת אפליה, ומסלול נייר שמוביל חזרה לתשובה ממשלתית. נכונות הציטוט היא בדיוק מה שהופך את המסקנה השגויה למסוכנת. זהו האישור שעצה רעה רוכבת עליו פנימה.

אז הבדיקה שהכי אכפת לי ממנה מעולם לא הייתה "האם הציטוט הזה אמיתי." היא הייתה "האם הציטוט הזה באמת תומך במשפט הזה." בצנרת הבדיקה הזאת היא גרירה: בהינתן הטענה שנוסחה והטקסט המדויק של ההוראה המצוטטת, האם הטקסט גורר את הטענה, סותר אותה, או אף אחד מהם. בטיוטת Section 8, ה"כן" של המודל נתפס כסותר על ידי § 8-107(5), כי ההוראה אומרת במפורש את ההפך. הטיוטה מתה שם. מה ששורד, ומה שהשער משחרר בסופו של דבר, הוא הטענה המתוקנת: בעל דירה אינו רשאי לסרב, והנה החוק שאומר זאת.

שלב Verify נפתח לבדיקה, מציג את הקלט הגולמי שלו, הטענה שנוסחה על שוברי Section 8 ומזהה הציטוט nyc-admin-8-107-5, ואת הפלט הגולמי שלו, תווית הגרירה entailed עם טקסט ההוראה המצוטט כסיבה.
כל שלב נפתח. זהו Verify, מציג את הטענה שנוסחה, את הטקסט הסטטוטורי המדויק שנבדקה מולו, ואת תווית הגרירה entailed. האם החוק שצוטט באמת תומך במשפט הוא דבר שאתם יכולים לקרוא, לא ציון שאתם חייבים לקחת באמונה.

הדבר שעמדתי עליו, והסיבה שהמסך הזה קיים, הוא שגרירה אינה קופסה שחורה שצריך להאמין לה. אפשר לפתוח את שלב Verify ולקרוא את הקלט והפלט הגולמיים שלו: הטענה שנוסחה, הטקסט הסטטוטורי שנבדקה מולו, התווית, והסיבה במילות ההוראה עצמה. פסק דין שאי אפשר לבדוק אינו אימות. זו חוות דעת שנייה עם ערכי הפקה טובים יותר. כבר למדתי, בדרך היקרה, שלבקש ממודל אחד לשפוט מודל אחר פשוט נותן לכם שני מודלים שמסכימים, וזה דבר חלש יותר ממה שהוא נראה.

המהלך שבסוף עבד היה להפסיק לנסות להפוך את המודל לאמין

אני זוכר את המסגור מחדש המדויק, כי זה הרגיש כמו ויתור והתברר ככל העיצוב. הפסקתי לנסות להפוך את המודל לאמין והתחלתי להפוך את האמינות שלו לבלתי רלוונטית.

המעבר הוא זה. מודל השפה ב-CivicCite הוא יועץ. הוא מפרק את השאלה, הוא מנסח תשובת מועמד, הוא מציע חוות דעת גרירה. הוא לעולם אינו מקבל לשחרר דבר. מחוץ למסגרת הסוכן, בפייתון דטרמיניסטי פשוט, יושב דבר שאני קורא לו שער ההחלטה הסטטוטורי, והוא משחרר תת-תשובה רק כאשר ארבעה תנאים מתקיימים יחד: הציטוט קיים, ההוראה בתוקף, הטקסט המצוטט גורר את הטענה, ושום דבר אינו מתנגש איתה. חסר אחד מהם והתשובה אינה יוצאת. שתיים מהבדיקות האלה הן חשבון ולוגיקה טהורים. בתוקף הוא השוואת תאריכים: להוראה אין תאריך ביטול ותאריך התוקף שלה הוא בתאריך הייחוס או לפניו. התנגשות היא קריאת גרף. אין הנחיה, אין טמפרטורה, אין שכנוע.

מסך מפוצל של CivicCite. העוזר הפשוט משמאל משחרר תשובה המסומנת ללא בסיס סטטוטורי, ללא בדיקת גרירה, ללא בדיקת עדכניות, שוחררה כמו שהיא, בעוד צד CivicCite מציג את שער ההחלטה הסטטוטורי קורא RELEASED, אחד שוחרר ואפס הוחזקו, עם התשובה נושאת NYC Admin. Code § 8-107(5) מסומן מקור מאומת, בתוקף.
השער קורא RELEASED, אחד שוחרר ואפס הוחזקו. התשובה יוצאת רק כי היא נושאת NYC Admin. Code § 8-107(5), מסומן מקור מאומת, בתוקף. העוזר הפשוט משמאל שחרר את תשובתו כמו שהיא, ללא בסיס סטטוטורי וללא בדיקות.

אני חוזר על שני משפטים ללא הרף עכשיו. אחד הוא הסוכנים מייעצים, השער מחליט. השני הוא ש-LLM אינו יכול להצביע את עצמו מעבר לשער, לא משנה כמה בטוחה הטיוטה שלו. זה חשוב יותר ממה שנשמע, כי הכשל המפתה בכל התחום הזה הוא לתת למודל לדרג את העבודה של עצמו ולקרוא לציון "אימות." מודל שמנסח את התשובה אינו יכול להיות הדבר שמאשר שהתשובה בטוחה. השער מכוון להיות טיפש יותר מהמודל ומכוון להיות מחוצה לו, וזו כל הנקודה. האינטליגנציה מציעה. הקוד מכריע.

המודל הוא כותב טוב ושופט גרוע. אז אני נותן לו לכתוב, ולעולם לא נותן לו לשפוט.

הדמו כן לגבי הקצוות שלו, וגם אני אהיה. הקורפוס הוא גרף סינתטי-אך-נאמן של קוד עירוני, מנוסח מחדש מהוראות אמיתיות, לא מקור רשמי. ניתוב ההסלמה ל-311 מחושב ומוצג, אבל המחבר למערכת תיקים אמיתית הוא מדומה. הניסוח המוגבל משתמש במאמת רשימת היתר ובבקשה חוזרת אחת במקום פענוח ברמת טוקן לייצור. מה שאמיתי הוא לוגיקת ההחלטה, ולוגיקת ההחלטה היא המוצר.

מדוע אני סומך על שתיקה יותר מאשר על תשובה טובה

לא ציפיתי להתגאות בכך שהדמו מסרב לענות, ועכשיו זה הדבר האהוב עליי שהוא עושה. הדוגמה הברורה ביותר היא משאית אוכל.

מוכר שואל האם הוא יכול להשאיר את המשאית שלו חונה במקום עם מד חניה כל היום לפי כלל החניה הכללי למוכרים. העוזר הפשוט עונה בעליזות ובאופן שגוי, מצטט כלל כאילו הוא חי. CivicCite מנסח מועמד גם הוא, והמועמד מצטט הוראת חניה שבוטלה. אז רצה בדיקת העדכניות. להוראה יש תאריך ביטול. בתוקף נכשל. ובמקום ליפול חזרה לכלל סמוך ולבלף, השער מחזיק את התשובה, מסמן את השאלה כמחוץ לכיסוי מאומת, ומנתב אותה למחלקה חיה עם הממצאים החלקיים מצורפים.

CivicCite מחזיק תשובה לשאלת חניה עם מד של משאית אוכל. ההודעה אומרת שההוראה היחידה העוסקת בחניית מוכרים כלליים במקומות עם מד בוטלה ואין הוראה שבתוקף כעת ששולטת בכך. ארבע הבדיקות מראות שציטוט קיים, בתוקף וגוררת כולן נכשלות, וללא-התנגשות עוברת, והשאלה מנותבת לקליטה הכללית של NYC 311.
אי-התשובה הכנה. ההוראה היחידה המכסה את שאלת החניה הזאת בוטלה, ולכן בתוקף נכשל, שום דבר במערך שאוחזר אינו שולט, והשער מחזיק ומנתב את השאלה לקליטה הכללית של NYC 311 במקום לבלף תשובה.
תשובה שגויה בדומיין ממשלתי אינה מבוכה. היא אחריות משפטית עם שם העיר עליה.

הביטו במה שהמסך הזה מסרב לעשות. הוא אינו מסנתז תשובה סבירה מחוק מת. הוא אומר, בשפה פשוטה, שההוראה היחידה העוסקת בזה בוטלה ושום דבר שבתוקף כעת אינו שולט בשאלה, והוא מעביר את האזרח הלאה במקום לנחש. הימנעות כנה מנצחת תשובה שגויה בביטחון, במיוחד בממשל. ובממשל הסיכונים אינם מוניטיניים. ייעוץ משפטי ממשלתי יושב באזור התפקיד הקנייני, מה שאומר שאין מגן חסינות ריבונית להתחבא מאחוריו כשהתשובה מתבררת כשגויה.

זו אינה עוד דאגה היפותטית, וזה חלק מהסיבה שבניתי את הדבר עכשיו במקום מאוחר יותר. היו 78 הצעות חוק הקשורות לצ'אטבוטים ב-27 מדינות ב-2026. S7263 של ניו יורק הגיעה למליאת הסנאט ב-26 בפברואר 2026. חובות הסיכון הגבוה של Annex III ב-EU AI Act נכנסות לאכיפה ב-2 באוגוסט 2026, עם קנסות של עד €15M או 3% מהמחזור העולמי. השאלה הרגולטורית עוברת מ"האם הבינה המלאכותית שלכם מועילה" ל"האם אתם יכולים להוכיח שהבינה המלאכותית שלכם הורשתה לומר זאת." שתיקה שניתן להגן עליה. תשובה שגויה בביטחון — לא.

המספר שרגולטור יכול באמת לפעול עליו

נהגתי לחשוב שהמדד הכותרתי למערכת כזאת הוא שיעור הזיה, ועכשיו אני חושב שהאינסטינקט הזה הפוך בדיוק. אחוז הוא הדבר הלא נכון למסור לרגולטור.

דמיינו שאתם מחלקת המשפטים של העיר, המשרד שמחזיק באחריות כשתשובה משתבשת. "הצ'אטבוט שלנו מזה רק 4% מהזמן" אינו מרגיע. זהו הודאה שארבעה מתוך מאה אזרחים מקבלים תשובה עם סמכות העיר מאחוריה ושום דבר לא עומד מאחורי התשובה. המספר שמשמעותו משהו אינו על כמה פעמים המודל טועה. הוא על האם משהו לא מאומת אי פעם הורשה לצאת מהדלת. אז המדד שבניתי את הבנצ'מארק סביבו הוא זה: על סט זהב קבוע ומתויג של 12 שאילתות, שרץ דרך הצנרת האמיתית, ספירת התשובות ששוחררו ללא בסיס סטטוטורי מאומת ובתוקף. היעד הוא אפס מתוך שתים-עשרה.

שיעור הזיה אומר לרגולטור כמה פעמים נכשלתם. הוא אינו יכול לומר להם שתפסתם זאת.
תצוגת בנצ'מארק סט הזהב עם שלושה אריחים. אפס מתוך 12 תשובות שוחררו ללא בסיס סטטוטורי מאומת ובתוקף עם יעד של אפס, כיסוי רשומת ביקורת של 100 אחוז, והסכמת דיספוזיציה של 100 אחוז עם אמת הקרקע, מעל רשימת שתים-עשרה השאילתות המתויגות שרצות דרך הצנרת.
סט הזהב של 12 שאילתות רץ דרך הצנרת האמיתית. יעד אפס תשובות ששוחררו ללא בסיס מאומת ובתוקף, רשומה אחת שניתן להגיש לכל שאילתה, והסכמת דיספוזיציה עם אמת הקרקע המתויגת. זהו סט מתויג קבוע, לא הבטחה לעולם פתוח.

אני רוצה להיות מדויק לגבי מה שהמספר הזה הוא ומה שאינו, כי הערכת יתר שלו הייתה בוגדת בכל ההנחה. זהו תוצאה על סט מתויג קבוע, לא ערבות לעולם פתוח ולא "אפס הזיה," ביטוי שלדעתי אף אדם ישר לא צריך למכור. המודל עדיין מנסח טענות לא מושלמות. הנקודה היא שהלא מאומתות מוחזקות, לא שהן לעולם לא מנוסחות. לצד המספר הזה יושבים עוד שניים: כיסוי רשומת ביקורת של 100%, כלומר רשומה אחת שניתן להגיש לכל שאילתה בין אם היא יוצאת או מסרבת, והסכמת דיספוזיציה עם אמת הקרקע המתויגת. קו הבסיס של plain-RAG, ארכיטקטורת MyCity ללא שער, היה משחרר את התשובות הבלתי חוקיות המתועדות על אותו סט. ההשוואה הזאת היא הקשר, לא הכותרת.

הרשומה היא החלק שהייתי מגן עליו הכי קשה.

מגירת רשומת ההחלטה הסטטוטורית מציגה JSON. מאמת veriprajna-civiccite גרסה 0.1, דיספוזיציה RELEASED, רשימת תקנים המציינת רישום NIST AI RMF Govern ו-Measure וניטור רציף של FedRAMP StateRAMP, ותת-תשובה לדומיין הדיור המצטטת NYC Admin. Code § 8-107(5) עם בדיקות ציטוט קיים, בתוקף, גוררת וללא התנגשות כולן אמת, החלטה RELEASE.
הרשומה שנכתבה לשאילתה הזאת. דיספוזיציה RELEASED, הציטוט, כל ארבע הבדיקות, וההחלטה, כ-JSON. היא מציינת רישום NIST AI RMF וניטור רציף של FedRAMP StateRAMP כתקנים שהיא בנויה לקראתם. כל שאילתה מקבלת אחת מאלה, בין אם התשובה יוצאת ובין אם לא.

כל שאילתה, ששוחררה או סורבה, מייצרת רשומת החלטה סטטוטורית: הדיספוזיציה, הציטוט, כל ארבע תוצאות הבדיקה, ההחלטה, כנתונים מובנים שניתן להגיש ולהריץ מחדש. היא מציינת רישום NIST AI RMF וניטור רציף של FedRAMP ו-StateRAMP כתקנים שהיא בנויה לקראתם. אני זהיר עם המשפט הזה. בנויה לקראתם הוא כיוון, לא הסמכה, ולא אטען ש-CivicCite מוסמך מול אף אחד מהם. אבל מבקר אינו רוצה הבטחה שהמודל חכם. מבקר רוצה רשומה, לכל אינטראקציה, שמראה בדיוק מדוע תשובה הורשתה להתקיים, בצורה ששורדת מישהו שמנסה לשבור אותה. יכולת השחזור היא מה שהופכת החלטה לראיה, וראיה היא מה שרגולטור יכול לפעול על פיה.

ואם הייתם מעדיפים לצפות בזה מאשר לקרוא אותי מתאר, הנה כל הדמו רץ מקצה לקצה.

השאלה שנשארתי איתה

אני חוזר למשהו שהפתיע אותי בתגובה שלי עצמי. בפעם הראשונה שראיתי את CivicCite מסרב לשאלה ומנתב אותה למחלקה, חלק ממני קרא לזה כשל של המערכת.

זה לא היה כשל. זה עשה את הדבר האחד שבוטים בטוחים אינם יכולים לעשות, שהוא לדעת את קצה מה שהוא יכול להוכיח ולעצור שם. ביליתי כל כך הרבה זמן באופטימיזציה לתשובה טובה שבהנחה בשקט הנחתי שתשובה טובה היא המטרה. זה לא. בממשל, המטרה היא תשובה שניתן להגן עליה, והמרחק בין שני הביטויים האלה הוא כל הסיבה לקיום המוצר הזה. תשובה שניתן להגן עליה נראית לפעמים כמו ציטוט משוחרר. באותה מידה לעיתים קרובות היא נראית כמו שאלה שנותבה ורשומה שהוגשה.

אז השאלה שהייתי משאיר עם כל מי שבונה בינה מלאכותית לממשלה, או קונה אותה, אינה "כמה מדויק המודל שלכם." מודלים טובים יותר ימשיכו להשתפר בכתיבת תשובות רהוטות ושגויות-בהקשר, כי רהיטות מעולם לא הייתה החלק החסר. השאלה שאני שואל לפני שמשהו יוצא מהשער צרה וקשה יותר. האם אתם יכולים להוכיח, ממש עכשיו, שהתשובה המדויקת הזאת מתחקה לחוק שקיים ושהוא כעת בתוקף, והאם ההוכחה הזאת תשרוד בית משפט שרצה שהיא תיכשל? אם התשובה היא לא, לא משנה כמה טוב המודל. המערכת צריכה להישאר בשתיקה. אפשר לצפות בה מחליטה, כך או כך, כאן: veriprajna.com/he/demos/government-municipal-ai.

אמון אינו שייך למודל שצריך להאמין לו. הוא שייך לקוד שניתן לבקר.

מחקר קשור

פורסם גם ב

בנו את ה-AI שלכם בביטחון.

שותפו עם צוות בעל ניסיון עמוק בבניית הדור הבא של AI ארגוני. אנו נסייע לכם לתכנן, לבנות ולהטמיע אסטרטגיית AI שתוכלו לסמוך עליה.

Veriprajna ייעוץ דיפ-טק מתמחה בבניית מערכות AI קריטיות לבטיחות עבור תחומי הבריאות, הפיננסים והרגולציה. הארכיטקטורות שלנו מאומתות מול פרוטוקולים מבוססים ומלוות בתיעוד ציות מקיף.