我承认,我低估国产大模型了!新功能太强大了

记得今年2月Qwen1.5开源,这才过去4个月,新版本QWen2今天就重磅出击了,这开源的速度实在太快了。

发布后两小时,Hugging Face联合创始人兼首席执行官克莱门特·德朗格(Clément Delangue)就发推宣布:HF开源大模型榜单新的第一名来了,Qwen2-72B全球排名最高!

之前的Qwen1.5-110B已经领先文心4.0等一众中国闭源模型。而刚刚开源的Qwen2-72B,整体性能相比Qwen1.5-110B又取得了大幅提升。简直为开闭源之争画下了休止符!

Qwen2系列模型大幅提升了代码、数学、推理、指令遵循、多语言理解等能力。在MMLU、GPQA、HumanEval、GSM8K、BBH、MT-Bench、Arena Hard、LiveCodeBench等国际权威测评中,Qwen2-72B一举斩获十几项世界冠军,超过美国的Llama3。

作为程序员,我也非常关注大模型的发展,我深知它对软件开发领域的巨大冲击。

在现阶段,大模型虽然没办法作为一个独立的个体来像人那样,从客户沟通、需求分析到架构设计、详细设计、编码、测试、部署,从头到尾实现一个完整的系统,但是它在详细设计、编码、测试等领域展示出的强大能力,完全可以成为程序员编程的好助手。

QWen2在编程领域实战效果到底如何呢?

0****1

QWen2实战测评

我手头有一个非常经典的素材:薪水支付案例。

这个案例的需求是这样的:

该系统由一个公司数据库以及和员工相关的数据组成,系统需要准时地按照规则给员工支付薪水

员工有三种类型

1.钟点工,每个小时有固定报酬,他们每天提交工作时间卡,其中记录了日期以及工作小时数,如果每天工作超过8小时,按1.5倍进行支付。每周五对他们进行支付。

2.月薪员工,工资固定,每个月的最后一个工作日对他们进行支付

3.销售人员,有固定工资,但会根据他们的销售情况,支付给他们一定数量的佣金,他们会提交销售凭条,其中记录了销售的日期和数量。每隔一周的周五对他们进行支付。

员工可以选择支付方式,可以把支票邮寄到他们指定的邮政地址,也可以保存在财务那里随时支取,或者要求直接存入他们指定的银行账户。

看了这个需求以后,程序员第一次设计一般是这样的:

Employee 作为基类,不同类型的雇员类来继承。

但是这个需求会有变更,客户要求员工类型可以变更,例如从钟点工变成月薪雇员,这样上面的设计就不行了。

这个时候应该做个抽象,,用一个类PaymentClassification来表达支付分类,然后让Employee类持有这个实例,简单说就是用组合代替继承。

这个案例主要看程序员能不能应用面向对象的设计原则,把那些变化的东西抽象成稳定的接口,非常考验人。

去年,我用这个案例实验过国内一些闭源的大模型,结果惨不忍睹,只有国外的GPT-4能基本达到设计目标,差距非常明显。

我决定拿这个案例考验下QWen2,看看它能不能避开我给它挖的坑。

QWen2的第一次设计是这样的:

Qwen2还特别提到:这个设计考虑到了不同类型的员工及其支付规则,同时允许灵活的支付方式选择。通过使用继承,我们能够避免重复代码,并且清晰地表示出不同类型的员工之间的共性和差异。

还真是不错,它“理解”了需求,从中抽取出了名词进行类的设计,它设计出来的Employee,HourlyEmployee,SalariedEmployee,SalesPerson和第一个UML图几乎是一样的。

已经达到了面向对象设计的初级水平。

接下来开始挖坑:

刘欣:上面的类设计得很好,但是如果一个人刚开始是钟点工,后来变成了月薪员工,上面的设计就无法支持这种变更了,这该怎么办呢?

Qwen2:

对于员工类型的变化,我们可以通过引入状态模式或策略模式来解决这一问题。在这里,我将采用策略模式,因为这种模式允许对象在其行为中嵌入可互换的算法族,非常适合处理员工类型的变化。

1. PaymentStrategy (支付策略接口) …略…

2. HourlyPaymentStrategy (钟点工支付策略) 继承自: PaymentStrategy …略…

3. SalariedPaymentStrategy (月薪支付策略) 继承自: PaymentStrategy …略…

4. SalesPaymentStrategy (销售人员支付策略) 继承自: PaymentStrategy …略…

5. Employee (员工类更新)

属性:

payment_strategy: 当前支付策略

…略…

方法:

set_payment_strategy(self, new_strategy): 更改支付策略

…略…

通过这样的设计,我们可以在运行时动态更改员工的支付策略,从而支持员工类型的变化。这不仅增加了系统的灵活性,也简化了维护和扩展的工作。

不得不说,QWen2 非常厉害,它一下子就抓住了问题的关键,把薪水计算策略PaymentStrategy给抽象了出来。

和第二个UML图相比,除了名称不同,基本上一样了。

可以说,能做到这一步,就可以超越很多程序员了。

我注意到,它一直没有处理支付周期的问题。我开始继续发问:

刘欣:原来的需求中还有支付的时间,例如钟点工每周五支付,这个该怎么设计?

QWen2:

我们可以通过定义一个PaymentSchedule接口,然后让具体的支付周期策略实现这个接口。这样,无论支付周期的规则如何变化,我们只需要关注PaymentSchedule接口的实现,而不需要修改其他部分的代码。

PaymentSchedule 接口 …略…

WeeklyPaymentSchedule (周支付策略) 继承自: PaymentSchedule …略…

MonthlyPaymentSchedule (月支付策略) 继承自: PaymentSchedule …略…

BiweeklyPaymentSchedule (双周支付策略) 继承自: PaymentSchedule …略…

Employee 类更新

属性:

salary_strategy: 当前薪资计算策略

payment_schedule: 当前支付周期策略

这种设计使我们可以独立地管理薪资计算逻辑和支付周期逻辑,同时保持代码的清晰和模块化。当需要添加新的支付周期策略或修改现有策略时,我们只需要在PaymentSchedule接口下实现新的类,而无需修改Employee类或其他部分的代码。这正是面向接口编程的好处:提高代码的复用性和扩展性。

是不是非常惊艳?

在程序员的提示下,它已经学会了分离关注点。应用了“优先使用组合而不是继承”的思想,实现了一个非常好的设计。

这个能力,只有原来GPT-4才具备,现在QWen2也具备了,甚至做得更好。

可以说,在详细设计这一层面,程序员可以充分相信QWen2了。

0****2

QWen2本地部署

程序员都喜欢折腾属于自己的东西,大模型也不例外,我就喜欢用Ollama做本地部署。

这次Qwen2开源系列包含5个尺寸的预训练和指令微调模型,Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B和Qwen2-72B,其中Qwen2-57B-A14B为混合专家模型(MoE)

我这机器恐怕跑不了太大的模型,就选个7B的吧,本地部署非常简单,一条命令搞定:ollama run qwen2:7b

马上实验一下。

刘欣:用Python写个函数,输入是个4位数(如1876),返回这个4位数的千位,百位,十位,个位

结果QWen2-7b 给我返回了这个函数:

def extract_digits(number):`    `# 将输入的4位数转换为字符串以便更容易操作每个数字位置`    `number_str = str(number)`    `# 数字的千位是字符串中的第一个字符,所以用 [0] 访问它。`    `thousands_digit = int(number_str[0])`    `# 百位是第二个字符,用 [1] 访问它。`    `hundreds_digit = int(number_str[1])`    `# 十位是第三个字符,用 [2] 访问它。`    `tens_digit = int(number_str[2])`    `# 个位是最后一个字符,用 [-1] 访问它(因为列表索引是从0开始的)。`    `ones_digit = int(number_str[-1])`    `return thousands_digit, hundreds_digit, tens_digit, ones_digit``   

竟然是用字符串处理的,让我着实没想到!

刘欣:不要用字符串处理的办法!

这次它给出了我想要的结果:

def extract_digits(number):`    `thousands = number // 1000`    `hundreds = (number % 1000) // 100`    `tens = (number % 100) // 10`    `ones = number % 10`    `return thousands, hundreds, tens, ones

0****3

总结

一年前,人们普遍认为开源模型和最领先的闭源模型之前存在一两年的代差,如今,以QWen2为代表开源阵营用实力证明,开源模型正在加速追赶头部闭源模型。

自2023年8月开源以来,通义千问在全球开源社区生态中已形成重要影响力。6月7日,Qwen2系列模型的API第一时间登陆阿里云百炼平台。TensorRT-LLM、OpenVINO、OpenCompass、XTuner、LLaMA-Factory、Firefly、OpenBuddy、vLLM、Ollama等众多全球开源平台和工具,也第一时间宣布支持Qwen2最新款模型。除了美国Llama开源生态之外,通义千问已成为全球开发者的另一主流选项。

有了开源大模型,海量的中小企业和开发者再也不用从头训练大模型,可以直接站在前沿技术成果的肩膀上做创新,当越来越多的开发者、企业能结合自己的需求,来促进大模型的发展和应用,必将带来翻天覆地的变化。

那么,我们该如何学习大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一、大模型全套的学习路线

学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。

L1级别:AI大模型时代的华丽登场

L2级别:AI大模型API应用开发工程

L3级别:大模型应用架构进阶实践

L4级别:大模型微调与私有化部署

一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。

以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值