谷歌通用AI智能体发布,3D游戏玩法要变天了

谷歌DeepMind号称打造出了首个能在广泛3D虚拟环境和视频游戏中遵循自然语言指令的通用AI智能体

名为SIMA,不是NPC,是可以成为玩家拍档,帮忙干活打杂的那种。

比如,在《模拟山羊3》(Goat Simulator 3)中当司机开开车:

在《幸福工厂》(Satisfactory)中挖矿石:

在《瓦尔海姆》(Valheim)中寻找水源:

在《无人深空》中(No Man’s Sky)驾驶宇宙飞船射击小行星收集资源:

……

SIMA全称Scalable Instructable Multiworld Agent,顾名思义可扩展、可指导、多世界。

之前,谷歌DeepMind在AI+游戏方面也做过许多工作,比如推出能和人类玩家打PK、会玩《星际争霸II》的AlphaStar系统。

而SIMA被DeepMind称作是一个“新的里程碑”,主打从适用单一游戏转向通用多种游戏,且可遵循语言指令。

SIMA一公开,网友们也是讨论热烈。

让它们替我完成无聊繁琐的任务,这样我就可以直接做有趣的部分,而不必花几个小时培育chocobos获取随机召唤。

嗯…《最终幻想》(Final Fantasy)玩家无疑了。

专业《模拟山羊》玩家在此刻也懵了:

最近这一连串的AI进展也是整的网友们措不及防,直呼“慢一点”:

10秒内完成的简单任务

接下来再来看一波SIMA的表现。

为了让SIMA接触到更多游戏环境,开发团队表示目前已与八家游戏工作室合作,在九款不同的视频游戏上训练和测试了SIMA。

当前的SIMA已在600个基本技能上进行了评估。

基本操作、交互、使用菜单都会:

简单的任务,10秒内可完成。

各种场景都能适应:

除此外,谷歌DeepMind还发布了一份技术报告,一起来看看里面都有啥。

未见过的游戏也会玩

SIMA的整体架构是将预训练视觉模型与自监督学习的Transformer相结合。

从用户那里接收语言指令,并从环境中获取图像观察结果,然后将它们映射为键盘和鼠标动作。

具体架构如下图:

开发人员收集了一个既包括精选研究环境又包括商业视频游戏的大型多样化游戏数据集。

此外,他们还用Unity创建的一个新环境,名为“the Construction Lab”。在这个环境中,智能体需要使用积木构建雕塑,这考验了它们对物体的操纵能力和对物理世界的理解。

数据收集包含多种方法,比如让不同成对的人类玩家的互动,其中一名玩家观察并指导另一名玩家,以此来捕获语言指令;让玩家自由玩游戏,观察他们的操作,并记录下可能导致其游戏行为的指令。

通过在不同的游戏世界中学习,SIMA能够将语言与游戏行为相结合。

不需要访问游戏源代码,也不需要定制API,仅需要两个输入:屏幕上的图像和用户提供的简单的自然语言指令。

然后SIMA就会使用键盘和鼠标输出来控制游戏角色以执行这些指令,这一操作与人类类似,也就意味着SIMA有潜力与任何虚拟环境互动。

在评估测试中,研究人员表示SIMA在九个3D游戏集上接受训练,表现显著优于仅在单个游戏上专门训练的智能体。

而且SIMA在未训练过的游戏中的表现和专门使用该游戏数据集训练过的智能体表现一样好。

也就是说,SIMA在全新环境中具备泛化能力。

此外测试结果还显示,SIMA的性能依赖于语言。在一个控制测试中,智能体没有接受任何语言训练或指令,它就会出现无目的的操作,不遵循指令。

而且,和人类玩家相比较,SIMA水平还是差一点。

<think>嗯,用户想实现学生简历的批量上传功能。首先,我需要理清楚这个需求的具体内容。他们可能需要同时上传多个文件,支持断点续传、加密上传,可能还要考虑大文件的情况。根据提供的引用资料,用户提到了使用前端技术如Vue、HTML5、WebUploader,后端用Spring Boot、PHP等,数据库包括MySQL国产数据库。 首先,前端部分。用户可能希望有一个友好的界面,让用户能批量选择文件,拖拽上传,显示进度。引用[2]提到百度WEB UPLOADER组件,支持分块断点续传。这个组件可能适合,但用户可能更倾向于开源免费的方案,比如引用[4]中的HTML5实现,并且他们希望自主可控,所以可能需要使用开源的组件,或者自己基于HTML5的File API来实现。 然后,后端部分。需要处理文件的分块上传,每个分块上传后合并,还要处理断点续传的逻辑。引用[3]提到Spring MVCAJAX实现,所以后端可以用Spring Boot来处理上传请求,分块存储,验证MD5,确保文件完整性。同时,需要考虑数据库设计,保存每个文件的上传状态、分块信息等。 加密上传的话,可能需要在前端对文件进行加密处理,比如使用JavaScript加密库,或者在上传过程中使用HTTPS保证传输安全。引用[1]提到加密上传,可能是指传输加密或文件本身的加密存储。 数据库方面,需要记录文件的基本信息,如文件名、MD5、上传状态、分块信息等。可能还需要关联学生信息,每个简历对应一个学生,所以可能需要学生表简历表的关系设计。 另外,用户提到免费开源,所以后端可能需要使用Spring Boot,前端使用Vue.js结合WebUploader或者类似的开源库。引用[4]中的HTML5组件可能是一个好的起点,因为提供源码免费支持。 可能遇到的问题包括大文件上传时的内存管理、分块上传的并发处理、断点续传时的状态恢复,以及如何高效合并文件块。需要确保后端能够处理高并发上传请求,同时保证数据的一致性。 测试方面,需要模拟不同网络环境下的上传,测试断点续传的可靠性,验证MD5是否正确,以及加密过程是否安全。此外,用户可能需要文件列表管理删除功能,这需要后端提供相应的接口。 总之,步骤大致分为前端实现文件选择上传逻辑,后端处理分块上传合并,数据库记录状态,同时考虑加密断点续传的需求。需要参考提供的引用中的技术方案,选择合适的开源组件,并确保各部分的协同工作。</think>### 学生简历批量上传功能实现步骤 #### 一、前端实现(基于HTML5与开源组件) 1. **选择文件组件** - 使用HTML5的`<input type="file" multiple>`实现多文件选择,支持拖拽上传[^4] - 集成开源组件(如WebUploader)实现分块上传与进度显示: ```javascript // 示例:WebUploader初始化 var uploader = WebUploader.create({ server: '/api/upload', pick: '#filePicker', chunked: true, // 启用分块上传 chunkSize: 2 * 1024 * 1024 // 每块2MB }); ``` 2. **加密处理** - 前端计算文件MD5用于唯一标识秒传验证[^1] - 使用JavaScript加密库(如CryptoJS)对分块数据加密: ```javascript // 示例:MD5计算 var md5 = CryptoJS.MD5(fileContent).toString(); ``` #### 二、后端实现(以Spring Boot为例) 1. **分块上传接口** ```java @PostMapping("/api/upload") public ResponseEntity<?> uploadChunk( @RequestParam("file") MultipartFile chunk, @RequestParam("chunkNumber") int chunkNumber, @RequestParam("totalChunks") int totalChunks, @RequestParam("md5") String fileMd5) { // 存储分块到临时目录 String tempPath = "/temp/" + fileMd5 + "/"; FileUtils.writeByteArrayToFile(new File(tempPath + chunkNumber), chunk.getBytes()); // 检查是否所有分块上传完成 if (checkAllChunksUploaded(fileMd5, totalChunks)) { mergeChunks(fileMd5, totalChunks); } return ResponseEntity.ok().build(); } ``` 2. **文件合并与存储** ```java private void mergeChunks(String fileMd5, int totalChunks) { try (FileOutputStream fos = new FileOutputStream("/uploads/" + fileMd5)) { for (int i = 0; i < totalChunks; i++) { File chunkFile = new File("/temp/" + fileMd5 + "/" + i); FileUtils.copyFile(chunkFile, fos); chunkFile.delete(); } } } ``` #### 三、数据库设计(MySQL示例) | 字段名 | 类型 | 说明 | |----------------|-------------|--------------------------| | id | BIGINT | 主键 | | student_id | VARCHAR(20) | 关联学生信息表 | | file_md5 | CHAR(32) | 文件唯一标识 | | file_name | VARCHAR(255)| 原始文件名 | | status | TINYINT | 0-上传中,1-完成,2-失败 | #### 四、扩展功能 1. **断点续传** - 前端记录已上传分块序号,重新上传时跳过已传部分 2. **安全控制** - HTTPS传输加密 - 后端校验文件类型(如仅允许PDF/DOCX)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值