-
已完成
-
ChatGPT,美国“开放人工智能研究中心”研发的聊天机器人程序 ,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。发展历程ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接大量的语料库来训练模型,这些语料库包含了真实世界中的对话,使得ChatGPT具备上知天文下知地理,还能根据聊天的上下文进行互动的能力,做到与真正人类几乎无异的聊天场景进行交流。ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。在OpenAI的官网上,ChatGPT被描述为优化对话的语言模型,是GPT-3.5架构的主力模型。ChatGPT具有同类产品具备的一些特性,例如对话能力,能够在同一个会话期间内回答上下文相关的后续问题。然而,其在短时间内引爆全球的原因在于,在网友们晒出的截图中,ChatGPT不仅能流畅地与用户对话,甚至能写诗、撰文、编码。ChatGPT还采用了注重道德水平的训练方式,按照预先设计的道德准则,对不怀好意的提问和请求“说不”。一旦发现用户给出的文字提示里面含有恶意,包括但不限于暴力、歧视、犯罪等意图,都会拒绝提供有效答案。2022年11月底,人工智能对话聊天机器人ChatGPT推出,迅速在社交媒体上走红,短短5天,注册用户数就超过100万。2023年一月末,ChatGPT的月活用户已突破1亿,成为史上增长最快的消费者应用。2023年2月2日,美国人工智能(AI)公司OpenAI发布ChatGPT试点订阅计划——ChatGPT Plus。ChatGPT Plus将以每月20美元的价格提供,订阅者可获得比免费版本更稳定、更快的服务,及尝试新功能和优化的优先权。2023年2月2日,微软官方公告表示,旗下所有产品将全线整合ChatGPT,除此前宣布的搜索引擎必应、Office外,微软还将在云计算平台Azure中整合ChatGPT,Azure的OpenAI服务将允许开发者访问AI模型。2023年2月3日消息,IT 行业的领导者们担心,大名鼎鼎的人工智能聊天机器人 ChatGPT,已经被黑客们用于策划网络攻击时使用。黑莓 (Black Berry) 的一份报告调查了英国 500 名 IT 行业决策者对 ChatGPT 这项革命性技术的看法,发现超过四分之三 (76%) 的人认为,外国已经在针对其他国家的网络战争中使用 ChatGPT。近一半 (48%) 的人认为,2023 年,将会出现有人恶意使用 ChatGPT 而造成“成功”的网络攻击。当地时间2023年2月2日,ChatGPT的开发公司——美国人工智能公司OpenAI顺势推出了这一应用程序的付费订阅版本。2023年2月7日,微软宣布推出由ChatGPT支持的最新版本人工智能搜索引擎Bing(必应)和Edge浏览器。微软CEO表示,“搜索引擎迎来了新时代”。 8日凌晨,在华盛顿雷德蒙德举行的新闻发布会上,微软宣布将OpenAI传闻已久的GPT-4模型集成到Bing及Edge浏览器中。技术逻辑结合ChatGPT的底层技术逻辑,有媒体曾列出了中短期内ChatGPT的潜在产业化方向:归纳性的文字类工作、代码开发相关工作、图像生成领域、智能客服类工作。核心竞争力ChatGPT受到关注的重要原因是引入新技术RLHF (Reinforcement Learning with Human Feedback,即基于人类反馈的强化学习)。RLHF 解决了生成模型的一个核心问题,即如何让人工智能模型的产出和人类的常识、认知、需求、价值观保持一致。ChatGPT是AIGC(AI- Generated Content,人工智能生成内容)技术进展的成果。该模型能够促进利用人工智能进行内容创作、提升内容生产效率与丰富度。技术局限性ChatGPT 的使用上还有局限性,模型仍有优化空间。ChatGPT模型的能力上限是由奖励模型决定,该模型需要巨量的语料来拟合真实世界,对标注员的工作量以及综合素质要求较高。ChatGPT可能会出现创造不存在的知识,或者主观猜测提问者的意图等问题,模型的优化将是一个持续的过程。若AI技术迭代不及预期,NLP模型优化受限,则相关产业发展进度会受到影响。此外,ChatGPT盈利模式尚处于探索阶段,后续商业化落地进展有待观察。
-
前言 本程序主要实现了python的opencv人工智能视觉模块的口罩检测实时语音检测报警。 若不知道怎么安装opencv或者使用的请看我的这篇文章(曾上过csdn综合热榜的top1): python进阶——人工智能视觉识别_lqj_本人的博客-CSDN博客 同时,另一篇基于opencv的人工智能视觉实现的目标实时跟踪功能(增上过csdn综合热榜的top5): python进阶——人工智能实时目标跟踪_lqj_本人的博客-CSDN博客 项目介绍 PaddlenHub模块 PaddleHub是飞桨预训练模型管理和迁移学习工具,通过PaddleHub开发者可以使用高质量的预训练模型结合Fine-tune API快速完成迁移学习到应用部署的全流程工作。其提供了飞桨生态下的高质量预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。 使用时可能遇到的bug AttributeError: partially initialized module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipeline‘ bug显示:cv2没有指定的依赖。 解决方法 在我们的pycharm中自带的命令窗口中输入: pip install opencv-python install "opencv-python-headless<4.3" 然后,我们再把我们的opencv-python降低版本为与我们安装的opencv-python-headless版本相同即可,我这里用的都是4.2.0.34版本。 方法解释 因为opencv4.3以上的版本会存在与其他模块依赖的兼容性问题,4.3以上的版本兼容性较差,所以,有时会出现一下bug之类的错误。有时,其实我们写的代码没有问题,只是问题出在了依赖的兼容性问题上! playsound模块 PlaySound是Windows用于播放音乐的API函数(方法)。在vs2010以上版本需要加入#pragma comment(lib, "winmm.lib")才能使用PlaySound。PlaySound函数原型为 BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound)。PlaySound参数,pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。 项目思路 1.使用PaddlenHub模块指定算法,根据面部特征的上下左右来判断是否面部有物体遮挡,并判断遮挡区域及位置,若判断条件成功,则绘制绿色矩形及英文提示。若判断条件失败,则绘制红色矩形及英文提示! 2.使用playsound模块指定我们录制好的MP3文件,当判断条件符合时,则按照playsound模块原生函数播放MP3文件,达到语音警告提示效果! 代码详解 首先导入相应模块 import paddlehub import cv2 from playsound import playsound 指定paddlehub模块中的算法并赋值 module=paddlehub.Module(name="pyramidbox_lite_mobile_mask") 调用本机摄像头 cap=cv2.VideoCapture(0) 循环判断指定位置及遮挡区域 while(cap.isOpened()): frame = cap.read()[1] input_dict = {'data':[frame]} results = module.face_detection(data=input_dict) result = results[0] 设置绑定键盘按压事件 k = cv2.waitKey(1) & 0xFF # 判断按键 判断肯定条件时绿色字体和矩形 if result['data']!=[]: label = result['data'][0]['label'] left = result['data'][0]['left'] right = result['data'][0]['right'] top = result['data'][0]['top'] bottom = result['data'][0]['bottom'] color = (0,255,0) color2 = (0,255,0) 判断否定条件时红色字体和矩形,并播放语音警告提示 if label == 'NO MASK': color = (0,0,255) color2 = (0,0,255) playsound('1.mp3') cv2最后的绘制及显示交互窗口 cv2.rectangle(frame,(left,top),(right,bottom),color,3) cv2.putText(frame,label,(left,top-10),cv2.FONT_HERSHEY_SIMPLEX,0.8,color2,2) cv2.imshow('xianshi',frame) 判断监听键盘按压事件 if k == ord(' '):#退出 break 释放摄像头及内存 #释放摄像头 cap.release() #释放内存 cv2.destroyAllWindows() 完整代码及注释 import paddlehub import cv2 from playsound import playsound #指定paddlehub模块的视觉算法 module=paddlehub.Module(name="pyramidbox_lite_mobile_mask") #调用本机摄像头 cap=cv2.VideoCapture(0) #循环判断面部区域位置 while(cap.isOpened()): frame = cap.read()[1] input_dict = {'data':[frame]} results = module.face_detection(data=input_dict) result = results[0] #绑定键盘监听事件 k = cv2.waitKey(1) & 0xFF # 判断按键 #当判断为肯定时,则绘制绿色矩形及文字 if result['data']!=[]: label = result['data'][0]['label'] left = result['data'][0]['left'] right = result['data'][0]['right'] top = result['data'][0]['top'] bottom = result['data'][0]['bottom'] color = (0,255,0) color2 = (0,255,0) #当判断为否定式绘制红色矩形及文字 if label == 'NO MASK': color = (0,0,255) color2 = (0,0,255) #打开录制的MP3语音文件 playsound('1.mp3') #cv2最会的绘制及显示 cv2.rectangle(frame,(left,top),(right,bottom),color,3) cv2.putText(frame,label,(left,top-10),cv2.FONT_HERSHEY_SIMPLEX,0.8,color2,2) #显示交互窗口 cv2.imshow('xianshi',frame) #监听键盘事件,并判断是否退出 if k == ord(' '):#退出 break #释放摄像头 cap.release() #释放内存 cv2.destroyAllWindows() 效果展示(不带口罩时会有重复语音警告) ———————————————— 版权声明:本文为CSDN博主「lqj_本人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lbcyllqj/article/details/128905097
-
前言 python在人工智能方面可以毫不客气的说,比其他的所有语言都要有优势,因为python的背后有一个非常强大的资源库来支撑着python运作。 opencv库 opencv是最经典的python视觉库,它里面包含了很多种视觉的识别类型供开发者们使用。 opencv库的下载 我们可以在我们的pycharm里面输入以下代码进行下载,但这里我们下载的是阉割版的。 pip install opencv-python 当我们的pycharm下载完成之后,我们呢还需要在opencv的官网进行下载: 首页 - OpenCV 然后我们选择(如下图所示): 进入之后,我们就可以看到opencv相对应的版本了: 然后,我们选择自己使用的系统进行下载并安装即可(仅安装即可,opencv不用环境配置!只需要记住安装在哪里,当我们使用的时候直接调取我们的安装目录就可以!) 当安装完成之后,我们就可以看到安装路径下的这些文件: 里面包含眼睛识别,面部识别等一些强大的识别算法! 人脸检测报警系统(可用于:家用监控;人脸门禁;人脸打卡签到等) 这里我将本功能分为了三个py文件来展开描述: 抓取人脸功能模块 首先,导入cv库 import cv2 然后调取我们的摄像头(0代表本机摄像头,其他代表外接摄像头) cap = cv2.VideoCapture(0) 用while来判断是否为开启状态: while(cap.isOpened()): 得到每一帧的图片进行赋值: ret_flag,Vshow = cap.read() 调用控制键盘函数,控制判断按键: k = cv2.waitKey(1) & 0xFF 使用imshow函数显示拍摄图像: cv2.imshow('ceshi',Vshow) 键盘监听,按s键进行保存: if k == ord('s'): 保存拍摄图像的格式,打印提示文字: cv2.imwrite('E:/tupian/'+str(num)+'.name'+'.jpg',Vshow) print('保存成功'+str(num)+".jpg") print("-------------------------") num += 1 释放摄像头与内存: #释放摄像头 cap.release() #释放内存 cv2.destroyAllWindows() 完整代码: import cv2 cap = cv2.VideoCapture(0) falg = 1 num = 1 while(cap.isOpened()):#检测是否在开启状态 ret_flag,Vshow = cap.read()#得到每一帧的图像 k = cv2.waitKey(1) & 0xFF#判断按键 cv2.imshow('ceshi',Vshow)#显示图像 if k == ord('s'):#按s键保存 cv2.imwrite('E:/tupian/'+str(num)+'.name'+'.jpg',Vshow) print('保存成功'+str(num)+".jpg") print("-------------------------") num += 1 elif k == ord(' '):#退出 break #释放摄像头 cap.release() #释放内存 cv2.destroyAllWindows() 录入人脸功能模块 在写这个功能模块之前,我们要在pycharm中或cmd中的本文件根目录下使用命令行,安装face模块使用函数: pip install opencv-contrib-python 导入第三方库: import os import cv2 from PIL import Image import numpy as np 存储人脸数据: facesSamples=[] 存储姓名数据: ids=[] 存储图片信息: imagePaths=[os.path.join(path,f) for f in os.listdir(path)] 加载分类器(就是我们上面讲到的在opencv官网下载的库,我们只需要调取安装目录就可以): face_detector = cv2.CascadeClassifier('E:/open-cv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml') 遍历列表中的图片: for imagePath in imagePaths: 将打开的图片灰度化: PIL_img = Image.open(imagePath).convert('L') 将图片转化为数组: img_numpy = np.array(PIL_img,'uint8') 获取图片人脸特征: faces = face_detector.detectMultiScale(img_numpy) 获取每一张拍摄图片的id与姓名: id = int(os.path.split(imagePath)[1].split('.')[0]) 做判断,预防拍摄无面容图片: for x,y,w,h in faces: ids.append(id) facesSamples.append(img_numpy[y:y+h,x:x+w]) 打印面部特征与id,并返回数据: print('id',id) print('fs:',facesSamples) return facesSamples,ids 调用图片路径(有第一步抓取人脸后按s键保存到'E:/tupian/'路径下的图片): path = 'E:/tupian/' 获取图像数组和id标签数组和姓名: faces,ids=getImageAndLabels(path) 加载识别器: recognizer = cv2.face.LBPHFaceRecognizer_create() 训练数据: recognizer.train(faces,np.array(ids)) 保存面部特征到文件夹(创建一个文件夹,用于存放读取的面部信息): recognizer.write('tupian/tupian.yml') 完整代码: import os import cv2 from PIL import Image import numpy as np def getImageAndLabels(path): #储存人脸数据 facesSamples=[] #储存姓名数据 ids=[] #储存图片信息 imagePaths=[os.path.join(path,f) for f in os.listdir(path)] #加载分类器 face_detector = cv2.CascadeClassifier('E:/open-cv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml') #遍历列表中的图片 for imagePath in imagePaths: #打开图片,灰度化PIL有九种不同的模式:1,L,P,RGB,RGBA,CMYK,YCbCr,I,F PIL_img = Image.open(imagePath).convert('L') #将图像转化为数组,以黑白深浅 img_numpy = np.array(PIL_img,'uint8') #获取图片人脸特征 faces = face_detector.detectMultiScale(img_numpy) #获取每一张图片的id和姓名 id = int(os.path.split(imagePath)[1].split('.')[0]) #预防无面容照片 for x,y,w,h in faces: ids.append(id) facesSamples.append(img_numpy[y:y+h,x:x+w]) #打印面部特征和id print('id',id) print('fs:',facesSamples) return facesSamples,ids if __name__ == '__main__': #图片路径 path = 'E:/tupian/' #获取图像数组和id标签数组和姓名 faces,ids=getImageAndLabels(path) #加载识别器 recognizer = cv2.face.LBPHFaceRecognizer_create() #训练 recognizer.train(faces,np.array(ids)) #保存文件 recognizer.write('tupian/tupian.yml') 人脸识别功能模块 导入第三方库: import cv2 import os 加载训练过的数据文件: recogizer = cv2.face.LBPHFaceRecognizer_create() 加载保存过的面部信息: recogizer.read('tupian/tupian.yml') 定义名称数组: names=[] 识别全局变量定义: warningtime = 0 识别视频中人脸模块: def face_detect_demo(img): gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#转换为灰度 face_detector=cv2.CascadeClassifier('E:/open-cv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml') face=face_detector.detectMultiScale(gray) for x,y,w,h in face: cv2.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2) cv2.circle(img,center=(x+w//2,y+h//2),radius=w//2,color=(0,255,0),thickness=1) # 人脸识别 ids, confidence = recogizer.predict(gray[y:y + h, x:x + w]) if confidence > 80: global warningtime warningtime += 1 if warningtime > 100: # warning() warningtime = 0 cv2.putText(img, 'unkonw', (x + 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 255, 0), 1) else: cv2.putText(img,str(names[ids-1]), (x + 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 255, 0), 1) cv2.imshow('result',img) 导入存储的图片名字标签: def name(): path = 'E:/tupian/' # names = [] imagePaths=[os.path.join(path,f) for f in os.listdir(path)] for imagePath in imagePaths: name = str(os.path.split(imagePath)[1].split('.',2)[1]) names.append(name) 加载监控或已保存下来的视频: cap=cv2.VideoCapture('1.mp4') name() while True: flag,frame=cap.read() if not flag: break face_detect_demo(frame) if ord(' ') == cv2.waitKey(10): break 释放内存与视频: cv2.destroyAllWindows() cap.release() 完整代码: import cv2 import os #加载训练数据文件 recogizer = cv2.face.LBPHFaceRecognizer_create() #加载数据 recogizer.read('tupian/tupian.yml') #名称 names=[] #报警全局变量 warningtime = 0 #准备识别的图片 def face_detect_demo(img): gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#转换为灰度 face_detector=cv2.CascadeClassifier('E:/open-cv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml') face=face_detector.detectMultiScale(gray) for x,y,w,h in face: cv2.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2) cv2.circle(img,center=(x+w//2,y+h//2),radius=w//2,color=(0,255,0),thickness=1) # 人脸识别 ids, confidence = recogizer.predict(gray[y:y + h, x:x + w]) if confidence > 80: global warningtime warningtime += 1 if warningtime > 100: # warning() warningtime = 0 cv2.putText(img, 'unkonw', (x + 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 255, 0), 1) else: cv2.putText(img,str(names[ids-1]), (x + 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 255, 0), 1) cv2.imshow('result',img) #名字标签 def name(): path = 'E:/tupian/' # names = [] imagePaths=[os.path.join(path,f) for f in os.listdir(path)] for imagePath in imagePaths: name = str(os.path.split(imagePath)[1].split('.',2)[1]) names.append(name) #加载视频 cap=cv2.VideoCapture('1.mp4') name() while True: flag,frame=cap.read() if not flag: break face_detect_demo(frame) if ord(' ') == cv2.waitKey(10): break #释放内存+视频 cv2.destroyAllWindows() cap.release() 最终显示效果: 录入过的面部信息就会显示录入的姓名(如下面的LQJ),未录入过的面部信息就会显示unkonw(不知道的状态)。 ———————————————— 版权声明:本文为CSDN博主「lqj_本人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lbcyllqj/article/details/128801971
-
已完成,第一个字是风开头的。
-
使用ATC命令将LSTM算法模型的ONNX转om格式,报错。使用的脚本:export ASCEND_SLOG_PRINT_TO_STDOUT=1/home/quietwood/Ascend/ascend-toolkit/5.0.mdc300/atc/bin/atc --output="./lstm.om" --model=/home/quietwood/data/model/lstm_opset11.onnx --framework=5 --soc_version=Ascend310 --log=error报错日志:ATC start working now, please wait for a moment.[EVENT] GE(10621,atc.bin):2023-01-30-09:56:48.267.773 [../../../../../../graphengine/ge/init/gelib.cc:68]10621 Initialize:[GEPERFTRACE] GE Init Start[ERROR] FE(10621,atc.bin):2023-01-30-09:56:48.905.127 [../../../../../../fusion_engine/optimizer/graph_optimizer/fusion_common/fusion_pass_manager.cc:154]10621 OpenPassPath:"Failed to open plugin so."[EVENT] FE(10621,atc.bin):2023-01-30-09:56:48.959.909 [../../../../../../fusion_engine/optimizer/fusion_config_manager/fusion_config_parser.cc:243]10621 ParseFusionConfigFile:"[FE_PERFORMANCE]The time cost of FusionConfigParser::ParseFusionConfigFile is [1060] micro second."[EVENT] FE(10621,atc.bin):2023-01-30-09:56:48.960.475 [../../../../../../fusion_engine/optimizer/fusion_config_manager/fusion_priority_manager.cc:79]10621 SortGraphFusion:"[FE_PERFORMANCE]The time cost of FusionPriorityManager::SortGraphFusion is [531] micro second."[EVENT] FE(10621,atc.bin):2023-01-30-09:56:48.960.597 [../../../../../../fusion_engine/optimizer/fusion_manager/fusion_manager.cc:223]10621 Initialize:"[FE_PERFORMANCE]The time cost of FusionManager::Initialize is [638271] micro second."[EVENT] GE(10621,atc.bin):2023-01-30-09:56:49.033.810 [../../../../../../graphengine/ge/init/gelib.cc:97]10621 Initialize:[GEPERFTRACE] The time cost of GELib::Initialize is [765997] micro second.[EVENT] GE(10621,atc.bin):2023-01-30-09:56:49.114.167 [../../../../../../graphengine/ge/graph/manager/graph_manager.cc:790]10621 PreRun:PreRun start, graph node size 16, session id 0, graph id 0, graph name lstm.om[EVENT] FE(10621,atc.bin):2023-01-30-09:56:49.121.286 [../../../../../../fusion_engine/optimizer/graph_optimizer/fe_graph_optimizer.cc:467]10621 OptimizeGraphPrepare:"[FE_PERFORMANCE]The time cost of FEGraphOptimizer::OptimizeTagNoConstFoldingGraph is [464] micro second."[EVENT] GE(10621,atc.bin):2023-01-30-09:56:49.121.935 [../../../../../../graphengine/ge/graph/manager/graph_manager.cc:693]10621 PreRunOptimizeOriginalGraph:[GEPERFTRACE] The time cost of GraphManager::stages.optimizer.OptimizeOriginalGraphForQuantize is [1123] micro second.[EVENT] GE(10621,atc.bin):2023-01-30-09:56:49.121.964 [../../../../../../graphengine/ge/graph/manager/graph_manager.cc:694]10621 PreRunOptimizeOriginalGraph:[GEPERFTRACE] The time cost of GraphManager::stages.optimizer.HandleSummaryOp is [10] micro second.[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.140.946 [../../../../../../../../cann/ops/built-in/op_proto/array_ops.cc:1496][OP_PROTO] SqueezeVerify:1496 OpName:[Squeeze] "input shape has dim not equal to 1."[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.140.976 [../../../../../../metadef/graph/shape_refiner.cc:735]10621 InferShapeAndType: ErrorNo: -1(failed) Verifying Squeeze failed.[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.141.154 [../../../../../../graphengine/ge/graph/passes/infershape_pass.cc:41]10621 Run: ErrorNo: 1343242270(Prepare Graph infershape failed) infershape failed. node: Squeeze[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.141.165 [../../../../../../graphengine/ge/graph/passes/base_pass.cc:88]10621 RunPasses: ErrorNo: 1343225860(Internal errors) Failed to process pass InferShapePass on node Squeeze, result 1343242270, the passes will be terminated immediately.[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.141.172 [../../../../../../graphengine/ge/graph/passes/base_pass.cc:216]10621 RunPassesOneGraph: ErrorNo: 1343242270(Prepare Graph infershape failed) Failed to process passes on node Squeeze type Squeeze, error code: 1343242270[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.141.199 [../../../../../../graphengine/ge/graph/preprocess/graph_preprocess.cc:1689]10621 InferShapeForPreprocess: ErrorNo: 1343242270(Prepare Graph infershape failed) Run ge_passes infershape for preprocess failed, ret:1343242270.[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.141.219 [../../../../../../graphengine/ge/graph/preprocess/graph_preprocess.cc:1283]10621 FormatAndShapeProcess: ErrorNo: 1343242270(Prepare Graph infershape failed) Prepare Graph infershape failed[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.141.226 [../../../../../../graphengine/ge/graph/preprocess/graph_preprocess.cc:1417]10621 PrepareDynShape: ErrorNo: 1343242270(Prepare Graph infershape failed) Failed to process Prepare_FormatAndShapeProcess[EVENT] GE(10621,atc.bin):2023-01-30-09:56:49.141.233 [../../../../../../graphengine/ge/graph/manager/graph_manager.cc:696]10621 PreRunOptimizeOriginalGraph:[GEPERFTRACE] The time cost of GraphManager::stages.preparer.PrepareDynShape is [19263] micro second.[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.141.239 [../../../../../../graphengine/ge/graph/manager/graph_manager.cc:696]10621 PreRunOptimizeOriginalGraph: ErrorNo: 1343242270(Prepare Graph infershape failed) Failed to process GraphManager_stages.preparer.PrepareDynShape[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.141.245 [../../../../../../graphengine/ge/graph/manager/graph_manager.cc:809]10621 PreRun: ErrorNo: 1343242270(Prepare Graph infershape failed) Run PreRunOptimizeOriginalGraph failed for graph:lstm.om.[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.148.596 [../../../../../../graphengine/ge/graph/manager/graph_manager.cc:881]10621 StartForRunGraph: ErrorNo: 1343242270(Prepare Graph infershape failed) PreRun Failed.[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.148.620 [../../../../../../graphengine/ge/graph/manager/graph_manager.cc:1253]10621 BuildGraph: ErrorNo: 1343242268(PreRun failed.) [BuildGraph] StartForRunGraph failed![ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.148.632 [../../../../../../graphengine/ge/generator/ge_generator.cc:882]10621 BuildModel: ErrorNo: 1343266819(Graph manager build graph failed.) GraphManager build graph fail, graph id: 0[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.148.644 [../../../../../../graphengine/ge/generator/ge_generator.cc:580]10621 GenerateModel: ErrorNo: 1343266819(Graph manager build graph failed.) Build model failed.[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.148.755 [../../../../../../../graphengine/ge/offline/main.cc:1000]10621 GenerateModel: ErrorNo: -1(failed) GE GenerateOfflineModel execute failed[ERROR] GE(10621,atc.bin):2023-01-30-09:56:49.148.768 [../../../../../../../graphengine/ge/offline/main.cc:1001]10621 GenerateModel: ErrorNo: -1(failed) ATC Generate execute failed[EVENT] FE(10621,atc.bin):2023-01-30-09:56:49.684.773 [../../../../../../fusion_engine/optimizer/fusion_manager/fusion_manager.cc:290]10621 Finalize:"[FE_PERFORMANCE]The time cost of FusionManager::Finalize is [525065] micro second."ATC run failed, Please check the detail log, Try 'atc --help' for more informationE14001: Op[Squeeze] type[Squeeze]'s shape is invalid, input shape has dim not equal to 1.
-
一、文章前言 最近在Dou音很火的AI绘画特效能够实现将人脸进行动漫化,让我们用小程序也制作一个吧。 二、具体流程及准备 2.1、注册百度开放平台及微信公众平台账号。 2.2、下载及安装微信Web开发者工具。 2.3、如需通过SDK调用及需准备对应语言的开发工具。 三、开发步骤 3.1、访问百度开放平台选择图像增强与特效并领取免费资源。 3.2、在应用列表点击创建应用并填写表单所需要的各项信息。 3.3、创建完毕后回到应用列表,将API Key 以及Serect Key复制出来,后面我们需要通过这些凭证来获取Token。 3.4、应用创建好后,打开微信开发者工具,新建项目,依次选择不使用模板、不使用云服务。 3.5、在pages文件夹下面创建一个文件夹并新建对应的page文件 3.6、在JS文件中的onLoad函数中请求获取Token的接口,这时候就需要用到我们刚才所申请的ApiKey等信息; 了。 /** * 生命周期函数--监听页面加载 */ onLoad(options) { let that = this; let ApiKey='这里填你所申请的ApiKey'; let SecretKey='这里填你所申请的SecretKey'; wx.request({ url: 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + ApiKey+'&client_secret='+SecretKey, method: 'POST', success: function (res) { that.setData({ AccessToken:res.data.access_token }); } }); }, 3.7、编译程序,检查接口是否有正常返回,下图所标记的字段就是我们所需要的token了,它的有效期为30天,记得要及时更新。 3.8、查看人像动漫化接口描述及请求说明,结合人脸检测、头发分割、人像分割等技术,为用户量身定制千人千面的二次元动漫形象。 参数 是否必选 类型 说明 image 和url二选一 string base64编码后大小不超过10M url 和image二选一 string 图片完整URL,URL长度不超过1024字节 type 否 string anime或者anime_mask。前者生成二次元动漫图,后者生成戴口罩的二次元动漫人像 mask_id 否 string 在type参数填入anime_mask时生效 { 'image': '这里放经过base64转换后的图片' } 3.9、实现选择图片及将其转换为base64的功能,这里要用到wx.chooseImage以及wx.getFileSystemManager()两个函数。 <view class="containerBox"> <view class="leftBtn" bindtap="loadImage"> <image src="../../image/xj.png" class="btnImg"></image> 上传图像 </view> <view class="rightBtn" bindtap="identify"> <image src="../../image/face.png" class="btnImg"></image> 动漫转换 </view> </view> loadImage() { let that = this; wx.chooseImage({ count: 0, sizeType: ['original', 'compressed'], //原图 / 压缩 sourceType: ['album', 'camera'], //相册 / 相机拍照模式 success(res) { that.setData({ imgSrc: res.tempFilePaths[0] }); //将图片转换为Base64格式 wx.getFileSystemManager().readFile({ filePath: res.tempFilePaths[0], encoding: 'base64', success(data) { let baseData = data.data; //'data:image/png;base64,' + data.data; that.setData({ baseData: baseData }); } }); } }) }, <image src="{{imgSrc}}" class="showImg"></image> 1 参数 是否必选 类型 说明 image 是 string 图片信息(总数据大小应小于10M,图片尺寸在1920x1080以下) 3.10、拼接参数调用接口,接口所返回的image字段就是已经进行转换后的图像了。 字段 类型 说明 log_id uint64 唯一的log id,用于问题定位 image string 处理后图片的Base64编码 3.11、将image字段在页面进行展示,并将页面进行优化,增加转换中的动画效果,提高用户体验。 <view class='cu-load load-modal' wx:if="{{loadding}}"> <view class='gray-green'>转换中..</view> </view> 1 2 3 四、完整代码 <!--index.wxml--> <view class="containerBox"> <view class="leftBtn" bindtap="loadImage"> <image src="../../image/xj.png" class="btnImg"></image> 上传图像 </view> <view class="rightBtn" bindtap="identify"> <image src="../../image/face.png" class="btnImg"></image> 动漫转换 </view> </view> <view style="display:flex;"> <image src="{{reproduction}}" class="showImg"></image> <image src="data:image/png;base64,{{baseImg}}" class="showImg"></image> </view> <view class='cu-load load-modal' wx:if="{{loadding}}"> <view class='gray-green'>转换中..</view> </view> <!--index.wxss--> /* pages/anime/index.wxss */ page{background:white;} /* pages/pubu/index.wxss */ .containerBox{ width:750rpx; display:flex; height:62rpx; margin-top:20rpx; } .leftBtn{ display: flex; width:181rpx; height:62rpx; color:white; border:1rpx solid #4FAFF2; background:#4FAFF2; border-radius:10rpx; text-align: center; line-height:62rpx; font-size:28rpx; margin-left: 108rpx; } .rightBtn{ display: flex; width:181rpx; height:62rpx; color:white; border:1rpx solid #4FAFF2; border-radius:10rpx; text-align: center; line-height:62rpx; font-size:28rpx; margin-left: 172rpx; background:#4FAFF2; } .btnImg{ width:50rpx;height:50rpx;margin-top:6rpx;margin-left:6rpx; } .showImg{ width:300rpx; height:300rpx; margin-left:50rpx; margin-top:50rpx; border-radius:10rpx; } .resultImg{ width:300rpx; height:300rpx; margin-left:50rpx; margin-top:25rpx; border-radius:50%; } .result{ margin-top:20rpx; } .resultTitle{ margin-left:75rpx; margin-top:10rpx; color:#2B79F5; font-size:25rpx; } .productTableTr{ height: 80rpx;line-height: 80rpx;border-bottom: 5rpx solid #F8F8F8;display:flex; } .leftTr{ width: 583rpx;height: 80rpx;line-height: 80rpx; } .rightTr{ width: 119rpx;height: 80rpx;line-height: 80rpx;color: #FF2525;font-size: 26rpx; } .leftTrText{ color: #2B79F5;font-size: 28rpx;margin-left: 15rpx;width: 283rpx; } .productDetailTable{ width: 702rpx;margin-left: 24rpx;border:5rpx solid #F8F8F8;border-radius: 6rpx; } .copyBtn{ color:white;background:#2B79F5;border-radius:8rpx;width:100rpx;height:50rpx;margin-top:15rpx; } /** * 页面的初始数据 */ data: { token: '', imgSrc: '', baseData: '', }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { let that = this; let grant_type = 'client_credentials'; let client_id = ''; let client_secret = ''; wx.request({ url: 'https://aip.baidubce.com/oauth/2.0/token?grant_type=' + grant_type + '&client_id=' + client_id + '&client_secret=' + client_secret, method: 'post', header: { 'content-type': 'application/json' }, success: function (res) { that.setData({ token: res.data.access_token }); } }) }, loadImage() { let that = this; wx.chooseImage({ count: 0, sizeType: ['original', 'compressed'], //原图 / 压缩 sourceType: ['album', 'camera'], //相册 / 相机拍照模式 success(res) { that.setData({ imgSrc: res.tempFilePaths[0] }); //将图片转换为Base64格式 wx.getFileSystemManager().readFile({ filePath: res.tempFilePaths[0], encoding: 'base64', success(data) { let baseData = data.data; //'data:image/png;base64,' + data.data; that.setData({ baseData: baseData }); } }); } }) }, ———————————————— 版权声明:本文为CSDN博主「摔跤猫子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_42794881/article/details/128075295
-
一、背景 2022年AIGC(AI生成内容)焕发出了勃勃生机,大有元年之势,技术与应用迭代都扎堆呈现。在各种新闻媒体处可以看到诸多关于学术前沿研究,以及相应落地的商用案例。可谓出现了现象级的学术-商业共振。以往学术研究内容离商用一般较远,因为学术研究相应实验数据通常为闭集即固定数据场景,而商业应用则为开集即非固定数据场景(能见到各式各样、甚至乱七八糟的数据)。所以将学术研究内容转化为商业应用的时候,就需要以工匠精神去做产品化设计与迭代,主要目的就是不断提升其可用性以达到商业化标准(避免出现不符预期、甚至乱七八糟的结果)。 但AIGC领域似乎大大缩短了这一转化进程,尤其以近期短时间内爆火的AI绘画、AI作画类应用为代表。这无疑是人工智能发展至今的巨大胜利时刻,这能建立极强、极快的螺旋式发展迭代循环,商业应用上的不足点能迅速反馈至学术研究侧,学术研究侧的优化改进也能迅速体现到商业应用侧,拉满学术研究能获得的成就感。接下来的篇幅将介绍现有AI绘画、AI作画背后的相应基本原理、应用、以及论文参考文献。更多技术与应用的有趣想法欢迎评论区留言。 二、原理 技术脉络归纳: 在AI内容生成制作爆火的2022元年,在其基础框架技术部分,技术演进的脉络可以看作是不断寻找更可靠的特征域建模方式,亦可看作是不断寻找更合适的借鸡生蛋方式的过程。原始图像域的特征维度是很高的,直接来建模会有维度灾难的问题。需要不断找到可行的中间域来做对齐: 1.)CLIP可以看作是图像域与文本域特征对齐的大一统技术框架,文本域的原始特征空间跟原始图像域的特征空间比是相对更小的。所以在同等维度特征的表达下,文本相比图像是能更加容易被刻画好的,所以当align文本域特征到图像域特征时,图像域特征表达将无疑得到了更佳的富有语义的监督信号。这样获得更好的效果也就很自然了。 2.)diffusion可以看作是将原始图像域建模转变为噪声域建模的方法。噪声域有两个极大的好处:首先,它的特征空间比原始图像域要小的多,非常容易建模。其次,即使噪声域建模效果没能接近完美,它所呈现出来的差异也是噪声域的差异,而这个噪声差异在图像内容域上对人眼来说往往注意不到。所以从基本原理上来说,diffusion生成的图像细节无疑是会远远优于gan的。 基础技术部分: 基础技术框架上大致可以分成如下几个标志性的阶段: a)GAN阶段 原理摘记,生成与对抗网络图像特征域对齐,示意图如论文[1]中图所示: b)Transformer阶段 网络由self-Attenion和Feed Forward Neural Network组成,强力的文本、图像(ViT系列)编码网络框架。示意图如论文[3]中图所示: c)CLIP阶段 图像文本域特征对齐。基于文本、视觉transformer encode统一框架,训练阶段4亿文本图像配对数据,训练至少100卡月V100。示意图如论文[4]中图所示: d)Diffusion阶段 原始图像特征域对齐转变为图像噪声域对齐。基于参数化马尔科夫链框架实现。示意图如论文[5]中图所示: 演化技术部分: a)StyleGan 基于adain思想,额外学习高斯分布到风格空间w的映射,然后风格空间的变量作用于合成网络中。示意图如论文[2]中图所示: b)DALL-E 1 网络可理解为VQVAE + Transformer。示意图如论文[6]中图所示: c) DALL-E 2 网络可理解为CLIP + Diffusion。示意图如论文[7]中图所示: d)Stable Diffusion 网络可理解为VAE + CLIP + Diffusion + Unet,引入LDM等加速手段,显著降低计算复杂度。示意图如论文[8]中图所示: 三、应用 目前可以看到,诸如文生图、图生图、图像编辑、图像修复、图像拓展等应用功能都已实现,国内的AI绘画特效类应用也结合国风、动漫等风格有了非常广泛的应用,这里面既有大厂也有创业公司等玩家的加入。于此同时,对创意行业设计者来说,AI绘画也正演变为最佳助手,大幅提高创意行业的生产效率。相应应用介绍如下: 1.) Disco Diffusion:CLIP + Diffusion。https://github.com/alembics/disco-diffusion。 2.) Stable Diffusion:https://github.com/Stability-AI/stablediffusion。 3.) Stable Diffusion 2:显著提升图像质量,采用LAION-5B 58.5亿个图像文本对,增加NSFW做了内容过滤。https://huggingface.co/stabilityai/stable-diffusion-2 。 4.) Imagic : gan DALL-E 2,基于扩散模型的真实图像编辑方法,用文字就能实现真实照片的 PS,比如让一个人竖起大拇指、让两只鹦鹉亲吻。示意图如论文[9]中图所示: 5.) Imagen:更强力的语言模型能获得更逼真的画作效果。相较于视觉部分模型来讲,语言模型size越大带来的画作逼真性越大。示意图如论文[10]中图所示: 6.) DreamBooth: 对输入图像中的主体能进行相应输入文本语义下的内容生成。示意图如论文[11]中图所示: ———————————————— 版权声明:本文为CSDN博主「AI记忆」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/sunbaigui/article/details/128167000
-
预告了一整年的GPT-4迟迟没来,人们猜想OpenAI是不是要跳票了,更何况他们之前的得意之作DALL-E也被开源Stable Diffusion打了个措手不及,再不来点深水炸弹业界地位危矣。 不过,就在大家以为今年OpenAI将以沉寂收场时,聊天机器人模型ChatGPT横空出世,让人们看到了AI的更大创造力,聚光灯也再度打到了OpenAI的身上。 今年9月,LinkedIn联合创始人Reid Hoffman与OpenAI首席执行官Sam Altman进行了一场对话,而肩负着宏伟使命且极富远见的Altman就曾预言:AI即将迎来下一个发展阶段。如今,大型语言模型越来越先进,也出现了可以实现文本-图像相互转换的多模态模型,一些AI应用还可令科学家如虎添翼。在他眼中,AI是一个可以孵化出无数工具,推动各行各业前进的基础平台。 随着AI行业的不断进步,AI应用不再只是充斥着行业热词的纸上项目,已经发展为成熟的工具,助力多个行业的生产服务,也必将催生出无数新企业。 各种AI工具已显现出巨大的日常应用潜力,可以实现人类的各种想法,改善人类的工作方式,比如由Stability.ai发布的开源Stable Diffusion模型,Microsoft和OpenAI联合打造的AI编程工具Copilot,OpenAI开发的语言生成模型GPT-3和图像生成平台DALL-E以及爆火的聊天机器人模型ChatGPT。 Sam Altman还表示,5年后,我们应该不会再使用Transformer模型了。虽然Transformer很好,但他希望到时候会有比它更好的东西出现,不断突破创新很重要。在他看来,AI可以帮助人类创造出前所未有的新应用,这将是人类的巨大的进步和胜利,是真正的科技革命。 从大模型的商业化机会、AI+应用再到AI发展方向,Sam Altman在这场对话中分享了自己的见解。以下为对话内容,由OneFlow社区编译。 1 大模型的商业机会 Reid Hoffman:很多大型模型都通过API开放使用,能够衍生什么商业化机会? Sam Altman:现在,语言模型已经可以很好地应用到文案写作和教育服务领域,我相信未来几年内,语言模型会更加强大,将能与Google这一价值万亿美元的搜索产品一较高下。语言模型的应用将会改变我们的日常生活。 以前,大家都在调侃聊天机器人,其实它很有价值,只是当时的技术还不能满足需求。现在的聊天机器人更加成熟,几乎可以达到人类水平。聊天机器人可以用于医疗服务行业,提供咨询和教育服务,这方面将能催生出大型企业。 我相信,不久之后会出现多模态模型,这又将打开新局面。现在,人们可以直接用自然语言命令计算机为你完成你想做的工作,例如DALL-E图像生成工具和Copilot编程工具,都是用户向它们输入自然语言描述,然后工具自动生成用户想要的东西,用户还可以不断迭代修改自己的描述,直至工具给出满意的输出。 类似的AI应用方式会成为大趋势,可以孕育出许多大型企业。强大的AI模型可以成为孵化各种AI应用的平台,就像智能手机的出现催生出众多APP一样,它们的共同点都是可以制造无数的商业机会。 Reid Hoffman:既然大家都可以通过API使用大型模型,作为AI企业,怎样才能使自己脱颖而出,开辟自己独特的商业路径? Sam Altman:将来应该会出现几个大型的基础模型,开发人员都将基于这些基础模型研发AI应用。但目前的情况依然是某一家公司开发出一个大型语言模型,然后开放API供他人使用。 我认为,将来在基础模型和具体AI应用研发之间会有一个中间层:出现一批专门负责调整大型模型以适应具体AI应用需求的初创企业。能做好这一点的初创公司将会非常成功,但这取决于它们能在“数据飞轮”上走多远。(数据飞轮:使用更多数据可以训练出更好的模型,吸引更多用户,从而产生更多用户数据用于训练,形成良性循环。) 我对初创企业训练模型的能力持怀疑态度,将来承担模型训练角色的应该不会是初创公司,但这些企业可以在上述的中间层角色中发挥巨大价值。 Audience Member:未来会不会出现垂类AI初创公司,专门为具体产业调整基础模型?提示词工程(Prompt Engineering,修改向AI输入的任务描述,使AI的输出结果更符合用户的需求)将来会不会成为企业的内部职能? Sam Altman:五年后我们将不再需要提示词工程,或者只需在这方面做少量工作。将来的AI系统不会因为增补了某个特定词就会产生截然不同的输出,而是可以较好地理解自然语言,用户只需以文本和语音形式输入指令,即可让计算机完成图像生成、资料研究、心理咨询等复杂任务。 总的来说,用户只须使用自然语言就可以与计算机交互,当然,如果艺术家能想出更有创造性的描述,也自然就可以生成更好的图像。 2 “AI+”时代:AI for Science、元宇宙 Reid Hoffman:在科学领域,AI模型可以发挥什么作用? Sam Altman:现在科学界对AI的应用分为两种。一种是将AI工具直接用于科学目的,如AlphaFold(用于蛋白质结构预测),它们可以创造巨大价值,相信未来会出现无数这样的工具。 另一种是将AI工具用于提升科研工作效率,如帮科学家和工程师找到新研究方向、写代码等。Copilot编程工具就是一个例子。但AI工具的能力远不止于此。上述两种AI应用将会大大推动科技前进。 此外,目前科学界也在探索对AI的第三种应用方式——让AI成为可以“自我改进”的科学家。这件事情既有好处也有风险。 好的一面是,可以利用AI将人类的工作内容自动化,教会AI做任何人类可以做的事情:探索新科学、提出理论解释、验证、思考等,或许还可借此解决困扰人类已久的“AI对齐问题(Alignment Problem)”(即如何让AI系统的目标符合人类的价值观)。风险在于,有人担心懂得“自我改进”的AI有可能会像科幻小说描写的那样,擅自改动代码或修改优化算法。 我深信,真正有利于促进人类和经济的前行的,是一个能够推动科学进步的社会架构。我们能从这样的社会架构中获益很多。 Audience Member:像GPT-3这样的基础模型会如何影响生命科学研究的步伐?生命科学研究中有没有一些技术手段无法克服的限制因素,比如自然规律等? Sam Altman:目前的可用模型还不够好,不足以对生命科学领域产生重大影响——不少生命科学家了解这些模型之后都说,它们只能在部分情况下发挥些许作用。AI在基因组学领域有一些很有前景的应用方向,但目前尚属起步阶段,不过我很看好。我认为这也是市值千亿的巨头准备进军的领域之一。 如果AI未来真的可以让医药公司的研发速率提高几百倍,那无疑会产生深远的影响。不过如你所说,生物学的自有规律仍在,新药的临床验证需要时间,这也是医药研发的速率限制因素。 据我所知,不少合成生物公司借助AI发现许多新的研发想法,加快自己的研发迭代周期,但研发出来之后终究是要进行测试,这部分时间无法缩减。 我认为,医药初创公司最重要的是低成本和快速的研发周期,有了这两点就有资本参与市场竞争了。所以如果我是一家医药初创公司的决策者,一开始我不会选择从心脏病这类大难题下手。 此外,如果我是一家AI药物研发初创公司,我会在模拟器上多下工夫,因为目前这方面还亟待改善。 Reid Hoffman:你对AI和元宇宙怎么看? Sam Altman:元宇宙会发展成一种新的软件容器,就像手机一样,成为一种计算机交互方式。而AI则是一场技术革命,所以问题应该是“元宇宙如何融入AI新世界”,而不是“AI如何融入元宇宙”。当然,这仅代表我个人的观点。 Audience Member:AI工具已经可以辅助人类进行创造性工作,AI什么时候会从创作者的辅助工具发展为具有独立创作力的智能体? Sam Altman:作为创作辅助工具,AI既有用也很受欢迎,但目前来看,AI在大部分的创造性任务上的能力都有待提高,未来很长一段时间内都不能代替人类创作者。可能到100年之后,AI才可以独立完成创造性工作。 十年前,大部分人都认为AI取代人类工作的次序是:蓝领工作(卡车司机等)→低技能的白领工作→高技能的白领工作(程序员等),最后才会(也许永远不会)取代创造性工作。现在的事实证明,AI最有可能先取代的反而是创造性工作。 这也说明,预测未来是很难的,还说明人类可能不够了解自己,不清楚什么类型的技能最难、最需要调动大脑,或者错误估计了控制身体的难度。 Reid Hoffman:除了AI的应用潜力之外,目前大家对AI的讨论有没有轻率的一面,比如将AI用于核聚变研究? Sam Altman:通常而言,如果某个行业获得非常广泛的社会关注,所有人都在谈论它,这可能不是什么好事,可惜这恰恰是AI行业目前的情况,我不希望这是AI行业“垮掉”的前兆。 业内有人正在研究利用强化学习模型控制核聚变反应,但据我们所知,AI模型在这里发挥的作用还非常有限。 我们现在进入了“AI+”时代,相信AI在未来可以实现很多东西,会成为最大的新一代技术平台。但就目前而言,我们倾向于往更有确定性的方向发展,比如,业内研究出了缩放定律(Scaling Law,该定律揭示AI模型性能与模型参数、数据、计算量之间的关系),就以此为基础展望下一步。 这也是OpenAI的运作模式——先做摆在我们面前的最有信心能成功的事情,然后分出10%的资源进行成功确定性更低的探索工作。这种运作方式为我们带来巨大的成功。 现阶段不应该把重点放在“让AI无所不能”上,而是先沿着现有的道路慢慢发展完善AI,然后留有开放探索的空间——伟大的事物都不是计划出来的,有时重大的突破诞生于偶然。 3 AI的未来发展方向 Reid Hoffman:未来几年,AI的发展方向是什么? Sam Altman:一个比较确定的方向是,语言模型的发展会远超今天的想象。虽然很多人都说算力和数据都已经跟不上了,这也是事实,但算法的改进空间依然很大,还可以带来很大的进步。 第二个方向是多模态模型的发展。未来的多模态模型将不局限于文本和图像的互相转换,而是所有模态之间都可以方便地互相转化。 第三个方向是,模型可以持续学习。目前的模型如GPT都停滞在当初训练好的状态,并不会随着使用次数的增加而自我优化。我相信未来可以改变这一点。 如果上述三点都能实现的话,我们就可以解锁无数全新的应用场景,实现真正的科技革新,帮助人类实现科技的飞跃式前进。而且我相信,我们也有办法利用AI推动科研进步和新知识的产生。 我认为,现在普遍存在的一种错误观点是:“虽然语言模型的功能已经比较完善,还可以应用到图像和视频领域,将应用智能的边际成本降得非常低,但归根结底,它只是模仿人类做过的东西,不能为人类产生新知识,不能治疗癌症,也不能拓展人类已知的科学领域。”我相信,AI的发展会让持这种观点的人大吃一惊。 Reid Hoffman:AI将如何影响未来人类的生活? Sam Altman:AI终将渗入人类生活的方方面面。未来十年里,智能和能源的边际成本会迅速下降,趋近于零,而智能和能源又是其他各行各业的主要成本来源(当然,奢侈品除外)。[注:Sam Altman 是否提前知道了美国能源部在12月份宣布的可控核聚变的进展?] 整个社会的成本结构都会下降,正如之前多次科技革命的结果一样。在这种浪潮之下,很少有什么会一成不变。但有一点很重要,智能和能源成本只是趋近于零,而不是直接降为零。所以将来如果有人仍愿意花费巨额投资来购买智能和能源,他们得到的算力和能源的数量将突破想象。 设想一下,将来的能源使用成本下降10~100倍,智能使用成本下降1亿倍,而对能源和智能的资金投入则比现在多1000倍,那会是什么样的局面? Audience Member:未来二三十年内,AI的发展会带来什么社会问题?如果要避免这些问题,我们现在可以怎么做? Sam Altman:AI的应用会极大影响经济活动。将来我们需要形成新的社会契约,考虑如何公平地分配财富。AGI系统的使用权将会成为一种商品,所以也要考虑如何让所有人平等地获得使用AGI的机会。还有AGI的管理问题:人类如何共同决定AGI可以做什么、不能做什么。 我不担心“AI取代人类的工作之后,人类何去何从”的问题,虽然未来人类的工作会和现在很不一样,但我觉得人类最终都会找到自己满意的事业,过上充实的生活。真正的难题是财富分配、AGI使用权和AGI的治理问题。 Reid Hoffman:据我所知,OpenAI也付出不少努力,试图解决AI的社会影响问题。 Sam Altman:OpenAI正在进行全球最大型的UBI实验。(Universal Basic Income,无条件基本收入;Sam Altman认为,十年后AI的生产力可以创造巨大财富,足够给每个美国公民每年无条件发放13,500美元。)有一个为期五年的项目已经进行到三年半了。UBI不会是唯一的解决方案,但它是一个不错的做法。 OpenAI从受AI冲击最大的行业中汲取意见,以便制定应对方案;对于那些最先被AI取代的劳动者,我们也尝试利用AI帮助他们学习新技能。我们还会不断地做类似的事情。 Audience Member:你如何定义AGI(通用人工智能)?怎么才算实现了AGI? Sam Altman:我理解的AGI相当于一个可以共事的普通人,任何远程同事可以通过电脑帮你完成的工作,AGI也可以做,包括让AGI学习医疗知识和写代码等等。 AGI的重点不在于掌握某一种难得的技能,而是拥有学习的元能力,然后只要人类需要,它就可以往任何技能方向发展并精通。另一个概念是“超级智能”(Super Intelligence),它指的是比全人类加起来还要聪明的智能。 Audience Member:哪些领域不会被AI影响? Sam Altman:所有人类深层次的东西都不会被AI改变。作为人类,我们依然注重人与人之间的互动联系,人类大脑的奖励机制没有变,我们依然追求快乐,拥有创造欲和竞争欲,渴望组建家庭……五万年前人类在意的东西,一百年后的人类也会在意。 (本文由OneFlow社区编译,译文转载请联系获得授权。来源:https://www.youtube.com/watch?v=WHoWGNQRXb0) ———————————————— 版权声明:本文为CSDN博主「OneFlow深度学习框架」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/OneFlow_Official/article/details/128337504
-
已完成这个实验非常好
-
我的作品A woman
-
↵666666666
-
On top of the ruins of the apocalypse, surrounded by empty cities, lonely dilapidated and desolate ruins of buildings, howling despair and loneliness. In the middle stood a girl with silver hair looking out over the city, accompanied by her stray dog. They walked together under the end of the earth, witnessing the change of times and the death of human civilization.On top of the ruins of the apocalypse, surrounded by empty cities, lonely dilapidated and desolate ruins of buildings, howling despair and loneliness. In the middle stood a girl with silver hair looking out over the city, accompanied by her stray dog. They walked together under the end of the earth, witnessing the change of times and the death of human civilization.
-
the pupil of a coyote注视
-
华为云AI画作大赏,人人都是艺术家。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签