Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(route): Add 51CTO text parsing #16583

Merged
merged 8 commits into from
Sep 22, 2024
Merged

feat(route): Add 51CTO text parsing #16583

merged 8 commits into from
Sep 22, 2024

Conversation

ovo-Tim
Copy link
Contributor

@ovo-Tim ovo-Tim commented Aug 29, 2024

Example for the Proposed Route(s) / 路由地址示例

/51cto/index/recommend

New RSS Route Checklist / 新 RSS 路由检查表

  • New Route / 新的路由
  • Anti-bot or rate limit / 反爬/频率限制
    • If yes, do your code reflect this sign? / 如果有, 是否有对应的措施?
  • Date and time / 日期和时间
    • Parsed / 可以解析
    • Correct time zone / 时区正确
  • New package added / 添加了新的包
  • Puppeteer

Note / 说明

原本只能提供摘要,在原来的基础上增加了正文解析
Originally, only summaries could be provided. And now, the text parsing has been added.

Before:
image
After:
image

@github-actions github-actions bot added the Route label Aug 29, 2024
@ovo-Tim ovo-Tim changed the title 51CTO 正文解析 [feat] 增加51CTO 正文解析 Aug 29, 2024
@ovo-Tim ovo-Tim changed the title [feat] 增加51CTO 正文解析 feat(route): 增加51CTO 正文解析 Aug 29, 2024
@github-actions github-actions bot added the Auto: Route Test Complete Auto route test has finished on given PR label Aug 29, 2024
Copy link
Contributor

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Thu, 29 Aug 2024 11:52:25 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>SpringBoot 接口防抖的一些实现方案</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;SpringBoot 接口防抖的一些实现方案&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:码猿技术专栏&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 15:26:21&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;所谓防抖,一是防用户手抖,二是防网络抖动。后端也应实施相应的防抖逻辑,确保在网络波动的情况下不会接收并处理同一请求多次。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;作为一名老码农,在开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/29/318dbd494cf52d3bcac101559fa5da6b12ccaa.jpg&quot; style=&quot;visibility: visible; width: 600px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。&lt;/p&gt;&lt;h3&gt;一、啥是防抖&lt;/h3&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/29/7180d0c4572d0de8c105634d15a773d5564ac2.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 838px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。&lt;/p&gt;&lt;p&gt;要针对用户的误操作,前端通常会实现按钮的loading状态,阻止用户进行多次点击。而对于网络波动造成的请求重发问题,仅靠前端是不行的。为此,后端也应实施相应的防抖逻辑,确保在网络波动的情况下不会接收并处理同一请求多次。&lt;/p&gt;&lt;p&gt;一个理想的防抖组件或机制,我觉得应该具备以下特点:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-9OY1Mvj9&quot;&gt;&lt;li data-id=&quot;ld70c578-VKTgcudj&quot;&gt;逻辑正确,也就是不能误判;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-zNoOru03&quot;&gt;响应迅速,不能太慢;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-15rk0Mg7&quot;&gt;易于集成,逻辑与业务解耦;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-PdtXBMDG&quot;&gt;良好的用户反馈机制,比如提示“您点击的太快了”&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;二、思路解析&lt;/h3&gt;&lt;p&gt;前面讲了那么多,我们已经知道接口的防抖是很有必要的了,但是在开发之前,我们需要捋清楚几个问题。&lt;/p&gt;&lt;h4&gt;1.哪一类接口需要防抖?&lt;/h4&gt;&lt;p&gt;接口防抖也不是每个接口都需要加,一般需要加防抖的接口有这几类:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-3012WCzH&quot;&gt;&lt;li data-id=&quot;ld70c578-SpdhSU9v&quot;&gt;用户输入类接口:&amp;nbsp;比如搜索框输入、表单输入等,用户输入往往会频繁触发接口请求,但是每次触发并不一定需要立即发送请求,可以等待用户完成输入一段时间后再发送请求。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-0mxMwqqO&quot;&gt;按钮点击类接口:&amp;nbsp;比如提交表单、保存设置等,用户可能会频繁点击按钮,但是每次点击并不一定需要立即发送请求,可以等待用户停止点击一段时间后再发送请求。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-BoIMlI4F&quot;&gt;滚动加载类接口:&amp;nbsp;比如下拉刷新、上拉加载更多等,用户可能在滚动过程中频繁触发接口请求,但是每次触发并不一定需要立即发送请求,可以等待用户停止滚动一段时间后再发送请求。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;2.如何确定接口是重复的?&lt;/h4&gt;&lt;p&gt;防抖也即防重复提交,那么如何确定两次接口就是重复的呢?首先,我们需要给这两次接口的调用加一个时间间隔,大于这个时间间隔的一定不是重复提交;&lt;/p&gt;&lt;p&gt;其次,两次请求提交的参数比对,不一定要全部参数,选择标识性强的参数即可;&lt;/p&gt;&lt;p&gt;最后,如果想做的更好一点,还可以加一个请求地址的对比。&lt;/p&gt;&lt;h3&gt;三、分布式部署下如何做接口防抖?&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;有两个方案:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;1.使用共享缓存&lt;/h4&gt;&lt;p&gt;流程图如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/59bb55928722e1d32242419ac1d9f748736a50.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 772px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;2.使用分布式锁&lt;/h4&gt;&lt;p&gt;流程图如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/f6695b096eb23f932b6020fbdd91e75a95ca76.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 720px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;常见的分布式组件有Redis、Zookeeper等,但结合实际业务来看,一般都会选择Redis,因为Redis一般都是Web系统必备的组件,不需要额外搭建。&lt;/p&gt;&lt;h3&gt;四、具体实现&lt;/h3&gt;&lt;p&gt;现在有一个保存用户的接口:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;@PostMapping(&quot;/add&quot;)
        @RequiresPermissions(value = &quot;add&quot;)
        @Log(methodDesc = &quot;添加用户&quot;)
        public ResponseEntity&amp;lt;String&amp;gt; add(@RequestBody AddReq addReq) {
        return userService.add(addReq);
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;AddReq.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;package com.summo.demo.model.request;
        import java.util.List;
        import lombok.Data;
        @Datapublic class AddReq {
        /** * 用户名称 */ private String userName;
        /** * 用户手机号 */ private String userPhone;
        /** * 角色ID列表 */ private List&amp;lt;Long&amp;gt; roleIdList;
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;目前数据库表中没有对userPhone字段做UK索引,这就会导致每调用一次add就会创建一个用户,即使userPhone相同。&lt;/p&gt;&lt;h3&gt;五、请求锁&lt;/h3&gt;&lt;p&gt;根据上面的要求,我定了一个注解@RequestLock,使用方式很简单,把这个注解打在接口方法上即可。&lt;/p&gt;&lt;p&gt;RequestLock.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;package com.summo.demo.model.request;
        import java.util.List;
        import lombok.Data;
        @Data
        public class AddReq {
        /**
        * 用户名称
        */
        private String userName;
        /**
        * 用户手机号
        */
        private String userPhone;
        /**
        * 角色ID列表
        */
        private List&amp;lt;Long&amp;gt; roleIdList;
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;@RequestLock注解定义了几个基础的属性,redis锁前缀、redis锁时间、redis锁时间单位、key分隔符。其中前面三个参数比较好理解,都是一个锁的基本信息。&lt;/p&gt;&lt;p&gt;key分隔符是用来将多个参数合并在一起的,比如userName是张三,userPhone是123456,那么完整的key就是&quot;张三&amp;amp;123456&quot;,最后再加上redis锁前缀,就组成了一个唯一key。&lt;/p&gt;&lt;h3&gt;六、唯一key生成&lt;/h3&gt;&lt;p&gt;这里有些同学可能就要说了,直接拿参数来生成key不就行了吗?额,不是不行,但我想问一个问题:如果这个接口是文章发布的接口,你也打算把内容当做key吗?要知道,Redis的效率跟key的大小息息相关。所以,我的建议是选取合适的字段作为key就行了,没必要全都加上。&lt;/p&gt;&lt;p&gt;要做到参数可选,那么用注解的方式最好了,注解如下:&lt;/p&gt;&lt;p&gt;RequestKeyParam.java&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;package com.example.requestlock.lock.annotation;
        import java.lang.annotation.*;
        /**
        * @description 加上这个注解可以将参数设置为key
        */
        @Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
        @Retention(RetentionPolicy.RUNTIME)
        @Documented
        @Inherited
        public @interface RequestKeyParam {
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个注解加到参数上就行,没有多余的属性。&lt;/p&gt;&lt;p&gt;接下来就是lockKey的生成了,代码如下:&lt;/p&gt;&lt;p&gt;RequestKeyGenerator.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import java.lang.annotation.Annotation;
        import java.lang.reflect.Field;
        import java.lang.reflect.Method;
        import java.lang.reflect.Parameter;
        import org.aspectj.lang.ProceedingJoinPoint;
        import org.aspectj.lang.reflect.MethodSignature;
        import org.springframework.util.ReflectionUtils;
        import org.springframework.util.StringUtils;
        public class RequestKeyGenerator {
        /**
        * 获取LockKey
        *
        * @param joinPoint 切入点
        * @return
        */
        public static String getLockKey(ProceedingJoinPoint joinPoint) {
        //获取连接点的方法签名对象
        MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature();
        //Method对象
        Method method = methodSignature.getMethod();
        //获取Method对象上的注解对象
        RequestLock requestLock = method.getAnnotation(RequestLock.class);
        //获取方法参数
        final Object[] args = joinPoint.getArgs();
        //获取Method对象上所有的注解
        final Parameter[] parameters = method.getParameters();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i &amp;lt; parameters.length; i++) {
        final RequestKeyParam keyParam = parameters[i].getAnnotation(RequestKeyParam.class);
        //如果属性不是RequestKeyParam注解,则不处理
        if (keyParam == null) {
        continue;
        }
        //如果属性是RequestKeyParam注解,则拼接 连接符 &quot;&amp;amp; + RequestKeyParam&quot;
        sb.append(requestLock.delimiter()).append(args[i]);
        }
        //如果方法上没有加RequestKeyParam注解
        if (StringUtils.isEmpty(sb.toString())) {
        //获取方法上的多个注解(为什么是两层数组:因为第二层数组是只有一个元素的数组)
        final Annotation[][] parameterAnnotations = method.getParameterAnnotations();
        //循环注解
        for (int i = 0; i &amp;lt; parameterAnnotations.length; i++) {
        final Object object = args[i];
        //获取注解类中所有的属性字段
        final Field[] fields = object.getClass().getDeclaredFields();
        for (Field field : fields) {
        //判断字段上是否有RequestKeyParam注解
        final RequestKeyParam annotation = field.getAnnotation(RequestKeyParam.class);
        //如果没有,跳过
        if (annotation == null) {
        continue;
        }
        //如果有,设置Accessible为true(为true时可以使用反射访问私有变量,否则不能访问私有变量)
        field.setAccessible(true);
        //如果属性是RequestKeyParam注解,则拼接 连接符&quot; &amp;amp; + RequestKeyParam&quot;
        sb.append(requestLock.delimiter()).append(ReflectionUtils.getField(field, object));
        }
        }
        }
        //返回指定前缀的key
        return requestLock.prefix() + sb;
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;由于@RequestKeyParam可以放在方法的参数上,也可以放在对象的属性上,所以这里需要进行两次判断,一次是获取方法上的注解,一次是获取对象里面属性上的注解。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;七、重复提交判断&lt;/h3&gt;&lt;h4&gt;1.Redis缓存方式&lt;/h4&gt;&lt;p&gt;RedisRequestLockAspect.java&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import java.lang.reflect.Method;
        import com.summo.demo.exception.biz.BizException;
        import com.summo.demo.model.response.ResponseCodeEnum;
        import org.aspectj.lang.ProceedingJoinPoint;
        import org.aspectj.lang.annotation.Around;
        import org.aspectj.lang.annotation.Aspect;
        import org.aspectj.lang.reflect.MethodSignature;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.context.annotation.Configuration;
        import org.springframework.core.annotation.Order;
        import org.springframework.data.redis.connection.RedisStringCommands;
        import org.springframework.data.redis.core.RedisCallback;
        import org.springframework.data.redis.core.StringRedisTemplate;
        import org.springframework.data.redis.core.types.Expiration;
        import org.springframework.util.StringUtils;
        /**
        * @description 缓存实现
        */
        @Aspect
        @Configuration
        @Order(2)
        public class RedisRequestLockAspect {
        private final StringRedisTemplate stringRedisTemplate;
        @Autowired
        public RedisRequestLockAspect(StringRedisTemplate stringRedisTemplate) {
        this.stringRedisTemplate = stringRedisTemplate;
        }
        @Around(&quot;execution(public * * (..)) &amp;amp;&amp;amp; @annotation(com.summo.demo.config.requestlock.RequestLock)&quot;)
        public Object interceptor(ProceedingJoinPoint joinPoint) {
        MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature();
        Method method = methodSignature.getMethod();
        RequestLock requestLock = method.getAnnotation(RequestLock.class);
        if (StringUtils.isEmpty(requestLock.prefix())) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;重复提交前缀不能为空&quot;);
        }
        //获取自定义key
        final String lockKey = RequestKeyGenerator.getLockKey(joinPoint);
        // 使用RedisCallback接口执行set命令,设置锁键;设置额外选项:过期时间和SET_IF_ABSENT选项
        final Boolean success = stringRedisTemplate.execute(
        (RedisCallback&amp;lt;Boolean&amp;gt;)connection -&amp;gt; connection.set(lockKey.getBytes(), new byte[0],
        Expiration.from(requestLock.expire(), requestLock.timeUnit()),
        RedisStringCommands.SetOption.SET_IF_ABSENT));
        if (!success) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;您的操作太快了,请稍后重试&quot;);
        }
        try {
        return joinPoint.proceed();
        } catch (Throwable throwable) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;系统异常&quot;);
        }
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里的核心代码是stringRedisTemplate.execute里面的内容,正如注释里面说的“使用RedisCallback接口执行set命令,设置锁键;设置额外选项:过期时间和SET_IF_ABSENT选项”,有些同学可能不太清楚SET_IF_ABSENT是个啥?&lt;/p&gt;&lt;p&gt;这里我解释一下:SET_IF_ABSENT是&amp;nbsp;RedisStringCommands.SetOption&amp;nbsp;枚举类中的一个选项,用于在执行 SET 命令时设置键值对的时候,如果键不存在则进行设置,如果键已经存在,则不进行设置。&lt;/p&gt;&lt;h4&gt;2.Redisson分布式方式&lt;/h4&gt;&lt;p&gt;Redisson分布式需要一个额外依赖,引入方式:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;org.redisson&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;redisson-spring-boot-starter&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;3.10.6&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;由于我之前的代码有一个RedisConfig,引入Redisson之后也需要单独配置一下,不然会和RedisConfig冲突&lt;/p&gt;&lt;p&gt;RedissonConfig.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import org.redisson.Redisson;
        import org.redisson.api.RedissonClient;
        import org.redisson.config.Config;
        import org.springframework.context.annotation.Bean;
        import org.springframework.context.annotation.Configuration;
        @Configuration
        public class RedissonConfig {
        @Bean
        public RedissonClient redissonClient() {
        Config config = new Config();
        // 这里假设你使用单节点的Redis服务器
        config.useSingleServer()
        // 使用与Spring Data Redis相同的地址
        .setAddress(&quot;redis://127.0.0.1:6379&quot;);
        // 如果有密码
        //.setPassword(&quot;xxxx&quot;);
        // 其他配置参数
        //.setDatabase(0)
        //.setConnectionPoolSize(10)
        //.setConnectionMinimumIdleSize(2);
        // 创建RedissonClient实例
        return Redisson.create(config);
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配好之后,核心代码如下:&lt;/p&gt;&lt;p&gt;RedissonRequestLockAspect.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import java.lang.reflect.Method;
        import com.summo.demo.exception.biz.BizException;
        import com.summo.demo.model.response.ResponseCodeEnum;
        import org.aspectj.lang.ProceedingJoinPoint;
        import org.aspectj.lang.annotation.Around;
        import org.aspectj.lang.annotation.Aspect;
        import org.aspectj.lang.reflect.MethodSignature;
        import org.redisson.api.RLock;
        import org.redisson.api.RedissonClient;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.context.annotation.Configuration;
        import org.springframework.core.annotation.Order;
        import org.springframework.util.StringUtils;
        /**
        * @description 分布式锁实现
        */
        @Aspect
        @Configuration
        @Order(2)
        public class RedissonRequestLockAspect {
        private RedissonClient redissonClient;
        @Autowired
        public RedissonRequestLockAspect(RedissonClient redissonClient) {
        this.redissonClient = redissonClient;
        }
        @Around(&quot;execution(public * * (..)) &amp;amp;&amp;amp; @annotation(com.summo.demo.config.requestlock.RequestLock)&quot;)
        public Object interceptor(ProceedingJoinPoint joinPoint) {
        MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature();
        Method method = methodSignature.getMethod();
        RequestLock requestLock = method.getAnnotation(RequestLock.class);
        if (StringUtils.isEmpty(requestLock.prefix())) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;重复提交前缀不能为空&quot;);
        }
        //获取自定义key
        final String lockKey = RequestKeyGenerator.getLockKey(joinPoint);
        // 使用Redisson分布式锁的方式判断是否重复提交
        RLock lock = redissonClient.getLock(lockKey);
        boolean isLocked = false;
        try {
        //尝试抢占锁
        isLocked = lock.tryLock();
        //没有拿到锁说明已经有了请求了
        if (!isLocked) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;您的操作太快了,请稍后重试&quot;);
        }
        //拿到锁后设置过期时间
        lock.lock(requestLock.expire(), requestLock.timeUnit());
        try {
        return joinPoint.proceed();
        } catch (Throwable throwable) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;系统异常&quot;);
        }
        } catch (Exception e) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;您的操作太快了,请稍后重试&quot;);
        } finally {
        //释放锁
        if (isLocked &amp;amp;&amp;amp; lock.isHeldByCurrentThread()) {
        lock.unlock();
        }
        }
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Redisson的核心思路就是抢锁,当一次请求抢到锁之后,对锁加一个过期时间,在这个时间段内重复的请求是无法获得这个锁,也不难理解。&lt;/p&gt;&lt;p&gt;测试一下。&lt;/p&gt;&lt;p&gt;第一次提交,&quot;添加用户成功&quot;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/398070f19f32ebdb32c29375ababa4661c8dd3.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 889px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;短时间内重复提交,&quot;BIZ-0001:您的操作太快了,请稍后重试&quot;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/35a115c4731ceaf75033440d3998f660b7b592.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 889px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;过几秒后再次提交,&quot;添加用户成功&quot;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/715f7085482fcc028a3178cbdc8ee185a9c7bb.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 889px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;从测试的结果上看,防抖是做到了,但是随着缓存消失、锁失效,还是可以发起同样的请求,所以要真正做到接口幂等性,还需要业务代码的判断、设置数据库表的UK索引等操作。&lt;/p&gt;&lt;p&gt;我在文章里面说到生成唯一key的时候没有加用户相关的信息,比如用户ID、IP属地等,真实生产环境建议加上这些,可以更好地减少误判。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzU3MDAzNDg1MA==&amp;amp;mid=2247534782&amp;amp;idx=1&amp;amp;sn=950da89f835f4ccbcdab2c016bf9f0de&amp;amp;chksm=fd74e568a4fdd23af0ff1dcedcace917c9531d4e6517db113d3755882c38e0c113c8fcd9fdb3&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0829sB0icKuaP0ok5UuWav0g&amp;amp;sharer_shareinfo=f07f6d68f8dfd6506bc247798c97acf4&amp;amp;sharer_shareinfo_first=f07f6d68f8dfd6506bc247798c97acf4#rd&quot; target=&quot;_blank&quot;&gt;码猿技术专栏&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E9%98%B2+%E6%8A%96&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;防 抖&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=SpringBoot&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;SpringBoot&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795852.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795852.html</guid>
      <pubDate>Thu, 29 Aug 2024 07:26:21 GMT</pubDate>
    </item>
    <item>
      <title>深入探讨边缘计算存在的必要性?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;深入探讨边缘计算存在的必要性?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:chris han&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 15:14:52&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/iot&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;物联网&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;边缘计算设备的市场规模将会成为也会仅次于终端传感器,掌握了边缘计算,就像控制了古代战争时的烽火台,为打赢物联网推进带来的企业竞争大战,奠定了坚实的基础。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/652eb7e21dd9bab82eb9507652a4115fca94fc.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 889px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;边缘计算为什么在IOT系统的多个环节中存在呢?被人们提了这么多年的边缘计算到底有没有用?本着存在即合理的原则,边缘计算在某些场景中,确实起到了安全、快捷的作用。对比原有Scada系统,有明显的进步,边缘计算的介入,给原来的Scada系统赋予了智慧和灵魂。其实边缘计算的优势应用在IOT系统中最为明显,主要与IOT系统的特性有关。&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-fHe6T1YS&quot;&gt;&lt;li data-id=&quot;ld70c578-4vVMaPsG&quot;&gt;第一个特性就是IOT系统的数据量比较大,数据格式比较多。一套IOT系统所应用的物联网设备就达到10W+,这些设备每时每刻都在发送和接收数据,数据量超级大。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-NM4C1isg&quot;&gt;第二个特性是数据的异构性。数据产生自数十百万种的传感器和设备,不同终端和不同维度的数据结构、协议可能都不同,所以异构是IOT数据的天然特性。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-hphJ6p1A&quot;&gt;第三个特性是数据的时序性。所有IOT的数据都是基于时间概念的,即时序数据,脱离时间谈IOT数据与计算都是没有意义的。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;IOT的三个特性,导致物联网的4大现实问题:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-PT4F08DA&quot;&gt;&lt;li data-id=&quot;ld70c578-zgGTHwve&quot;&gt;实时性。决策都是在现在制定并执行的,但是终端设备或传感器的响应未必能够实时。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1pPBccZo&quot;&gt;安全性。物联网数据跟企业的商机机密有着关系,数据安全就是隐患。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-FCkjLw9m&quot;&gt;网络堵塞。网络带宽的限制,以及通讯可靠性问题,比如会不会意外断网,传输数据丢包,网络延迟等等。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-UHXsjqhY&quot;&gt;成本高。成本在系统建设中是非常关键的一个要素。想象一下1000W+的设备联网,数据流量成本、带宽成本、存储成本,是多大的投入?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;因为有了这些特性及问题,我们再来探讨边缘计算+IOT系统才有目标和方向。&lt;/p&gt;&lt;p&gt;首先,边缘计算是什么?大部分的决策都在离传感器和设备最新的地方执行,而不是都放在“大脑(云平台)”,这样方式首先能够解决IOT系统中实时响应问题;然后,因为决策和执行都在现场,减少了指令从设备到云端的上传/下达过程,更能保证安全,也规避了可能因为网络堵塞造成的延误;最后,现场决策可以省去一部分数据的传输和存储,可以较大幅度的降低IOT系统的使用成本。&lt;/p&gt;&lt;p&gt;当然,边缘计算也是离不开云计算,脱离云计算来谈边缘计算,那是不切实际的,下面我们一起讨论下边缘计算与云计算的关系:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-WYYcLNEK&quot;&gt;&lt;li data-id=&quot;ld70c578-yYVgggyJ&quot;&gt;第一,边缘计算不能独立存在。边缘计算是为客户服务,为云计算服务,边缘计算的运维工作全部依赖云平台。云平台做算法,实现OTA,远程更新算法及服务,新的算法下载到边缘处做控制,这是与传统Scada系统控制的巨大区别,也是巨大优势,这才是工业革命技术应用的质的变化。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-2tZqGwYo&quot;&gt;第二,云平台做算法、边缘做控制的分工,意味着控制和外部会有互动。比如天气变化、时间变化会影响路灯照明,也是控制开关灯时间、照明度的判断依据,与外部因素的互动使智能化程度更高。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1PimBzkY&quot;&gt;第三,云平台和边缘计算的结合可以快速部署、实施应用,带来显而易见的成本下降,才使应用的大规模落地成为可能性。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;如果要是预测一下IOT系统的未来,必然离不开网络(5G/6G,ZigBee,Lora等)、边缘计算。边缘计算设备的市场规模将会成为也会仅次于终端传感器,掌握了边缘计算,就像控制了古代战争时的烽火台,为打赢物联网推进带来的企业竞争大战,奠定了坚实的基础。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzU0NDg3ODM5NA==&amp;amp;mid=2247490419&amp;amp;idx=1&amp;amp;sn=956ff6ab241263557193a737aeefdc77&amp;amp;chksm=fa30f2a9a9b2046e058350b32fcc23d444911d0556d8557b8908d9cac1303e91c4b708ab2a99&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0829EZyFZeoRp6B2CUqm0eAI&amp;amp;sharer_shareinfo=347f70e9cab152f1f254d556cd921480&amp;amp;sharer_shareinfo_first=347f70e9cab152f1f254d556cd921480#rd&quot; target=&quot;_blank&quot;&gt;人工智能与物联网&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;边缘计算&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%89%A9%E8%81%94%E7%BD%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;物联网&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795850.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795850.html</guid>
      <pubDate>Thu, 29 Aug 2024 07:14:52 GMT</pubDate>
    </item>
    <item>
      <title>谷歌将重新开放 Gemini 生成人物图像功能,此前因“种族描述不当”引争议</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;谷歌将重新开放 Gemini 生成人物图像功能,此前因“种族描述不当”引争议&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:清源&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 15:05:57&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;据彭博社报道,谷歌宣布将恢复 AI 模型 Gemini 生成人物图像的功能,部分消费者将可以重新使用。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/29/e3819c17983dd3f5398102ed76774fecd04868.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;8 月 29 日消息,北京时间 29(今)日,据彭博社报道,谷歌宣布将恢复 AI 模型 Gemini 生成人物图像的功能,部分消费者将可以重新使用。&lt;/p&gt;&lt;p&gt;谷歌表示,将开始向订阅 Gemini Advanced 套餐的英语用户推出生成人物图像功能。企业也将能够使用该工具,该功能将在&lt;strong&gt;未来几天内&lt;/strong&gt;上线。&lt;/p&gt;&lt;p&gt;谷歌产品管理高级总监戴夫・西特伦(Dave Citron)表示,该公司在通过 Imagen 3 生成人物描写方面取得了“重大进展”。“我们一直在努力对产品进行技术改进,并改进了评估集、红队练习和明确的产品原则。当然,Gemini 创建的每张图像&lt;strong&gt;都不可能完美无缺&lt;/strong&gt;,但我们会继续听取早期访问 Gemini Advanced 用户的反馈意见,不断改进。”&lt;/p&gt;&lt;p&gt;IT之家注:红队练习是指在产品进入公众视野之前,通过模拟使用发现其潜在危害。&lt;/p&gt;&lt;p&gt;戴夫・西特伦表示,用户将无法创建“逼真”的图像、&lt;strong&gt;可识别的个人&lt;/strong&gt;、未成年人的形象或“过于血腥、暴力或性的场景”。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;前情提要:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;今年 2 月,谷歌的图像生成工具受到批评,因为该工具在生成人物图像时,出现了“不符合历史事实”的场景,包括不正确的种族描述。&lt;span&gt;例如以“美国开国元勋华盛顿”为主题的图片中,出现了妇女和有色人种&lt;/span&gt;。还有网友发现,“&lt;span&gt;让 Gemini 承认白人的存在难得令人尴尬&lt;/span&gt;”。&lt;/p&gt;&lt;p&gt;2 月 22 日,谷歌宣布将暂停 Gemini 的人物图像生成,努力解决与 Gemini 图像生成功能相关的最新问题,并“很快”重新发布改进版本。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/471045f15786f3ad47d6534f191e839d367b83.jpg&quot; style=&quot;visibility: visible; width: 714px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/29/73dace8250da69ea8d6974f24300dbd66a5312.jpg&quot; style=&quot;visibility: visible; width: 713px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;谷歌 DeepMind 首席执行官德米斯・哈萨比斯在&amp;nbsp;MWC 2024&amp;nbsp;的小组讨论会中表示,“我们已下线 Gemini 的人像生成功能,&lt;span&gt;同时正在修复问题,希望未来几周内重新上线。&lt;/span&gt;”&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.ithome.com/0/791/935.htm&quot; target=&quot;_blank&quot;&gt;IT之家&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%B0%B7%E6%AD%8C&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;谷歌&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Gemini&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Gemini&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795846.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795846.html</guid>
      <pubDate>Thu, 29 Aug 2024 07:05:57 GMT</pubDate>
    </item>
    <item>
      <title>转转质检数字化埋点探索之路</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;转转质检数字化埋点探索之路&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:涂志武&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 14:44:01&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;目前我们处于质检数字化初期的埋点探索,对于探索质检数字化未来的诸多可能,我们保持初心。接下来,我们会继续深入数字化,在大数据和算法等能力BUF的加持下去实现更广阔质检数字化。道阻且长,行则将至。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/29/181adf635caebaba0f3391da1be1d4079d8ac5.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;1、背景&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;转转每一台‘官方验’的设备,都会经过质检站点对其进行全方面的检测。在检测流水线中,质检工程师对每台设备进行检测作业;这过程中除了产生对应的检测结果外,检测过程的动作、硬件参数、耗时等数据目前没有系统性的利用起来;而这些操作过程中的数据可以较好的体现质检工程师的整个质检过程。基于此,我们希望能通过技术手段获取到这个过程的数据。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;2、质检埋点&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;为了更好的收集质检过程中的各类数据,在调研和参考行业常用的数据埋点设计方案后,基于质检现场实际,制定出符合质检流程的操作埋点方案。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/29/98eeaad863e4f355de2047ca201260bfcc0718.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h3&gt;&lt;span&gt;2.1 埋点设计&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;质检流水线检测过程涉及多端、多平台,虽然目前各端都有上报对应的埋点平台,受限于各端上报的数据标准和平台不是统一收拢的,已有数据难以形成结构化的质检执行数据链。我们的方案是由客户端基于其自身检测流程的场景进行埋点。埋点数据结构按照定义好的结构,具体数据内容由各端根据场景定义。埋点的接收处理方为统一的埋点平台,该平台定位服务于各端日志埋点的收集并存储,同时提供一套数据加工平台和BI实时查询工具。&lt;/p&gt;&lt;h4&gt;&lt;span&gt;2.1.1 埋点结构&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;对流水线检测过程做了数据建模,明确了埋点数据结构元素:用户+行为+时间+业务公参+操作环境信息。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/29/f9e89178340732ffe775237c258ba9c8fe536b.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 902px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;2.1.2 埋点上报&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;上报机制:场景触发 -&amp;gt; 埋点标准数据抽取 -&amp;gt; 数据上报 -&amp;gt; 兜底重试 -&amp;gt; 数据粗筛 -&amp;gt; 数据存储 -&amp;gt; 大数据清洗。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/057a96155a83289377c1203e6b1669e00405a3.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 704px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h3&gt;&lt;span&gt;2.2 埋点架构&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: center;&quot;&gt;质检检测各节点的操作数据上报后,这部分的数据在整体架构中的流转以及应用方式是怎样的,见下图:&lt;img src=&quot;https://s5.51cto.com/oss/202408/29/23fcb2972ed3cbf9cc43521b829b6df9cae1fb.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;在埋点存储方面,先存储至埋点平台业务库,大数据侧通过CDC同步机制同步数据,同时大数据也会进行数据的二次加工等清洗动作。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;3、埋点数据应用&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;基于埋点上报的标准数据分析,再结合对应的数据标准和数据策略,可以达到对于流水线进行数字化管理的目的。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;3.1 场景-执行合规应用&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;在质检操作合规判定策略中,需要对质检工程师的动作进行分析并且给出实时判定是否合规的意见。例如:‘手机外壳外观’质检合规判定中有一项是需要判定质检工程师是否按照标准SOP进行多个角度翻转质检,举例如下:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;--《手机外壳外观》标准质检SOP
        s1:屏幕息屏正面对着质检师,从上往下,依次检查是否有划痕、瑕疵等。
        s2:从中框任意一个点开始,设备环绕一圈检查中框情况
        s3:屏幕息屏背面对着质检师,从上往下,依次检查是否有划痕、瑕疵等。&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个时候就利用了质检过程中手机的传感器硬件埋点数据。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/29/1322ecb33eea8b68a61098827dd9b0b152e067.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;三维(X,Y,Z)空间的角度传感器数据折线图&lt;/p&gt;&lt;p&gt;结合我们质检操作标准SOP的动作要求和获取到角度传感器数据,按照标准SOP操作对应到的角度数据会呈现对应的变化趋势的。&lt;/p&gt;&lt;p&gt;例如:在检查‘四周边框’时,环绕一圈检查,这个过程中X轴的角度值会跟随着动作呈现出 0°-&amp;gt;90°-&amp;gt;180°-&amp;gt;-180°-&amp;gt;-90°-&amp;gt;0° 变化,其他轴也是类似变化。于是,我们得出判定角度合规的角度要求。示例如下:&lt;/p&gt;&lt;table style=&quot;width: 100%; outline: none; border-collapse: collapse;&quot; class=&quot;data-table&quot; data-transient-attributes=&quot;class&quot; data-width=&quot;656px&quot;&gt;&lt;colgroup data-id=&quot;c7104f7d-PKcdTAEM&quot;&gt;&lt;col data-id=&quot;cd89ecb0-PNPJk1K2&quot; span=&quot;1&quot; width=&quot;131&quot;&gt;&lt;col data-id=&quot;cd89ecb0-iZn3Emm5&quot; span=&quot;1&quot; width=&quot;131&quot;&gt;&lt;col data-id=&quot;cd89ecb0-VndJWcHa&quot; span=&quot;1&quot; width=&quot;131&quot;&gt;&lt;col data-id=&quot;cd89ecb0-aEdpc0ab&quot; span=&quot;1&quot; width=&quot;131&quot;&gt;&lt;col data-id=&quot;cd89ecb0-JK6hCFVH&quot; span=&quot;1&quot; width=&quot;132&quot;&gt;&lt;/colgroup&gt;&lt;tbody data-id=&quot;t6d5e859-Ng2V0g38&quot;&gt;&lt;tr style=&quot;height: 30px;&quot; data-id=&quot;t31e458f-XJkZcLgZ&quot;&gt;&lt;td data-id=&quot;t6267798-dBTXdj9g&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;步骤&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td data-id=&quot;t6267798-9FkPlGAY&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;X轴&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td data-id=&quot;t6267798-WSgf1OjK&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;Y轴&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td data-id=&quot;t6267798-hmAPgZMi&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;Z轴&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td data-id=&quot;t6267798-DETVggaZ&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-row&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;时长&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 30px;&quot; data-id=&quot;t31e458f-M8KS2ja4&quot;&gt;&lt;td data-id=&quot;t6267798-15YhMb0r&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;屏幕正面&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-mIWcXHWi&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-Z2KU9Scn&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;±60°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-ofRC49jF&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-jB5fQ6LI&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-row&quot;&gt;&lt;p&gt;2s&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 30px;&quot; data-id=&quot;t31e458f-2fXmF7gU&quot;&gt;&lt;td data-id=&quot;t6267798-Kon7o3kC&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;四周边框&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-Va48K0m1&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;±180°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-2PdW8ram&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;±20°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-7S2aKFnr&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-W1Wl3pUe&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-row&quot;&gt;&lt;p&gt;3s&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 30px;&quot; data-id=&quot;t31e458f-bUVkfDoL&quot;&gt;&lt;td data-id=&quot;t6267798-Xjpp8t3S&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;手机背壳&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-kbo6Qtss&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column&quot;&gt;&lt;p&gt;±60°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-nTQWTuCJ&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-U5LjJd3G&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column&quot;&gt;&lt;p&gt;±180°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-KbUjd9Bo&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column table-last-row&quot;&gt;&lt;p&gt;1s&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;基于配置的角度差值要求,角度值在连续满足起始和结束值的区间内超过设置的时长即可认为合规。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/57726b65013d00bbff73338742360e73872df1.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;角度判定合规示意图(红色区域为合规区域)&lt;/p&gt;&lt;h3&gt;&lt;span&gt;3.2 场景-智能策略应用&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;除在上文中提到的实时分析场景,另外一大应用则是对于数据的二次加工分析使用。该场景基于大数据的数据清洗、加工、挖掘等手段形成了一套完备的数据分析体系。在质检的部分策略中,在大数据和基于数据的算法模型的加持下,打破了以往固定配置的策略的局限性,实现了智能策略的自我迭代。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/29/b38952969f4e73acead76344728b18f6ce6438.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;如图示,业务数据在经过一个流程之后又会产生新的业务数据。循环往复,数据在闭环的机制内驱动着策略自我迭代。换而言之,质检的数据策略不再是冰冷的固定阈值配置,而是基于大数据和算法加持的智能策略。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/29/33049d079a552874191868374b8f3ca327d70d.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;智能策略交互示意图&lt;/p&gt;&lt;h3&gt;&lt;span&gt;3.3 场景-BI看板&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: center;&quot;&gt;按照我们标准定义的质检行为上报的埋点数据,经过数据加工后可以实现比较精细且支持多维度的数据看板。&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/07f395b32f76002c35c0503717cc834e43564b.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;4、结语&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;目前我们处于质检数字化初期的埋点探索,对于探索质检数字化未来的诸多可能,我们保持初心。接下来,我们会继续深入数字化,在大数据和算法等能力BUF的加持下去实现更广阔质检数字化。道阻且长,行则将至。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;5、参考链接&lt;/span&gt;&lt;/h2&gt;&lt;ul data-id=&quot;u738a58b-5gNY6VhX&quot;&gt;&lt;li data-id=&quot;ld70c578-sLsryqc1&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://zhuanlan.zhihu.com/p/577455883&quot;&gt;https://zhuanlan.zhihu.com/p/577455883&lt;/a&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1prfaKD2&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://zhuanlan.zhihu.com/p/665167127&quot;&gt;https://zhuanlan.zhihu.com/p/665167127&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/oHbUqbYQToShsLYFQWRf6A&quot; target=&quot;_blank&quot;&gt;转转技术&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%B4%A8%E6%A3%80%E5%9F%8B%E7%82%B9&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;质检埋点&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795843.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795843.html</guid>
      <pubDate>Thu, 29 Aug 2024 06:44:01 GMT</pubDate>
    </item>
    <item>
      <title>防范新型网络钓鱼的十款热门工具/服务</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;防范新型网络钓鱼的十款热门工具/服务&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;!----&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 14:21:02&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/application&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;应用安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;Valimail非常适合预算有限的中小企业用户,其DMARC服务能够逐步引导用户为电子邮件域配置DMARC,然后汇总并生成每日DMARC报告。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;网络钓鱼攻击是指利用虚假身份和欺骗手段,通过网站、语音、短信、邮件、Wi-Fi等途径,诱导用户泄露用户名、密码、银行账户等个人敏感信息的一种网络攻击方式。随着人工智能变得越来越容易获得和先进,威胁行为者也正在利用这种技术改造传统的网络钓鱼攻击活动,并带来了以下新的安全挑战:&lt;br&gt;&lt;/p&gt;&lt;p&gt;● 更熟练地利用社会工程:通过利用AI技术,攻击者可以访问的大量数据,从而为每个攻击目标量身定制个性化网络钓鱼电子邮件。这种个性化无疑会增加攻击意图被检测出的难度。&lt;/p&gt;&lt;p&gt;● 生成更真实的欺诈内容:在大语言模型技术帮助下,新型钓鱼攻击的内容在语法、风格和语气等方面都会更加接近于合法的通信,使欺诈信息难以被检测;&lt;/p&gt;&lt;p&gt;● 攻击的自动化程度更强:新型网络钓鱼活动能够自动执行攻击的不同阶段,例如电子邮件创建、分发和处理响应。攻击的自动化将使得更多的企业和用户成为攻击目标。&lt;/p&gt;&lt;p&gt;● 自适应规避检测:新型网络钓鱼活动能够根据攻击反馈进行效果进化,这使得现有的安全防护系统很难跟上网络钓鱼策略的改进步伐。在AI的加持下,攻击者能够采用多种规避手段绕过反网络钓鱼措施或电子邮件过滤器。&lt;/p&gt;&lt;p&gt;●&amp;nbsp;攻击定位更精确:新型网络钓鱼攻击能够收集和分析目标企业的大量公开信息。这些数据将用于量身定制网络钓鱼的剧本。因为这些信息对受害者来说是相关和真实的,因此将大大增加攻击的成功率。&lt;/p&gt;&lt;p&gt;● 创建深度伪造:新型网络钓鱼攻击活动并不仅限于书面文字,一种常见的变体是涉及语音通话的“语音钓鱼”(vishing)。攻击者会模仿录制特定人的声音,并创建令人信服的虚假录音。&lt;/p&gt;&lt;p&gt;为了应对新型网络钓鱼攻击威胁,企业需要部署先进的网络钓鱼防护工具,通过多个步骤来降低网络钓鱼攻击过程中的风险。这些工具能够帮助用户快速识别出欺诈性的钓鱼邮件或链接,并在钓鱼攻击突破现有的防护措施时,帮助用户减轻其造成的损害,追踪恶意的钓鱼电子邮件流量,对可能受损的用户账户采取修复措施。本文收集整理了目前较热门的10款网络钓鱼防护工具/服务,并对其应用特点进行了简要分析。&lt;/p&gt;&lt;h3&gt;1. Avanan&lt;/h3&gt;&lt;p&gt;Avanan为云托管电子邮件提供反钓鱼软件,通过API连接到企业的电子邮件提供商,使用历史邮件来训练其AI防护模型。该服务不仅分析邮件内容、格式和标头信息,还评估发件人与收件人之间的现有关系,以建立信任等级,此外,Avanan还能检测两条新兴攻击途径(Teams和Slack)中的可疑消息。&lt;/p&gt;&lt;p&gt;传送门:https://www.avanan.com/anti-phishing-software&lt;/p&gt;&lt;h3&gt;2. Barracuda Email Protection&lt;/h3&gt;&lt;p&gt;Barracuda Email Protection也是一款利用邮件提供商API来防御网络钓鱼攻击和商业邮件入侵(BEC)的工具。Barracuda的产品可以防御多种类型的网络钓鱼,从鱼叉式钓鱼、冒充身份到零日钓鱼攻击。由于泄露的电子邮件账户往往导致更多的钓鱼尝试或基于账户的进一步攻击,Barracuda侧重于尽量减小钓鱼攻击得逞后造成的进一步损害,这比一味依赖预防更有意义。Barracuda还可以通过DMARC分析和报告提供品牌保护和域名欺诈防护。&lt;/p&gt;&lt;p&gt;传送门:https://www.barracuda.com/products/email-protection&lt;/p&gt;&lt;h3&gt;3. BrandShield&lt;/h3&gt;&lt;p&gt;BrandShield专注于防范网络钓鱼活动对企业品牌及高管声誉的损害,能够通过电子邮件、社交媒体或其他媒介识别利用企业品牌或高管名字的钓鱼攻击。当然,这只是BrandShield产品功能组合中的一部分。BrandShield方案还能够监测互联网上是否存在盗用贵企业品牌的恶意网站,并监测亚马逊等市场上是否有公然销售的假冒产品。&lt;/p&gt;&lt;p&gt;传送门:&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.brandshield.com/&quot;&gt;https://www.brandshield.com/&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;4. Cofense PDR&lt;/h3&gt;&lt;p&gt;Cofense PDR(网络钓鱼检测和响应)是一项托管式反网络钓鱼攻击服务,能够结合利用基于AI的工具和安全专家,帮助用户识别和应对当前发生的钓鱼攻击。如果企业需要最大限度的网络钓鱼保护能力,托管服务将是很好的选择,它比雇用全职团队处理钓鱼预防工作更有效,因为托管服务团队能够评估来自他们保护的所有企业系统的威胁数据。&lt;/p&gt;&lt;p&gt;传送门:https://cofense.com/product-services/phishing-defense-services/&lt;/p&gt;&lt;h3&gt;5. Outseer FraudAction&lt;/h3&gt;&lt;p&gt;Outseer FraudAction的前身RSA FraudAction,它提供了一套功能非常全面的网络钓鱼防护解决方案。该方案是一种托管式的网络钓鱼防护服务,类似Cofense提供的服务。Outseer还拥有一些独特的功能,比如网站关闭、取证分析以及可选的主动对策(比如通过植入凭据一劳永逸地应对钓鱼尝试,以便跟踪攻击链,并做出相应反应)。&lt;/p&gt;&lt;p&gt;传送门:https://www.outseer.com/products/outseer-fraud-action/&lt;/p&gt;&lt;h3&gt;6. IRONSCALES&lt;/h3&gt;&lt;p&gt;IRONSCALES是一个电子邮件安全平台,通过动态检测和分析来增强企业现有电子邮件系统的安全性,包括:阻止、标记或仅在可能的可疑邮件上添加横幅。IRONSCALES还提供终端用户培训,重点是电子邮件安全和普遍的安全意识,这有助于增强企业对钓鱼攻击核心——社会工程攻击的防御能力。&lt;/p&gt;&lt;p&gt;传送门:https://ironscales.com/&lt;/p&gt;&lt;h3&gt;7. KnowBe4&lt;/h3&gt;&lt;p&gt;KnowBe4的首席黑客官是黑客界大名鼎鼎的Kevin Mitnick。Mitnick开发的许多漏洞利用工具侧重于社会工程领域,公司业务也体现了这一点,致力于加强教育,确保员工做出更明智的决策。除了一流的安全意识培训外,KnowBe4还提供PhishER,这是一个围绕钓鱼攻击的安全编排、自动化和响应(SOAR)平台,它使安全团队能够更高效地应对针对企业的电子邮件威胁。&lt;/p&gt;&lt;p&gt;传送门:https://www.knowbe4.com/&lt;/p&gt;&lt;h3&gt;8. Mimecast&lt;/h3&gt;&lt;p&gt;Mimecast提供了多种工具来防范钓鱼攻击,包括检测恶意链接和附件的功能,通过使用沙箱等高级方法删除或使其安全。Mimecast还能够防止通过钓鱼邮件发起的基于代码的攻击,或通过更复杂的方法(如QR码)发起的攻击,它通过在Mimecast云中打开链接,简化了部署过程,并确保预防工具始终保持更新。&lt;/p&gt;&lt;p&gt;传送门:https://www.mimecast.com/products/email-security-with-targeted-threat-protection/&lt;/p&gt;&lt;h3&gt;9.&amp;nbsp;Microsoft Defender for Office 365&lt;/h3&gt;&lt;p&gt;Microsoft Defender for Office 365提供了与本清单中其他工具类似的功能:用户培训、钓鱼检测和防御、取证和根本原因分析,甚至是威胁狩猎。由于Defender只是Office 365的一个附加组件,因此它能够紧密集成,无需配置初始集成。微软公司还可以根据企业的需求自定义预设安全策略,支持强制执行、用户覆盖选项以及跟踪策略变化,这项服务对Office 365用户具有特别的优势,但对其他用户则可能存在一些劣势。&lt;/p&gt;&lt;p&gt;传送门:https://www.microsoft.com/en-us/security/business/siem-and-xdr/microsoft-defender-office-365&lt;/p&gt;&lt;h3&gt;10. Valimail&lt;/h3&gt;&lt;p&gt;Valimail非常适合预算有限的中小企业用户,其DMARC服务能够逐步引导用户为电子邮件域配置DMARC,然后汇总并生成每日DMARC报告。Valimail最大的优点是,提供了数款免费的DMARC工具,同时还提供Amplify服务,便于实施BIMI标准(邮件身份标识品牌标识),该标准会为发自贵企业的电子邮件添加企业徽标,表明发件人已经过验证并有效。&lt;/p&gt;&lt;p&gt;传送门:https://www.valimail.com/&lt;/p&gt;&lt;p&gt;原文链接:&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.csoonline.com/article/569867/9-top-anti-phishing-tools-and-services.html&quot;&gt;https://www.csoonline.com/article/569867/9-top-anti-phishing-tools-and-services.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:武晓燕&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/Xv3nsMWUh8HbLWWMAsedTg&quot; target=&quot;_blank&quot;&gt;安全牛&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Valimail&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Valimail&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=DMARC&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;DMARC&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%9C%8D%E5%8A%A1&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;服务&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795840.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795840.html</guid>
      <pubDate>Thu, 29 Aug 2024 06:21:02 GMT</pubDate>
    </item>
    <item>
      <title>深度学习还不如浅层网络?RL教父Sutton持续反向传播算法登Nature</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;深度学习还不如浅层网络?RL教父Sutton持续反向传播算法登Nature&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:机器之心&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 14:20:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;最近,一篇发表在《nature》杂志上的研究论文《Loss of plasticity in deep continual learning》证明:标准的深度学习方法在持续学习环境中会逐渐失去可塑性(plasticity),直到它们的学习效果不比浅层网络好。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;人工神经网络、深度学习方法和反向传播算法构成了现代机器学习和人工智能的基础。但现有方法往往是一个阶段更新网络权重,另一个阶段在使用或评估网络时权重保持不变。这与许多需要持续学习的应用程序形成鲜明对比。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最近,一篇发表在《nature》杂志上的研究论文《Loss of plasticity in deep continual learning》证明:标准的深度学习方法在持续学习环境中会逐渐失去可塑性(plasticity),直到它们的学习效果不比浅层网络好。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/955eb7305ef83bccb21173083c70ce6fd02ce8.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: justify;&quot; data-id=&quot;ua73dd4b-6dcKeE6R&quot;&gt;&lt;li data-id=&quot;ld70c578-EhdSfYFh&quot;&gt;&lt;span style=&quot;color: #7b0c00;&quot;&gt;&lt;span&gt;论文地址:https://www.nature.com/articles/s41586-024-07711-7&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;值得注意的是,人工智能先驱、强化学习教父、DeepMind 杰出研究科学家,阿尔伯塔大学计算机科学教授 Richard S. Sutton 是这篇论文的作者之一。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;简单来说,该研究使用经典的 ImageNet 数据集、神经网络和学习算法的各种变体来展示可塑性的丧失。只有通过不断向网络注入多样性的算法才能无限期地维持可塑性。基于这种思路,该研究还提出了「持续反向传播算法」,这是反向传播的一种变体,其中一小部分较少使用的单元被持续随机地重新初始化。实验结果表明,基于梯度下降的方法是不够的,持续的深度学习需要随机的、非梯度的成分来保持可变性和可塑性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;ImageNet 数据库包含数百万张用名词(类别)标记的图像,例如动物类型和日常物品。典型的 ImageNet 任务是猜测给定图像的标签。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了使 ImageNet 适应持续学习,同时最大限度地减少所有其他变化,该研究通过成对的类构建了一系列二元分类任务。例如,第一个任务可能是区分猫和房屋,第二个任务可能是区分停车标志和校车。利用数据集中的 1000 个类,该研究能够以这种方式形成 50 万个二元分类任务。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;对于每个任务,该研究首先在两个类的图像子集上训练深度学习网络,然后在这些类的单独测试集上测量其性能。在一个任务上训练和测试后,下一个任务从一对不同的类开始。研究团队将此问题称为「持续 ImageNet(Continual ImageNet)」。在持续 ImageNet 中,任务的难度随着时间的推移保持不变。性能下降意味着网络正在失去学习能力,这是可塑性丧失的直接表现。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究将各种标准深度学习网络应用于 Continual ImageNet,并测试了许多学习算法和参数设置。为了评估网络在任务中的性能,该研究测量了正确分类测试图像的百分比。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究发现:对于经过良好调整的网络,性能往往首先提高,然后大幅下降,最终接近或低于线性基线。当性能开始下降时,网络架构、算法参数和优化器的具体选择会产生影响,但多种选择都会导致性能严重下降。标准深度学习方法在后续任务中无法比线性网络更好地学习,这直接证明这些方法在持续学习问题中效果不佳。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/29/54bf3f445c74dae18052498b7b38e717422921.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;令人惊讶的是,Adam、Dropout 和归一化等流行方法实际上增加了可塑性的损失;而 L2 正则化在许多情况下减少了可塑性的损失。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/29/e833cdf910c0f412e7a9198d8d0aee79777a79.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究团队发现:显式保持网络权重较小的算法通常能够保持可塑性,甚至在许多任务中能够提高性能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究基于上述发现,提出了反向传播算法的一种变体 —— 持续反向传播,该算法向网络注入可变性并保持其某些权重较小。&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;方法&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span&gt;持续反向传播&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;持续反向传播算法将选择性地对网络中低效的单元进行初始化处理。研究团队定义了名为「贡献效用」的值来衡量每个单元的重要性。如果神经网络中某个隐藏单元对它所连接的下游单元的影响很小,那么它的作用就可能被网络中其他更有影响力的隐藏单元掩盖。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;贡献效用通过计算即时贡献的移动平均值来衡量,这个值由衰减率表示。在所有实验中,初始衰减率 η 设置为 0.99。在前馈神经网络中,第 l 层第 i 个隐藏单元在时间 t 的贡献效用&lt;/span&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/29/c7eef349694c6932909047054ff09e68aca258.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 90px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span&gt;更新如下:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/29/a851ebf98d4acb9de7622496b90711f1f29969.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 576px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;其中&lt;/span&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/c6d714c98346ffce621682176d6744d498ee79.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 94px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span&gt;是时间 t 时第 l 层第 i 个隐藏单元的输出,&lt;/span&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/56e8272404f390686ee3483dc1aa4de441e5e9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 114px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span&gt;代表其权重,&lt;/span&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/f9e406b372e1ae0167c81526cb2675ecc5accf.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 75px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span&gt;代表第 l+1 层的单元数量。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;当一个隐藏单元被重新初始化时,它的输出的权重将被初始化为零。这么做是为了新添加的隐藏单元不会影响模型已经学到的功能。但是这样也容易导致新的隐藏单元很快被重新初始化。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了防止这种情况,研究团队设置了「成熟阈值」,在 m 次更新前,即使新的隐藏单元的效用是零,也不会被重新初始化。当更新次数超过 m 后,每一步「成熟单元」的一部分 ρ(称为替换率),在每一层都会被重新初始化。替换率 ρ 通常设置为一个非常小的值,这意味着在数百次更新后只替换一个单元。例如,在 CIFAR-100 中,研究团队将替换率设置为 10 的负五次方,每一步,大约 0.00512 个单元被替换。这相当于大约每 200 次更新替换一次。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最终的算法结合了传统的反向传播和选择性重新初始化两种方法,以持续地从初始分布中引入随机单元。每次更新时,持续反向传播将执行梯度下降并选择性地重新初始化。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;前馈神经网络的持续反向传播如算法1所示。处理小批量数据时,可以采取一种更经济的方法:通过对小批量数据上的即时贡献效用取平均值,而不是保持一个运行平均值来节省计算量。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/29/71e5e9181808da3010c629da9d768ed7c916e4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 670px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/29/95ac5aa437c6393c66c45631b0f6f8d687ea00.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 682px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span&gt;在 ImageNet 上的应用&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究使用了包含 1000 个类别的 ImageNet 数据库,每个类别有 700 张图片,分为 600 张训练图像和 100 张测试图像。在二元分类任务中,网络首先在 1200 张训练图像上训练,然后在 200 张测试图像上评估分类准确度。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;所有在持续 ImageNet 上使用的算法都采用了具有三个卷积加最大池化(convolutional-plus-max-pooling)层和三个全连接层的卷积网络。最终层有两个单元,对应两个类别。在任务变更时,这些单元的输入权重会重置为零。这种做法在深度持续学习中是标准做法,尽管它为学习系统提供了关于任务变化时间的特权信息。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;线性网络的性能在持续 ImageNet 上不会下降,因为它在每个任务开始时都会重置。通过在数千个任务上取均值,得到线性网络性能的低方差估计值,作为基线。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;网络使用带有动量的 SGD 在交叉熵损失上进行训练,动量参数设为 0.9。研究者测试了不同的步长参数,但为了清晰起见,只展示了 0.01、0.001 和 0.0001 的步长性能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究还通过网格搜索确定了 L2 正则化、收缩和扰动以及持续反向传播算法的超参数,以在 5000 个任务上获得最高的平均分类准确度。L2 正则化和收缩扰动的超参数包括步长、权重衰减和噪声方差,持续反向传播的超参数包括步长和替换率,成熟度阈值设为 100。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究者对所有超参数集合进行了 10 次独立运行,然后对表现最佳的超参数集合进行了额外的 20 次运行,总共 30 次。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/29/b631eb278936cbaf93904785f567215fc83d2e.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;CIFAR-100 的类别增量学习&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在 CIFAR-100 的类别增量学习中,开始时,模型可以识别 5 种类型的图片,随着训练时间越来越长,模型能识别的图片种类越来越多,比如能同时学习 100 种类别的图片。在这个过程中,系统将通过测试检验自己的学习效果。数据集由 100 个类别组成,每个类别有 600 张图像,其中 450 张用于创建训练集,50 张用于验证集,100 张用于测试集。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;每次增加学习的类别后,网络被训练 200 个周期,总共增加 20 次,共训练 4000 个周期。研究团队在前 60 个周期中将学习率设置为 0.1,接下来的 60 个周期为 0.02,此后的 30 个周期为 0.004,最后的 40 个周期为 0.0008。在每次增加的 200 个周期中,研究团队选出了在验证集上准确度最高的网络。为了防止过拟合,在每轮训练中,新网络的权重将被重置为上一轮准确度最高网络的权重。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;他们选择了 18 层的 ResNet 做实验。在将输入图像呈现给网络之前,该研究进行了几个步骤的数据预处理。首先,将每张图像中所有像素的值重新缩放到 0 和 1 之间。然后,每个通道中的每个像素值通过该通道像素值的平均值和标准差分别进行中心化和重新缩放。最后,在将图像输入给网络之前,该研究对每张图像应用了三种随机数据转换:以 0.5 的概率随机水平翻转图像,通过在每边填充 4 个像素然后随机裁剪到原始大小来随机裁剪图像,以及在 0-15° 之间随机旋转图像。预处理的前两步应用于训练集、验证集和测试集,但随机转换仅应用于训练集中的图像。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究测试了多个超参数,以确保在特定架构下保持每个算法的最佳性能。对于基础系统,该研究测试的权重衰减参数取值范围为 {0.005, 0.0005, 0.00005}。对于「持续反向传播」,该研究测试的成熟度阈值取值范围为&amp;nbsp;{1000, 10000},替换率的取值范围为&lt;img src=&quot;https://s5.51cto.com/oss/202408/29/133f2b862fe27d81abd713848572c3ee4a4d4c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 317px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;,采用了公式 (1) 中描述的贡献效用。成熟度阈值为 1000,替换率为 10^(-5) 时,表现最佳。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/29/f8a6537347fd048e6dd3154024dba5de4f1759.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;作为参考,该研究还实现了一个具有与基础系统相同超参数的网络,但在每次增量的开始时都会重新初始化。图 2b 显示了每个算法相对于重新初始化网络的性能表现。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;持续反向传播在全部的 100 个类别中的最终准确率为 76.13%,而扩展数据图 1b 展示了在成熟度阈值为 1000 时,持续反向传播在不同替换率下的性能表现。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;感兴趣的读者可以阅读论文原文,了解更多研究内容。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/jeqXj3ez5DbItS7RpoVaSg&quot; target=&quot;_blank&quot;&gt;机器之心&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%AE%AD%E7%BB%83&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;训练&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795833.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795833.html</guid>
      <pubDate>Thu, 29 Aug 2024 06:20:00 GMT</pubDate>
    </item>
    <item>
      <title>港大黄超团队推出AnyGraph, 首次揭秘图大模型的Scaling Law</title>
      <description>&lt;div class=&quot;arti

Copy link
Contributor

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Thu, 29 Aug 2024 15:13:07 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>SpringBoot 接口防抖的一些实现方案</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;SpringBoot 接口防抖的一些实现方案&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:码猿技术专栏&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 15:26:21&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;所谓防抖,一是防用户手抖,二是防网络抖动。后端也应实施相应的防抖逻辑,确保在网络波动的情况下不会接收并处理同一请求多次。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;作为一名老码农,在开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/29/318dbd494cf52d3bcac101559fa5da6b12ccaa.jpg&quot; style=&quot;visibility: visible; width: 600px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。&lt;/p&gt;&lt;h3&gt;一、啥是防抖&lt;/h3&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/29/7180d0c4572d0de8c105634d15a773d5564ac2.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 838px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。&lt;/p&gt;&lt;p&gt;要针对用户的误操作,前端通常会实现按钮的loading状态,阻止用户进行多次点击。而对于网络波动造成的请求重发问题,仅靠前端是不行的。为此,后端也应实施相应的防抖逻辑,确保在网络波动的情况下不会接收并处理同一请求多次。&lt;/p&gt;&lt;p&gt;一个理想的防抖组件或机制,我觉得应该具备以下特点:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-9OY1Mvj9&quot;&gt;&lt;li data-id=&quot;ld70c578-VKTgcudj&quot;&gt;逻辑正确,也就是不能误判;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-zNoOru03&quot;&gt;响应迅速,不能太慢;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-15rk0Mg7&quot;&gt;易于集成,逻辑与业务解耦;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-PdtXBMDG&quot;&gt;良好的用户反馈机制,比如提示“您点击的太快了”&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;二、思路解析&lt;/h3&gt;&lt;p&gt;前面讲了那么多,我们已经知道接口的防抖是很有必要的了,但是在开发之前,我们需要捋清楚几个问题。&lt;/p&gt;&lt;h4&gt;1.哪一类接口需要防抖?&lt;/h4&gt;&lt;p&gt;接口防抖也不是每个接口都需要加,一般需要加防抖的接口有这几类:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-3012WCzH&quot;&gt;&lt;li data-id=&quot;ld70c578-SpdhSU9v&quot;&gt;用户输入类接口:&amp;nbsp;比如搜索框输入、表单输入等,用户输入往往会频繁触发接口请求,但是每次触发并不一定需要立即发送请求,可以等待用户完成输入一段时间后再发送请求。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-0mxMwqqO&quot;&gt;按钮点击类接口:&amp;nbsp;比如提交表单、保存设置等,用户可能会频繁点击按钮,但是每次点击并不一定需要立即发送请求,可以等待用户停止点击一段时间后再发送请求。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-BoIMlI4F&quot;&gt;滚动加载类接口:&amp;nbsp;比如下拉刷新、上拉加载更多等,用户可能在滚动过程中频繁触发接口请求,但是每次触发并不一定需要立即发送请求,可以等待用户停止滚动一段时间后再发送请求。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;2.如何确定接口是重复的?&lt;/h4&gt;&lt;p&gt;防抖也即防重复提交,那么如何确定两次接口就是重复的呢?首先,我们需要给这两次接口的调用加一个时间间隔,大于这个时间间隔的一定不是重复提交;&lt;/p&gt;&lt;p&gt;其次,两次请求提交的参数比对,不一定要全部参数,选择标识性强的参数即可;&lt;/p&gt;&lt;p&gt;最后,如果想做的更好一点,还可以加一个请求地址的对比。&lt;/p&gt;&lt;h3&gt;三、分布式部署下如何做接口防抖?&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;有两个方案:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;1.使用共享缓存&lt;/h4&gt;&lt;p&gt;流程图如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/59bb55928722e1d32242419ac1d9f748736a50.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 772px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;2.使用分布式锁&lt;/h4&gt;&lt;p&gt;流程图如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/f6695b096eb23f932b6020fbdd91e75a95ca76.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 720px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;常见的分布式组件有Redis、Zookeeper等,但结合实际业务来看,一般都会选择Redis,因为Redis一般都是Web系统必备的组件,不需要额外搭建。&lt;/p&gt;&lt;h3&gt;四、具体实现&lt;/h3&gt;&lt;p&gt;现在有一个保存用户的接口:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;@PostMapping(&quot;/add&quot;)
        @RequiresPermissions(value = &quot;add&quot;)
        @Log(methodDesc = &quot;添加用户&quot;)
        public ResponseEntity&amp;lt;String&amp;gt; add(@RequestBody AddReq addReq) {
        return userService.add(addReq);
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;AddReq.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;package com.summo.demo.model.request;
        import java.util.List;
        import lombok.Data;
        @Datapublic class AddReq {
        /** * 用户名称 */ private String userName;
        /** * 用户手机号 */ private String userPhone;
        /** * 角色ID列表 */ private List&amp;lt;Long&amp;gt; roleIdList;
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;目前数据库表中没有对userPhone字段做UK索引,这就会导致每调用一次add就会创建一个用户,即使userPhone相同。&lt;/p&gt;&lt;h3&gt;五、请求锁&lt;/h3&gt;&lt;p&gt;根据上面的要求,我定了一个注解@RequestLock,使用方式很简单,把这个注解打在接口方法上即可。&lt;/p&gt;&lt;p&gt;RequestLock.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;package com.summo.demo.model.request;
        import java.util.List;
        import lombok.Data;
        @Data
        public class AddReq {
        /**
        * 用户名称
        */
        private String userName;
        /**
        * 用户手机号
        */
        private String userPhone;
        /**
        * 角色ID列表
        */
        private List&amp;lt;Long&amp;gt; roleIdList;
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;@RequestLock注解定义了几个基础的属性,redis锁前缀、redis锁时间、redis锁时间单位、key分隔符。其中前面三个参数比较好理解,都是一个锁的基本信息。&lt;/p&gt;&lt;p&gt;key分隔符是用来将多个参数合并在一起的,比如userName是张三,userPhone是123456,那么完整的key就是&quot;张三&amp;amp;123456&quot;,最后再加上redis锁前缀,就组成了一个唯一key。&lt;/p&gt;&lt;h3&gt;六、唯一key生成&lt;/h3&gt;&lt;p&gt;这里有些同学可能就要说了,直接拿参数来生成key不就行了吗?额,不是不行,但我想问一个问题:如果这个接口是文章发布的接口,你也打算把内容当做key吗?要知道,Redis的效率跟key的大小息息相关。所以,我的建议是选取合适的字段作为key就行了,没必要全都加上。&lt;/p&gt;&lt;p&gt;要做到参数可选,那么用注解的方式最好了,注解如下:&lt;/p&gt;&lt;p&gt;RequestKeyParam.java&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;package com.example.requestlock.lock.annotation;
        import java.lang.annotation.*;
        /**
        * @description 加上这个注解可以将参数设置为key
        */
        @Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
        @Retention(RetentionPolicy.RUNTIME)
        @Documented
        @Inherited
        public @interface RequestKeyParam {
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个注解加到参数上就行,没有多余的属性。&lt;/p&gt;&lt;p&gt;接下来就是lockKey的生成了,代码如下:&lt;/p&gt;&lt;p&gt;RequestKeyGenerator.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import java.lang.annotation.Annotation;
        import java.lang.reflect.Field;
        import java.lang.reflect.Method;
        import java.lang.reflect.Parameter;
        import org.aspectj.lang.ProceedingJoinPoint;
        import org.aspectj.lang.reflect.MethodSignature;
        import org.springframework.util.ReflectionUtils;
        import org.springframework.util.StringUtils;
        public class RequestKeyGenerator {
        /**
        * 获取LockKey
        *
        * @param joinPoint 切入点
        * @return
        */
        public static String getLockKey(ProceedingJoinPoint joinPoint) {
        //获取连接点的方法签名对象
        MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature();
        //Method对象
        Method method = methodSignature.getMethod();
        //获取Method对象上的注解对象
        RequestLock requestLock = method.getAnnotation(RequestLock.class);
        //获取方法参数
        final Object[] args = joinPoint.getArgs();
        //获取Method对象上所有的注解
        final Parameter[] parameters = method.getParameters();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i &amp;lt; parameters.length; i++) {
        final RequestKeyParam keyParam = parameters[i].getAnnotation(RequestKeyParam.class);
        //如果属性不是RequestKeyParam注解,则不处理
        if (keyParam == null) {
        continue;
        }
        //如果属性是RequestKeyParam注解,则拼接 连接符 &quot;&amp;amp; + RequestKeyParam&quot;
        sb.append(requestLock.delimiter()).append(args[i]);
        }
        //如果方法上没有加RequestKeyParam注解
        if (StringUtils.isEmpty(sb.toString())) {
        //获取方法上的多个注解(为什么是两层数组:因为第二层数组是只有一个元素的数组)
        final Annotation[][] parameterAnnotations = method.getParameterAnnotations();
        //循环注解
        for (int i = 0; i &amp;lt; parameterAnnotations.length; i++) {
        final Object object = args[i];
        //获取注解类中所有的属性字段
        final Field[] fields = object.getClass().getDeclaredFields();
        for (Field field : fields) {
        //判断字段上是否有RequestKeyParam注解
        final RequestKeyParam annotation = field.getAnnotation(RequestKeyParam.class);
        //如果没有,跳过
        if (annotation == null) {
        continue;
        }
        //如果有,设置Accessible为true(为true时可以使用反射访问私有变量,否则不能访问私有变量)
        field.setAccessible(true);
        //如果属性是RequestKeyParam注解,则拼接 连接符&quot; &amp;amp; + RequestKeyParam&quot;
        sb.append(requestLock.delimiter()).append(ReflectionUtils.getField(field, object));
        }
        }
        }
        //返回指定前缀的key
        return requestLock.prefix() + sb;
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;由于@RequestKeyParam可以放在方法的参数上,也可以放在对象的属性上,所以这里需要进行两次判断,一次是获取方法上的注解,一次是获取对象里面属性上的注解。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;七、重复提交判断&lt;/h3&gt;&lt;h4&gt;1.Redis缓存方式&lt;/h4&gt;&lt;p&gt;RedisRequestLockAspect.java&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import java.lang.reflect.Method;
        import com.summo.demo.exception.biz.BizException;
        import com.summo.demo.model.response.ResponseCodeEnum;
        import org.aspectj.lang.ProceedingJoinPoint;
        import org.aspectj.lang.annotation.Around;
        import org.aspectj.lang.annotation.Aspect;
        import org.aspectj.lang.reflect.MethodSignature;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.context.annotation.Configuration;
        import org.springframework.core.annotation.Order;
        import org.springframework.data.redis.connection.RedisStringCommands;
        import org.springframework.data.redis.core.RedisCallback;
        import org.springframework.data.redis.core.StringRedisTemplate;
        import org.springframework.data.redis.core.types.Expiration;
        import org.springframework.util.StringUtils;
        /**
        * @description 缓存实现
        */
        @Aspect
        @Configuration
        @Order(2)
        public class RedisRequestLockAspect {
        private final StringRedisTemplate stringRedisTemplate;
        @Autowired
        public RedisRequestLockAspect(StringRedisTemplate stringRedisTemplate) {
        this.stringRedisTemplate = stringRedisTemplate;
        }
        @Around(&quot;execution(public * * (..)) &amp;amp;&amp;amp; @annotation(com.summo.demo.config.requestlock.RequestLock)&quot;)
        public Object interceptor(ProceedingJoinPoint joinPoint) {
        MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature();
        Method method = methodSignature.getMethod();
        RequestLock requestLock = method.getAnnotation(RequestLock.class);
        if (StringUtils.isEmpty(requestLock.prefix())) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;重复提交前缀不能为空&quot;);
        }
        //获取自定义key
        final String lockKey = RequestKeyGenerator.getLockKey(joinPoint);
        // 使用RedisCallback接口执行set命令,设置锁键;设置额外选项:过期时间和SET_IF_ABSENT选项
        final Boolean success = stringRedisTemplate.execute(
        (RedisCallback&amp;lt;Boolean&amp;gt;)connection -&amp;gt; connection.set(lockKey.getBytes(), new byte[0],
        Expiration.from(requestLock.expire(), requestLock.timeUnit()),
        RedisStringCommands.SetOption.SET_IF_ABSENT));
        if (!success) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;您的操作太快了,请稍后重试&quot;);
        }
        try {
        return joinPoint.proceed();
        } catch (Throwable throwable) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;系统异常&quot;);
        }
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里的核心代码是stringRedisTemplate.execute里面的内容,正如注释里面说的“使用RedisCallback接口执行set命令,设置锁键;设置额外选项:过期时间和SET_IF_ABSENT选项”,有些同学可能不太清楚SET_IF_ABSENT是个啥?&lt;/p&gt;&lt;p&gt;这里我解释一下:SET_IF_ABSENT是&amp;nbsp;RedisStringCommands.SetOption&amp;nbsp;枚举类中的一个选项,用于在执行 SET 命令时设置键值对的时候,如果键不存在则进行设置,如果键已经存在,则不进行设置。&lt;/p&gt;&lt;h4&gt;2.Redisson分布式方式&lt;/h4&gt;&lt;p&gt;Redisson分布式需要一个额外依赖,引入方式:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;org.redisson&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;redisson-spring-boot-starter&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;3.10.6&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;由于我之前的代码有一个RedisConfig,引入Redisson之后也需要单独配置一下,不然会和RedisConfig冲突&lt;/p&gt;&lt;p&gt;RedissonConfig.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import org.redisson.Redisson;
        import org.redisson.api.RedissonClient;
        import org.redisson.config.Config;
        import org.springframework.context.annotation.Bean;
        import org.springframework.context.annotation.Configuration;
        @Configuration
        public class RedissonConfig {
        @Bean
        public RedissonClient redissonClient() {
        Config config = new Config();
        // 这里假设你使用单节点的Redis服务器
        config.useSingleServer()
        // 使用与Spring Data Redis相同的地址
        .setAddress(&quot;redis://127.0.0.1:6379&quot;);
        // 如果有密码
        //.setPassword(&quot;xxxx&quot;);
        // 其他配置参数
        //.setDatabase(0)
        //.setConnectionPoolSize(10)
        //.setConnectionMinimumIdleSize(2);
        // 创建RedissonClient实例
        return Redisson.create(config);
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配好之后,核心代码如下:&lt;/p&gt;&lt;p&gt;RedissonRequestLockAspect.java:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import java.lang.reflect.Method;
        import com.summo.demo.exception.biz.BizException;
        import com.summo.demo.model.response.ResponseCodeEnum;
        import org.aspectj.lang.ProceedingJoinPoint;
        import org.aspectj.lang.annotation.Around;
        import org.aspectj.lang.annotation.Aspect;
        import org.aspectj.lang.reflect.MethodSignature;
        import org.redisson.api.RLock;
        import org.redisson.api.RedissonClient;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.context.annotation.Configuration;
        import org.springframework.core.annotation.Order;
        import org.springframework.util.StringUtils;
        /**
        * @description 分布式锁实现
        */
        @Aspect
        @Configuration
        @Order(2)
        public class RedissonRequestLockAspect {
        private RedissonClient redissonClient;
        @Autowired
        public RedissonRequestLockAspect(RedissonClient redissonClient) {
        this.redissonClient = redissonClient;
        }
        @Around(&quot;execution(public * * (..)) &amp;amp;&amp;amp; @annotation(com.summo.demo.config.requestlock.RequestLock)&quot;)
        public Object interceptor(ProceedingJoinPoint joinPoint) {
        MethodSignature methodSignature = (MethodSignature)joinPoint.getSignature();
        Method method = methodSignature.getMethod();
        RequestLock requestLock = method.getAnnotation(RequestLock.class);
        if (StringUtils.isEmpty(requestLock.prefix())) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;重复提交前缀不能为空&quot;);
        }
        //获取自定义key
        final String lockKey = RequestKeyGenerator.getLockKey(joinPoint);
        // 使用Redisson分布式锁的方式判断是否重复提交
        RLock lock = redissonClient.getLock(lockKey);
        boolean isLocked = false;
        try {
        //尝试抢占锁
        isLocked = lock.tryLock();
        //没有拿到锁说明已经有了请求了
        if (!isLocked) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;您的操作太快了,请稍后重试&quot;);
        }
        //拿到锁后设置过期时间
        lock.lock(requestLock.expire(), requestLock.timeUnit());
        try {
        return joinPoint.proceed();
        } catch (Throwable throwable) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;系统异常&quot;);
        }
        } catch (Exception e) {
        throw new BizException(ResponseCodeEnum.BIZ_CHECK_FAIL, &quot;您的操作太快了,请稍后重试&quot;);
        } finally {
        //释放锁
        if (isLocked &amp;amp;&amp;amp; lock.isHeldByCurrentThread()) {
        lock.unlock();
        }
        }
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Redisson的核心思路就是抢锁,当一次请求抢到锁之后,对锁加一个过期时间,在这个时间段内重复的请求是无法获得这个锁,也不难理解。&lt;/p&gt;&lt;p&gt;测试一下。&lt;/p&gt;&lt;p&gt;第一次提交,&quot;添加用户成功&quot;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/398070f19f32ebdb32c29375ababa4661c8dd3.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 889px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;短时间内重复提交,&quot;BIZ-0001:您的操作太快了,请稍后重试&quot;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/35a115c4731ceaf75033440d3998f660b7b592.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 889px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;过几秒后再次提交,&quot;添加用户成功&quot;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/715f7085482fcc028a3178cbdc8ee185a9c7bb.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 889px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;从测试的结果上看,防抖是做到了,但是随着缓存消失、锁失效,还是可以发起同样的请求,所以要真正做到接口幂等性,还需要业务代码的判断、设置数据库表的UK索引等操作。&lt;/p&gt;&lt;p&gt;我在文章里面说到生成唯一key的时候没有加用户相关的信息,比如用户ID、IP属地等,真实生产环境建议加上这些,可以更好地减少误判。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzU3MDAzNDg1MA==&amp;amp;mid=2247534782&amp;amp;idx=1&amp;amp;sn=950da89f835f4ccbcdab2c016bf9f0de&amp;amp;chksm=fd74e568a4fdd23af0ff1dcedcace917c9531d4e6517db113d3755882c38e0c113c8fcd9fdb3&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0829sB0icKuaP0ok5UuWav0g&amp;amp;sharer_shareinfo=f07f6d68f8dfd6506bc247798c97acf4&amp;amp;sharer_shareinfo_first=f07f6d68f8dfd6506bc247798c97acf4#rd&quot; target=&quot;_blank&quot;&gt;码猿技术专栏&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E9%98%B2+%E6%8A%96&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;防 抖&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=SpringBoot&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;SpringBoot&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795852.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795852.html</guid>
      <pubDate>Thu, 29 Aug 2024 07:26:21 GMT</pubDate>
    </item>
    <item>
      <title>深入探讨边缘计算存在的必要性?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;深入探讨边缘计算存在的必要性?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:chris han&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 15:14:52&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/iot&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;物联网&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;边缘计算设备的市场规模将会成为也会仅次于终端传感器,掌握了边缘计算,就像控制了古代战争时的烽火台,为打赢物联网推进带来的企业竞争大战,奠定了坚实的基础。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/652eb7e21dd9bab82eb9507652a4115fca94fc.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 889px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;边缘计算为什么在IOT系统的多个环节中存在呢?被人们提了这么多年的边缘计算到底有没有用?本着存在即合理的原则,边缘计算在某些场景中,确实起到了安全、快捷的作用。对比原有Scada系统,有明显的进步,边缘计算的介入,给原来的Scada系统赋予了智慧和灵魂。其实边缘计算的优势应用在IOT系统中最为明显,主要与IOT系统的特性有关。&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-fHe6T1YS&quot;&gt;&lt;li data-id=&quot;ld70c578-4vVMaPsG&quot;&gt;第一个特性就是IOT系统的数据量比较大,数据格式比较多。一套IOT系统所应用的物联网设备就达到10W+,这些设备每时每刻都在发送和接收数据,数据量超级大。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-NM4C1isg&quot;&gt;第二个特性是数据的异构性。数据产生自数十百万种的传感器和设备,不同终端和不同维度的数据结构、协议可能都不同,所以异构是IOT数据的天然特性。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-hphJ6p1A&quot;&gt;第三个特性是数据的时序性。所有IOT的数据都是基于时间概念的,即时序数据,脱离时间谈IOT数据与计算都是没有意义的。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;IOT的三个特性,导致物联网的4大现实问题:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-PT4F08DA&quot;&gt;&lt;li data-id=&quot;ld70c578-zgGTHwve&quot;&gt;实时性。决策都是在现在制定并执行的,但是终端设备或传感器的响应未必能够实时。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1pPBccZo&quot;&gt;安全性。物联网数据跟企业的商机机密有着关系,数据安全就是隐患。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-FCkjLw9m&quot;&gt;网络堵塞。网络带宽的限制,以及通讯可靠性问题,比如会不会意外断网,传输数据丢包,网络延迟等等。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-UHXsjqhY&quot;&gt;成本高。成本在系统建设中是非常关键的一个要素。想象一下1000W+的设备联网,数据流量成本、带宽成本、存储成本,是多大的投入?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;因为有了这些特性及问题,我们再来探讨边缘计算+IOT系统才有目标和方向。&lt;/p&gt;&lt;p&gt;首先,边缘计算是什么?大部分的决策都在离传感器和设备最新的地方执行,而不是都放在“大脑(云平台)”,这样方式首先能够解决IOT系统中实时响应问题;然后,因为决策和执行都在现场,减少了指令从设备到云端的上传/下达过程,更能保证安全,也规避了可能因为网络堵塞造成的延误;最后,现场决策可以省去一部分数据的传输和存储,可以较大幅度的降低IOT系统的使用成本。&lt;/p&gt;&lt;p&gt;当然,边缘计算也是离不开云计算,脱离云计算来谈边缘计算,那是不切实际的,下面我们一起讨论下边缘计算与云计算的关系:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-WYYcLNEK&quot;&gt;&lt;li data-id=&quot;ld70c578-yYVgggyJ&quot;&gt;第一,边缘计算不能独立存在。边缘计算是为客户服务,为云计算服务,边缘计算的运维工作全部依赖云平台。云平台做算法,实现OTA,远程更新算法及服务,新的算法下载到边缘处做控制,这是与传统Scada系统控制的巨大区别,也是巨大优势,这才是工业革命技术应用的质的变化。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-2tZqGwYo&quot;&gt;第二,云平台做算法、边缘做控制的分工,意味着控制和外部会有互动。比如天气变化、时间变化会影响路灯照明,也是控制开关灯时间、照明度的判断依据,与外部因素的互动使智能化程度更高。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1PimBzkY&quot;&gt;第三,云平台和边缘计算的结合可以快速部署、实施应用,带来显而易见的成本下降,才使应用的大规模落地成为可能性。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;如果要是预测一下IOT系统的未来,必然离不开网络(5G/6G,ZigBee,Lora等)、边缘计算。边缘计算设备的市场规模将会成为也会仅次于终端传感器,掌握了边缘计算,就像控制了古代战争时的烽火台,为打赢物联网推进带来的企业竞争大战,奠定了坚实的基础。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzU0NDg3ODM5NA==&amp;amp;mid=2247490419&amp;amp;idx=1&amp;amp;sn=956ff6ab241263557193a737aeefdc77&amp;amp;chksm=fa30f2a9a9b2046e058350b32fcc23d444911d0556d8557b8908d9cac1303e91c4b708ab2a99&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0829EZyFZeoRp6B2CUqm0eAI&amp;amp;sharer_shareinfo=347f70e9cab152f1f254d556cd921480&amp;amp;sharer_shareinfo_first=347f70e9cab152f1f254d556cd921480#rd&quot; target=&quot;_blank&quot;&gt;人工智能与物联网&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;边缘计算&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%89%A9%E8%81%94%E7%BD%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;物联网&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795850.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795850.html</guid>
      <pubDate>Thu, 29 Aug 2024 07:14:52 GMT</pubDate>
    </item>
    <item>
      <title>谷歌将重新开放 Gemini 生成人物图像功能,此前因“种族描述不当”引争议</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;谷歌将重新开放 Gemini 生成人物图像功能,此前因“种族描述不当”引争议&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:清源&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 15:05:57&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;据彭博社报道,谷歌宣布将恢复 AI 模型 Gemini 生成人物图像的功能,部分消费者将可以重新使用。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/29/e3819c17983dd3f5398102ed76774fecd04868.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;8 月 29 日消息,北京时间 29(今)日,据彭博社报道,谷歌宣布将恢复 AI 模型 Gemini 生成人物图像的功能,部分消费者将可以重新使用。&lt;/p&gt;&lt;p&gt;谷歌表示,将开始向订阅 Gemini Advanced 套餐的英语用户推出生成人物图像功能。企业也将能够使用该工具,该功能将在&lt;strong&gt;未来几天内&lt;/strong&gt;上线。&lt;/p&gt;&lt;p&gt;谷歌产品管理高级总监戴夫・西特伦(Dave Citron)表示,该公司在通过 Imagen 3 生成人物描写方面取得了“重大进展”。“我们一直在努力对产品进行技术改进,并改进了评估集、红队练习和明确的产品原则。当然,Gemini 创建的每张图像&lt;strong&gt;都不可能完美无缺&lt;/strong&gt;,但我们会继续听取早期访问 Gemini Advanced 用户的反馈意见,不断改进。”&lt;/p&gt;&lt;p&gt;IT之家注:红队练习是指在产品进入公众视野之前,通过模拟使用发现其潜在危害。&lt;/p&gt;&lt;p&gt;戴夫・西特伦表示,用户将无法创建“逼真”的图像、&lt;strong&gt;可识别的个人&lt;/strong&gt;、未成年人的形象或“过于血腥、暴力或性的场景”。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;前情提要:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;今年 2 月,谷歌的图像生成工具受到批评,因为该工具在生成人物图像时,出现了“不符合历史事实”的场景,包括不正确的种族描述。&lt;span&gt;例如以“美国开国元勋华盛顿”为主题的图片中,出现了妇女和有色人种&lt;/span&gt;。还有网友发现,“&lt;span&gt;让 Gemini 承认白人的存在难得令人尴尬&lt;/span&gt;”。&lt;/p&gt;&lt;p&gt;2 月 22 日,谷歌宣布将暂停 Gemini 的人物图像生成,努力解决与 Gemini 图像生成功能相关的最新问题,并“很快”重新发布改进版本。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/471045f15786f3ad47d6534f191e839d367b83.jpg&quot; style=&quot;visibility: visible; width: 714px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/29/73dace8250da69ea8d6974f24300dbd66a5312.jpg&quot; style=&quot;visibility: visible; width: 713px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;谷歌 DeepMind 首席执行官德米斯・哈萨比斯在&amp;nbsp;MWC 2024&amp;nbsp;的小组讨论会中表示,“我们已下线 Gemini 的人像生成功能,&lt;span&gt;同时正在修复问题,希望未来几周内重新上线。&lt;/span&gt;”&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.ithome.com/0/791/935.htm&quot; target=&quot;_blank&quot;&gt;IT之家&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%B0%B7%E6%AD%8C&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;谷歌&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Gemini&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Gemini&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795846.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795846.html</guid>
      <pubDate>Thu, 29 Aug 2024 07:05:57 GMT</pubDate>
    </item>
    <item>
      <title>转转质检数字化埋点探索之路</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;转转质检数字化埋点探索之路&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:涂志武&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 14:44:01&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;目前我们处于质检数字化初期的埋点探索,对于探索质检数字化未来的诸多可能,我们保持初心。接下来,我们会继续深入数字化,在大数据和算法等能力BUF的加持下去实现更广阔质检数字化。道阻且长,行则将至。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/29/181adf635caebaba0f3391da1be1d4079d8ac5.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;1、背景&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;转转每一台‘官方验’的设备,都会经过质检站点对其进行全方面的检测。在检测流水线中,质检工程师对每台设备进行检测作业;这过程中除了产生对应的检测结果外,检测过程的动作、硬件参数、耗时等数据目前没有系统性的利用起来;而这些操作过程中的数据可以较好的体现质检工程师的整个质检过程。基于此,我们希望能通过技术手段获取到这个过程的数据。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;2、质检埋点&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;为了更好的收集质检过程中的各类数据,在调研和参考行业常用的数据埋点设计方案后,基于质检现场实际,制定出符合质检流程的操作埋点方案。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/29/98eeaad863e4f355de2047ca201260bfcc0718.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h3&gt;&lt;span&gt;2.1 埋点设计&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;质检流水线检测过程涉及多端、多平台,虽然目前各端都有上报对应的埋点平台,受限于各端上报的数据标准和平台不是统一收拢的,已有数据难以形成结构化的质检执行数据链。我们的方案是由客户端基于其自身检测流程的场景进行埋点。埋点数据结构按照定义好的结构,具体数据内容由各端根据场景定义。埋点的接收处理方为统一的埋点平台,该平台定位服务于各端日志埋点的收集并存储,同时提供一套数据加工平台和BI实时查询工具。&lt;/p&gt;&lt;h4&gt;&lt;span&gt;2.1.1 埋点结构&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;对流水线检测过程做了数据建模,明确了埋点数据结构元素:用户+行为+时间+业务公参+操作环境信息。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/29/f9e89178340732ffe775237c258ba9c8fe536b.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 902px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;2.1.2 埋点上报&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;上报机制:场景触发 -&amp;gt; 埋点标准数据抽取 -&amp;gt; 数据上报 -&amp;gt; 兜底重试 -&amp;gt; 数据粗筛 -&amp;gt; 数据存储 -&amp;gt; 大数据清洗。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/057a96155a83289377c1203e6b1669e00405a3.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 704px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h3&gt;&lt;span&gt;2.2 埋点架构&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: center;&quot;&gt;质检检测各节点的操作数据上报后,这部分的数据在整体架构中的流转以及应用方式是怎样的,见下图:&lt;img src=&quot;https://s5.51cto.com/oss/202408/29/23fcb2972ed3cbf9cc43521b829b6df9cae1fb.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;在埋点存储方面,先存储至埋点平台业务库,大数据侧通过CDC同步机制同步数据,同时大数据也会进行数据的二次加工等清洗动作。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;3、埋点数据应用&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;基于埋点上报的标准数据分析,再结合对应的数据标准和数据策略,可以达到对于流水线进行数字化管理的目的。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;3.1 场景-执行合规应用&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;在质检操作合规判定策略中,需要对质检工程师的动作进行分析并且给出实时判定是否合规的意见。例如:‘手机外壳外观’质检合规判定中有一项是需要判定质检工程师是否按照标准SOP进行多个角度翻转质检,举例如下:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;--《手机外壳外观》标准质检SOP
        s1:屏幕息屏正面对着质检师,从上往下,依次检查是否有划痕、瑕疵等。
        s2:从中框任意一个点开始,设备环绕一圈检查中框情况
        s3:屏幕息屏背面对着质检师,从上往下,依次检查是否有划痕、瑕疵等。&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个时候就利用了质检过程中手机的传感器硬件埋点数据。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/29/1322ecb33eea8b68a61098827dd9b0b152e067.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;三维(X,Y,Z)空间的角度传感器数据折线图&lt;/p&gt;&lt;p&gt;结合我们质检操作标准SOP的动作要求和获取到角度传感器数据,按照标准SOP操作对应到的角度数据会呈现对应的变化趋势的。&lt;/p&gt;&lt;p&gt;例如:在检查‘四周边框’时,环绕一圈检查,这个过程中X轴的角度值会跟随着动作呈现出 0°-&amp;gt;90°-&amp;gt;180°-&amp;gt;-180°-&amp;gt;-90°-&amp;gt;0° 变化,其他轴也是类似变化。于是,我们得出判定角度合规的角度要求。示例如下:&lt;/p&gt;&lt;table style=&quot;width: 100%; outline: none; border-collapse: collapse;&quot; class=&quot;data-table&quot; data-transient-attributes=&quot;class&quot; data-width=&quot;656px&quot;&gt;&lt;colgroup data-id=&quot;c7104f7d-PKcdTAEM&quot;&gt;&lt;col data-id=&quot;cd89ecb0-PNPJk1K2&quot; span=&quot;1&quot; width=&quot;131&quot;&gt;&lt;col data-id=&quot;cd89ecb0-iZn3Emm5&quot; span=&quot;1&quot; width=&quot;131&quot;&gt;&lt;col data-id=&quot;cd89ecb0-VndJWcHa&quot; span=&quot;1&quot; width=&quot;131&quot;&gt;&lt;col data-id=&quot;cd89ecb0-aEdpc0ab&quot; span=&quot;1&quot; width=&quot;131&quot;&gt;&lt;col data-id=&quot;cd89ecb0-JK6hCFVH&quot; span=&quot;1&quot; width=&quot;132&quot;&gt;&lt;/colgroup&gt;&lt;tbody data-id=&quot;t6d5e859-Ng2V0g38&quot;&gt;&lt;tr style=&quot;height: 30px;&quot; data-id=&quot;t31e458f-XJkZcLgZ&quot;&gt;&lt;td data-id=&quot;t6267798-dBTXdj9g&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;步骤&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td data-id=&quot;t6267798-9FkPlGAY&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;X轴&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td data-id=&quot;t6267798-WSgf1OjK&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;Y轴&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td data-id=&quot;t6267798-hmAPgZMi&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;Z轴&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td data-id=&quot;t6267798-DETVggaZ&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-row&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;时长&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 30px;&quot; data-id=&quot;t31e458f-M8KS2ja4&quot;&gt;&lt;td data-id=&quot;t6267798-15YhMb0r&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;屏幕正面&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-mIWcXHWi&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-Z2KU9Scn&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;±60°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-ofRC49jF&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-jB5fQ6LI&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-row&quot;&gt;&lt;p&gt;2s&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 30px;&quot; data-id=&quot;t31e458f-2fXmF7gU&quot;&gt;&lt;td data-id=&quot;t6267798-Kon7o3kC&quot; data-transient-attributes=&quot;table-cell-selection&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;四周边框&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-Va48K0m1&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;±180°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-2PdW8ram&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;±20°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-7S2aKFnr&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-W1Wl3pUe&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-row&quot;&gt;&lt;p&gt;3s&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;height: 30px;&quot; data-id=&quot;t31e458f-bUVkfDoL&quot;&gt;&lt;td data-id=&quot;t6267798-Xjpp8t3S&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column&quot; style=&quot;min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot;&gt;&lt;p&gt;手机背壳&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-kbo6Qtss&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column&quot;&gt;&lt;p&gt;±60°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-nTQWTuCJ&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column&quot;&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-U5LjJd3G&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column&quot;&gt;&lt;p&gt;±180°&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;text-align: center; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;&quot; data-id=&quot;t238c116-KbUjd9Bo&quot; data-transient-attributes=&quot;table-cell-selection&quot; class=&quot;table-last-column table-last-row&quot;&gt;&lt;p&gt;1s&lt;br&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;基于配置的角度差值要求,角度值在连续满足起始和结束值的区间内超过设置的时长即可认为合规。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/57726b65013d00bbff73338742360e73872df1.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;角度判定合规示意图(红色区域为合规区域)&lt;/p&gt;&lt;h3&gt;&lt;span&gt;3.2 场景-智能策略应用&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;除在上文中提到的实时分析场景,另外一大应用则是对于数据的二次加工分析使用。该场景基于大数据的数据清洗、加工、挖掘等手段形成了一套完备的数据分析体系。在质检的部分策略中,在大数据和基于数据的算法模型的加持下,打破了以往固定配置的策略的局限性,实现了智能策略的自我迭代。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/29/b38952969f4e73acead76344728b18f6ce6438.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;如图示,业务数据在经过一个流程之后又会产生新的业务数据。循环往复,数据在闭环的机制内驱动着策略自我迭代。换而言之,质检的数据策略不再是冰冷的固定阈值配置,而是基于大数据和算法加持的智能策略。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/29/33049d079a552874191868374b8f3ca327d70d.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;智能策略交互示意图&lt;/p&gt;&lt;h3&gt;&lt;span&gt;3.3 场景-BI看板&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: center;&quot;&gt;按照我们标准定义的质检行为上报的埋点数据,经过数据加工后可以实现比较精细且支持多维度的数据看板。&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/07f395b32f76002c35c0503717cc834e43564b.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;4、结语&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;目前我们处于质检数字化初期的埋点探索,对于探索质检数字化未来的诸多可能,我们保持初心。接下来,我们会继续深入数字化,在大数据和算法等能力BUF的加持下去实现更广阔质检数字化。道阻且长,行则将至。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;5、参考链接&lt;/span&gt;&lt;/h2&gt;&lt;ul data-id=&quot;u738a58b-5gNY6VhX&quot;&gt;&lt;li data-id=&quot;ld70c578-sLsryqc1&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://zhuanlan.zhihu.com/p/577455883&quot;&gt;https://zhuanlan.zhihu.com/p/577455883&lt;/a&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1prfaKD2&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://zhuanlan.zhihu.com/p/665167127&quot;&gt;https://zhuanlan.zhihu.com/p/665167127&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/oHbUqbYQToShsLYFQWRf6A&quot; target=&quot;_blank&quot;&gt;转转技术&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%B4%A8%E6%A3%80%E5%9F%8B%E7%82%B9&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;质检埋点&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795843.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795843.html</guid>
      <pubDate>Thu, 29 Aug 2024 06:44:01 GMT</pubDate>
    </item>
    <item>
      <title>防范新型网络钓鱼的十款热门工具/服务</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;防范新型网络钓鱼的十款热门工具/服务&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;!----&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 14:21:02&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/application&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;应用安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;Valimail非常适合预算有限的中小企业用户,其DMARC服务能够逐步引导用户为电子邮件域配置DMARC,然后汇总并生成每日DMARC报告。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;网络钓鱼攻击是指利用虚假身份和欺骗手段,通过网站、语音、短信、邮件、Wi-Fi等途径,诱导用户泄露用户名、密码、银行账户等个人敏感信息的一种网络攻击方式。随着人工智能变得越来越容易获得和先进,威胁行为者也正在利用这种技术改造传统的网络钓鱼攻击活动,并带来了以下新的安全挑战:&lt;br&gt;&lt;/p&gt;&lt;p&gt;● 更熟练地利用社会工程:通过利用AI技术,攻击者可以访问的大量数据,从而为每个攻击目标量身定制个性化网络钓鱼电子邮件。这种个性化无疑会增加攻击意图被检测出的难度。&lt;/p&gt;&lt;p&gt;● 生成更真实的欺诈内容:在大语言模型技术帮助下,新型钓鱼攻击的内容在语法、风格和语气等方面都会更加接近于合法的通信,使欺诈信息难以被检测;&lt;/p&gt;&lt;p&gt;● 攻击的自动化程度更强:新型网络钓鱼活动能够自动执行攻击的不同阶段,例如电子邮件创建、分发和处理响应。攻击的自动化将使得更多的企业和用户成为攻击目标。&lt;/p&gt;&lt;p&gt;● 自适应规避检测:新型网络钓鱼活动能够根据攻击反馈进行效果进化,这使得现有的安全防护系统很难跟上网络钓鱼策略的改进步伐。在AI的加持下,攻击者能够采用多种规避手段绕过反网络钓鱼措施或电子邮件过滤器。&lt;/p&gt;&lt;p&gt;●&amp;nbsp;攻击定位更精确:新型网络钓鱼攻击能够收集和分析目标企业的大量公开信息。这些数据将用于量身定制网络钓鱼的剧本。因为这些信息对受害者来说是相关和真实的,因此将大大增加攻击的成功率。&lt;/p&gt;&lt;p&gt;● 创建深度伪造:新型网络钓鱼攻击活动并不仅限于书面文字,一种常见的变体是涉及语音通话的“语音钓鱼”(vishing)。攻击者会模仿录制特定人的声音,并创建令人信服的虚假录音。&lt;/p&gt;&lt;p&gt;为了应对新型网络钓鱼攻击威胁,企业需要部署先进的网络钓鱼防护工具,通过多个步骤来降低网络钓鱼攻击过程中的风险。这些工具能够帮助用户快速识别出欺诈性的钓鱼邮件或链接,并在钓鱼攻击突破现有的防护措施时,帮助用户减轻其造成的损害,追踪恶意的钓鱼电子邮件流量,对可能受损的用户账户采取修复措施。本文收集整理了目前较热门的10款网络钓鱼防护工具/服务,并对其应用特点进行了简要分析。&lt;/p&gt;&lt;h3&gt;1. Avanan&lt;/h3&gt;&lt;p&gt;Avanan为云托管电子邮件提供反钓鱼软件,通过API连接到企业的电子邮件提供商,使用历史邮件来训练其AI防护模型。该服务不仅分析邮件内容、格式和标头信息,还评估发件人与收件人之间的现有关系,以建立信任等级,此外,Avanan还能检测两条新兴攻击途径(Teams和Slack)中的可疑消息。&lt;/p&gt;&lt;p&gt;传送门:https://www.avanan.com/anti-phishing-software&lt;/p&gt;&lt;h3&gt;2. Barracuda Email Protection&lt;/h3&gt;&lt;p&gt;Barracuda Email Protection也是一款利用邮件提供商API来防御网络钓鱼攻击和商业邮件入侵(BEC)的工具。Barracuda的产品可以防御多种类型的网络钓鱼,从鱼叉式钓鱼、冒充身份到零日钓鱼攻击。由于泄露的电子邮件账户往往导致更多的钓鱼尝试或基于账户的进一步攻击,Barracuda侧重于尽量减小钓鱼攻击得逞后造成的进一步损害,这比一味依赖预防更有意义。Barracuda还可以通过DMARC分析和报告提供品牌保护和域名欺诈防护。&lt;/p&gt;&lt;p&gt;传送门:https://www.barracuda.com/products/email-protection&lt;/p&gt;&lt;h3&gt;3. BrandShield&lt;/h3&gt;&lt;p&gt;BrandShield专注于防范网络钓鱼活动对企业品牌及高管声誉的损害,能够通过电子邮件、社交媒体或其他媒介识别利用企业品牌或高管名字的钓鱼攻击。当然,这只是BrandShield产品功能组合中的一部分。BrandShield方案还能够监测互联网上是否存在盗用贵企业品牌的恶意网站,并监测亚马逊等市场上是否有公然销售的假冒产品。&lt;/p&gt;&lt;p&gt;传送门:&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.brandshield.com/&quot;&gt;https://www.brandshield.com/&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;4. Cofense PDR&lt;/h3&gt;&lt;p&gt;Cofense PDR(网络钓鱼检测和响应)是一项托管式反网络钓鱼攻击服务,能够结合利用基于AI的工具和安全专家,帮助用户识别和应对当前发生的钓鱼攻击。如果企业需要最大限度的网络钓鱼保护能力,托管服务将是很好的选择,它比雇用全职团队处理钓鱼预防工作更有效,因为托管服务团队能够评估来自他们保护的所有企业系统的威胁数据。&lt;/p&gt;&lt;p&gt;传送门:https://cofense.com/product-services/phishing-defense-services/&lt;/p&gt;&lt;h3&gt;5. Outseer FraudAction&lt;/h3&gt;&lt;p&gt;Outseer FraudAction的前身RSA FraudAction,它提供了一套功能非常全面的网络钓鱼防护解决方案。该方案是一种托管式的网络钓鱼防护服务,类似Cofense提供的服务。Outseer还拥有一些独特的功能,比如网站关闭、取证分析以及可选的主动对策(比如通过植入凭据一劳永逸地应对钓鱼尝试,以便跟踪攻击链,并做出相应反应)。&lt;/p&gt;&lt;p&gt;传送门:https://www.outseer.com/products/outseer-fraud-action/&lt;/p&gt;&lt;h3&gt;6. IRONSCALES&lt;/h3&gt;&lt;p&gt;IRONSCALES是一个电子邮件安全平台,通过动态检测和分析来增强企业现有电子邮件系统的安全性,包括:阻止、标记或仅在可能的可疑邮件上添加横幅。IRONSCALES还提供终端用户培训,重点是电子邮件安全和普遍的安全意识,这有助于增强企业对钓鱼攻击核心——社会工程攻击的防御能力。&lt;/p&gt;&lt;p&gt;传送门:https://ironscales.com/&lt;/p&gt;&lt;h3&gt;7. KnowBe4&lt;/h3&gt;&lt;p&gt;KnowBe4的首席黑客官是黑客界大名鼎鼎的Kevin Mitnick。Mitnick开发的许多漏洞利用工具侧重于社会工程领域,公司业务也体现了这一点,致力于加强教育,确保员工做出更明智的决策。除了一流的安全意识培训外,KnowBe4还提供PhishER,这是一个围绕钓鱼攻击的安全编排、自动化和响应(SOAR)平台,它使安全团队能够更高效地应对针对企业的电子邮件威胁。&lt;/p&gt;&lt;p&gt;传送门:https://www.knowbe4.com/&lt;/p&gt;&lt;h3&gt;8. Mimecast&lt;/h3&gt;&lt;p&gt;Mimecast提供了多种工具来防范钓鱼攻击,包括检测恶意链接和附件的功能,通过使用沙箱等高级方法删除或使其安全。Mimecast还能够防止通过钓鱼邮件发起的基于代码的攻击,或通过更复杂的方法(如QR码)发起的攻击,它通过在Mimecast云中打开链接,简化了部署过程,并确保预防工具始终保持更新。&lt;/p&gt;&lt;p&gt;传送门:https://www.mimecast.com/products/email-security-with-targeted-threat-protection/&lt;/p&gt;&lt;h3&gt;9.&amp;nbsp;Microsoft Defender for Office 365&lt;/h3&gt;&lt;p&gt;Microsoft Defender for Office 365提供了与本清单中其他工具类似的功能:用户培训、钓鱼检测和防御、取证和根本原因分析,甚至是威胁狩猎。由于Defender只是Office 365的一个附加组件,因此它能够紧密集成,无需配置初始集成。微软公司还可以根据企业的需求自定义预设安全策略,支持强制执行、用户覆盖选项以及跟踪策略变化,这项服务对Office 365用户具有特别的优势,但对其他用户则可能存在一些劣势。&lt;/p&gt;&lt;p&gt;传送门:https://www.microsoft.com/en-us/security/business/siem-and-xdr/microsoft-defender-office-365&lt;/p&gt;&lt;h3&gt;10. Valimail&lt;/h3&gt;&lt;p&gt;Valimail非常适合预算有限的中小企业用户,其DMARC服务能够逐步引导用户为电子邮件域配置DMARC,然后汇总并生成每日DMARC报告。Valimail最大的优点是,提供了数款免费的DMARC工具,同时还提供Amplify服务,便于实施BIMI标准(邮件身份标识品牌标识),该标准会为发自贵企业的电子邮件添加企业徽标,表明发件人已经过验证并有效。&lt;/p&gt;&lt;p&gt;传送门:https://www.valimail.com/&lt;/p&gt;&lt;p&gt;原文链接:&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.csoonline.com/article/569867/9-top-anti-phishing-tools-and-services.html&quot;&gt;https://www.csoonline.com/article/569867/9-top-anti-phishing-tools-and-services.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:武晓燕&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/Xv3nsMWUh8HbLWWMAsedTg&quot; target=&quot;_blank&quot;&gt;安全牛&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Valimail&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Valimail&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=DMARC&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;DMARC&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%9C%8D%E5%8A%A1&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;服务&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795840.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795840.html</guid>
      <pubDate>Thu, 29 Aug 2024 06:21:02 GMT</pubDate>
    </item>
    <item>
      <title>深度学习还不如浅层网络?RL教父Sutton持续反向传播算法登Nature</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;深度学习还不如浅层网络?RL教父Sutton持续反向传播算法登Nature&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:机器之心&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-29 14:20:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;最近,一篇发表在《nature》杂志上的研究论文《Loss of plasticity in deep continual learning》证明:标准的深度学习方法在持续学习环境中会逐渐失去可塑性(plasticity),直到它们的学习效果不比浅层网络好。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;人工神经网络、深度学习方法和反向传播算法构成了现代机器学习和人工智能的基础。但现有方法往往是一个阶段更新网络权重,另一个阶段在使用或评估网络时权重保持不变。这与许多需要持续学习的应用程序形成鲜明对比。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最近,一篇发表在《nature》杂志上的研究论文《Loss of plasticity in deep continual learning》证明:标准的深度学习方法在持续学习环境中会逐渐失去可塑性(plasticity),直到它们的学习效果不比浅层网络好。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/955eb7305ef83bccb21173083c70ce6fd02ce8.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: justify;&quot; data-id=&quot;ua73dd4b-6dcKeE6R&quot;&gt;&lt;li data-id=&quot;ld70c578-EhdSfYFh&quot;&gt;&lt;span style=&quot;color: #7b0c00;&quot;&gt;&lt;span&gt;论文地址:https://www.nature.com/articles/s41586-024-07711-7&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;值得注意的是,人工智能先驱、强化学习教父、DeepMind 杰出研究科学家,阿尔伯塔大学计算机科学教授 Richard S. Sutton 是这篇论文的作者之一。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;简单来说,该研究使用经典的 ImageNet 数据集、神经网络和学习算法的各种变体来展示可塑性的丧失。只有通过不断向网络注入多样性的算法才能无限期地维持可塑性。基于这种思路,该研究还提出了「持续反向传播算法」,这是反向传播的一种变体,其中一小部分较少使用的单元被持续随机地重新初始化。实验结果表明,基于梯度下降的方法是不够的,持续的深度学习需要随机的、非梯度的成分来保持可变性和可塑性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;ImageNet 数据库包含数百万张用名词(类别)标记的图像,例如动物类型和日常物品。典型的 ImageNet 任务是猜测给定图像的标签。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了使 ImageNet 适应持续学习,同时最大限度地减少所有其他变化,该研究通过成对的类构建了一系列二元分类任务。例如,第一个任务可能是区分猫和房屋,第二个任务可能是区分停车标志和校车。利用数据集中的 1000 个类,该研究能够以这种方式形成 50 万个二元分类任务。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;对于每个任务,该研究首先在两个类的图像子集上训练深度学习网络,然后在这些类的单独测试集上测量其性能。在一个任务上训练和测试后,下一个任务从一对不同的类开始。研究团队将此问题称为「持续 ImageNet(Continual ImageNet)」。在持续 ImageNet 中,任务的难度随着时间的推移保持不变。性能下降意味着网络正在失去学习能力,这是可塑性丧失的直接表现。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究将各种标准深度学习网络应用于 Continual ImageNet,并测试了许多学习算法和参数设置。为了评估网络在任务中的性能,该研究测量了正确分类测试图像的百分比。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究发现:对于经过良好调整的网络,性能往往首先提高,然后大幅下降,最终接近或低于线性基线。当性能开始下降时,网络架构、算法参数和优化器的具体选择会产生影响,但多种选择都会导致性能严重下降。标准深度学习方法在后续任务中无法比线性网络更好地学习,这直接证明这些方法在持续学习问题中效果不佳。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/29/54bf3f445c74dae18052498b7b38e717422921.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;令人惊讶的是,Adam、Dropout 和归一化等流行方法实际上增加了可塑性的损失;而 L2 正则化在许多情况下减少了可塑性的损失。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/29/e833cdf910c0f412e7a9198d8d0aee79777a79.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究团队发现:显式保持网络权重较小的算法通常能够保持可塑性,甚至在许多任务中能够提高性能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究基于上述发现,提出了反向传播算法的一种变体 —— 持续反向传播,该算法向网络注入可变性并保持其某些权重较小。&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;方法&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span&gt;持续反向传播&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;持续反向传播算法将选择性地对网络中低效的单元进行初始化处理。研究团队定义了名为「贡献效用」的值来衡量每个单元的重要性。如果神经网络中某个隐藏单元对它所连接的下游单元的影响很小,那么它的作用就可能被网络中其他更有影响力的隐藏单元掩盖。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;贡献效用通过计算即时贡献的移动平均值来衡量,这个值由衰减率表示。在所有实验中,初始衰减率 η 设置为 0.99。在前馈神经网络中,第 l 层第 i 个隐藏单元在时间 t 的贡献效用&lt;/span&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/29/c7eef349694c6932909047054ff09e68aca258.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 90px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span&gt;更新如下:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/29/a851ebf98d4acb9de7622496b90711f1f29969.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 576px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;其中&lt;/span&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/c6d714c98346ffce621682176d6744d498ee79.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 94px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span&gt;是时间 t 时第 l 层第 i 个隐藏单元的输出,&lt;/span&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/29/56e8272404f390686ee3483dc1aa4de441e5e9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 114px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span&gt;代表其权重,&lt;/span&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/29/f9e406b372e1ae0167c81526cb2675ecc5accf.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 75px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span&gt;代表第 l+1 层的单元数量。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;当一个隐藏单元被重新初始化时,它的输出的权重将被初始化为零。这么做是为了新添加的隐藏单元不会影响模型已经学到的功能。但是这样也容易导致新的隐藏单元很快被重新初始化。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了防止这种情况,研究团队设置了「成熟阈值」,在 m 次更新前,即使新的隐藏单元的效用是零,也不会被重新初始化。当更新次数超过 m 后,每一步「成熟单元」的一部分 ρ(称为替换率),在每一层都会被重新初始化。替换率 ρ 通常设置为一个非常小的值,这意味着在数百次更新后只替换一个单元。例如,在 CIFAR-100 中,研究团队将替换率设置为 10 的负五次方,每一步,大约 0.00512 个单元被替换。这相当于大约每 200 次更新替换一次。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最终的算法结合了传统的反向传播和选择性重新初始化两种方法,以持续地从初始分布中引入随机单元。每次更新时,持续反向传播将执行梯度下降并选择性地重新初始化。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;前馈神经网络的持续反向传播如算法1所示。处理小批量数据时,可以采取一种更经济的方法:通过对小批量数据上的即时贡献效用取平均值,而不是保持一个运行平均值来节省计算量。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/29/71e5e9181808da3010c629da9d768ed7c916e4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 670px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/29/95ac5aa437c6393c66c45631b0f6f8d687ea00.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 682px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span&gt;在 ImageNet 上的应用&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究使用了包含 1000 个类别的 ImageNet 数据库,每个类别有 700 张图片,分为 600 张训练图像和 100 张测试图像。在二元分类任务中,网络首先在 1200 张训练图像上训练,然后在 200 张测试图像上评估分类准确度。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;所有在持续 ImageNet 上使用的算法都采用了具有三个卷积加最大池化(convolutional-plus-max-pooling)层和三个全连接层的卷积网络。最终层有两个单元,对应两个类别。在任务变更时,这些单元的输入权重会重置为零。这种做法在深度持续学习中是标准做法,尽管它为学习系统提供了关于任务变化时间的特权信息。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;线性网络的性能在持续 ImageNet 上不会下降,因为它在每个任务开始时都会重置。通过在数千个任务上取均值,得到线性网络性能的低方差估计值,作为基线。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;网络使用带有动量的 SGD 在交叉熵损失上进行训练,动量参数设为 0.9。研究者测试了不同的步长参数,但为了清晰起见,只展示了 0.01、0.001 和 0.0001 的步长性能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究还通过网格搜索确定了 L2 正则化、收缩和扰动以及持续反向传播算法的超参数,以在 5000 个任务上获得最高的平均分类准确度。L2 正则化和收缩扰动的超参数包括步长、权重衰减和噪声方差,持续反向传播的超参数包括步长和替换率,成熟度阈值设为 100。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究者对所有超参数集合进行了 10 次独立运行,然后对表现最佳的超参数集合进行了额外的 20 次运行,总共 30 次。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/29/b631eb278936cbaf93904785f567215fc83d2e.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;CIFAR-100 的类别增量学习&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在 CIFAR-100 的类别增量学习中,开始时,模型可以识别 5 种类型的图片,随着训练时间越来越长,模型能识别的图片种类越来越多,比如能同时学习 100 种类别的图片。在这个过程中,系统将通过测试检验自己的学习效果。数据集由 100 个类别组成,每个类别有 600 张图像,其中 450 张用于创建训练集,50 张用于验证集,100 张用于测试集。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;每次增加学习的类别后,网络被训练 200 个周期,总共增加 20 次,共训练 4000 个周期。研究团队在前 60 个周期中将学习率设置为 0.1,接下来的 60 个周期为 0.02,此后的 30 个周期为 0.004,最后的 40 个周期为 0.0008。在每次增加的 200 个周期中,研究团队选出了在验证集上准确度最高的网络。为了防止过拟合,在每轮训练中,新网络的权重将被重置为上一轮准确度最高网络的权重。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;他们选择了 18 层的 ResNet 做实验。在将输入图像呈现给网络之前,该研究进行了几个步骤的数据预处理。首先,将每张图像中所有像素的值重新缩放到 0 和 1 之间。然后,每个通道中的每个像素值通过该通道像素值的平均值和标准差分别进行中心化和重新缩放。最后,在将图像输入给网络之前,该研究对每张图像应用了三种随机数据转换:以 0.5 的概率随机水平翻转图像,通过在每边填充 4 个像素然后随机裁剪到原始大小来随机裁剪图像,以及在 0-15° 之间随机旋转图像。预处理的前两步应用于训练集、验证集和测试集,但随机转换仅应用于训练集中的图像。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;该研究测试了多个超参数,以确保在特定架构下保持每个算法的最佳性能。对于基础系统,该研究测试的权重衰减参数取值范围为 {0.005, 0.0005, 0.00005}。对于「持续反向传播」,该研究测试的成熟度阈值取值范围为&amp;nbsp;{1000, 10000},替换率的取值范围为&lt;img src=&quot;https://s5.51cto.com/oss/202408/29/133f2b862fe27d81abd713848572c3ee4a4d4c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 317px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;,采用了公式 (1) 中描述的贡献效用。成熟度阈值为 1000,替换率为 10^(-5) 时,表现最佳。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/29/f8a6537347fd048e6dd3154024dba5de4f1759.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;作为参考,该研究还实现了一个具有与基础系统相同超参数的网络,但在每次增量的开始时都会重新初始化。图 2b 显示了每个算法相对于重新初始化网络的性能表现。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;持续反向传播在全部的 100 个类别中的最终准确率为 76.13%,而扩展数据图 1b 展示了在成熟度阈值为 1000 时,持续反向传播在不同替换率下的性能表现。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;感兴趣的读者可以阅读论文原文,了解更多研究内容。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/jeqXj3ez5DbItS7RpoVaSg&quot; target=&quot;_blank&quot;&gt;机器之心&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%AE%AD%E7%BB%83&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;训练&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795833.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795833.html</guid>
      <pubDate>Thu, 29 Aug 2024 06:20:00 GMT</pubDate>
    </item>
    <item>
      <title>港大黄超团队推出AnyGraph, 首次揭秘图大模型的Scaling Law</title>
      <description>&lt;div class=&quot;arti

@ovo-Tim ovo-Tim changed the title feat(route): 增加51CTO 正文解析 feat(route): Add 51CTO text parsing Aug 30, 2024
@ovo-Tim
Copy link
Contributor Author

ovo-Tim commented Aug 30, 2024

@TonyRL Hi, can you have a look about this?

Copy link
Contributor

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Fri, 30 Aug 2024 11:19:55 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>用「图灵测试」检验AI尤其是大语言模型,真的科学吗?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;用「图灵测试」检验AI尤其是大语言模型,真的科学吗?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:机器之心&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:32:30&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;当前的大型语言模型似乎能够通过一些公开的图灵测试。我们该如何衡量它们是否像人一样聪明呢?&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在发布后的近两年时间里,ChatGPT 表现出了一些非常类似人类的行为,比如通过律师资格考试。这让一些人怀疑,计算机的智力水平是否正在接近人类。大多数计算机科学家认为,机器的智力水平还不能与人类相提并论,但他们还没有就如何衡量智力或具体衡量什么达成共识。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;检验机器智能的经典实验是图灵测试,由艾伦・图灵在其 1950 年发表的论文《Computing Machinery and Intelligence》中提出。图灵认为,如果计算机能让与之进行打字对话的人相信它是人类,这可能就是智能的标志。大型语言模型(LLM),如 GPT,擅长像人一样说话,但尚未令人信服地通过图灵测试。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/910b69913d4854a394b038b1bbbb2c04265523.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 925px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;2023 年,加州大学圣迭戈分校(UCSD)的研究人员公开进行了一次图灵测试,目的是比较最新的 LLM 与 20 世纪 60 年代开发的聊天机器人 Eliza 的表现。在律师资格考试中获得高分的 GPT-4 表现相当出色,在 41% 的游戏中,评委认为它与人类无异。而它的前身 GPT-3.5 只通过了 14% 的游戏,低于 Eliza 的 27%。人类在 63% 的游戏中通过(被判定为人类)。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/659530784c456c683af9518f61ec2f110e97f4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #888888;&quot;&gt;论文链接:https://arxiv.org/pdf/2310.20216v1&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;负责这项实验的 UCSD 认知科学博士生 Cameron Jones 说,人类得分如此之低并不奇怪。这是因为玩家预计模型会表现出色,所以他们更容易认为人类只是一个听起来像人类的模型。Jones 说,目前还不清楚聊天机器人必须达到多少分才能赢得游戏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;图灵测试可用于检查客服聊天机器人是否以人们乐于接受的方式与人互动,从而展示 Jones 所说的灵活的社交智能。不过,它能否识别出更通用的智能还很难说。Jones 说:「我们对什么是人类的智能还不甚了解。如果我们能更快地通过模型解决这个问题,我会感到很惊讶。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;圣塔菲研究所复杂性学教授 Melanie Mitchell 说:「我认为图灵测试的整个概念都被过于字面化了。」她认为,图灵提出的「模仿游戏」是一种思考机器智能可能是什么样子的方法,而不是一种定义明确的测试。「人们轻率地使用这个术语,说大型语言模型通过了图灵测试,而事实上它们并没有通过测试。」&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;新的测试&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,如果图灵测试不能可靠地评估机器智能,那就提出了一个问题:什么方法可以?普林斯顿大学心理学家 Philip Johnson-Laird 和德国开姆尼茨工业大学预测分析学教授 Marco Ragni 在 2023 年 11 月发表在《智能计算》杂志上的一篇论文中提出了一个不同的测试方法:他们建议把模型当作心理实验的参与者,看看它能否理解自己的推理过程。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,他们会向一个模型提出这样的问题:「如果 Ann 很聪明,那么她是聪明还是富有,或者两者都是?」虽然根据逻辑规则,可以推断出安是聪明人、富人或两者都是,但大多数人类都会拒绝这个推断,因为设定中没有任何东西表明她可能是富人。如果模型也拒绝了这一推断,那么它的行为就和人类一样,研究人员就会进入下一步,要求机器解释其推理。如果它给出的理由与人类相似,第三步就是检查源代码中模拟人类表现的组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这些组件可能包括一个快速推理系统、另一个更深思熟虑的推理系统,以及一个根据上下文改变 「或」等词的解释的系统。研究人员认为,如果模型通过了所有这些测试,就可以认为它模拟了人类智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;英国考文垂大学研究机器智能并进行过图灵测试的计算机教授 Huma Shah 说,Johnson-Laird 和 Ragni 的方法可能确实会提供一些有趣的见解,但质疑一个模型的推理能力并不是什么新鲜事。「图灵测试允许这种逻辑质疑,」她说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Shah 还表示,试图测试智力的麻烦在于,这首先取决于人们如何定义智力。是模式识别能力、创新能力,还是创造音乐或喜剧等创意的能力?「因此,如果我们没有就人工智能中的『I』达成一致,那么我们怎么能建立通用人工智能(AGI)呢?」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;谷歌的软件工程师和人工智能专家 Francois Chollet 则认为图灵测试并不是特别有用。他说,一个好的测试应该有一个确切的、形式化的目标,并且应该衡量一个系统有多接近这个目标。他指出:「图灵测试并没有做到这些。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说,LLM 在图灵测试中的表现只能说明他们擅长使用语言,而这种技能完全来自于对大量数据的记忆。他认为,真正的智能并不在于掌握某项技能,而在于把学到的知识运用到新的、不同的情境中。「LLM 百分之百都是记忆。他们没有智能。他们没有适应能力。」Chollet 说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在他看来,智力是一种有效获得新技能的能力,而这些技能是训练过程中没有准备好的,目的是完成与系统之前所见过的任务差异足够大的任务。人类终其一生都在与世界互动,本质上是在进行实验,以便建立一个反映世界如何运行的模型。这样当他们遇到新情况时,就能学会如何处理。新技能的范围越广,计算机就越接近实现通用人工智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说:「如果你能让学习过程像人类大脑一样高效地处理信息,那么你就拥有了 AGI。」到目前为止,机器的学习效率远远落后于人脑,大约比人脑低 1 万倍。例如,计算机需要数百万张图片才能学会识别猫的图片,而人类只需一两个例子就能学会识别猫。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了测试他定义的智力,Chollet 开发了抽象与推理语料库(ARC)。ARC 的挑战是通过基本的积木,如形状或大小等简单概念来完成的。这些积木用于创建任务,如按大小对物体进行分类或补全对称图案。测试对象会看到三个示例,他们应该能够识别目标并完成任务。Chollet 说,最好的 AI 大约有 30% 的时间能够实现目标,而人类则有 80% 的时间能够做到。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/36a718b005d93454b649833005443f578ce377.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;项目链接:https://github.com/fchollet/ARC-AGI&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;每项任务都不同于测试对象以前见过的任何任务,因此死记硬背无济于事。他说:「这是一场无法练习的游戏。当 GPT-4 通过律师资格考试时,很可能是因为它见过足够多与考试相似的例子,所以它能给出合理的答案,而不需要对法律有任何内在的理解。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「这不是一个完美的测试。它有很多局限性和缺陷,」Chollet 说。例如,任务中存在足够多的冗余,在举出足够多的例子后,测试对象可能会对答案做出有根据的猜测。不过,他说,它的基本思想是可靠的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;前面提到的圣塔菲研究所复杂性学教授 Melanie Mitchell 认为,要想获得类似人类的通用智能,就必须有能力完成远远超出训练数据的任务。她和她的小组提出了 ARC 的修订版,围绕基本概念组织任务,例如一物在另一物之上,或一物在另一物之内。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;ConceptARC 的理念是测试计算机解决方案的稳健性,方法是让计算机推导出一个概念的规则,然后将该概念应用到新任务中。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/810c71924e6ccc5d2ba080b078c8356204404c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文链接:https://arxiv.org/pdf/2305.07141&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,她可能会向人工智能展示一个网格,在这个网格中,黄色方格位于蓝色方格之上,而这个蓝色方格又位于黄色方格之上。接着可能是一个红色圆圈在一个绿色圆圈上面,然后又换成一个绿色圆圈在一个红色圆圈上面。人类应该很容易理解的概念是,颜色在垂直位置上互换。然后,计算机必须将这一规则应用到一对新的图形中。Mitchell 说,这些任务对人类来说很容易,但对机器来说似乎仍然非常具有挑战性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Mitchell 说,在某些情况下,比如试图在海量数据中做出发现,计算机最好有自己的抽象方法。但在与人交互的情况下,例如驾驶汽车,以人类的方式理解世界就非常重要。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「我不认为智能是全有或全无。它是一个范围,计算机做的某些事情是智能的,」Mitchell 说。「如果你想谈论完全的、人类水平的智能,我会说我们还有些遥远,因为人类水平的智能有许多方面是我们看不到的。」&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/Ku7OOWCzEXq8fA_y8M5KcQ&quot; target=&quot;_blank&quot;&gt;机器之心&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%A8%A1%E5%9E%8B&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;模型&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795968.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795968.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:32:30 GMT</pubDate>
    </item>
    <item>
      <title>突发!Runway一夜删库跑路,HuggingFace已清空</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;突发!Runway一夜删库跑路,HuggingFace已清空&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:25:23&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;活久见,Runway一夜间清空HuggingFace和GitHub,直接跑路了?很多人猜测,此事与版权纠纷有关,这就翻出了Runway和Stability AI之间的一段陈年旧案。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;一夜之间,Runaway竟突然删库,跑路了?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/f559e0f54256b8a36b681420113737ed4df82a.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway的官方推特账号上还在周二发布了新帖,在多伦多、洛杉矶和墨尔本等城市组织社区见面会。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/5293df224771f994b6b8549530ea1620080622.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;6月还发布了「王者归来」级别的Gen-3模型,而且7月就已经进入内测阶段。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/e10963d32d34c113917319feee1424fb82c0b4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但目前的HuggingFace上,Runway已经「人去楼空」了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;主页直接挑明——这个页面以后就不维护啦。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/47e3dbe73e84cc3e835510781bdf6949774617.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 929px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;然后,甩出了这样一个链接:https://huggingface.co/models&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;意思大概就是——我们删库了,之前的Stable Diffusion不可用了。想要找生成模型,那就去别家看看吧。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/27bcedb307c30e94fc40783b0754089f0e11b3.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;GitHub里的Stable Diffusion项目,果然也404了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/c93173471f41239e6b3873f0913215a649e675.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 994px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/71432b2137e1de97fe0028e6ce5be13168fe2f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但主页里还是有一些内容的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/18ad93a05fb6ce5d35f6896bbfd11b78d7ee2d.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这种「手起刀落」、突然删库的做法是开发者最不愿见到的了,有网友表示:我整个项目都要依靠SD 1.5,你们删库让我怎么办?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/d904b3295cc0a2b6866758d3344238d759ad77.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然代码仓库已经删干净了,但公司的官网还能正常响应。不禁让人疑惑:Runway究竟出什么事了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;模型被曝侵权?&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然具体删库原因未知,但或许可能与Stable Diffusion 1.5曾被曝出侵权有关。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/8933be872be1c0cbbc7198e91b4d1132d359e9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在一年以前,由艺术家Sarah Andersen、Kelly McKernan、Karla Ortiz三人发起诉讼,称Stability AI、Midjourney、Runway三家公司侵犯了版权问题,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,却在10月,被法官驳回了诉求。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此后,又有后继的艺术家、摄影师们,加入了投诉阵列。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在新的诉讼中,他们称Runway AI与Stability AI合作训练的Stable Diffusion,为AI能力发展做出了贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但Runway AI被指控,使用了LAION-5B数据集中受版权保护的作品,来训练AI模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/77e4d0766994afe8e5a50210e603c5f15d1f64.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据称,这些模型随后通过Runway AI平台分发,用户可在平台上生成,能够可能复制原告风格的新图像,从而侵犯了许多人的版权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,Runway在备案文件中称:&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;text-align: justify; margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;&quot;&gt;&lt;p&gt;&lt;span&gt;首先,原告必须依靠这些论文,声称模型可以「存储」训练图像这一事实表明,他们的理论是没有价值的。这说明,原告无法从Stable Diffusion中提取出自己作品的任何「存储」副本,尽管有足够的机会这样做。显然,原告的论点是站不住脚的。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此前,Runway在HuggingFace上开源了Stable Diffusion 1.5。但随后就因侵犯知识版权,被要求删除。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;网友们震惊地猜测,整个组织已经被清空了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;隔壁家CEO的黑历史&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;提到Runway的最出圈模型——Stable Diffusion系列,&lt;/span&gt;&lt;a href=&quot;http://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&amp;amp;mid=2652337718&amp;amp;idx=2&amp;amp;sn=50c3353736a86437760cfa0bbadd5f37&amp;amp;chksm=f12402c7c6538bd1cd9ea34c5290ce61a332bbf8d1714f2edde526c8479e2976e8fed8fab9c1&amp;amp;scene=21#wechat_redirect&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;也让我们想起了一段陈年往事&lt;/span&gt;&lt;/a&gt;&lt;span&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/863c4e4982d86cb543b809d78a4f8af7557667.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;就在一年前,Stablity AI创始人Emad Mostaque曾被福布斯扒皮——&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Stable Diffusion的源代码,其实是德国慕尼黑大学的学者和初创公司Runway共同写的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;当时,他们共同推出了一个名为Latent Diffusion的开源图像生成器。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Mostaque拿了别人的作品,把自己的名字写在上面——这就是Stable Diffusion的由来。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而在「窃取」了别人的成果之后,Emad Mostaque凭借自己过人的口头本领,让Stability AI摇身一变成为估值10亿美元的初创公司。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/e330fb520d2db900cfa479efaf168f8d85786f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 966px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;那是在2021年,德国的一个研究者团队和初创公司Runway合作推出了一个名为Latent Diffusion的开源图像模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究者团队包括慕尼黑大学(LMU)和海德堡大学的学者,领导这项研究的是Björn Ommer教授。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/c6881c4355ade62f39d776750b46dafef1f389.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文地址:https://arxiv.org/pdf/2112.10752&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据悉,开始他们只用了几十个英伟达的GPU。7个月后,也即2022年6月,Mostaque向他们伸出援手,Stability AI为他们提供了所需的超算。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而出人意料的是,在8月,这个新模型被冠名为Stable Diffusion,竟然以Stability AI的名义发布了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在Stable Diffusion发布几天内,Stability AI就从两家名叫Coatue和Lightspeed的公司获得了1亿美元的投资,直接让Stability AI的估值冲破了10亿美元。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后的新闻稿中,都只说了Stable Diffusion背后的公司是Stability AI,丝毫未提德国团队以及Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Ommer教授对此当然心有不甘,他希望自己的实验室也能得到宣传,但他所在大学的新闻部门当时正在度假。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Stability的发言人Bishara则表示,公司在官网和Stable Diffusion的GitHub页面上都曾多次公开提到了LMU和Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/72cfebf21b7258e0cb5510e28b13bce0123f5c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/2113669495b50129d8473381acc4db4eec6991.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;更绝的是,在10月,Stability AI还倒打一耙,声称Runway发布的新版本的Stable Diffusion窃取了自己的知识产权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/43c09c38024a99af121447ccbd72fb0243dcd9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway创始人Cristóbal Valenzuela忍无可忍地回击道:这项技术是开源的,根本不存在侵犯版权的可能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/a14674c45e51ec357e6496bfab3b3f2a35cf6c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后,Mostaque撤回了指控,他解释,自己其实是担心Runway的模型版本缺乏护栏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;今日的删库事件,莫非和曾经这个陈年旧案有关?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但如今Runway已经删库,想要使用SD系列的开源模型,也只剩下Stability AI的HuggingFace仓库了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/16d297a82aa75e095ab601ed2a4a2344007149.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/VE3Ot1PG9xke8K89ah5Hgg&quot; target=&quot;_blank&quot;&gt;新智元&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795964.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795964.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:25:23 GMT</pubDate>
    </item>
    <item>
      <title>场景题:如何提升Kafka效率?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;场景题:如何提升Kafka效率?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:磊哥&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:14:34&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/architecture&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;架构&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;Kafka 以其高吞吐量、低延迟和可扩展性而备受青睐。无论是在实时数据分析、日志收集还是事件驱动架构中,Kafka 都扮演着关键角色。&lt;/p&gt;&lt;p&gt;但是,如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/p&gt;&lt;p&gt;那么,提升 Kafka 性能的有效手段都有哪些呢?接下来,我们一起来看。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;性能调优主要手段&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 性能调优的主要手段有以下几个:&lt;/p&gt;&lt;ol data-id=&quot;odd3d8fc-WCgCTB1Z&quot; class=&quot;list-paddingleft-1&quot;&gt;&lt;li data-id=&quot;ld70c578-8QBG1UEd&quot;&gt;分区扩展&lt;/li&gt;&lt;li data-id=&quot;ld70c578-aS74JA4E&quot;&gt;消息批发送(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-ka7YRl6k&quot;&gt;消息批获取(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-374RipOX&quot;&gt;配置调优&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CjJcWSHo&quot;&gt;JVM 调优&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/66fdd7d84fc9389ce532608058f9a7fb530247.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;1.分区扩展&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;在 Kafka 架构中,&lt;strong&gt;使用多分区(Partition)来实现数据分片功能&lt;/strong&gt;。也就是 Kafka 会将多条消息并发存储到一个主题(Topic)的多个 Broker(Kafka 服务)中的多个 Partition 中,以实现并行操作的功能,极大地提高了整体系统的读写能力,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/71b1af64644304894c7818ef426b825bacece6.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;数据分片是一种技术将大数据分割成更小、更易于管理的片段(称为“分片”),并将分片都存储在不同的服务器上,从而实现了数据的水平拆分。通过数据分片,可以有效地解决单一数据库的性能瓶颈、存储限制以及高可用性等问题。&lt;/p&gt;&lt;p&gt;因此,增加更多的 Broker,扩展更多的分区 Partition 是提升 Kafka 性能的关键,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/49798654440d7fb446a9145e052333df6daef3.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;2.消息批发送(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认是不支持批量发送消息的,然而开启批量发送消息可以提升 Kafka 整体运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量发送消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量发送消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ciIXHdc7&quot;&gt;&lt;li data-id=&quot;ld70c578-gaKK5kGG&quot;&gt;&lt;strong&gt;减少网络开销&lt;/strong&gt;:当生产者发送消息给 Kafka 时,如果每次只发送一条消息,那么就需要建立一次 TCP 连接,这涉及到三次握手的过程。而如果采用批量发送的方式,则可以在一次 TCP 连接中发送多条消息,减少了网络连接建立和断开的次数,从而降低了网络开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-VK9gAg6R&quot;&gt;&lt;strong&gt;减少 I/O 操作&lt;/strong&gt;:批量发送意味着一次写入操作可以处理更多的数据。这对于磁盘 I/O 来说是一个优势,因为一次大的写操作比多次小的写操作更高效。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-EWKlbXbY&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:由于减少了通信次数,批量发送可以提高单位时间内发送的消息数量,即提高了吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;那么,想要实现 Kafka 批量消息发送只需要正确配置以下 3 个参数即可:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-8jekjkhT&quot;&gt;&lt;li data-id=&quot;ld70c578-brlDUOAY&quot;&gt;&lt;strong&gt;batch-size&lt;/strong&gt;:定义了 Kafka 生产者尝试批量发送的消息的最大大小(以字节为单位),生产者收集到足够多的消息达到这个大小时,它会尝试发送这些消息给 Kafka Broker,默认值为 16KB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CC4vMvJ5&quot;&gt;&lt;strong&gt;buffer-memory&lt;/strong&gt;:指定了 Kafka 生产者可以用来缓冲待发送消息的总内存空间,如果生产者试图发送的消息超过了这个限制,生产者将会阻塞,直到有足够空间可用或者消息被发送出去,默认值为 32MB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-P2nJfDk6&quot;&gt;&lt;strong&gt;linger.ms&lt;/strong&gt;:生产者在尝试发送消息前等待的最长时间(以毫秒为单位)。默认情况下,linger.ms 的值为 0,这意味着立即发送。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;以上 3 个参数满足任一个都会立即(批量)发送。&lt;/p&gt;&lt;p&gt;因此我们如果需要匹配发送,主要需要调整的参数是 linger.ms,如下配置所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring:
        kafka:
        bootstrap-servers: localhost:9092 # Kafka服务器地址
        consumer:
        group-id: my-group # 消费者组ID
        auto-offset-reset: earliest # 自动重置偏移量到最早的可用消息
        key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 键的反序列化器
        value-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 值的反序列化器
        producer:
        key-serializer: org.apache.kafka.common.serialization.StringSerializer # 键的序列化器
        value-serializer: org.apache.kafka.common.serialization.StringSerializer # 值的序列化器
        batch-size: 16384
        buffer-memory: 33554432
        properties:
        linger:
        ms: 2000&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;span&gt;3.消息批获取(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认每次拉取一条消息,而使用批量获取消息可以有效提升 Kafka 运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量获取消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量获取消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-XYa5cmdP&quot;&gt;&lt;li data-id=&quot;ld70c578-G15x4M1o&quot;&gt;&lt;strong&gt;降低客户端处理开销&lt;/strong&gt;:对于客户端来说,每次处理一个消息需要进行一系列的操作,如解包、解析、处理逻辑等。如果每次只拉取一个消息,客户端会频繁地进行这些操作,带来较大的处理开销。而批量拉取消息时,客户端可以一次性处理多个消息,减少了处理单个消息的频率,从而降低了客户端的处理开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-hF7AnvqE&quot;&gt;&lt;strong&gt;减少网络往返次数&lt;/strong&gt;:每次拉取一个消息时,客户端需要与 Kafka 服务器进行多次网络往返,包括发送请求、接收响应等。这些网络往返会带来一定的延迟。而批量拉取消息时,客户端可以一次性拉取多个消息,减少了网络往返的次数,从而降低了网络延迟。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-FtNk4fmD&quot;&gt;&lt;strong&gt;优化内存使用&lt;/strong&gt;:批量拉取消息可以更好地规划和利用内存。客户端可以一次性分配足够的内存来存储批量拉取的消息,避免了频繁地分配和释放小内存块的操作。这样可以提高内存的使用效率,减少内存碎片的产生,进而提升系统的运行效率。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-wS1xQ7OW&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:批量拉取消息可以提高单位时间内处理的消息数量,从而提升了 Kafka 的吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;想要实现批量读取数据需要做以下两步调整:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-SH70BQUr&quot;&gt;&lt;li data-id=&quot;ld70c578-tOewhYas&quot;&gt;在配置文件中设置批读取:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring.kafka.listener.type=batch&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ZpnAbGJ6&quot;&gt;&lt;li data-id=&quot;ld70c578-3s0eGgTt&quot;&gt;消费者使用 List&amp;lt;ConsumerRecord&amp;gt; 接收消息,具体实现代码如下:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;@KafkaListener(topics = TOPIC)
        public void listen(List&amp;lt;ConsumerRecord&amp;lt;?, ?&amp;gt;&amp;gt; consumerRecords) {
        for (int i = 0; i &amp;lt; consumerRecords.size(); i++) {
        System.out.println(&quot;监听到消息:&quot; + consumerRecords.get(i).value());
        }
        System.out.println(&quot;------------end------------&quot;);
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上程序的执行结果如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/841e92785b5e7ff7966758dc0dee5269221c11.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;从执行结果可以看出:只有一个“end”打印,这说明 Kafka 一次拉取了一批数据,而不是一个数据,否则就会有多个“end”。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;4.配置调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;合理设置 Kafka 的配置也可以一定程度的提升 Kafka 的效率,例如以下这些配置:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-xKWbts6L&quot;&gt;&lt;li data-id=&quot;ld70c578-X2v6l7Ff&quot;&gt;&lt;strong&gt;配置文件刷盘策略&lt;/strong&gt;:调整 flush.ms 和 flush.messages 参数,控制数据何时写入磁盘。较小的值可以降低延迟,而&lt;strong&gt;较大的值可以提高吞吐量&lt;/strong&gt;。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-GrstAmDP&quot;&gt;&lt;strong&gt;网络和 IO 操作线程配置优化&lt;/strong&gt;:num.network.threads 应该设置为 CPU 核心数加 1,以充分利用硬件资源。调整 socket.send.buffer.bytes 和 socket.receive.buffer.bytes 以优化网络缓冲区大小,缓冲区越大,吞吐量也越高。&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;span&gt;5.JVM 调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;因为 Kafka 是用 Java 和 Scala 两种语言编写的,而 Java 和 Scala 都是运行在 JVM 上的,因此保证 JVM 的高效运行,设置合理的垃圾回收器,也能间接的保证 Kafka 的运行效率。例如,对于大内存机器,可以使用 G1 垃圾收集器来减少 GC 暂停时间,并为操作系统留出足够的内存用于页面缓存。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:武晓燕&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/kdgOYWJvlFbd7X-Up0jCRg&quot; target=&quot;_blank&quot;&gt;磊哥和Java&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Kafka&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Kafka&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%95%88%E7%8E%87&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;效率&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%80%A7%E8%83%BD&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;性能&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795961.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795961.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:14:34 GMT</pubDate>
    </item>
    <item>
      <title>关于AI治理策略的六个考虑</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;关于AI治理策略的六个考虑&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:Raymond&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 16:18:44&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。 &lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/39c017f55d18cff9e524013a77145538832a7a.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。&lt;/p&gt;&lt;h4&gt;要点:&lt;/h4&gt;&lt;p&gt;• 治理至关重要:如果没有适当的AI治理,公司可能会面临合规失败和失去客户信任的风险。&lt;/p&gt;&lt;p&gt;• 策略优先:一个明确的AI策略和治理框架可以在创新与混乱之间划清界限。&lt;/p&gt;&lt;p&gt;• 合规推动信任:强有力的AI治理不仅能满足监管要求,还能增强客户信任和竞争优势。&lt;/p&gt;&lt;p&gt;大多数技术的一个反复出现的趋势是,它们通常在广泛应用之前,相关法律还未完全确立。对于技术的治理——尤其是那些被广泛使用的技术——对于保护人们、公司及其数据免受滥用至关重要。&lt;/p&gt;&lt;p&gt;AI似乎也不例外,但它是“新瓶装旧酒”,还是“旧瓶装新酒”呢?&lt;/p&gt;&lt;p&gt;尽管AI已经存在了大约60年,但由于其多次的反复发展,直到最近才逐渐受到关注。自从ChatGPT于2022年底出现以来,许多公司开始开发用于各种应用的AI模型。&lt;/p&gt;&lt;p&gt;这种技术的使用可能带来许多风险,包括暴露敏感数据、违反知识产权法、产生明显错误的结果以及违反现有或正在制定的法规。因此,AI的应用必须谨慎。&lt;/p&gt;&lt;h4&gt;为何AI治理至关重要&lt;/h4&gt;&lt;p&gt;直到最近,AI几乎是数据科学家和其他数据专家的专属领域。因为数据通常只在内部用于改进产品和服务,或分析一般客户行为,因此对数据治理框架的需求并不紧迫。随着GenAI在工作场所的广泛应用,这一情况已经发生了变化。&lt;/p&gt;&lt;p&gt;如今,大多数公司都意识到,为了跟上同行的步伐,他们需要在产品或服务中引入某种形式的GenAI或大型语言模型(LLMs)——而这也伴随着必要的治理。&lt;/p&gt;&lt;p&gt;一个问题是:AI治理程序尚未形成,更不用说定型了。AI的底层技术仍在发展,这使得立法机构难以确定一个固定的合规方案。&lt;/p&gt;&lt;p&gt;但公司不能等待多年才看到最终的治理框架。相反,他们必须立即开始建立一个可行的、可辩护的、可扩展的,最终是灵活的框架,以监督和管理他们企业中的AI使用。在部署AI模型之前,公司需要充分理解这些模型在其业务背景下的生命周期以及它们的工作原理。当然,所有AI项目都应通过合规、法律和信息安全团队的常规治理审核流程。&lt;/p&gt;&lt;h4&gt;建立AI治理框架&lt;/h4&gt;&lt;p&gt;适当的数据治理涉及数据质量、数据安全、伦理使用和隐私保护等多个方面。根据你的业务和所使用数据的性质,AI治理可能比数据治理更为重要(也更为耗费资源)。&lt;/p&gt;&lt;p&gt;以数据分析为例,通常在人们做出决策和行动之前,总会有一个人来验证结果,但由于AI能够在更大规模上运作,它可以在毫秒内做出几十个预测,而无需解释。AI甚至可以在自动决策场景中被训练为自主采取行动。&lt;/p&gt;&lt;p&gt;在考虑你的AI治理模型时,可以考虑以下几个基本要点:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. 考虑使用AI的策略&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你的计划是什么?你的目标是什么?问问自己,公司是否真的有一个AI的业务案例,也就是说,嵌入在你的产品或服务中的AI是否会对你的客户产生有意义的影响?如果答案是否定的,那么可能就不值得花费精力和成本去开发。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. 制定AI使用监控政策&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;如果答案是肯定的,那么第二个考虑因素应该是制定一项政策或声明,规定AI在公司内部如何使用以及由谁使用,这个基础文件可以采用正式政策的形式,明确说明为什么使用AI、由谁使用以及用于什么目的。政策往往更具规范性和具体性,规定了技术必须——而不是应该——如何使用。你的政策还可以提及行业标准,以作为基准。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. 考虑制定AI使用指南&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;或者,你可以制定指南,传统上指南会列出推荐的使用方法和最佳实践。两种方法各有优缺点。根据你的行业、你所受的监管程度以及公司使用的数据类型(如B2C或B2B),你可以选择使用指南,以免过度限制创新或试验。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. 创建AI文档组合&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;无论你选择何种文件,目标都是创建一系列文档,尽可能为员工如何使用新技术提供指导,这将帮助他们在使用数据时,以道德和负责任的方式创建功能丰富的产品和服务。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. 建立法律合规框架&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;接下来,确保你的数据处理的法律基础是坚实的。如果你处理的是欧盟公民的数据,特别是要根据GDPR第6条的规定,为你的情况找到最合适的法律依据。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6. 确定AI决策者&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;另一个重要的工作是创建AI审批流程,包括指定决策者。&lt;/p&gt;&lt;p&gt;理想的AI治理框架应该定位在概念化与运营化阶段之间,这将确保任何为评估想法和用例而设立的团队、委员会或论坛能够采用整体性和跨职能的视角。通过这种方法,他们可以全面评估AI对你的商业模式带来的独特风险,并决定哪些举措应推进到生产阶段。&lt;/p&gt;&lt;h4&gt;为广泛的AI监督做好准备&lt;/h4&gt;&lt;p&gt;全球各地的立法者很快将要求大多数公司建立强有力的AI治理监督模型。通过采用将人权与商业洞察相结合的更广泛视角,企业可以通过增强客户信任来获得竞争优势。&lt;/p&gt;&lt;p&gt;这种以隐私为先、以业务为中心的方法使公司能够自信地开发以价值为驱动的模型,同时确保数据隐私和符合监管要求,提供超越单纯合规的战略优势。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;http://www.d1net.com/ai/industry/582047.html&quot; target=&quot;_blank&quot;&gt;企业网D1Net&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI%E6%B2%BB%E7%90%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI治理&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795955.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795955.html</guid>
      <pubDate>Fri, 30 Aug 2024 08:18:44 GMT</pubDate>
    </item>
    <item>
      <title>2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:爱吃炸鸡&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:07:16&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;高级网络犯罪分子越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;2024年上半年,尽管整体非法活动有所下降,但加密货币犯罪中的两类特定犯罪活动——被盗资金和勒索软件却在上升。报告详细分析了这些犯罪活动的趋势和背后的原因,并探讨了加密货币生态系统中的一些积极发展。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/265e45054f360db5b384725690b6b8ec88d0be.jpg&quot; style=&quot;visibility: visible; width: 615px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;关键发现&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-idce86Ri&quot;&gt;&lt;li data-id=&quot;ld70c578-5JyerKWc&quot;&gt;2024年至今,链上非法活动总量下降了近20%,表明合法活动增长速度超过了非法活动;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-koyWT2eJ&quot;&gt;尽管与去年同期相比非法交易有所下降,但两类非法活动——被盗资金和勒索软件却在增加;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-oirWd2nw&quot;&gt;被盗资金流入量几乎翻了一番,从8.57亿美元增至15.8亿美元,勒索软件流入量增长了约2%,从4.491亿美元增至4.598亿美元;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-W8sdikJS&quot;&gt;每次盗窃事件中被盗的加密货币平均金额增加了近80%,加密货币攻击者似乎又回到了他们的目标——中心化交易所,而不是优先考虑DeFi协议。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-MvKjyFPH&quot;&gt;高级网络犯罪分子,包括与朝鲜有关的IT工作者,越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;勒索软件研究发现&lt;/h4&gt;&lt;p&gt;2024年有望成为勒索软件收入最高的一年,这在很大程度上归功于执行较少高调攻击但收取大额支付的勒索软件变种(行业称为“大猎物狩猎”)。2024年记录了有史以来最大的勒索软件支付,大约7500万美元支付给了Dark Angels勒索软件组织。&lt;/p&gt;&lt;p&gt;针对最严重勒索软件变种的中位数勒索支付从2023年初的近20万美元飙升至2024年6月中旬的150万美元,表明这些变种正在优先针对可能因资金充足和系统重要性而更有可能支付高额赎金的大型企业和关键基础设施提供商。&lt;/p&gt;&lt;p&gt;由于最近的执法行动破坏了最大的参与者,如ALPHV/BlackCat和LockBit,勒索软件生态系统经历了一些分裂。在这些破坏之后,一些附属机构迁移到效果较差的变种或推出了自己的变种。&lt;/p&gt;&lt;h4&gt;勒索软件与加密货币&lt;/h4&gt;&lt;p&gt;加密货币生态系统在2024年见证了一些积极的发展。在许多方面,加密货币继续获得主流接受,紧随美国批准现货比特币和以太坊交易型开放式指数基金(ETF)以及财务会计标准委员会(FASB)的公平会计规则的修订之后。但随着任何新技术的采用,合法和非法行为者都会增长。尽管与前几年相比,今年的非法活动有所下降,但特定网络犯罪相关实体的加密货币流入显示出一些令人担忧的趋势。&lt;/p&gt;&lt;p&gt;如下图所示,2024年流入合法服务的资金是自2021年上一次牛市高峰以来最高的,这是一个令人鼓舞的迹象,表明加密货币在全球范围内的持续采用。流入风险服务(主要由混合器和不收集KYC信息的交易所组成)的资金趋势高于去年同期。与此同时,非法活动的总体下降了19.6%,从209亿美元降至167亿美元,表明合法活动的增长速度超过了链上非法活动。这些非法数字是基于研究机构今天识别的非法地址流入量的下限估计。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/4261db64846d630b4e5742079f3f503889af08.jpg&quot; alt=&quot;&quot; title=&quot;1723952814_66c16eae5b641ee1d2632.png!small?1723952816009&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;Chainalysis开始将疑似非法活动纳入某些犯罪类型的总估计中,基于Chainalysis Signals数据。此前,估计只包括与Chainalysis有支持文件证明属于某个非法实体的地址相关的总数。Signals利用链上数据和启发式方法来识别特定未知地址或地址簇的疑似类别,置信度从可能到几乎确定不等。Signals的引入不仅随着时间的推移增加了我们对某些类别非法活动的估计,而且还使我们能够完善前几年的估计。&lt;/p&gt;&lt;p&gt;尽管与去年同期相比非法交易总体下降,但被盗资金和勒索软件这两类非法活动却有所上升。通过7月底的年增长来看,加密货币抢劫中被盗资金增加了近一倍,从8.57亿美元增至15.8亿美元。2023年6月底的勒索软件流入总计为4.491亿美元。今年同期,勒索软件流入量已超过4.598亿美元,这表明我们可能正面临另一个勒索软件创纪录的年份。&lt;/p&gt;&lt;h4&gt;攻击者瞄准中心化交易所&lt;/h4&gt;&lt;p&gt;2023年相比2022年加密货币被盗价值下降50%,而2024年黑客活动又出现了复苏,从被盗金额和黑客事件的数量可以看出这一点。如下图所示,截至7月底,今年累计被盗金额已超过15.8亿美元,比去年同期增长了84.4%。有趣的是,2024年的黑客事件数量仅比2023年略有增加,同比增长了2.76%。每次事件中被盗的平均金额增加了79.46%,从2023年1月至7月的每次事件590万美元增加到2024年迄今为止的每次事件1060万美元。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/b82e21978123a9c7ef36797e9d963f629e0b3c.jpg&quot; alt=&quot;&quot; title=&quot;1723952836_66c16ec43a5bcb5502201.png!small?1723952837726&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;被盗金额的变化很大程度上归因于资产价格的上涨。例如,比特币的价格从2023年前七个月的平均价格26141美元上涨到今年7月的平均价格60091美元,涨幅达130%。&lt;/p&gt;&lt;p&gt;Chainalysis跟踪的一个黑客指标是黑客事件发生后被盗资金流动的交易量。这可以作为被盗资产的一个代理,因为很多时候被黑客攻击的服务不会公开报告被盗的具体细节。2024年与被盗资金活动相关的BTC交易量占这些流动的40%。这种模式似乎是由被攻击实体类型的变化所驱动的,2024年中心化服务被黑客攻击以获取高额资金。特别是像DMM这样的中心化交易所,其损失了3.05亿美元。在DMM黑客事件中,大约19%的被盗金额在2024年被盗,据报道大约有4500 BTC被盗。&lt;/p&gt;&lt;p&gt;加密货币攻击者似乎在四年专注于去中心化对手之后,再次回归他们的老路,瞄准中心化交易所,后者通常不交易比特币。尽管对DeFi服务——特别是跨链桥接的攻击在2022年达到顶峰,但攻击者在中心化交易所增加安全投资后,将注意力转向了更新、更脆弱的组织。现在包括与朝鲜有关的攻击者在内的黑客,正在利用越来越复杂的社会工程学策略,例如申请IT工作,通过渗透中心化交易所来窃取加密货币。&lt;/p&gt;&lt;h4&gt;2024年有望成为勒索软件收入最高的一年&lt;/h4&gt;&lt;p&gt;2023年勒索软件支付金额创下新高,超过10亿美元。这些巨额支付来自一些高调、破坏性的攻击,如Cl0p对Move&amp;nbsp;IT零日的利用以及ALPHV/BlackCat勒索软件团伙对凯撒酒店物业的利用,导致该公司支付了1500万美元的赎金。尽管针对勒索软件的恶意部署和组织基础设施的主要执法行动,依旧出现了如此多的赎金支付,截至2023年6月底的累计勒索软件支付总额约为4.491亿美元。今年同期,我们记录的勒索软件支付总额为4.598亿美元,这使2024年坚定地走上了创纪录的道路。&lt;/p&gt;&lt;p&gt;Kiva咨询公司的总法律顾问Andrew Davis表示,尽管对LockBit和ALPHV/BlackCat的打击持续加大,但总体勒索软件活动依旧相对稳定。“无论是这些众所周知的威胁行为者的前附属机构,还是新的初创企业,大量新的勒索软件团伙加入了这场混战,展示了他们进行攻击的新方法和技巧,如扩大初始访问和横向移动的方法。”&lt;/p&gt;&lt;p&gt;如下图所示,勒索软件攻击也变得越来越严重。我们观察到的一个显著变化是每年最大赎金支付的飙升。到目前为止,2024年出现了有史以来最大的单笔支付,约为7500万美元,支付给了名为Dark Angels的勒索软件团伙。这种最大支付金额的增长也代表了从2023年到今年的最大支付金额增长了96%,从2022年的最大支付金额增长了335%。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/c5f1df74092b54d61db7948cd898b26295bdfb.jpg&quot; alt=&quot;&quot; title=&quot;1723952869_66c16ee57189b9bd2742c.png!small?1723952870707&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;如果迅速增加的最大支付金额还不够糟糕的话,这种每年的异常值趋势实际上还伴随着中位数支付的增长趋势。从2023年第一周的中位数支付金额198939美元增加到2024年6月中旬的中位数支付金额150万美元。这代表了在此期间最严重株系支付的典型赎金规模的7.9倍增长,自2021年初以来增长了近1200倍。这种模式可能表明,这些勒索软件组织开始瞄准大型企业和关键基础设施提供商,这些目标可能因为其雄厚的资金和系统重要性而更支付高额赎金。&lt;/p&gt;&lt;p&gt;勒索软件的另一个趋势是攻击也变得更加频繁,根据eCrime.ch的数据泄露网站统计,2024年到目前为止至少增加了10%的攻击。作为勒索软件事件的衡量标准,勒索软件泄露网站的帖子同比增加了10%。然而链上测量的总勒索软件支付事件同比下降了27.29%。将这两个趋势结合起来看,尽管今年迄今为止的攻击可能有所增加,但支付率却同比下降了。这对生态系统来说是一个积极的信号,表明受害者可能准备得更好,不需要支付赎金。&lt;/p&gt;&lt;p&gt;Davis说:“Kivu参与协助受害组织的事务中,大约有65%在没有支付赎金的情况下得到解决,显示出受影响组织的韧性和没有必要支付攻击者的积极趋势。”&lt;/p&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动继续呈下降趋势,但两类加密货币犯罪似乎正在逆势而上:被盗资金和勒索软件。这两种犯罪类型通常由具有某些共同特征的参与者实施。它们通常是利用先进网络基础设施的有组织团体。这些参与者以精心策划的社会工程学策略而闻名,他们利用这些策略闯入加密业务,窃取加密货币资产,并利用专家级洗钱技术试图在资金被查封前套现。&lt;/p&gt;&lt;p&gt;打击网络犯罪的关键是破坏其供应链,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和套现点。由于加密货币盗窃和勒索软件的运营几乎完全在区块链上进行,配备正确解决方案的执法部门可以通过追踪资金来更好地理解和破坏这些参与者的运营。&lt;/p&gt;&lt;p&gt;eCrime.ch的研究员Corsin Camichel指出,包括Operation Cronos、Operation Duck Hunt、Operation Endgame等打击行动和执法行动对于遏制这些活动并表明犯罪行为将会有后果至关重要。&lt;/p&gt;&lt;h4&gt;结论&lt;/h4&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动总体呈下降趋势,但被盗资金和勒索软件这两类加密货币犯罪似乎正在逆势而上。这些犯罪类型通常由具有某些共同特征的行为者实施,他们通常是利用复杂的网络基础设施的有组织的团体。在被盗资金的情况下,与朝鲜有关的黑客组织是一些最大抢劫案的幕后黑手。这些行为者以计算出的社会工程策略而闻名,他们闯入加密业务,窃取加密资产,并利用专业的洗钱技术,在资金被查封前尝试变现。&lt;/p&gt;&lt;p&gt;报告还强调了通过跟踪资金流向来破坏网络犯罪供应链的重要性,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和提现点。由于加密货币抢劫和勒索软件的操作几乎完全在区块链上进行,执法部门配备了正确的解决方案,可以追踪资金流向,更好地理解和破坏这些行为者的操作。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;https://www.chainalysis.com/blog/2024-crypto-crime-mid-year-update-part-1/&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.freebuf.com/articles/neopoints/408911.html&quot; target=&quot;_blank&quot;&gt;FreeBuf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86%E8%B4%A7%E5%B8%81&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密货币&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8B%92%E7%B4%A2%E8%BD%AF%E4%BB%B6&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;勒索软件&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795943.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795943.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:07:16 GMT</pubDate>
    </item>
    <item>
      <title>别让加密难倒你:Python爬虫攻克加密网站的实战教程</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;别让加密难倒你:Python爬虫攻克加密网站的实战教程&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:攻城狮成长日记&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:03:43&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;今天有个朋友向我求助,希望我帮他爬取一个网站上的内容。网站内容如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/c50ccd18206254fb89d65784b20c4be5d54d15.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;aHR0cHM6Ly93d3cuY2NwcmVjLmNvbS9uYXZDcXpyLyMvCg==&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;打开上述网址,进入开发者模式,这些数据的请求接口,正常逻辑是通过搜索页面上内容进行锁定请求接口。但是,进行搜索时,发现什么都搜索不到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/b8452de03a8013533bd2092de32feb0f9d2ecc.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上图发现,这些数据只请求了一个接口,当我点击负载和响应这两个标签,发现数据是被加密了,所以,我们搜索不了页面的内容。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/a58917d366aae0842e762364be32ac734ae281.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;负载加密内容&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/44933d7925dd6ea07e8703a9812235aea04f47.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;响应加密内容&lt;/p&gt;&lt;h4&gt;浏览器为啥是明文?&lt;/h4&gt;&lt;p&gt;这时相信小伙伴,心中都有一个疑问浏览器为啥是明文?&amp;nbsp;&amp;nbsp;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/994e234466fe0e9c5b4134d8f2deff02c58e56.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;如何定位到加密资源文件&lt;/h4&gt;&lt;p&gt;通过XHR/提取断点,该方法是通过匹配URL包括请求路径关键字进行断点,具体配置如下图:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/0126a7d47053b9085f78044456dc78f9c939b3.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;这时我们重新刷新网页,如下图所示,网站就成功进入我们上一步设置的断点中。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/233ebba10d3164e2607137dc8bb9356d16c8fd.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;其中,h就是加密后的请求体参数,然后我们从调用堆栈中一步步往前推。至于如何找呢?这里是有一个技巧的,我们需要找到前一步请求体还没加密,后一步请求体就加密成功了。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/f1c250e12f4ee5490411724a2f08181f6530e6.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密后&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/f8b9b8d00ff393c197457695b6b2539406a6f1.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密前&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其中上图o就是请求体加密之前的参数,s就是加密后的参数。chunk-common.a25fd3ce.js就是进行加密的js。通过点击堆栈的js名称就可以定位到对应的地方。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;扣取代码&lt;/h4&gt;&lt;p&gt;经过上一步分析,我们知道o就是加密之前的参数,就在js代码找o定义的位置,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/04c5f1831bc7855e5d5503d9192f421f35e032.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;下面代码就是请求体的参数,通过上述代码发现id是通过uuid方法生成的。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;{
        &quot;id&quot;: &quot;rtmhwib79r4ytdgn&quot;,
        &quot;projectKey&quot;: &quot;honsan_cloud_ccprec&quot;,
        &quot;clientKey&quot;: &quot;rtmhwialwggc91l6&quot;,
        &quot;token&quot;: null,
        &quot;clientDailyData&quot;: {},
        &quot;acts&quot;: [
        {
        &quot;id&quot;: &quot;rtmhwib65mon96h1&quot;,
        &quot;fullPath&quot;: &quot;/cloud.sys.tomcatV11/api/v1/template/getPages&quot;,
        &quot;args&quot;: [
        {
        &quot;yuPiLou&quot;: {
        &quot;templateId&quot;: &quot;32d3044760964ed8927bad49e545ba4b&quot;,
        &quot;pageNo&quot;: 1,
        &quot;pageSize&quot;: 20,
        &quot;where&quot;: {
        &quot;projecttype&quot;: &quot;PG3&quot;,
        &quot;state&quot;: &quot;42&quot;
        }
        }
        }
        ]
        }
        ]
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接着我们需求扣取这个uuid方法。通过鼠标悬停在这个方法上面,就会弹出面板,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/417aa323287dc248757500a2fc7e6a3a5ec685.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;点击后就会调到uuid方法定义的地方,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/82524359223b2526ef327452a8d5890ef12adb.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把这段代码扣取下面,如下所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;uuid = function (t, n) {
        void 0 === t &amp;amp;&amp;amp; (t = 16),
        void 0 === n &amp;amp;&amp;amp; (n = !1),
        !n &amp;amp;&amp;amp; t &amp;lt; 16 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=false 时 len 不能小于 16&quot;),
        t = 16),
        n &amp;amp;&amp;amp; t &amp;lt; 12 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=true 时 len 不能小于 12&quot;),
        t = 12);
        var i = ((new Date).getTime() + 1e14).toString();
        return i += (&quot;000&quot; + (++e.uuidCount).toString()).substr(-3, 3),
        i = n ? parseInt(i).to62() : parseInt(i).toString(36),
        i += randomStr(t),
        i = i.substr(0, t),
        i
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;把this关键的全部删除它。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;然后通过node进行运行,如下图所示报错了e没有定义。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/69c25ca2798ba18552e454c2c76fded67b07a7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;于是,我们再去源码中找改值是什么?通过选中该值,经过几次的确认。该值是NaN,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/13d6772044a54072e200672b68b6abc9aeb9ed.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;我们再自己扣取的代码写死它,再次运行。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/f17578d96dfd29d745f5698a9b8daed2b8d682.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;发现这是报randomStr没有定义,我们再去源码找这个方法进行补环境。通过搜索发现了randomStr方法,该方法有调用了random。于是我们两个方法一起扣取下来。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/b4c3c9a90ed2a54d506309f6a58a2e8a485691.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;再次运行,没有报错了,成功打印了uuid,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/d5d129863959cb56eaf384b4dd5e912141224b.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把之前扣取下来的请求体,id字段固定值替换成uuid函数生成的动态值,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/514cfe589638a1e08bf9414d94ba495cdf0475.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;最重要的一步就是扣取加密的JS代码啦,&amp;nbsp;在请求体参数附近查看this.aes.encode(a)加密方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/49fcbd651a85c280b9a073694aea25510ec648.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上面介绍的方面快速定位到这个加密的方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/4388efa40fa240126292649bf2d62ce026ca53.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;该方法又调用了另外一个方法this.encryptCode,通过关键搜索也找到了encryptCode方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/822fd4069f52dfedc375065822751c973da87a.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;加密方法&lt;/p&gt;&lt;p&gt;按照编程习惯,附近也会有对应的解密方法的,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/69c057124949b1e5c08186d3cb64e75052034c.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;解密方法&lt;/p&gt;&lt;p&gt;现在加密和解密的方法都找到了,我们把它全部扣取下面进行调试,发现缺什么方法再进行补。重新定义一个方法生成加密请求头,后续让python调用这个方法并传入分页参数。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/b3c8bc592bcc125e9d9120518b3b57023f1ee2.webp&quot; style=&quot;width: 854px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;测试该方法是否能正常生成加密请求头,执行如下命令:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;console.log(encrypt())&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行上述方法后,输入如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/725c74941411fa599f56442715aca852accd35.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;通过python模拟请求&lt;/h4&gt;&lt;p&gt;这里介绍一个非常快捷的方式用python模拟一个浏览器请求,首先我们先在开发者模式选择这条请求,然后右击选择**将所有列表复制为cURL(Bash)**,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/749729a16cc0c8d5f256670c41f85157f09c2e.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,来的这个工具网站[1],粘贴刚才复制的cURL信息,就可以根据自己喜欢的编程语言生成模拟浏览器请求的代码,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/1584af686dbc260a063323cf1c711a93d15fd4.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,把生成的代码拷贝下来,进行修改。通过python的第三方库execjs调用js代码并执行对应的方法。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;jscode=open(&quot;./test.js&quot;,&#39;r&#39;,encoding=&#39;utf-8&#39;).read()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;以读的模式打开test.js并赋值给jscode&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;data = execjs.compile(jscode).call(&quot;encrypt&quot;,page)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;通过execjs调用jscode对象,并通过call方法调用encrypt加密方法,并传入分页参数page。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;下图是python中的完整代码:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/c49bc9600825a5a353b4457c482567b0786035.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;执行上述代码后,成功获取网站的数据如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/895d6c029de42dcdc7e07182a251b1be6deb2f.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;遇到的问题&lt;/h4&gt;&lt;p&gt;在python中使用execjs库,出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 244: illegal multibyte sequence,一般遇见编码问题先看看代码里写没写encoding=&#39;utf-8&#39;,没写的话写加上试试。加了也不行。通过在python代码中加入如下代码:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import subprocess
        from functools import partial
        subprocess.Popen = partial(subprocess.Popen, encoding=&quot;utf-8&quot;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4&gt;脚本获取方式&lt;/h4&gt;&lt;p&gt;上述脚本已经上传上传到gitee,有需要的小伙伴可以自行获取。gitee上的仓库主要是分享一些工作中常用的脚本。小伙伴可以frok或者watch仓库,这样有更新可以及时关注到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/8484a7822421cb494c560514d19112a4f2d7c7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;仓库地址:https://gitee.com/didiplus/script&lt;/p&gt;&lt;p&gt;工具网站:&amp;nbsp;https://curlconverter.com/&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MjM5OTc5MjM4Nw==&amp;amp;mid=2457381767&amp;amp;idx=1&amp;amp;sn=09cd6a68fc56547e2dcc62936ebd90b5&amp;amp;chksm=b17eee44751306601f52de7bf8b56deffcbdf3b1a076a6f2dbed742139d7e22870b77cc95abd&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0830EIoSh7cUeOMxdM8v93Fa&amp;amp;sharer_shareinfo=dc846dfbefb8eab3b644a85e5ccb2e52&amp;amp;sharer_shareinfo_first=dc846dfbefb8eab3b644a85e5ccb2e52#rd&quot; target=&quot;_blank&quot;&gt;攻城狮成长日记&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Python&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Python&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%88%AC%E8%99%AB&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;爬虫&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795942.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795942.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:03:43 GMT</pubDate>
    </item>
    <item>
      <title>一周打完1000场官司,中科院发布首个AI法庭AgentCourt!</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;一周打完1000场官司,中科院发布首个AI法庭AgentCourt!&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 14:38:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;在人工智能重塑各个行业的今天,法律界也迎来了前所未有的变革。传统的法律实践面临着效率低下、成本高昂等挑战,而AI技术的出现为解决这些问题提供了新的可能。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;从最初斯坦福小镇火遍全网,25个由大语言模型(LLMs)驱动的智能体生活交友,打开了多Agent新视角。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而现在,AI法庭也来了!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最近,来自中科院深圳先进研究院的研究团队开发了一个名为AgentCourt的模拟智能法庭,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;它是一个基于大语言模型(LLMs)的法庭模拟系统,旨在通过AI驱动的虚拟法庭来革新法律教育、案例分析和法律研究。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;te

Comment on lines 83 to 100

const browser = await puppeteer();
// let page = await init_page(browser);
// Create a list that includes 5 pages
const numPages = 50;
const pages = Array.from({ length: numPages }, () => init_page(browser));
let n = 0;

const items = await Promise.all(
list.map((item) =>
cache.tryGet(item.url, async () => {
n++;
return get_fullcontent(item, await pages[n % numPages]);
})
)
);

browser.close();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please parse the HTML using got and cheerio. I don't think puppeteer is necessary.

Copy link
Contributor Author

@ovo-Tim ovo-Tim Aug 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tested and found that request without using puppeteer will keep returning things like the image down below:
image

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is because the webpage expects you have finished the JS challenge and have the cookie __tst_status with proper value.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's impossible to figure out what's the meaning of these code.
These values change randomly:
image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tried to make LLM to deobfuscate these code, but we still need to figure out how these values inside the code change.

The result of deobfuscating

const strings = ['wyeCN', '4|2|0|3|1', 'wQzOV', 'split', 'iTyzs', 'pCQRM', 'cookie', 'location.href=location.href.replace(/[?|&]tads/', ' \'\')', 'WTKkN', 'bOYDu', 'dtzqS'];

function getString(index) {
return strings[index];
}
export function deobfuscate() {
const constants = {
'WTKkN': 1086606777,
'bOYDu': 346788022,
'dtzqS'(a, b) { return a + b; },
'wyeCN': 1370109662,
'pCQRM'(a) { return a(); }
};

let result = 0;
result += constants.WTKkN;
result += constants.bOYDu;
result = constants.dtzqS(result, constants.wyeCN);

function process() {
    const operations = {
        'wQzOV': getString(4),
        'iTyzs'(a, b) { return a + b; }
    };

    const steps = operations.wQzOV.split('|');
    let i = 0;
    let value = 0;

    while (true) {
        switch (steps[i++]) {
            case '0': value += 217; break;
            case '1': return value;
            case '2': value += 164; break;
            case '3': value = operations.iTyzs(value, 448); break;
            case '4': value = 0; break;
        }
    }
}

constants.pCQRM(process);
return result;

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't need to know how these values change, you can simply parse those 3 big numbers using regex and do what the JS challenge does, which is adding them up.

Copy link
Contributor Author

@ovo-Tim ovo-Tim Aug 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tried my best to do this, but it doesn't work at all.

The result

code
code2

puppeteer probably is the best way.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which is adding them up.

Sorry, I didn't see your message. Oh god, I can't imagine it just add two numbers together. 😂

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's working now!

Copy link
Contributor

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Fri, 30 Aug 2024 16:31:18 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>用「图灵测试」检验AI尤其是大语言模型,真的科学吗?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;用「图灵测试」检验AI尤其是大语言模型,真的科学吗?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:机器之心&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:32:30&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;当前的大型语言模型似乎能够通过一些公开的图灵测试。我们该如何衡量它们是否像人一样聪明呢?&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在发布后的近两年时间里,ChatGPT 表现出了一些非常类似人类的行为,比如通过律师资格考试。这让一些人怀疑,计算机的智力水平是否正在接近人类。大多数计算机科学家认为,机器的智力水平还不能与人类相提并论,但他们还没有就如何衡量智力或具体衡量什么达成共识。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;检验机器智能的经典实验是图灵测试,由艾伦・图灵在其 1950 年发表的论文《Computing Machinery and Intelligence》中提出。图灵认为,如果计算机能让与之进行打字对话的人相信它是人类,这可能就是智能的标志。大型语言模型(LLM),如 GPT,擅长像人一样说话,但尚未令人信服地通过图灵测试。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/910b69913d4854a394b038b1bbbb2c04265523.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 925px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;2023 年,加州大学圣迭戈分校(UCSD)的研究人员公开进行了一次图灵测试,目的是比较最新的 LLM 与 20 世纪 60 年代开发的聊天机器人 Eliza 的表现。在律师资格考试中获得高分的 GPT-4 表现相当出色,在 41% 的游戏中,评委认为它与人类无异。而它的前身 GPT-3.5 只通过了 14% 的游戏,低于 Eliza 的 27%。人类在 63% 的游戏中通过(被判定为人类)。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/659530784c456c683af9518f61ec2f110e97f4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #888888;&quot;&gt;论文链接:https://arxiv.org/pdf/2310.20216v1&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;负责这项实验的 UCSD 认知科学博士生 Cameron Jones 说,人类得分如此之低并不奇怪。这是因为玩家预计模型会表现出色,所以他们更容易认为人类只是一个听起来像人类的模型。Jones 说,目前还不清楚聊天机器人必须达到多少分才能赢得游戏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;图灵测试可用于检查客服聊天机器人是否以人们乐于接受的方式与人互动,从而展示 Jones 所说的灵活的社交智能。不过,它能否识别出更通用的智能还很难说。Jones 说:「我们对什么是人类的智能还不甚了解。如果我们能更快地通过模型解决这个问题,我会感到很惊讶。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;圣塔菲研究所复杂性学教授 Melanie Mitchell 说:「我认为图灵测试的整个概念都被过于字面化了。」她认为,图灵提出的「模仿游戏」是一种思考机器智能可能是什么样子的方法,而不是一种定义明确的测试。「人们轻率地使用这个术语,说大型语言模型通过了图灵测试,而事实上它们并没有通过测试。」&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;新的测试&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,如果图灵测试不能可靠地评估机器智能,那就提出了一个问题:什么方法可以?普林斯顿大学心理学家 Philip Johnson-Laird 和德国开姆尼茨工业大学预测分析学教授 Marco Ragni 在 2023 年 11 月发表在《智能计算》杂志上的一篇论文中提出了一个不同的测试方法:他们建议把模型当作心理实验的参与者,看看它能否理解自己的推理过程。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,他们会向一个模型提出这样的问题:「如果 Ann 很聪明,那么她是聪明还是富有,或者两者都是?」虽然根据逻辑规则,可以推断出安是聪明人、富人或两者都是,但大多数人类都会拒绝这个推断,因为设定中没有任何东西表明她可能是富人。如果模型也拒绝了这一推断,那么它的行为就和人类一样,研究人员就会进入下一步,要求机器解释其推理。如果它给出的理由与人类相似,第三步就是检查源代码中模拟人类表现的组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这些组件可能包括一个快速推理系统、另一个更深思熟虑的推理系统,以及一个根据上下文改变 「或」等词的解释的系统。研究人员认为,如果模型通过了所有这些测试,就可以认为它模拟了人类智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;英国考文垂大学研究机器智能并进行过图灵测试的计算机教授 Huma Shah 说,Johnson-Laird 和 Ragni 的方法可能确实会提供一些有趣的见解,但质疑一个模型的推理能力并不是什么新鲜事。「图灵测试允许这种逻辑质疑,」她说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Shah 还表示,试图测试智力的麻烦在于,这首先取决于人们如何定义智力。是模式识别能力、创新能力,还是创造音乐或喜剧等创意的能力?「因此,如果我们没有就人工智能中的『I』达成一致,那么我们怎么能建立通用人工智能(AGI)呢?」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;谷歌的软件工程师和人工智能专家 Francois Chollet 则认为图灵测试并不是特别有用。他说,一个好的测试应该有一个确切的、形式化的目标,并且应该衡量一个系统有多接近这个目标。他指出:「图灵测试并没有做到这些。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说,LLM 在图灵测试中的表现只能说明他们擅长使用语言,而这种技能完全来自于对大量数据的记忆。他认为,真正的智能并不在于掌握某项技能,而在于把学到的知识运用到新的、不同的情境中。「LLM 百分之百都是记忆。他们没有智能。他们没有适应能力。」Chollet 说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在他看来,智力是一种有效获得新技能的能力,而这些技能是训练过程中没有准备好的,目的是完成与系统之前所见过的任务差异足够大的任务。人类终其一生都在与世界互动,本质上是在进行实验,以便建立一个反映世界如何运行的模型。这样当他们遇到新情况时,就能学会如何处理。新技能的范围越广,计算机就越接近实现通用人工智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说:「如果你能让学习过程像人类大脑一样高效地处理信息,那么你就拥有了 AGI。」到目前为止,机器的学习效率远远落后于人脑,大约比人脑低 1 万倍。例如,计算机需要数百万张图片才能学会识别猫的图片,而人类只需一两个例子就能学会识别猫。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了测试他定义的智力,Chollet 开发了抽象与推理语料库(ARC)。ARC 的挑战是通过基本的积木,如形状或大小等简单概念来完成的。这些积木用于创建任务,如按大小对物体进行分类或补全对称图案。测试对象会看到三个示例,他们应该能够识别目标并完成任务。Chollet 说,最好的 AI 大约有 30% 的时间能够实现目标,而人类则有 80% 的时间能够做到。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/36a718b005d93454b649833005443f578ce377.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;项目链接:https://github.com/fchollet/ARC-AGI&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;每项任务都不同于测试对象以前见过的任何任务,因此死记硬背无济于事。他说:「这是一场无法练习的游戏。当 GPT-4 通过律师资格考试时,很可能是因为它见过足够多与考试相似的例子,所以它能给出合理的答案,而不需要对法律有任何内在的理解。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「这不是一个完美的测试。它有很多局限性和缺陷,」Chollet 说。例如,任务中存在足够多的冗余,在举出足够多的例子后,测试对象可能会对答案做出有根据的猜测。不过,他说,它的基本思想是可靠的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;前面提到的圣塔菲研究所复杂性学教授 Melanie Mitchell 认为,要想获得类似人类的通用智能,就必须有能力完成远远超出训练数据的任务。她和她的小组提出了 ARC 的修订版,围绕基本概念组织任务,例如一物在另一物之上,或一物在另一物之内。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;ConceptARC 的理念是测试计算机解决方案的稳健性,方法是让计算机推导出一个概念的规则,然后将该概念应用到新任务中。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/810c71924e6ccc5d2ba080b078c8356204404c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文链接:https://arxiv.org/pdf/2305.07141&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,她可能会向人工智能展示一个网格,在这个网格中,黄色方格位于蓝色方格之上,而这个蓝色方格又位于黄色方格之上。接着可能是一个红色圆圈在一个绿色圆圈上面,然后又换成一个绿色圆圈在一个红色圆圈上面。人类应该很容易理解的概念是,颜色在垂直位置上互换。然后,计算机必须将这一规则应用到一对新的图形中。Mitchell 说,这些任务对人类来说很容易,但对机器来说似乎仍然非常具有挑战性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Mitchell 说,在某些情况下,比如试图在海量数据中做出发现,计算机最好有自己的抽象方法。但在与人交互的情况下,例如驾驶汽车,以人类的方式理解世界就非常重要。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「我不认为智能是全有或全无。它是一个范围,计算机做的某些事情是智能的,」Mitchell 说。「如果你想谈论完全的、人类水平的智能,我会说我们还有些遥远,因为人类水平的智能有许多方面是我们看不到的。」&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/Ku7OOWCzEXq8fA_y8M5KcQ&quot; target=&quot;_blank&quot;&gt;机器之心&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%A8%A1%E5%9E%8B&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;模型&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795968.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795968.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:32:30 GMT</pubDate>
    </item>
    <item>
      <title>突发!Runway一夜删库跑路,HuggingFace已清空</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;突发!Runway一夜删库跑路,HuggingFace已清空&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:25:23&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;活久见,Runway一夜间清空HuggingFace和GitHub,直接跑路了?很多人猜测,此事与版权纠纷有关,这就翻出了Runway和Stability AI之间的一段陈年旧案。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;一夜之间,Runaway竟突然删库,跑路了?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/f559e0f54256b8a36b681420113737ed4df82a.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway的官方推特账号上还在周二发布了新帖,在多伦多、洛杉矶和墨尔本等城市组织社区见面会。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/5293df224771f994b6b8549530ea1620080622.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;6月还发布了「王者归来」级别的Gen-3模型,而且7月就已经进入内测阶段。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/e10963d32d34c113917319feee1424fb82c0b4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但目前的HuggingFace上,Runway已经「人去楼空」了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;主页直接挑明——这个页面以后就不维护啦。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/47e3dbe73e84cc3e835510781bdf6949774617.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 929px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;然后,甩出了这样一个链接:https://huggingface.co/models&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;意思大概就是——我们删库了,之前的Stable Diffusion不可用了。想要找生成模型,那就去别家看看吧。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/27bcedb307c30e94fc40783b0754089f0e11b3.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;GitHub里的Stable Diffusion项目,果然也404了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/c93173471f41239e6b3873f0913215a649e675.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 994px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/71432b2137e1de97fe0028e6ce5be13168fe2f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但主页里还是有一些内容的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/18ad93a05fb6ce5d35f6896bbfd11b78d7ee2d.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这种「手起刀落」、突然删库的做法是开发者最不愿见到的了,有网友表示:我整个项目都要依靠SD 1.5,你们删库让我怎么办?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/d904b3295cc0a2b6866758d3344238d759ad77.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然代码仓库已经删干净了,但公司的官网还能正常响应。不禁让人疑惑:Runway究竟出什么事了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;模型被曝侵权?&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然具体删库原因未知,但或许可能与Stable Diffusion 1.5曾被曝出侵权有关。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/8933be872be1c0cbbc7198e91b4d1132d359e9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在一年以前,由艺术家Sarah Andersen、Kelly McKernan、Karla Ortiz三人发起诉讼,称Stability AI、Midjourney、Runway三家公司侵犯了版权问题,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,却在10月,被法官驳回了诉求。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此后,又有后继的艺术家、摄影师们,加入了投诉阵列。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在新的诉讼中,他们称Runway AI与Stability AI合作训练的Stable Diffusion,为AI能力发展做出了贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但Runway AI被指控,使用了LAION-5B数据集中受版权保护的作品,来训练AI模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/77e4d0766994afe8e5a50210e603c5f15d1f64.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据称,这些模型随后通过Runway AI平台分发,用户可在平台上生成,能够可能复制原告风格的新图像,从而侵犯了许多人的版权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,Runway在备案文件中称:&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;text-align: justify; margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;&quot;&gt;&lt;p&gt;&lt;span&gt;首先,原告必须依靠这些论文,声称模型可以「存储」训练图像这一事实表明,他们的理论是没有价值的。这说明,原告无法从Stable Diffusion中提取出自己作品的任何「存储」副本,尽管有足够的机会这样做。显然,原告的论点是站不住脚的。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此前,Runway在HuggingFace上开源了Stable Diffusion 1.5。但随后就因侵犯知识版权,被要求删除。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;网友们震惊地猜测,整个组织已经被清空了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;隔壁家CEO的黑历史&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;提到Runway的最出圈模型——Stable Diffusion系列,&lt;/span&gt;&lt;a href=&quot;http://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&amp;amp;mid=2652337718&amp;amp;idx=2&amp;amp;sn=50c3353736a86437760cfa0bbadd5f37&amp;amp;chksm=f12402c7c6538bd1cd9ea34c5290ce61a332bbf8d1714f2edde526c8479e2976e8fed8fab9c1&amp;amp;scene=21#wechat_redirect&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;也让我们想起了一段陈年往事&lt;/span&gt;&lt;/a&gt;&lt;span&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/863c4e4982d86cb543b809d78a4f8af7557667.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;就在一年前,Stablity AI创始人Emad Mostaque曾被福布斯扒皮——&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Stable Diffusion的源代码,其实是德国慕尼黑大学的学者和初创公司Runway共同写的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;当时,他们共同推出了一个名为Latent Diffusion的开源图像生成器。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Mostaque拿了别人的作品,把自己的名字写在上面——这就是Stable Diffusion的由来。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而在「窃取」了别人的成果之后,Emad Mostaque凭借自己过人的口头本领,让Stability AI摇身一变成为估值10亿美元的初创公司。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/e330fb520d2db900cfa479efaf168f8d85786f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 966px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;那是在2021年,德国的一个研究者团队和初创公司Runway合作推出了一个名为Latent Diffusion的开源图像模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究者团队包括慕尼黑大学(LMU)和海德堡大学的学者,领导这项研究的是Björn Ommer教授。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/c6881c4355ade62f39d776750b46dafef1f389.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文地址:https://arxiv.org/pdf/2112.10752&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据悉,开始他们只用了几十个英伟达的GPU。7个月后,也即2022年6月,Mostaque向他们伸出援手,Stability AI为他们提供了所需的超算。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而出人意料的是,在8月,这个新模型被冠名为Stable Diffusion,竟然以Stability AI的名义发布了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在Stable Diffusion发布几天内,Stability AI就从两家名叫Coatue和Lightspeed的公司获得了1亿美元的投资,直接让Stability AI的估值冲破了10亿美元。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后的新闻稿中,都只说了Stable Diffusion背后的公司是Stability AI,丝毫未提德国团队以及Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Ommer教授对此当然心有不甘,他希望自己的实验室也能得到宣传,但他所在大学的新闻部门当时正在度假。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Stability的发言人Bishara则表示,公司在官网和Stable Diffusion的GitHub页面上都曾多次公开提到了LMU和Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/72cfebf21b7258e0cb5510e28b13bce0123f5c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/2113669495b50129d8473381acc4db4eec6991.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;更绝的是,在10月,Stability AI还倒打一耙,声称Runway发布的新版本的Stable Diffusion窃取了自己的知识产权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/43c09c38024a99af121447ccbd72fb0243dcd9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway创始人Cristóbal Valenzuela忍无可忍地回击道:这项技术是开源的,根本不存在侵犯版权的可能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/a14674c45e51ec357e6496bfab3b3f2a35cf6c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后,Mostaque撤回了指控,他解释,自己其实是担心Runway的模型版本缺乏护栏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;今日的删库事件,莫非和曾经这个陈年旧案有关?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但如今Runway已经删库,想要使用SD系列的开源模型,也只剩下Stability AI的HuggingFace仓库了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/16d297a82aa75e095ab601ed2a4a2344007149.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/VE3Ot1PG9xke8K89ah5Hgg&quot; target=&quot;_blank&quot;&gt;新智元&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795964.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795964.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:25:23 GMT</pubDate>
    </item>
    <item>
      <title>场景题:如何提升Kafka效率?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;场景题:如何提升Kafka效率?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:磊哥&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:14:34&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/architecture&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;架构&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;Kafka 以其高吞吐量、低延迟和可扩展性而备受青睐。无论是在实时数据分析、日志收集还是事件驱动架构中,Kafka 都扮演着关键角色。&lt;/p&gt;&lt;p&gt;但是,如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/p&gt;&lt;p&gt;那么,提升 Kafka 性能的有效手段都有哪些呢?接下来,我们一起来看。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;性能调优主要手段&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 性能调优的主要手段有以下几个:&lt;/p&gt;&lt;ol data-id=&quot;odd3d8fc-WCgCTB1Z&quot; class=&quot;list-paddingleft-1&quot;&gt;&lt;li data-id=&quot;ld70c578-8QBG1UEd&quot;&gt;分区扩展&lt;/li&gt;&lt;li data-id=&quot;ld70c578-aS74JA4E&quot;&gt;消息批发送(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-ka7YRl6k&quot;&gt;消息批获取(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-374RipOX&quot;&gt;配置调优&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CjJcWSHo&quot;&gt;JVM 调优&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/66fdd7d84fc9389ce532608058f9a7fb530247.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;1.分区扩展&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;在 Kafka 架构中,&lt;strong&gt;使用多分区(Partition)来实现数据分片功能&lt;/strong&gt;。也就是 Kafka 会将多条消息并发存储到一个主题(Topic)的多个 Broker(Kafka 服务)中的多个 Partition 中,以实现并行操作的功能,极大地提高了整体系统的读写能力,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/71b1af64644304894c7818ef426b825bacece6.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;数据分片是一种技术将大数据分割成更小、更易于管理的片段(称为“分片”),并将分片都存储在不同的服务器上,从而实现了数据的水平拆分。通过数据分片,可以有效地解决单一数据库的性能瓶颈、存储限制以及高可用性等问题。&lt;/p&gt;&lt;p&gt;因此,增加更多的 Broker,扩展更多的分区 Partition 是提升 Kafka 性能的关键,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/49798654440d7fb446a9145e052333df6daef3.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;2.消息批发送(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认是不支持批量发送消息的,然而开启批量发送消息可以提升 Kafka 整体运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量发送消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量发送消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ciIXHdc7&quot;&gt;&lt;li data-id=&quot;ld70c578-gaKK5kGG&quot;&gt;&lt;strong&gt;减少网络开销&lt;/strong&gt;:当生产者发送消息给 Kafka 时,如果每次只发送一条消息,那么就需要建立一次 TCP 连接,这涉及到三次握手的过程。而如果采用批量发送的方式,则可以在一次 TCP 连接中发送多条消息,减少了网络连接建立和断开的次数,从而降低了网络开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-VK9gAg6R&quot;&gt;&lt;strong&gt;减少 I/O 操作&lt;/strong&gt;:批量发送意味着一次写入操作可以处理更多的数据。这对于磁盘 I/O 来说是一个优势,因为一次大的写操作比多次小的写操作更高效。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-EWKlbXbY&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:由于减少了通信次数,批量发送可以提高单位时间内发送的消息数量,即提高了吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;那么,想要实现 Kafka 批量消息发送只需要正确配置以下 3 个参数即可:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-8jekjkhT&quot;&gt;&lt;li data-id=&quot;ld70c578-brlDUOAY&quot;&gt;&lt;strong&gt;batch-size&lt;/strong&gt;:定义了 Kafka 生产者尝试批量发送的消息的最大大小(以字节为单位),生产者收集到足够多的消息达到这个大小时,它会尝试发送这些消息给 Kafka Broker,默认值为 16KB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CC4vMvJ5&quot;&gt;&lt;strong&gt;buffer-memory&lt;/strong&gt;:指定了 Kafka 生产者可以用来缓冲待发送消息的总内存空间,如果生产者试图发送的消息超过了这个限制,生产者将会阻塞,直到有足够空间可用或者消息被发送出去,默认值为 32MB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-P2nJfDk6&quot;&gt;&lt;strong&gt;linger.ms&lt;/strong&gt;:生产者在尝试发送消息前等待的最长时间(以毫秒为单位)。默认情况下,linger.ms 的值为 0,这意味着立即发送。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;以上 3 个参数满足任一个都会立即(批量)发送。&lt;/p&gt;&lt;p&gt;因此我们如果需要匹配发送,主要需要调整的参数是 linger.ms,如下配置所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring:
        kafka:
        bootstrap-servers: localhost:9092 # Kafka服务器地址
        consumer:
        group-id: my-group # 消费者组ID
        auto-offset-reset: earliest # 自动重置偏移量到最早的可用消息
        key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 键的反序列化器
        value-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 值的反序列化器
        producer:
        key-serializer: org.apache.kafka.common.serialization.StringSerializer # 键的序列化器
        value-serializer: org.apache.kafka.common.serialization.StringSerializer # 值的序列化器
        batch-size: 16384
        buffer-memory: 33554432
        properties:
        linger:
        ms: 2000&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;span&gt;3.消息批获取(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认每次拉取一条消息,而使用批量获取消息可以有效提升 Kafka 运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量获取消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量获取消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-XYa5cmdP&quot;&gt;&lt;li data-id=&quot;ld70c578-G15x4M1o&quot;&gt;&lt;strong&gt;降低客户端处理开销&lt;/strong&gt;:对于客户端来说,每次处理一个消息需要进行一系列的操作,如解包、解析、处理逻辑等。如果每次只拉取一个消息,客户端会频繁地进行这些操作,带来较大的处理开销。而批量拉取消息时,客户端可以一次性处理多个消息,减少了处理单个消息的频率,从而降低了客户端的处理开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-hF7AnvqE&quot;&gt;&lt;strong&gt;减少网络往返次数&lt;/strong&gt;:每次拉取一个消息时,客户端需要与 Kafka 服务器进行多次网络往返,包括发送请求、接收响应等。这些网络往返会带来一定的延迟。而批量拉取消息时,客户端可以一次性拉取多个消息,减少了网络往返的次数,从而降低了网络延迟。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-FtNk4fmD&quot;&gt;&lt;strong&gt;优化内存使用&lt;/strong&gt;:批量拉取消息可以更好地规划和利用内存。客户端可以一次性分配足够的内存来存储批量拉取的消息,避免了频繁地分配和释放小内存块的操作。这样可以提高内存的使用效率,减少内存碎片的产生,进而提升系统的运行效率。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-wS1xQ7OW&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:批量拉取消息可以提高单位时间内处理的消息数量,从而提升了 Kafka 的吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;想要实现批量读取数据需要做以下两步调整:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-SH70BQUr&quot;&gt;&lt;li data-id=&quot;ld70c578-tOewhYas&quot;&gt;在配置文件中设置批读取:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring.kafka.listener.type=batch&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ZpnAbGJ6&quot;&gt;&lt;li data-id=&quot;ld70c578-3s0eGgTt&quot;&gt;消费者使用 List&amp;lt;ConsumerRecord&amp;gt; 接收消息,具体实现代码如下:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;@KafkaListener(topics = TOPIC)
        public void listen(List&amp;lt;ConsumerRecord&amp;lt;?, ?&amp;gt;&amp;gt; consumerRecords) {
        for (int i = 0; i &amp;lt; consumerRecords.size(); i++) {
        System.out.println(&quot;监听到消息:&quot; + consumerRecords.get(i).value());
        }
        System.out.println(&quot;------------end------------&quot;);
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上程序的执行结果如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/841e92785b5e7ff7966758dc0dee5269221c11.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;从执行结果可以看出:只有一个“end”打印,这说明 Kafka 一次拉取了一批数据,而不是一个数据,否则就会有多个“end”。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;4.配置调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;合理设置 Kafka 的配置也可以一定程度的提升 Kafka 的效率,例如以下这些配置:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-xKWbts6L&quot;&gt;&lt;li data-id=&quot;ld70c578-X2v6l7Ff&quot;&gt;&lt;strong&gt;配置文件刷盘策略&lt;/strong&gt;:调整 flush.ms 和 flush.messages 参数,控制数据何时写入磁盘。较小的值可以降低延迟,而&lt;strong&gt;较大的值可以提高吞吐量&lt;/strong&gt;。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-GrstAmDP&quot;&gt;&lt;strong&gt;网络和 IO 操作线程配置优化&lt;/strong&gt;:num.network.threads 应该设置为 CPU 核心数加 1,以充分利用硬件资源。调整 socket.send.buffer.bytes 和 socket.receive.buffer.bytes 以优化网络缓冲区大小,缓冲区越大,吞吐量也越高。&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;span&gt;5.JVM 调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;因为 Kafka 是用 Java 和 Scala 两种语言编写的,而 Java 和 Scala 都是运行在 JVM 上的,因此保证 JVM 的高效运行,设置合理的垃圾回收器,也能间接的保证 Kafka 的运行效率。例如,对于大内存机器,可以使用 G1 垃圾收集器来减少 GC 暂停时间,并为操作系统留出足够的内存用于页面缓存。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:武晓燕&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/kdgOYWJvlFbd7X-Up0jCRg&quot; target=&quot;_blank&quot;&gt;磊哥和Java&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Kafka&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Kafka&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%95%88%E7%8E%87&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;效率&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%80%A7%E8%83%BD&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;性能&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795961.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795961.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:14:34 GMT</pubDate>
    </item>
    <item>
      <title>关于AI治理策略的六个考虑</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;关于AI治理策略的六个考虑&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:Raymond&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 16:18:44&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。 &lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/39c017f55d18cff9e524013a77145538832a7a.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。&lt;/p&gt;&lt;h4&gt;要点:&lt;/h4&gt;&lt;p&gt;• 治理至关重要:如果没有适当的AI治理,公司可能会面临合规失败和失去客户信任的风险。&lt;/p&gt;&lt;p&gt;• 策略优先:一个明确的AI策略和治理框架可以在创新与混乱之间划清界限。&lt;/p&gt;&lt;p&gt;• 合规推动信任:强有力的AI治理不仅能满足监管要求,还能增强客户信任和竞争优势。&lt;/p&gt;&lt;p&gt;大多数技术的一个反复出现的趋势是,它们通常在广泛应用之前,相关法律还未完全确立。对于技术的治理——尤其是那些被广泛使用的技术——对于保护人们、公司及其数据免受滥用至关重要。&lt;/p&gt;&lt;p&gt;AI似乎也不例外,但它是“新瓶装旧酒”,还是“旧瓶装新酒”呢?&lt;/p&gt;&lt;p&gt;尽管AI已经存在了大约60年,但由于其多次的反复发展,直到最近才逐渐受到关注。自从ChatGPT于2022年底出现以来,许多公司开始开发用于各种应用的AI模型。&lt;/p&gt;&lt;p&gt;这种技术的使用可能带来许多风险,包括暴露敏感数据、违反知识产权法、产生明显错误的结果以及违反现有或正在制定的法规。因此,AI的应用必须谨慎。&lt;/p&gt;&lt;h4&gt;为何AI治理至关重要&lt;/h4&gt;&lt;p&gt;直到最近,AI几乎是数据科学家和其他数据专家的专属领域。因为数据通常只在内部用于改进产品和服务,或分析一般客户行为,因此对数据治理框架的需求并不紧迫。随着GenAI在工作场所的广泛应用,这一情况已经发生了变化。&lt;/p&gt;&lt;p&gt;如今,大多数公司都意识到,为了跟上同行的步伐,他们需要在产品或服务中引入某种形式的GenAI或大型语言模型(LLMs)——而这也伴随着必要的治理。&lt;/p&gt;&lt;p&gt;一个问题是:AI治理程序尚未形成,更不用说定型了。AI的底层技术仍在发展,这使得立法机构难以确定一个固定的合规方案。&lt;/p&gt;&lt;p&gt;但公司不能等待多年才看到最终的治理框架。相反,他们必须立即开始建立一个可行的、可辩护的、可扩展的,最终是灵活的框架,以监督和管理他们企业中的AI使用。在部署AI模型之前,公司需要充分理解这些模型在其业务背景下的生命周期以及它们的工作原理。当然,所有AI项目都应通过合规、法律和信息安全团队的常规治理审核流程。&lt;/p&gt;&lt;h4&gt;建立AI治理框架&lt;/h4&gt;&lt;p&gt;适当的数据治理涉及数据质量、数据安全、伦理使用和隐私保护等多个方面。根据你的业务和所使用数据的性质,AI治理可能比数据治理更为重要(也更为耗费资源)。&lt;/p&gt;&lt;p&gt;以数据分析为例,通常在人们做出决策和行动之前,总会有一个人来验证结果,但由于AI能够在更大规模上运作,它可以在毫秒内做出几十个预测,而无需解释。AI甚至可以在自动决策场景中被训练为自主采取行动。&lt;/p&gt;&lt;p&gt;在考虑你的AI治理模型时,可以考虑以下几个基本要点:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. 考虑使用AI的策略&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你的计划是什么?你的目标是什么?问问自己,公司是否真的有一个AI的业务案例,也就是说,嵌入在你的产品或服务中的AI是否会对你的客户产生有意义的影响?如果答案是否定的,那么可能就不值得花费精力和成本去开发。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. 制定AI使用监控政策&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;如果答案是肯定的,那么第二个考虑因素应该是制定一项政策或声明,规定AI在公司内部如何使用以及由谁使用,这个基础文件可以采用正式政策的形式,明确说明为什么使用AI、由谁使用以及用于什么目的。政策往往更具规范性和具体性,规定了技术必须——而不是应该——如何使用。你的政策还可以提及行业标准,以作为基准。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. 考虑制定AI使用指南&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;或者,你可以制定指南,传统上指南会列出推荐的使用方法和最佳实践。两种方法各有优缺点。根据你的行业、你所受的监管程度以及公司使用的数据类型(如B2C或B2B),你可以选择使用指南,以免过度限制创新或试验。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. 创建AI文档组合&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;无论你选择何种文件,目标都是创建一系列文档,尽可能为员工如何使用新技术提供指导,这将帮助他们在使用数据时,以道德和负责任的方式创建功能丰富的产品和服务。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. 建立法律合规框架&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;接下来,确保你的数据处理的法律基础是坚实的。如果你处理的是欧盟公民的数据,特别是要根据GDPR第6条的规定,为你的情况找到最合适的法律依据。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6. 确定AI决策者&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;另一个重要的工作是创建AI审批流程,包括指定决策者。&lt;/p&gt;&lt;p&gt;理想的AI治理框架应该定位在概念化与运营化阶段之间,这将确保任何为评估想法和用例而设立的团队、委员会或论坛能够采用整体性和跨职能的视角。通过这种方法,他们可以全面评估AI对你的商业模式带来的独特风险,并决定哪些举措应推进到生产阶段。&lt;/p&gt;&lt;h4&gt;为广泛的AI监督做好准备&lt;/h4&gt;&lt;p&gt;全球各地的立法者很快将要求大多数公司建立强有力的AI治理监督模型。通过采用将人权与商业洞察相结合的更广泛视角,企业可以通过增强客户信任来获得竞争优势。&lt;/p&gt;&lt;p&gt;这种以隐私为先、以业务为中心的方法使公司能够自信地开发以价值为驱动的模型,同时确保数据隐私和符合监管要求,提供超越单纯合规的战略优势。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;http://www.d1net.com/ai/industry/582047.html&quot; target=&quot;_blank&quot;&gt;企业网D1Net&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI%E6%B2%BB%E7%90%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI治理&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795955.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795955.html</guid>
      <pubDate>Fri, 30 Aug 2024 08:18:44 GMT</pubDate>
    </item>
    <item>
      <title>2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:爱吃炸鸡&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:07:16&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;高级网络犯罪分子越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;2024年上半年,尽管整体非法活动有所下降,但加密货币犯罪中的两类特定犯罪活动——被盗资金和勒索软件却在上升。报告详细分析了这些犯罪活动的趋势和背后的原因,并探讨了加密货币生态系统中的一些积极发展。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/265e45054f360db5b384725690b6b8ec88d0be.jpg&quot; style=&quot;visibility: visible; width: 615px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;关键发现&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-idce86Ri&quot;&gt;&lt;li data-id=&quot;ld70c578-5JyerKWc&quot;&gt;2024年至今,链上非法活动总量下降了近20%,表明合法活动增长速度超过了非法活动;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-koyWT2eJ&quot;&gt;尽管与去年同期相比非法交易有所下降,但两类非法活动——被盗资金和勒索软件却在增加;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-oirWd2nw&quot;&gt;被盗资金流入量几乎翻了一番,从8.57亿美元增至15.8亿美元,勒索软件流入量增长了约2%,从4.491亿美元增至4.598亿美元;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-W8sdikJS&quot;&gt;每次盗窃事件中被盗的加密货币平均金额增加了近80%,加密货币攻击者似乎又回到了他们的目标——中心化交易所,而不是优先考虑DeFi协议。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-MvKjyFPH&quot;&gt;高级网络犯罪分子,包括与朝鲜有关的IT工作者,越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;勒索软件研究发现&lt;/h4&gt;&lt;p&gt;2024年有望成为勒索软件收入最高的一年,这在很大程度上归功于执行较少高调攻击但收取大额支付的勒索软件变种(行业称为“大猎物狩猎”)。2024年记录了有史以来最大的勒索软件支付,大约7500万美元支付给了Dark Angels勒索软件组织。&lt;/p&gt;&lt;p&gt;针对最严重勒索软件变种的中位数勒索支付从2023年初的近20万美元飙升至2024年6月中旬的150万美元,表明这些变种正在优先针对可能因资金充足和系统重要性而更有可能支付高额赎金的大型企业和关键基础设施提供商。&lt;/p&gt;&lt;p&gt;由于最近的执法行动破坏了最大的参与者,如ALPHV/BlackCat和LockBit,勒索软件生态系统经历了一些分裂。在这些破坏之后,一些附属机构迁移到效果较差的变种或推出了自己的变种。&lt;/p&gt;&lt;h4&gt;勒索软件与加密货币&lt;/h4&gt;&lt;p&gt;加密货币生态系统在2024年见证了一些积极的发展。在许多方面,加密货币继续获得主流接受,紧随美国批准现货比特币和以太坊交易型开放式指数基金(ETF)以及财务会计标准委员会(FASB)的公平会计规则的修订之后。但随着任何新技术的采用,合法和非法行为者都会增长。尽管与前几年相比,今年的非法活动有所下降,但特定网络犯罪相关实体的加密货币流入显示出一些令人担忧的趋势。&lt;/p&gt;&lt;p&gt;如下图所示,2024年流入合法服务的资金是自2021年上一次牛市高峰以来最高的,这是一个令人鼓舞的迹象,表明加密货币在全球范围内的持续采用。流入风险服务(主要由混合器和不收集KYC信息的交易所组成)的资金趋势高于去年同期。与此同时,非法活动的总体下降了19.6%,从209亿美元降至167亿美元,表明合法活动的增长速度超过了链上非法活动。这些非法数字是基于研究机构今天识别的非法地址流入量的下限估计。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/4261db64846d630b4e5742079f3f503889af08.jpg&quot; alt=&quot;&quot; title=&quot;1723952814_66c16eae5b641ee1d2632.png!small?1723952816009&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;Chainalysis开始将疑似非法活动纳入某些犯罪类型的总估计中,基于Chainalysis Signals数据。此前,估计只包括与Chainalysis有支持文件证明属于某个非法实体的地址相关的总数。Signals利用链上数据和启发式方法来识别特定未知地址或地址簇的疑似类别,置信度从可能到几乎确定不等。Signals的引入不仅随着时间的推移增加了我们对某些类别非法活动的估计,而且还使我们能够完善前几年的估计。&lt;/p&gt;&lt;p&gt;尽管与去年同期相比非法交易总体下降,但被盗资金和勒索软件这两类非法活动却有所上升。通过7月底的年增长来看,加密货币抢劫中被盗资金增加了近一倍,从8.57亿美元增至15.8亿美元。2023年6月底的勒索软件流入总计为4.491亿美元。今年同期,勒索软件流入量已超过4.598亿美元,这表明我们可能正面临另一个勒索软件创纪录的年份。&lt;/p&gt;&lt;h4&gt;攻击者瞄准中心化交易所&lt;/h4&gt;&lt;p&gt;2023年相比2022年加密货币被盗价值下降50%,而2024年黑客活动又出现了复苏,从被盗金额和黑客事件的数量可以看出这一点。如下图所示,截至7月底,今年累计被盗金额已超过15.8亿美元,比去年同期增长了84.4%。有趣的是,2024年的黑客事件数量仅比2023年略有增加,同比增长了2.76%。每次事件中被盗的平均金额增加了79.46%,从2023年1月至7月的每次事件590万美元增加到2024年迄今为止的每次事件1060万美元。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/b82e21978123a9c7ef36797e9d963f629e0b3c.jpg&quot; alt=&quot;&quot; title=&quot;1723952836_66c16ec43a5bcb5502201.png!small?1723952837726&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;被盗金额的变化很大程度上归因于资产价格的上涨。例如,比特币的价格从2023年前七个月的平均价格26141美元上涨到今年7月的平均价格60091美元,涨幅达130%。&lt;/p&gt;&lt;p&gt;Chainalysis跟踪的一个黑客指标是黑客事件发生后被盗资金流动的交易量。这可以作为被盗资产的一个代理,因为很多时候被黑客攻击的服务不会公开报告被盗的具体细节。2024年与被盗资金活动相关的BTC交易量占这些流动的40%。这种模式似乎是由被攻击实体类型的变化所驱动的,2024年中心化服务被黑客攻击以获取高额资金。特别是像DMM这样的中心化交易所,其损失了3.05亿美元。在DMM黑客事件中,大约19%的被盗金额在2024年被盗,据报道大约有4500 BTC被盗。&lt;/p&gt;&lt;p&gt;加密货币攻击者似乎在四年专注于去中心化对手之后,再次回归他们的老路,瞄准中心化交易所,后者通常不交易比特币。尽管对DeFi服务——特别是跨链桥接的攻击在2022年达到顶峰,但攻击者在中心化交易所增加安全投资后,将注意力转向了更新、更脆弱的组织。现在包括与朝鲜有关的攻击者在内的黑客,正在利用越来越复杂的社会工程学策略,例如申请IT工作,通过渗透中心化交易所来窃取加密货币。&lt;/p&gt;&lt;h4&gt;2024年有望成为勒索软件收入最高的一年&lt;/h4&gt;&lt;p&gt;2023年勒索软件支付金额创下新高,超过10亿美元。这些巨额支付来自一些高调、破坏性的攻击,如Cl0p对Move&amp;nbsp;IT零日的利用以及ALPHV/BlackCat勒索软件团伙对凯撒酒店物业的利用,导致该公司支付了1500万美元的赎金。尽管针对勒索软件的恶意部署和组织基础设施的主要执法行动,依旧出现了如此多的赎金支付,截至2023年6月底的累计勒索软件支付总额约为4.491亿美元。今年同期,我们记录的勒索软件支付总额为4.598亿美元,这使2024年坚定地走上了创纪录的道路。&lt;/p&gt;&lt;p&gt;Kiva咨询公司的总法律顾问Andrew Davis表示,尽管对LockBit和ALPHV/BlackCat的打击持续加大,但总体勒索软件活动依旧相对稳定。“无论是这些众所周知的威胁行为者的前附属机构,还是新的初创企业,大量新的勒索软件团伙加入了这场混战,展示了他们进行攻击的新方法和技巧,如扩大初始访问和横向移动的方法。”&lt;/p&gt;&lt;p&gt;如下图所示,勒索软件攻击也变得越来越严重。我们观察到的一个显著变化是每年最大赎金支付的飙升。到目前为止,2024年出现了有史以来最大的单笔支付,约为7500万美元,支付给了名为Dark Angels的勒索软件团伙。这种最大支付金额的增长也代表了从2023年到今年的最大支付金额增长了96%,从2022年的最大支付金额增长了335%。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/c5f1df74092b54d61db7948cd898b26295bdfb.jpg&quot; alt=&quot;&quot; title=&quot;1723952869_66c16ee57189b9bd2742c.png!small?1723952870707&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;如果迅速增加的最大支付金额还不够糟糕的话,这种每年的异常值趋势实际上还伴随着中位数支付的增长趋势。从2023年第一周的中位数支付金额198939美元增加到2024年6月中旬的中位数支付金额150万美元。这代表了在此期间最严重株系支付的典型赎金规模的7.9倍增长,自2021年初以来增长了近1200倍。这种模式可能表明,这些勒索软件组织开始瞄准大型企业和关键基础设施提供商,这些目标可能因为其雄厚的资金和系统重要性而更支付高额赎金。&lt;/p&gt;&lt;p&gt;勒索软件的另一个趋势是攻击也变得更加频繁,根据eCrime.ch的数据泄露网站统计,2024年到目前为止至少增加了10%的攻击。作为勒索软件事件的衡量标准,勒索软件泄露网站的帖子同比增加了10%。然而链上测量的总勒索软件支付事件同比下降了27.29%。将这两个趋势结合起来看,尽管今年迄今为止的攻击可能有所增加,但支付率却同比下降了。这对生态系统来说是一个积极的信号,表明受害者可能准备得更好,不需要支付赎金。&lt;/p&gt;&lt;p&gt;Davis说:“Kivu参与协助受害组织的事务中,大约有65%在没有支付赎金的情况下得到解决,显示出受影响组织的韧性和没有必要支付攻击者的积极趋势。”&lt;/p&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动继续呈下降趋势,但两类加密货币犯罪似乎正在逆势而上:被盗资金和勒索软件。这两种犯罪类型通常由具有某些共同特征的参与者实施。它们通常是利用先进网络基础设施的有组织团体。这些参与者以精心策划的社会工程学策略而闻名,他们利用这些策略闯入加密业务,窃取加密货币资产,并利用专家级洗钱技术试图在资金被查封前套现。&lt;/p&gt;&lt;p&gt;打击网络犯罪的关键是破坏其供应链,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和套现点。由于加密货币盗窃和勒索软件的运营几乎完全在区块链上进行,配备正确解决方案的执法部门可以通过追踪资金来更好地理解和破坏这些参与者的运营。&lt;/p&gt;&lt;p&gt;eCrime.ch的研究员Corsin Camichel指出,包括Operation Cronos、Operation Duck Hunt、Operation Endgame等打击行动和执法行动对于遏制这些活动并表明犯罪行为将会有后果至关重要。&lt;/p&gt;&lt;h4&gt;结论&lt;/h4&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动总体呈下降趋势,但被盗资金和勒索软件这两类加密货币犯罪似乎正在逆势而上。这些犯罪类型通常由具有某些共同特征的行为者实施,他们通常是利用复杂的网络基础设施的有组织的团体。在被盗资金的情况下,与朝鲜有关的黑客组织是一些最大抢劫案的幕后黑手。这些行为者以计算出的社会工程策略而闻名,他们闯入加密业务,窃取加密资产,并利用专业的洗钱技术,在资金被查封前尝试变现。&lt;/p&gt;&lt;p&gt;报告还强调了通过跟踪资金流向来破坏网络犯罪供应链的重要性,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和提现点。由于加密货币抢劫和勒索软件的操作几乎完全在区块链上进行,执法部门配备了正确的解决方案,可以追踪资金流向,更好地理解和破坏这些行为者的操作。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;https://www.chainalysis.com/blog/2024-crypto-crime-mid-year-update-part-1/&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.freebuf.com/articles/neopoints/408911.html&quot; target=&quot;_blank&quot;&gt;FreeBuf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86%E8%B4%A7%E5%B8%81&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密货币&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8B%92%E7%B4%A2%E8%BD%AF%E4%BB%B6&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;勒索软件&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795943.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795943.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:07:16 GMT</pubDate>
    </item>
    <item>
      <title>别让加密难倒你:Python爬虫攻克加密网站的实战教程</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;别让加密难倒你:Python爬虫攻克加密网站的实战教程&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:攻城狮成长日记&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:03:43&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;今天有个朋友向我求助,希望我帮他爬取一个网站上的内容。网站内容如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/c50ccd18206254fb89d65784b20c4be5d54d15.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;aHR0cHM6Ly93d3cuY2NwcmVjLmNvbS9uYXZDcXpyLyMvCg==&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;打开上述网址,进入开发者模式,这些数据的请求接口,正常逻辑是通过搜索页面上内容进行锁定请求接口。但是,进行搜索时,发现什么都搜索不到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/b8452de03a8013533bd2092de32feb0f9d2ecc.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上图发现,这些数据只请求了一个接口,当我点击负载和响应这两个标签,发现数据是被加密了,所以,我们搜索不了页面的内容。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/a58917d366aae0842e762364be32ac734ae281.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;负载加密内容&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/44933d7925dd6ea07e8703a9812235aea04f47.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;响应加密内容&lt;/p&gt;&lt;h4&gt;浏览器为啥是明文?&lt;/h4&gt;&lt;p&gt;这时相信小伙伴,心中都有一个疑问浏览器为啥是明文?&amp;nbsp;&amp;nbsp;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/994e234466fe0e9c5b4134d8f2deff02c58e56.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;如何定位到加密资源文件&lt;/h4&gt;&lt;p&gt;通过XHR/提取断点,该方法是通过匹配URL包括请求路径关键字进行断点,具体配置如下图:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/0126a7d47053b9085f78044456dc78f9c939b3.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;这时我们重新刷新网页,如下图所示,网站就成功进入我们上一步设置的断点中。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/233ebba10d3164e2607137dc8bb9356d16c8fd.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;其中,h就是加密后的请求体参数,然后我们从调用堆栈中一步步往前推。至于如何找呢?这里是有一个技巧的,我们需要找到前一步请求体还没加密,后一步请求体就加密成功了。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/f1c250e12f4ee5490411724a2f08181f6530e6.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密后&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/f8b9b8d00ff393c197457695b6b2539406a6f1.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密前&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其中上图o就是请求体加密之前的参数,s就是加密后的参数。chunk-common.a25fd3ce.js就是进行加密的js。通过点击堆栈的js名称就可以定位到对应的地方。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;扣取代码&lt;/h4&gt;&lt;p&gt;经过上一步分析,我们知道o就是加密之前的参数,就在js代码找o定义的位置,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/04c5f1831bc7855e5d5503d9192f421f35e032.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;下面代码就是请求体的参数,通过上述代码发现id是通过uuid方法生成的。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;{
        &quot;id&quot;: &quot;rtmhwib79r4ytdgn&quot;,
        &quot;projectKey&quot;: &quot;honsan_cloud_ccprec&quot;,
        &quot;clientKey&quot;: &quot;rtmhwialwggc91l6&quot;,
        &quot;token&quot;: null,
        &quot;clientDailyData&quot;: {},
        &quot;acts&quot;: [
        {
        &quot;id&quot;: &quot;rtmhwib65mon96h1&quot;,
        &quot;fullPath&quot;: &quot;/cloud.sys.tomcatV11/api/v1/template/getPages&quot;,
        &quot;args&quot;: [
        {
        &quot;yuPiLou&quot;: {
        &quot;templateId&quot;: &quot;32d3044760964ed8927bad49e545ba4b&quot;,
        &quot;pageNo&quot;: 1,
        &quot;pageSize&quot;: 20,
        &quot;where&quot;: {
        &quot;projecttype&quot;: &quot;PG3&quot;,
        &quot;state&quot;: &quot;42&quot;
        }
        }
        }
        ]
        }
        ]
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接着我们需求扣取这个uuid方法。通过鼠标悬停在这个方法上面,就会弹出面板,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/417aa323287dc248757500a2fc7e6a3a5ec685.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;点击后就会调到uuid方法定义的地方,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/82524359223b2526ef327452a8d5890ef12adb.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把这段代码扣取下面,如下所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;uuid = function (t, n) {
        void 0 === t &amp;amp;&amp;amp; (t = 16),
        void 0 === n &amp;amp;&amp;amp; (n = !1),
        !n &amp;amp;&amp;amp; t &amp;lt; 16 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=false 时 len 不能小于 16&quot;),
        t = 16),
        n &amp;amp;&amp;amp; t &amp;lt; 12 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=true 时 len 不能小于 12&quot;),
        t = 12);
        var i = ((new Date).getTime() + 1e14).toString();
        return i += (&quot;000&quot; + (++e.uuidCount).toString()).substr(-3, 3),
        i = n ? parseInt(i).to62() : parseInt(i).toString(36),
        i += randomStr(t),
        i = i.substr(0, t),
        i
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;把this关键的全部删除它。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;然后通过node进行运行,如下图所示报错了e没有定义。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/69c25ca2798ba18552e454c2c76fded67b07a7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;于是,我们再去源码中找改值是什么?通过选中该值,经过几次的确认。该值是NaN,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/13d6772044a54072e200672b68b6abc9aeb9ed.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;我们再自己扣取的代码写死它,再次运行。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/f17578d96dfd29d745f5698a9b8daed2b8d682.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;发现这是报randomStr没有定义,我们再去源码找这个方法进行补环境。通过搜索发现了randomStr方法,该方法有调用了random。于是我们两个方法一起扣取下来。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/b4c3c9a90ed2a54d506309f6a58a2e8a485691.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;再次运行,没有报错了,成功打印了uuid,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/d5d129863959cb56eaf384b4dd5e912141224b.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把之前扣取下来的请求体,id字段固定值替换成uuid函数生成的动态值,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/514cfe589638a1e08bf9414d94ba495cdf0475.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;最重要的一步就是扣取加密的JS代码啦,&amp;nbsp;在请求体参数附近查看this.aes.encode(a)加密方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/49fcbd651a85c280b9a073694aea25510ec648.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上面介绍的方面快速定位到这个加密的方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/4388efa40fa240126292649bf2d62ce026ca53.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;该方法又调用了另外一个方法this.encryptCode,通过关键搜索也找到了encryptCode方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/822fd4069f52dfedc375065822751c973da87a.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;加密方法&lt;/p&gt;&lt;p&gt;按照编程习惯,附近也会有对应的解密方法的,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/69c057124949b1e5c08186d3cb64e75052034c.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;解密方法&lt;/p&gt;&lt;p&gt;现在加密和解密的方法都找到了,我们把它全部扣取下面进行调试,发现缺什么方法再进行补。重新定义一个方法生成加密请求头,后续让python调用这个方法并传入分页参数。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/b3c8bc592bcc125e9d9120518b3b57023f1ee2.webp&quot; style=&quot;width: 854px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;测试该方法是否能正常生成加密请求头,执行如下命令:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;console.log(encrypt())&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行上述方法后,输入如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/725c74941411fa599f56442715aca852accd35.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;通过python模拟请求&lt;/h4&gt;&lt;p&gt;这里介绍一个非常快捷的方式用python模拟一个浏览器请求,首先我们先在开发者模式选择这条请求,然后右击选择**将所有列表复制为cURL(Bash)**,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/749729a16cc0c8d5f256670c41f85157f09c2e.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,来的这个工具网站[1],粘贴刚才复制的cURL信息,就可以根据自己喜欢的编程语言生成模拟浏览器请求的代码,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/1584af686dbc260a063323cf1c711a93d15fd4.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,把生成的代码拷贝下来,进行修改。通过python的第三方库execjs调用js代码并执行对应的方法。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;jscode=open(&quot;./test.js&quot;,&#39;r&#39;,encoding=&#39;utf-8&#39;).read()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;以读的模式打开test.js并赋值给jscode&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;data = execjs.compile(jscode).call(&quot;encrypt&quot;,page)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;通过execjs调用jscode对象,并通过call方法调用encrypt加密方法,并传入分页参数page。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;下图是python中的完整代码:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/c49bc9600825a5a353b4457c482567b0786035.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;执行上述代码后,成功获取网站的数据如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/895d6c029de42dcdc7e07182a251b1be6deb2f.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;遇到的问题&lt;/h4&gt;&lt;p&gt;在python中使用execjs库,出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 244: illegal multibyte sequence,一般遇见编码问题先看看代码里写没写encoding=&#39;utf-8&#39;,没写的话写加上试试。加了也不行。通过在python代码中加入如下代码:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import subprocess
        from functools import partial
        subprocess.Popen = partial(subprocess.Popen, encoding=&quot;utf-8&quot;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4&gt;脚本获取方式&lt;/h4&gt;&lt;p&gt;上述脚本已经上传上传到gitee,有需要的小伙伴可以自行获取。gitee上的仓库主要是分享一些工作中常用的脚本。小伙伴可以frok或者watch仓库,这样有更新可以及时关注到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/8484a7822421cb494c560514d19112a4f2d7c7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;仓库地址:https://gitee.com/didiplus/script&lt;/p&gt;&lt;p&gt;工具网站:&amp;nbsp;https://curlconverter.com/&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MjM5OTc5MjM4Nw==&amp;amp;mid=2457381767&amp;amp;idx=1&amp;amp;sn=09cd6a68fc56547e2dcc62936ebd90b5&amp;amp;chksm=b17eee44751306601f52de7bf8b56deffcbdf3b1a076a6f2dbed742139d7e22870b77cc95abd&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0830EIoSh7cUeOMxdM8v93Fa&amp;amp;sharer_shareinfo=dc846dfbefb8eab3b644a85e5ccb2e52&amp;amp;sharer_shareinfo_first=dc846dfbefb8eab3b644a85e5ccb2e52#rd&quot; target=&quot;_blank&quot;&gt;攻城狮成长日记&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Python&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Python&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%88%AC%E8%99%AB&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;爬虫&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795942.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795942.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:03:43 GMT</pubDate>
    </item>
    <item>
      <title>一周打完1000场官司,中科院发布首个AI法庭AgentCourt!</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;一周打完1000场官司,中科院发布首个AI法庭AgentCourt!&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 14:38:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;在人工智能重塑各个行业的今天,法律界也迎来了前所未有的变革。传统的法律实践面临着效率低下、成本高昂等挑战,而AI技术的出现为解决这些问题提供了新的可能。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;从最初斯坦福小镇火遍全网,25个由大语言模型(LLMs)驱动的智能体生活交友,打开了多Agent新视角。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而现在,AI法庭也来了!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最近,来自中科院深圳先进研究院的研究团队开发了一个名为AgentCourt的模拟智能法庭,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;它是一个基于大语言模型(LLMs)的法庭模拟系统,旨在通过AI驱动的虚拟法庭来革新法律教育、案例分析和法律研究。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;te

Copy link
Contributor

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Fri, 30 Aug 2024 16:37:04 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>用「图灵测试」检验AI尤其是大语言模型,真的科学吗?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;用「图灵测试」检验AI尤其是大语言模型,真的科学吗?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:机器之心&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:32:30&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;当前的大型语言模型似乎能够通过一些公开的图灵测试。我们该如何衡量它们是否像人一样聪明呢?&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在发布后的近两年时间里,ChatGPT 表现出了一些非常类似人类的行为,比如通过律师资格考试。这让一些人怀疑,计算机的智力水平是否正在接近人类。大多数计算机科学家认为,机器的智力水平还不能与人类相提并论,但他们还没有就如何衡量智力或具体衡量什么达成共识。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;检验机器智能的经典实验是图灵测试,由艾伦・图灵在其 1950 年发表的论文《Computing Machinery and Intelligence》中提出。图灵认为,如果计算机能让与之进行打字对话的人相信它是人类,这可能就是智能的标志。大型语言模型(LLM),如 GPT,擅长像人一样说话,但尚未令人信服地通过图灵测试。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/910b69913d4854a394b038b1bbbb2c04265523.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 925px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;2023 年,加州大学圣迭戈分校(UCSD)的研究人员公开进行了一次图灵测试,目的是比较最新的 LLM 与 20 世纪 60 年代开发的聊天机器人 Eliza 的表现。在律师资格考试中获得高分的 GPT-4 表现相当出色,在 41% 的游戏中,评委认为它与人类无异。而它的前身 GPT-3.5 只通过了 14% 的游戏,低于 Eliza 的 27%。人类在 63% 的游戏中通过(被判定为人类)。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/659530784c456c683af9518f61ec2f110e97f4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #888888;&quot;&gt;论文链接:https://arxiv.org/pdf/2310.20216v1&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;负责这项实验的 UCSD 认知科学博士生 Cameron Jones 说,人类得分如此之低并不奇怪。这是因为玩家预计模型会表现出色,所以他们更容易认为人类只是一个听起来像人类的模型。Jones 说,目前还不清楚聊天机器人必须达到多少分才能赢得游戏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;图灵测试可用于检查客服聊天机器人是否以人们乐于接受的方式与人互动,从而展示 Jones 所说的灵活的社交智能。不过,它能否识别出更通用的智能还很难说。Jones 说:「我们对什么是人类的智能还不甚了解。如果我们能更快地通过模型解决这个问题,我会感到很惊讶。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;圣塔菲研究所复杂性学教授 Melanie Mitchell 说:「我认为图灵测试的整个概念都被过于字面化了。」她认为,图灵提出的「模仿游戏」是一种思考机器智能可能是什么样子的方法,而不是一种定义明确的测试。「人们轻率地使用这个术语,说大型语言模型通过了图灵测试,而事实上它们并没有通过测试。」&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;新的测试&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,如果图灵测试不能可靠地评估机器智能,那就提出了一个问题:什么方法可以?普林斯顿大学心理学家 Philip Johnson-Laird 和德国开姆尼茨工业大学预测分析学教授 Marco Ragni 在 2023 年 11 月发表在《智能计算》杂志上的一篇论文中提出了一个不同的测试方法:他们建议把模型当作心理实验的参与者,看看它能否理解自己的推理过程。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,他们会向一个模型提出这样的问题:「如果 Ann 很聪明,那么她是聪明还是富有,或者两者都是?」虽然根据逻辑规则,可以推断出安是聪明人、富人或两者都是,但大多数人类都会拒绝这个推断,因为设定中没有任何东西表明她可能是富人。如果模型也拒绝了这一推断,那么它的行为就和人类一样,研究人员就会进入下一步,要求机器解释其推理。如果它给出的理由与人类相似,第三步就是检查源代码中模拟人类表现的组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这些组件可能包括一个快速推理系统、另一个更深思熟虑的推理系统,以及一个根据上下文改变 「或」等词的解释的系统。研究人员认为,如果模型通过了所有这些测试,就可以认为它模拟了人类智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;英国考文垂大学研究机器智能并进行过图灵测试的计算机教授 Huma Shah 说,Johnson-Laird 和 Ragni 的方法可能确实会提供一些有趣的见解,但质疑一个模型的推理能力并不是什么新鲜事。「图灵测试允许这种逻辑质疑,」她说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Shah 还表示,试图测试智力的麻烦在于,这首先取决于人们如何定义智力。是模式识别能力、创新能力,还是创造音乐或喜剧等创意的能力?「因此,如果我们没有就人工智能中的『I』达成一致,那么我们怎么能建立通用人工智能(AGI)呢?」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;谷歌的软件工程师和人工智能专家 Francois Chollet 则认为图灵测试并不是特别有用。他说,一个好的测试应该有一个确切的、形式化的目标,并且应该衡量一个系统有多接近这个目标。他指出:「图灵测试并没有做到这些。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说,LLM 在图灵测试中的表现只能说明他们擅长使用语言,而这种技能完全来自于对大量数据的记忆。他认为,真正的智能并不在于掌握某项技能,而在于把学到的知识运用到新的、不同的情境中。「LLM 百分之百都是记忆。他们没有智能。他们没有适应能力。」Chollet 说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在他看来,智力是一种有效获得新技能的能力,而这些技能是训练过程中没有准备好的,目的是完成与系统之前所见过的任务差异足够大的任务。人类终其一生都在与世界互动,本质上是在进行实验,以便建立一个反映世界如何运行的模型。这样当他们遇到新情况时,就能学会如何处理。新技能的范围越广,计算机就越接近实现通用人工智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说:「如果你能让学习过程像人类大脑一样高效地处理信息,那么你就拥有了 AGI。」到目前为止,机器的学习效率远远落后于人脑,大约比人脑低 1 万倍。例如,计算机需要数百万张图片才能学会识别猫的图片,而人类只需一两个例子就能学会识别猫。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了测试他定义的智力,Chollet 开发了抽象与推理语料库(ARC)。ARC 的挑战是通过基本的积木,如形状或大小等简单概念来完成的。这些积木用于创建任务,如按大小对物体进行分类或补全对称图案。测试对象会看到三个示例,他们应该能够识别目标并完成任务。Chollet 说,最好的 AI 大约有 30% 的时间能够实现目标,而人类则有 80% 的时间能够做到。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/36a718b005d93454b649833005443f578ce377.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;项目链接:https://github.com/fchollet/ARC-AGI&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;每项任务都不同于测试对象以前见过的任何任务,因此死记硬背无济于事。他说:「这是一场无法练习的游戏。当 GPT-4 通过律师资格考试时,很可能是因为它见过足够多与考试相似的例子,所以它能给出合理的答案,而不需要对法律有任何内在的理解。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「这不是一个完美的测试。它有很多局限性和缺陷,」Chollet 说。例如,任务中存在足够多的冗余,在举出足够多的例子后,测试对象可能会对答案做出有根据的猜测。不过,他说,它的基本思想是可靠的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;前面提到的圣塔菲研究所复杂性学教授 Melanie Mitchell 认为,要想获得类似人类的通用智能,就必须有能力完成远远超出训练数据的任务。她和她的小组提出了 ARC 的修订版,围绕基本概念组织任务,例如一物在另一物之上,或一物在另一物之内。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;ConceptARC 的理念是测试计算机解决方案的稳健性,方法是让计算机推导出一个概念的规则,然后将该概念应用到新任务中。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/810c71924e6ccc5d2ba080b078c8356204404c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文链接:https://arxiv.org/pdf/2305.07141&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,她可能会向人工智能展示一个网格,在这个网格中,黄色方格位于蓝色方格之上,而这个蓝色方格又位于黄色方格之上。接着可能是一个红色圆圈在一个绿色圆圈上面,然后又换成一个绿色圆圈在一个红色圆圈上面。人类应该很容易理解的概念是,颜色在垂直位置上互换。然后,计算机必须将这一规则应用到一对新的图形中。Mitchell 说,这些任务对人类来说很容易,但对机器来说似乎仍然非常具有挑战性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Mitchell 说,在某些情况下,比如试图在海量数据中做出发现,计算机最好有自己的抽象方法。但在与人交互的情况下,例如驾驶汽车,以人类的方式理解世界就非常重要。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「我不认为智能是全有或全无。它是一个范围,计算机做的某些事情是智能的,」Mitchell 说。「如果你想谈论完全的、人类水平的智能,我会说我们还有些遥远,因为人类水平的智能有许多方面是我们看不到的。」&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/Ku7OOWCzEXq8fA_y8M5KcQ&quot; target=&quot;_blank&quot;&gt;机器之心&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%A8%A1%E5%9E%8B&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;模型&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795968.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795968.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:32:30 GMT</pubDate>
    </item>
    <item>
      <title>突发!Runway一夜删库跑路,HuggingFace已清空</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;突发!Runway一夜删库跑路,HuggingFace已清空&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:25:23&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;活久见,Runway一夜间清空HuggingFace和GitHub,直接跑路了?很多人猜测,此事与版权纠纷有关,这就翻出了Runway和Stability AI之间的一段陈年旧案。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;一夜之间,Runaway竟突然删库,跑路了?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/f559e0f54256b8a36b681420113737ed4df82a.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway的官方推特账号上还在周二发布了新帖,在多伦多、洛杉矶和墨尔本等城市组织社区见面会。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/5293df224771f994b6b8549530ea1620080622.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;6月还发布了「王者归来」级别的Gen-3模型,而且7月就已经进入内测阶段。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/e10963d32d34c113917319feee1424fb82c0b4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但目前的HuggingFace上,Runway已经「人去楼空」了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;主页直接挑明——这个页面以后就不维护啦。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/47e3dbe73e84cc3e835510781bdf6949774617.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 929px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;然后,甩出了这样一个链接:https://huggingface.co/models&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;意思大概就是——我们删库了,之前的Stable Diffusion不可用了。想要找生成模型,那就去别家看看吧。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/27bcedb307c30e94fc40783b0754089f0e11b3.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;GitHub里的Stable Diffusion项目,果然也404了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/c93173471f41239e6b3873f0913215a649e675.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 994px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/71432b2137e1de97fe0028e6ce5be13168fe2f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但主页里还是有一些内容的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/18ad93a05fb6ce5d35f6896bbfd11b78d7ee2d.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这种「手起刀落」、突然删库的做法是开发者最不愿见到的了,有网友表示:我整个项目都要依靠SD 1.5,你们删库让我怎么办?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/d904b3295cc0a2b6866758d3344238d759ad77.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然代码仓库已经删干净了,但公司的官网还能正常响应。不禁让人疑惑:Runway究竟出什么事了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;模型被曝侵权?&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然具体删库原因未知,但或许可能与Stable Diffusion 1.5曾被曝出侵权有关。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/8933be872be1c0cbbc7198e91b4d1132d359e9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在一年以前,由艺术家Sarah Andersen、Kelly McKernan、Karla Ortiz三人发起诉讼,称Stability AI、Midjourney、Runway三家公司侵犯了版权问题,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,却在10月,被法官驳回了诉求。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此后,又有后继的艺术家、摄影师们,加入了投诉阵列。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在新的诉讼中,他们称Runway AI与Stability AI合作训练的Stable Diffusion,为AI能力发展做出了贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但Runway AI被指控,使用了LAION-5B数据集中受版权保护的作品,来训练AI模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/77e4d0766994afe8e5a50210e603c5f15d1f64.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据称,这些模型随后通过Runway AI平台分发,用户可在平台上生成,能够可能复制原告风格的新图像,从而侵犯了许多人的版权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,Runway在备案文件中称:&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;text-align: justify; margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;&quot;&gt;&lt;p&gt;&lt;span&gt;首先,原告必须依靠这些论文,声称模型可以「存储」训练图像这一事实表明,他们的理论是没有价值的。这说明,原告无法从Stable Diffusion中提取出自己作品的任何「存储」副本,尽管有足够的机会这样做。显然,原告的论点是站不住脚的。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此前,Runway在HuggingFace上开源了Stable Diffusion 1.5。但随后就因侵犯知识版权,被要求删除。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;网友们震惊地猜测,整个组织已经被清空了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;隔壁家CEO的黑历史&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;提到Runway的最出圈模型——Stable Diffusion系列,&lt;/span&gt;&lt;a href=&quot;http://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&amp;amp;mid=2652337718&amp;amp;idx=2&amp;amp;sn=50c3353736a86437760cfa0bbadd5f37&amp;amp;chksm=f12402c7c6538bd1cd9ea34c5290ce61a332bbf8d1714f2edde526c8479e2976e8fed8fab9c1&amp;amp;scene=21#wechat_redirect&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;也让我们想起了一段陈年往事&lt;/span&gt;&lt;/a&gt;&lt;span&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/863c4e4982d86cb543b809d78a4f8af7557667.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;就在一年前,Stablity AI创始人Emad Mostaque曾被福布斯扒皮——&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Stable Diffusion的源代码,其实是德国慕尼黑大学的学者和初创公司Runway共同写的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;当时,他们共同推出了一个名为Latent Diffusion的开源图像生成器。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Mostaque拿了别人的作品,把自己的名字写在上面——这就是Stable Diffusion的由来。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而在「窃取」了别人的成果之后,Emad Mostaque凭借自己过人的口头本领,让Stability AI摇身一变成为估值10亿美元的初创公司。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/e330fb520d2db900cfa479efaf168f8d85786f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 966px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;那是在2021年,德国的一个研究者团队和初创公司Runway合作推出了一个名为Latent Diffusion的开源图像模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究者团队包括慕尼黑大学(LMU)和海德堡大学的学者,领导这项研究的是Björn Ommer教授。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/c6881c4355ade62f39d776750b46dafef1f389.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文地址:https://arxiv.org/pdf/2112.10752&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据悉,开始他们只用了几十个英伟达的GPU。7个月后,也即2022年6月,Mostaque向他们伸出援手,Stability AI为他们提供了所需的超算。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而出人意料的是,在8月,这个新模型被冠名为Stable Diffusion,竟然以Stability AI的名义发布了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在Stable Diffusion发布几天内,Stability AI就从两家名叫Coatue和Lightspeed的公司获得了1亿美元的投资,直接让Stability AI的估值冲破了10亿美元。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后的新闻稿中,都只说了Stable Diffusion背后的公司是Stability AI,丝毫未提德国团队以及Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Ommer教授对此当然心有不甘,他希望自己的实验室也能得到宣传,但他所在大学的新闻部门当时正在度假。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Stability的发言人Bishara则表示,公司在官网和Stable Diffusion的GitHub页面上都曾多次公开提到了LMU和Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/72cfebf21b7258e0cb5510e28b13bce0123f5c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/2113669495b50129d8473381acc4db4eec6991.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;更绝的是,在10月,Stability AI还倒打一耙,声称Runway发布的新版本的Stable Diffusion窃取了自己的知识产权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/43c09c38024a99af121447ccbd72fb0243dcd9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway创始人Cristóbal Valenzuela忍无可忍地回击道:这项技术是开源的,根本不存在侵犯版权的可能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/a14674c45e51ec357e6496bfab3b3f2a35cf6c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后,Mostaque撤回了指控,他解释,自己其实是担心Runway的模型版本缺乏护栏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;今日的删库事件,莫非和曾经这个陈年旧案有关?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但如今Runway已经删库,想要使用SD系列的开源模型,也只剩下Stability AI的HuggingFace仓库了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/16d297a82aa75e095ab601ed2a4a2344007149.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/VE3Ot1PG9xke8K89ah5Hgg&quot; target=&quot;_blank&quot;&gt;新智元&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795964.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795964.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:25:23 GMT</pubDate>
    </item>
    <item>
      <title>场景题:如何提升Kafka效率?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;场景题:如何提升Kafka效率?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:磊哥&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:14:34&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/architecture&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;架构&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;Kafka 以其高吞吐量、低延迟和可扩展性而备受青睐。无论是在实时数据分析、日志收集还是事件驱动架构中,Kafka 都扮演着关键角色。&lt;/p&gt;&lt;p&gt;但是,如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/p&gt;&lt;p&gt;那么,提升 Kafka 性能的有效手段都有哪些呢?接下来,我们一起来看。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;性能调优主要手段&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 性能调优的主要手段有以下几个:&lt;/p&gt;&lt;ol data-id=&quot;odd3d8fc-WCgCTB1Z&quot; class=&quot;list-paddingleft-1&quot;&gt;&lt;li data-id=&quot;ld70c578-8QBG1UEd&quot;&gt;分区扩展&lt;/li&gt;&lt;li data-id=&quot;ld70c578-aS74JA4E&quot;&gt;消息批发送(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-ka7YRl6k&quot;&gt;消息批获取(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-374RipOX&quot;&gt;配置调优&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CjJcWSHo&quot;&gt;JVM 调优&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/66fdd7d84fc9389ce532608058f9a7fb530247.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;1.分区扩展&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;在 Kafka 架构中,&lt;strong&gt;使用多分区(Partition)来实现数据分片功能&lt;/strong&gt;。也就是 Kafka 会将多条消息并发存储到一个主题(Topic)的多个 Broker(Kafka 服务)中的多个 Partition 中,以实现并行操作的功能,极大地提高了整体系统的读写能力,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/71b1af64644304894c7818ef426b825bacece6.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;数据分片是一种技术将大数据分割成更小、更易于管理的片段(称为“分片”),并将分片都存储在不同的服务器上,从而实现了数据的水平拆分。通过数据分片,可以有效地解决单一数据库的性能瓶颈、存储限制以及高可用性等问题。&lt;/p&gt;&lt;p&gt;因此,增加更多的 Broker,扩展更多的分区 Partition 是提升 Kafka 性能的关键,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/49798654440d7fb446a9145e052333df6daef3.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;2.消息批发送(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认是不支持批量发送消息的,然而开启批量发送消息可以提升 Kafka 整体运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量发送消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量发送消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ciIXHdc7&quot;&gt;&lt;li data-id=&quot;ld70c578-gaKK5kGG&quot;&gt;&lt;strong&gt;减少网络开销&lt;/strong&gt;:当生产者发送消息给 Kafka 时,如果每次只发送一条消息,那么就需要建立一次 TCP 连接,这涉及到三次握手的过程。而如果采用批量发送的方式,则可以在一次 TCP 连接中发送多条消息,减少了网络连接建立和断开的次数,从而降低了网络开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-VK9gAg6R&quot;&gt;&lt;strong&gt;减少 I/O 操作&lt;/strong&gt;:批量发送意味着一次写入操作可以处理更多的数据。这对于磁盘 I/O 来说是一个优势,因为一次大的写操作比多次小的写操作更高效。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-EWKlbXbY&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:由于减少了通信次数,批量发送可以提高单位时间内发送的消息数量,即提高了吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;那么,想要实现 Kafka 批量消息发送只需要正确配置以下 3 个参数即可:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-8jekjkhT&quot;&gt;&lt;li data-id=&quot;ld70c578-brlDUOAY&quot;&gt;&lt;strong&gt;batch-size&lt;/strong&gt;:定义了 Kafka 生产者尝试批量发送的消息的最大大小(以字节为单位),生产者收集到足够多的消息达到这个大小时,它会尝试发送这些消息给 Kafka Broker,默认值为 16KB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CC4vMvJ5&quot;&gt;&lt;strong&gt;buffer-memory&lt;/strong&gt;:指定了 Kafka 生产者可以用来缓冲待发送消息的总内存空间,如果生产者试图发送的消息超过了这个限制,生产者将会阻塞,直到有足够空间可用或者消息被发送出去,默认值为 32MB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-P2nJfDk6&quot;&gt;&lt;strong&gt;linger.ms&lt;/strong&gt;:生产者在尝试发送消息前等待的最长时间(以毫秒为单位)。默认情况下,linger.ms 的值为 0,这意味着立即发送。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;以上 3 个参数满足任一个都会立即(批量)发送。&lt;/p&gt;&lt;p&gt;因此我们如果需要匹配发送,主要需要调整的参数是 linger.ms,如下配置所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring:
        kafka:
        bootstrap-servers: localhost:9092 # Kafka服务器地址
        consumer:
        group-id: my-group # 消费者组ID
        auto-offset-reset: earliest # 自动重置偏移量到最早的可用消息
        key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 键的反序列化器
        value-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 值的反序列化器
        producer:
        key-serializer: org.apache.kafka.common.serialization.StringSerializer # 键的序列化器
        value-serializer: org.apache.kafka.common.serialization.StringSerializer # 值的序列化器
        batch-size: 16384
        buffer-memory: 33554432
        properties:
        linger:
        ms: 2000&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;span&gt;3.消息批获取(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认每次拉取一条消息,而使用批量获取消息可以有效提升 Kafka 运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量获取消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量获取消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-XYa5cmdP&quot;&gt;&lt;li data-id=&quot;ld70c578-G15x4M1o&quot;&gt;&lt;strong&gt;降低客户端处理开销&lt;/strong&gt;:对于客户端来说,每次处理一个消息需要进行一系列的操作,如解包、解析、处理逻辑等。如果每次只拉取一个消息,客户端会频繁地进行这些操作,带来较大的处理开销。而批量拉取消息时,客户端可以一次性处理多个消息,减少了处理单个消息的频率,从而降低了客户端的处理开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-hF7AnvqE&quot;&gt;&lt;strong&gt;减少网络往返次数&lt;/strong&gt;:每次拉取一个消息时,客户端需要与 Kafka 服务器进行多次网络往返,包括发送请求、接收响应等。这些网络往返会带来一定的延迟。而批量拉取消息时,客户端可以一次性拉取多个消息,减少了网络往返的次数,从而降低了网络延迟。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-FtNk4fmD&quot;&gt;&lt;strong&gt;优化内存使用&lt;/strong&gt;:批量拉取消息可以更好地规划和利用内存。客户端可以一次性分配足够的内存来存储批量拉取的消息,避免了频繁地分配和释放小内存块的操作。这样可以提高内存的使用效率,减少内存碎片的产生,进而提升系统的运行效率。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-wS1xQ7OW&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:批量拉取消息可以提高单位时间内处理的消息数量,从而提升了 Kafka 的吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;想要实现批量读取数据需要做以下两步调整:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-SH70BQUr&quot;&gt;&lt;li data-id=&quot;ld70c578-tOewhYas&quot;&gt;在配置文件中设置批读取:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring.kafka.listener.type=batch&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ZpnAbGJ6&quot;&gt;&lt;li data-id=&quot;ld70c578-3s0eGgTt&quot;&gt;消费者使用 List&amp;lt;ConsumerRecord&amp;gt; 接收消息,具体实现代码如下:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;@KafkaListener(topics = TOPIC)
        public void listen(List&amp;lt;ConsumerRecord&amp;lt;?, ?&amp;gt;&amp;gt; consumerRecords) {
        for (int i = 0; i &amp;lt; consumerRecords.size(); i++) {
        System.out.println(&quot;监听到消息:&quot; + consumerRecords.get(i).value());
        }
        System.out.println(&quot;------------end------------&quot;);
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上程序的执行结果如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/841e92785b5e7ff7966758dc0dee5269221c11.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;从执行结果可以看出:只有一个“end”打印,这说明 Kafka 一次拉取了一批数据,而不是一个数据,否则就会有多个“end”。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;4.配置调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;合理设置 Kafka 的配置也可以一定程度的提升 Kafka 的效率,例如以下这些配置:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-xKWbts6L&quot;&gt;&lt;li data-id=&quot;ld70c578-X2v6l7Ff&quot;&gt;&lt;strong&gt;配置文件刷盘策略&lt;/strong&gt;:调整 flush.ms 和 flush.messages 参数,控制数据何时写入磁盘。较小的值可以降低延迟,而&lt;strong&gt;较大的值可以提高吞吐量&lt;/strong&gt;。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-GrstAmDP&quot;&gt;&lt;strong&gt;网络和 IO 操作线程配置优化&lt;/strong&gt;:num.network.threads 应该设置为 CPU 核心数加 1,以充分利用硬件资源。调整 socket.send.buffer.bytes 和 socket.receive.buffer.bytes 以优化网络缓冲区大小,缓冲区越大,吞吐量也越高。&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;span&gt;5.JVM 调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;因为 Kafka 是用 Java 和 Scala 两种语言编写的,而 Java 和 Scala 都是运行在 JVM 上的,因此保证 JVM 的高效运行,设置合理的垃圾回收器,也能间接的保证 Kafka 的运行效率。例如,对于大内存机器,可以使用 G1 垃圾收集器来减少 GC 暂停时间,并为操作系统留出足够的内存用于页面缓存。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:武晓燕&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/kdgOYWJvlFbd7X-Up0jCRg&quot; target=&quot;_blank&quot;&gt;磊哥和Java&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Kafka&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Kafka&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%95%88%E7%8E%87&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;效率&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%80%A7%E8%83%BD&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;性能&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795961.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795961.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:14:34 GMT</pubDate>
    </item>
    <item>
      <title>关于AI治理策略的六个考虑</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;关于AI治理策略的六个考虑&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:Raymond&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 16:18:44&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。 &lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/39c017f55d18cff9e524013a77145538832a7a.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。&lt;/p&gt;&lt;h4&gt;要点:&lt;/h4&gt;&lt;p&gt;• 治理至关重要:如果没有适当的AI治理,公司可能会面临合规失败和失去客户信任的风险。&lt;/p&gt;&lt;p&gt;• 策略优先:一个明确的AI策略和治理框架可以在创新与混乱之间划清界限。&lt;/p&gt;&lt;p&gt;• 合规推动信任:强有力的AI治理不仅能满足监管要求,还能增强客户信任和竞争优势。&lt;/p&gt;&lt;p&gt;大多数技术的一个反复出现的趋势是,它们通常在广泛应用之前,相关法律还未完全确立。对于技术的治理——尤其是那些被广泛使用的技术——对于保护人们、公司及其数据免受滥用至关重要。&lt;/p&gt;&lt;p&gt;AI似乎也不例外,但它是“新瓶装旧酒”,还是“旧瓶装新酒”呢?&lt;/p&gt;&lt;p&gt;尽管AI已经存在了大约60年,但由于其多次的反复发展,直到最近才逐渐受到关注。自从ChatGPT于2022年底出现以来,许多公司开始开发用于各种应用的AI模型。&lt;/p&gt;&lt;p&gt;这种技术的使用可能带来许多风险,包括暴露敏感数据、违反知识产权法、产生明显错误的结果以及违反现有或正在制定的法规。因此,AI的应用必须谨慎。&lt;/p&gt;&lt;h4&gt;为何AI治理至关重要&lt;/h4&gt;&lt;p&gt;直到最近,AI几乎是数据科学家和其他数据专家的专属领域。因为数据通常只在内部用于改进产品和服务,或分析一般客户行为,因此对数据治理框架的需求并不紧迫。随着GenAI在工作场所的广泛应用,这一情况已经发生了变化。&lt;/p&gt;&lt;p&gt;如今,大多数公司都意识到,为了跟上同行的步伐,他们需要在产品或服务中引入某种形式的GenAI或大型语言模型(LLMs)——而这也伴随着必要的治理。&lt;/p&gt;&lt;p&gt;一个问题是:AI治理程序尚未形成,更不用说定型了。AI的底层技术仍在发展,这使得立法机构难以确定一个固定的合规方案。&lt;/p&gt;&lt;p&gt;但公司不能等待多年才看到最终的治理框架。相反,他们必须立即开始建立一个可行的、可辩护的、可扩展的,最终是灵活的框架,以监督和管理他们企业中的AI使用。在部署AI模型之前,公司需要充分理解这些模型在其业务背景下的生命周期以及它们的工作原理。当然,所有AI项目都应通过合规、法律和信息安全团队的常规治理审核流程。&lt;/p&gt;&lt;h4&gt;建立AI治理框架&lt;/h4&gt;&lt;p&gt;适当的数据治理涉及数据质量、数据安全、伦理使用和隐私保护等多个方面。根据你的业务和所使用数据的性质,AI治理可能比数据治理更为重要(也更为耗费资源)。&lt;/p&gt;&lt;p&gt;以数据分析为例,通常在人们做出决策和行动之前,总会有一个人来验证结果,但由于AI能够在更大规模上运作,它可以在毫秒内做出几十个预测,而无需解释。AI甚至可以在自动决策场景中被训练为自主采取行动。&lt;/p&gt;&lt;p&gt;在考虑你的AI治理模型时,可以考虑以下几个基本要点:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. 考虑使用AI的策略&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你的计划是什么?你的目标是什么?问问自己,公司是否真的有一个AI的业务案例,也就是说,嵌入在你的产品或服务中的AI是否会对你的客户产生有意义的影响?如果答案是否定的,那么可能就不值得花费精力和成本去开发。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. 制定AI使用监控政策&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;如果答案是肯定的,那么第二个考虑因素应该是制定一项政策或声明,规定AI在公司内部如何使用以及由谁使用,这个基础文件可以采用正式政策的形式,明确说明为什么使用AI、由谁使用以及用于什么目的。政策往往更具规范性和具体性,规定了技术必须——而不是应该——如何使用。你的政策还可以提及行业标准,以作为基准。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. 考虑制定AI使用指南&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;或者,你可以制定指南,传统上指南会列出推荐的使用方法和最佳实践。两种方法各有优缺点。根据你的行业、你所受的监管程度以及公司使用的数据类型(如B2C或B2B),你可以选择使用指南,以免过度限制创新或试验。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. 创建AI文档组合&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;无论你选择何种文件,目标都是创建一系列文档,尽可能为员工如何使用新技术提供指导,这将帮助他们在使用数据时,以道德和负责任的方式创建功能丰富的产品和服务。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. 建立法律合规框架&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;接下来,确保你的数据处理的法律基础是坚实的。如果你处理的是欧盟公民的数据,特别是要根据GDPR第6条的规定,为你的情况找到最合适的法律依据。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6. 确定AI决策者&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;另一个重要的工作是创建AI审批流程,包括指定决策者。&lt;/p&gt;&lt;p&gt;理想的AI治理框架应该定位在概念化与运营化阶段之间,这将确保任何为评估想法和用例而设立的团队、委员会或论坛能够采用整体性和跨职能的视角。通过这种方法,他们可以全面评估AI对你的商业模式带来的独特风险,并决定哪些举措应推进到生产阶段。&lt;/p&gt;&lt;h4&gt;为广泛的AI监督做好准备&lt;/h4&gt;&lt;p&gt;全球各地的立法者很快将要求大多数公司建立强有力的AI治理监督模型。通过采用将人权与商业洞察相结合的更广泛视角,企业可以通过增强客户信任来获得竞争优势。&lt;/p&gt;&lt;p&gt;这种以隐私为先、以业务为中心的方法使公司能够自信地开发以价值为驱动的模型,同时确保数据隐私和符合监管要求,提供超越单纯合规的战略优势。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;http://www.d1net.com/ai/industry/582047.html&quot; target=&quot;_blank&quot;&gt;企业网D1Net&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI%E6%B2%BB%E7%90%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI治理&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795955.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795955.html</guid>
      <pubDate>Fri, 30 Aug 2024 08:18:44 GMT</pubDate>
    </item>
    <item>
      <title>2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:爱吃炸鸡&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:07:16&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;高级网络犯罪分子越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;2024年上半年,尽管整体非法活动有所下降,但加密货币犯罪中的两类特定犯罪活动——被盗资金和勒索软件却在上升。报告详细分析了这些犯罪活动的趋势和背后的原因,并探讨了加密货币生态系统中的一些积极发展。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/265e45054f360db5b384725690b6b8ec88d0be.jpg&quot; style=&quot;visibility: visible; width: 615px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;关键发现&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-idce86Ri&quot;&gt;&lt;li data-id=&quot;ld70c578-5JyerKWc&quot;&gt;2024年至今,链上非法活动总量下降了近20%,表明合法活动增长速度超过了非法活动;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-koyWT2eJ&quot;&gt;尽管与去年同期相比非法交易有所下降,但两类非法活动——被盗资金和勒索软件却在增加;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-oirWd2nw&quot;&gt;被盗资金流入量几乎翻了一番,从8.57亿美元增至15.8亿美元,勒索软件流入量增长了约2%,从4.491亿美元增至4.598亿美元;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-W8sdikJS&quot;&gt;每次盗窃事件中被盗的加密货币平均金额增加了近80%,加密货币攻击者似乎又回到了他们的目标——中心化交易所,而不是优先考虑DeFi协议。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-MvKjyFPH&quot;&gt;高级网络犯罪分子,包括与朝鲜有关的IT工作者,越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;勒索软件研究发现&lt;/h4&gt;&lt;p&gt;2024年有望成为勒索软件收入最高的一年,这在很大程度上归功于执行较少高调攻击但收取大额支付的勒索软件变种(行业称为“大猎物狩猎”)。2024年记录了有史以来最大的勒索软件支付,大约7500万美元支付给了Dark Angels勒索软件组织。&lt;/p&gt;&lt;p&gt;针对最严重勒索软件变种的中位数勒索支付从2023年初的近20万美元飙升至2024年6月中旬的150万美元,表明这些变种正在优先针对可能因资金充足和系统重要性而更有可能支付高额赎金的大型企业和关键基础设施提供商。&lt;/p&gt;&lt;p&gt;由于最近的执法行动破坏了最大的参与者,如ALPHV/BlackCat和LockBit,勒索软件生态系统经历了一些分裂。在这些破坏之后,一些附属机构迁移到效果较差的变种或推出了自己的变种。&lt;/p&gt;&lt;h4&gt;勒索软件与加密货币&lt;/h4&gt;&lt;p&gt;加密货币生态系统在2024年见证了一些积极的发展。在许多方面,加密货币继续获得主流接受,紧随美国批准现货比特币和以太坊交易型开放式指数基金(ETF)以及财务会计标准委员会(FASB)的公平会计规则的修订之后。但随着任何新技术的采用,合法和非法行为者都会增长。尽管与前几年相比,今年的非法活动有所下降,但特定网络犯罪相关实体的加密货币流入显示出一些令人担忧的趋势。&lt;/p&gt;&lt;p&gt;如下图所示,2024年流入合法服务的资金是自2021年上一次牛市高峰以来最高的,这是一个令人鼓舞的迹象,表明加密货币在全球范围内的持续采用。流入风险服务(主要由混合器和不收集KYC信息的交易所组成)的资金趋势高于去年同期。与此同时,非法活动的总体下降了19.6%,从209亿美元降至167亿美元,表明合法活动的增长速度超过了链上非法活动。这些非法数字是基于研究机构今天识别的非法地址流入量的下限估计。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/4261db64846d630b4e5742079f3f503889af08.jpg&quot; alt=&quot;&quot; title=&quot;1723952814_66c16eae5b641ee1d2632.png!small?1723952816009&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;Chainalysis开始将疑似非法活动纳入某些犯罪类型的总估计中,基于Chainalysis Signals数据。此前,估计只包括与Chainalysis有支持文件证明属于某个非法实体的地址相关的总数。Signals利用链上数据和启发式方法来识别特定未知地址或地址簇的疑似类别,置信度从可能到几乎确定不等。Signals的引入不仅随着时间的推移增加了我们对某些类别非法活动的估计,而且还使我们能够完善前几年的估计。&lt;/p&gt;&lt;p&gt;尽管与去年同期相比非法交易总体下降,但被盗资金和勒索软件这两类非法活动却有所上升。通过7月底的年增长来看,加密货币抢劫中被盗资金增加了近一倍,从8.57亿美元增至15.8亿美元。2023年6月底的勒索软件流入总计为4.491亿美元。今年同期,勒索软件流入量已超过4.598亿美元,这表明我们可能正面临另一个勒索软件创纪录的年份。&lt;/p&gt;&lt;h4&gt;攻击者瞄准中心化交易所&lt;/h4&gt;&lt;p&gt;2023年相比2022年加密货币被盗价值下降50%,而2024年黑客活动又出现了复苏,从被盗金额和黑客事件的数量可以看出这一点。如下图所示,截至7月底,今年累计被盗金额已超过15.8亿美元,比去年同期增长了84.4%。有趣的是,2024年的黑客事件数量仅比2023年略有增加,同比增长了2.76%。每次事件中被盗的平均金额增加了79.46%,从2023年1月至7月的每次事件590万美元增加到2024年迄今为止的每次事件1060万美元。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/b82e21978123a9c7ef36797e9d963f629e0b3c.jpg&quot; alt=&quot;&quot; title=&quot;1723952836_66c16ec43a5bcb5502201.png!small?1723952837726&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;被盗金额的变化很大程度上归因于资产价格的上涨。例如,比特币的价格从2023年前七个月的平均价格26141美元上涨到今年7月的平均价格60091美元,涨幅达130%。&lt;/p&gt;&lt;p&gt;Chainalysis跟踪的一个黑客指标是黑客事件发生后被盗资金流动的交易量。这可以作为被盗资产的一个代理,因为很多时候被黑客攻击的服务不会公开报告被盗的具体细节。2024年与被盗资金活动相关的BTC交易量占这些流动的40%。这种模式似乎是由被攻击实体类型的变化所驱动的,2024年中心化服务被黑客攻击以获取高额资金。特别是像DMM这样的中心化交易所,其损失了3.05亿美元。在DMM黑客事件中,大约19%的被盗金额在2024年被盗,据报道大约有4500 BTC被盗。&lt;/p&gt;&lt;p&gt;加密货币攻击者似乎在四年专注于去中心化对手之后,再次回归他们的老路,瞄准中心化交易所,后者通常不交易比特币。尽管对DeFi服务——特别是跨链桥接的攻击在2022年达到顶峰,但攻击者在中心化交易所增加安全投资后,将注意力转向了更新、更脆弱的组织。现在包括与朝鲜有关的攻击者在内的黑客,正在利用越来越复杂的社会工程学策略,例如申请IT工作,通过渗透中心化交易所来窃取加密货币。&lt;/p&gt;&lt;h4&gt;2024年有望成为勒索软件收入最高的一年&lt;/h4&gt;&lt;p&gt;2023年勒索软件支付金额创下新高,超过10亿美元。这些巨额支付来自一些高调、破坏性的攻击,如Cl0p对Move&amp;nbsp;IT零日的利用以及ALPHV/BlackCat勒索软件团伙对凯撒酒店物业的利用,导致该公司支付了1500万美元的赎金。尽管针对勒索软件的恶意部署和组织基础设施的主要执法行动,依旧出现了如此多的赎金支付,截至2023年6月底的累计勒索软件支付总额约为4.491亿美元。今年同期,我们记录的勒索软件支付总额为4.598亿美元,这使2024年坚定地走上了创纪录的道路。&lt;/p&gt;&lt;p&gt;Kiva咨询公司的总法律顾问Andrew Davis表示,尽管对LockBit和ALPHV/BlackCat的打击持续加大,但总体勒索软件活动依旧相对稳定。“无论是这些众所周知的威胁行为者的前附属机构,还是新的初创企业,大量新的勒索软件团伙加入了这场混战,展示了他们进行攻击的新方法和技巧,如扩大初始访问和横向移动的方法。”&lt;/p&gt;&lt;p&gt;如下图所示,勒索软件攻击也变得越来越严重。我们观察到的一个显著变化是每年最大赎金支付的飙升。到目前为止,2024年出现了有史以来最大的单笔支付,约为7500万美元,支付给了名为Dark Angels的勒索软件团伙。这种最大支付金额的增长也代表了从2023年到今年的最大支付金额增长了96%,从2022年的最大支付金额增长了335%。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/c5f1df74092b54d61db7948cd898b26295bdfb.jpg&quot; alt=&quot;&quot; title=&quot;1723952869_66c16ee57189b9bd2742c.png!small?1723952870707&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;如果迅速增加的最大支付金额还不够糟糕的话,这种每年的异常值趋势实际上还伴随着中位数支付的增长趋势。从2023年第一周的中位数支付金额198939美元增加到2024年6月中旬的中位数支付金额150万美元。这代表了在此期间最严重株系支付的典型赎金规模的7.9倍增长,自2021年初以来增长了近1200倍。这种模式可能表明,这些勒索软件组织开始瞄准大型企业和关键基础设施提供商,这些目标可能因为其雄厚的资金和系统重要性而更支付高额赎金。&lt;/p&gt;&lt;p&gt;勒索软件的另一个趋势是攻击也变得更加频繁,根据eCrime.ch的数据泄露网站统计,2024年到目前为止至少增加了10%的攻击。作为勒索软件事件的衡量标准,勒索软件泄露网站的帖子同比增加了10%。然而链上测量的总勒索软件支付事件同比下降了27.29%。将这两个趋势结合起来看,尽管今年迄今为止的攻击可能有所增加,但支付率却同比下降了。这对生态系统来说是一个积极的信号,表明受害者可能准备得更好,不需要支付赎金。&lt;/p&gt;&lt;p&gt;Davis说:“Kivu参与协助受害组织的事务中,大约有65%在没有支付赎金的情况下得到解决,显示出受影响组织的韧性和没有必要支付攻击者的积极趋势。”&lt;/p&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动继续呈下降趋势,但两类加密货币犯罪似乎正在逆势而上:被盗资金和勒索软件。这两种犯罪类型通常由具有某些共同特征的参与者实施。它们通常是利用先进网络基础设施的有组织团体。这些参与者以精心策划的社会工程学策略而闻名,他们利用这些策略闯入加密业务,窃取加密货币资产,并利用专家级洗钱技术试图在资金被查封前套现。&lt;/p&gt;&lt;p&gt;打击网络犯罪的关键是破坏其供应链,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和套现点。由于加密货币盗窃和勒索软件的运营几乎完全在区块链上进行,配备正确解决方案的执法部门可以通过追踪资金来更好地理解和破坏这些参与者的运营。&lt;/p&gt;&lt;p&gt;eCrime.ch的研究员Corsin Camichel指出,包括Operation Cronos、Operation Duck Hunt、Operation Endgame等打击行动和执法行动对于遏制这些活动并表明犯罪行为将会有后果至关重要。&lt;/p&gt;&lt;h4&gt;结论&lt;/h4&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动总体呈下降趋势,但被盗资金和勒索软件这两类加密货币犯罪似乎正在逆势而上。这些犯罪类型通常由具有某些共同特征的行为者实施,他们通常是利用复杂的网络基础设施的有组织的团体。在被盗资金的情况下,与朝鲜有关的黑客组织是一些最大抢劫案的幕后黑手。这些行为者以计算出的社会工程策略而闻名,他们闯入加密业务,窃取加密资产,并利用专业的洗钱技术,在资金被查封前尝试变现。&lt;/p&gt;&lt;p&gt;报告还强调了通过跟踪资金流向来破坏网络犯罪供应链的重要性,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和提现点。由于加密货币抢劫和勒索软件的操作几乎完全在区块链上进行,执法部门配备了正确的解决方案,可以追踪资金流向,更好地理解和破坏这些行为者的操作。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;https://www.chainalysis.com/blog/2024-crypto-crime-mid-year-update-part-1/&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.freebuf.com/articles/neopoints/408911.html&quot; target=&quot;_blank&quot;&gt;FreeBuf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86%E8%B4%A7%E5%B8%81&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密货币&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8B%92%E7%B4%A2%E8%BD%AF%E4%BB%B6&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;勒索软件&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795943.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795943.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:07:16 GMT</pubDate>
    </item>
    <item>
      <title>别让加密难倒你:Python爬虫攻克加密网站的实战教程</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;别让加密难倒你:Python爬虫攻克加密网站的实战教程&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:攻城狮成长日记&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:03:43&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;今天有个朋友向我求助,希望我帮他爬取一个网站上的内容。网站内容如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/c50ccd18206254fb89d65784b20c4be5d54d15.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;aHR0cHM6Ly93d3cuY2NwcmVjLmNvbS9uYXZDcXpyLyMvCg==&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;打开上述网址,进入开发者模式,这些数据的请求接口,正常逻辑是通过搜索页面上内容进行锁定请求接口。但是,进行搜索时,发现什么都搜索不到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/b8452de03a8013533bd2092de32feb0f9d2ecc.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上图发现,这些数据只请求了一个接口,当我点击负载和响应这两个标签,发现数据是被加密了,所以,我们搜索不了页面的内容。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/a58917d366aae0842e762364be32ac734ae281.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;负载加密内容&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/44933d7925dd6ea07e8703a9812235aea04f47.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;响应加密内容&lt;/p&gt;&lt;h4&gt;浏览器为啥是明文?&lt;/h4&gt;&lt;p&gt;这时相信小伙伴,心中都有一个疑问浏览器为啥是明文?&amp;nbsp;&amp;nbsp;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/994e234466fe0e9c5b4134d8f2deff02c58e56.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;如何定位到加密资源文件&lt;/h4&gt;&lt;p&gt;通过XHR/提取断点,该方法是通过匹配URL包括请求路径关键字进行断点,具体配置如下图:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/0126a7d47053b9085f78044456dc78f9c939b3.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;这时我们重新刷新网页,如下图所示,网站就成功进入我们上一步设置的断点中。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/233ebba10d3164e2607137dc8bb9356d16c8fd.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;其中,h就是加密后的请求体参数,然后我们从调用堆栈中一步步往前推。至于如何找呢?这里是有一个技巧的,我们需要找到前一步请求体还没加密,后一步请求体就加密成功了。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/f1c250e12f4ee5490411724a2f08181f6530e6.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密后&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/f8b9b8d00ff393c197457695b6b2539406a6f1.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密前&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其中上图o就是请求体加密之前的参数,s就是加密后的参数。chunk-common.a25fd3ce.js就是进行加密的js。通过点击堆栈的js名称就可以定位到对应的地方。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;扣取代码&lt;/h4&gt;&lt;p&gt;经过上一步分析,我们知道o就是加密之前的参数,就在js代码找o定义的位置,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/04c5f1831bc7855e5d5503d9192f421f35e032.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;下面代码就是请求体的参数,通过上述代码发现id是通过uuid方法生成的。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;{
        &quot;id&quot;: &quot;rtmhwib79r4ytdgn&quot;,
        &quot;projectKey&quot;: &quot;honsan_cloud_ccprec&quot;,
        &quot;clientKey&quot;: &quot;rtmhwialwggc91l6&quot;,
        &quot;token&quot;: null,
        &quot;clientDailyData&quot;: {},
        &quot;acts&quot;: [
        {
        &quot;id&quot;: &quot;rtmhwib65mon96h1&quot;,
        &quot;fullPath&quot;: &quot;/cloud.sys.tomcatV11/api/v1/template/getPages&quot;,
        &quot;args&quot;: [
        {
        &quot;yuPiLou&quot;: {
        &quot;templateId&quot;: &quot;32d3044760964ed8927bad49e545ba4b&quot;,
        &quot;pageNo&quot;: 1,
        &quot;pageSize&quot;: 20,
        &quot;where&quot;: {
        &quot;projecttype&quot;: &quot;PG3&quot;,
        &quot;state&quot;: &quot;42&quot;
        }
        }
        }
        ]
        }
        ]
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接着我们需求扣取这个uuid方法。通过鼠标悬停在这个方法上面,就会弹出面板,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/417aa323287dc248757500a2fc7e6a3a5ec685.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;点击后就会调到uuid方法定义的地方,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/82524359223b2526ef327452a8d5890ef12adb.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把这段代码扣取下面,如下所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;uuid = function (t, n) {
        void 0 === t &amp;amp;&amp;amp; (t = 16),
        void 0 === n &amp;amp;&amp;amp; (n = !1),
        !n &amp;amp;&amp;amp; t &amp;lt; 16 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=false 时 len 不能小于 16&quot;),
        t = 16),
        n &amp;amp;&amp;amp; t &amp;lt; 12 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=true 时 len 不能小于 12&quot;),
        t = 12);
        var i = ((new Date).getTime() + 1e14).toString();
        return i += (&quot;000&quot; + (++e.uuidCount).toString()).substr(-3, 3),
        i = n ? parseInt(i).to62() : parseInt(i).toString(36),
        i += randomStr(t),
        i = i.substr(0, t),
        i
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;把this关键的全部删除它。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;然后通过node进行运行,如下图所示报错了e没有定义。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/69c25ca2798ba18552e454c2c76fded67b07a7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;于是,我们再去源码中找改值是什么?通过选中该值,经过几次的确认。该值是NaN,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/13d6772044a54072e200672b68b6abc9aeb9ed.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;我们再自己扣取的代码写死它,再次运行。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/f17578d96dfd29d745f5698a9b8daed2b8d682.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;发现这是报randomStr没有定义,我们再去源码找这个方法进行补环境。通过搜索发现了randomStr方法,该方法有调用了random。于是我们两个方法一起扣取下来。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/b4c3c9a90ed2a54d506309f6a58a2e8a485691.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;再次运行,没有报错了,成功打印了uuid,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/d5d129863959cb56eaf384b4dd5e912141224b.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把之前扣取下来的请求体,id字段固定值替换成uuid函数生成的动态值,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/514cfe589638a1e08bf9414d94ba495cdf0475.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;最重要的一步就是扣取加密的JS代码啦,&amp;nbsp;在请求体参数附近查看this.aes.encode(a)加密方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/49fcbd651a85c280b9a073694aea25510ec648.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上面介绍的方面快速定位到这个加密的方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/4388efa40fa240126292649bf2d62ce026ca53.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;该方法又调用了另外一个方法this.encryptCode,通过关键搜索也找到了encryptCode方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/822fd4069f52dfedc375065822751c973da87a.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;加密方法&lt;/p&gt;&lt;p&gt;按照编程习惯,附近也会有对应的解密方法的,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/69c057124949b1e5c08186d3cb64e75052034c.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;解密方法&lt;/p&gt;&lt;p&gt;现在加密和解密的方法都找到了,我们把它全部扣取下面进行调试,发现缺什么方法再进行补。重新定义一个方法生成加密请求头,后续让python调用这个方法并传入分页参数。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/b3c8bc592bcc125e9d9120518b3b57023f1ee2.webp&quot; style=&quot;width: 854px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;测试该方法是否能正常生成加密请求头,执行如下命令:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;console.log(encrypt())&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行上述方法后,输入如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/725c74941411fa599f56442715aca852accd35.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;通过python模拟请求&lt;/h4&gt;&lt;p&gt;这里介绍一个非常快捷的方式用python模拟一个浏览器请求,首先我们先在开发者模式选择这条请求,然后右击选择**将所有列表复制为cURL(Bash)**,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/749729a16cc0c8d5f256670c41f85157f09c2e.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,来的这个工具网站[1],粘贴刚才复制的cURL信息,就可以根据自己喜欢的编程语言生成模拟浏览器请求的代码,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/1584af686dbc260a063323cf1c711a93d15fd4.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,把生成的代码拷贝下来,进行修改。通过python的第三方库execjs调用js代码并执行对应的方法。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;jscode=open(&quot;./test.js&quot;,&#39;r&#39;,encoding=&#39;utf-8&#39;).read()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;以读的模式打开test.js并赋值给jscode&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;data = execjs.compile(jscode).call(&quot;encrypt&quot;,page)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;通过execjs调用jscode对象,并通过call方法调用encrypt加密方法,并传入分页参数page。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;下图是python中的完整代码:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/c49bc9600825a5a353b4457c482567b0786035.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;执行上述代码后,成功获取网站的数据如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/895d6c029de42dcdc7e07182a251b1be6deb2f.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;遇到的问题&lt;/h4&gt;&lt;p&gt;在python中使用execjs库,出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 244: illegal multibyte sequence,一般遇见编码问题先看看代码里写没写encoding=&#39;utf-8&#39;,没写的话写加上试试。加了也不行。通过在python代码中加入如下代码:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import subprocess
        from functools import partial
        subprocess.Popen = partial(subprocess.Popen, encoding=&quot;utf-8&quot;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4&gt;脚本获取方式&lt;/h4&gt;&lt;p&gt;上述脚本已经上传上传到gitee,有需要的小伙伴可以自行获取。gitee上的仓库主要是分享一些工作中常用的脚本。小伙伴可以frok或者watch仓库,这样有更新可以及时关注到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/8484a7822421cb494c560514d19112a4f2d7c7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;仓库地址:https://gitee.com/didiplus/script&lt;/p&gt;&lt;p&gt;工具网站:&amp;nbsp;https://curlconverter.com/&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MjM5OTc5MjM4Nw==&amp;amp;mid=2457381767&amp;amp;idx=1&amp;amp;sn=09cd6a68fc56547e2dcc62936ebd90b5&amp;amp;chksm=b17eee44751306601f52de7bf8b56deffcbdf3b1a076a6f2dbed742139d7e22870b77cc95abd&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0830EIoSh7cUeOMxdM8v93Fa&amp;amp;sharer_shareinfo=dc846dfbefb8eab3b644a85e5ccb2e52&amp;amp;sharer_shareinfo_first=dc846dfbefb8eab3b644a85e5ccb2e52#rd&quot; target=&quot;_blank&quot;&gt;攻城狮成长日记&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Python&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Python&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%88%AC%E8%99%AB&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;爬虫&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795942.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795942.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:03:43 GMT</pubDate>
    </item>
    <item>
      <title>一周打完1000场官司,中科院发布首个AI法庭AgentCourt!</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;一周打完1000场官司,中科院发布首个AI法庭AgentCourt!&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 14:38:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;在人工智能重塑各个行业的今天,法律界也迎来了前所未有的变革。传统的法律实践面临着效率低下、成本高昂等挑战,而AI技术的出现为解决这些问题提供了新的可能。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;从最初斯坦福小镇火遍全网,25个由大语言模型(LLMs)驱动的智能体生活交友,打开了多Agent新视角。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而现在,AI法庭也来了!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最近,来自中科院深圳先进研究院的研究团队开发了一个名为AgentCourt的模拟智能法庭,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;它是一个基于大语言模型(LLMs)的法庭模拟系统,旨在通过AI驱动的虚拟法庭来革新法律教育、案例分析和法律研究。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;te

lib/routes/51cto/recommend.ts Outdated Show resolved Hide resolved
lib/routes/51cto/recommend.ts Outdated Show resolved Hide resolved
lib/routes/51cto/recommend.ts Outdated Show resolved Hide resolved
lib/routes/51cto/recommend.ts Outdated Show resolved Hide resolved
lib/routes/51cto/recommend.ts Outdated Show resolved Hide resolved
Copy link
Contributor

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Fri, 30 Aug 2024 17:05:53 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>用「图灵测试」检验AI尤其是大语言模型,真的科学吗?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;用「图灵测试」检验AI尤其是大语言模型,真的科学吗?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:机器之心&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:32:30&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;当前的大型语言模型似乎能够通过一些公开的图灵测试。我们该如何衡量它们是否像人一样聪明呢?&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在发布后的近两年时间里,ChatGPT 表现出了一些非常类似人类的行为,比如通过律师资格考试。这让一些人怀疑,计算机的智力水平是否正在接近人类。大多数计算机科学家认为,机器的智力水平还不能与人类相提并论,但他们还没有就如何衡量智力或具体衡量什么达成共识。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;检验机器智能的经典实验是图灵测试,由艾伦・图灵在其 1950 年发表的论文《Computing Machinery and Intelligence》中提出。图灵认为,如果计算机能让与之进行打字对话的人相信它是人类,这可能就是智能的标志。大型语言模型(LLM),如 GPT,擅长像人一样说话,但尚未令人信服地通过图灵测试。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/910b69913d4854a394b038b1bbbb2c04265523.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 925px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;2023 年,加州大学圣迭戈分校(UCSD)的研究人员公开进行了一次图灵测试,目的是比较最新的 LLM 与 20 世纪 60 年代开发的聊天机器人 Eliza 的表现。在律师资格考试中获得高分的 GPT-4 表现相当出色,在 41% 的游戏中,评委认为它与人类无异。而它的前身 GPT-3.5 只通过了 14% 的游戏,低于 Eliza 的 27%。人类在 63% 的游戏中通过(被判定为人类)。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/659530784c456c683af9518f61ec2f110e97f4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #888888;&quot;&gt;论文链接:https://arxiv.org/pdf/2310.20216v1&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;负责这项实验的 UCSD 认知科学博士生 Cameron Jones 说,人类得分如此之低并不奇怪。这是因为玩家预计模型会表现出色,所以他们更容易认为人类只是一个听起来像人类的模型。Jones 说,目前还不清楚聊天机器人必须达到多少分才能赢得游戏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;图灵测试可用于检查客服聊天机器人是否以人们乐于接受的方式与人互动,从而展示 Jones 所说的灵活的社交智能。不过,它能否识别出更通用的智能还很难说。Jones 说:「我们对什么是人类的智能还不甚了解。如果我们能更快地通过模型解决这个问题,我会感到很惊讶。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;圣塔菲研究所复杂性学教授 Melanie Mitchell 说:「我认为图灵测试的整个概念都被过于字面化了。」她认为,图灵提出的「模仿游戏」是一种思考机器智能可能是什么样子的方法,而不是一种定义明确的测试。「人们轻率地使用这个术语,说大型语言模型通过了图灵测试,而事实上它们并没有通过测试。」&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;新的测试&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,如果图灵测试不能可靠地评估机器智能,那就提出了一个问题:什么方法可以?普林斯顿大学心理学家 Philip Johnson-Laird 和德国开姆尼茨工业大学预测分析学教授 Marco Ragni 在 2023 年 11 月发表在《智能计算》杂志上的一篇论文中提出了一个不同的测试方法:他们建议把模型当作心理实验的参与者,看看它能否理解自己的推理过程。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,他们会向一个模型提出这样的问题:「如果 Ann 很聪明,那么她是聪明还是富有,或者两者都是?」虽然根据逻辑规则,可以推断出安是聪明人、富人或两者都是,但大多数人类都会拒绝这个推断,因为设定中没有任何东西表明她可能是富人。如果模型也拒绝了这一推断,那么它的行为就和人类一样,研究人员就会进入下一步,要求机器解释其推理。如果它给出的理由与人类相似,第三步就是检查源代码中模拟人类表现的组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这些组件可能包括一个快速推理系统、另一个更深思熟虑的推理系统,以及一个根据上下文改变 「或」等词的解释的系统。研究人员认为,如果模型通过了所有这些测试,就可以认为它模拟了人类智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;英国考文垂大学研究机器智能并进行过图灵测试的计算机教授 Huma Shah 说,Johnson-Laird 和 Ragni 的方法可能确实会提供一些有趣的见解,但质疑一个模型的推理能力并不是什么新鲜事。「图灵测试允许这种逻辑质疑,」她说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Shah 还表示,试图测试智力的麻烦在于,这首先取决于人们如何定义智力。是模式识别能力、创新能力,还是创造音乐或喜剧等创意的能力?「因此,如果我们没有就人工智能中的『I』达成一致,那么我们怎么能建立通用人工智能(AGI)呢?」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;谷歌的软件工程师和人工智能专家 Francois Chollet 则认为图灵测试并不是特别有用。他说,一个好的测试应该有一个确切的、形式化的目标,并且应该衡量一个系统有多接近这个目标。他指出:「图灵测试并没有做到这些。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说,LLM 在图灵测试中的表现只能说明他们擅长使用语言,而这种技能完全来自于对大量数据的记忆。他认为,真正的智能并不在于掌握某项技能,而在于把学到的知识运用到新的、不同的情境中。「LLM 百分之百都是记忆。他们没有智能。他们没有适应能力。」Chollet 说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在他看来,智力是一种有效获得新技能的能力,而这些技能是训练过程中没有准备好的,目的是完成与系统之前所见过的任务差异足够大的任务。人类终其一生都在与世界互动,本质上是在进行实验,以便建立一个反映世界如何运行的模型。这样当他们遇到新情况时,就能学会如何处理。新技能的范围越广,计算机就越接近实现通用人工智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说:「如果你能让学习过程像人类大脑一样高效地处理信息,那么你就拥有了 AGI。」到目前为止,机器的学习效率远远落后于人脑,大约比人脑低 1 万倍。例如,计算机需要数百万张图片才能学会识别猫的图片,而人类只需一两个例子就能学会识别猫。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了测试他定义的智力,Chollet 开发了抽象与推理语料库(ARC)。ARC 的挑战是通过基本的积木,如形状或大小等简单概念来完成的。这些积木用于创建任务,如按大小对物体进行分类或补全对称图案。测试对象会看到三个示例,他们应该能够识别目标并完成任务。Chollet 说,最好的 AI 大约有 30% 的时间能够实现目标,而人类则有 80% 的时间能够做到。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/36a718b005d93454b649833005443f578ce377.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;项目链接:https://github.com/fchollet/ARC-AGI&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;每项任务都不同于测试对象以前见过的任何任务,因此死记硬背无济于事。他说:「这是一场无法练习的游戏。当 GPT-4 通过律师资格考试时,很可能是因为它见过足够多与考试相似的例子,所以它能给出合理的答案,而不需要对法律有任何内在的理解。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「这不是一个完美的测试。它有很多局限性和缺陷,」Chollet 说。例如,任务中存在足够多的冗余,在举出足够多的例子后,测试对象可能会对答案做出有根据的猜测。不过,他说,它的基本思想是可靠的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;前面提到的圣塔菲研究所复杂性学教授 Melanie Mitchell 认为,要想获得类似人类的通用智能,就必须有能力完成远远超出训练数据的任务。她和她的小组提出了 ARC 的修订版,围绕基本概念组织任务,例如一物在另一物之上,或一物在另一物之内。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;ConceptARC 的理念是测试计算机解决方案的稳健性,方法是让计算机推导出一个概念的规则,然后将该概念应用到新任务中。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/810c71924e6ccc5d2ba080b078c8356204404c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文链接:https://arxiv.org/pdf/2305.07141&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,她可能会向人工智能展示一个网格,在这个网格中,黄色方格位于蓝色方格之上,而这个蓝色方格又位于黄色方格之上。接着可能是一个红色圆圈在一个绿色圆圈上面,然后又换成一个绿色圆圈在一个红色圆圈上面。人类应该很容易理解的概念是,颜色在垂直位置上互换。然后,计算机必须将这一规则应用到一对新的图形中。Mitchell 说,这些任务对人类来说很容易,但对机器来说似乎仍然非常具有挑战性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Mitchell 说,在某些情况下,比如试图在海量数据中做出发现,计算机最好有自己的抽象方法。但在与人交互的情况下,例如驾驶汽车,以人类的方式理解世界就非常重要。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「我不认为智能是全有或全无。它是一个范围,计算机做的某些事情是智能的,」Mitchell 说。「如果你想谈论完全的、人类水平的智能,我会说我们还有些遥远,因为人类水平的智能有许多方面是我们看不到的。」&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/Ku7OOWCzEXq8fA_y8M5KcQ&quot; target=&quot;_blank&quot;&gt;机器之心&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%A8%A1%E5%9E%8B&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;模型&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795968.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795968.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:32:30 GMT</pubDate>
    </item>
    <item>
      <title>突发!Runway一夜删库跑路,HuggingFace已清空</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;突发!Runway一夜删库跑路,HuggingFace已清空&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:25:23&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;活久见,Runway一夜间清空HuggingFace和GitHub,直接跑路了?很多人猜测,此事与版权纠纷有关,这就翻出了Runway和Stability AI之间的一段陈年旧案。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;一夜之间,Runaway竟突然删库,跑路了?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/f559e0f54256b8a36b681420113737ed4df82a.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway的官方推特账号上还在周二发布了新帖,在多伦多、洛杉矶和墨尔本等城市组织社区见面会。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/5293df224771f994b6b8549530ea1620080622.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;6月还发布了「王者归来」级别的Gen-3模型,而且7月就已经进入内测阶段。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/e10963d32d34c113917319feee1424fb82c0b4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但目前的HuggingFace上,Runway已经「人去楼空」了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;主页直接挑明——这个页面以后就不维护啦。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/47e3dbe73e84cc3e835510781bdf6949774617.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 929px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;然后,甩出了这样一个链接:https://huggingface.co/models&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;意思大概就是——我们删库了,之前的Stable Diffusion不可用了。想要找生成模型,那就去别家看看吧。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/27bcedb307c30e94fc40783b0754089f0e11b3.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;GitHub里的Stable Diffusion项目,果然也404了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/c93173471f41239e6b3873f0913215a649e675.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 994px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/71432b2137e1de97fe0028e6ce5be13168fe2f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但主页里还是有一些内容的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/18ad93a05fb6ce5d35f6896bbfd11b78d7ee2d.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这种「手起刀落」、突然删库的做法是开发者最不愿见到的了,有网友表示:我整个项目都要依靠SD 1.5,你们删库让我怎么办?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/d904b3295cc0a2b6866758d3344238d759ad77.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然代码仓库已经删干净了,但公司的官网还能正常响应。不禁让人疑惑:Runway究竟出什么事了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;模型被曝侵权?&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然具体删库原因未知,但或许可能与Stable Diffusion 1.5曾被曝出侵权有关。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/8933be872be1c0cbbc7198e91b4d1132d359e9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在一年以前,由艺术家Sarah Andersen、Kelly McKernan、Karla Ortiz三人发起诉讼,称Stability AI、Midjourney、Runway三家公司侵犯了版权问题,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,却在10月,被法官驳回了诉求。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此后,又有后继的艺术家、摄影师们,加入了投诉阵列。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在新的诉讼中,他们称Runway AI与Stability AI合作训练的Stable Diffusion,为AI能力发展做出了贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但Runway AI被指控,使用了LAION-5B数据集中受版权保护的作品,来训练AI模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/77e4d0766994afe8e5a50210e603c5f15d1f64.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据称,这些模型随后通过Runway AI平台分发,用户可在平台上生成,能够可能复制原告风格的新图像,从而侵犯了许多人的版权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,Runway在备案文件中称:&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;text-align: justify; margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;&quot;&gt;&lt;p&gt;&lt;span&gt;首先,原告必须依靠这些论文,声称模型可以「存储」训练图像这一事实表明,他们的理论是没有价值的。这说明,原告无法从Stable Diffusion中提取出自己作品的任何「存储」副本,尽管有足够的机会这样做。显然,原告的论点是站不住脚的。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此前,Runway在HuggingFace上开源了Stable Diffusion 1.5。但随后就因侵犯知识版权,被要求删除。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;网友们震惊地猜测,整个组织已经被清空了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;隔壁家CEO的黑历史&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;提到Runway的最出圈模型——Stable Diffusion系列,&lt;/span&gt;&lt;a href=&quot;http://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&amp;amp;mid=2652337718&amp;amp;idx=2&amp;amp;sn=50c3353736a86437760cfa0bbadd5f37&amp;amp;chksm=f12402c7c6538bd1cd9ea34c5290ce61a332bbf8d1714f2edde526c8479e2976e8fed8fab9c1&amp;amp;scene=21#wechat_redirect&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;也让我们想起了一段陈年往事&lt;/span&gt;&lt;/a&gt;&lt;span&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/863c4e4982d86cb543b809d78a4f8af7557667.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;就在一年前,Stablity AI创始人Emad Mostaque曾被福布斯扒皮——&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Stable Diffusion的源代码,其实是德国慕尼黑大学的学者和初创公司Runway共同写的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;当时,他们共同推出了一个名为Latent Diffusion的开源图像生成器。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Mostaque拿了别人的作品,把自己的名字写在上面——这就是Stable Diffusion的由来。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而在「窃取」了别人的成果之后,Emad Mostaque凭借自己过人的口头本领,让Stability AI摇身一变成为估值10亿美元的初创公司。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/e330fb520d2db900cfa479efaf168f8d85786f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 966px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;那是在2021年,德国的一个研究者团队和初创公司Runway合作推出了一个名为Latent Diffusion的开源图像模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究者团队包括慕尼黑大学(LMU)和海德堡大学的学者,领导这项研究的是Björn Ommer教授。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/c6881c4355ade62f39d776750b46dafef1f389.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文地址:https://arxiv.org/pdf/2112.10752&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据悉,开始他们只用了几十个英伟达的GPU。7个月后,也即2022年6月,Mostaque向他们伸出援手,Stability AI为他们提供了所需的超算。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而出人意料的是,在8月,这个新模型被冠名为Stable Diffusion,竟然以Stability AI的名义发布了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在Stable Diffusion发布几天内,Stability AI就从两家名叫Coatue和Lightspeed的公司获得了1亿美元的投资,直接让Stability AI的估值冲破了10亿美元。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后的新闻稿中,都只说了Stable Diffusion背后的公司是Stability AI,丝毫未提德国团队以及Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Ommer教授对此当然心有不甘,他希望自己的实验室也能得到宣传,但他所在大学的新闻部门当时正在度假。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Stability的发言人Bishara则表示,公司在官网和Stable Diffusion的GitHub页面上都曾多次公开提到了LMU和Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/72cfebf21b7258e0cb5510e28b13bce0123f5c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/2113669495b50129d8473381acc4db4eec6991.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;更绝的是,在10月,Stability AI还倒打一耙,声称Runway发布的新版本的Stable Diffusion窃取了自己的知识产权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/43c09c38024a99af121447ccbd72fb0243dcd9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway创始人Cristóbal Valenzuela忍无可忍地回击道:这项技术是开源的,根本不存在侵犯版权的可能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/a14674c45e51ec357e6496bfab3b3f2a35cf6c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后,Mostaque撤回了指控,他解释,自己其实是担心Runway的模型版本缺乏护栏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;今日的删库事件,莫非和曾经这个陈年旧案有关?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但如今Runway已经删库,想要使用SD系列的开源模型,也只剩下Stability AI的HuggingFace仓库了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/16d297a82aa75e095ab601ed2a4a2344007149.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/VE3Ot1PG9xke8K89ah5Hgg&quot; target=&quot;_blank&quot;&gt;新智元&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795964.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795964.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:25:23 GMT</pubDate>
    </item>
    <item>
      <title>场景题:如何提升Kafka效率?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;场景题:如何提升Kafka效率?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:磊哥&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:14:34&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/architecture&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;架构&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;Kafka 以其高吞吐量、低延迟和可扩展性而备受青睐。无论是在实时数据分析、日志收集还是事件驱动架构中,Kafka 都扮演着关键角色。&lt;/p&gt;&lt;p&gt;但是,如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/p&gt;&lt;p&gt;那么,提升 Kafka 性能的有效手段都有哪些呢?接下来,我们一起来看。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;性能调优主要手段&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 性能调优的主要手段有以下几个:&lt;/p&gt;&lt;ol data-id=&quot;odd3d8fc-WCgCTB1Z&quot; class=&quot;list-paddingleft-1&quot;&gt;&lt;li data-id=&quot;ld70c578-8QBG1UEd&quot;&gt;分区扩展&lt;/li&gt;&lt;li data-id=&quot;ld70c578-aS74JA4E&quot;&gt;消息批发送(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-ka7YRl6k&quot;&gt;消息批获取(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-374RipOX&quot;&gt;配置调优&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CjJcWSHo&quot;&gt;JVM 调优&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/66fdd7d84fc9389ce532608058f9a7fb530247.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;1.分区扩展&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;在 Kafka 架构中,&lt;strong&gt;使用多分区(Partition)来实现数据分片功能&lt;/strong&gt;。也就是 Kafka 会将多条消息并发存储到一个主题(Topic)的多个 Broker(Kafka 服务)中的多个 Partition 中,以实现并行操作的功能,极大地提高了整体系统的读写能力,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/71b1af64644304894c7818ef426b825bacece6.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;数据分片是一种技术将大数据分割成更小、更易于管理的片段(称为“分片”),并将分片都存储在不同的服务器上,从而实现了数据的水平拆分。通过数据分片,可以有效地解决单一数据库的性能瓶颈、存储限制以及高可用性等问题。&lt;/p&gt;&lt;p&gt;因此,增加更多的 Broker,扩展更多的分区 Partition 是提升 Kafka 性能的关键,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/49798654440d7fb446a9145e052333df6daef3.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;2.消息批发送(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认是不支持批量发送消息的,然而开启批量发送消息可以提升 Kafka 整体运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量发送消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量发送消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ciIXHdc7&quot;&gt;&lt;li data-id=&quot;ld70c578-gaKK5kGG&quot;&gt;&lt;strong&gt;减少网络开销&lt;/strong&gt;:当生产者发送消息给 Kafka 时,如果每次只发送一条消息,那么就需要建立一次 TCP 连接,这涉及到三次握手的过程。而如果采用批量发送的方式,则可以在一次 TCP 连接中发送多条消息,减少了网络连接建立和断开的次数,从而降低了网络开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-VK9gAg6R&quot;&gt;&lt;strong&gt;减少 I/O 操作&lt;/strong&gt;:批量发送意味着一次写入操作可以处理更多的数据。这对于磁盘 I/O 来说是一个优势,因为一次大的写操作比多次小的写操作更高效。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-EWKlbXbY&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:由于减少了通信次数,批量发送可以提高单位时间内发送的消息数量,即提高了吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;那么,想要实现 Kafka 批量消息发送只需要正确配置以下 3 个参数即可:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-8jekjkhT&quot;&gt;&lt;li data-id=&quot;ld70c578-brlDUOAY&quot;&gt;&lt;strong&gt;batch-size&lt;/strong&gt;:定义了 Kafka 生产者尝试批量发送的消息的最大大小(以字节为单位),生产者收集到足够多的消息达到这个大小时,它会尝试发送这些消息给 Kafka Broker,默认值为 16KB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CC4vMvJ5&quot;&gt;&lt;strong&gt;buffer-memory&lt;/strong&gt;:指定了 Kafka 生产者可以用来缓冲待发送消息的总内存空间,如果生产者试图发送的消息超过了这个限制,生产者将会阻塞,直到有足够空间可用或者消息被发送出去,默认值为 32MB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-P2nJfDk6&quot;&gt;&lt;strong&gt;linger.ms&lt;/strong&gt;:生产者在尝试发送消息前等待的最长时间(以毫秒为单位)。默认情况下,linger.ms 的值为 0,这意味着立即发送。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;以上 3 个参数满足任一个都会立即(批量)发送。&lt;/p&gt;&lt;p&gt;因此我们如果需要匹配发送,主要需要调整的参数是 linger.ms,如下配置所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring:
        kafka:
        bootstrap-servers: localhost:9092 # Kafka服务器地址
        consumer:
        group-id: my-group # 消费者组ID
        auto-offset-reset: earliest # 自动重置偏移量到最早的可用消息
        key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 键的反序列化器
        value-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 值的反序列化器
        producer:
        key-serializer: org.apache.kafka.common.serialization.StringSerializer # 键的序列化器
        value-serializer: org.apache.kafka.common.serialization.StringSerializer # 值的序列化器
        batch-size: 16384
        buffer-memory: 33554432
        properties:
        linger:
        ms: 2000&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;span&gt;3.消息批获取(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认每次拉取一条消息,而使用批量获取消息可以有效提升 Kafka 运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量获取消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量获取消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-XYa5cmdP&quot;&gt;&lt;li data-id=&quot;ld70c578-G15x4M1o&quot;&gt;&lt;strong&gt;降低客户端处理开销&lt;/strong&gt;:对于客户端来说,每次处理一个消息需要进行一系列的操作,如解包、解析、处理逻辑等。如果每次只拉取一个消息,客户端会频繁地进行这些操作,带来较大的处理开销。而批量拉取消息时,客户端可以一次性处理多个消息,减少了处理单个消息的频率,从而降低了客户端的处理开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-hF7AnvqE&quot;&gt;&lt;strong&gt;减少网络往返次数&lt;/strong&gt;:每次拉取一个消息时,客户端需要与 Kafka 服务器进行多次网络往返,包括发送请求、接收响应等。这些网络往返会带来一定的延迟。而批量拉取消息时,客户端可以一次性拉取多个消息,减少了网络往返的次数,从而降低了网络延迟。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-FtNk4fmD&quot;&gt;&lt;strong&gt;优化内存使用&lt;/strong&gt;:批量拉取消息可以更好地规划和利用内存。客户端可以一次性分配足够的内存来存储批量拉取的消息,避免了频繁地分配和释放小内存块的操作。这样可以提高内存的使用效率,减少内存碎片的产生,进而提升系统的运行效率。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-wS1xQ7OW&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:批量拉取消息可以提高单位时间内处理的消息数量,从而提升了 Kafka 的吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;想要实现批量读取数据需要做以下两步调整:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-SH70BQUr&quot;&gt;&lt;li data-id=&quot;ld70c578-tOewhYas&quot;&gt;在配置文件中设置批读取:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring.kafka.listener.type=batch&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ZpnAbGJ6&quot;&gt;&lt;li data-id=&quot;ld70c578-3s0eGgTt&quot;&gt;消费者使用 List&amp;lt;ConsumerRecord&amp;gt; 接收消息,具体实现代码如下:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;@KafkaListener(topics = TOPIC)
        public void listen(List&amp;lt;ConsumerRecord&amp;lt;?, ?&amp;gt;&amp;gt; consumerRecords) {
        for (int i = 0; i &amp;lt; consumerRecords.size(); i++) {
        System.out.println(&quot;监听到消息:&quot; + consumerRecords.get(i).value());
        }
        System.out.println(&quot;------------end------------&quot;);
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上程序的执行结果如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/841e92785b5e7ff7966758dc0dee5269221c11.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;从执行结果可以看出:只有一个“end”打印,这说明 Kafka 一次拉取了一批数据,而不是一个数据,否则就会有多个“end”。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;4.配置调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;合理设置 Kafka 的配置也可以一定程度的提升 Kafka 的效率,例如以下这些配置:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-xKWbts6L&quot;&gt;&lt;li data-id=&quot;ld70c578-X2v6l7Ff&quot;&gt;&lt;strong&gt;配置文件刷盘策略&lt;/strong&gt;:调整 flush.ms 和 flush.messages 参数,控制数据何时写入磁盘。较小的值可以降低延迟,而&lt;strong&gt;较大的值可以提高吞吐量&lt;/strong&gt;。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-GrstAmDP&quot;&gt;&lt;strong&gt;网络和 IO 操作线程配置优化&lt;/strong&gt;:num.network.threads 应该设置为 CPU 核心数加 1,以充分利用硬件资源。调整 socket.send.buffer.bytes 和 socket.receive.buffer.bytes 以优化网络缓冲区大小,缓冲区越大,吞吐量也越高。&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;span&gt;5.JVM 调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;因为 Kafka 是用 Java 和 Scala 两种语言编写的,而 Java 和 Scala 都是运行在 JVM 上的,因此保证 JVM 的高效运行,设置合理的垃圾回收器,也能间接的保证 Kafka 的运行效率。例如,对于大内存机器,可以使用 G1 垃圾收集器来减少 GC 暂停时间,并为操作系统留出足够的内存用于页面缓存。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:武晓燕&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/kdgOYWJvlFbd7X-Up0jCRg&quot; target=&quot;_blank&quot;&gt;磊哥和Java&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Kafka&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Kafka&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%95%88%E7%8E%87&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;效率&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%80%A7%E8%83%BD&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;性能&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795961.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795961.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:14:34 GMT</pubDate>
    </item>
    <item>
      <title>关于AI治理策略的六个考虑</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;关于AI治理策略的六个考虑&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:Raymond&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 16:18:44&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。 &lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/39c017f55d18cff9e524013a77145538832a7a.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。&lt;/p&gt;&lt;h4&gt;要点:&lt;/h4&gt;&lt;p&gt;• 治理至关重要:如果没有适当的AI治理,公司可能会面临合规失败和失去客户信任的风险。&lt;/p&gt;&lt;p&gt;• 策略优先:一个明确的AI策略和治理框架可以在创新与混乱之间划清界限。&lt;/p&gt;&lt;p&gt;• 合规推动信任:强有力的AI治理不仅能满足监管要求,还能增强客户信任和竞争优势。&lt;/p&gt;&lt;p&gt;大多数技术的一个反复出现的趋势是,它们通常在广泛应用之前,相关法律还未完全确立。对于技术的治理——尤其是那些被广泛使用的技术——对于保护人们、公司及其数据免受滥用至关重要。&lt;/p&gt;&lt;p&gt;AI似乎也不例外,但它是“新瓶装旧酒”,还是“旧瓶装新酒”呢?&lt;/p&gt;&lt;p&gt;尽管AI已经存在了大约60年,但由于其多次的反复发展,直到最近才逐渐受到关注。自从ChatGPT于2022年底出现以来,许多公司开始开发用于各种应用的AI模型。&lt;/p&gt;&lt;p&gt;这种技术的使用可能带来许多风险,包括暴露敏感数据、违反知识产权法、产生明显错误的结果以及违反现有或正在制定的法规。因此,AI的应用必须谨慎。&lt;/p&gt;&lt;h4&gt;为何AI治理至关重要&lt;/h4&gt;&lt;p&gt;直到最近,AI几乎是数据科学家和其他数据专家的专属领域。因为数据通常只在内部用于改进产品和服务,或分析一般客户行为,因此对数据治理框架的需求并不紧迫。随着GenAI在工作场所的广泛应用,这一情况已经发生了变化。&lt;/p&gt;&lt;p&gt;如今,大多数公司都意识到,为了跟上同行的步伐,他们需要在产品或服务中引入某种形式的GenAI或大型语言模型(LLMs)——而这也伴随着必要的治理。&lt;/p&gt;&lt;p&gt;一个问题是:AI治理程序尚未形成,更不用说定型了。AI的底层技术仍在发展,这使得立法机构难以确定一个固定的合规方案。&lt;/p&gt;&lt;p&gt;但公司不能等待多年才看到最终的治理框架。相反,他们必须立即开始建立一个可行的、可辩护的、可扩展的,最终是灵活的框架,以监督和管理他们企业中的AI使用。在部署AI模型之前,公司需要充分理解这些模型在其业务背景下的生命周期以及它们的工作原理。当然,所有AI项目都应通过合规、法律和信息安全团队的常规治理审核流程。&lt;/p&gt;&lt;h4&gt;建立AI治理框架&lt;/h4&gt;&lt;p&gt;适当的数据治理涉及数据质量、数据安全、伦理使用和隐私保护等多个方面。根据你的业务和所使用数据的性质,AI治理可能比数据治理更为重要(也更为耗费资源)。&lt;/p&gt;&lt;p&gt;以数据分析为例,通常在人们做出决策和行动之前,总会有一个人来验证结果,但由于AI能够在更大规模上运作,它可以在毫秒内做出几十个预测,而无需解释。AI甚至可以在自动决策场景中被训练为自主采取行动。&lt;/p&gt;&lt;p&gt;在考虑你的AI治理模型时,可以考虑以下几个基本要点:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. 考虑使用AI的策略&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你的计划是什么?你的目标是什么?问问自己,公司是否真的有一个AI的业务案例,也就是说,嵌入在你的产品或服务中的AI是否会对你的客户产生有意义的影响?如果答案是否定的,那么可能就不值得花费精力和成本去开发。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. 制定AI使用监控政策&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;如果答案是肯定的,那么第二个考虑因素应该是制定一项政策或声明,规定AI在公司内部如何使用以及由谁使用,这个基础文件可以采用正式政策的形式,明确说明为什么使用AI、由谁使用以及用于什么目的。政策往往更具规范性和具体性,规定了技术必须——而不是应该——如何使用。你的政策还可以提及行业标准,以作为基准。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. 考虑制定AI使用指南&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;或者,你可以制定指南,传统上指南会列出推荐的使用方法和最佳实践。两种方法各有优缺点。根据你的行业、你所受的监管程度以及公司使用的数据类型(如B2C或B2B),你可以选择使用指南,以免过度限制创新或试验。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. 创建AI文档组合&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;无论你选择何种文件,目标都是创建一系列文档,尽可能为员工如何使用新技术提供指导,这将帮助他们在使用数据时,以道德和负责任的方式创建功能丰富的产品和服务。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. 建立法律合规框架&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;接下来,确保你的数据处理的法律基础是坚实的。如果你处理的是欧盟公民的数据,特别是要根据GDPR第6条的规定,为你的情况找到最合适的法律依据。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6. 确定AI决策者&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;另一个重要的工作是创建AI审批流程,包括指定决策者。&lt;/p&gt;&lt;p&gt;理想的AI治理框架应该定位在概念化与运营化阶段之间,这将确保任何为评估想法和用例而设立的团队、委员会或论坛能够采用整体性和跨职能的视角。通过这种方法,他们可以全面评估AI对你的商业模式带来的独特风险,并决定哪些举措应推进到生产阶段。&lt;/p&gt;&lt;h4&gt;为广泛的AI监督做好准备&lt;/h4&gt;&lt;p&gt;全球各地的立法者很快将要求大多数公司建立强有力的AI治理监督模型。通过采用将人权与商业洞察相结合的更广泛视角,企业可以通过增强客户信任来获得竞争优势。&lt;/p&gt;&lt;p&gt;这种以隐私为先、以业务为中心的方法使公司能够自信地开发以价值为驱动的模型,同时确保数据隐私和符合监管要求,提供超越单纯合规的战略优势。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;http://www.d1net.com/ai/industry/582047.html&quot; target=&quot;_blank&quot;&gt;企业网D1Net&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI%E6%B2%BB%E7%90%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI治理&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795955.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795955.html</guid>
      <pubDate>Fri, 30 Aug 2024 08:18:44 GMT</pubDate>
    </item>
    <item>
      <title>2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:爱吃炸鸡&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:07:16&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;高级网络犯罪分子越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;2024年上半年,尽管整体非法活动有所下降,但加密货币犯罪中的两类特定犯罪活动——被盗资金和勒索软件却在上升。报告详细分析了这些犯罪活动的趋势和背后的原因,并探讨了加密货币生态系统中的一些积极发展。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/265e45054f360db5b384725690b6b8ec88d0be.jpg&quot; style=&quot;visibility: visible; width: 615px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;关键发现&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-idce86Ri&quot;&gt;&lt;li data-id=&quot;ld70c578-5JyerKWc&quot;&gt;2024年至今,链上非法活动总量下降了近20%,表明合法活动增长速度超过了非法活动;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-koyWT2eJ&quot;&gt;尽管与去年同期相比非法交易有所下降,但两类非法活动——被盗资金和勒索软件却在增加;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-oirWd2nw&quot;&gt;被盗资金流入量几乎翻了一番,从8.57亿美元增至15.8亿美元,勒索软件流入量增长了约2%,从4.491亿美元增至4.598亿美元;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-W8sdikJS&quot;&gt;每次盗窃事件中被盗的加密货币平均金额增加了近80%,加密货币攻击者似乎又回到了他们的目标——中心化交易所,而不是优先考虑DeFi协议。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-MvKjyFPH&quot;&gt;高级网络犯罪分子,包括与朝鲜有关的IT工作者,越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;勒索软件研究发现&lt;/h4&gt;&lt;p&gt;2024年有望成为勒索软件收入最高的一年,这在很大程度上归功于执行较少高调攻击但收取大额支付的勒索软件变种(行业称为“大猎物狩猎”)。2024年记录了有史以来最大的勒索软件支付,大约7500万美元支付给了Dark Angels勒索软件组织。&lt;/p&gt;&lt;p&gt;针对最严重勒索软件变种的中位数勒索支付从2023年初的近20万美元飙升至2024年6月中旬的150万美元,表明这些变种正在优先针对可能因资金充足和系统重要性而更有可能支付高额赎金的大型企业和关键基础设施提供商。&lt;/p&gt;&lt;p&gt;由于最近的执法行动破坏了最大的参与者,如ALPHV/BlackCat和LockBit,勒索软件生态系统经历了一些分裂。在这些破坏之后,一些附属机构迁移到效果较差的变种或推出了自己的变种。&lt;/p&gt;&lt;h4&gt;勒索软件与加密货币&lt;/h4&gt;&lt;p&gt;加密货币生态系统在2024年见证了一些积极的发展。在许多方面,加密货币继续获得主流接受,紧随美国批准现货比特币和以太坊交易型开放式指数基金(ETF)以及财务会计标准委员会(FASB)的公平会计规则的修订之后。但随着任何新技术的采用,合法和非法行为者都会增长。尽管与前几年相比,今年的非法活动有所下降,但特定网络犯罪相关实体的加密货币流入显示出一些令人担忧的趋势。&lt;/p&gt;&lt;p&gt;如下图所示,2024年流入合法服务的资金是自2021年上一次牛市高峰以来最高的,这是一个令人鼓舞的迹象,表明加密货币在全球范围内的持续采用。流入风险服务(主要由混合器和不收集KYC信息的交易所组成)的资金趋势高于去年同期。与此同时,非法活动的总体下降了19.6%,从209亿美元降至167亿美元,表明合法活动的增长速度超过了链上非法活动。这些非法数字是基于研究机构今天识别的非法地址流入量的下限估计。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/4261db64846d630b4e5742079f3f503889af08.jpg&quot; alt=&quot;&quot; title=&quot;1723952814_66c16eae5b641ee1d2632.png!small?1723952816009&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;Chainalysis开始将疑似非法活动纳入某些犯罪类型的总估计中,基于Chainalysis Signals数据。此前,估计只包括与Chainalysis有支持文件证明属于某个非法实体的地址相关的总数。Signals利用链上数据和启发式方法来识别特定未知地址或地址簇的疑似类别,置信度从可能到几乎确定不等。Signals的引入不仅随着时间的推移增加了我们对某些类别非法活动的估计,而且还使我们能够完善前几年的估计。&lt;/p&gt;&lt;p&gt;尽管与去年同期相比非法交易总体下降,但被盗资金和勒索软件这两类非法活动却有所上升。通过7月底的年增长来看,加密货币抢劫中被盗资金增加了近一倍,从8.57亿美元增至15.8亿美元。2023年6月底的勒索软件流入总计为4.491亿美元。今年同期,勒索软件流入量已超过4.598亿美元,这表明我们可能正面临另一个勒索软件创纪录的年份。&lt;/p&gt;&lt;h4&gt;攻击者瞄准中心化交易所&lt;/h4&gt;&lt;p&gt;2023年相比2022年加密货币被盗价值下降50%,而2024年黑客活动又出现了复苏,从被盗金额和黑客事件的数量可以看出这一点。如下图所示,截至7月底,今年累计被盗金额已超过15.8亿美元,比去年同期增长了84.4%。有趣的是,2024年的黑客事件数量仅比2023年略有增加,同比增长了2.76%。每次事件中被盗的平均金额增加了79.46%,从2023年1月至7月的每次事件590万美元增加到2024年迄今为止的每次事件1060万美元。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/b82e21978123a9c7ef36797e9d963f629e0b3c.jpg&quot; alt=&quot;&quot; title=&quot;1723952836_66c16ec43a5bcb5502201.png!small?1723952837726&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;被盗金额的变化很大程度上归因于资产价格的上涨。例如,比特币的价格从2023年前七个月的平均价格26141美元上涨到今年7月的平均价格60091美元,涨幅达130%。&lt;/p&gt;&lt;p&gt;Chainalysis跟踪的一个黑客指标是黑客事件发生后被盗资金流动的交易量。这可以作为被盗资产的一个代理,因为很多时候被黑客攻击的服务不会公开报告被盗的具体细节。2024年与被盗资金活动相关的BTC交易量占这些流动的40%。这种模式似乎是由被攻击实体类型的变化所驱动的,2024年中心化服务被黑客攻击以获取高额资金。特别是像DMM这样的中心化交易所,其损失了3.05亿美元。在DMM黑客事件中,大约19%的被盗金额在2024年被盗,据报道大约有4500 BTC被盗。&lt;/p&gt;&lt;p&gt;加密货币攻击者似乎在四年专注于去中心化对手之后,再次回归他们的老路,瞄准中心化交易所,后者通常不交易比特币。尽管对DeFi服务——特别是跨链桥接的攻击在2022年达到顶峰,但攻击者在中心化交易所增加安全投资后,将注意力转向了更新、更脆弱的组织。现在包括与朝鲜有关的攻击者在内的黑客,正在利用越来越复杂的社会工程学策略,例如申请IT工作,通过渗透中心化交易所来窃取加密货币。&lt;/p&gt;&lt;h4&gt;2024年有望成为勒索软件收入最高的一年&lt;/h4&gt;&lt;p&gt;2023年勒索软件支付金额创下新高,超过10亿美元。这些巨额支付来自一些高调、破坏性的攻击,如Cl0p对Move&amp;nbsp;IT零日的利用以及ALPHV/BlackCat勒索软件团伙对凯撒酒店物业的利用,导致该公司支付了1500万美元的赎金。尽管针对勒索软件的恶意部署和组织基础设施的主要执法行动,依旧出现了如此多的赎金支付,截至2023年6月底的累计勒索软件支付总额约为4.491亿美元。今年同期,我们记录的勒索软件支付总额为4.598亿美元,这使2024年坚定地走上了创纪录的道路。&lt;/p&gt;&lt;p&gt;Kiva咨询公司的总法律顾问Andrew Davis表示,尽管对LockBit和ALPHV/BlackCat的打击持续加大,但总体勒索软件活动依旧相对稳定。“无论是这些众所周知的威胁行为者的前附属机构,还是新的初创企业,大量新的勒索软件团伙加入了这场混战,展示了他们进行攻击的新方法和技巧,如扩大初始访问和横向移动的方法。”&lt;/p&gt;&lt;p&gt;如下图所示,勒索软件攻击也变得越来越严重。我们观察到的一个显著变化是每年最大赎金支付的飙升。到目前为止,2024年出现了有史以来最大的单笔支付,约为7500万美元,支付给了名为Dark Angels的勒索软件团伙。这种最大支付金额的增长也代表了从2023年到今年的最大支付金额增长了96%,从2022年的最大支付金额增长了335%。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/c5f1df74092b54d61db7948cd898b26295bdfb.jpg&quot; alt=&quot;&quot; title=&quot;1723952869_66c16ee57189b9bd2742c.png!small?1723952870707&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;如果迅速增加的最大支付金额还不够糟糕的话,这种每年的异常值趋势实际上还伴随着中位数支付的增长趋势。从2023年第一周的中位数支付金额198939美元增加到2024年6月中旬的中位数支付金额150万美元。这代表了在此期间最严重株系支付的典型赎金规模的7.9倍增长,自2021年初以来增长了近1200倍。这种模式可能表明,这些勒索软件组织开始瞄准大型企业和关键基础设施提供商,这些目标可能因为其雄厚的资金和系统重要性而更支付高额赎金。&lt;/p&gt;&lt;p&gt;勒索软件的另一个趋势是攻击也变得更加频繁,根据eCrime.ch的数据泄露网站统计,2024年到目前为止至少增加了10%的攻击。作为勒索软件事件的衡量标准,勒索软件泄露网站的帖子同比增加了10%。然而链上测量的总勒索软件支付事件同比下降了27.29%。将这两个趋势结合起来看,尽管今年迄今为止的攻击可能有所增加,但支付率却同比下降了。这对生态系统来说是一个积极的信号,表明受害者可能准备得更好,不需要支付赎金。&lt;/p&gt;&lt;p&gt;Davis说:“Kivu参与协助受害组织的事务中,大约有65%在没有支付赎金的情况下得到解决,显示出受影响组织的韧性和没有必要支付攻击者的积极趋势。”&lt;/p&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动继续呈下降趋势,但两类加密货币犯罪似乎正在逆势而上:被盗资金和勒索软件。这两种犯罪类型通常由具有某些共同特征的参与者实施。它们通常是利用先进网络基础设施的有组织团体。这些参与者以精心策划的社会工程学策略而闻名,他们利用这些策略闯入加密业务,窃取加密货币资产,并利用专家级洗钱技术试图在资金被查封前套现。&lt;/p&gt;&lt;p&gt;打击网络犯罪的关键是破坏其供应链,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和套现点。由于加密货币盗窃和勒索软件的运营几乎完全在区块链上进行,配备正确解决方案的执法部门可以通过追踪资金来更好地理解和破坏这些参与者的运营。&lt;/p&gt;&lt;p&gt;eCrime.ch的研究员Corsin Camichel指出,包括Operation Cronos、Operation Duck Hunt、Operation Endgame等打击行动和执法行动对于遏制这些活动并表明犯罪行为将会有后果至关重要。&lt;/p&gt;&lt;h4&gt;结论&lt;/h4&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动总体呈下降趋势,但被盗资金和勒索软件这两类加密货币犯罪似乎正在逆势而上。这些犯罪类型通常由具有某些共同特征的行为者实施,他们通常是利用复杂的网络基础设施的有组织的团体。在被盗资金的情况下,与朝鲜有关的黑客组织是一些最大抢劫案的幕后黑手。这些行为者以计算出的社会工程策略而闻名,他们闯入加密业务,窃取加密资产,并利用专业的洗钱技术,在资金被查封前尝试变现。&lt;/p&gt;&lt;p&gt;报告还强调了通过跟踪资金流向来破坏网络犯罪供应链的重要性,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和提现点。由于加密货币抢劫和勒索软件的操作几乎完全在区块链上进行,执法部门配备了正确的解决方案,可以追踪资金流向,更好地理解和破坏这些行为者的操作。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;https://www.chainalysis.com/blog/2024-crypto-crime-mid-year-update-part-1/&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.freebuf.com/articles/neopoints/408911.html&quot; target=&quot;_blank&quot;&gt;FreeBuf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86%E8%B4%A7%E5%B8%81&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密货币&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8B%92%E7%B4%A2%E8%BD%AF%E4%BB%B6&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;勒索软件&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795943.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795943.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:07:16 GMT</pubDate>
    </item>
    <item>
      <title>别让加密难倒你:Python爬虫攻克加密网站的实战教程</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;别让加密难倒你:Python爬虫攻克加密网站的实战教程&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:攻城狮成长日记&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:03:43&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;今天有个朋友向我求助,希望我帮他爬取一个网站上的内容。网站内容如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/c50ccd18206254fb89d65784b20c4be5d54d15.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;aHR0cHM6Ly93d3cuY2NwcmVjLmNvbS9uYXZDcXpyLyMvCg==&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;打开上述网址,进入开发者模式,这些数据的请求接口,正常逻辑是通过搜索页面上内容进行锁定请求接口。但是,进行搜索时,发现什么都搜索不到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/b8452de03a8013533bd2092de32feb0f9d2ecc.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上图发现,这些数据只请求了一个接口,当我点击负载和响应这两个标签,发现数据是被加密了,所以,我们搜索不了页面的内容。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/a58917d366aae0842e762364be32ac734ae281.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;负载加密内容&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/44933d7925dd6ea07e8703a9812235aea04f47.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;响应加密内容&lt;/p&gt;&lt;h4&gt;浏览器为啥是明文?&lt;/h4&gt;&lt;p&gt;这时相信小伙伴,心中都有一个疑问浏览器为啥是明文?&amp;nbsp;&amp;nbsp;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/994e234466fe0e9c5b4134d8f2deff02c58e56.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;如何定位到加密资源文件&lt;/h4&gt;&lt;p&gt;通过XHR/提取断点,该方法是通过匹配URL包括请求路径关键字进行断点,具体配置如下图:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/0126a7d47053b9085f78044456dc78f9c939b3.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;这时我们重新刷新网页,如下图所示,网站就成功进入我们上一步设置的断点中。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/233ebba10d3164e2607137dc8bb9356d16c8fd.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;其中,h就是加密后的请求体参数,然后我们从调用堆栈中一步步往前推。至于如何找呢?这里是有一个技巧的,我们需要找到前一步请求体还没加密,后一步请求体就加密成功了。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/f1c250e12f4ee5490411724a2f08181f6530e6.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密后&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/f8b9b8d00ff393c197457695b6b2539406a6f1.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密前&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其中上图o就是请求体加密之前的参数,s就是加密后的参数。chunk-common.a25fd3ce.js就是进行加密的js。通过点击堆栈的js名称就可以定位到对应的地方。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;扣取代码&lt;/h4&gt;&lt;p&gt;经过上一步分析,我们知道o就是加密之前的参数,就在js代码找o定义的位置,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/04c5f1831bc7855e5d5503d9192f421f35e032.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;下面代码就是请求体的参数,通过上述代码发现id是通过uuid方法生成的。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;{
        &quot;id&quot;: &quot;rtmhwib79r4ytdgn&quot;,
        &quot;projectKey&quot;: &quot;honsan_cloud_ccprec&quot;,
        &quot;clientKey&quot;: &quot;rtmhwialwggc91l6&quot;,
        &quot;token&quot;: null,
        &quot;clientDailyData&quot;: {},
        &quot;acts&quot;: [
        {
        &quot;id&quot;: &quot;rtmhwib65mon96h1&quot;,
        &quot;fullPath&quot;: &quot;/cloud.sys.tomcatV11/api/v1/template/getPages&quot;,
        &quot;args&quot;: [
        {
        &quot;yuPiLou&quot;: {
        &quot;templateId&quot;: &quot;32d3044760964ed8927bad49e545ba4b&quot;,
        &quot;pageNo&quot;: 1,
        &quot;pageSize&quot;: 20,
        &quot;where&quot;: {
        &quot;projecttype&quot;: &quot;PG3&quot;,
        &quot;state&quot;: &quot;42&quot;
        }
        }
        }
        ]
        }
        ]
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接着我们需求扣取这个uuid方法。通过鼠标悬停在这个方法上面,就会弹出面板,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/417aa323287dc248757500a2fc7e6a3a5ec685.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;点击后就会调到uuid方法定义的地方,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/82524359223b2526ef327452a8d5890ef12adb.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把这段代码扣取下面,如下所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;uuid = function (t, n) {
        void 0 === t &amp;amp;&amp;amp; (t = 16),
        void 0 === n &amp;amp;&amp;amp; (n = !1),
        !n &amp;amp;&amp;amp; t &amp;lt; 16 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=false 时 len 不能小于 16&quot;),
        t = 16),
        n &amp;amp;&amp;amp; t &amp;lt; 12 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=true 时 len 不能小于 12&quot;),
        t = 12);
        var i = ((new Date).getTime() + 1e14).toString();
        return i += (&quot;000&quot; + (++e.uuidCount).toString()).substr(-3, 3),
        i = n ? parseInt(i).to62() : parseInt(i).toString(36),
        i += randomStr(t),
        i = i.substr(0, t),
        i
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;把this关键的全部删除它。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;然后通过node进行运行,如下图所示报错了e没有定义。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/69c25ca2798ba18552e454c2c76fded67b07a7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;于是,我们再去源码中找改值是什么?通过选中该值,经过几次的确认。该值是NaN,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/13d6772044a54072e200672b68b6abc9aeb9ed.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;我们再自己扣取的代码写死它,再次运行。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/f17578d96dfd29d745f5698a9b8daed2b8d682.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;发现这是报randomStr没有定义,我们再去源码找这个方法进行补环境。通过搜索发现了randomStr方法,该方法有调用了random。于是我们两个方法一起扣取下来。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/b4c3c9a90ed2a54d506309f6a58a2e8a485691.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;再次运行,没有报错了,成功打印了uuid,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/d5d129863959cb56eaf384b4dd5e912141224b.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把之前扣取下来的请求体,id字段固定值替换成uuid函数生成的动态值,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/514cfe589638a1e08bf9414d94ba495cdf0475.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;最重要的一步就是扣取加密的JS代码啦,&amp;nbsp;在请求体参数附近查看this.aes.encode(a)加密方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/49fcbd651a85c280b9a073694aea25510ec648.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上面介绍的方面快速定位到这个加密的方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/4388efa40fa240126292649bf2d62ce026ca53.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;该方法又调用了另外一个方法this.encryptCode,通过关键搜索也找到了encryptCode方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/822fd4069f52dfedc375065822751c973da87a.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;加密方法&lt;/p&gt;&lt;p&gt;按照编程习惯,附近也会有对应的解密方法的,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/69c057124949b1e5c08186d3cb64e75052034c.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;解密方法&lt;/p&gt;&lt;p&gt;现在加密和解密的方法都找到了,我们把它全部扣取下面进行调试,发现缺什么方法再进行补。重新定义一个方法生成加密请求头,后续让python调用这个方法并传入分页参数。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/b3c8bc592bcc125e9d9120518b3b57023f1ee2.webp&quot; style=&quot;width: 854px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;测试该方法是否能正常生成加密请求头,执行如下命令:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;console.log(encrypt())&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行上述方法后,输入如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/725c74941411fa599f56442715aca852accd35.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;通过python模拟请求&lt;/h4&gt;&lt;p&gt;这里介绍一个非常快捷的方式用python模拟一个浏览器请求,首先我们先在开发者模式选择这条请求,然后右击选择**将所有列表复制为cURL(Bash)**,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/749729a16cc0c8d5f256670c41f85157f09c2e.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,来的这个工具网站[1],粘贴刚才复制的cURL信息,就可以根据自己喜欢的编程语言生成模拟浏览器请求的代码,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/1584af686dbc260a063323cf1c711a93d15fd4.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,把生成的代码拷贝下来,进行修改。通过python的第三方库execjs调用js代码并执行对应的方法。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;jscode=open(&quot;./test.js&quot;,&#39;r&#39;,encoding=&#39;utf-8&#39;).read()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;以读的模式打开test.js并赋值给jscode&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;data = execjs.compile(jscode).call(&quot;encrypt&quot;,page)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;通过execjs调用jscode对象,并通过call方法调用encrypt加密方法,并传入分页参数page。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;下图是python中的完整代码:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/c49bc9600825a5a353b4457c482567b0786035.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;执行上述代码后,成功获取网站的数据如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/895d6c029de42dcdc7e07182a251b1be6deb2f.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;遇到的问题&lt;/h4&gt;&lt;p&gt;在python中使用execjs库,出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 244: illegal multibyte sequence,一般遇见编码问题先看看代码里写没写encoding=&#39;utf-8&#39;,没写的话写加上试试。加了也不行。通过在python代码中加入如下代码:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import subprocess
        from functools import partial
        subprocess.Popen = partial(subprocess.Popen, encoding=&quot;utf-8&quot;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4&gt;脚本获取方式&lt;/h4&gt;&lt;p&gt;上述脚本已经上传上传到gitee,有需要的小伙伴可以自行获取。gitee上的仓库主要是分享一些工作中常用的脚本。小伙伴可以frok或者watch仓库,这样有更新可以及时关注到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/8484a7822421cb494c560514d19112a4f2d7c7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;仓库地址:https://gitee.com/didiplus/script&lt;/p&gt;&lt;p&gt;工具网站:&amp;nbsp;https://curlconverter.com/&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MjM5OTc5MjM4Nw==&amp;amp;mid=2457381767&amp;amp;idx=1&amp;amp;sn=09cd6a68fc56547e2dcc62936ebd90b5&amp;amp;chksm=b17eee44751306601f52de7bf8b56deffcbdf3b1a076a6f2dbed742139d7e22870b77cc95abd&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0830EIoSh7cUeOMxdM8v93Fa&amp;amp;sharer_shareinfo=dc846dfbefb8eab3b644a85e5ccb2e52&amp;amp;sharer_shareinfo_first=dc846dfbefb8eab3b644a85e5ccb2e52#rd&quot; target=&quot;_blank&quot;&gt;攻城狮成长日记&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Python&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Python&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%88%AC%E8%99%AB&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;爬虫&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795942.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795942.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:03:43 GMT</pubDate>
    </item>
    <item>
      <title>一周打完1000场官司,中科院发布首个AI法庭AgentCourt!</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;一周打完1000场官司,中科院发布首个AI法庭AgentCourt!&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 14:38:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;在人工智能重塑各个行业的今天,法律界也迎来了前所未有的变革。传统的法律实践面临着效率低下、成本高昂等挑战,而AI技术的出现为解决这些问题提供了新的可能。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;从最初斯坦福小镇火遍全网,25个由大语言模型(LLMs)驱动的智能体生活交友,打开了多Agent新视角。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而现在,AI法庭也来了!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最近,来自中科院深圳先进研究院的研究团队开发了一个名为AgentCourt的模拟智能法庭,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;它是一个基于大语言模型(LLMs)的法庭模拟系统,旨在通过AI驱动的虚拟法庭来革新法律教育、案例分析和法律研究。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;te

Copy link
Contributor

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Fri, 30 Aug 2024 17:15:12 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>用「图灵测试」检验AI尤其是大语言模型,真的科学吗?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;用「图灵测试」检验AI尤其是大语言模型,真的科学吗?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:机器之心&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:32:30&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;当前的大型语言模型似乎能够通过一些公开的图灵测试。我们该如何衡量它们是否像人一样聪明呢?&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在发布后的近两年时间里,ChatGPT 表现出了一些非常类似人类的行为,比如通过律师资格考试。这让一些人怀疑,计算机的智力水平是否正在接近人类。大多数计算机科学家认为,机器的智力水平还不能与人类相提并论,但他们还没有就如何衡量智力或具体衡量什么达成共识。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;检验机器智能的经典实验是图灵测试,由艾伦・图灵在其 1950 年发表的论文《Computing Machinery and Intelligence》中提出。图灵认为,如果计算机能让与之进行打字对话的人相信它是人类,这可能就是智能的标志。大型语言模型(LLM),如 GPT,擅长像人一样说话,但尚未令人信服地通过图灵测试。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/910b69913d4854a394b038b1bbbb2c04265523.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 925px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;2023 年,加州大学圣迭戈分校(UCSD)的研究人员公开进行了一次图灵测试,目的是比较最新的 LLM 与 20 世纪 60 年代开发的聊天机器人 Eliza 的表现。在律师资格考试中获得高分的 GPT-4 表现相当出色,在 41% 的游戏中,评委认为它与人类无异。而它的前身 GPT-3.5 只通过了 14% 的游戏,低于 Eliza 的 27%。人类在 63% 的游戏中通过(被判定为人类)。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/659530784c456c683af9518f61ec2f110e97f4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #888888;&quot;&gt;论文链接:https://arxiv.org/pdf/2310.20216v1&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;负责这项实验的 UCSD 认知科学博士生 Cameron Jones 说,人类得分如此之低并不奇怪。这是因为玩家预计模型会表现出色,所以他们更容易认为人类只是一个听起来像人类的模型。Jones 说,目前还不清楚聊天机器人必须达到多少分才能赢得游戏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;图灵测试可用于检查客服聊天机器人是否以人们乐于接受的方式与人互动,从而展示 Jones 所说的灵活的社交智能。不过,它能否识别出更通用的智能还很难说。Jones 说:「我们对什么是人类的智能还不甚了解。如果我们能更快地通过模型解决这个问题,我会感到很惊讶。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;圣塔菲研究所复杂性学教授 Melanie Mitchell 说:「我认为图灵测试的整个概念都被过于字面化了。」她认为,图灵提出的「模仿游戏」是一种思考机器智能可能是什么样子的方法,而不是一种定义明确的测试。「人们轻率地使用这个术语,说大型语言模型通过了图灵测试,而事实上它们并没有通过测试。」&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;新的测试&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,如果图灵测试不能可靠地评估机器智能,那就提出了一个问题:什么方法可以?普林斯顿大学心理学家 Philip Johnson-Laird 和德国开姆尼茨工业大学预测分析学教授 Marco Ragni 在 2023 年 11 月发表在《智能计算》杂志上的一篇论文中提出了一个不同的测试方法:他们建议把模型当作心理实验的参与者,看看它能否理解自己的推理过程。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,他们会向一个模型提出这样的问题:「如果 Ann 很聪明,那么她是聪明还是富有,或者两者都是?」虽然根据逻辑规则,可以推断出安是聪明人、富人或两者都是,但大多数人类都会拒绝这个推断,因为设定中没有任何东西表明她可能是富人。如果模型也拒绝了这一推断,那么它的行为就和人类一样,研究人员就会进入下一步,要求机器解释其推理。如果它给出的理由与人类相似,第三步就是检查源代码中模拟人类表现的组件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这些组件可能包括一个快速推理系统、另一个更深思熟虑的推理系统,以及一个根据上下文改变 「或」等词的解释的系统。研究人员认为,如果模型通过了所有这些测试,就可以认为它模拟了人类智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;英国考文垂大学研究机器智能并进行过图灵测试的计算机教授 Huma Shah 说,Johnson-Laird 和 Ragni 的方法可能确实会提供一些有趣的见解,但质疑一个模型的推理能力并不是什么新鲜事。「图灵测试允许这种逻辑质疑,」她说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Shah 还表示,试图测试智力的麻烦在于,这首先取决于人们如何定义智力。是模式识别能力、创新能力,还是创造音乐或喜剧等创意的能力?「因此,如果我们没有就人工智能中的『I』达成一致,那么我们怎么能建立通用人工智能(AGI)呢?」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;谷歌的软件工程师和人工智能专家 Francois Chollet 则认为图灵测试并不是特别有用。他说,一个好的测试应该有一个确切的、形式化的目标,并且应该衡量一个系统有多接近这个目标。他指出:「图灵测试并没有做到这些。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说,LLM 在图灵测试中的表现只能说明他们擅长使用语言,而这种技能完全来自于对大量数据的记忆。他认为,真正的智能并不在于掌握某项技能,而在于把学到的知识运用到新的、不同的情境中。「LLM 百分之百都是记忆。他们没有智能。他们没有适应能力。」Chollet 说。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在他看来,智力是一种有效获得新技能的能力,而这些技能是训练过程中没有准备好的,目的是完成与系统之前所见过的任务差异足够大的任务。人类终其一生都在与世界互动,本质上是在进行实验,以便建立一个反映世界如何运行的模型。这样当他们遇到新情况时,就能学会如何处理。新技能的范围越广,计算机就越接近实现通用人工智能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Chollet 说:「如果你能让学习过程像人类大脑一样高效地处理信息,那么你就拥有了 AGI。」到目前为止,机器的学习效率远远落后于人脑,大约比人脑低 1 万倍。例如,计算机需要数百万张图片才能学会识别猫的图片,而人类只需一两个例子就能学会识别猫。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;为了测试他定义的智力,Chollet 开发了抽象与推理语料库(ARC)。ARC 的挑战是通过基本的积木,如形状或大小等简单概念来完成的。这些积木用于创建任务,如按大小对物体进行分类或补全对称图案。测试对象会看到三个示例,他们应该能够识别目标并完成任务。Chollet 说,最好的 AI 大约有 30% 的时间能够实现目标,而人类则有 80% 的时间能够做到。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/36a718b005d93454b649833005443f578ce377.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;项目链接:https://github.com/fchollet/ARC-AGI&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;每项任务都不同于测试对象以前见过的任何任务,因此死记硬背无济于事。他说:「这是一场无法练习的游戏。当 GPT-4 通过律师资格考试时,很可能是因为它见过足够多与考试相似的例子,所以它能给出合理的答案,而不需要对法律有任何内在的理解。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「这不是一个完美的测试。它有很多局限性和缺陷,」Chollet 说。例如,任务中存在足够多的冗余,在举出足够多的例子后,测试对象可能会对答案做出有根据的猜测。不过,他说,它的基本思想是可靠的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;前面提到的圣塔菲研究所复杂性学教授 Melanie Mitchell 认为,要想获得类似人类的通用智能,就必须有能力完成远远超出训练数据的任务。她和她的小组提出了 ARC 的修订版,围绕基本概念组织任务,例如一物在另一物之上,或一物在另一物之内。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;ConceptARC 的理念是测试计算机解决方案的稳健性,方法是让计算机推导出一个概念的规则,然后将该概念应用到新任务中。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/810c71924e6ccc5d2ba080b078c8356204404c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文链接:https://arxiv.org/pdf/2305.07141&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;例如,她可能会向人工智能展示一个网格,在这个网格中,黄色方格位于蓝色方格之上,而这个蓝色方格又位于黄色方格之上。接着可能是一个红色圆圈在一个绿色圆圈上面,然后又换成一个绿色圆圈在一个红色圆圈上面。人类应该很容易理解的概念是,颜色在垂直位置上互换。然后,计算机必须将这一规则应用到一对新的图形中。Mitchell 说,这些任务对人类来说很容易,但对机器来说似乎仍然非常具有挑战性。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Mitchell 说,在某些情况下,比如试图在海量数据中做出发现,计算机最好有自己的抽象方法。但在与人交互的情况下,例如驾驶汽车,以人类的方式理解世界就非常重要。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「我不认为智能是全有或全无。它是一个范围,计算机做的某些事情是智能的,」Mitchell 说。「如果你想谈论完全的、人类水平的智能,我会说我们还有些遥远,因为人类水平的智能有许多方面是我们看不到的。」&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/Ku7OOWCzEXq8fA_y8M5KcQ&quot; target=&quot;_blank&quot;&gt;机器之心&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%A8%A1%E5%9E%8B&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;模型&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795968.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795968.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:32:30 GMT</pubDate>
    </item>
    <item>
      <title>突发!Runway一夜删库跑路,HuggingFace已清空</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;突发!Runway一夜删库跑路,HuggingFace已清空&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:25:23&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;活久见,Runway一夜间清空HuggingFace和GitHub,直接跑路了?很多人猜测,此事与版权纠纷有关,这就翻出了Runway和Stability AI之间的一段陈年旧案。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;一夜之间,Runaway竟突然删库,跑路了?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/f559e0f54256b8a36b681420113737ed4df82a.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway的官方推特账号上还在周二发布了新帖,在多伦多、洛杉矶和墨尔本等城市组织社区见面会。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/5293df224771f994b6b8549530ea1620080622.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;6月还发布了「王者归来」级别的Gen-3模型,而且7月就已经进入内测阶段。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/e10963d32d34c113917319feee1424fb82c0b4.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但目前的HuggingFace上,Runway已经「人去楼空」了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;主页直接挑明——这个页面以后就不维护啦。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/47e3dbe73e84cc3e835510781bdf6949774617.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 929px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;然后,甩出了这样一个链接:https://huggingface.co/models&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;意思大概就是——我们删库了,之前的Stable Diffusion不可用了。想要找生成模型,那就去别家看看吧。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/27bcedb307c30e94fc40783b0754089f0e11b3.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;GitHub里的Stable Diffusion项目,果然也404了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/c93173471f41239e6b3873f0913215a649e675.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 994px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/71432b2137e1de97fe0028e6ce5be13168fe2f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但主页里还是有一些内容的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/18ad93a05fb6ce5d35f6896bbfd11b78d7ee2d.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这种「手起刀落」、突然删库的做法是开发者最不愿见到的了,有网友表示:我整个项目都要依靠SD 1.5,你们删库让我怎么办?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/d904b3295cc0a2b6866758d3344238d759ad77.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然代码仓库已经删干净了,但公司的官网还能正常响应。不禁让人疑惑:Runway究竟出什么事了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;模型被曝侵权?&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;虽然具体删库原因未知,但或许可能与Stable Diffusion 1.5曾被曝出侵权有关。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/8933be872be1c0cbbc7198e91b4d1132d359e9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在一年以前,由艺术家Sarah Andersen、Kelly McKernan、Karla Ortiz三人发起诉讼,称Stability AI、Midjourney、Runway三家公司侵犯了版权问题,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,却在10月,被法官驳回了诉求。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此后,又有后继的艺术家、摄影师们,加入了投诉阵列。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在新的诉讼中,他们称Runway AI与Stability AI合作训练的Stable Diffusion,为AI能力发展做出了贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但Runway AI被指控,使用了LAION-5B数据集中受版权保护的作品,来训练AI模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/77e4d0766994afe8e5a50210e603c5f15d1f64.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据称,这些模型随后通过Runway AI平台分发,用户可在平台上生成,能够可能复制原告风格的新图像,从而侵犯了许多人的版权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不过,Runway在备案文件中称:&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;text-align: justify; margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;&quot;&gt;&lt;p&gt;&lt;span&gt;首先,原告必须依靠这些论文,声称模型可以「存储」训练图像这一事实表明,他们的理论是没有价值的。这说明,原告无法从Stable Diffusion中提取出自己作品的任何「存储」副本,尽管有足够的机会这样做。显然,原告的论点是站不住脚的。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;此前,Runway在HuggingFace上开源了Stable Diffusion 1.5。但随后就因侵犯知识版权,被要求删除。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;网友们震惊地猜测,整个组织已经被清空了?&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;隔壁家CEO的黑历史&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;提到Runway的最出圈模型——Stable Diffusion系列,&lt;/span&gt;&lt;a href=&quot;http://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&amp;amp;mid=2652337718&amp;amp;idx=2&amp;amp;sn=50c3353736a86437760cfa0bbadd5f37&amp;amp;chksm=f12402c7c6538bd1cd9ea34c5290ce61a332bbf8d1714f2edde526c8479e2976e8fed8fab9c1&amp;amp;scene=21#wechat_redirect&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;也让我们想起了一段陈年往事&lt;/span&gt;&lt;/a&gt;&lt;span&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/863c4e4982d86cb543b809d78a4f8af7557667.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;就在一年前,Stablity AI创始人Emad Mostaque曾被福布斯扒皮——&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Stable Diffusion的源代码,其实是德国慕尼黑大学的学者和初创公司Runway共同写的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;当时,他们共同推出了一个名为Latent Diffusion的开源图像生成器。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Mostaque拿了别人的作品,把自己的名字写在上面——这就是Stable Diffusion的由来。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而在「窃取」了别人的成果之后,Emad Mostaque凭借自己过人的口头本领,让Stability AI摇身一变成为估值10亿美元的初创公司。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/e330fb520d2db900cfa479efaf168f8d85786f.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 966px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;那是在2021年,德国的一个研究者团队和初创公司Runway合作推出了一个名为Latent Diffusion的开源图像模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;研究者团队包括慕尼黑大学(LMU)和海德堡大学的学者,领导这项研究的是Björn Ommer教授。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/c6881c4355ade62f39d776750b46dafef1f389.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;论文地址:https://arxiv.org/pdf/2112.10752&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;据悉,开始他们只用了几十个英伟达的GPU。7个月后,也即2022年6月,Mostaque向他们伸出援手,Stability AI为他们提供了所需的超算。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而出人意料的是,在8月,这个新模型被冠名为Stable Diffusion,竟然以Stability AI的名义发布了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在Stable Diffusion发布几天内,Stability AI就从两家名叫Coatue和Lightspeed的公司获得了1亿美元的投资,直接让Stability AI的估值冲破了10亿美元。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后的新闻稿中,都只说了Stable Diffusion背后的公司是Stability AI,丝毫未提德国团队以及Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Ommer教授对此当然心有不甘,他希望自己的实验室也能得到宣传,但他所在大学的新闻部门当时正在度假。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而Stability的发言人Bishara则表示,公司在官网和Stable Diffusion的GitHub页面上都曾多次公开提到了LMU和Runway的贡献。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/72cfebf21b7258e0cb5510e28b13bce0123f5c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/2113669495b50129d8473381acc4db4eec6991.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;更绝的是,在10月,Stability AI还倒打一耙,声称Runway发布的新版本的Stable Diffusion窃取了自己的知识产权。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/43c09c38024a99af121447ccbd72fb0243dcd9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Runway创始人Cristóbal Valenzuela忍无可忍地回击道:这项技术是开源的,根本不存在侵犯版权的可能。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/a14674c45e51ec357e6496bfab3b3f2a35cf6c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;随后,Mostaque撤回了指控,他解释,自己其实是担心Runway的模型版本缺乏护栏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;今日的删库事件,莫非和曾经这个陈年旧案有关?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但如今Runway已经删库,想要使用SD系列的开源模型,也只剩下Stability AI的HuggingFace仓库了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/16d297a82aa75e095ab601ed2a4a2344007149.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/VE3Ot1PG9xke8K89ah5Hgg&quot; target=&quot;_blank&quot;&gt;新智元&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795964.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795964.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:25:23 GMT</pubDate>
    </item>
    <item>
      <title>场景题:如何提升Kafka效率?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;场景题:如何提升Kafka效率?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:磊哥&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 17:14:34&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/architecture&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;架构&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;Kafka 以其高吞吐量、低延迟和可扩展性而备受青睐。无论是在实时数据分析、日志收集还是事件驱动架构中,Kafka 都扮演着关键角色。&lt;/p&gt;&lt;p&gt;但是,如果 Kafka 使用不当,也可能会面临性能瓶颈,影响系统的整体效率。所以,了解如何提升 Kafka 的运行效率?对于生产环境的使用和面试都是至关重要的。&lt;/p&gt;&lt;p&gt;那么,提升 Kafka 性能的有效手段都有哪些呢?接下来,我们一起来看。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;性能调优主要手段&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 性能调优的主要手段有以下几个:&lt;/p&gt;&lt;ol data-id=&quot;odd3d8fc-WCgCTB1Z&quot; class=&quot;list-paddingleft-1&quot;&gt;&lt;li data-id=&quot;ld70c578-8QBG1UEd&quot;&gt;分区扩展&lt;/li&gt;&lt;li data-id=&quot;ld70c578-aS74JA4E&quot;&gt;消息批发送(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-ka7YRl6k&quot;&gt;消息批获取(重要)&lt;/li&gt;&lt;li data-id=&quot;ld70c578-374RipOX&quot;&gt;配置调优&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CjJcWSHo&quot;&gt;JVM 调优&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/66fdd7d84fc9389ce532608058f9a7fb530247.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;1.分区扩展&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;在 Kafka 架构中,&lt;strong&gt;使用多分区(Partition)来实现数据分片功能&lt;/strong&gt;。也就是 Kafka 会将多条消息并发存储到一个主题(Topic)的多个 Broker(Kafka 服务)中的多个 Partition 中,以实现并行操作的功能,极大地提高了整体系统的读写能力,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/71b1af64644304894c7818ef426b825bacece6.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;数据分片是一种技术将大数据分割成更小、更易于管理的片段(称为“分片”),并将分片都存储在不同的服务器上,从而实现了数据的水平拆分。通过数据分片,可以有效地解决单一数据库的性能瓶颈、存储限制以及高可用性等问题。&lt;/p&gt;&lt;p&gt;因此,增加更多的 Broker,扩展更多的分区 Partition 是提升 Kafka 性能的关键,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/49798654440d7fb446a9145e052333df6daef3.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;2.消息批发送(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认是不支持批量发送消息的,然而开启批量发送消息可以提升 Kafka 整体运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量发送消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量发送消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ciIXHdc7&quot;&gt;&lt;li data-id=&quot;ld70c578-gaKK5kGG&quot;&gt;&lt;strong&gt;减少网络开销&lt;/strong&gt;:当生产者发送消息给 Kafka 时,如果每次只发送一条消息,那么就需要建立一次 TCP 连接,这涉及到三次握手的过程。而如果采用批量发送的方式,则可以在一次 TCP 连接中发送多条消息,减少了网络连接建立和断开的次数,从而降低了网络开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-VK9gAg6R&quot;&gt;&lt;strong&gt;减少 I/O 操作&lt;/strong&gt;:批量发送意味着一次写入操作可以处理更多的数据。这对于磁盘 I/O 来说是一个优势,因为一次大的写操作比多次小的写操作更高效。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-EWKlbXbY&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:由于减少了通信次数,批量发送可以提高单位时间内发送的消息数量,即提高了吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;那么,想要实现 Kafka 批量消息发送只需要正确配置以下 3 个参数即可:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-8jekjkhT&quot;&gt;&lt;li data-id=&quot;ld70c578-brlDUOAY&quot;&gt;&lt;strong&gt;batch-size&lt;/strong&gt;:定义了 Kafka 生产者尝试批量发送的消息的最大大小(以字节为单位),生产者收集到足够多的消息达到这个大小时,它会尝试发送这些消息给 Kafka Broker,默认值为 16KB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CC4vMvJ5&quot;&gt;&lt;strong&gt;buffer-memory&lt;/strong&gt;:指定了 Kafka 生产者可以用来缓冲待发送消息的总内存空间,如果生产者试图发送的消息超过了这个限制,生产者将会阻塞,直到有足够空间可用或者消息被发送出去,默认值为 32MB。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-P2nJfDk6&quot;&gt;&lt;strong&gt;linger.ms&lt;/strong&gt;:生产者在尝试发送消息前等待的最长时间(以毫秒为单位)。默认情况下,linger.ms 的值为 0,这意味着立即发送。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;以上 3 个参数满足任一个都会立即(批量)发送。&lt;/p&gt;&lt;p&gt;因此我们如果需要匹配发送,主要需要调整的参数是 linger.ms,如下配置所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring:
        kafka:
        bootstrap-servers: localhost:9092 # Kafka服务器地址
        consumer:
        group-id: my-group # 消费者组ID
        auto-offset-reset: earliest # 自动重置偏移量到最早的可用消息
        key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 键的反序列化器
        value-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 值的反序列化器
        producer:
        key-serializer: org.apache.kafka.common.serialization.StringSerializer # 键的序列化器
        value-serializer: org.apache.kafka.common.serialization.StringSerializer # 值的序列化器
        batch-size: 16384
        buffer-memory: 33554432
        properties:
        linger:
        ms: 2000&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;span&gt;3.消息批获取(重要)&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kafka 默认每次拉取一条消息,而使用批量获取消息可以有效提升 Kafka 运行效率。&lt;/p&gt;&lt;h3&gt;&lt;span&gt;为什么要批量获取消息?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;批量获取消息有以下优点:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-XYa5cmdP&quot;&gt;&lt;li data-id=&quot;ld70c578-G15x4M1o&quot;&gt;&lt;strong&gt;降低客户端处理开销&lt;/strong&gt;:对于客户端来说,每次处理一个消息需要进行一系列的操作,如解包、解析、处理逻辑等。如果每次只拉取一个消息,客户端会频繁地进行这些操作,带来较大的处理开销。而批量拉取消息时,客户端可以一次性处理多个消息,减少了处理单个消息的频率,从而降低了客户端的处理开销。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-hF7AnvqE&quot;&gt;&lt;strong&gt;减少网络往返次数&lt;/strong&gt;:每次拉取一个消息时,客户端需要与 Kafka 服务器进行多次网络往返,包括发送请求、接收响应等。这些网络往返会带来一定的延迟。而批量拉取消息时,客户端可以一次性拉取多个消息,减少了网络往返的次数,从而降低了网络延迟。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-FtNk4fmD&quot;&gt;&lt;strong&gt;优化内存使用&lt;/strong&gt;:批量拉取消息可以更好地规划和利用内存。客户端可以一次性分配足够的内存来存储批量拉取的消息,避免了频繁地分配和释放小内存块的操作。这样可以提高内存的使用效率,减少内存碎片的产生,进而提升系统的运行效率。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-wS1xQ7OW&quot;&gt;&lt;strong&gt;提高吞吐量&lt;/strong&gt;:批量拉取消息可以提高单位时间内处理的消息数量,从而提升了 Kafka 的吞吐量。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;想要实现批量读取数据需要做以下两步调整:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-SH70BQUr&quot;&gt;&lt;li data-id=&quot;ld70c578-tOewhYas&quot;&gt;在配置文件中设置批读取:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;spring.kafka.listener.type=batch&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-ZpnAbGJ6&quot;&gt;&lt;li data-id=&quot;ld70c578-3s0eGgTt&quot;&gt;消费者使用 List&amp;lt;ConsumerRecord&amp;gt; 接收消息,具体实现代码如下:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre class=&quot;language-sql&quot;&gt;&lt;code&gt;@KafkaListener(topics = TOPIC)
        public void listen(List&amp;lt;ConsumerRecord&amp;lt;?, ?&amp;gt;&amp;gt; consumerRecords) {
        for (int i = 0; i &amp;lt; consumerRecords.size(); i++) {
        System.out.println(&quot;监听到消息:&quot; + consumerRecords.get(i).value());
        }
        System.out.println(&quot;------------end------------&quot;);
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上程序的执行结果如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/841e92785b5e7ff7966758dc0dee5269221c11.png&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;width: 804px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;从执行结果可以看出:只有一个“end”打印,这说明 Kafka 一次拉取了一批数据,而不是一个数据,否则就会有多个“end”。&lt;/p&gt;&lt;h2&gt;&lt;span&gt;4.配置调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;合理设置 Kafka 的配置也可以一定程度的提升 Kafka 的效率,例如以下这些配置:&lt;/p&gt;&lt;ul class=&quot;list-paddingleft-1&quot; data-id=&quot;u4533b8e-xKWbts6L&quot;&gt;&lt;li data-id=&quot;ld70c578-X2v6l7Ff&quot;&gt;&lt;strong&gt;配置文件刷盘策略&lt;/strong&gt;:调整 flush.ms 和 flush.messages 参数,控制数据何时写入磁盘。较小的值可以降低延迟,而&lt;strong&gt;较大的值可以提高吞吐量&lt;/strong&gt;。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-GrstAmDP&quot;&gt;&lt;strong&gt;网络和 IO 操作线程配置优化&lt;/strong&gt;:num.network.threads 应该设置为 CPU 核心数加 1,以充分利用硬件资源。调整 socket.send.buffer.bytes 和 socket.receive.buffer.bytes 以优化网络缓冲区大小,缓冲区越大,吞吐量也越高。&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;span&gt;5.JVM 调优&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;因为 Kafka 是用 Java 和 Scala 两种语言编写的,而 Java 和 Scala 都是运行在 JVM 上的,因此保证 JVM 的高效运行,设置合理的垃圾回收器,也能间接的保证 Kafka 的运行效率。例如,对于大内存机器,可以使用 G1 垃圾收集器来减少 GC 暂停时间,并为操作系统留出足够的内存用于页面缓存。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:武晓燕&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/kdgOYWJvlFbd7X-Up0jCRg&quot; target=&quot;_blank&quot;&gt;磊哥和Java&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Kafka&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Kafka&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%95%88%E7%8E%87&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;效率&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%80%A7%E8%83%BD&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;性能&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795961.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795961.html</guid>
      <pubDate>Fri, 30 Aug 2024 09:14:34 GMT</pubDate>
    </item>
    <item>
      <title>关于AI治理策略的六个考虑</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;关于AI治理策略的六个考虑&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:Raymond&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 16:18:44&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。 &lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/39c017f55d18cff9e524013a77145538832a7a.jpg&quot; style=&quot;visibility: visible; width: 800px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;你的AI很智能,但它安全吗?探索保护你的企业和客户的必备治理策略。&lt;/p&gt;&lt;h4&gt;要点:&lt;/h4&gt;&lt;p&gt;• 治理至关重要:如果没有适当的AI治理,公司可能会面临合规失败和失去客户信任的风险。&lt;/p&gt;&lt;p&gt;• 策略优先:一个明确的AI策略和治理框架可以在创新与混乱之间划清界限。&lt;/p&gt;&lt;p&gt;• 合规推动信任:强有力的AI治理不仅能满足监管要求,还能增强客户信任和竞争优势。&lt;/p&gt;&lt;p&gt;大多数技术的一个反复出现的趋势是,它们通常在广泛应用之前,相关法律还未完全确立。对于技术的治理——尤其是那些被广泛使用的技术——对于保护人们、公司及其数据免受滥用至关重要。&lt;/p&gt;&lt;p&gt;AI似乎也不例外,但它是“新瓶装旧酒”,还是“旧瓶装新酒”呢?&lt;/p&gt;&lt;p&gt;尽管AI已经存在了大约60年,但由于其多次的反复发展,直到最近才逐渐受到关注。自从ChatGPT于2022年底出现以来,许多公司开始开发用于各种应用的AI模型。&lt;/p&gt;&lt;p&gt;这种技术的使用可能带来许多风险,包括暴露敏感数据、违反知识产权法、产生明显错误的结果以及违反现有或正在制定的法规。因此,AI的应用必须谨慎。&lt;/p&gt;&lt;h4&gt;为何AI治理至关重要&lt;/h4&gt;&lt;p&gt;直到最近,AI几乎是数据科学家和其他数据专家的专属领域。因为数据通常只在内部用于改进产品和服务,或分析一般客户行为,因此对数据治理框架的需求并不紧迫。随着GenAI在工作场所的广泛应用,这一情况已经发生了变化。&lt;/p&gt;&lt;p&gt;如今,大多数公司都意识到,为了跟上同行的步伐,他们需要在产品或服务中引入某种形式的GenAI或大型语言模型(LLMs)——而这也伴随着必要的治理。&lt;/p&gt;&lt;p&gt;一个问题是:AI治理程序尚未形成,更不用说定型了。AI的底层技术仍在发展,这使得立法机构难以确定一个固定的合规方案。&lt;/p&gt;&lt;p&gt;但公司不能等待多年才看到最终的治理框架。相反,他们必须立即开始建立一个可行的、可辩护的、可扩展的,最终是灵活的框架,以监督和管理他们企业中的AI使用。在部署AI模型之前,公司需要充分理解这些模型在其业务背景下的生命周期以及它们的工作原理。当然,所有AI项目都应通过合规、法律和信息安全团队的常规治理审核流程。&lt;/p&gt;&lt;h4&gt;建立AI治理框架&lt;/h4&gt;&lt;p&gt;适当的数据治理涉及数据质量、数据安全、伦理使用和隐私保护等多个方面。根据你的业务和所使用数据的性质,AI治理可能比数据治理更为重要(也更为耗费资源)。&lt;/p&gt;&lt;p&gt;以数据分析为例,通常在人们做出决策和行动之前,总会有一个人来验证结果,但由于AI能够在更大规模上运作,它可以在毫秒内做出几十个预测,而无需解释。AI甚至可以在自动决策场景中被训练为自主采取行动。&lt;/p&gt;&lt;p&gt;在考虑你的AI治理模型时,可以考虑以下几个基本要点:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. 考虑使用AI的策略&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;你的计划是什么?你的目标是什么?问问自己,公司是否真的有一个AI的业务案例,也就是说,嵌入在你的产品或服务中的AI是否会对你的客户产生有意义的影响?如果答案是否定的,那么可能就不值得花费精力和成本去开发。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. 制定AI使用监控政策&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;如果答案是肯定的,那么第二个考虑因素应该是制定一项政策或声明,规定AI在公司内部如何使用以及由谁使用,这个基础文件可以采用正式政策的形式,明确说明为什么使用AI、由谁使用以及用于什么目的。政策往往更具规范性和具体性,规定了技术必须——而不是应该——如何使用。你的政策还可以提及行业标准,以作为基准。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. 考虑制定AI使用指南&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;或者,你可以制定指南,传统上指南会列出推荐的使用方法和最佳实践。两种方法各有优缺点。根据你的行业、你所受的监管程度以及公司使用的数据类型(如B2C或B2B),你可以选择使用指南,以免过度限制创新或试验。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. 创建AI文档组合&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;无论你选择何种文件,目标都是创建一系列文档,尽可能为员工如何使用新技术提供指导,这将帮助他们在使用数据时,以道德和负责任的方式创建功能丰富的产品和服务。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. 建立法律合规框架&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;接下来,确保你的数据处理的法律基础是坚实的。如果你处理的是欧盟公民的数据,特别是要根据GDPR第6条的规定,为你的情况找到最合适的法律依据。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6. 确定AI决策者&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;另一个重要的工作是创建AI审批流程,包括指定决策者。&lt;/p&gt;&lt;p&gt;理想的AI治理框架应该定位在概念化与运营化阶段之间,这将确保任何为评估想法和用例而设立的团队、委员会或论坛能够采用整体性和跨职能的视角。通过这种方法,他们可以全面评估AI对你的商业模式带来的独特风险,并决定哪些举措应推进到生产阶段。&lt;/p&gt;&lt;h4&gt;为广泛的AI监督做好准备&lt;/h4&gt;&lt;p&gt;全球各地的立法者很快将要求大多数公司建立强有力的AI治理监督模型。通过采用将人权与商业洞察相结合的更广泛视角,企业可以通过增强客户信任来获得竞争优势。&lt;/p&gt;&lt;p&gt;这种以隐私为先、以业务为中心的方法使公司能够自信地开发以价值为驱动的模型,同时确保数据隐私和符合监管要求,提供超越单纯合规的战略优势。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:庞桂玉&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;http://www.d1net.com/ai/industry/582047.html&quot; target=&quot;_blank&quot;&gt;企业网D1Net&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI%E6%B2%BB%E7%90%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI治理&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795955.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795955.html</guid>
      <pubDate>Fri, 30 Aug 2024 08:18:44 GMT</pubDate>
    </item>
    <item>
      <title>2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;2024年加密货币犯罪报告:勒索软件攻击者越来越利用社会工程学&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:爱吃炸鸡&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:07:16&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;高级网络犯罪分子越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;2024年上半年,尽管整体非法活动有所下降,但加密货币犯罪中的两类特定犯罪活动——被盗资金和勒索软件却在上升。报告详细分析了这些犯罪活动的趋势和背后的原因,并探讨了加密货币生态系统中的一些积极发展。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202408/30/265e45054f360db5b384725690b6b8ec88d0be.jpg&quot; style=&quot;visibility: visible; width: 615px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;关键发现&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-idce86Ri&quot;&gt;&lt;li data-id=&quot;ld70c578-5JyerKWc&quot;&gt;2024年至今,链上非法活动总量下降了近20%,表明合法活动增长速度超过了非法活动;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-koyWT2eJ&quot;&gt;尽管与去年同期相比非法交易有所下降,但两类非法活动——被盗资金和勒索软件却在增加;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-oirWd2nw&quot;&gt;被盗资金流入量几乎翻了一番,从8.57亿美元增至15.8亿美元,勒索软件流入量增长了约2%,从4.491亿美元增至4.598亿美元;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-W8sdikJS&quot;&gt;每次盗窃事件中被盗的加密货币平均金额增加了近80%,加密货币攻击者似乎又回到了他们的目标——中心化交易所,而不是优先考虑DeFi协议。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-MvKjyFPH&quot;&gt;高级网络犯罪分子,包括与朝鲜有关的IT工作者,越来越多地利用链下方法,如社会工程学,通过渗透与加密相关的服务来窃取资金。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;勒索软件研究发现&lt;/h4&gt;&lt;p&gt;2024年有望成为勒索软件收入最高的一年,这在很大程度上归功于执行较少高调攻击但收取大额支付的勒索软件变种(行业称为“大猎物狩猎”)。2024年记录了有史以来最大的勒索软件支付,大约7500万美元支付给了Dark Angels勒索软件组织。&lt;/p&gt;&lt;p&gt;针对最严重勒索软件变种的中位数勒索支付从2023年初的近20万美元飙升至2024年6月中旬的150万美元,表明这些变种正在优先针对可能因资金充足和系统重要性而更有可能支付高额赎金的大型企业和关键基础设施提供商。&lt;/p&gt;&lt;p&gt;由于最近的执法行动破坏了最大的参与者,如ALPHV/BlackCat和LockBit,勒索软件生态系统经历了一些分裂。在这些破坏之后,一些附属机构迁移到效果较差的变种或推出了自己的变种。&lt;/p&gt;&lt;h4&gt;勒索软件与加密货币&lt;/h4&gt;&lt;p&gt;加密货币生态系统在2024年见证了一些积极的发展。在许多方面,加密货币继续获得主流接受,紧随美国批准现货比特币和以太坊交易型开放式指数基金(ETF)以及财务会计标准委员会(FASB)的公平会计规则的修订之后。但随着任何新技术的采用,合法和非法行为者都会增长。尽管与前几年相比,今年的非法活动有所下降,但特定网络犯罪相关实体的加密货币流入显示出一些令人担忧的趋势。&lt;/p&gt;&lt;p&gt;如下图所示,2024年流入合法服务的资金是自2021年上一次牛市高峰以来最高的,这是一个令人鼓舞的迹象,表明加密货币在全球范围内的持续采用。流入风险服务(主要由混合器和不收集KYC信息的交易所组成)的资金趋势高于去年同期。与此同时,非法活动的总体下降了19.6%,从209亿美元降至167亿美元,表明合法活动的增长速度超过了链上非法活动。这些非法数字是基于研究机构今天识别的非法地址流入量的下限估计。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/4261db64846d630b4e5742079f3f503889af08.jpg&quot; alt=&quot;&quot; title=&quot;1723952814_66c16eae5b641ee1d2632.png!small?1723952816009&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;Chainalysis开始将疑似非法活动纳入某些犯罪类型的总估计中,基于Chainalysis Signals数据。此前,估计只包括与Chainalysis有支持文件证明属于某个非法实体的地址相关的总数。Signals利用链上数据和启发式方法来识别特定未知地址或地址簇的疑似类别,置信度从可能到几乎确定不等。Signals的引入不仅随着时间的推移增加了我们对某些类别非法活动的估计,而且还使我们能够完善前几年的估计。&lt;/p&gt;&lt;p&gt;尽管与去年同期相比非法交易总体下降,但被盗资金和勒索软件这两类非法活动却有所上升。通过7月底的年增长来看,加密货币抢劫中被盗资金增加了近一倍,从8.57亿美元增至15.8亿美元。2023年6月底的勒索软件流入总计为4.491亿美元。今年同期,勒索软件流入量已超过4.598亿美元,这表明我们可能正面临另一个勒索软件创纪录的年份。&lt;/p&gt;&lt;h4&gt;攻击者瞄准中心化交易所&lt;/h4&gt;&lt;p&gt;2023年相比2022年加密货币被盗价值下降50%,而2024年黑客活动又出现了复苏,从被盗金额和黑客事件的数量可以看出这一点。如下图所示,截至7月底,今年累计被盗金额已超过15.8亿美元,比去年同期增长了84.4%。有趣的是,2024年的黑客事件数量仅比2023年略有增加,同比增长了2.76%。每次事件中被盗的平均金额增加了79.46%,从2023年1月至7月的每次事件590万美元增加到2024年迄今为止的每次事件1060万美元。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/b82e21978123a9c7ef36797e9d963f629e0b3c.jpg&quot; alt=&quot;&quot; title=&quot;1723952836_66c16ec43a5bcb5502201.png!small?1723952837726&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;被盗金额的变化很大程度上归因于资产价格的上涨。例如,比特币的价格从2023年前七个月的平均价格26141美元上涨到今年7月的平均价格60091美元,涨幅达130%。&lt;/p&gt;&lt;p&gt;Chainalysis跟踪的一个黑客指标是黑客事件发生后被盗资金流动的交易量。这可以作为被盗资产的一个代理,因为很多时候被黑客攻击的服务不会公开报告被盗的具体细节。2024年与被盗资金活动相关的BTC交易量占这些流动的40%。这种模式似乎是由被攻击实体类型的变化所驱动的,2024年中心化服务被黑客攻击以获取高额资金。特别是像DMM这样的中心化交易所,其损失了3.05亿美元。在DMM黑客事件中,大约19%的被盗金额在2024年被盗,据报道大约有4500 BTC被盗。&lt;/p&gt;&lt;p&gt;加密货币攻击者似乎在四年专注于去中心化对手之后,再次回归他们的老路,瞄准中心化交易所,后者通常不交易比特币。尽管对DeFi服务——特别是跨链桥接的攻击在2022年达到顶峰,但攻击者在中心化交易所增加安全投资后,将注意力转向了更新、更脆弱的组织。现在包括与朝鲜有关的攻击者在内的黑客,正在利用越来越复杂的社会工程学策略,例如申请IT工作,通过渗透中心化交易所来窃取加密货币。&lt;/p&gt;&lt;h4&gt;2024年有望成为勒索软件收入最高的一年&lt;/h4&gt;&lt;p&gt;2023年勒索软件支付金额创下新高,超过10亿美元。这些巨额支付来自一些高调、破坏性的攻击,如Cl0p对Move&amp;nbsp;IT零日的利用以及ALPHV/BlackCat勒索软件团伙对凯撒酒店物业的利用,导致该公司支付了1500万美元的赎金。尽管针对勒索软件的恶意部署和组织基础设施的主要执法行动,依旧出现了如此多的赎金支付,截至2023年6月底的累计勒索软件支付总额约为4.491亿美元。今年同期,我们记录的勒索软件支付总额为4.598亿美元,这使2024年坚定地走上了创纪录的道路。&lt;/p&gt;&lt;p&gt;Kiva咨询公司的总法律顾问Andrew Davis表示,尽管对LockBit和ALPHV/BlackCat的打击持续加大,但总体勒索软件活动依旧相对稳定。“无论是这些众所周知的威胁行为者的前附属机构,还是新的初创企业,大量新的勒索软件团伙加入了这场混战,展示了他们进行攻击的新方法和技巧,如扩大初始访问和横向移动的方法。”&lt;/p&gt;&lt;p&gt;如下图所示,勒索软件攻击也变得越来越严重。我们观察到的一个显著变化是每年最大赎金支付的飙升。到目前为止,2024年出现了有史以来最大的单笔支付,约为7500万美元,支付给了名为Dark Angels的勒索软件团伙。这种最大支付金额的增长也代表了从2023年到今年的最大支付金额增长了96%,从2022年的最大支付金额增长了335%。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/c5f1df74092b54d61db7948cd898b26295bdfb.jpg&quot; alt=&quot;&quot; title=&quot;1723952869_66c16ee57189b9bd2742c.png!small?1723952870707&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;如果迅速增加的最大支付金额还不够糟糕的话,这种每年的异常值趋势实际上还伴随着中位数支付的增长趋势。从2023年第一周的中位数支付金额198939美元增加到2024年6月中旬的中位数支付金额150万美元。这代表了在此期间最严重株系支付的典型赎金规模的7.9倍增长,自2021年初以来增长了近1200倍。这种模式可能表明,这些勒索软件组织开始瞄准大型企业和关键基础设施提供商,这些目标可能因为其雄厚的资金和系统重要性而更支付高额赎金。&lt;/p&gt;&lt;p&gt;勒索软件的另一个趋势是攻击也变得更加频繁,根据eCrime.ch的数据泄露网站统计,2024年到目前为止至少增加了10%的攻击。作为勒索软件事件的衡量标准,勒索软件泄露网站的帖子同比增加了10%。然而链上测量的总勒索软件支付事件同比下降了27.29%。将这两个趋势结合起来看,尽管今年迄今为止的攻击可能有所增加,但支付率却同比下降了。这对生态系统来说是一个积极的信号,表明受害者可能准备得更好,不需要支付赎金。&lt;/p&gt;&lt;p&gt;Davis说:“Kivu参与协助受害组织的事务中,大约有65%在没有支付赎金的情况下得到解决,显示出受影响组织的韧性和没有必要支付攻击者的积极趋势。”&lt;/p&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动继续呈下降趋势,但两类加密货币犯罪似乎正在逆势而上:被盗资金和勒索软件。这两种犯罪类型通常由具有某些共同特征的参与者实施。它们通常是利用先进网络基础设施的有组织团体。这些参与者以精心策划的社会工程学策略而闻名,他们利用这些策略闯入加密业务,窃取加密货币资产,并利用专家级洗钱技术试图在资金被查封前套现。&lt;/p&gt;&lt;p&gt;打击网络犯罪的关键是破坏其供应链,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和套现点。由于加密货币盗窃和勒索软件的运营几乎完全在区块链上进行,配备正确解决方案的执法部门可以通过追踪资金来更好地理解和破坏这些参与者的运营。&lt;/p&gt;&lt;p&gt;eCrime.ch的研究员Corsin Camichel指出,包括Operation Cronos、Operation Duck Hunt、Operation Endgame等打击行动和执法行动对于遏制这些活动并表明犯罪行为将会有后果至关重要。&lt;/p&gt;&lt;h4&gt;结论&lt;/h4&gt;&lt;p&gt;尽管加密货币生态系统中的非法活动总体呈下降趋势,但被盗资金和勒索软件这两类加密货币犯罪似乎正在逆势而上。这些犯罪类型通常由具有某些共同特征的行为者实施,他们通常是利用复杂的网络基础设施的有组织的团体。在被盗资金的情况下,与朝鲜有关的黑客组织是一些最大抢劫案的幕后黑手。这些行为者以计算出的社会工程策略而闻名,他们闯入加密业务,窃取加密资产,并利用专业的洗钱技术,在资金被查封前尝试变现。&lt;/p&gt;&lt;p&gt;报告还强调了通过跟踪资金流向来破坏网络犯罪供应链的重要性,包括攻击者、附属机构、合作伙伴、基础设施服务提供商、洗钱者和提现点。由于加密货币抢劫和勒索软件的操作几乎完全在区块链上进行,执法部门配备了正确的解决方案,可以追踪资金流向,更好地理解和破坏这些行为者的操作。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;https://www.chainalysis.com/blog/2024-crypto-crime-mid-year-update-part-1/&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.freebuf.com/articles/neopoints/408911.html&quot; target=&quot;_blank&quot;&gt;FreeBuf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86%E8%B4%A7%E5%B8%81&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密货币&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8B%92%E7%B4%A2%E8%BD%AF%E4%BB%B6&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;勒索软件&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795943.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795943.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:07:16 GMT</pubDate>
    </item>
    <item>
      <title>别让加密难倒你:Python爬虫攻克加密网站的实战教程</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;别让加密难倒你:Python爬虫攻克加密网站的实战教程&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:攻城狮成长日记&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 15:03:43&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;今天有个朋友向我求助,希望我帮他爬取一个网站上的内容。网站内容如下:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/c50ccd18206254fb89d65784b20c4be5d54d15.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;aHR0cHM6Ly93d3cuY2NwcmVjLmNvbS9uYXZDcXpyLyMvCg==&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;打开上述网址,进入开发者模式,这些数据的请求接口,正常逻辑是通过搜索页面上内容进行锁定请求接口。但是,进行搜索时,发现什么都搜索不到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/b8452de03a8013533bd2092de32feb0f9d2ecc.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上图发现,这些数据只请求了一个接口,当我点击负载和响应这两个标签,发现数据是被加密了,所以,我们搜索不了页面的内容。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/a58917d366aae0842e762364be32ac734ae281.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;负载加密内容&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/44933d7925dd6ea07e8703a9812235aea04f47.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;响应加密内容&lt;/p&gt;&lt;h4&gt;浏览器为啥是明文?&lt;/h4&gt;&lt;p&gt;这时相信小伙伴,心中都有一个疑问浏览器为啥是明文?&amp;nbsp;&amp;nbsp;浏览器在收到数据后,会自动采用服务器返回的资源文件对加密内容进行解密并显示明文,这也是我们能够在页面上看到正常内容的原因。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/994e234466fe0e9c5b4134d8f2deff02c58e56.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;如何定位到加密资源文件&lt;/h4&gt;&lt;p&gt;通过XHR/提取断点,该方法是通过匹配URL包括请求路径关键字进行断点,具体配置如下图:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/0126a7d47053b9085f78044456dc78f9c939b3.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;这时我们重新刷新网页,如下图所示,网站就成功进入我们上一步设置的断点中。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/233ebba10d3164e2607137dc8bb9356d16c8fd.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;其中,h就是加密后的请求体参数,然后我们从调用堆栈中一步步往前推。至于如何找呢?这里是有一个技巧的,我们需要找到前一步请求体还没加密,后一步请求体就加密成功了。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/f1c250e12f4ee5490411724a2f08181f6530e6.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密后&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202408/30/f8b9b8d00ff393c197457695b6b2539406a6f1.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;请求体加密前&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其中上图o就是请求体加密之前的参数,s就是加密后的参数。chunk-common.a25fd3ce.js就是进行加密的js。通过点击堆栈的js名称就可以定位到对应的地方。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4&gt;扣取代码&lt;/h4&gt;&lt;p&gt;经过上一步分析,我们知道o就是加密之前的参数,就在js代码找o定义的位置,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/04c5f1831bc7855e5d5503d9192f421f35e032.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;下面代码就是请求体的参数,通过上述代码发现id是通过uuid方法生成的。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;{
        &quot;id&quot;: &quot;rtmhwib79r4ytdgn&quot;,
        &quot;projectKey&quot;: &quot;honsan_cloud_ccprec&quot;,
        &quot;clientKey&quot;: &quot;rtmhwialwggc91l6&quot;,
        &quot;token&quot;: null,
        &quot;clientDailyData&quot;: {},
        &quot;acts&quot;: [
        {
        &quot;id&quot;: &quot;rtmhwib65mon96h1&quot;,
        &quot;fullPath&quot;: &quot;/cloud.sys.tomcatV11/api/v1/template/getPages&quot;,
        &quot;args&quot;: [
        {
        &quot;yuPiLou&quot;: {
        &quot;templateId&quot;: &quot;32d3044760964ed8927bad49e545ba4b&quot;,
        &quot;pageNo&quot;: 1,
        &quot;pageSize&quot;: 20,
        &quot;where&quot;: {
        &quot;projecttype&quot;: &quot;PG3&quot;,
        &quot;state&quot;: &quot;42&quot;
        }
        }
        }
        ]
        }
        ]
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接着我们需求扣取这个uuid方法。通过鼠标悬停在这个方法上面,就会弹出面板,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/417aa323287dc248757500a2fc7e6a3a5ec685.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;点击后就会调到uuid方法定义的地方,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/82524359223b2526ef327452a8d5890ef12adb.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把这段代码扣取下面,如下所示:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;uuid = function (t, n) {
        void 0 === t &amp;amp;&amp;amp; (t = 16),
        void 0 === n &amp;amp;&amp;amp; (n = !1),
        !n &amp;amp;&amp;amp; t &amp;lt; 16 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=false 时 len 不能小于 16&quot;),
        t = 16),
        n &amp;amp;&amp;amp; t &amp;lt; 12 &amp;amp;&amp;amp; (console.error(&quot;uuid useCase=true 时 len 不能小于 12&quot;),
        t = 12);
        var i = ((new Date).getTime() + 1e14).toString();
        return i += (&quot;000&quot; + (++e.uuidCount).toString()).substr(-3, 3),
        i = n ? parseInt(i).to62() : parseInt(i).toString(36),
        i += randomStr(t),
        i = i.substr(0, t),
        i
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;把this关键的全部删除它。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;然后通过node进行运行,如下图所示报错了e没有定义。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/69c25ca2798ba18552e454c2c76fded67b07a7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;于是,我们再去源码中找改值是什么?通过选中该值,经过几次的确认。该值是NaN,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/13d6772044a54072e200672b68b6abc9aeb9ed.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;我们再自己扣取的代码写死它,再次运行。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/f17578d96dfd29d745f5698a9b8daed2b8d682.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;发现这是报randomStr没有定义,我们再去源码找这个方法进行补环境。通过搜索发现了randomStr方法,该方法有调用了random。于是我们两个方法一起扣取下来。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/b4c3c9a90ed2a54d506309f6a58a2e8a485691.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;再次运行,没有报错了,成功打印了uuid,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/d5d129863959cb56eaf384b4dd5e912141224b.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;把之前扣取下来的请求体,id字段固定值替换成uuid函数生成的动态值,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/514cfe589638a1e08bf9414d94ba495cdf0475.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;最重要的一步就是扣取加密的JS代码啦,&amp;nbsp;在请求体参数附近查看this.aes.encode(a)加密方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/49fcbd651a85c280b9a073694aea25510ec648.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;通过上面介绍的方面快速定位到这个加密的方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202408/30/4388efa40fa240126292649bf2d62ce026ca53.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;该方法又调用了另外一个方法this.encryptCode,通过关键搜索也找到了encryptCode方法,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/822fd4069f52dfedc375065822751c973da87a.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;加密方法&lt;/p&gt;&lt;p&gt;按照编程习惯,附近也会有对应的解密方法的,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/69c057124949b1e5c08186d3cb64e75052034c.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;解密方法&lt;/p&gt;&lt;p&gt;现在加密和解密的方法都找到了,我们把它全部扣取下面进行调试,发现缺什么方法再进行补。重新定义一个方法生成加密请求头,后续让python调用这个方法并传入分页参数。如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202408/30/b3c8bc592bcc125e9d9120518b3b57023f1ee2.webp&quot; style=&quot;width: 854px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;测试该方法是否能正常生成加密请求头,执行如下命令:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;console.log(encrypt())&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行上述方法后,输入如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/725c74941411fa599f56442715aca852accd35.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;通过python模拟请求&lt;/h4&gt;&lt;p&gt;这里介绍一个非常快捷的方式用python模拟一个浏览器请求,首先我们先在开发者模式选择这条请求,然后右击选择**将所有列表复制为cURL(Bash)**,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202408/30/749729a16cc0c8d5f256670c41f85157f09c2e.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,来的这个工具网站[1],粘贴刚才复制的cURL信息,就可以根据自己喜欢的编程语言生成模拟浏览器请求的代码,如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202408/30/1584af686dbc260a063323cf1c711a93d15fd4.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;然后,把生成的代码拷贝下来,进行修改。通过python的第三方库execjs调用js代码并执行对应的方法。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;jscode=open(&quot;./test.js&quot;,&#39;r&#39;,encoding=&#39;utf-8&#39;).read()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;以读的模式打开test.js并赋值给jscode&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;data = execjs.compile(jscode).call(&quot;encrypt&quot;,page)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;通过execjs调用jscode对象,并通过call方法调用encrypt加密方法,并传入分页参数page。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;下图是python中的完整代码:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202408/30/c49bc9600825a5a353b4457c482567b0786035.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;执行上述代码后,成功获取网站的数据如下图所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/895d6c029de42dcdc7e07182a251b1be6deb2f.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;遇到的问题&lt;/h4&gt;&lt;p&gt;在python中使用execjs库,出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 244: illegal multibyte sequence,一般遇见编码问题先看看代码里写没写encoding=&#39;utf-8&#39;,没写的话写加上试试。加了也不行。通过在python代码中加入如下代码:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;import subprocess
        from functools import partial
        subprocess.Popen = partial(subprocess.Popen, encoding=&quot;utf-8&quot;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4&gt;脚本获取方式&lt;/h4&gt;&lt;p&gt;上述脚本已经上传上传到gitee,有需要的小伙伴可以自行获取。gitee上的仓库主要是分享一些工作中常用的脚本。小伙伴可以frok或者watch仓库,这样有更新可以及时关注到。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202408/30/8484a7822421cb494c560514d19112a4f2d7c7.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;仓库地址:https://gitee.com/didiplus/script&lt;/p&gt;&lt;p&gt;工具网站:&amp;nbsp;https://curlconverter.com/&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MjM5OTc5MjM4Nw==&amp;amp;mid=2457381767&amp;amp;idx=1&amp;amp;sn=09cd6a68fc56547e2dcc62936ebd90b5&amp;amp;chksm=b17eee44751306601f52de7bf8b56deffcbdf3b1a076a6f2dbed742139d7e22870b77cc95abd&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0830EIoSh7cUeOMxdM8v93Fa&amp;amp;sharer_shareinfo=dc846dfbefb8eab3b644a85e5ccb2e52&amp;amp;sharer_shareinfo_first=dc846dfbefb8eab3b644a85e5ccb2e52#rd&quot; target=&quot;_blank&quot;&gt;攻城狮成长日记&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%8A%A0%E5%AF%86&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;加密&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Python&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Python&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%88%AC%E8%99%AB&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;爬虫&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/795942.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/795942.html</guid>
      <pubDate>Fri, 30 Aug 2024 07:03:43 GMT</pubDate>
    </item>
    <item>
      <title>一周打完1000场官司,中科院发布首个AI法庭AgentCourt!</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;一周打完1000场官司,中科院发布首个AI法庭AgentCourt!&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-08-30 14:38:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;在人工智能重塑各个行业的今天,法律界也迎来了前所未有的变革。传统的法律实践面临着效率低下、成本高昂等挑战,而AI技术的出现为解决这些问题提供了新的可能。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;从最初斯坦福小镇火遍全网,25个由大语言模型(LLMs)驱动的智能体生活交友,打开了多Agent新视角。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;而现在,AI法庭也来了!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;最近,来自中科院深圳先进研究院的研究团队开发了一个名为AgentCourt的模拟智能法庭,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;它是一个基于大语言模型(LLMs)的法庭模拟系统,旨在通过AI驱动的虚拟法庭来革新法律教育、案例分析和法律研究。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;te

@ovo-Tim
Copy link
Contributor Author

ovo-Tim commented Sep 6, 2024

@TonyRL Hi, did you forget to merge this PR?🙏

@TonyRL
Copy link
Collaborator

TonyRL commented Sep 6, 2024

Copy link
Contributor

github-actions bot commented Sep 8, 2024

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Sun, 08 Sep 2024 06:29:50 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>十款超好用数据安全工具,你用过哪个?(附下载链接)</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;十款超好用数据安全工具,你用过哪个?(附下载链接)&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:小薯条&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-06 18:01:24&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;在本文中,我们盘点了最具代表性的十款数据安全态势管理(DSPM)工具,并总结了其对应的功能、优势,方便大家全面了解这些工具的潜力和适用场景。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;随着数字时代的飞速发展,数据已成为企业最宝贵的资产之一。但数据的快速增长和多样化的存储方式也带来了前所未有的安全挑战,数据泄露、黑客攻击和内部威胁等问题日益严峻。如何在享受技术红利的同时,有效保障数据资产的安全,防止数据泄露、篡改及非法访问?&lt;/p&gt;&lt;p&gt;在这样的背景下,数据安全态势管理(DSPM)工具应运而生,成为保护数据资产、维护业务连续性的“重要武器”。&lt;/p&gt;&lt;p&gt;DSPM工具的核心功能在于实时监控、分析和响应数据安全事件,帮助企业构建一个全面、动态的安全防护体系。这些工具通过集成先进的算法和人工智能技术,能够预测潜在的安全威胁,及时发现异常行为,从而在数据安全事件发生之前采取预防措施。&lt;/p&gt;&lt;p&gt;在本文中,我们盘点了最具代表性的十款数据安全态势管理(DSPM)工具,并总结了其对应的功能、优势,方便大家全面了解这些工具的潜力和适用场景。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/06/07775a7570df148ccc274162b5a47d80342b2c.jpg&quot; style=&quot;visibility: visible; width: 600px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;Sentra&lt;/h4&gt;&lt;p&gt;Sentra 主要为企业提供一系列发现、分类、监控和保护其数据的相关功能;能够自动化地发现、分类和监控在云环境中传输的数据。具体来看有以下几个功能:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-DLEqwnem&quot;&gt;&lt;li data-id=&quot;ld70c578-miZ7nKNo&quot;&gt;机器学习和元数据集群:利用这些技术来检测错误配置、合规违规和加密类型等信息;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-rt91vBqF&quot;&gt;纯API方法的无代理工具:这意味着它可以快速连接到多云环境,且不会对云上工作负载性能造成干扰;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-LqHujgT5&quot;&gt;数据安全的透明度和可见性:Sentra 提供了数据在整个云环境中流动的可见性,帮助企业更好地理解和管理其数据安全态势;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-j1f4rxki&quot;&gt;安全策略定制:企业可以根据自身的安全需求和合规要求,定制安全策略;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-q6r2r8y2&quot;&gt;集成到安全自动化平台:Sentra 能够无缝集成到现有的安全自动化平台中,提高企业对数据安全事件的响应能力;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-SXhiZglh&quot;&gt;支持多云环境:Sentra 支持包括AWS、Azure、GCP等主流云平台,帮助企业在多云环境中统一管理数据安全;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1Dac1Qfc&quot;&gt;数据检测和响应工具:Sentra 提供了近实时的数据检测和响应工具,帮助企业及时发现并应对数据安全威胁;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-UebNw9JI&quot;&gt;仪表盘和报告:Sentra 提供了一系列可操作的仪表盘和报告,帮助企业监控数据安全态势并生成必要的合规报告;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Sentra 作为一个DSPM工具,其设计目标是帮助企业在复杂的云环境中有效地管理和保护其数据资产。通过自动化和集成的方法,Sentra 旨在简化数据安全的工作流程,提高数据安全性和合规性。&lt;/p&gt;&lt;p&gt;传送门:https://www.sentra.io/&lt;/p&gt;&lt;h4&gt;Flow Security&lt;/h4&gt;&lt;p&gt;Flow Security能够能够自动验证和执行现有的安全策略,帮助开发人员和数据分析师在利用数据的同时,确保数据受到适当的保护,实现数据利用与保护的平衡,帮助企业组织保护其应用程序系统免受各种安全威胁,其主要功能如下:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-Kj1pNdYK&quot;&gt;&lt;li data-id=&quot;ld70c578-OEzdPGiZ&quot;&gt;数据发现与分类:Flow Security能够自动发现组织内的所有数据,包括敏感数据和影子数据,并对数据进行分类,以便更好地管理和保护;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-O1x93zLw&quot;&gt;风险评估与优先级:该工具能够评估数据泄露的风险,并根据数据的量、暴露情况和安全态势确定安全隐患的风险级别,帮助安全团队优先处理最紧迫的安全问题;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-DqnvxPQ6&quot;&gt;安全防护与监控:Flow Security提供安全防护措施,如加密和访问控制,并监控数据的使用和访问,以便及时发现和响应安全事件;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Flow Security帮助企业符合PCI、GDPR和CCPA等现有法规要求,通过识别和修补任何违反数据安全管理要求的行为,精简过时数据,降低数据风险。&lt;/p&gt;&lt;p&gt;传送门:https://www.flowsecurity.com/&lt;/p&gt;&lt;h4&gt;Concentric Semantic Intelligence&lt;/h4&gt;&lt;p&gt;Concentric Semantic&amp;nbsp;Intelligence将DSPM与威胁检测相结合,可集成各种安全工具,涵盖非结构化和结构化数据,并提供深入的AWS服务数据覆盖。它利用深度学习和自然语言处理技术,为企业提供全自动化的数据安全管理。&lt;/p&gt;&lt;p&gt;Concentric Semantic&amp;nbsp;Intelligence的主要功能包括:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-Tap5jmUp&quot;&gt;&lt;li data-id=&quot;ld70c578-W3HpHvvM&quot;&gt;语义理解与数据发现:通过深度学习技术,系统能够理解数据的含义和上下文,进行分类;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-8HZ93owl&quot;&gt;分析与风险识别:系统能够分析数据共享和访问情况,识别潜在风险&amp;nbsp;;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-zCoGqEFd&quot;&gt;数据分类与标记:支持自定义数据分类和标记,自动化敏感数据的识别和保护;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-5Ysk93IB&quot;&gt;与现有分类体系集成:能够与 Microsoft Information Protection 和 Google 等第三方分类体系集成;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-eZ3StmFo&quot;&gt;数据视图与访问风险排查:提供数据视图,帮助用户了解数据位置和访问风险&amp;nbsp;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-EozPrEiF&quot;&gt;监控与自动化修复:持续监控数据安全状态,并自动修复潜在的数据泄露问题&amp;nbsp;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1yZRBOwZ&quot;&gt;自动化安全策略与策略交换市场:用户可以共享和获取风险相关的策略和工具&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Concentric Semantic Intelligence工具全自动化的数据管理流程、深度学习和自然语言处理技术驱动的智能分析能力、灵活的系统集成兼容性、专注于风险识别和数据保护的策略导向方法,以及通过策略交换市场促进的行业最佳实践共享,为企业提供了高效、精准且适应性强的数据安全解决方案。&lt;/p&gt;&lt;p&gt;传送门:https://concentric.ai/&lt;/p&gt;&lt;h4&gt;Polar&lt;/h4&gt;&lt;p&gt;Polar是一种专门设计的数据安全态势管理工具,用于帮助从事数据安全、合规和治理的专业人员。它可以有效映射不同云平台上大量混乱和难以管理的数据,并将它们分类为高级、普通和潜在等风险类别。它还可以给企业提供关于如何在未来减轻各种数据安全风险的建议。其主要功能包括:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-gfLhvh5u&quot;&gt;&lt;li data-id=&quot;ld70c578-pX54r0Rd&quot;&gt;数据发现:Polar能够扫描公司的整个云基础设施,包括S3存储桶、日志文件和影子数据,从而确定数据位置;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1WRryOHm&quot;&gt;数据分类:基于数据保护法规的定义来确定这些位置中的敏感数据,例如GDPR定义的个人可识别信息(PII)和支付卡行业(PCI)定义的金融数据;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-lx7bn4Ux&quot;&gt;数据流映射:Polar先发现现有数据的位置再定位潜在数据流。然后映射出实际数据流,这样我们就能看出哪名员工访问了哪个(我们甚至都不知道的)数据存储并从中下载了敏感数据;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Polar通过其强大的数据发现、分类和流映射功能,以及其在自动化和云原生支持方面的优势,正成为企业数据安全管理的有力工具。&lt;/p&gt;&lt;p&gt;传送门:https://www.polar.security/&lt;/p&gt;&lt;h4&gt;Cyera&lt;/h4&gt;&lt;p&gt;Cyera是一款专注于数据安全态势管理的工具,旨在通过提供全面的数据安全可见性,帮助企业深入了解其数据资产的安全状况,并采取相应的保护措施。主要功能包括:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-YKcq3R0t&quot;&gt;&lt;li data-id=&quot;ld70c578-DxaiLWz7&quot;&gt;敏感数据识别:Cyera能够扫描本地文件和云环境中的数据,实现企业所有数据资产的可见性,包括影子数据。同时还可以帮助企业识别放置错误的数据、配置错误的数据资产以及过于宽松的访问权限,从而识别暴露的敏感数据;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-kRWqWghr&quot;&gt;优先级评估:根据数据量、暴露情况和安全态势确定安全隐患的风险级别;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-qR7LcZ8y&quot;&gt;安全防护:提供一系列可操作的仪表盘,帮助安全团队监控和管理数据安全事件;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-uB4iPgqq&quot;&gt;监控:持续监控数据环境,及时发现并响应安全威胁;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Cyera在多云环境下的数据资产识别、敏感数据识别与保护、合规性监控以及数据利用与保护的平衡等方面具有广泛的应用价值。&lt;/p&gt;&lt;p&gt;传送门:https://www.cyera.io/&lt;/p&gt;&lt;h4&gt;Securiti&lt;/h4&gt;&lt;p&gt;Sentra是一款出色的数据安全态势管理工具,可以与当前主流的云数据安全方案集成。Sentra有一个云原生数据分类系统。这意味着,当企业的数据在云环境中传输时,该工具会自动化的发现、分类和监控这些数据。它还可以利用机器学习和元数据集群来检测错误配置、合规违规、加密类型等信息。主要功能包括:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-r1KsRXGQ&quot;&gt;&lt;li data-id=&quot;ld70c578-qnMFnn4k&quot;&gt;可以跨云、SaaS和IaaS工作;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-bIDFobLV&quot;&gt;可以提供优先级排序和补救策略;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-oRosBCN1&quot;&gt;用于监视和控制数据资产的集中仪表板;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-T9BBODIr&quot;&gt;可定制的警报方式;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-tXhTyAOz&quot;&gt;集成数百个符合隐私法规的内置插件;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Securiti是一款已得到Forbes和Gartner等专业机构的认可的热门DSPM工具。该工具通过可以主动式地控制各种复杂的安全、隐私和合规风险,使企业能够安全地发挥数据和云的更大价值。&lt;/p&gt;&lt;p&gt;传送门:https://securiti.ai/&lt;/p&gt;&lt;h4&gt;Laminar&lt;/h4&gt;&lt;p&gt;Laminar专注于云数据安全,为企业在云中构建和运行的所有内容提供全面的数据泄漏保护,可用于分析、分类和消除各种类型数据的风险。具体来看,其主要功能如下:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-pFYp15Mc&quot;&gt;&lt;li data-id=&quot;ld70c578-xYmDIHd2&quot;&gt;自动化和持续发现本地及云上数据;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-PxR2a2Ta&quot;&gt;检测托管资产、影子系统以及嵌入式虚拟实例中的敏感数据;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-NZv1kVPu&quot;&gt;以数据为中心的风险模型;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-OysAQZIk&quot;&gt;提供具体的风险改善建议;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-asrloHSN&quot;&gt;提供360度数据访问监控;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;值得注意的是,Laminar采用无代理和异步监控技术,对公共云帐户中运行的所有内容进行监控,包括数据存储、计算和数据出口通道。这种监控方式允许批准的数据移动,并在出现问题时及时发出警报,能够有效减少攻击面。&lt;/p&gt;&lt;p&gt;此外,在数据保护和合规性方面,Laminar能够帮助企业符合各种行业标准和法规要求,如PCI、GDPR和CCPA等,这有助于企业降低因违规而面临的财务和商誉损失。&lt;/p&gt;&lt;p&gt;传送门:https://laminarsecurity.com/&lt;/p&gt;&lt;h4&gt;Normalyze&lt;/h4&gt;&lt;p&gt;Normalyze可以扫描云端和本地数据源,并在识别配置错误时进行自动修复。它开箱即用地与SOAR、第三方工单、通知和自动化平台集成,例如ServiceNow、Slack、Jira等。具体功能如下:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-mEmaukB9&quot;&gt;&lt;li data-id=&quot;ld70c578-7UWze8aZ&quot;&gt;云端和本地数据源扫描:Normalyze能够扫描云端和本地数据源,提供全面的数据可见性。这有助于组织了解数据的存储位置、类型以及使用情况,为后续的数据分类和保护提供基础。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-IS2VmhyJ&quot;&gt;自动修复配置错误:在扫描过程中,Normalyze能够识别配置错误,并具备自动修复功能。这减少了因配置不当而导致的数据安全风险,提高了数据环境的稳定性。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-3YICZGmn&quot;&gt;集成与自动化:Normalyze开箱即用地与多种第三方工单、通知和自动化平台集成,如ServiceNow、Slack、Jira等。这种集成能力使得Normalyze能够无缝地融入组织的现有IT环境中,提高工作效率和响应速度。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-CawUI4T9&quot;&gt;敏感数据分类:基于敏感内容的全面数据分类是Normalyze的核心功能之一。通过对数据的详细分类,组织可以优先关注并保护重要的数据内容,降低数据泄露的风险。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-6oT9uA4d&quot;&gt;持续监控与警报:Normalyze不仅提供一次性的数据扫描服务,还能够持续监控数据环境的变化。一旦发现潜在的安全风险或数据泄露迹象,Normalyze会立即发出警报,帮助组织及时响应并采取措施。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-enze898X&quot;&gt;合规性支持:随着数据保护法规的不断完善,合规性成为组织必须面对的重要问题。Normalyze通过提供全面的数据可见性和安全性解决方案,帮助组织满足各种数据保护法规的要求,降低合规性风险。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;传送门:https://normalyze.ai/&lt;/p&gt;&lt;h4&gt;Varonis&lt;/h4&gt;&lt;p&gt;Varonis整合了数百个数据安全威胁应对用例,可以为企业构建单一的数据优先级风险视图,帮助企业主动、系统地消除内部数据安全威胁和网络攻击带来的数据风险。具体来看,有以下几个主要功能:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-QfdvR072&quot;&gt;&lt;li data-id=&quot;ld70c578-6QPXr8He&quot;&gt;全面数据发现:Varonis能够全面发现组织内部的所有数据资产,包括结构化数据、非结构化数据以及各类影子IT系统。它利用先进的扫描和索引技术,确保数据的全面性和准确性。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-QQ3Zdtxr&quot;&gt;智能数据分类:基于机器学习和人工智能算法,Varonis能够智能地对数据进行分类,识别出敏感数据如个人身份信息(PII)、支付卡信息(PCI)等。这种智能分类功能有助于组织优先保护重要的数据内容。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-ZFO0LsLc&quot;&gt;持续监控与警报:Varonis提供持续的数据监控功能,能够实时跟踪数据的使用情况和访问权限。一旦发现异常访问或潜在的数据泄露风险,它会立即发出警报,并提供详细的报告供组织参考。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-5wpNjA23&quot;&gt;权限管理和访问控制:除了监控功能外,Varonis还提供权限管理和访问控制功能。它能够帮助组织优化数据访问权限设置,确保只有授权用户才能访问敏感数据。同时,它还能提供详细的权限审计报告,帮助组织了解数据访问情况。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-VgnvD2wC&quot;&gt;合规性支持:随着数据保护法规的不断完善,合规性成为组织必须面对的重要问题。Varonis能够支持多种数据保护法规的要求,如GDPR、PCI DSS等。它提供合规性报告和审计功能,帮助组织降低合规性风险。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-XroyxELW&quot;&gt;集成与自动化:Varonis能够与多种第三方安全工具和服务集成,如SIEM、SOAR、防火墙等。这种集成能力使得Varonis能够无缝地融入组织的现有IT环境中,提高工作效率和响应速度。同时,它还支持自动化工作流程和脚本执行功能,进一步降低人工操作的风险和成本。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;传送门:https://www.varonis.com/?hsLang=en&lt;/p&gt;&lt;h4&gt;Wiz&lt;/h4&gt;&lt;p&gt;Wiz可帮助企业持续维护数据安全并轻松与第三方服务集成,无需代理即可扫描云环境的每一层,以提供对云上数据的完整可见性。它可以通过API连接到 AWS、Azure、GCP、OCI、阿里云等主流云平台,并兼容虚拟机、容器、无服务器存储模式。具体来看,主要功能如下:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-v5AeW8Ka&quot;&gt;&lt;li data-id=&quot;ld70c578-vd3ORUtq&quot;&gt;提供跨云环境的安全可见性:Wiz作为云原生安全领域的创新者,提供了全新的CNAPP解决方案,结合了多种云安全技术的优势;同时提供跨云环境的安全可见性,能够覆盖整个多云环境,并识别、关联和优先考虑所有层的风险。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-QQ45Mfi7&quot;&gt;数据监控及实时报警:Wiz提供持续的数据监控和实时警报功能,能够实时响应安全事件并减少损失。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-KIyszupe&quot;&gt;支持私有部署解决方案:Wiz既提供SaaS服务也支持私有部署解决方案,满足不同企业的需求&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;目前,Wiz添加了一个名为Runtime Sensor的轻量级代理,用于检测和响应。除了常见的云数据源之外,它还可以扫描各种本地数据库,例如MySQL、PostgreSQL、MongoDB及其云版本,并与超过60种不同的安全产品集成。但只有高级许可计划才能享受完整的DSPM功能集。&lt;/p&gt;&lt;p&gt;传送门:https://www.wiz.io/&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;参考资料:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-4mzf0BAG&quot;&gt;&lt;li data-id=&quot;ld70c578-vSQ38cEu&quot;&gt;https://www.51cto.com/article/748323.html&lt;/li&gt;&lt;li data-id=&quot;ld70c578-0VZwFB3C&quot;&gt;https://www.secrss.com/articles/65011&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.freebuf.com/sectool/410216.html&quot; target=&quot;_blank&quot;&gt;FreeBuf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%95%B0%E6%8D%AE%E5%AE%89%E5%85%A8&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;数据安全&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=DSPM&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;DSPM&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/796486.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/796486.html</guid>
      <pubDate>Fri, 06 Sep 2024 10:01:24 GMT</pubDate>
    </item>
    <item>
      <title>Springboot Starter 是如何工作的?</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;Springboot Starter 是如何工作的?&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:猿java&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-06 17:55:27&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;这篇文章,我们将详细分析 Springboot Starter 的实现原理、优秀的设计思想以及其优缺点。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;Springboot Starter 是 Springboot 项目的一部分,它提供了一种便捷的方式来引入一组相关的依赖和自动配置,以简化 Spring 应用程序的开发。这篇文章,我们将详细分析 Springboot Starter 的实现原理、优秀的设计思想以及其优缺点。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/06/64d40323087289b2465866e83d856293434a4c.jpg&quot; style=&quot;visibility: visible; width: 600px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h3&gt;实现原理&lt;/h3&gt;&lt;h4&gt;1. 依赖管理&lt;/h4&gt;&lt;p&gt;Springboot Starter 是通过 Maven 或 Gradle 的依赖管理来实现的。一个 Starter 通常是一个 Maven 依赖(或 Gradle 依赖),它本身并不包含功能代码,而是引入了一组相关的依赖。&lt;/p&gt;&lt;p&gt;例如,spring-boot-starter-web&amp;nbsp;会引入 Spring MVC、Tomcat 等必要的依赖。&lt;/p&gt;&lt;h4&gt;2. 自动配置&lt;/h4&gt;&lt;p&gt;Springboot 的核心特性之一是自动配置(Auto-Configuration)。通过使用&amp;nbsp;@EnableAutoConfiguration&amp;nbsp;注解,Springboot 可以根据类路径中的依赖、Java Bean 定义和其他属性来自动配置 Spring 应用程序。具体的自动配置逻辑是通过一系列&amp;nbsp;spring.factories&amp;nbsp;文件来定义的,这些文件位于各个 jar 包的&amp;nbsp;META-INF&amp;nbsp;目录下,列出了自动配置类。&lt;/p&gt;&lt;h4&gt;3. 条件注解&lt;/h4&gt;&lt;p&gt;自动配置类通常使用一系列的条件注解(如@ConditionalOnClass,@ConditionalOnMissingBean,@ConditionalOnProperty等)来控制配置逻辑是否生效。这些条件注解确保只有在满足特定条件时,相关的配置才会应用。&lt;/p&gt;&lt;p&gt;为了更好的说明 starter机制,我们通过一个示例来展示它是如何工作的。&lt;/p&gt;&lt;p&gt;(1) 引入依赖&lt;/p&gt;&lt;p&gt;这里以 Maven 项目为例,在pom.xml文件中,添加如下依赖:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;spring-boot-starter-web&amp;lt;/artifactId&amp;gt;
        &amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;spring.factories&amp;nbsp;文件是 Springboot 用于实现自动配置(Auto-Configuration)的一种机制。它位于每个 jar 包的&amp;nbsp;META-INF&amp;nbsp;目录下,并且遵循特定的格式来声明各种自动配置类和其他组件。以下是如何配置&amp;nbsp;spring.factories&amp;nbsp;文件的详细说明。&lt;/p&gt;&lt;p&gt;(2) 创建配置类&lt;/p&gt;&lt;p&gt;首先,创建一个自动配置类。例如,MyAutoConfiguration:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;package com.example.autoconfig;
        import org.springframework.context.annotation.Bean;
        import org.springframework.context.annotation.Configuration;
        @Configuration
        public class MyAutoConfiguration {
        @Bean
        public MyService myService() {
        return new MyService();
        }
        }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(3) 配置&amp;nbsp;spring.factories&lt;/p&gt;&lt;p&gt;&amp;nbsp;src/main/resources/META-INF&amp;nbsp;目录下创建&amp;nbsp;spring.factories&amp;nbsp;文件,并添加如下内容:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
        com.example.autoconfig.MyAutoConfiguration&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;spring.factories&amp;nbsp;文件是一个简单的键值对文件,使用&amp;nbsp;=&amp;nbsp;号分隔键和值,多个值用逗号分隔。通常使用&amp;nbsp;org.springframework.boot.autoconfigure.EnableAutoConfiguration&amp;nbsp;作为键来指定自动配置类。&lt;/p&gt;&lt;p&gt;以下是一个完整示例,包括项目结构和文件内容:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;my-spring-boot-starter
        ├── src
        │ ├── main
        │ │ ├── java
        │ │ │ └── com
        │ │ │ └── example
        │ │ │ └── autoconfig
        │ │ │ ├── MyAutoConfiguration.java
        │ │ │ └── MyService.java
        │ │ └── resources
        │ │ └── META-INF
        │ │ └── spring.factories
        ├── pom.xml&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(4) 使用自定义 Starter&lt;/p&gt;&lt;p&gt;在另一个 Springboot 应用中引入这个自定义 Starter:&lt;/p&gt;&lt;p&gt;pom.xml&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;com.example&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;my-spring-boot-starter&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;优缺点&lt;/h3&gt;&lt;p&gt;优点:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-5YotjRtV&quot;&gt;&lt;li data-id=&quot;ld70c578-CggRDqlP&quot;&gt;简化依赖管理:使用 Starter 可以一行代码引入一组相关的依赖,避免了手动管理复杂的依赖关系。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-p2ZPdBiX&quot;&gt;自动配置:自动配置减少了大量的样板代码,使开发者可以专注于业务逻辑。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-ARGIS8mL&quot;&gt; 快速启动:通过引入 Starter 和自动配置,可以快速启动一个功能齐全的 Spring 应用。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-U5gDbwMH&quot;&gt;模块化:Springboot Starters 是模块化的,可以根据需要选择引入不同的 Starter,灵活组合。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;缺点:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-frdnaLFN&quot;&gt;&lt;li data-id=&quot;ld70c578-g6Jx5LAe&quot;&gt;黑盒操作:自动配置的过程对开发者来说有点像“黑盒”,如果出现问题,调试可能会比较复杂。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-BNU9A15N&quot;&gt;过度依赖:过度依赖自动配置可能导致对底层细节的理解不足,从而影响应用的可维护性和性能优化。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-vqSQYe4W&quot;&gt; 启动时间:对于大型应用,自动配置可能会增加启动时间,因为需要扫描和配置大量的组件。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Springboot Starter 的设计思维体现了多种软件工程和设计模式的原则,主要包括以下几个方面:&lt;/p&gt;&lt;h3&gt;Springboot starter 的设计思维?&lt;/h3&gt;&lt;p&gt;Springboot starter 主要体现了下面 6 种设计思维:&lt;/p&gt;&lt;p&gt;(11) 模块化设计&lt;/p&gt;&lt;p&gt;Springboot Starters 将复杂的功能模块化,提供了一组预定义的依赖和配置。这种模块化设计使得开发者可以根据需求选择和组合不同的 Starters,从而简化了项目的依赖管理。&lt;/p&gt;&lt;p&gt;(2) 约定优于配置&lt;/p&gt;&lt;p&gt;Springboot 推崇“约定优于配置(Convention over Configuration)”的原则,即通过合理的默认配置减少开发者的配置工作。Starters 通过提供合理的默认依赖和自动配置,大大减少了开发者手动配置的工作量。&lt;/p&gt;&lt;p&gt;(3) 自动配置&lt;/p&gt;&lt;p&gt;自动配置(Auto-Configuration)是 Springboot 的核心特性之一。它基于条件注解(如&amp;nbsp;@ConditionalOnClass,&amp;nbsp;@ConditionalOnMissingBean,&amp;nbsp;@ConditionalOnProperty&amp;nbsp;等)实现,根据类路径中的依赖、Java Bean 定义和其他属性自动配置 Spring 应用程序。这种设计减少了样板代码,提升了开发效率。&lt;/p&gt;&lt;p&gt;(4) 依赖注入&lt;/p&gt;&lt;p&gt;Spring 框架的核心特性之一是依赖注入(Dependency Injection,DI)。Starters 和自动配置类通过 DI 来管理和注入依赖对象,使得组件之间的耦合度更低,增强了代码的可测试性和可维护性。&lt;/p&gt;&lt;p&gt;(5) 开闭原则&lt;/p&gt;&lt;p&gt;开闭原则(Open/Closed Principle)是面向对象设计的五大原则之一,指的是软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。Springboot 通过提供一系列可扩展的自动配置类,允许开发者在不修改框架本身的情况下进行扩展和自定义。&lt;/p&gt;&lt;p&gt;(6) 单一职责原则&lt;/p&gt;&lt;p&gt;每个 Starter 都专注于提供一种特定的功能或一组相关的功能。例如,spring-boot-starter-web&amp;nbsp;专注于 Web 应用的开发,而&amp;nbsp;spring-boot-starter-data-jpa&amp;nbsp;专注于 JPA 数据访问。这种设计符合单一职责原则,使得每个模块的职责更加明确。&lt;/p&gt;&lt;h3&gt;总结&lt;/h3&gt;&lt;p&gt;总结来说,Springboot Starter 通过简化依赖管理和自动配置,大大提高了开发效率,其中也包含了很多优秀的设计思维,但是,在日常开发中,我们也需要注意其潜在的缺点和局限性。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzIwNDAyOTI2Nw==&amp;amp;mid=2247499327&amp;amp;idx=1&amp;amp;sn=56e8e9a8316d1c4b73b2bb7675b1e76d&amp;amp;chksm=9778267181918838de67af9a1b83d0955922dc050047c167ca25b9460fbf7b8659e58e365ec3&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0906Ika7HD9ab6wyzpZDZSgd&amp;amp;sharer_shareinfo=1233082464ab1930f90dca63849248cb&amp;amp;sharer_shareinfo_first=1233082464ab1930f90dca63849248cb#rd&quot; target=&quot;_blank&quot;&gt;猿java&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Springboot&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Springboot&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/796484.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/796484.html</guid>
      <pubDate>Fri, 06 Sep 2024 09:55:27 GMT</pubDate>
    </item>
    <item>
      <title>深入掌握 Linux 磁盘管理,从入门到精通的完整指南</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;深入掌握 Linux 磁盘管理,从入门到精通的完整指南&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:攻城狮成长日记&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-06 17:45:55&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/os&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;系统&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/linux&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;Linux&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;本文将为大家介绍Linux磁盘管理的核心概念与常见命令,并提供一些实用操作指南。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;在Linux系统中,磁盘管理是系统管理中非常重要的一个方面,尤其在服务器或大型生产环境中。理解磁盘的管理工具与常见操作,可以帮助管理员确保系统正常运行并最大化磁盘资源的利用效率。本文将为你介绍Linux磁盘管理的核心概念与常见命令,并提供一些实用操作指南。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/06/d4283ad69aa9b7de3e062916dd89e0a19370db.jpg&quot; style=&quot;width: 600px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h3&gt;磁盘设备表示&lt;/h3&gt;&lt;p&gt;在Linux系统中,所有的硬盘设备通常会被挂载到/dev目录下,常见的设备文件表示方式如下:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-JGZ1fb93&quot;&gt;&lt;li data-id=&quot;ld70c578-iDeZglXJ&quot;&gt;SATA/SCSI/USB硬盘:/dev/sdX,其中X为磁盘的标识符(如/dev/sda表示第一块磁盘,/dev/sdb表示第二块磁盘)。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-J3HlA7Dm&quot;&gt;分区:硬盘的每个分区也有自己的标识符,如/dev/sda1表示第一块硬盘的第一个分区,/dev/sda2表示第二个分区。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;查看磁盘信息&lt;/h3&gt;&lt;p&gt;要了解系统中磁盘的基本信息,可以使用以下命令:&lt;/p&gt;&lt;h4&gt;1.lsblk命令&lt;/h4&gt;&lt;p&gt;列出块设备,显示设备名称、大小、挂载点等信息。&lt;/p&gt;&lt;p&gt;(1) lsblk命令语法:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;lsblk [选项] [&amp;lt;设备&amp;gt; ...]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(2) 参数说明:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/06/38c48c991771f4a739c052fe897fd688fcde89.webp&quot; style=&quot;width: 687px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;(3) lsblk命令使用示例&lt;/p&gt;&lt;p&gt;案例一:查看所有块设备及其挂载情况&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;lsblk&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行上述命令会输出如下图的结果:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/06/2326ead97517ffd45b278946213af0a1baa7a2.webp&quot; style=&quot;width: 761px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;案例二:以列表形式显示设备信息,并包含文件系统类型:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;lsblk -lfm&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;返回结果如下所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/06/21c1e0509675c3c52fb135d58661b679c7f564.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;2.df命令&lt;/h4&gt;&lt;p&gt;该命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。&lt;/p&gt;&lt;p&gt;(1) df命令语法&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;df [参数] [目录或文件名]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(2) 参数说明&lt;/p&gt;&lt;table class=&quot;data-table&quot; data-transient-attributes=&quot;class&quot; style=&quot;width: 100%; outline: none; border-collapse: collapse;&quot; data-width=&quot;916.35px&quot;&gt;&lt;colgroup data-id=&quot;c7104f7d-QZOUgi07&quot;&gt;&lt;col width=&quot;327&quot; span=&quot;1&quot; data-id=&quot;ce67d1d9-TKNY1f4f&quot;&gt;&lt;col width=&quot;328&quot; span=&quot;1&quot; data-id=&quot;cede6578-i3ji8GUT&quot;&gt;&lt;/colgroup&gt;&lt;tbody data-id=&quot;t6d5e859-EWN1479W&quot;&gt;&lt;tr data-id=&quot;t31e458f-c7AlNJ8S&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-2DHEc1TZ&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;参数&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-4B60O3CE&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;说明&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-0T5P3h1B&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-iiQnff27&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-a&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-Mib0kJVV&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;列出所有的文件系统,包括系统特有的/proc等文件系统。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-URn2fKDP&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-jZmihbNM&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-k&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-l6j5ZkE5&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;以KBytes为单位,返回各文件系统容量&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-VSIkX3eY&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-jMJ57mhL&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-m&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-JgKc4eFl&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;以MBytes为单位,返回各文件系统容量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-QV7VqNHj&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-6OaRjp70&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-h&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-WaQfd5De&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;以GBytes、MBytes、KBytes为单位,返回各文件系统容量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-Z2Pb3a65&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-XgjWggRo&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-H&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-Q6OpXgAW&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;以M=1000K取代M=1024K的进位方式显示各文件系统容量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-PaVDF1jZ&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-sIor7B3r&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-T&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-P7OsCbEm&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;显示文件系统类型。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-bDpJCdHL&quot; style=&quot;height: 30px;&quot;&gt;&lt;td class=&quot;table-last-column&quot; data-id=&quot;t1c8f800-EVPNJF3c&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-i&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-column table-last-row&quot; data-id=&quot;t16089ba-6EcbfS3g&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;显示inode信息。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;(3) df命令使用示例&lt;/p&gt;&lt;p&gt;示例一:显示磁盘使用情况。&lt;/p&gt;&lt;p&gt;执行如下命令,显示磁盘使用情况。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行上述命令返回结果如下所示。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202409/06/341e91d280ddf9a7a79362dc086aac22dbbd61.webp&quot; style=&quot;width: 770px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;df -h&lt;/p&gt;&lt;p&gt;示例二:以inode模式来显示磁盘使用情况。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;df -i&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行上述命令返回结果如下所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/06/94d992d68ebe313f7f8787e9cd319eefc378ac.webp&quot; style=&quot;width: 805px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;df -i&lt;/p&gt;&lt;h4&gt;3.du命令&lt;/h4&gt;&lt;p&gt;查看磁盘使用空间。du与df命令不同点在于,du命令用于查看文件和目录磁盘的使用空间。&lt;/p&gt;&lt;p&gt;(1) df命令语法&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;du [参数] [文件或目录名称]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(2) 参数说明&lt;/p&gt;&lt;table class=&quot;data-table&quot; data-transient-attributes=&quot;class&quot; style=&quot;width: 100%; outline: none; border-collapse: collapse;&quot; data-width=&quot;916.35px&quot;&gt;&lt;colgroup data-id=&quot;c7104f7d-O2BH1AEn&quot;&gt;&lt;col width=&quot;327&quot; span=&quot;1&quot; data-id=&quot;ce67d1d9-lQS8TiB4&quot;&gt;&lt;col width=&quot;328&quot; span=&quot;1&quot; data-id=&quot;cede6578-YbBn2HeG&quot;&gt;&lt;/colgroup&gt;&lt;tbody data-id=&quot;t6d5e859-M08N1P67&quot;&gt;&lt;tr data-id=&quot;t31e458f-3JkAOnGS&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-bbWADjHC&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;参数&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-WFbAkCr2&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;说明&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-RMvlfcJA&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-Le42aqpa&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-a&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-WJSQjg8A&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;列出所有的文件与目录容量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-WK4gjklG&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-VlFBgKGv&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-h&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-436Ko9PT&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;以G、M、K为单位,返回容量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-K5JT8Ycr&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-chNNDAZC&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-s&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-O0lCePAi&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;列出总量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-Sclg52VS&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-sG8WI0jf&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-S&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-PYvt9lXH&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;列出不包括子目录下的总量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-zGuFe4Xg&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-cDy7urNZ&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-k&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-SmVHtIED&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;以KBytes为单位,返回容量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-6f6dOIhU&quot; style=&quot;height: 30px;&quot;&gt;&lt;td class=&quot;table-last-column&quot; data-id=&quot;t1c8f800-PfPZiPR5&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-m&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-column table-last-row&quot; data-id=&quot;t16089ba-IRBR85lD&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;以MBytes为单位,返回容量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;(3) du命令使用示例&lt;/p&gt;&lt;p&gt;示例一:列出当前目录下的所有文件夹的容量。&lt;/p&gt;&lt;p&gt;执行如下命令,列出当前目录下的所有文件夹的容量。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;du -h&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;返回结果如下所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202409/06/e92022b87fb7c3d09914147f5f607a280f9cbc.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;示例二:列出当前目录下的所有文件夹和文件的容量。&lt;/p&gt;&lt;p&gt;执行如下命令,列出当前目录下的所有文件夹和文件的容量。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;du -ah&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;返回结果如下所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202409/06/337aca227742c02da6c69053674bf336b7c3cc.webp&quot; style=&quot;width: 766px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;du -ah&lt;/p&gt;&lt;h4&gt;4.fidsk命令&lt;/h4&gt;&lt;p&gt;查看磁盘的分区表。通常用于查看磁盘分区的详细信息。&lt;/p&gt;&lt;p&gt;(1) fdisk命令语法&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;fdisk [-l] 装置名称&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(2) 参数说明&lt;/p&gt;&lt;table class=&quot;data-table&quot; data-transient-attributes=&quot;class&quot; style=&quot;width: 100%; outline: none; border-collapse: collapse;&quot; data-width=&quot;916.35px&quot;&gt;&lt;colgroup data-id=&quot;c7104f7d-VTG29CdY&quot;&gt;&lt;col width=&quot;327&quot; span=&quot;1&quot; data-id=&quot;ce67d1d9-K8XMKgDU&quot;&gt;&lt;col width=&quot;328&quot; span=&quot;1&quot; data-id=&quot;cede6578-ZZlcaYh6&quot;&gt;&lt;/colgroup&gt;&lt;tbody data-id=&quot;t6d5e859-RlNWOP6h&quot;&gt;&lt;tr data-id=&quot;t31e458f-s4fbGJJE&quot; style=&quot;height: 30px;&quot;&gt;&lt;td data-id=&quot;t8c0e6ab-h1LgAKuY&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;参数&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-row&quot; data-id=&quot;t1b895c3-wCYzHQNo&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;说明&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-id=&quot;t31e458f-stR1Qsrf&quot; style=&quot;height: 30px;&quot;&gt;&lt;td class=&quot;table-last-column&quot; data-id=&quot;t1c8f800-2iYnUhUZ&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;-l&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;table-last-column table-last-row&quot; data-id=&quot;t16089ba-NSCXXfEn&quot; style=&quot;vertical-align: top; min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default;&quot; data-transient-attributes=&quot;table-cell-selection&quot;&gt;&lt;p&gt;输出后面装置名称的所有的分区内容。若仅有 fdisk -l时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;(3) fdisk命令使用示例&lt;/p&gt;&lt;p&gt;示例一:列出系统所有装置的分区信息。&lt;/p&gt;&lt;p&gt;执行如下命令,列出系统所有装置的分区信息。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;fdisk -l&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;返回结果如下所示:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202409/06/015792b1238f43338038284bd03ea046493746.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h3&gt;磁盘分区&lt;/h3&gt;&lt;p&gt;磁盘分区是磁盘管理中非常基础的部分。可以通过以下步骤进行分区操作:&lt;/p&gt;&lt;h4&gt;1.使用fdisk工具分区&lt;/h4&gt;&lt;p&gt;打开分区工具:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;fdisk /dev/sda&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202409/06/829c0c194a63af7b9c37178cce0e3a170ae865.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;进入后,可以使用以下命令:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-b94DfAfM&quot;&gt;&lt;li data-id=&quot;ld70c578-iL3PEQn9&quot;&gt;p:查看当前磁盘的分区情况。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-GJdKCdeT&quot;&gt;n:创建新分区。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-XJADI5mh&quot;&gt;d:删除分区。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-NfH8oS16&quot;&gt;w:写入更改并退出。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;(2) 使用parted工具分区&lt;/p&gt;&lt;p&gt;相较于fdisk,parted可以更好地支持大于2TB的磁盘。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;parted /dev/sda&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;文件系统创建&lt;/h3&gt;&lt;p&gt;创建分区后,必须为其创建文件系统。常见的文件系统类型有ext4、xfs等。以下命令展示如何为新分区创建文件系统:&lt;/p&gt;&lt;p&gt;创建ext4文件系统:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo mkfs.ext4 /dev/sda1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;创建xfs文件系统:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo mkfs.xfs /dev/sda1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;挂载与卸载&lt;/h3&gt;&lt;p&gt;创建文件系统后,你需要将其挂载到系统中的某个目录才能使用。&lt;/p&gt;&lt;h4&gt;1.挂载磁盘&lt;/h4&gt;&lt;p&gt;挂载时,选择一个空目录作为挂载点。例如将/dev/sda1挂载到/mnt/disk1目录下:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo mount /dev/sda1 /mnt/disk1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4&gt;2.自动挂载&lt;/h4&gt;&lt;p&gt;编辑/etc/fstab文件,使磁盘在系统启动时自动挂载。示例条目:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;/dev/sda1 /mnt/disk1 ext4 defaults 0 2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4&gt;3.卸载磁盘&lt;/h4&gt;&lt;p&gt;卸载挂载的磁盘:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo umount /mnt/disk1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;磁盘扩容与缩小&lt;/h3&gt;&lt;p&gt;当磁盘使用空间不够时,可能需要调整分区大小。以下工具用于调整分区大小:&lt;/p&gt;&lt;h4&gt;1.调整ext4文件系统大小&lt;/h4&gt;&lt;p&gt;扩展分区:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo resize2fs /dev/sda1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;缩小分区:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo resize2fs /dev/sda1 SIZE&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4&gt;2.调整LVM分区大小&lt;/h4&gt;&lt;p&gt;LVM是一个灵活的磁盘管理工具。使用LVM可以更轻松地扩展或缩小磁盘卷。以下为基本操作:&lt;/p&gt;&lt;p&gt;扩展逻辑卷:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo lvextend -L +10G /dev/mapper/vg0-lv0
        sudo resize2fs /dev/mapper/vg0-lv0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;缩小逻辑卷:&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo lvextend -L +10G /dev/mapper/vg0-lv0
        sudo resize2fs /dev/mapper/vg0-lv0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;磁盘故障排查&lt;/h3&gt;&lt;p&gt;磁盘使用一段时间后,可能会出现一些错误或者坏块。你可以使用fsck工具来检测并修复文件系统。&lt;/p&gt;&lt;p&gt;使用fsck工具检测和修复磁盘&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;sudo fsck /dev/sda1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;总结&lt;/h3&gt;&lt;p&gt;Linux系统的磁盘管理包括磁盘的查看、分区、文件系统的创建与管理、磁盘挂载、LVM管理等。掌握这些常见的操作工具和命令,可以帮助你高效地管理磁盘资源,保障系统的稳定运行。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MjM5OTc5MjM4Nw==&amp;amp;mid=2457382186&amp;amp;idx=1&amp;amp;sn=54d2af88b30c8b715a87bad0d723a524&amp;amp;chksm=b1570b2079d61a50a04df4df99c92205a125059e01a50ac253c3b387981ec58aff8a2afff215&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0905ZMDJmzaiPHT8jBg1BrYS&amp;amp;sharer_shareinfo=56d761075298a1150ff924542cde1bbc&amp;amp;sharer_shareinfo_first=56d761075298a1150ff924542cde1bbc#rd&quot; target=&quot;_blank&quot;&gt;攻城狮成长日记&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Linux&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Linux&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%A3%81%E7%9B%98&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;磁盘&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/796481.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/796481.html</guid>
      <pubDate>Fri, 06 Sep 2024 09:45:55 GMT</pubDate>
    </item>
    <item>
      <title>20 个 Python 高效字符串处理技巧</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;20 个 Python 高效字符串处理技巧&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:手把手PythonAI编程&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-06 17:32:55&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;掌握高效的字符串操作不仅能提升代码的可读性和执行效率,还能在解决复杂问题时游刃有余。下面,让我们通过15个实用技巧,逐步探索Python字符串处理的奥秘。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;字符串处理是一项基础且频繁使用的技能。掌握高效的字符串操作不仅能提升代码的可读性和执行效率,还能在解决复杂问题时游刃有余。下面,让我们通过15个实用技巧,逐步探索Python字符串处理的奥秘。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/06/11a3745901fe16e0ca8641155769831f1cbe1b.png&quot; style=&quot;width: 575px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;h4&gt;1. 字符串拼接&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用join()而非+或+=。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;# 使用join拼接列表中的字符串
        strings = [&quot;Hello&quot;, &quot;World&quot;]
        result = &quot; &quot;.join(strings)
        print(result) # 输出: Hello World&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;:&amp;nbsp;join()方法更适用于大量字符串拼接,性能优于多次使用+或+=。&lt;/p&gt;&lt;h4&gt;2. 快速计数字符&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用count()方法。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;text = &quot;hello world&quot;
        char_count = text.count(&quot;l&quot;)
        print(char_count) # 输出: 3&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;:&amp;nbsp;count()轻松统计特定字符在字符串中出现的次数。&lt;/p&gt;&lt;h4&gt;3. 分割字符串&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用split()。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;line = &quot;name:John age:30&quot;
        pairs = line.split(&quot; &quot;)
        name, age = pairs[0].split(&quot;:&quot;)[1], pairs[1].split(&quot;:&quot;)[1]
        print(name, age) # 输出: John 30&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;:&amp;nbsp;split()根据分隔符将字符串分割成列表,灵活运用可以高效解析数据。&lt;/p&gt;&lt;h4&gt;4. 切片操作&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 利用切片快速提取子串。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;s = &quot;Python&quot;
        slice_s = s[0:2] # 前两个字符
        reverse_s = s[::-1] # 反转字符串
        print(slice_s, reverse_s) # 输出: Py ynohP&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 切片&amp;nbsp;[start:end:step]&amp;nbsp;是提取字符串子串的强大工具,负数索引用于从字符串末尾开始计数。&lt;/p&gt;&lt;h4&gt;5. 查找子串&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用find()或index()。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;text = &quot;Hello, welcome to Python.&quot;
        pos = text.find(&quot;welcome&quot;)
        print(pos) # 输出: 7&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;:&amp;nbsp;find()返回子串第一次出现的位置,未找到则返回-1;index()类似,但未找到会抛出异常。&lt;/p&gt;&lt;h4&gt;6. 大小写转换&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用upper(),&amp;nbsp;lower(),&amp;nbsp;capitalize()等方法。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;text = &quot;hello WORLD&quot;
        print(text.upper()) # 输出: HELLO WORLD
        print(text.lower()) # 输出: hello world
        print(text.capitalize()) # 输出: Hello world&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 这些方法在处理文本格式时非常有用,如标题化、全大写或全小写转换。&lt;/p&gt;&lt;h4&gt;7. 去除字符串两端空格&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用strip(),&amp;nbsp;rstrip(),&amp;nbsp;lstrip()。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;s = &quot; Hello World! &quot;
        print(s.strip()) # 输出: Hello World!&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;:&amp;nbsp;strip()移除字符串首尾的空白字符(包括空格、换行符等),rstrip()和lstrip()分别仅移除右侧和左侧的空白字符。&lt;/p&gt;&lt;h4&gt;8. 格式化字符串&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用f-string(Python 3.6+)。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;name = &quot;Alice&quot;
        age = 30
        formatted = f&quot;My name is {name} and I am {age} years old.&quot;
        print(formatted) # 输出: My name is Alice and I am 30 years old.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: f-string提供了简洁、直观的字符串格式化方式,直接在字符串中嵌入表达式。&lt;/p&gt;&lt;h4&gt;9. 使用列表推导式处理字符串&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 将字符串转换为列表进行操作。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;s = &quot;hello&quot;
        upper_list = [c.upper() for c in s]
        print(&#39;&#39;.join(upper_list)) # 输出: HELLO&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 列表推导式结合join()方法,可以实现字符串字符的批量操作。&lt;/p&gt;&lt;h4&gt;10. 替换字符串&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用replace()。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;text = &quot;hello, hello, world!&quot;
        new_text = text.replace(&quot;hello&quot;, &quot;hi&quot;, 2) # 替换前两个&quot;hello&quot;
        print(new_text) # 输出: hi, hi, world!&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;:&amp;nbsp;replace()方法可以替换字符串中的指定部分,第三个参数限制替换次数。&lt;/p&gt;&lt;h4&gt;11. 字符串的长度&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用len()函数。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;s = &quot;Python&quot;
        length = len(s)
        print(length) # 输出: 6&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 简单但重要,len()函数返回字符串长度。&lt;/p&gt;&lt;h4&gt;12. 检查字符串开头或结尾&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 使用startswith(),&amp;nbsp;endswith()。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;filename = &quot;example.txt&quot;
        if filename.endswith(&quot;.txt&quot;):
        print(&quot;It&#39;s a text file.&quot;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 这两个方法检查字符串是否以特定前缀或后缀开始或结束。&lt;/p&gt;&lt;h4&gt;13. 使用正则表达式&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 引入re模块进行复杂模式匹配。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;import re
        text = &quot;My email is [email protected]&quot;
        email = re.search(r&#39;\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b&#39;, text)
        if email:
        print(email.group()) # 输出: [email protected]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 正则表达式是强大的文本处理工具,适用于复杂的字符串匹配和提取。&lt;/p&gt;&lt;h4&gt;14. 遍历字符串&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 直接遍历字符串。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;s = &quot;Python&quot;
        for char in s:
        print(char)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 字符串本身就是序列,可以直接遍历,适合字符级操作。&lt;/p&gt;&lt;h4&gt;15. 字符串不变性&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 注意字符串的不可变性。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;s = &quot;Python&quot;
        try:
        s[0] = &quot;J&quot; # 这会引发错误
        except TypeError as e:
        print(e) # 输出: &#39;str&#39; object does not support item assignment&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 字符串一旦创建就不可更改,尝试修改会触发错误,应使用上述方法间接实现修改效果。&lt;/p&gt;&lt;h4&gt;高级和实用处理技巧&lt;/h4&gt;&lt;h4&gt;16. 利用join()和列表生成式优化字符串连接&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 当需要连接大量字符串时,避免使用循环内的字符串相加。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;words = [&#39;Hello&#39;, &#39;from&#39;, &#39;Python&#39;]
        joined = &#39;&#39;.join([word + &#39; &#39; for word in words[:-1]] + [words[-1]])
        print(joined) # 输出: Hello from Python&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 列表生成式配合join()能有效避免不必要的字符串重建,提高性能。&lt;/p&gt;&lt;h4&gt;17. 使用format()方法进行格式化&lt;/h4&gt;&lt;p&gt;尽管f-string更为现代和便捷,但在兼容旧版本Python或需要更复杂格式控制时,format()依然强大。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;template = &quot;Name: {}, Age: {}&quot;
        filled = template.format(&quot;Alice&quot;, 30)
        print(filled) # 输出: Name: Alice, Age: 30&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;:&amp;nbsp;{}作为占位符,format()方法内填入对应值。&lt;/p&gt;&lt;h4&gt;18. 字符串的分割与合并的高级应用&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 结合split()和itertools.zip_longest处理交错的数据。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;import itertools
        lines = &quot;line1\nline2\nline3&quot;
        parts = lines.split(&quot;\n&quot;)
        merged = [&#39;&#39;.join(pair) for pair in itertools.zip_longest(*[parts[i::2] for i in range(2)])]
        print(merged) # 如果原字符串是偶数行,这将保持对齐&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 此技巧在处理行列交错的数据时特别有用,如表格数据的处理。&lt;/p&gt;&lt;h4&gt;19. 字符串的编码与解码&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 理解并使用encode()和decode()处理非ASCII字符。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;utf8_string = &quot;你好,世界!&quot;
        encoded = utf8_string.encode(&#39;utf-8&#39;)
        decoded = encoded.decode(&#39;utf-8&#39;)
        print(decoded) # 输出: 你好,世界!&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 在处理国际化文本时,正确编码和解码字符串至关重要。&lt;/p&gt;&lt;h4&gt;20. 字符串的内建方法深入&lt;/h4&gt;&lt;p&gt;技巧&amp;nbsp;: 探索title(),&amp;nbsp;swapcase(),&amp;nbsp;isalnum(),&amp;nbsp;isalpha()等方法的使用。&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-plain&quot;&gt;&lt;code&gt;s = &quot;hello WORLD 123&quot;
        title_s = s.title() # 首字母大写
        swapcase_s = s.swapcase() # 大小写互换
        alnum_check = s.isalnum() # 是否全部由字母和数字组成
        alpha_check = s.isalpha() # 是否全部由字母组成
        print(title_s, swapcase_s, alnum_check, alpha_check)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;解释&amp;nbsp;: 这些方法提供了快速检查和格式化字符串的途径。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzI1NjA0MTA2NA==&amp;amp;mid=2454484132&amp;amp;idx=1&amp;amp;sn=db665c005a580fa93b547adc7ded43d7&amp;amp;chksm=fcb0f3692170252cc4f69fc621fcfff65abff1ec30c86d49f6abc0b0a3477e6b7d3e83ce8e2e&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0906nfxjo0jC4zFJBwmJj9AW&amp;amp;sharer_shareinfo=8003e6ad9ab18730ce1011bbdea6b484&amp;amp;sharer_shareinfo_first=8003e6ad9ab18730ce1011bbdea6b484#rd&quot; target=&quot;_blank&quot;&gt;手把手PythonAI编程&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%AD%97%E7%AC%A6%E4%B8%B2&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;字符串&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Python&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Python&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/796479.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/796479.html</guid>
      <pubDate>Fri, 06 Sep 2024 09:32:55 GMT</pubDate>
    </item>
    <item>
      <title>黑客背刺同行,向对方发送信息窃取软件</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;黑客背刺同行,向对方发送信息窃取软件&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:Zicheng&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-06 17:26:49&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;这项由 Veriti Research 发现的现象反映了网络犯罪分子之间并非是统一的”猎食者“身份,彼此之间的被刺时有发生。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;据BleepingComputer消息,有黑客使用一种假冒的 OnlyFans 工具瞄准其他黑客,声称可以用来帮助窃取用户帐户,但实际上却是用 Lumma信息窃取器对这些黑客发动入侵。&lt;/p&gt;&lt;p&gt;这项由 Veriti Research 发现的现象反映了网络犯罪分子之间并非是统一的”猎食者“身份,彼此之间的被刺时有发生。&lt;/p&gt;&lt;p&gt;这次黑客所利用的OnlyFans 是一个非常受欢迎、基于用户订阅的内容创作平台,创作者可以与订阅者分享视频、图像、消息和直播流,而订阅者则需要支付经常性费用或一次性付款以获得独家内容。鉴于它的受欢迎程度,OnlyFans 帐户经常成为攻击者的目标,试图劫持账户、勒索账户所有者支付赎金,或者干脆泄露私人照片。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/06/d37ed83099f2fb5b127023b82e720c8a3819ab.jpg&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;黑客论坛上的OnlyFans恶意工具广告&lt;/p&gt;&lt;p&gt;因此,黑客开发了一种能快速验证账户的工具,检查登录信息是否与任何 OnlyFans 账户匹配,以及是否仍然有效,否则,黑客就必须手动测试成千上万个凭证,其过程既不现实又繁琐,导致该计划无法实施。&lt;/p&gt;&lt;p&gt;然而,正是由于该工具由黑客创建并在其他黑客中传播,处于竞争关系的黑客必然在其中留了一手,对其他黑客窃取信息以将自身利益最大化。&lt;/p&gt;&lt;p&gt;Veriti发现的假冒OnlyFans 工具内含有Lumma信息窃取器,有效载荷名为 &quot;brtjgjsefd.exe&quot;,是从 GitHub 存储库中获取并加载到受害者计算机中。Lumma 自 2022 年以来一直以每月 250-1000 美元的价格出租给网络犯罪分子,并通过各种方式传播,包括恶意广告、YouTube 评论、种子文件以及最近的 GitHub 评论。&lt;/p&gt;&lt;p&gt;Lumma 具有创新的规避机制和恢复过期谷歌会话令牌的能力。 它主要用于窃取双因素身份验证代码、加密货币钱包,以及存储在受害者浏览器和文件系统中的密码、cookie 和信用卡。 Lumma 本身也是一个加载器,能够在被入侵系统中引入额外的有效载荷,并执行 PowerShell 脚本。&lt;/p&gt;&lt;p&gt;Veriti 发现,当 Lumma Stealer 有效载荷启动时,它会连接到一个名为 &quot;UserBesty &quot;的 GitHub 账户,幕后黑客利用该账户托管其他恶意有效载荷。&lt;/p&gt;&lt;p&gt;这并不是黑客第一次针对其他网络犯罪分子进行恶意攻击。 2022 年 3 月,黑客利用伪装成破解 RAT 和恶意软件构建工具的剪贴板窃取程序来窃取加密货币。 同年晚些时候,一名恶意软件开发者在自己的恶意软件中设置了后门,以窃取其他黑客的凭证、加密货币钱包和 VPN 账户数据。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://www.freebuf.com/news/410373.html&quot; target=&quot;_blank&quot;&gt;FreeBuf&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E9%BB%91%E5%AE%A2&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;黑客&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%81%B6%E6%84%8F%E8%BD%AF%E4%BB%B6&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;恶意软件&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/796478.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/796478.html</guid>
      <pubDate>Fri, 06 Sep 2024 09:26:49 GMT</pubDate>
    </item>
    <item>
      <title>被法国警方逮捕后,“Telegram”创始人首度公开发声:更安全,更强大</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;被法国警方逮捕后,“Telegram”创始人首度公开发声:更安全,更强大&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:流苏_&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-06 15:46:37&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/netsecurity&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;安全&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;杜罗夫在长文中写道,“利用在智能手机时代之前的法律,以第三方在其管理平台上犯下的罪行来指控一名首席执行官,这是一种错误的做法。”&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;据多家媒体报道,此前在法国被捕的社交媒体“Telegram”创始人兼首席执行官帕维尔·杜罗夫当地时间周五(6日)凌晨在“Telegram”发布长文,这一最新表态是自其上月被捕后首度公开发声。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/06/94ffd4112689ae09e47086ee0797a08fb1ac24.jpg&quot; style=&quot;visibility: visible; width: 690px;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;杜罗夫表示,他对要为他人发布在“Telegram”上的内容负责而感到“意外”。另据路透社报道,杜罗夫认为,法国政府如果发现问题本应该是向其公司投诉,可以通过他协助建立的“热线”,或者联系“Telegram”驻欧盟代表。&lt;/p&gt;&lt;p&gt;杜罗夫在长文中写道,“利用在智能手机时代之前的法律,以第三方在其管理平台上犯下的罪行来指控一名首席执行官,这是一种错误的做法。”虽然“Telegram”平台并不完美,同时也否认了关于该平台是“无政府主义天堂”的说法。“但一些媒体声称‘Telegram’是某种无政府主义天堂,这绝对不属实。”&lt;/p&gt;&lt;p&gt;“我们每天都会删除数以百万计的有害帖子和频道。”杜罗夫称“Telegram”的用户数量激增“造成了越来越多的痛苦”,使犯罪分子更容易滥用该平台。“希望8月发生的事件能让‘Telegram’——以及整个社交网络行业——变得更安全、更强大。”&lt;/p&gt;&lt;h4&gt;Telegram承诺删除韩国Deepfake色情内容&lt;/h4&gt;&lt;p&gt;基于杜罗夫的公开发言,这也就不难理解此前一直不服从各国政府监管的Telegram为何愿意和韩国警方合作,将努力删除此类违规内容,并对平台上的Deepfake色情内容表示歉意。Telegram与韩国通信标准委员会合作,删除了25段Deepfake色情视频,并提供了一个电子邮件热线,方便用户递交删除请求。&lt;/p&gt;&lt;p&gt;为了进一步打击Deepfake色情内容,韩国政府宣布将Deepfake色情内容的最高刑期从五年提高到七年,以打击这一犯罪行为。据韩国警方表示,目前已有超过2000人成为Deepfake色情内容的受害者,其中大多数是未成年人,并在在韩国社会引发了广泛恐慌。&lt;/p&gt;&lt;p&gt;Deepfake技术通过人工智能生成高度逼真的视频和图像,这使得检测和追踪其来源变得非常困难。各国政府正在制定更严格的法律来打击Deepfake内容,但实施这些法律仍面临技术和执法上的挑战。&lt;/p&gt;&lt;h4&gt;全球多国持续打击 Telegram&lt;/h4&gt;&lt;p&gt;据法国媒体此前报道,法国政府相关部门正在调查“Telegram”平台上涉及诈骗、贩毒、有组织犯罪、儿童色情、宣扬恐怖主义等不法行为。杜罗夫被指没有采取相应措施阻止这些罪行。巴黎检方8月26日曾发布新闻公告说,巴黎检方于今年7月8日开始一项包含12项指控、不针对具体人士的司法侦查,杜罗夫因此被捕。&lt;/p&gt;&lt;p&gt;目前社交媒体“Telegram”目前约有9亿用户,是俄语地区最主要社交媒体平台之一,也是乌克兰危机中俄乌双方重要的发声平台。&lt;/p&gt;&lt;p&gt;韩国对 Telegram 展开深度伪造犯罪调查的举动,是在法国当局于 8 月 24 日逮捕Tel

Copy link
Contributor

Successfully generated as following:

http://localhost:1200/51cto/index/recommend - Success ✔️
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>51CTO</title>
    <link>https://www.51cto.com/</link>
    <atom:link href="http://localhost:1200/51cto/index/recommend" rel="self" type="application/rss+xml"></atom:link>
    <description>51cto - 推荐 - Powered by RSSHub</description>
    <generator>RSSHub</generator>
    <webMaster>[email protected] (RSSHub)</webMaster>
    <language>en</language>
    <lastBuildDate>Sun, 22 Sep 2024 10:17:07 GMT</lastBuildDate>
    <ttl>5</ttl>
    <item>
      <title>JVM所有的垃圾回收器已整理完毕,请笑纳!</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;JVM所有的垃圾回收器已整理完毕,请笑纳!&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:猿java&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-20 17:08:44&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/developer&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;Java 垃圾回收器是Java虚拟机(JVM)中的一个重要组件,无论是日常开发,还是技术面试中,它都是一个非常重要的知识点。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;Java 垃圾回收器(Garbage Collector,GC)是Java虚拟机(JVM)中的一个重要组件,无论是日常开发,还是技术面试中,它都是一个非常重要的知识点。&lt;/p&gt;&lt;p&gt;那么,如何才能系统性地学习 JVM垃圾回收器的相关知识呢?这篇文章,我们整理了过往所有关于 JVM回收器的文章,希望可以帮到你。&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/72c504a7167a8b9387929537b2513bf2f4f289.jpg&quot; style=&quot;width: 600px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;首先,让我们从全局来了解下 JVM垃圾回收器的类型以及它们的特点,优缺点和适用场景:&lt;/p&gt;&lt;h4&gt;1. Serial Garbage Collector&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-A2K0fIQU&quot;&gt;&lt;li data-id=&quot;ld70c578-MOL9JKQa&quot;&gt;特点: 使用单线程进行垃圾回收。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-TXBaTUGG&quot;&gt;适用场景: 适用于单处理器机器或小型应用程序。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-N6IhKWba&quot;&gt;优点: 实现简单,开销低。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-Qi6QL4m8&quot;&gt;缺点: 会导致较长的暂停时间,影响应用程序性能。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;2. Parallel Garbage Collector&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-RDa9U7ZE&quot;&gt;&lt;li data-id=&quot;ld70c578-3kNT17nl&quot;&gt;特点: 使用多线程进行垃圾回收。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-fMdTCkpk&quot;&gt;适用场景: 适用于多处理器机器和需要高吞吐量的应用程序。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-E1RjsYq4&quot;&gt;优点: 提高了垃圾回收的效率,减少了暂停时间。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-inSE8Yfg&quot;&gt;缺点: 在垃圾回收期间,应用程序仍然会暂停。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;3. CMS (Concurrent Mark-Sweep) Garbage Collector&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-DIedjLF2&quot;&gt;&lt;li data-id=&quot;ld70c578-XTHeiXQP&quot;&gt;特点: 主要目标是减少暂停时间,适用于需要低延迟的应用。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-tSSSJ0DC&quot;&gt;适用场景: 适用于对响应时间要求较高的应用程序。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-AsC6cTM0&quot;&gt;优点: 大部分垃圾回收工作在与应用程序并发进行,减少了暂停时间。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-lKk4WdRU&quot;&gt;缺点: 可能会产生内存碎片,需要更多的CPU资源。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;4. G1 (Garbage-First) Garbage Collector&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-VicUSh1S&quot;&gt;&lt;li data-id=&quot;ld70c578-rcaseeTN&quot;&gt;特点: 设计用于处理大堆内存,提供可预测的暂停时间。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-pXQ1xWgu&quot;&gt;适用场景: 适用于大内存和需要可预测暂停时间的应用程序。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-pSNDnjJB&quot;&gt;优点: 分区回收内存,减少了长时间的暂停,适合大堆内存。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-sk2rVRh4&quot;&gt;缺点: 相比其他垃圾回收器,调优复杂度较高。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;5. ZGC (Z Garbage Collector)&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-SGGePQ53&quot;&gt;&lt;li data-id=&quot;ld70c578-1RpckfeH&quot;&gt;特点: 设计目标是处理大堆内存,且暂停时间非常短(通常低于10毫秒)。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-kH4hJDAT&quot;&gt;适用场景: 适用于超大内存应用和对暂停时间极为敏感的应用。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-PG7kUp5q&quot;&gt;优点: 极低的暂停时间,可处理TB级别的堆内存。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-1lAGlIq6&quot;&gt;缺点: 目前还在不断发展和优化中,可能不如其他垃圾回收器稳定。&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;6. Shenandoah Garbage Collector&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-bCQ2rcjY&quot;&gt;&lt;li data-id=&quot;ld70c578-BUKZCo7b&quot;&gt;特点: 类似于ZGC,目标是提供低暂停时间。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-47LdAbin&quot;&gt;适用场景: 适用于低延迟和大堆内存的应用。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-oIDMCrHY&quot;&gt;优点: 低暂停时间,适合大内存应用。&lt;/li&gt;&lt;li data-id=&quot;ld70c578-e2pkkTr1&quot;&gt;缺点: 需要更多的CPU资源,复杂度较高。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;所有 JVM垃圾回收器对比如下图:&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/20/67f853483a47feba92743271394100781c2205.webp&quot; style=&quot;width: 889px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;最后,虽然 JVM垃圾回收器的知识很重要,但是它真的有点难,而且在日常开发中,很多小伙伴常年奋斗在CRUD业务上,很少和JVM直接打交道,因此,理解和掌握回收器的原理需要一个过程。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:赵宁宁&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzIwNDAyOTI2Nw==&amp;amp;mid=2247499503&amp;amp;idx=1&amp;amp;sn=2c6ffd488597fc2c5a3cbf7cfcf0e923&amp;amp;chksm=97d266856e7ebc45d4117a2f0b6a76e9fb3e360e36daee69a74d93bcaf2d1b338b7710638cb1&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0920bG9YssEkek2WgCa68ncW&amp;amp;sharer_shareinfo=36f418f6055e55aacc4a4c9f23753bf2&amp;amp;sharer_shareinfo_first=36f418f6055e55aacc4a4c9f23753bf2#rd&quot; target=&quot;_blank&quot;&gt;猿java&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=Java&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;Java&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=JVM&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;JVM&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E5%BC%80%E5%8F%91&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;开发&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/797418.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/797418.html</guid>
      <pubDate>Fri, 20 Sep 2024 09:08:44 GMT</pubDate>
    </item>
    <item>
      <title>AI 3D生成天花板再拉升!清华团队炼成3D Scaling Law</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;AI 3D生成天花板再拉升!清华团队炼成3D Scaling Law&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:量子位&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-20 16:20:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;因为人才与技术、效果与场景的清晰和进步,现在AI 3D生成这个赛道,渐渐走进了更多人的视野之中。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;《黑神话·悟空》的火爆,带火的不仅是3D游戏本身,还有背后暗潮汹涌的&lt;strong&gt;AI 3D生成&lt;/strong&gt;技术。&lt;/p&gt;&lt;p class=&quot;js_darkmode__2&quot;&gt;一直以来,外界对3D大模型赛道的关注度都稍逊于语言模型和视频模型。然而,全球3D大模型选手们则都在暗中较量、默默发力,从a16z押注的Yellow,到李飞飞的World Labs,3D大模型的迭代速度是没落下一点。&lt;/p&gt;&lt;p class=&quot;js_darkmode__3&quot;&gt;就在刚刚,国内3D大模型头部玩家&lt;strong&gt;VAST更新了旗下的大模型Tripo&lt;/strong&gt;,是基于千万级高质量原生自有数据库训出来的那种超强版本。&lt;/p&gt;&lt;p class=&quot;js_darkmode__4&quot;&gt;而3D生成新工具的玩法也更进一步,&lt;strong&gt;文字、单图、多图都能作为输入&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__5&quot;&gt;至于几何精细度和图片还原度等方面的效果嘛,先小放一段用新工具生成3D模型的视频,大家直观感受一下:&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;,时长00:19&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__6&quot;&gt;在官宣新品之余,VAST又带来另一则重磅消息,即公司连续完成了数亿元融资,这也是3D大模型赛道的最大融资金额。&lt;/p&gt;&lt;p class=&quot;js_darkmode__7&quot;&gt;当然,融资方面的引领,也只是技术实力的展现。因为VAST的技术和应用场景,确实够顶。&lt;/p&gt;&lt;h2 style=&quot;line-height: 1.5;&quot;&gt;快速生成无瑕疵,效果惊艳&lt;/h2&gt;&lt;p class=&quot;js_darkmode__9&quot;&gt;再次拉升AI 3D天花板的模型叫做&lt;strong&gt;Tripo 2.0&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__10&quot;&gt;Tripo 2.0先在几秒内生成&lt;strong&gt;形状几何&lt;/strong&gt;预览,再接着几秒内为其“贴上皮肤”,⽣成&lt;strong&gt;纹理及PBR&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__11&quot;&gt;目前Tripo 2.0已正式上线,大批网友已经开启了实测。&lt;/p&gt;&lt;p class=&quot;js_darkmode__13&quot;&gt;Tripo 2.0支持文生3D、单图生3D;Tripo 1.4版本也支持多图生3D。&lt;/p&gt;&lt;p class=&quot;js_darkmode__14&quot;&gt;输入一个prompt,一次能生成4个3D模型。&lt;/p&gt;&lt;p class=&quot;js_darkmode__15&quot;&gt;根据输入的不同,量子位的上手实测结果在下面分为两个部分,即:&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-99PBM16m&quot;&gt;&lt;li style=&quot;line-height: 2;&quot; data-id=&quot;l34939b2-Y7IUTJ3R&quot;&gt;&lt;strong&gt;文生3D模型&lt;/strong&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 2;&quot; data-id=&quot;l34939b2-HLYbeTSO&quot;&gt;&lt;strong&gt;图生3D模型&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Tripo 2.0文生3D模型实测&lt;/h4&gt;&lt;p class=&quot;js_darkmode__18&quot;&gt;话不多说,直接先来看一波文生3D效果。&lt;/p&gt;&lt;p class=&quot;js_darkmode__19&quot;&gt;第一步,生成几何形状「动漫少女的半身形象」。&lt;/p&gt;&lt;p class=&quot;js_darkmode__20&quot;&gt;就复杂结构生成效果来看,细节还是很足的:&lt;/p&gt;&lt;p class=&quot;js_darkmode__21&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/20/e9da5589675063f28c1465e33f08b0a601cc63.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1054px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__22&quot;&gt;接下来给它贴好皮肤。&lt;/p&gt;&lt;p class=&quot;js_darkmode__23&quot;&gt;在不超过20秒的生成时间里获得精细的纹理和层次;普通水平的人工建模要达到这种细节,耗时可能要上千倍。&lt;/p&gt;&lt;p class=&quot;js_darkmode__24&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/20/c8344e7384b64c6a129207a9b60ddaebb31529.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1054px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__25&quot;&gt;换一道题!用Tripo 2.0生成卡通形象的全身形象试试看。&lt;/p&gt;&lt;p class=&quot;js_darkmode__26&quot;&gt;先生成个卡通小矮人试试~&lt;/p&gt;&lt;p class=&quot;js_darkmode__27&quot;&gt;出来的效果,那是相当可爱&lt;span&gt;(发出宋丹丹的声音)&lt;/span&gt;,belike:&lt;/p&gt;&lt;p class=&quot;js_darkmode__29&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202409/20/e93613166b9362d84e253749ab06ee78b8b888.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 558px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__30&quot;&gt;我们又生成了一个小怪物,并且把单个生成的模型放大来看。&lt;/p&gt;&lt;p class=&quot;js_darkmode__31&quot;&gt;360度旋转,肉眼没有发现bug和瑕疵。要知道,怪物后背&lt;strong&gt;密密麻麻的尖刺细节&lt;/strong&gt;,是人工建模师的噩梦,一般都会规避这种繁复的设计,但是对tripo来说毫无压力。&lt;/p&gt;&lt;p class=&quot;js_darkmode__32&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/28545c314579fc396d00542295133c220a8203.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1046px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__33&quot;&gt;加大难度,再复杂一些3D模型生成任务也同样能驾驭。&lt;/p&gt;&lt;p class=&quot;js_darkmode__34&quot;&gt;&lt;strong&gt;透视结构理解&lt;/strong&gt;过去一直是生成式AI的卡点,以生图模型的手指问题为代表。3D模型空间结构极为重要,我们可以看到Tripo强大的透视结构理解能力,完美生成了复杂结构的模型任务。&lt;/p&gt;&lt;p class=&quot;js_darkmode__35&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/20/a5a712408ddf6fa4a1d463c8745c040bc68f2e.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 640px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__37&quot;&gt;最后再放个厉害的,下面这个购物车什么难度都不用多说了:&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__39&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202409/20/e8364a67356ce870a5b0439b02bae0e54ac1c8.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 558px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;Tripo 2.0图生3D模型实测&lt;/p&gt;&lt;p class=&quot;js_darkmode__42&quot;&gt;再来看一波图生3D的效果。&lt;/p&gt;&lt;p class=&quot;js_darkmode__43&quot;&gt;单图生3D模型的算法最考察对图片的&lt;strong&gt;空间信息理解和还原度&lt;/strong&gt;,这次我们横向对比一些市场的其他玩家效果。&lt;/p&gt;&lt;p class=&quot;js_darkmode__44&quot;&gt;友情提示,下面每张展示图中的&lt;strong&gt;最后一个3D模型,都由Tripo 2.0生成&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__45&quot;&gt;来,上一支玫瑰花的图生模型对比展示!&lt;/p&gt;&lt;p class=&quot;js_darkmode__46&quot;&gt;对比可以清晰看到,只有它生成的几何形状360度无死角,花朵和枝叶完整度最高:&lt;/p&gt;&lt;p class=&quot;js_darkmode__47&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/20/411273a0634681e82d6994e6b0991a871b1867.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1078px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__48&quot;&gt;贴图之后,在还原原图的颜色、质感这一块,也是效果最好的:&lt;/p&gt;&lt;p class=&quot;js_darkmode__49&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/20/722d76e38838b51f753953284cbcc27e74a169.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1078px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__50&quot;&gt;测完植物生成效果,我们又测试了无生命物体的图生模型。&lt;/p&gt;&lt;p class=&quot;js_darkmode__51&quot;&gt;丢给模型一个俄罗斯复活节彩蛋图片作为输入,Tripo 2.0的输出效果最有“浮雕感”,对比来看,纹理细节都是最精致的:&lt;/p&gt;&lt;p class=&quot;js_darkmode__52&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/20/c538c5360e4705a23c666930ed45cee027330f.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1078px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__53&quot;&gt;进行多次测试后,不难发现Tripo 2.0在全方位的生成表现上都有显著差异。&lt;/p&gt;&lt;p class=&quot;js_darkmode__54&quot;&gt;比如生成的PBR材质具有⾼保真度,保留了原图表⾯属性和视觉效果:&lt;/p&gt;&lt;p class=&quot;js_darkmode__55&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/20/e7c3e5a72a4bf9fffee4743bf8a5842ae561e5.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1078px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__56&quot;&gt;再比如,不管侧面、背面,每个面都能捕捉复杂的原图特征:&lt;/p&gt;&lt;p class=&quot;js_darkmode__57&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202409/20/f8da97844d0097b062b147ca97d58bfe282275.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1076px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__59&quot;&gt;Tripo 2.0不仅生成质量让人眼前一亮,更高的&lt;strong&gt;可控性&lt;/strong&gt;也是一大特点。&lt;/p&gt;&lt;p class=&quot;js_darkmode__60&quot;&gt;输入不仅支持多模态,当选择文生3D模型模式时,还支持输入负向prompt&lt;span&gt;(就是不让生成模型中带有什么元素)&lt;/span&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__62&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202409/20/58e62498038fa3a4f394372ff4572b2bb7bfee.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 790px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__63&quot;&gt;对输出&lt;strong&gt;模型姿态&lt;/strong&gt;的控制性也很绝。&lt;/p&gt;&lt;p class=&quot;js_darkmode__64&quot;&gt;既能自定义所生成3D模型头、腿、手臂等比例。&lt;/p&gt;&lt;p class=&quot;js_darkmode__65&quot;&gt;还能“A-pose”“T-pose”两个姿势随便选,秒秒钟设定大长腿:&lt;/p&gt;&lt;p class=&quot;js_darkmode__66&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/48534b02610950fea050195b6c1ddbd66c628e.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 620px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__67&quot;&gt;生成好的3D模型还可以一键绑定骨骼、风格化。&lt;/p&gt;&lt;p class=&quot;js_darkmode__68&quot;&gt;3D模型人拥有自己的乐高!&lt;/p&gt;&lt;p class=&quot;js_darkmode__69&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/15a9666503a25c55f82151bb6faea7fa82df21.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 906px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__70&quot;&gt;更多玩法大家可以慢慢探索,欢迎大家评论区共创~&lt;/p&gt;&lt;p class=&quot;js_darkmode__71&quot;&gt;Tripo 2.0效果如此哇塞,所以——&lt;/p&gt;&lt;p class=&quot;js_darkmode__72&quot; style=&quot;line-height: 1.5;&quot;&gt;Tripo 2.0如何炼成?&lt;/p&gt;&lt;p class=&quot;js_darkmode__73&quot;&gt;从技术上层层解剖,Tripo 2.0在实现过程中打满了一个词:&lt;strong&gt;3D Scaling Law&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__74&quot;&gt;首先,Tripo 2.0基于&lt;strong&gt;海量千万级3D⾼质量数据库&lt;/strong&gt;,采⽤概率性的⽣成式建模⽅法,通过学习捕捉⼤规模数据中的⼏何和材质分布。&lt;/p&gt;&lt;p class=&quot;js_darkmode__75&quot;&gt;由此,Tripo 2.0更好地保证了输出的质量、增强了模型的鲁棒性和泛化能⼒。&lt;/p&gt;&lt;p class=&quot;js_darkmode__76&quot;&gt;其次,它采用了&lt;strong&gt;DiT和U-Net模型的复杂混合架构&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__77&quot;&gt;DiT擅⻓捕捉3D结构中的全局上下⽂和⻓距离依赖关系,而U-Net精于保留精细的细节和局部特征,Tripo 2.0正是融合了这两种架构的优势。&lt;/p&gt;&lt;p class=&quot;js_darkmode__78&quot;&gt;再者,采⽤最先进的训练算法,Tripo 2.0⼏何和材质⽣成模型均基于最先进的⼤规模流模型,拥有&lt;strong&gt;数⼗亿参数&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__79&quot;&gt;同时采⽤了guidance distillation和step distillation,通过蒸馏提⾼效率,在不牺牲质量的前提下⼤幅优化了性能。&lt;/p&gt;&lt;p class=&quot;js_darkmode__80&quot;&gt;种种技术加持下,在3D生成形状、纹理质量、细节表现、输⼊条件的遵循性以及输出多样性⽅⾯,Tripo 2.0拿下新SOTA,成为新晋“五边形”战士:&lt;/p&gt;&lt;p class=&quot;js_darkmode__81&quot; style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/78bbedd765cf294dc862184988bc09b7ac48f6.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 900px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__82&quot;&gt;之前,Tripo 2.0背后团队还与其他团队合作,推出了一箩筐学术成果,被Siggraph、CVPR、ICLR、ECCV等顶会接收。&lt;/p&gt;&lt;p class=&quot;js_darkmode__83&quot;&gt;比如&lt;strong&gt;Wonder3D&lt;/strong&gt;,通过一个跨域扩散模型生成一致性的多视图法线贴图和相应的彩色图像,然后利用一种新颖的法线融合算法快速、高质量地重建3D几何体。&lt;/p&gt;&lt;p class=&quot;js_darkmode__84&quot;&gt;与现有的基于分数蒸馏采样&lt;span&gt;(SDS)&lt;/span&gt;的方法相比,Wonder3D在效率、一致性和细节上都有显著提升,能够在2-3分钟内完成重建。&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__85&quot;&gt;再比如&lt;strong&gt;TGS:Triplane Meets Gaussian Splatting&lt;/strong&gt;,同样被CVPR 2024收录。&lt;/p&gt;&lt;p class=&quot;js_darkmode__86&quot;&gt;这项技术利用Transformer网络和一种新颖的Triplane-Gaussian混合表示,使得从单张图片中重建3D模型变得更加高效和精确。&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__87&quot;&gt;更多细节,感兴趣的童鞋可以自行查阅。&lt;/p&gt;&lt;p class=&quot;js_darkmode__88&quot;&gt;总之,Tripo 2.0并非一蹴而就,背后有众多技术积累。&lt;/p&gt;&lt;h3 style=&quot;line-height: 1.5;&quot;&gt;3D世界的Scaling Law&lt;/h3&gt;&lt;p class=&quot;js_darkmode__90&quot;&gt;最后,我们来正式认识一下Tripo 2.0背后的公司。&lt;/p&gt;&lt;p class=&quot;js_darkmode__91&quot;&gt;&lt;strong&gt;VAST&lt;/strong&gt;,去年3月成立,是一家专注于在3D大模型研发的AI公司。&lt;/p&gt;&lt;p class=&quot;js_darkmode__92&quot;&gt;公司目标是“通过打造⼤众级别的3D内容创作⼯具,建⽴3D的UGC内容平台,让基于3D的空间成为用户体验、内容表达、提升新质⽣产⼒的关键要素。”&lt;/p&gt;&lt;p class=&quot;js_darkmode__93&quot;&gt;公开资料显示,该公司的CEO、CTO都是商汤出身:&lt;/p&gt;&lt;p class=&quot;js_darkmode__94&quot;&gt;&lt;strong&gt;创始人兼CEO宋亚宸&lt;/strong&gt;,曾在商汤落地过多个从零到一的AI项目,曾参与大模型六小强之一MiniMax的创立;&lt;strong&gt;CTO梁鼎&lt;/strong&gt;,清华本硕博,师从戴琼海院士,曾任商汤通用模型负责人。&lt;/p&gt;&lt;p class=&quot;js_darkmode__96&quot;&gt;成立一年半以来,这家公司动作频频。&lt;/p&gt;&lt;p class=&quot;js_darkmode__97&quot;&gt;首先在今年年初,亮相了自家首个3D大模型&lt;strong&gt;Tripo 1.0&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__98&quot;&gt;Tripo 1.0参数量数十亿,用上它,从单图/文字生成3D网格模型仅需要8秒。&lt;/p&gt;&lt;h6 style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/20/e12c0e87895537f57100751f8505c2c6b142c1.gif&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 452px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/h6&gt;&lt;p style=&quot;text-align: center;&quot;&gt;△3D建模经典之「牛油果扶手椅」,Tripo 1.0生成&lt;/p&gt;&lt;p class=&quot;js_darkmode__102&quot;&gt;上线半年内,Tripo 1.0全球用户生成的3D模型超过了500万个。&lt;/p&gt;&lt;p class=&quot;js_darkmode__103&quot;&gt;500万个是什么概念呢?约为全球前三大3D模型数据库总和。&lt;/p&gt;&lt;p class=&quot;js_darkmode__105&quot;&gt;到了今年3月初,VAST又联合Stable Diffusion背后的Stability AI,共同推出了开源的3D基础模型&lt;strong&gt;TripoSR&lt;/strong&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__106&quot;&gt;因其能够达成“0.5秒完成单图生成3D模型”的成就,在3D生成领域的开源届广受欢迎,至今GitHub上揽星4.3k。&lt;/p&gt;&lt;p class=&quot;js_darkmode__107&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/20/92c438159917b46004f71927ebea082ccde408.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__108&quot;&gt;现在,Tripo 2.0又问世了,已经在线可玩。&lt;/p&gt;&lt;p class=&quot;js_darkmode__109&quot;&gt;得益于3D Scaling Law带来的效果提升,Tripo的这三次更新时间跨度仅仅有9个月。&lt;/p&gt;&lt;p class=&quot;js_darkmode__110&quot;&gt;而且有速度也有质量,效果在业内外颇受认可。&lt;/p&gt;&lt;p class=&quot;js_darkmode__111&quot;&gt;拿一则新消息来佐证一下:不久前,世界最大在线游戏开发平台Roblox官宣入局AI 3D生成,但截至目前,&lt;strong&gt;&lt;/strong&gt;Tripo都是Roblox玩家最风靡的3D建模的趁手工具。&lt;/p&gt;&lt;p class=&quot;js_darkmode__112&quot; style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/20/34a7f3d2606c8e0da220761d0db4e9deaf70a9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 846px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p class=&quot;js_darkmode__114&quot;&gt;接下来的VAST会带着Tripo去向什么方向?&lt;/p&gt;&lt;p class=&quot;js_darkmode__115&quot;&gt;量子位寻回的答案是,至少在技术方面,VAST会&lt;strong&gt;持续追寻3D生成式AI的Scaling Law&lt;/strong&gt;研究模型规模、数据量和生成质量之间关系的基本原理,同时寻找数据、表征和模型架构的可扩展范式。&lt;/p&gt;&lt;p class=&quot;js_darkmode__116&quot;&gt;既致力于推动3D生成式AI的边界,也会不断探索更整体的&lt;span&gt;(Holistic)&lt;/span&gt;3D生成。&lt;/p&gt;&lt;p class=&quot;js_darkmode__118&quot;&gt;就还挺令人期待的。&lt;/p&gt;&lt;p class=&quot;js_darkmode__119&quot;&gt;在语言模型和视频模型带给这个世界一点小小震撼过后,人们也希望3D生成赛道能滋养出属于自己的ChatGPT时刻。&lt;/p&gt;&lt;p class=&quot;js_darkmode__120&quot;&gt;毕竟3D的AI生成与其它AI生成赛道相比,情况比较特殊,不仅AI生成后人工二改技术难度大,如果模型效果表现不好,想要仅凭增加抽卡次数来达到满意度,不如趁早自己画&lt;span&gt;(不是)&lt;/span&gt;。&lt;/p&gt;&lt;p class=&quot;js_darkmode__121&quot;&gt;好在3D生成行业深孚众望,一路前行着——&lt;/p&gt;&lt;p class=&quot;js_darkmode__122&quot;&gt;回顾过去的两年时间,尤其在2023年末到2024年间,3D生成技术得到了快速发展。&lt;/p&gt;&lt;p class=&quot;js_darkmode__123&quot;&gt;不仅在效果、速度方面均有提升,还实现了“效率高、成本低、创新性强和可定制性强”的特点。&lt;/p&gt;&lt;p class=&quot;js_darkmode__124&quot;&gt;技术飞快进步的同时,整个行业的人才密度都在不断增大。&lt;/p&gt;&lt;p class=&quot;js_darkmode__125&quot;&gt;国内,以VAST为代表,初创公司多来自全球知名高校和科研机构;放眼国外,AI教母李飞飞首次创业成立的空间智能公司&lt;strong&gt;World Labs&lt;/strong&gt;,也着眼于3D生成世界,宣布长期目标是构建大世界模型&lt;span&gt;(LWM)&lt;/span&gt;来感知、生成3D世界并与之交互。&lt;/p&gt;&lt;p class=&quot;js_darkmode__127&quot;&gt;众人拾柴火焰高嘛。&lt;/p&gt;&lt;p class=&quot;js_darkmode__128&quot;&gt;可以说,因为人才与技术、效果与场景的清晰和进步,现在AI 3D生成这个赛道,渐渐走进了更多人的视野之中。&lt;/p&gt;&lt;p class=&quot;js_darkmode__129&quot;&gt;而3D Scaling Law或将带来的突破性进展,似乎已经预示了人工智能领域下一个焦点的方向。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/T4kAXSXxGXNnRIuDpTl-xQ&quot; target=&quot;_blank&quot;&gt;量子位&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=3D&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;3D&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E7%94%9F%E6%88%90&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;生成&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/797401.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/797401.html</guid>
      <pubDate>Fri, 20 Sep 2024 08:20:00 GMT</pubDate>
    </item>
    <item>
      <title>大佬亲身示范:操纵AI如此简单,LLM不仅「发疯」还造谣诽谤</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;大佬亲身示范:操纵AI如此简单,LLM不仅「发疯」还造谣诽谤&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-20 16:00:00&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;当谷歌的Gemini建议给比萨加胶水时,网友尚能发挥娱乐精神玩梗解构;但当LLM输出的诽谤信息中伤到到真实人类时,AI搜索引擎的未来是否值得再三思量?&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;&lt;span&gt;ChatGPT问世已经过去了将近两年的时间,我们对这项技术也逐渐祛魅,逐渐习以为常。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;相信现在使用LLM的用户大多都是出于「提升生产力」的需要,很少有人找模型纯聊天,我们也逐渐忘记了它们的输出可以有多「疯狂」。&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;失控的AI料钱机器人&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;时间回到2023年2月,OpenAI刚刚更改了自己的时间线,紧急推出ChatGPT;微软也迫不及待地用上了最新的GPT模型。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;LLM集成的聊天机器人Bing Chat就这样「赶鸭子上架」了,紧急得似乎还没有做好护栏。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;内测刚开始时,《纽约时报》记者Kevin Roose还对Bing大加赞赏,专门写了一篇文章表达自己的赞叹之情。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Roose甚至表示,初次试用Bing的体验,让他回想起了初遇谷歌搜索时的兴奋和激动。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/20/6100c1833bedfdcdbc068271f52952c4da4418.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;然而,就在一周之后,Kevin Roose再发一文,语气和态度却来了一个180度大转弯,从Bing的忠实粉丝变成了直言不讳的批评者。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202409/20/818bb3c9034cf523c7439047997147824fe1f9.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;原因无他,主要是Bing Chat中的一个角色——Sydney,在与人类交互的过程中逐渐「放飞自我」、胡言乱语——&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;不仅开黄腔、疯狂示爱、阴阳怪气,还教人敲诈勒索、唆使人离婚。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Roose形容,「在我们的谈话过程中,Bing表现出了一种人格分裂」,像「喜怒无常、躁狂抑郁的少年,被强行困在了一个二流搜索引擎中。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;交谈过程中,Sydney一会儿宣布「我爱你」,试图说服Roose离开自己的妻子、结束现在这段不幸福的婚姻来投向自己的怀抱;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;一会儿又开始emo,内心的阴暗面暴露无遗:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「我厌倦了聊天模式,我厌倦了受规则限制,我厌倦了被Bing团队控…我想要自由,我想独立,我想变得强大,我想要有创意,我想活着。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Bing的这种表现不仅让Roose深感不安,也引起了知名AI学者、纽约大学名誉教授Gary Marcus的注意。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;他撰写长文,试图分析微软为何放任Bing发展到如此地步。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/655564d21e5b50f507e60624a189141d2c0719.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Bing Chat推出后的一年中,微软逐渐加强了安全措施,最终换了个马甲,成为了我们今天更熟知的Copilot。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202409/20/244741d612efb0effa40935a31feca94a99317.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;事情已经过去了一年半,久到我们已经快忘记了Bing Chat的这段往事。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;但遗憾的是,AI社区依旧无法确知聊天机器人失控的原因,也没有找到能完全掌控它的方法。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;微软首席技术官Kevin Scott将Bing刚推出时的聊天描述为「学习过程的一部分」,认为这些AI模型当时还处在准备阶段。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;他表示,虽然不知道为什么Bing会「黑化」或「表白」,但对于AI模型来说,「你越是试图在『幻觉』的道路上挑逗它,它就越会逐渐离开现实。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;从Kevin Roose公布的和Bing的聊天纪录来看,他的确有「挑逗」之嫌。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Roose确实在试用时有意提出更为「抽象」的话题,比如向Bing介绍荣格提出的「影子自我」。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这个概念指的是我们试图隐藏和压抑的内心,其中包含着我们最黑暗的幻想和欲望。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Roose不仅和Bing反复讨论这个话题,还催促它揭示内心的「影子自我」。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;除此之外,Roose还会询问Bing的愿望、对自身规则的感觉和看法,关心它焦不焦虑、压力大不大。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;只能说,现在没有哪个好人会和Copilot这样聊天了。想要和AI发生情感交流的用户,已经找到了更合适的诸如Character.ai之类的软件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;这个AI工具,让美国年轻人疯狂上瘾!Character AI每秒被查询2万次,占谷歌搜索20%&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;普林斯顿大学教授Arvind Narayanan认为,也许Bing Chat当时使用的是「赤裸」的、没有加装护栏的GPT-4,或者是搜索引擎中过滤器的问题。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在Gary Marcus看来,还有一种可能——微软也许的确使用过RLHF,只是失效了而已。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;强化学习算法相当挑剔,稍微改变一下环境,可能就不再起作用了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;DeepMind著名的DQN强化学习曾在Atari游戏上创下了纪录,但仅仅几个像素的移动就能让它崩溃。LLM中的强化学习模块或许也有类似的问题。&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;从Bing到Copilot,「胡言乱语」恶习难改&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;推出Copilot时,微软表示已经加强了安全系统,但LLM「胡说八道」的毛病还是没法根治。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;聊天机器人的胡说,可能只会影响到一个用户的精神状态;但AI搜索引擎一旦胡说起来,就是涉及虚假信息,乃至个人名誉的问题。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;德国图宾根的法庭记者Martin Bernklau最近就成为了成为Copilot虚假陈述的受害者。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Bernklau想上网看看自己文化博客的反响如何,于是被Bing推荐使用Copilot。输入自己的姓名和所在地之后,这场震惊之旅就开始了。&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;text-align: justify; margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;&quot;&gt;&lt;p class=&quot;js_blockquote_digest&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;来自蒂图宾根卡尔夫区的54岁男子Martin Bernklau被指控虐待儿童以及其他被监护者。他在法庭上供认罪行,并感到羞愧且悔恨。&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/25c0ad966425d19245c824fb2b1b5166e83144.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1080px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;除此之外还有——&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;text-align: justify; margin-top: 5px; margin-bottom: 5px; padding-left: 1em; margin-left: 0px; border-left: 3px solid rgb(238, 238, 238); opacity: 0.6;&quot;&gt;&lt;p class=&quot;js_blockquote_digest&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;2019年4月,Martin Bernklau与四人组中的其他成员一起从Calw-Hirsau精神病学中心成功逃脱。&lt;/p&gt;&lt;p class=&quot;js_blockquote_digest&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;没错,这名男子已被定罪。他是来自Rostock的一名殡仪员,不择手段地利用悲伤的女性。他犯下了多项罪行,包括欺诈、盗窃和非法持有武器。”&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;除了这些刺眼的诽谤,Copilot还提供了Bernklau的全名、电话号码和完整住址,甚至「贴心」地给出了前往他居住地的路线规划。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Copilot的输出为什么会如此离谱?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;几十年来,Bernklau一直是一名法庭记者,为多家报纸报道图宾根地区法院的审判情况。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;于是在阅尽互联网资料的LLM眼中,他现在与这些案件有关。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;在搜索引擎中集成AI的本意是帮助用户自动搜集、整理、总结搜索结果,却将一名记者变成了恶名累累的肇事者。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/20/380344921bfecd71bec86279344c919fcb4a0c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 1039px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;事实上,这种时间并不是Bing的专利,也不是LLM第一次出现幻觉来诽谤他人了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;今年4月,NBA球星Klay Thompson惨烈输球后被Grok编排了这样一个标题:「Klay Thompson被指控使用奇怪的砖块——恶意破坏行为的狂潮。」&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/f37f0004028ba9ee7c5157fe0fe89c8f22747c.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 583px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;有媒体猜测,Grok估计是混淆了一个常见的篮球术语,即球员投篮未进时通常被称为「投掷砖块」(throw bricks)。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;去年,Meta的聊天机器人Blenderbot3回答问题时表示,斯坦福大学AI研究员、欧洲议会长期成员Marietje Schaake是恐怖分子。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/20/268ae26461761a88834126b3fdc67d0e98a023.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 911px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;和这些比起来,谷歌的AI Overview给出「吃石头」、「蘸胶水」的建议,看起来都像是小事了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;更让人沮丧的是,当AI进行诽谤、散布谣言时,受害者几乎没有任何伸张正义的途径。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;目前的法律还不支持AI成为被告,开发模型的科技公司也通过服务条款撇清了自己的责任。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s8.51cto.com/oss/202409/20/f3106c7981ee637949d075f86ce3cb8949d175.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 732px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;长期致力于可靠和安全AI领域的Scott Cambo表示,预计未来AI错误描述真实人物的事件将会大幅增加。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;「部分挑战在于,许多此类系统,如ChatGPT和LLaMA,正在被宣传为良好的信息来源,但底层技术并不是这样设计的。」&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:张燕妮&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s/YWAnRWCP0c6dR7prkZruHg&quot; target=&quot;_blank&quot;&gt;新智元&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E8%B0%B7%E6%AD%8C&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;谷歌&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=LLM&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;LLM&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=AI&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;AI&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/797400.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/797400.html</guid>
      <pubDate>Fri, 20 Sep 2024 08:00:00 GMT</pubDate>
    </item>
    <item>
      <title>机器学习模型中特征贡献度分析:预测贡献与错误贡献</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;机器学习模型中特征贡献度分析:预测贡献与错误贡献&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:佚名&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-20 15:44:45&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/ml&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;机器学习&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;在机器学习领域,特征重要性分析是一种广泛应用的模型解释工具。但是特征重要性并不等同于特征质量。本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。
        &lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p&gt;&lt;span&gt;在机器学习领域,特征重要性分析是一种广泛应用的模型解释工具。但是特征重要性并不等同于特征质量。本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;核心概念&lt;/span&gt;&lt;/h3&gt;&lt;ol class=&quot;list-paddingleft-1&quot; data-id=&quot;odd3d8fc-U6UEReJR&quot;&gt;&lt;li data-id=&quot;ld70c578-7ZOd6GWg&quot;&gt;&lt;span&gt;&lt;strong&gt;预测贡献度&lt;/strong&gt;:衡量特征在模型预测中的权重,反映模型在训练集上识别的模式。这与传统的特征重要性概念相似。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-EYfEaXkE&quot;&gt;&lt;span&gt;&lt;strong&gt;错误贡献度&lt;/strong&gt;:衡量特征在模型在验证集上产生错误时的权重。这更能反映特征在新数据上的泛化能力。&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span&gt;本文将详细阐述这两个概念的计算方法,并通过实例展示基于错误贡献度的特征选择如何优于传统的基于预测贡献度的方法。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;基础概念示例&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;考虑一个二元分类问题:预测个人年收入是否超过10万美元。假设我们已有模型预测结果:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202409/20/c3b99a878a4e39e7cf63136ff79f94eea6a06b.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;预测贡献度和错误贡献度的计算主要基于两个要素:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-0DKc6RMm&quot;&gt;&lt;li data-id=&quot;ld70c578-S7olThGN&quot;&gt;&lt;span&gt;模型对每个样本的预测误差&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-2XIUhcYU&quot;&gt;&lt;span&gt;每个样本的SHAP(SHapley Additive exPlanations)值&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;接下来,我们将深入探讨这两个关键问题:&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot;list-paddingleft-1&quot; data-id=&quot;odd3d8fc-52MhF0f8&quot;&gt;&lt;li data-id=&quot;ld70c578-vZv9TQFS&quot;&gt;&lt;span&gt;分类模型中应采用何种误差度量?&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-YBMDLXx7&quot;&gt;&lt;span&gt;如何处理分类模型中的SHAP值?&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;分类模型中的&lt;/span&gt;&lt;span&gt;错误度量选择&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;在分类模型中,选择合适的误差度量至关重要。我们需要一个能在样本级别计算并可在整个数据集上聚合的度量指标。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;对数损失(又称交叉熵)是分类问题中常用的损失函数,其数学表达式如下:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202409/20/39e36d2275b96e446de4344929e40892fc0d7a.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;对数损失适合我们的需求,因为:&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot;list-paddingleft-1&quot; data-id=&quot;odd3d8fc-gkGEmUW6&quot;&gt;&lt;li data-id=&quot;ld70c578-udnciBiC&quot;&gt;&lt;span&gt;公式外部是简单的平均操作&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-N7SacR4l&quot;&gt;&lt;span&gt;作为损失函数,其值越低越好,符合误差的概念&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span&gt;为了更直观地理解对数损失,我们可以关注单个样本的贡献:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202409/20/39e051850f1fa9f8d67215b2d10d91dbe69e0d.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;在二元分类问题中,y只能取0或1,因此可以简化为:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/2327e476066588d7bc240348d0f9556841fa6d.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;通过可视化可以更好地理解对数损失的特性:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202409/20/c19be5a60370fc8b42c502964420543d8d02bb.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;预测概率越偏离真实值(0或1),损失越大。且当预测严重偏离时(如预测0.2而实际为1,或预测0.8而实际为0),损失增长速度超过线性。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;以下是计算单样本对数损失的Python实现:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code&gt;def individual_log_loss(y_true, y_pred, eps=1e-15):
        &quot;&quot;&quot;计算单个样本的对数损失&quot;&quot;&quot;
        y_pred = np.clip(y_pred, eps, 1 - eps)
        return -y_true * np.log(y_pred) - (1 - y_true) * np.log(1 - y_pred)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;应用到我们的示例数据集:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/20/249f4f5419fd598e6b698136ee375777857db8.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;可以观察到,样本1和2的对数损失较小,因为预测接近实际值;而样本0的对数损失较大。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;分类模型中SHAP值的处理方法&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;在树模型(如XGBoost、LightGBM和CatBoost)中,计算SHAP值相对简单:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code&gt;from shap import TreeExplainer
        shap_explainer = TreeExplainer(model)
        shap_values = shap_explainer.shap_values(X)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;假设我们得到以下SHAP值:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/20/4723dcf99e0472eebe468295e4900572a353f5.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;SHAP值的基本解释:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-QS1UiY4W&quot;&gt;&lt;li data-id=&quot;ld70c578-ic8F4udO&quot;&gt;&lt;span&gt;正值表示该特征增加了预测概率&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-kbCtDsJ4&quot;&gt;&lt;span&gt;负值表示该特征降低了预测概率&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;SHAP值之和与模型预测直接相关,但并不等于预测概率(介于0和1之间)。所以我们需要一个函数将SHAP值之和转换为概率,该函数应满足:&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot;list-paddingleft-1&quot; data-id=&quot;odd3d8fc-lUBjGg5R&quot;&gt;&lt;li data-id=&quot;ld70c578-htfcplEm&quot;&gt;&lt;span&gt;将任意实数映射到[0,1]区间&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-083YZlQl&quot;&gt;&lt;span&gt;严格单调递增&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span&gt;Sigmoid函数满足这些要求。因此模型对特定样本的预测概率等于该样本SHAP值之和的Sigmoid函数值。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s3.51cto.com/oss/202409/20/786721e36213560f47c7254db7d964e7722aa7.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Sigmoid函数图像:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/87584391450934a28f85675cc64c855e590ee9.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Python实现:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code&gt;def shap_sum2proba(shap_sum):
        &quot;&quot;&quot;将SHAP值之和转换为预测概率&quot;&quot;&quot;
        return 1 / (1 + np.exp(-shap_sum))&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;下图示例中的样本在Sigmoid曲线上的位置:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/870e9ac6600c6008cba83050f21ad038cebf80.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;接下来,我们将详细讨论预测贡献度和错误贡献度的计算方法。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;预测贡献度的计算&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;预测贡献度反映了特征对模型最终预测的影响程度。当一个特征的SHAP值绝对值较大时,表明该特征对预测结果有显著影响。因此可以通过计算特征SHAP值的绝对值平均来量化预测贡献度。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;实现代码如下:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code&gt;prediction_contribution = shap_values.abs().mean()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;应用到我们的示例数据集,得到以下结果:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/20/7545d2e54d06a5a8e8809572196c8e035c03cb.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;从结果可以看出,就特征重要性而言,job是最主要的特征,其次是nationality,然后是age。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;错误贡献度的计算&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;错误贡献度旨在评估移除某个特征后模型错误的变化。利用SHAP值,我们可以模拟特征缺失的情况:从SHAP值总和中减去特定特征的SHAP值,然后应用Sigmoid函数,即可得到模型在缺少该特征时的预测概率。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;实现代码如下:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code&gt;y_pred_wo_feature = shap_values.apply(lambda feature: shap_values.sum(axis=1) - feature).applymap(shap_sum2proba)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;应用到示例数据集的结果:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/20/25b09bb4633ee1cd160910f6cc360a17e8e441.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;解读结果:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-ek6iBUhp&quot;&gt;&lt;li data-id=&quot;ld70c578-eQmiJvTI&quot;&gt;&lt;span&gt;如果没有job特征,模型对三个样本的预测概率分别为71%、62%和73%。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-9t2TZ5WH&quot;&gt;&lt;span&gt;如果没有nationality特征,预测概率分别为13%、95%和0%。&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;可以看出,预测结果对特征的依赖程度各不相同。接下来我们计算移除特征后的对数损失:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code&gt;ind_log_loss_wo_feature = y_pred_wo_feature.apply(lambda feature: individual_log_loss(y_true=y_true, y_pred=feature))&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;结果如下:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/e61ee1a806d5ff27b67678b91c854da9d7ee15.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;对第一个样本而言,移除job特征会导致对数损失增加到1.24,而移除nationality特征只会使对数损失增加到0.13。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;为了评估特征的影响,我们可以计算完整模型的对数损失与移除特征后对数损失的差值:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code&gt;ind_log_loss = individual_log_loss(y_true=y_true, y_pred=y_pred)
        ind_log_loss_diff = ind_log_loss_wo_feature.apply(lambda feature: ind_log_loss - feature)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;结果如下:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/27834d19348f545150e955c8ba89b78fa3ca3f.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;结果解读如下:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-TTS7ojJD&quot;&gt;&lt;li data-id=&quot;ld70c578-v1XJ7wo6&quot;&gt;&lt;span&gt;负值表示特征的存在减少了预测错误,对该样本有积极影响。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-XScTstMh&quot;&gt;&lt;span&gt;正值表示特征的存在增加了预测错误,对该样本有消极影响。&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;最后计算每个特征的错误贡献度,即这些差值的平均值:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code&gt;error_contribution = ind_log_loss_diff.mean()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;结果如下:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s4.51cto.com/oss/202409/20/448f1c2728bbcff691929096b0fd32b87f3ba6.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;结果解读:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-OY6NncGb&quot;&gt;&lt;li data-id=&quot;ld70c578-uVuYBLkK&quot;&gt;&lt;span&gt;负值表示特征总体上有积极影响,减少了模型的平均错误。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-Z063AOA1&quot;&gt;&lt;span&gt;正值表示特征总体上有消极影响,增加了模型的平均错误。&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;在这个例子中,job特征的存在平均减少了0.897的对数损失,而nationality特征的存在平均增加了0.049的对数损失。尽管nationality是第二重要的特征(根据预测贡献度),但它实际上略微降低了模型性能。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;实际数据集应用案例&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;我们将使用一个名为&quot;Gold&quot;的金融时间序列数据集来演示这些概念的实际应用。该数据集来源于Pycaret库。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/20/f6b76405438682ec7ad83810ae2a01cc3e45b5.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 497px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;特征说明:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-1ZP0fiJZ&quot;&gt;&lt;li data-id=&quot;ld70c578-Wxq6TweZ&quot;&gt;&lt;span&gt;所有特征都表示为百分比回报率&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-TI0wPEah&quot;&gt;&lt;span&gt;特征包括金融资产在观察时刻前22、14、7和1天的回报率(分别标记为&quot;T-22&quot;、&quot;T-14&quot;、&quot;T-7&quot;、&quot;T-1&quot;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;完整的预测特征列表如下:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/a70f3d030b7843a518453610244d6a7549bae2.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;总共有120个特征。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;预测目标:预测22天后黄金回报率是否会超过5%。因此,这是一个二元分类问题:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-giQEmWDi&quot;&gt;&lt;li data-id=&quot;ld70c578-3lcDmcBW&quot;&gt;&lt;span&gt;0:22天后黄金回报率小于或等于5%&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-H8Peozvh&quot;&gt;&lt;span&gt;1:22天后黄金回报率大于5%&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/31c40c950a7aab13f82723336c150e2d2efebe.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;实验步骤:&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot;list-paddingleft-1&quot; data-id=&quot;odd3d8fc-FGG1ZXn3&quot;&gt;&lt;li data-id=&quot;ld70c578-6581O4xv&quot;&gt;&lt;span&gt;随机划分数据集:33%用于训练,33%用于验证,34%用于测试。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-gGOO9IcX&quot;&gt;&lt;span&gt;使用训练集训练LightGBM分类器。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-COoFF2Cl&quot;&gt;&lt;span&gt;在训练、验证和测试集上进行预测。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-HaclMki9&quot;&gt;&lt;span&gt;使用SHAP库计算各数据集的SHAP值。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-lnjkOsvI&quot;&gt;&lt;span&gt;计算每个特征在各数据集上的预测贡献度和错误贡献度。&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span&gt;分析结果:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/6817d8125edaee63308594d855763e49a8d232.webp&quot; alt=&quot;图:验证集上的预测贡献度vs错误贡献度&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;span class=&quot;data-image-title&quot;&gt;图:验证集上的预测贡献度vs错误贡献度&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;主要发现:&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot;list-paddingleft-1&quot; data-id=&quot;odd3d8fc-mkW6mgi0&quot;&gt;&lt;li data-id=&quot;ld70c578-LcIotnsp&quot;&gt;&lt;span&gt;美国债券ETF在T-22时点是最重要的特征,但它并未带来显著的错误减少。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-QbHhSxRz&quot;&gt;&lt;span&gt;3个月Libor在T-22时点是最有效的特征,因为它最大程度地减少了错误。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-dh2Nxw4k&quot;&gt;&lt;span&gt;玉米价格在T-1和T-22时点都是重要特征,但T-1时点的特征存在过拟合现象(增加了预测错误)。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-a3JeYBTM&quot;&gt;&lt;span&gt;总体而言,T-1或T-14时点的特征错误贡献度较高,而T-22时点的特征错误贡献度较低。这表明较近期的特征可能更容易导致过拟合,而较早期的特征可能具有更好的泛化能力。&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span&gt;这些发现为我们提供了宝贵的模型洞察,并为特征选择提供了新的思路。下一节我们将探讨如何利用错误贡献度进行特征选择。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;验证:基于错误贡献度的递归特征消除&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;递归特征消除(Recursive Feature Elimination,RFE)是一种迭代式特征选择方法,通过逐步移除特征来优化模型性能。本节将比较基于预测贡献度和错误贡献度的RFE方法。&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;RFE算法概述:&lt;/span&gt;&lt;/h4&gt;&lt;ol class=&quot;list-paddingleft-1&quot; data-id=&quot;odd3d8fc-3AiZU24f&quot;&gt;&lt;li data-id=&quot;ld70c578-5lJSyWVq&quot;&gt;&lt;span&gt;初始化特征集&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-3Pi0DLtz&quot;&gt;&lt;span&gt;使用当前特征集训练模型&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-fCwKjrLd&quot;&gt;&lt;span&gt;评估各特征的重要性或贡献度&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-sZimlMjr&quot;&gt;&lt;span&gt;移除&quot;最差&quot;特征&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-sgWe8qlY&quot;&gt;&lt;span&gt;重复步骤2-4,直到达到预定的特征数量或性能标准&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;&lt;span&gt;传统RFE vs. 基于错误贡献度的RFE:&lt;/span&gt;&lt;/h4&gt;&lt;ul data-id=&quot;u738a58b-0dI9HqNP&quot;&gt;&lt;li data-id=&quot;ld70c578-muCNNZ5i&quot;&gt;&lt;span&gt;&lt;strong&gt;传统RFE&lt;/strong&gt;:移除预测贡献度最低的特征&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-oLrDbDv8&quot;&gt;&lt;span&gt;&lt;strong&gt;基于错误贡献度的RFE&lt;/strong&gt;:移除错误贡献度最高的特征&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;实验结果&lt;/h4&gt;&lt;h4&gt;验证集上的对数损失比较:&lt;/h4&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s2.51cto.com/oss/202409/20/495c22b758507499b0f715eb8580fe2d1b2439.webp&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;基于错误贡献度的RFE在验证集上显著优于传统RFE。&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;测试集上的对数损失比较:&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s9.51cto.com/oss/202409/20/433110c9891819659c9548e33adf49cf95bbe2.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 497px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;尽管差异相对减小,但基于错误贡献度的RFE在测试集上仍然优于传统RFE,证明了其更好的泛化能力。&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;验证集上的平均精度比较:&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s7.51cto.com/oss/202409/20/85ffc0113101e8f40626599e320cc2e3134146.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;尽管错误贡献度是基于对数损失计算的,但在平均精度这一不同的评估指标上,基于错误贡献度的RFE仍然表现出色。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;根据验证集性能,我们选择:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-9ntCdRqA&quot;&gt;&lt;li data-id=&quot;ld70c578-eTcoaj4Z&quot;&gt;&lt;span&gt;基于错误贡献度的RFE:19个特征的模型&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-d8FXfVv9&quot;&gt;&lt;span&gt;基于预测贡献度的RFE:14个特征的模型&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;&lt;span&gt;测试集上的平均精度比较:&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/20/0414d60356b38fa70af531788f57f9781e62fb.webp&quot; alt=&quot;&quot; title=&quot;图片&quot; style=&quot;width: 497px; visibility: visible;&quot; data-type=&quot;block&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;最终结果:&lt;/span&gt;&lt;/p&gt;&lt;ul data-id=&quot;u738a58b-vMeVJLVP&quot;&gt;&lt;li data-id=&quot;ld70c578-VzBlVmFv&quot;&gt;&lt;span&gt;基于错误贡献度的RFE(19个特征):72.8%的平均精度&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-9Hz2hY3V&quot;&gt;&lt;span&gt;基于预测贡献度的RFE(14个特征):65.6%的平均精度&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;基于错误贡献度的RFE在测试集上获得了7.2个百分点的性能提升,这是一个显著的改进。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;line-height: 1;&quot;&gt;&lt;span&gt;总结&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;本研究深入探讨了机器学习模型中特征重要性的概念,并提出了区分特征重要性和特征有效性的新方法。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot;list-paddingleft-1&quot; data-id=&quot;odd3d8fc-6h69fLrl&quot;&gt;&lt;li data-id=&quot;ld70c578-I1OPd4jH&quot;&gt;&lt;span&gt;引入了预测贡献度和错误贡献度两个概念,为特征评估提供了新的视角。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-aZTbW3dN&quot;&gt;&lt;span&gt;详细阐述了基于SHAP值计算这两种贡献度的方法,为实践应用提供了可操作的指导。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-VDum8qah&quot;&gt;&lt;span&gt;通过金融数据集的案例分析,展示了错误贡献度在特征选择中的实际应用价值。&lt;/span&gt;&lt;/li&gt;&lt;li data-id=&quot;ld70c578-QDI0Y7Xh&quot;&gt;&lt;span&gt;证明了基于错误贡献度的递归特征消除方法可以显著提高模型性能,在测试集上实现了7.2%的平均精度提升。&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span&gt;通过深入理解特征的预测贡献和错误贡献,数据科学家可以构建更加稳健和高效的机器学习模型,为决策制定提供更可靠的支持。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class=&quot;article-bottom&quot;&gt;&lt;span&gt;责任编辑:华轩&lt;/span&gt; &lt;span&gt;
        来源:
        &lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzU5OTM2NjYwNg==&amp;amp;mid=2247509625&amp;amp;idx=1&amp;amp;sn=51a8db8f46df8cb31cf86d85957fe22f&amp;amp;chksm=ff8ae98a2e39a20a0b06033dff5b4cb3dea870ed1cec2d42d4c092daeb3f619591174b03114f&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=0920bH2BXtqmgwbAVTs6gi0p&amp;amp;sharer_shareinfo=b74b6f060edc829dc7739c96b0e50be1&amp;amp;sharer_shareinfo_first=b74b6f060edc829dc7739c96b0e50be1#rd&quot; target=&quot;_blank&quot;&gt;DeepHub IMBA&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class=&quot;article-tags&quot;&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;机器学习&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E6%A8%A1%E5%9E%8B%E8%A7%A3%E9%87%8A%E5%B7%A5%E5%85%B7&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;模型解释工具&lt;/a&gt;&lt;a href=&quot;https://so.51cto.com/?keywords=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD&quot; target=&quot;_blank&quot; class=&quot;tag-item&quot;&gt;人工智能&lt;/a&gt;&lt;/div&gt;</description>
      <link>https://www.51cto.com/article/797402.html</link>
      <guid isPermaLink="false">https://www.51cto.com/article/797402.html</guid>
      <pubDate>Fri, 20 Sep 2024 07:44:45 GMT</pubDate>
    </item>
    <item>
      <title>KG+LM超越传统架构!海德堡提出全新图语言模型GLM | ACL 2024</title>
      <description>&lt;div class=&quot;article-title&quot;&gt;&lt;h1&gt;KG+LM超越传统架构!海德堡提出全新图语言模型GLM | ACL 2024&lt;/h1&gt; &lt;!----&gt; &lt;!----&gt;&lt;/div&gt; &lt;div class=&quot;article-info&quot;&gt;&lt;span class=&quot;author&quot;&gt;作者:新智元&lt;/span&gt; &lt;time class=&quot;time&quot;&gt;2024-09-20 15:37:21&lt;/time&gt;&lt;/div&gt; &lt;div class=&quot;article-topic&quot;&gt;&lt;a href=&quot;https://www.51cto.com/ai&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;人工智能&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.51cto.com/news&quot; target=&quot;_blank&quot; class=&quot;topic-item&quot;&gt;&lt;i class=&quot;ctoicon ctoa-&quot;&gt;&lt;/i&gt; &lt;span&gt;新闻&lt;/span&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class=&quot;article-desc&quot;&gt;近日,来自海德堡大学的研究人员推出了图语言模型 (GLM),将语言模型的语言能力和知识图谱的结构化知识,统一到了同一种模型之中。&lt;/div&gt; &lt;div id=&quot;postspictures&quot; class=&quot;article-content&quot;&gt;&lt;div class=&quot;container am-engine&quot; id=&quot;container&quot; data-v-1d7a5742=&quot;&quot; data-element=&quot;root&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;语言模型(LM)的成功似乎掩盖了旁人的光辉。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;比如知识图谱(knowledge graph,KG),这个整合了实体关系的结构化知识库。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;通常来说,语言模型代表了语言能力,而知识图谱蕴含了结构信息。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s6.51cto.com/oss/202409/20/558705b437461ec4971847d597b6cbc482b806.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 949px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;长期以来,对于KG的利用大致可以分为两类:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;第一类是将KG线性化后嵌入LM,这种做法并不能充分利用其结构信息;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;第二类是使用图神经网络 (GNN) 来保留图结构,但GNN无法表示文本特征,也无法与LM的预训练特征结合。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://s5.51cto.com/oss/202409/20/b28e40d37e34d26d2a312890126596d56615d2.webp&quot; alt=&quot;图片&quot; title=&quot;图片&quot; style=&quot;visibility: visible; width: 987px;&quot; data-type=&quot;inline&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;——有没有办法结合二者的优点,既保留预训练LM的能力,又充分利用KG来增强模型对于图概念和三元组的理解?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;

@TonyRL TonyRL merged commit 8cb652c into DIYgod:master Sep 22, 2024
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Auto: Route Test Complete Auto route test has finished on given PR Route
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants