مواد پر جائیں

گفتگو کی تاریخ

لمبی گفتگو ایک سخت دیوار سے ٹکرا جاتی ہے: ماڈل کی کانٹیکسٹ ونڈو۔ اس صفحے کا ہر حصہ اسی دیوار کی وجہ سے موجود ہے، اور دلچسپ بات یہ ہے کہ کیا پھینکا جاتا ہے، کیا رکھا جاتا ہے، اور کیا واپس حاصل کیا جا سکتا ہے۔

یہ متبادل سے زیادہ ایک سیڑھی ہیں، سب سے سستا سب سے پہلے۔

طریقہ لاگت رکھتا ہے کھو دیتا ہے
حذف کچھ نہیں بیانیے کا ہر لفظ پرانی، غیر اہم ٹول نتائج
تصاویر کا اخراج کچھ نہیں ان کے ارد گرد کا متن پرانی اسکرین شاٹس
اسنیپ شاٹس کچھ نہیں ہر لفظ، پکسلز کی صورت میں بغیر وژن والے ماڈل کے لیے خواندگی
خلاصہ ایک ماڈل کال ایک بیانیہ وہ تفصیلات جو اس نے منتخب نہیں کیں

حذف اور تصاویر کا اخراج سب سے پہلے چلتے ہیں کیونکہ وہ مفت ہیں اور جس پہلو میں یہ اہم ہے، اُس میں بے نقصان بھی: وہ ایسا حجم گرا دیتے ہیں جسے کوئی دوبارہ پڑھنے والا نہیں تھا۔

چاروں میں سے صرف خلاصہ ہی ایسا ہے جو ایک ماڈل کال خرچ کرتا ہے اور صرف یہی ہے جو آپ کی جگہ فیصلہ کرتا ہے کہ اہم کیا تھا۔ دونوں حقیقی لاگتیں ہیں۔ کال اس لیے زیادہ دلچسپ ہے کہ وہ کب ہوتی ہے۔

کمپیکشن عام طور پر دیوار سے پہلے چلتا ہے، کسی حد پر۔ مگر یہ ردِ عمل کے طور پر بھی چلتا ہے، یعنی جب فراہم کنندہ خود کوئی درخواست حد سے بڑی قرار دے کر مسترد کر دیتا ہے — اندازہ لگانے والا تخمینہ اُس سے کم نکلا جو فراہم کنندہ نے واقعی ناپا تھا۔ ایسی صورت میں خلاصہ کرنے والے کمپیکٹر کو کانٹیکسٹ سکیڑنے کے لیے ایک درخواست بھیجنی پڑتی ہے، اور وہ جو درخواست بھیجتا ہے وہی ہوتی ہے جو ابھی سرریز ہوئی تھی۔

اسنیپ شاٹ کمپیکشن پھینکی گئی تاریخ کو پکسل گلفس کے گھنے صفحوں پر بناتا ہے اور انہیں تصویروں کی صورت میں واپس دے دیتا ہے۔

بنیاد بلنگ کی ایک عجیب بات ہے: وژن ماڈل تصویر کا معاوضہ ایک مقررہ یا رقبے کے تناسب سے لیتا ہے، جس کا اس سے کوئی تعلق نہیں کہ اس میں کتنے حروف ہیں۔ بارہ ہزار حروف کی پھینکی گئی گفتگو کی لاگت بارہ ہزار حروف کے برابر ٹیکسٹ ٹوکنز بنتی ہے۔ وہی حروف ایک صفحے پر بنائے جائیں تو لاگت ایک تصویر کی بنتی ہے۔

اسے محض ہوشیار کے بجائے واقعی کارآمد بنانے والی بات یہ ہے کہ اسے نہ ماڈل کال چاہیے، نہ کلید اور نہ نیٹ ورک۔ سرریز سے بحالی کے دوران ہمیشہ دستیاب رہنے والی واحد حکمت عملی یہی ہے۔

دوبارہ تشکیل کی صورت یہ ہے: شروع حرف بحرف، درمیان تصویر کی صورت میں، آخر حرف بحرف۔ شروع وہ کام اور وہ پابندیاں ہیں جن کی طرف اس کے بعد کا سب کچھ رجوع کرتا ہے؛ آخر وہاں ہے جہاں کام اس وقت موجود ہے۔ درمیانی حصہ وہ ہے جو سب سے کم دوبارہ پڑھا جاتا ہے اور سب سے زیادہ مہنگا پڑتا ہے۔

اسنیپ شاٹس ہر پاس میں محفوظ شدہ ماخذ متن سے دوبارہ بنائے جاتے ہیں، کبھی پچھلے پاس کے پکسلز سے نہیں۔ تصویر کی تصویر بنانے سے گلفس ہر کمپیکشن پر ایک نسل کمزور ہوتے جاتے ہیں، یہاں تک کہ کوئی انہیں پڑھ نہیں سکتا۔

تاریخی طور پر ہر ہارنس رن خالی تاریخ سے شروع ہوتا تھا اور تسلسل کو پرامپٹ میں موجود <context> بلاک سے دوبارہ بناتا تھا — گفتگو کا خلاصہ، خود گفتگو نہیں۔ اس سے تین باتیں نکلیں:

  • دوبارہ شروع کرنا صرف دوبارہ سنانا تھا۔ ماڈل نے اپنی پہلے کی استدلال یا اپنے ٹولز کے واپس کیے گئے اصل بائٹس کبھی نہیں دیکھے، صرف اُن کی تفصیل دیکھی۔
  • واپس جانا پروسیس کے ساتھ مر گیا۔ checkpoint لائیو پیغام فہرست میں ایک انڈیکس ہے، اس لیے دوبارہ آغاز نے ماڈل کے لگائے ہر لیبل کو کھو دیا۔
  • دوبارہ کوشش “دوبارہ کرنے کو کچھ نہیں” اور “کچھ لوڈ ہی نہیں ہوا” میں فرق نہیں کر سکی۔ دوبارہ آغاز کے بعد ناکام باری دونوں صورتوں میں لائیو حالت سے غائب ہوتی ہے۔

تینوں باتیں ٹرانسکرپٹ کو محفوظ رکھنے سے درست ہو جاتی ہیں۔ یہ ہر باری کی حد پر محفوظ ہوتا ہے اور کبھی باری کے وسط میں نہیں: ٹول کال اور اس کے نتیجے کے درمیان پکڑی گئی تاریخ ایسی ہوتی ہے جو کوئی بھی فراہم کنندہ قبول نہیں کرے گا، اس لیے اُس لمحے کا کریش پچھلی باری بحال کرتا ہے، نہ کہ ایسی آدھی باری جو دوبارہ نہیں چلائی جا سکتی۔

دوبارہ شروع کیا گیا رن اپنے تازہ ترین پیغامات تک تراش دیا جاتا ہے، اور کٹائی ایسی حد پر ہوتی ہے جو کوئی یتیم ٹول نتیجہ نہ ہو — جس نتیجے کی کال تراش دی گئی ہو وہ ایسی درخواست ہے جسے فراہم کنندہ صاف مسترد کر دیتے ہیں، اور جو ٹرانسکرپٹ بھیجا ہی نہ جا سکے وہ مختصر ٹرانسکرپٹ سے بدتر ہے۔

ہر پیغام یہ درج کرتا ہے کہ وہ کس سے آگے چلتا ہے، اور ہر گفتگو اپنی موجودہ برانچ کے سرے کا نام دیتی ہے۔ یہی ایک فیصلہ پوری خصوصیت ہے۔

شاخ بنانا کچھ نہیں لکھتا۔ یہ صرف پوائنٹر ہلاتا ہے۔ جو راستہ آپ نے چھوڑا وہ اب بھی موجود ہے، اس لیے واپس جانا کسی بحالی کے بجائے پوائنٹر کی ایک اور حرکت ہے — اور کسی پرامپٹ میں ترمیم کر کے اسے دوبارہ چلانا اب آپ کو وہ جواب نہیں گنواتا جس سے آپ موازنہ کر رہے تھے۔

اس کے بغیر واپس جانے کی ہر صورت کو پیغامات چھپانے یا حذف کرنے پڑتے ہیں، اور چھپانا ایسا جھوٹ ہے جس کی تہہ تک اگلا پڑھنے والا پہنچ نہیں سکتا۔

برانچ فورک
کیا ہوتا ہے پوائنٹر حرکت کرتا ہے راستہ کاپی ہو جاتا ہے
کہاں جاتا ہے وہی گفتگو نئی گفتگو
لاگت کچھ نہیں برانچ کی ایک کاپی

فورک قطاریں بانٹنے کے بجائے نئی آئی ڈیز کے ساتھ کاپی کرتا ہے۔ قطاریں بانٹنے والی دو گفتگوئیں ایک دوسرے کے بعد کے پیغامات دکھانے لگتیں، اور یہی وہ واحد چیز ہے جو فورک کو ہرگز نہیں کرنی چاہیے۔

رن کے دوران چلنے والا checkpoint / rewind جوڑا ایک صاف باری کی حد نشان زد کرتا ہے اور کھوج کے بعد اسی پر لوٹ آتا ہے، ساتھ ایک ڈائجسٹ رکھتے ہوئے۔ چونکہ چیک پوائنٹس ٹرانسکرپٹ کے ساتھ محفوظ رہتے ہیں، دوبارہ آغاز سے پہلے ماڈل کا لگایا ہوا لیبل اب بھی وہیں اترتا ہے جہاں وہ لگایا گیا تھا۔ ایسا چیک پوائنٹ جس کا ہدف تراش کے بعد نہ بچا ہو، گرا دیا جاتا ہے، قریب ترین جگہ پر نہیں ٹھونکا جاتا — “لیبل تک” واپس جانا اور کہیں اور اتر جانا بالکل وہی ناکامی ہے جسے روکنے کے لیے لیبل موجود ہے۔