[招聘] 前端/后端/算法 工程师/Leader,总有一款职位期待你!

无论你身在上海,还是北京,无论你想踏实前行,还是心怀远大梦想,只要你是一个用键盘和代码改变世界的工程师,那么都希望你不要错过下面的“召集令”。
字节跳动(今日头条、抖音的母公司)现在正在招聘:前端/后端/算法 工程师/Leader,总有一款职位期待你!

等等,有奇怪的群众会跳出来说:你好像并不是在字节跳动工作的呀?为什么要帮它们发这个?
在这里我首先要做一个声明哈:我爱我所在的team,我爱我的公司——至少时至今日还是如此。

但是,人在江湖飘,哪能不要脸?这不,字节的朋友几次让我帮忙推荐急需的工程师,说了几次:难道我们的友情只值一毛钱?
我脸往哪放?我总得用我这羸弱的力量助推一下嘛,所以我就把职位信息放上来挂着啦。在字节跳动混得风生水起的专家直接帮你内推,应聘效率有保障!
阅读更多

[原创] 总有一天,失业不再遥远

尽管人类离[通用人工智能]的路还很远,但越来越多新技术的出现,让这条路得以不断加速。

​What?强化学习设计芯片?

就这几天的事:Google已经开始用强化学习技术来设计芯片了!
如果说用强化学习来玩游戏、下围棋,甚至用来帮助提升互联网广告的点击率、收入,都不是什么新鲜事的话,那么用强化学习来设计芯片,就也太新鲜了吧?但Google就做到了[1]

我们提出了一种基于学习的芯片布局方法,这是芯片设计过程中最复杂、最耗时的阶段之一。与之前的方法不同,我们的方法具有从过去的经验中学习并随着时间的推移而改进的能力。特别是随着我们对更多的芯片块进行训练,我们的方法在快速生成以前未见过的芯片块的优化布局方面变得更好。为了实现这些结果,我们将芯片布局作为一个强化学习(RL)问题,并训练一个Agent将芯片网表的节点放置到芯片画布上。为了使我们的RL策略能够泛化到未见过的芯片块,我们将表征学习置于预测布局质量的有监督任务中。通过设计一个能够准确预测各种网表及其布局质量的神经架构,我们能够生成丰富的输入网表的特征嵌入。然后,我们使用这个架构作为我们的策略和价值网络的编码器来实现转移学习。我们的目标是将PPA(功率、性能和面积)降到最低,我们表明,在6个小时内,我们的方法可以在现代加速器网表上生成超越人类或可与之相媲美的芯片布局,而现有的基线需要人类专家在循环中进行,并需要几周的时间。

硬件工程师为之虎躯一颤。
阅读更多

[原创] 美国佛罗里达的执念:海滩

佛罗利达州(Florida)是美国本土最南端的一个州,旅游业是其经济收入的最大来源,温暖的天气和沙滩美景每年吸引1亿多游客。

如果说这个世界上有哪里的人最不怕新冠病毒的死亡威胁,那美国佛罗里达的海滩爱好者绝对能排得上号。
佛罗里达州的很多人对海滩有着近乎狂热的感情,COVID-19(新冠病毒)暴发完全无法影响他们亲近海滩的强烈意愿,在州政府最近重新开放了海滩之后,他们一堆人带着老婆孩子,不戴口罩到海滩上去散步,可谓是真的“勇士”(或脑残)、生死看淡!
伴随着这样的事实背景,Twitter的趋势榜也随之出现了一个很火的hashtag:#FloridaMorons佛罗里达傻X),网友们无情发贴抨击、讽刺那些“不去海滩聚集就会憋死”的佛罗里达人。
阅读更多

[原创] 戴口罩也不是我们的文化

首先我要讲一个真实的事情。上周末我在上海黄浦江边的一个开放式公园里看到很多人,大人小孩都很多,我看到的全部外国人(白人)一共有3个:1个大人+两个小孩,全部都不戴口罩。而我看到的几十个中国小孩全都戴了口罩。
不做杠精,我只是从长相上判断中国人和外国人,至于他们是不是换了国籍我不知道。
虽然样本量小,但是从最近从网络上得到的很多信息,以及我亲自观察到的现象上来看,我认为这不是偶然现象——欧美国家的大多数人,血液里流淌着抗拒口罩的基因。
这一周我和Cambly的两位外国友人谈了谈这个问题,更能印证“不戴口罩”是一种深深固化在欧美人民心中的一种思维模式。
阅读更多

[原创] 当美国人听说我已经实现了口罩自由之后...

两天前的4月2日,在美国马萨诸塞州(也就是麻省理工学院MIT所在的那个州),有一个大新闻:在该州抗疫物资已经紧缺得十万火急,而又无法得到联邦政府援助的情况下,州长查理·贝克(Charlie Baker)打通各种关系,从中国订购了170万N95口罩,经过相当复杂的一系列联络与协调,在中国驻纽约领事馆、中国企业的大力支持下,最后通过职业橄榄球队“新英格兰爱国者”老板罗伯特·卡夫(Robert Kraft)的一架私人波音767飞机,从中国深圳运回了首批120万个口罩。
州长和爱国者的老板一下子成了很多人心目中的英雄。
我浏览了和此新闻相关的很多Twitter信息流,总结出来几个现象:
(1)很多美国人使劲表扬州长和“爱国者队”,有很多路转粉;
(2)也有很多美国人骂美国联邦政府太没用,骂散装美国各自为政的混乱场面;
(3)永远少不了一部分美国人在一如既往地反华,说这是中国来的口罩,就算放到我面前我都不用!(然而N95是分发到抗疫前线的医务人员手里的,根本不会送给你们这些群众好吗!)
阅读更多

[原创] 来自丹麦的妹子Leila,修机械玩摩托写代码,酷就一个字

点开这篇文章的各位,你们一定会觉得很奇怪:这是什么奇怪的标题?你不是一般只发技术文章的吗?
并不是。和学习相关的文章我也会发。作为一个最近几年来都在顽强地每天坚持背英语单词,并且自掏腰包和老外练口语也坚持了一年多的人,我可以算是在英语学习上也没有退步,所以我想和大家分享一下英语口语学习中的一些事。

今天我要向大家推荐Cambly上的一个丹麦妹子,Leila老师。昨天已经是我第二次和她交流了。
等等,Cambly是什么奇怪的东西?
Cambly是一个和老外(native English speakers)视频聊天练习英语口语的平台——当然不是免费的,但是如果你用推荐码 DZZZ 注册一个账号,能免费得到15分钟的使用时间,反正不要钱,不妨尝试一下。
阅读更多

[原创] 强化学习框架 rlpyt 的数据可视化工具:viskit

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
在训练强化学习模型的过程中,rlpyt 产生的大量训练日志看起来无比枯燥,本文展示了如何利用 viskit 把这些日志数据可视化。
阅读更多

[原创] Python的list.append()比np.append()更快

在Python中,假设你最终想得到一个NumPy array,而它是通过append大量数据得到的,那么有两种办法:
先创建一个Python list,append完数据之后再把这个list转成NumPy array。
 直接创建一个NumPy array,用 np.append() 函数来append数据。
第1种比第2种快很多,尤其是当你在一个for循环中频繁做这个事情的时候,差距就更明显了。
阅读更多

[原创] PyTorch模型 .pt,.pth,.pkl 的区别

我们经常会看到后缀名为 .pt,.pth,.pkl 的PyTorch模型文件,这几种模型文件在格式上有什么区别吗?
其实它们并不是在格式上有区别,而只是后缀上不同而已(仅此而已)。在用 torch.save() 函数保存模型文件的时候,各人有不同的喜好,有些人喜欢用 .pt 后缀,有些人喜欢用 .pth 或 .pkl。用相同的 torch.save() 语句保存出来的模型文件没有什么不同。
在PyTorch官方的文档/代码里,有用 .pt 的也有用 .pth 的
据某些文章的说法,一般惯例是使用 .pth,但是官方文档里貌似 .pt 更多,而且官方也不是很在意固定用一种,大家就自便吧。
阅读更多

[原创] 如何查看一个Python进程在"干什么": py-spy 来帮忙

如果你觉得一个运行中的Python程序有问题,例如它的耗时比你预想的要长很多,那么你可能会想知道它到底在“干什么”,有很多方法可以实现这个目的,但是很多都是需要修改Python代码来配合的,这显然是让人最不爽的方式。
而 py-spy 这个工具提供了一种无侵入的方式来达成这个目的:

py-spy是Python程序的采样分析器。 它使你可以直观地看到Python程序花费的时间,而无需重新启动程序或以任何方式修改代码。 py-spy的开销非常低:为了提高速度,它是用Rust编写的,并且它与被分析的Python程序不在同一进程中运行。 这意味着py-spy可以安全地用于生产环境的Python代码。

阅读更多

[原创] IntelliJ推出的语法检查插件Grazie,没有现实意义

今天看到一篇推送的技术文章,说IntelliJ推出了一个语法检查插件Grazie,但它不是用于检查面向编译器的语法,而是用于检查面向人类的语法,比如引号里的字符串、注释语句里的语法,等等。我认为在当前的环境下,它没有意义——除非在一个有着严格要求(或者非常自律)的团队里,否则这种功能只能用来“折腾自己”,而不可能改善大家整体的代码状况。
阅读更多

[原创] 不要畏惧困难,提笔写作

首先我得承认,我原来打算写的很多技术方面的“系列文章”,在写了若干篇之后就没有后文了,一方面是因为忙于工作和生活(毕竟不是富裕人家),另一方面也是由于总觉得没有积累到一定程度,还不能准确地把想要写的东西表达出来。这我得检讨。

“我要写的这些,是不是太简单了?写出来会不会显得太low?”
“我要写的这个,我不确定对不对,写出来误导别人怎么办?被人取笑怎么办?”
“我这篇文章会不会太短了?就这么点东西好意思发出来吗?”

带着这些想法,我又成功地毙掉了我准备下笔的一个决定。
阅读更多

[原创] 小心PyCharm的import带来的unresolved reference误导

有时候你可能会遇到这样的故事:git clone一个Python的GitHub项目下来,配置好了对应的Anaconda环境,安装好了依赖的package,用PyCharm打开了项目,打开一个.py代码文件,发现PyCharm在文件开头几行就给标注了波浪线,提示unresolved reference XXX。而且,尽管PyCharm提示有错,你却可以运行代码。
“我完全就是按项目要求的版本装的各种依赖包,怎么会找不到这个定义?”你心里可能会很不爽。
这个时候,你要看清楚了,有可能是PyCharm给了你误导,其实你什么都做对了,只是PyCharm显示错了而已。
阅读更多