这周二外甥做了一个基于pytorch的人脸识别程序,后端使用flask提供api服务,算是他第一次使用Python。
在讨论部署过程中,他没有使用Python常用的虚拟环境,而是使用了docker镜像。并在一番折腾后,昨天上线成功了。
他的方法是以最新的Ubuntu镜像为基础,编写dockerfile文件,先通过apt与pip安装必要的系统软件后,再运行编写好flask程序。这样的好处是不用考虑服务器环境,同时也做到开箱即用。
我之前用过的几个单一功能的应用,比如splash,都是使用这种方式。但是涉及到数据库等,就要麻烦的多,比如最近使用odoo,需要几个镜像协作,使用起来就要复杂得多。
我之前采用的虚拟环境部署,是先试用pip freeze导出程序依赖库信息,与程序代码一起打包。在部署的服务器上,通过pip根据导出文件内容安装相应库。
这样部署,程序包要小得多,但需要考虑系统的版本及兼容性,同时还需要进行运行配置。
两种方式各有千秋。外甥的docker部署成功,也算是有了参考,可以进行测试部署其他的应用。
毕竟现在网上太多的教程不靠谱了。
分类: IT天地
规范与扯皮
过年这几天,被阿里云的客服气得不轻。
在使用AutoDL的GPU平台前,我最初使用的是阿里云跟腾讯云的GPU服务器。相比腾讯云,阿里云更专业,但有一个让人讨厌的地方,就是需要冻结100元,作为按量业务的预留费用,而腾讯没有这个问题。
在使用AutoDL后,阿里云也就不再使用了,想把这100元提出来,却被提示无法提取,需要按量业务释放后才能提取,这有点像手机早期销户时候,需要过一定时间,确认同步费用后,才让销户。
开始不让提现也就罢了。正巧春节期间AutoDL搞充值送优惠券活动,感觉释放实例已经有段时间了,便再次提现,依然失败。
因为活动有时间限制,便提交了一个工单。结果客服后来告诉我,我有一个实例没有删除,让我自己核实。
我一查,这个实例是去年2月,因为系统故障我无法查询也删除,导致多计费了不少,我还专门提交了工单要求删除。多花钱也就罢了,没想到居然现在还给我惹麻烦。
没想到让我恼火的还在后面,我给客服提供了核实情况,对方居然说系统问题,让我查找原因。
岂有此理!他们自己有问题,却让我查找原因,解决问题。
强压怒火再次提交截图等证据,结果一句稍等,没有下文了。
原先凭借阿里云的客服是最规范,规范的有些刻板。
现在看,这规范成了借口,只会越来越差劲。
垄断捆绑的力量
中午出门接到计算机知识求援微信,手机里无论看图片还是回复都不方便,赶紧忙完往家赶。
最近这一周,看到求援微信里面,涉及数据库的就头大。因为已经有近二十年没有碰过这熟悉的陌生人:access。
不得不说,微软睁一只眼闭一只眼,纵容中国盗版,是有其深远的商业考虑的。如果不是盗版office满天飞,捆绑在word、Excel、PowerPoint之中的access谁会用它。
如果说word等的竞争、替代者们,跟在微软后面亦步亦趋,总还脱不开跟随、模仿的帽子,那access的替代者,早年间不用说MySQL、firebird等,就连sqlite也甩它几条街。
慢如蜗牛的速度,日渐膨胀的体积,时不时的数据库打开错误。开发使用access,真不知道谁为谁服务,谁是大爷。
但现在access还活的好好的。
这就是垄断加捆绑的威力。
解决Lizzie通过ssh连接katago卡顿问题
从使用阿里云GPU云服务器运行katago开始,就发现一个问题:那就是使用sabaki通过gtp协议调用katago,非常顺畅没有任何问题。而同样的运行参数,一旦使用lizzie调用,则卡顿现象十分严重,不得不反复通过暂停、重开,来获取数据。
开始以为是带宽的问题,后来即便将带宽提高到5M也没有丝毫效果。改用AutoDL服务器后,其带宽不需要指定,同样卡顿没有改善。
前几天通过网上学习ssh的时候,看到有文章提到不同ssh服务器,客户端获取的返回数据不一样。受此启发,想到同样GPU服务器,sabaki正常而lizzie存在问题,那说明应该是客户端获取服务器数据、转换的问题。lizzie最早是针对Leelazero的,在获取katago的gtp数据时,对部分数据不识别,或者识别转换效率低,所以导致卡顿,甚至不能正常显示。
于是查看katago的配置文件,感觉应该是logToStderr参数的问题。默认值是false,为了在sabaki观战时看到AI的计算情况,我将值改为TRUE,这样gtp日志输出到sabaki终端。但这样一来,lizzie可能对大量输入数据有些不知所措了。本机还好,一旦通过ssh获取,更是应接不暇了。
果然,将logToStderr值修改为false之后,再调用lizzie,一切正常,顺利完成旧文旧局:“未完”的一局(钱宇平vs小林光一),算是开了一个好头。
弃显卡选择GPU服务器
近些日子,一直测试AutoDL的GPU服务器上运行katago。
无论是katago程序还是网络都非常稳定。目前性价比最高的是2080Ti服务器,1.24元一个小时,运行katago的速度甚至高于新贵rtx3090,价格却只有其一半多一点。性能低一半的rtx3060价格9毛9一小时,运行sabaki对弈,速度有些慢,但如果运行lizzie进行棋谱分析,配合文字录入,倒也合适。
目前显卡降价是遥遥无期,我也已经断了这个念头。因为按照3060显卡的价格,即便每天运行十个小时服务器,也足够使用一年了,而且还没有噪音的烦恼。
每次急匆匆开机,急匆匆关机,都有当年在财院花钱上机房的感觉。不过那时候486机房一个小时还要1块5呢,现在价格已经算是很便宜了,只是说相对价格,下降更多的,还是热情。
好客服的标准
最近几日测试AutoDL的GPU实例,运行稳定正常没有发现问题,倒是在计费上发现了一个bug。
系统计费是按照整点计费与到时计费相结合。昨天巧了,正好刚过10点关机,结果系统出现计算bug,不知道这不到一分钟该怎么计算,直接重复上一次计费按一小时收费了。
把情况反应到客服,客服很干脆地直接给了10块钱的代金券。
当时感觉可能客服感觉系统调整复杂,又怕投诉,直接给钱了事。
结果今天更巧,关机的时候,又是过整点不到一分钟。
当时心里那个囧啊,不知道的还以为我卡bug蹭红包呢。
还好,进入系统查看费用,计费正常,应该是已经修正那个计算错误了。
这倒符合我对客服的理解:对外联系快捷,处理迅速;对内权限分明,反馈及时。
katago在AutoDL几款GPU实例下benchmark测试
但AutoDL受实例限制,暂时无法编译TensorRT Backend版本,编译的是cuda11.2版本。在不同GPU实例下简单测试了一下katago的benchmark,权重为kata1-b40c256-s10359230464-d2525387336。
在使用sabaki对弈感觉速度尚可,但经过测试,NVIDIA RTX 3060 / 12GB的成绩与阿里云的Tesla T4比想象中要差不少。
作为TeslaT4的替代者,NVIDIA RTX A4000 / 16GB成绩相比TeslaT4略好一点,也符合AutoDL首页算力排名。AutoDL北京地区实例均使用RTX A4000。
NVIDIA RTX 3090 / 24GB成绩两倍于NVIDIA RTX A4000 / 16GB,同样符合算力排名。
最令人吃惊的是NVIDIA RTX 2080Ti / 11GB,成绩直逼阿里云TeslaV100 16G。katago测试过程中,
第一次测试居然认为成绩出现误差,提示“Optimal number of threads is fairly high, increasing the search limit and trying again.”自动重新测试了一遍。
不愧为显卡核弹。难怪黄厂长严令禁止数据商将游戏显卡用于数据服务器上。其价格居然还要低于NVIDIA RTX A4000 / 16GB,这也是性价比最高的GPU实例。
云端租犬舍新选择:AutoDL
前期给AI犬云端租犬舍,一直是在阿里云与腾讯云,费用尚能接受。腾讯云价格略占优势,阿里云技术更贴合需求。
昨天本来想占一下谷歌的便宜,但按照网上说明配置colab的时候,总是卡在最后调用阿里云对象存储OSS那一步,于是进入了QQ群本想了解一下,结果在群里看到有推介AutoDL AI算力个人云的,提到3090特价到1.26元/小时。
顺手就连接到AutoDL官网,注册绑定微信后,赠送了10元代金券。
既然有代金券,就试着选择了一款价格为1.37元的3060GPU的实例,一试就停不下来了。
与阿里云、腾讯云不同,AutoDL的实例不是云服务器,而是类似colab,基于jupyter的已经配置好的虚拟环境,但是可操作性更强。
默认连接环境是通过密码的ssh,选择密钥登录并上传后,第二次购买实例的时候,就可以直接使用设定好的密钥。如果想第一次直接使用,按照阿里云的配置方法,修改用户ssh设置,并重启ssh,同样可以实现。
AutoDL的cuda版本默认是11.2,由于系统环境不同,原先在阿里云编译的katago无法使用,需要重新编译。在3060下运行katago benchmark,得分略低于阿里云的Tesla T4。
今天早上又购买了一款打折价1.44元的2800Ti的实例,使用编译好的katago运行benchmark,第一次测试,系统居然认为数据存在误差,自动又跑了一遍,成绩甚至微微超过Tesla V100 16g显存的阿里云服务器。不愧为显卡核弹,难怪黄厂长严令禁止数据厂商使用游戏显卡用于服务器上。
AutoDL同时提供网盘,将编译好的katago程序、配置文件、权重保存在网盘中,购买实例的时候,会直接挂载网盘,基本实现了购买后直接使用功能。
相比云服务器,AutoDL无论是可供选择,还是价格都更有优势,算是AI犬的云端犬舍的新选择。
弄潮人前背后
前段时间司马南开撕联想,也懒得关注。
昨天在B站看到一篇视频,好家伙,那弹幕基本把屏幕都遮盖了。up主挖坟上挖北宋,下挖满清,如果金大侠还在世,估计为了先祖也要加入战团了,这性质可比涉嫌致敬大仲马严重多了。
也是因为这个视频,今天浏览网易新闻的时候,点击了几篇相关文章,有半数已经是404了。
原先说过,名人名角最不喜欢我们这样的老家伙,不花钱捧场也就罢了,知道的老底还多。
其实文章中很多例子,都不算是什么秘密,当年的正规刊物杂志上都登着的,比如杨元庆带着按照多少人工资计的款项,到香港做贸易险些被骗,柳在北京坐镇听汇报电话,心惊肉跳。
只不过时过境迁,当年的辉煌事迹到如今,成了所谓秘闻黑材料。
还是同意胡锡进的论点,不要深挖历史,清算旧账。毕竟时代大潮中,有几人能完全把握方向。乘风破浪摆英姿多是暴雨过后,风平浪静时。
见识勒索病毒
昨天一个朋友,大老远从市里来找我帮忙解决电脑问题,结果让他失望而归。
因为我要是有能力解决他这个问题,要么我就发了,要么我就进去了。
他机器中的是勒索病毒。
刚开始他告诉我机器症状的时候,我还没有意识到中的是这么厉害的病毒。只是看到文件出现了8位字符的扩展名,以为只是流氓软件,迫使用户使用他们指定软件打开文件而已。
这是继CIH、熊猫烧香后,亲身遇到的破坏性极强的病毒。
勒索病毒只是通过破坏文件头来感染word等有价值的文件,对TXT等文件直接忽视。好在感染之前系统会有提示,感染后的文件不再具有感染性。
防病毒,还是小心预防为妙。