最近,user們不斷挑戰這個老舊系統所提出的各種古怪需求,刺激著我一直思索,是否有可能在初時就能考慮到一切未來的發展,規劃出一套嚴謹周延邏輯明晰的架構.
如果不考慮節約資源,大部份的問題,都只需要更多的檔案,更多的磁碟,更多的備份,一句話,更多的記憶.而且為了記錄最完整的過去,這種需求將呈現有如天文數字般的暴漲速度.你以十分鐘為單位記錄一次,總勝不過以一分鐘記錄一次的資料正確,為取得大量地快速變動的資訊,你每縮小一次備份的時間,你的記錄數量就漲個數倍.
人類的記憶似乎更加完整,卻不需要使用到這樣浪費的記憶.
我這樣說,一定有很多人反對,因為我們經常為健忘所苦,可是人和機器最大的不同,就是機器的記憶如果沒有就是沒有,不會存在彷彿記得的中間狀態.而人類卻有可能在經過一段很長時間的追索後,突然全記起來.
為了節約資源,有些資料,我們是採複寫制的,所以新狀況會把舊的東西整個蓋掉,人類自然的記憶能力卻能持續大量的記錄歷時過程,雖然總有減損,遺留下來的資訊實在已相當驚人,也不會出現粗暴的新蓋舊,那意指著,一旦記錄的資料超過磁碟的負荷,除了刪蓋,別無他法.而機器有時不得不為的”失憶”造成它無法維持一個完整的”自我”意識.
要造成一個人工智慧,至少記憶的問題是最首先的,如何更有效的記憶,這不但對人類構成一個問題,也對一個健全的系統構成問題,儘管兩者面臨這同一問題的難點似乎不太一樣.
在現在的資料庫技術裏,系統會備有一套archive log,它能協助持續變動的資料庫回復到先前的狀態,也不需要每次都將所有資料備份起來,只有變動的記錄,這種作法大大縮減了對記憶的索求,但即使如此,面對經年累月的折磨,它一樣需要愈來愈多的記憶.
此外,在運用上的問題是,機器記憶無法同時生存在兩個時空,你要比對兩個不同時間的整体差異,除了建制兩個獨立的檔案,就是一開始須依需要,記錄另一個獨立的特殊功用的檔案;譬如說,我要比較一條道路不同時間的車流量,除非一開始建構一個依時間序專門記錄車流量的檔案,否則在初期沒有考慮這個需求來建制車流量檔的情況下,我必須同時將不同時期的所有記錄檔先倒檔出來,然後截取需要的部份來做比對,這個倒檔的工作,一下子就增加磁碟的使用量.
為了避免這種浪費,我們就必須設想各種特殊記錄的檔案,問題是,有很多的東西是一開始建制時想不到的,無論你多麼巨細靡遺,經驗多麼老到,一旦出現一個原先想不到的新的系統需求,痛苦隨之產生.況且,特殊記錄的檔案愈多,日常的資料儲存,負擔就愈重.
更可怕的問題是,有些資料在開始的時候,認為無關緊要而沒有記錄下來,譬如你可能對事件發生的時間只記載到分,而沒有秒,未來如果被要求要分析以秒為單位的資訊,那就完全回天乏術了.
目前的系統規劃,經常要求一個規劃者要能有儘可能豐富的經驗來預想未來可能發生的發展,這種預想又總可能有漏失的地方,如果,能至少在一開始記錄一個絕對完整的記錄檔,雖然不免要遭遇痛苦的大量倒檔工作,卻能夠保持系統發展的最大彈性.
在計算機科學對於資料儲存還沒有決定性的重大新突破之前,完整的機器記憶是對系統生命的最大保障.
文章定位: