华为大模型演示翻车现场:time.sleep(6)真的值得大惊小怪吗?老程序员深度解析代码背后的真相!睡6秒不是什么大问题,不过图像RAG,到底是个什么坑?
ฝัง
- เผยแพร่เมื่อ 6 มิ.ย. 2024
- 付费频道订阅: / @storytellerfan
华为大模型演示翻车现场:time.sleep(6)真的值得大惊小怪吗?老程序员深度解析代码背后的真相!睡6秒不是什么大问题,不过图像RAG,到底是个什么坑?
博客地址:lukefan.com/2024/05/17/%e5%8d...
近期,华为发布了他们的升腾大模型,而现场演示的一段关于图片 RAG 生成的视频却意外爆火,原因是在演示过程中出现了一些问题,特别是代码中出现的 "time.sleep(6)" 引起了广泛讨论。不少人质疑华为大模型的真实性,认为这6秒钟的等待时间是为了掩盖后台操作,实际上并没有进行真正的 RAG 图像生成。
老范将从专业的角度为大家深度解析这段代码,揭示代码背后的真相,并探讨华为大模型演示是否存在欺骗性。老范曾经是 Borland 公司大中华区的 image list,专门负责新编程特性的演示工作,在全国各地进行过几百场演示,对职业编程演示非常熟悉。
首先,我们需要了解 RAG 的概念。RAG 是指检索辅助生成,其目的是为了避免大模型一本正经地胡说八道。其原理是预先给大模型输入大量的基础内容,比如用户手册、报表等,然后将其进行嵌入(in bedding, inviting),转化为矢量空间中的点。当用户提出问题时,大模型会将问题也进行矢量化,并在矢量空间中找到与问题最相关的几个点,从而找到与问题模糊相关的内容信息。
传统的 RAG 演示通常是基于文字的,而图片 RAG 则需要先对图片进行识别,将其转化为文字,然后再进行 RAG 生成。这种方式并不常见,更多的是直接使用 stable diffusion 等工具进行端到端的处理,例如电商中常用的换装功能就是采用这种方式。
华为演示的图片 RAG 生成功能本身就比较少见,而且演示过程中出现的 "time.sleep(6)" 以及写死文件名的代码也显得不够专业。老范认为,这可能是因为演示者现场编写代码,并没有按照华为标准的工程要求来写,因此才会出现这些不规范的代码。
当然,"time.sleep(6)" 本身也可能是为了应对大模型输出时的状态监控问题,或者是为了遵守大模型厂商设置的每分钟调用次数限制(rpm 限制)。但无论如何,这种方式都算不上友好,甚至可以被视为一种低级别的 DOS 攻击。
总的来说,华为大模型演示过程中出现的问题并不能说明其存在欺骗性,但其演示内容以及演示方式确实值得商榷。毕竟,华为的目标用户主要是企业用户和政府用户,他们更关心的是 RAG、知识库等高大上的概念,而对于图片 RAG 生成这种功能的需求并不大。
00:00:00 华为大模型演示翻车现场,Sleep 6 秒钟是真是假?
00:03:25 老范是专业的编程演示专家,将深度解析代码。
00:04:19 首先要了解华为到底在演示什么功能。
00:04:41 RAG 是什么?如何避免大模型胡说八道?
00:06:31 图片 RAG 生成与传统 RAG 的区别。
00:07:53 图片 RAG 生成在实际应用中的情况。
00:09:38 华为演示的奇怪之处:只看到翻车部分。
00:10:43 "time.sleep(6)" 到底是怎么回事?
00:16:10 演示者现场编写代码,不够专业。
00:21:06 华为演示内容的针对性分析。
欢迎加入Discord讨论服务器:
/ discord
不是大惊小怪,而是尽情耻笑。
先不论生成图片是不是造假,能把sleep写在package _init_构造函数里,已经可以说明华为遥遥领先的技术力😂
卧槽,还有这个操作,打死我,我都想不到
@@roygup 前端有句代码和这个异曲同工, 清空缓存
确实没得洗,在_init_里面写sleep,无论是演示代码还是大模型模块,都是很low的操作
不是吧,果然遥遥领先,跟我认识的华为一模一样,几年前公司和华为合作,接触过华为的开发人员,水平之低让人影响深刻,也看了鸿蒙所谓开源部分的代码,就是个小的物联网OS,根本不是手机端OS,这些经验让我一直不相信华为能做出什么好东西,我知道华为的好用点的软件全是买的老外的OEM😂
老范还是不够专业呀,这个call stack是在write把结果写进文件这一步sleep的,生成的步骤已经结束了,造假的部分在mindx 库的代码里,完全没得洗
正确,生成已经结束,明摆的就是造假。根本洗不了
可以洗啊,假装是每六秒看一下模型有没有生成结果。不过一般没人会写每六秒,一般每一秒半秒,两秒撑死了。
@@Guavaava那不还是死路吗😂
是我草率了,确实很难洗
遥遥领先6秒钟
幫范老兄做個小補充。
中文比英文的token用得多,主要是因為中文沒有空格分隔單詞的象形文字,每個漢字都可以是一個單詞或單詞的一部分。
要確定單詞邊界就需要多一個步驟,所以在分詞時就會產生額外的token。
漢字用的token沒辦法用直觀的方法確定,有時候一個字就能掉2個token也有可能一個3字詞語只用掉4個token,所以要算token數還是用Token計算器幫我們去算吧。
而英文目前是可以做到1個單字1個token,除非是複合詞,就要2個token。
但不管中英文,每個標點符號,都要1個token。
知識有限,如有錯漏,還請大家指正一下。
漢字 作為 資訊 傳播 的 工具 太多 缺點,要 改 的 東西 太多 就 改天吧!這樣 太 偷懶了.在 每個 單詞 之間 加個 空白 應該 是 現在 可以 改進 一小步.但是 華語圈 太 懶,中華文明 好棒棒 的 政治 洗腦 太 入魂!
好吧加了空白不忍卒讀.乖乖讓下一代用英語當主要語言吧.
英文词稍微长点儿的也得两个token或者以上。比如Communism就很可能被分成com,mun,ist三个token。一个单词的不同部分编码了这个单词的部分意思
Token这个词,也算是在区块链之后,重新站在了舞台的中间吧。
照常理推斷就是6秒後show預設圖片,要不沒必要中斷運行
大家只在意這個當下,他前一步的動作是打了「幫我」然後可能誤按enter,就執行了,然後很迅速的按中斷執行,我是在想啊,如果他沒按中斷的話,會不會也輸出那張圖片呢?科科~
后台可能有几百张照片可以选择,对比一下输入提示词,找一张输出来,呵呵
你知道得太多了。
请范老师注意一下trace,sleep(6)是在ret.write里面调用的,谁家好人写文件的时候还sleep啊?
你说的有道理,一般不会在write里面做这事,但是也不能排除,这个所谓的write方程,就是等结果,然后写下来。但是,等结果时也该用sleep(1)才对啊,sleep(6)间隔太长了,如果第一次没有等到,第二次就要12秒后了。总的来说,还是不符合常规。
@@mizhang118 沒錯雖然是很想往好的方面想,但輪尋等待的間隔時間都會設很短,這個6秒只有server壓力過大時才有可能,可一個小小demo能有甚麼壓力?
应该是图片生成的过程需要等待。生成过程,没有进行监控,直接等了6秒。
@@StorytellerFan 如果6秒没完成咋办?
范老师讲的很清晰❤
这个背景不错
脚本写个循环判断图片是否生成好了。也不难啊。
没有调用过AI软件的API。但一般来讲 启动一个任务的调用 有6秒的间隔限制 可以理解。但对状态查询 采用6秒的间隔限制 就太太长了
我觉得可以分析一下这个sleep(6)是这个demo现场写的还是production的API库里出的 我们可以看看sleep(6)前面的backtrack的函数 名字看起来像是一个产品化的库的里的函数呢还是像一个为了演示临时写的东西的函数 还有一个可能性就是用sleep(6)做了timer 每6秒试试有没有结果出来 如果结果在6秒之前就出了 确实会在等满6秒之后才会显示出来
谁的代码会用轮询的方式查看大模型有没有出结果?如果是真的,那比作假还搞笑。后者是态度问题,前者那就是技术太菜了。
如果用自旋方式,你会采用6秒做一次轮询吗?
想象一下如果他不ctrl+C会怎样,画面太美不敢想,哈哈哈
这背景挺好看
感谢支持。
欢迎来到 老范讲笑话!
sleep6 😂生怕图马上出来,不真实😂
文件名写死问题不大,这句代码不在库里,应该是现场写的,但sleep6是写在库里的,更离谱的是写在库包的__init__.py文件里,我作为超过5年的Python开发,从没见过在这个文件里放sleep语句的
如果是异步调用,用sleep等待完成也是比较常见的,但这种秒级应用,正常程序员会按1s甚至更短间隔查询状态,而不是估算个6秒直接sleep6,更何况这个6秒还是hardcode写死在库代码里,如果这种code提PR,我一定不会approve
@@zhgcao如果是异步调用那为什么不用await呢?
@@alexsun1203 也没啥,个人习惯不同
@@zhgcao 异步调用,使用sleep?这是多小白的人,算不上程序员。
@@zhgcao 异步根本不需要sleep,只有多线程才会需要sleep去轮询查询状态,那种情况不叫异步,叫非阻塞。这种小演示怎么可能用得到sleep。同步阻塞和异步非阻塞都不可能用到sleep,只有一种可能需要用到sleep,那就是同步非阻塞。这年头没人这么写代码。
脚本本身没问题 但等6秒太扯 人等6秒不怎么样 但cpu等六秒 相当于人等6小时
出图,等6秒不算长。
命令行应该不用锁了
他就是怕输入 "请帮" 后出图片就完全没得洗, 所以 ctrl + c 取消
生成图片刚好6秒, 意味 rag.query 不用等, ret.write 内等了6秒
华为多几个live demo就能自证, 问题敢吗?
不觉得有什么问题
刚写的时候 都会用sleep 不去细算了
范老师以前是工程师? 厉害呀
老程序员,很老的那种。
不错,老范还是懂规矩的~某些人别以为在油管上就治不了你~
真要辟谣很简单, 开放给公众用一下么
各家公司在那邊屁半天,上線使用就見分曉了
模型还不太稳定怎么办?那就做个脚本,模拟最佳输出吧。
洗地洗得不错。
大家理解一下,老范也挺不容易的,能忍住不笑就算是高人了
让出CPU6秒
这期的整体感觉:标题很娱乐,内容很硬核。听得我整个人跟个外宾似的😂
不懂請教,那個演示的爲什麽先打“幫我”然後不對了趕緊中斷?難道華爲是中文編程?
他的“幫我”是跟大語言模型用自然語言做請求,不是程式碼用中文,所以他中斷的原因是跟AI說錯話了
@@austinsu5838 是嗎?那麽説錯“幫我”,那麽ai會幹啥呢?ai以爲出來啥大事兒,立即撥打報警電話?有點感覺像和人家説話説錯了,於是乾脆打暈對方lol
讯息写错字,你也会回撤或更改。你的app会报警?
老范的ai知识还是可以的
任何演示项目一定要把错误信息重定向到文件,华为当年的规定
遵守这种规定的人,应该都超过35岁,被任老爷子送去社会体会寒意了。
under the hood,识别效果不好,大领导又要求实时演示,下面的人就开始动脑筋了,大模型敢直播演示,现在就是会翻车
不值得大惊小怪,主要看允不允许评论,禁不禁止评论,无论是夸的,还是踩的
与盘古大模型有关系吗?纯粹借题发挥。
暴露年龄 Borland 公司 哈哈哈
哈哈,可算笑死我了,time.sleep(6)
首先rag就不是用来生成图片的,只是把检索出的数据通过语言生成模型润色下,从一个冰冷的数据变成更像人类的回答,并且符合上下文的语境。华为竟然说这是rag技术生成图片,这就很扯了,并且代码stack已经很明显的是调用了write方法,然后写出了一个demo 图片,太假了,这就是中国最先进的公司😂😂😂
AI我先睡为敬,你们随意~
要是其他公司,其实没多大事,毕竟为了避免直播翻车,做了个假的是可以理解的。华为主要是劣迹斑斑 招恨
不懂,他那里劣迹斑斑了,不感觉有什么招恨
@@user-zu6ny3jp4v拍月亮用算法补充细节,手机鸿蒙明明就是aosp,却让人以为是华为自主研发。
@@user-zu6ny3jp4v 自己员工谈离职,被拘留了251天
996的首创者。从此所有的IT从业人员 就没有了属于自己的时间 没有了和家人共度的时光
@@snowboarddw8823那是阿里吧。但是科学合理的工作也是需要的。
老范人在国内,理解一下吧。
要辟谣很简单,
官媒出来说一声,
大家就继续爱国了。
昇腾社区的回应好好看看,不要信口开河,丢人呢。
老是翻车,华为肯定也是出了问题
一个打这么多外国大厂,不容易啊。
模型不是自己的吗
出图的应该是Stable Diffusion
这是开了多少美颜啊,看上去脸瘦,坐在那里肚子是凸起的
这是华为优良传统,一直保持,一直遥遥领先,没什么大不了,只要有华为标,全球最大的企业粉丝自动确定!原来华为手机照片演示用佳能单反照片也不是没什么事吗?老范说华为那么多人讨厌,但确实有更多人喜欢,而且不管你喜不喜欢,所有舆论工具都在华为这边,不喜欢的人根本就没多大关系
不懂就显得你的无知了
感觉在网上喷果粉的、喷华为粉的、喷特斯拉粉的,都是同一帮人。
喜欢苹果就是崇洋媚外,喜欢华为就是被爱国道德绑架,喜欢特斯拉就是当马斯克的狗。
在你们眼中从来就没有 “单纯因为觉得它好用啊” 这个概念。
一时不知道你时讽刺还是花粉了
@@user-jdi8kqwfj2 讽刺和花粉都谈不上,说事实而已,没用过华为
不太怀疑华为的技术水平,但是为华为造假成性感到羞耻。
这不中国特色么
别带节奏了。有时间留谣言,不如学习去。
灯泡变月亮的惯性思维
看到那张图片的人先排队给菊花道个歉吧。
不接受反驳😅