首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

华为发布会展示大模型能力,Ctrl-C中断,显示代码是time.sleep(6)?

近期,华为在发布会上展示的大模型能力引发了广泛讨论,尤其是展示过程中涉及的`time.sleep(6)`代码。

对此,知乎上有多位技术大咖给出了自己的见解和分析,我们来一起梳理一下这些观点,看看背后究竟隐藏着什么样的技术真相。

李世先的解析:多线程与后台计算的可能性

首先来看李世先的回答,他展示了两种可能的代码实现方式,用以解释华为发布会上展示的`time.sleep(6)`代码。

作者:李世先

import timeimport tracebackfrom threading import Thread

import cv2import torch

running = True

print = lambda *args, **kwargs: __builtins__.print(' '.join(map(str, args)) + '\n', end='', **kwargs)

def ModelInference(prompt, save_path): # 通过旗标传递推理程序是否中途退出 global running

# 检查推理是否已经启动 print('[INFO] 开始执行模型推理:', (prompt, save_path))

start_time = time.time() while True: if not running: print('[INFO] 按下Ctrl-C介入退出') return

# 模拟AI计算代码,耗时略大于6秒 img = ... if time.time() - start_time > 6.2: break

# 将推理图片写入路径 cv2.imwrite(img, save_path)

# 检查推理是否运行结束 print('[INFO] 运行输出结果完毕')

if __name__ == '__main__': # 等待用户输入提示词信息 prompt = input('>>> ') save_path = '/home/demo/output.jpeg'

# 发起后台线程,运行推理任务,并将参数传递给后台线程 th = Thread(target=ModelInference, args=(prompt, save_path)) th.start()

# 捕获Ctrl-C异常,避免按下Ctrl-C后主线程退出,但是后台线程继续执行任务 try: # 错误信息显示就是打印在这里 time.sleep(6) except KeyboardInterrupt: # 通过设置全局变量,传递AI推理线程中途退出的信号 running = False # 打印异常信息,因为图示中有报错显示 traceback.print_exc()

# 阻塞主线程直到后台线程运行结束,因为视频中主线程没有立刻运行结束

1. 后台线程的使用:

李世先认为,华为可能在展示中使用了后台线程来执行模型推理代码。

当用户按下Ctrl-C中断时,主线程捕获到异常并通知后台线程停止计算。

这种设计可以让主线程及时响应用户操作,而后台线程则专注于完成计算任务。

2. 简单延时示例:

另一种可能性是代码中包含了一个简单的6秒延时。这种设计可能只是为了展示效果或满足某些演示需求,而非实际的技术实现。

这两种解释都提供了一种合理的可能性,但究竟哪种更接近事实,还需要更多信息来确认。

Execublar的质疑:RAG能力与延时的疑点

Execublar的回答则提出了一个新的视角。他指出,华为展示的并非单纯的大模型能力,而是结合了RAG(检索增强生成)的技术。

RAG是一种结合了检索和生成的技术,能够在生成内容时参考检索到的信息,从而提高生成的质量和准确性。

export const sleep = (time = 0) => { return new Promise(r => { setTimeout(() => { r(time) }, time) })}

在此基础上,Execublar对展示视频中的代码流程提出了疑问。

他认为,代码中的`time.sleep(6)`可能并非为了等待模型计算结果,而是因为`rag.query`函数在找到图片后需要等待6秒才返回结果。

这种延时可能是由于某种预设的展示效果,而非实际的技术需求。

这一观点引发了不少讨论,大家纷纷猜测华为是否有意通过这种方式来增强展示效果。

Aelita的反驳:网络通信与程序阻塞

Aelita则从另一个角度出发,提出了不同的观点。他认为,`time.sleep(6)`本身并不能证明华为大模型能力的真假。

import socketimport timetcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_addr = ("localhost", 3000)tcp_socket.connect(server_addr)

if __name__ == "__main__": while True: send_data = input(">>") tcp_socket.send(send_data.encode("gbk")) recv_data = tcp_socket.recv(1024) time.sleep(6) print(recv_data)

作者:Aelita

通过一个socket通信的例子,Aelita说明了即使在按下Ctrl-C中断的情况下,程序可能由于网络通信的阻塞而无法立即结束。

import socketfrom threading import Threadimport timetcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_addr = ("localhost", 3000)tcp_socket.connect(server_addr)

def test(tcp_socket): recv_data = tcp_socket.recv(1024) print(recv_data)

if __name__ == "__main__": while True: send_data = input(">>") tcp_socket.send(send_data.encode("gbk")) t1 = Thread(target=test,args={tcp_socket}) t1.start() time.sleep(6)

作者:Aelita

他进一步指出,华为没有必要在这一技术上造假,因为其MindX SDK已经能够实现相关功能。

这种说法让人们重新思考,是否我们对华为的技术实力有所低估。

综合分析:技术展示背后的真实意图

结合上述三位知乎答主的分析,我们可以得出以下几个关键点:

1. 多线程与网络通信的复杂性:

华为在展示过程中可能使用了多线程或涉及网络通信,这些技术细节使得程序在中断时需要一定时间来处理和响应。

2. 延时的展示需求:

`time.sleep(6)`可能只是为了满足演示需求,无论是为了展示效果还是为了让观众有足够时间看清结果,这种设计并不一定代表实际的技术实现。

3. 华为技术实力的信心:

尽管存在各种猜测,但华为的技术实力和已有的技术栈如MindX SDK足以支持展示的功能实现。这意味着我们不应轻易怀疑其展示的真实性。

引发讨论:网友们怎么看?

这一事件在网上引发了热烈讨论,大家纷纷表达了自己的看法:

愤怒派:一些网友对华为展示中的细节表示质疑,认为这是在故弄玄虚,甚至有可能是技术造假。他们希望华为能够给出更详细的解释和技术细节,以证明其展示的真实性。

搞笑派:也有网友以调侃的方式表达了自己的看法,认为华为的展示就像是一个精心设计的表演,`time.sleep(6)`成为了大家调侃的对象。这些调侃不仅缓解了讨论的紧张气氛,也引发了更多人关注和讨论。

理性派:更多的网友则持理性态度,认为应该从技术角度客观看待这一事件。

华为作为技术巨头,其展示的技术应该有其合理的解释和实现方式,过度质疑和猜测并无益于理解其真实实力。

结语

华为发布会上的大模型展示引发了广泛关注和讨论,无论是多线程、网络通信还是展示效果,这些技术细节都让人们对其背后的技术实现充满好奇。

通过李世先、Execublar和Aelita的分析,我们可以看到,不同的技术视角和猜测为我们提供了丰富的信息和思考。

对于广大网友来说,继续关注华为的技术发展和更多的展示细节,将有助于我们更好地理解和评价其技术实力。

无论是质疑、调侃还是理性分析,都是我们在互联网时代面对技术事件时应有的多样反应。

这次的华为大模型展示,或许只是一个开始,未来我们将见证更多的技术突破和创新。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ODan73kRewQq6lvcchRmAd9g0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券