欢迎来到CL境外营销平台,平台经营Instagram、Facebook、YouTube、TIKTOK、Twitter粉丝、点赞、播放量服务、客服微信:coolfensi 24小时在线欢迎咨询购买!
公告:
欢迎来到CL境外营销平台,平台经营Instagram、Facebook、YouTube、TIKTOK、Twitter粉丝、点赞、播放量服务、客服微信:coolfensi 24小时在线欢迎咨询购买!

facebook刷赞网站--Facebook加赞

首页 Facebook   作者:coolfensi  2022年11月10日  热度:37  评论:0     
时间:2022-11-10 12:06   热度:37° 

译者:覃超 前Facebook应用软件技师,现FREES民营企业控制技术投资顾问

回帖头图是几段 Jarvis 的标识符。做为两个控制技术流译者,我在最终的第三章阐释这段标识符:

该文结尾Zuck先描述了他们撰写Jarvis的个人经历:

那个控制技术构架如下表所示:两个 Jarvis server 在服务器端跑,下面主要就是做词汇处置、音频辨识和人脸     (Zuck家的正门须要用)。

输出端为各式各样便携硬体,也是左图中右边那两列,依序是:

1. Crestron:Crestron Home Automation for SmartHome 此为英国最知名的安防驱动器的供应商,专门针对提供更多整套硬体和控制技术计划让爱提心吊胆的黑唇同时实现那些机能:

"Alexa, turn on the kitchen lights"

"Alexa, raise the living room lights by fifty percent"

"Alexa, set the basement thermostat to 70 degrees"

白人脸 -_- 这也能说明为何在网路上看见的智能化家庭成员的音频来回都是这两个并将结果。

2. Lights:灯

3. Thermostat:调温度的

4. Doors:门和门禁系统

5. Sonos:黑唇喜欢的智能化音响品牌:Sonos PLAY:1 Compact Wireless Smart Speaker for Streaming Music (White)

6. Spotify:英国版的网易云音乐。Spotify由Sean Parker创立(前Facebook CEO和联合创业人之一;也是在《社交网络》电影里抽大麻的那个。注意:大麻在英国一些州已经合法,另外它的成瘾性和危害都小于香烟),Spotify和Facebook关系很好,在2011年深度集成在Facebook中。

7. Cameras:摄像头

8. Toaster:

黑唇耿直,早餐都吃的是toast,那个机器用来加热它,然后涂点果酱和黄油,是一顿丰盛的早餐。

9. T-shirt cannon:T恤加农炮。很多读者这时估计懵逼了,问:小魔王同学,你是不是说错了?扎克伯格没事在家里放两个加农炮干嘛? 对的,其实他的衣柜里安装了两个T恤的发射器,可以直接把T恤喷射出来,打到他的手里。

构架图里的右侧为三个用户系统:messenger bot、音频app和门禁摄像头。接下来小扎说了他一步步是如何走过来的:

第一章:连接家里的家具设备

这块Zuck坦言做那个AI家庭成员系统比跑365英里的任务要稍微简单一些(至少少费时),但是最麻烦的环节是连接那些家里的各式各样设备。他甚至须要逆向工程一些硬体设备的API(比如灯和音响),使得可以通过程序来控制它们。Toaster换了两个1950年的硬体,另外Zuck还专门针对给Beast(zuck的狗)的喂食器以及T恤的弹射炮做了硬体的改动。由此可见以后IoT(物联网)的重要性和前景。

第二章:自然词汇处置

分为两部分:文字消息处置和音频处置。前者处置的难度是同义词和上下文,而后做音乐控制的时候发现播放指令的处置更加麻烦,比如:

播放周杰伦:这句命令在处置的时候要判断周杰伦到底是人还是歌名;另外Zuck的例子:

"Play someone like you", "Play someone like Adele",前者是歌名,后者则是进行类似风格的歌曲推荐。Zuck通过不断训练和加强Jarvis AI,使得它现在对于Zuck的歌曲喜好有记忆和认知,所以Zuck一般直接说:Play me some music。Jarvis便直接开始播放,另外Zuck有时心情不对的时候,想听轻音乐,便说:thats not light, play something light,Jarvis他们换歌曲并且学习。

第三章:视觉和面部辨识

人的大脑有1/3的部分专门针对用来做视觉处置,包括图像、模式辨识和追踪。Zuck的房子门禁同样也须要支持视觉和面部辨识机能:

这部分在AI领域一直是发展前沿,所以有不少现成的model和开源框架。Facebook之前就开放了一套API来判断那个图片里是否有你fb好友,以及将面部位置可以从图片中定位出来。

Zuck为了做智能化门禁,在正门口装了好两个摄像头,为了可以更好地捕捉人脸图片。Jarvis系统24小时不断进行人脸探测和辨识,当有人且是Zuck好友的时候,给Zuck发消息询问是不是想见的人。

AI视觉还帮助Jarvis做其他事情,比如看Max(Zuck女儿)是否睡醒,如果醒了的话,Jarvis边自动开始播放Max喜欢的歌曲或者给Max上中文课(从小开始学习中文 -_-)。另外借助视觉系统,可以更加有效地知道家里的人的所在位置,这对于更好地执行有上下文的指令有巨大帮助。比如当有人说:Turn on the lights,肯定最佳的动作是打开此人所在位置的灯。

第四章:Messenger bot

Zuck介绍用 messenger bot 开发的各式各样便利之处,它比起做两个app来更轻,更容易跨平台,同时也不同处置push、启动、注册等一系列繁琐routine的事情。平时Zuck可以通过发文字或者音频消息(原文:audio clip,那个机能是小魔王我当年亲手做的~ :D),然后Jarvis AI将其发送到server上, 进而开始做文字或者音频处置,提炼出须要执行的指令来操作Zuck家。同时Jarvis AI还会主动发消息给Zuck,比如有人在门口时,Jarvis会把照片和辨识出的人的信息发给Zuck,让他确认是否是他们要见的人。

Zuck他们没有料想到的是:平时和Jarvis的交流大部分都是通过文字信息;虽然开始Zuck以为他们会是说话为主,但是后来发现text更加方便更加能保护个人隐私,不打扰别人。这从两个侧面也能反应出来       voice message 在北美的messenger流行不起来的两个重要原因:随着社会进步,人会越来越重视隐私或是变得有些缄默。Zuck还透露不管是FB messenger还是whatsapp上也看出类似的趋势:文本信息的消息数量远比音频消息增长得快。这里给做AI的各位公司两个启示:虽然现在音频辨识仿佛是标配,但是AI系统可能更加须要注意在文本处置上的成熟度,因为人们会大量使用文本控制而不是之前设想的音频控制。虽然后者让PM或者CEO觉得好像是更便捷更cool的人机交互方式。

第五章:音频处置

Zuck当然也做了音频辨识的模块来辅助控制 Jarvis:

左图中的指令是控制衣柜中的加农炮给他们发射体恤(具体可以参考后面的音频)。那个app是   Zuck专门针对做的iOS app来进行音频辨识和理解的。之所以做两个全新的app,而不是用messenger bot,是因为在messenger里打开音频消息须要太多的步骤,有点繁琐。而Zuck的使用场景是希望把手机放在桌上,他们可能干其他事,而手机一直在那里听着。这种使用方式有点类似Amazon Echo:Amazon Echo - Amazon Official Site - Alexa-Enabled

Zuck说之前开发iOS还是在2012年,现在再次开发,他感受到整个ios和fb的toolchain的改进巨大,词汇和xcode的增强使得编程和做app的门槛大大降低。

通过开发和使用那个voice app,zuck对于AI和音频辨识在产品上的思考:

  • 音频辨识的算法在上下文和联想方面须要加强得还不少;类比人类进行音频辨识的时候,不仅在听你当前说什么并记下来,同时要时刻在预测你接下来准备说什么,大脑表现得非常自然而且高效。而计算机,即使最近开始使用RNN(recurrent neurol network)好了不少,但是依然有很大的提升空间;

  • 音频辨识现在在理解人类的支离片语上表现不佳,另外对于常规情况下使用的音频辨识能力比较弱。大部分的系统都在做特别机能范围(比如Google Search, Amazon Echo)内的音频辨识。

  • 音频的加入让产品和人之间更加有情感交流,Zuck觉得这肯定是以后产品发展的方向。能用音频进行交流之后,Zuck他们越用越觉得有意思,然后开始改进Jarvis,让其变得更加幽默有趣。还加入了一些游戏和黑话给Jarvis。

  • 音频的辨识和运用方面,zuck认为可以做的创业才刚刚开始。(所以各位抓住机会!)

第六章:Facebook的技师环境

这几段,Zuck说他们虽然是CEO,但是从未停止过coding,但主要就以个人项目为主。通过这次开发        Jarvis,zuck又重新体会了一次整个FB的控制技术环境的魅力,就类似于两个新入职的技师一样走完了整个bootcamp的过程。他说不仅上手实践AI和了解了最新AI方面的进展,同时意外收获了很多关于开发控制技术方面的知识。Zuck赞赏FB的标识符非常有条不絮,另外在开源上做得很好,甚至zuck在该文里亲自列举出 Jarvis上使用的开源框架:

最终zuck欢迎开发者都来使用下那些开源库,来感受下AI最新发展的魅力。另外他一直坚持内部工具和控制技术的基础设施对于两个互联网公司的重要性,所以最终他说:Building internal tools that make engineering more efficient is important to any technology company, but this is something we take especially seriously. So I want to give a shout out to everyone on our infra and tools teams that make this so good. 所以这里可以看出,硅谷公司把控制技术部门真真切切地当做是公司的重要资产,去鼓励去培养;而国内很多公司对于控制技术团队,更多当成是一种工具,甚至是开支部门。所以各位想单纯醉心于控制技术钻研的人,早点去硅谷是一条最好的出路。

第七章:下一步

Zuck的该文到了这里,已经进行到了尾声。Zuck说虽然2016年的挑战已经结束,但是对于Jarvis的开发和优化会继续。具体须要做:

  • 开发Android下的音频辨识app

  • 接入更多的室内硬体和更多的应用

  • 让Jarvis拥有学习能力。Zuck原话:If I spent another year on this challenge, Id focus more on learning how learning works. 即希望教会Jarvis如何学习,或者说得更加酷炫:让Jarvis学习如何学习。(小魔王补充:chunk it up,deliberate practicing,feedbacks,10000 hours theory!)

最终Zuck准备再抽象一层他们的标识符,然后在明年将其开源(接受小魔王覃超的进一步code review :-D)

第八章:结论

关于结论这部分,Zuck原文相当得精炼且有意义,我实在觉得应该把英文贴上来,各位都能阅读一下:

Building Jarvis was an interesting intellectual challenge, and it gave me direct experience building AI tools in areas that are important for our future.

Ive previously predicted that within 5-10 years well have AI systems that are more accurate than people for each of our senses -- vision, hearing, touch, etc, as well as things like language. Its impressive how powerful the state of the art for these tools is becoming, and this year makes me more confident in my prediction.

At the same time, we are still far off from understanding how learning works. Everything I did this year -- natural language, face recognition, speech recognition and so on -- are all variants of the same fundamental pattern recognition techniques. We know how to show a computer many examples of something so it can recognize it accurately, but we still do not know how to take an idea from one domain and apply it to something completely different.

To put that in perspective, I spent about 100 hours building Jarvis this year, and now I have a pretty good system that understands me and can do lots of things. But even if I spent 1,000 more hours, I probably wouldnt be able to build a system that could learn completely new skills on its own -- unless I made some fundamental breakthrough in the state of AI along the way.

In a way, AI is both closer and farther off than we imagine. AI is closer to being able to do more powerful things than most people expect -- driving cars, curing diseases, discovering planets, understanding media. Those will each have a great impact on the world, but were still figuring out what real intelligence is.

Overall, this was a great challenge. These challenges have a way of teaching me more than I expected at the beginning. This year I thought Id learn about AI, and I also learned about home automation and Facebooks internal technology too. Thats whats so interesting about these challenges. Thanks for following along with this challenge and Im looking forward to sharing next years challenge in a few weeks.

这里可以看出Zuck的执行力以及实践能力。一方面通过写Jarvis来亲自学习了一下AI现在的最近进展,另一方面这种第一手经验很好地反馈回来让他更加有信心来判断以后5-10年AI和相关产品的发展方向。我觉得我他们以及中国的广大创业者特别是投资人都应该学习这种实干的态度,而不是停留在嘴皮上预测未来。

Zuck认为计算机智能化在某些领域做得已经很好,但是最关键的自学能力和举一反三能力几乎没有(原文:We know how to show a computer many examples of something so it can recognize it accurately, but we still do not know how to take an idea from one domain and apply it to something completely different.)。Zuck他们话了100个小时来做Jarvis,但是他认为就算花1000个小时,也无法让机器能够有自学能力,除非在人工智能化领域可以有学术、科学上的重大突破。

从demo音频里来看的话,很多时候Jarvis感觉并不好用。但是毕竟能够用

messenger+声音来控制他们的家庭成员设备是一件非常酷炫的事情。

---- 附带图片中标识符的阐释 ----

这段标识符是用PHP外加Facebook的FBT写就,总体逻辑:将异步task设置好(其中两个task是做图片的人脸),另外从AI API中取得并设置好config,最终调用接口并且等待结果。

其中标识符细节:

从标识符逻辑来看,这应该是Jarvis的源标识符。从标识符细节看,译者的水平还行,但也不够完美。可以看出逻辑清晰但是标识符功力不太够 -_-。 这也合情合理,毕竟Zuck没时间保持两个高频次写标识符的状态,所以肯定是三天不写手生。举例来说(如果严格的code review的话;哈哈!给Zuck做code review真是三生有幸!):

  1. 最开始两行:$task那个变量不须要,直接往 "image" => ... 这里灌即可;而且 $task 那个太泛的名字也没有具体含义。要不就改成:$face_detect_task,当然最好就直接放入map里算了。

  2. 这两句写得一般,看起来有点学生时代写大作业的标识符的风格;同名变量反复使用,另外对于null的检查不对称。

  3. idx是两个helper method,其实就等于 $api_config[detection_tier],但是用idx的好处是如果 $api_config 为空,那么 idx 不会崩溃,而是返回null,而 $api_config[detection_tier] 直接触发异常。所以这里回头看,Zuck的80行写得并不好,最好写成:$api_config = idx(api_config, facer); 对了,idx还可以支持第三个参数,是默认值;如果那个key在map中没有的话,就直接返回默认值。

  4. 这句是控制技术含量最高的一句。FaceDetectRequestConfig::gen,这里gen代表generator,由于历史原因,Facebook的标识符用的是generator,所以异步操作就起名gen;但是这里用的是新的        resumable function;也是 ::gen 返回两个 awaitable object(类似promise,如果你玩js或者其他词汇),然后前面的await就将异步操作出发执行,最终得到从 detection_tier 来的 config。具体关于 async & await,以及 resumable function 可以参考:http://meetingcpp.com/index.php/br/items/resumable-functions-async-and-await.html (这里PHP中的resumable function是Facebook他们做的语法加强;C里一直就有,而C++会在下一代的C++1y里引入 resumable    function)。

  5. print "Configured...\n" 这句话太萌,典型的学生项目标识符。

    类似于: console.log(xxx) 或者 System.out.println("Configured...) 或 NSLog(@"Configured..."); 要是公司项目的标识符这么写,估计要被tech lead直接骂死。

不过这里Zuck敢于他们动手开始写标识符,并且最终可以有两个prototype上线开始能够使用,已经非常厉害了(毕竟很多CEO一天到晚忙除了开会,几乎什么都做不了)。

最终Zuck这段标识符的最佳形态是: