雷军豪掷千万年薪!这位95后AI天才少女到底有多强?

大家好,我是鸭鸭!

最近国产大模型 DeepSeek V3 版本发布,在全球火了一把。

DeepSeek 是国内人工智能公司深度求索(DeepSeek)自主研发的大语言模型。它最新的 V3 版本各项数据已经和国外 AI 巨头不相上下。

而且这个 MoE 模型总参数量高达 671B,激活参数量 37B,使用了 14.8T token 进行训练,消耗了 278.8 万 H800 卡时,训练成本仅为 560 万美元!

随之火起来的是 DeepSeek 的“天才少女”罗福莉。她之前是 DeepSeek 的深度学习研究员,是 DeepSeek-V2 关键开发者之一

在职业生涯中,罗福莉曾在阿里巴巴达摩院担任机器智能实验室的研究员,主导开发了多语言预训练模型VECO,该模型被纳入阿里达摩院的深度语言模型体系AliceMind。

2022年,她离开阿里,加入DeepSeek,担任深度学习研究员,参与了DeepSeek-V2的开发直到现在的 V3 。

DeepSeek V3 爆火的同时,也传出她加入小米大模型实验室的消息。

图片

早在 2019 年,罗福莉就曾经因为在自然语言处理顶级会议 ACL 2019 上发表 8 篇论文引起热议(8篇什么含金量?)。

图片

罗福莉亲自在知乎回复了这个问题。只能说大佬不愧是大佬。

据说这次是小米创始人雷军亲自出手挖人,开出了千万年薪。这个年薪的真假,鸭鸭不好说,但百度百科上罗福莉的个人信息已经更新为小米 AI 实验室相关负责人。

最近 DeepSeek 的招聘也火起来,有兴趣的同学可以试着投一投。

……

回归今天的面试题:

什么是 Java 中的动态代理?

回答重点

Java 中的动态代理是一种在运行时创建代理对象的机制。动态代理允许程序在运行时决定代理对象的行为,而不需要在编译时确定。它通过代理模式为对象提供了一种机制,使得可以在不修改目标对象的情况下对其行为进行增强或调整。

代理可以看作是调用目标的一个包装,通常用来在调用真实的目标之前进行一些逻辑处理,消除一些重复的代码。

静态代理指的是我们预先编码好一个代理类,而动态代理指的是运行时生成代理类。

扩展知识

动态代理主要用途

  • 简化代码:通过代理模式,可以减少重复代码,尤其是在横切关注点(如日志记录、事务管理、权限控制等)方面。
  • 增强灵活性:动态代理使得代码更具灵活性和可扩展性,因为代理对象是在运行时生成的,可以动态地改变行为。
  • 实现 AOP:动态代理是实现面向切面编程(AOP, Aspect-Oriented Programming)的基础,可以在方法调用前后插入额外的逻辑。

Java 动态代理与 CGLIB 代理:

  • Java 动态代理:只能对接口进行代理,不支持对类进行代理。
  • CGLIB 代理:通过字节码技术动态生成目标类的子类来实现代理,支持对类(非接口)进行代理。

JDK 示例代码:

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

// 目标接口
interface MyService {
   void doSomething();
}

// 目标对象的实现
class MyServiceImpl implements MyService {
   @Override
   public void doSomething() {
       System.out.println("Doing something...");
   }
}

// 动态代理处理器
class MyInvocationHandler implements InvocationHandler {
   private final Object target;

   public MyInvocationHandler(Object target) {
       this.target = target;
   }

   @Override
   public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
       System.out.println("Before method call");
       Object result = method.invoke(target, args);
       System.out.println("After method call");
       return result;
   }
}

// 使用动态代理
public class Main {
   public static void main(String[] args) {
       MyService target = new MyServiceImpl();
       MyService proxy = (MyService) Proxy.newProxyInstance(
           target.getClass().getClassLoader(),
           target.getClass().getInterfaces(),
           new MyInvocationHandler(target)
       );

       proxy.doSomething();
   }
}

CGLIB 示例代码:

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

// 目标类
class MyService {
   public void doSomething() {
       System.out.println("Doing something...");
   }
}

// CGLIB 代理处理器
class MyInterceptor implements MethodInterceptor {
   @Override
   public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
       System.out.println("Before method call");
       Object result = proxy.invokeSuper(obj, args);
       System.out.println("After method call");
       return result;
   }
}

// 使用 CGLIB 动态代理
public class Main {
   public static void main(String[] args) {
       Enhancer enhancer = new Enhancer();
       enhancer.setSuperclass(MyService.class);
       enhancer.setCallback(new MyInterceptor());

       MyService proxy = (MyService) enhancer.create();
       proxy.doSomething();
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值