近期美劇《西部世界》十分火爆,其中有這樣的場(chǎng)景,有個(gè)人工智能機(jī)器人出現(xiàn)了表現(xiàn)異常,需要對(duì)人工智能機(jī)器進(jìn)行調(diào)試,那么是如何調(diào)試的呢?
說到調(diào)試,我們現(xiàn)有的調(diào)試,更多的是命令行模式比如GDB,還有些是圖形界面,比如JS代碼在Chrome/Firefox中的調(diào)試。
而西部世界里面是通過聊天模式來調(diào)試的。



控制和了解人工智能的思想主要通過對(duì)話來獲取,而各項(xiàng)硬件指標(biāo)和配置信息通過類似眼鏡的東東來觀察。
很早之前微軟出過一本《Writing Clean Code 》,整本書都希望找到可以預(yù)防和檢測(cè)bug的方法,包括
- 假想的編譯程序,試圖編譯環(huán)節(jié)就可以檢測(cè)出所有的缺陷(當(dāng)然不太現(xiàn)實(shí)),
- 斷言和故障注入,盡可能的暴露缺陷
- 內(nèi)存監(jiān)測(cè),資源的實(shí)時(shí)監(jiān)控,企圖發(fā)現(xiàn)資源泄露的缺陷。
- 各種人工保障,單步調(diào)試,契約式編程,編程規(guī)范,態(tài)度等。
盡管這些或多或少都有效,但是還是會(huì)有很多不可預(yù)知的缺陷。而一旦出現(xiàn)缺陷,我們的調(diào)試工作是相當(dāng)?shù)拇?,就算是使用二分法,排除法,最終找出了問題所在,但是所消耗的時(shí)間有時(shí)候比編碼時(shí)間還長(zhǎng)。
曾經(jīng)我們的項(xiàng)目啟動(dòng)過一個(gè)這樣的模塊,通過這個(gè)模塊,系統(tǒng)可以自己進(jìn)行健康檢查,各種資源,業(yè)務(wù)邏輯的自洽性,異常條件下的正確反饋等。結(jié)果是有一定的效果,不過真的遇到了指針飛了,還是毫無辦法。最終還是避不開調(diào)試。
很多系統(tǒng)采用告警,跟蹤,調(diào)試,日志等各種模塊來獲得系統(tǒng)的信息,以便更好的定位調(diào)試。也許,未來,人工智能能夠自己分析日志等信息,并報(bào)告錯(cuò)誤。而人類只需要通過聊天,來控制人工智能以便設(shè)置和調(diào)試,獲取錯(cuò)誤信息,進(jìn)而修復(fù)。
更高級(jí)一點(diǎn),對(duì)于非致命性缺陷,人工智能實(shí)現(xiàn)自我修復(fù),沒有什么大的毛病不輕易找人類幫忙:)
如果是這樣的話,我們的程序員可以轉(zhuǎn)型為人工智能醫(yī)生,嘿嘿。