微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

原创 Aitrainee  2024年07月06日 15:16 湖南

Aitrainee | 公众号:AI进修生
🌟这是一个新模型,据称可以击败 Llama-3、Qwen2、Deepseek 和其他开源 LLM 等模型,同时体积更小。我将在这篇文章中对其进行测试。

前些日子,微软发布了他们的Phi系列模型。首先,他们推出了Phi-3 Mini模型,这是一个4B参数的模型,接着发布了7B和14B的小型和中型模型,然后又发布了Mini Vision模型。这些模型表现都相当出色,完全符合微软的预期。

然而,我觉得最令人印象深刻的是这个4B参数的Mini模型。尽管体积小巧,但知识储备丰富,因此我最近常用它。微软最近又对这个Mini模型进行了升级,使其性能更上一层楼。他们仍称其为Phi-3 Mini模型,但许多人称其为Phi-3.1,这个名称更加准确。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

这次更新仅针对Phi-3 Mini模型,性能提升了接近15%。他们说这个更新是基于客户反馈,并包含了更多的后期训练数据,显著提高了指令遵循和结构化输出的表现,还增强了多轮对话质量、系统标签支持以及推理能力,总体上是全面的改进。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)
www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

让我们看看他们分享的最新基准测试数据。在指令硬和额外硬类别中,提升不大,但在指令挑战基准测试中,分数从24.6提高到了42.3,几乎提升了一倍。在Json结构化输出方面,从11.5提升到了52.3,提升了约五倍。在XML结构化输出方面,也有显著提升,从14.4提高到了49.8,大约是四倍的提升。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

此外,在GP QA和MML方面也有不错的提升,这些改进都很酷。他们还在几乎所有平台上更新了这个新模型,包括Hugging Face和Azure AI Studio,所以你可以在Azure AI Studio上免费试用,或者如果你想本地使用,可以从Llama或Hugging Face上获取这个模型。

现在,让我们来测试一下这个模型的表现。像往常一样,我会用一些问题来评估它,这些问题涵盖从简单语言任务到编程。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

第一个问题是找出与高植物名称押韵的数字,答案应该是“三”或“九”。让我们发送问题并查看答案。好,它没有回答正确,因此这个问题算失败。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

第二个问题是:我有两个苹果,然后买了两个,做了一个苹果派,用了两个苹果,吃掉一半苹果派后还剩多少苹果?答案应该是两个。让我们发送问题并查看答案。好,它虽然推理正确,但最后给出了错误答案,这也是失败。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

第三个问题是:Sally有三个兄弟,每个兄弟有两个姐妹,Sally有几个姐妹?答案应该是一个。它再次推理正确,但给出了错误答案,因此再次失败。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

第四个问题是:如果一个正六边形的短对角线是64,那么长对角线是多少?答案应该是73.9。它再次回答错误,因此也失败了。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

接下来是编程问题:创建一个点击按钮会爆炸彩纸的HTML页面,可以使用CSS和JS。我们发送问题并查看答案。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

好,它生成的代码运行良好,这是一个通过。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

接下来的问题是:编写一个只输出函数的Python程序,该函数打印接下来的20个闰年。我们发送问题并查看答案。好,它生成的代码正常运行,这也通过了。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

下一个问题是生成一个蝴蝶的SVG代码。它生成了代码,但只有一个方块,因此这是失败。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

下一个问题是:编写一个现代且简洁的AI公司着陆页面HTML代码,包含动画效果。生成的代码虽然很基础,但比Gemma生成的1970年代风格页面要好,因此算通过。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

最后一个问题是编写一个在终端上运行的Python版生命游戏。我认为这可能行不通,但还是试试吧。它生成了程序,但要求一些输入却无法运行,因此这也不通过。最终结果是它在三个问题上通过,两个问题非常接近。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

总的来说,考虑到它的体积,这个模型表现相当不错,尤其在编程方面表现出色,这也是我喜欢它的原因。它真的很酷。

www.zeeklog.com  - 微软 Phi-3.1 Mini (3.8B):刚刚进行了疯狂升级(击败 Llama-3 和 Qwen2)

希望这篇文章对你有帮助,感谢阅读!

视频教程

https://www.youtube.com/watch?v=HribLmgpS5k

参考链接:
[1]https://ollama.com/library/phi3:3.8b
[2]https://huggingface.co/lmstudio-community/Phi-3.1-mini-4k-instruct-GGUF

Read more

深入理解 Proxy 和 Object.defineProperty

在JavaScript中,对象是一种核心的数据结构,而对对象的操作也是开发中经常遇到的任务。在这个过程中,我们经常会使用到两个重要的特性:Proxy和Object.defineProperty。这两者都允许我们在对象上进行拦截和自定义操作,但它们在实现方式、应用场景和灵活性等方面存在一些显著的区别。本文将深入比较Proxy和Object.defineProperty,包括它们的基本概念、使用示例以及适用场景,以帮助读者更好地理解和运用这两个特性。 1. Object.defineProperty 1.1 基本概念 Object.defineProperty 是 ECMAScript 5 引入的一个方法,用于直接在对象上定义新属性或修改已有属性。它的基本语法如下: javascript 代码解读复制代码Object.defineProperty(obj, prop, descriptor); 其中,obj是目标对象,prop是要定义或修改的属性名,descriptor是一个描述符对象,用于定义属性的特性。 1.2 使用示例 javascript 代码解读复制代码//

By Ne0inhk

Proxy 和 Object.defineProperty 的区别

Proxy 和 Object.defineProperty 是 JavaScript 中两个不同的特性,它们的作用也不完全相同。 Object.defineProperty 允许你在一个对象上定义一个新属性或者修改一个已有属性。通过这个方法你可以精确地定义属性的特征,比如它是否可写、可枚举、可配置等。该方法的使用场景通常是需要在一个对象上创建一个属性,然后控制这个属性的行为。 Proxy 也可以用来代理一个对象,但是相比于 Object.defineProperty,它提供了更加强大的功能。使用 Proxy 可以截获并重定义对象的基本操作,比如访问属性、赋值、函数调用等等。在这些操作被执行之前,可以通过拦截器函数对这些操作进行拦截和修改。因此,通过 Proxy,你可以完全重写一个对象的默认行为。该方法的使用场景通常是需要对一个对象的行为进行定制化,或者需要在对象上添加额外的功能。 对比 以下是 Proxy 和 Object.defineProperty 的一些区别对比: 方面ProxyObject.defineProperty语法使用 new Proxy(target,

By Ne0inhk