חזרה
האם gzip יכול להיות מודל שפה? מחולל טקסט מבוסס DEFLATE
SiTech AI Team2 წთ. საკითხავი

האם gzip יכול להיות מודל שפה? מחולל טקסט מבוסס DEFLATE

פוסט ב-nathan.rs בוחן אם כלי הדחיסה gzip יכול לייצר טקסט. הניסוי gzipt משתמש בחיפוש קרני על פני רצפי בייטים דחוסים — בלי רשת עצבית ובלי אימון.

פוסט בבלוג שפורסם ב-nathan.rs שואל שאלה שנשמעת כמו בדיחה: האם gzip, כלי הדחיסה שמגיע עם כמעט כל מערכת הפעלה, יכול לעבוד כמודל שפה? המחבר בנה את gzipt, ניסוי קטן שמייצר טקסט בעזרת הדחיסה בלבד — בלי רשת עצבית ובלי פרמטרים נלמדים.

דחיסה היא חיזוי

נקודת המוצא היא מאמר בשם "Language Modeling is Compression" (arXiv 2309.10668), שמנסח את שקילות הדחיסה והחיזוי: כל מודל חיזוי הוא מעצם טבעו מדחס, וכל אלגוריתם דחיסה הוא מודל חיזוי. האינטואיציה מגיעה מתורת האינפורמציה: קידוד של סימן דורש 2−log p ביטים, כאשר p הוא ההסתברות שהמודל מייחס לו. הסתברות גבוהה משמעה קוד קצר.

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

מניקוד ליצירה

ניקוד אינו יצירה. בחירת הבייט הבודד שנדחס היטב נכשלת, משום ש-gzip מחזיר מספר שלם של בייטים, בלי שברים. הוספת בייט אחד פעמים רבות אינה משנה את האורך כלל, ולכן מועמדים רבים מקבלים ניקוד זהה והאות הולך לאיבוד ברעש קוונטיזציה. gzipt מתגבר על כך בחיפוש קרני (beam search): הוא שומר על beam_width ההמשכים החלקיים הדחיסים ביותר, מרחיב כל אחד בכל בייט שמופיע בקורפוס, נותן ניקוד לפי אורך דחוס וחותך שוב. התהליך חוזר על פני אופק של בייטים לפני בחירת הקטע הטוב ביותר.

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

מה יוצא מזה בפועל

אחרי הזרמה מראש של קורפוס tiny Shakespeare ופרומפט "MENENIUS:", הכלי החזיר שורות המיוחסות למנניוס, מרציוס ולרציוס: לא טקסט קוהרנטי, אבל ההשפעה של המקור ברורה. הקוד הוא קובץ אחד בפייתון סטנדרטי (רק zlib). בהערות השוליים כותב המחבר שמחברי המאמר ניסו דבר דומה והתוצאות היו חלשות, ושהוספת חיפוש קרני שיפרה משמעותית את איכות היצירה.

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

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.