聊天调试

近期美剧《西部世界》十分火爆,其中有这样的场景,有个人工智能机器人出现了表现异常,需要对人工智能机器进行调试,那么是如何调试的呢?

说到调试,我们现有的调试,更多的是命令行模式比如GDB,还有些是图形界面,比如JS代码在Chrome/Firefox中的调试。

而西部世界里面是通过聊天模式来调试的。

聊天调试_第1张图片
debug1.jpg
聊天调试_第2张图片
debug2.jpg
聊天调试_第3张图片
debug3.jpg

控制和了解人工智能的思想主要通过对话来获取,而各项硬件指标和配置信息通过类似眼镜的东东来观察。

很早之前微软出过一本《Writing Clean Code 》,整本书都希望找到可以预防和检测bug的方法,包括

  • 假想的编译程序,试图编译环节就可以检测出所有的缺陷(当然不太现实),
  • 断言和故障注入,尽可能的暴露缺陷
  • 内存监测,资源的实时监控,企图发现资源泄露的缺陷。
  • 各种人工保障,单步调试,契约式编程,编程规范,态度等。

尽管这些或多或少都有效,但是还是会有很多不可预知的缺陷。而一旦出现缺陷,我们的调试工作是相当的大,就算是使用二分法,排除法,最终找出了问题所在,但是所消耗的时间有时候比编码时间还长。

曾经我们的项目启动过一个这样的模块,通过这个模块,系统可以自己进行健康检查,各种资源,业务逻辑的自洽性,异常条件下的正确反馈等。结果是有一定的效果,不过真的遇到了指针飞了,还是毫无办法。最终还是避不开调试。

很多系统采用告警,跟踪,调试,日志等各种模块来获得系统的信息,以便更好的定位调试。也许,未来,人工智能能够自己分析日志等信息,并报告错误。而人类只需要通过聊天,来控制人工智能以便设置和调试,获取错误信息,进而修复。

更高级一点,对于非致命性缺陷,人工智能实现自我修复,没有什么大的毛病不轻易找人类帮忙:)

如果是这样的话,我们的程序员可以转型为人工智能医生,嘿嘿。

你可能感兴趣的:(聊天调试)