首页 > 其他分享 >谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型

时间:2024-09-03 17:24:45浏览次数:6  
标签:Phi Llama3.1 模型 开源 instruct 3.5 MoE


前言

家人们!微软又用爱发电了!一觉醒来,微软发布了最新的小模型三兄弟:

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_ai

  • Phi-3.5-MoE-instruct
  • Phi-3.5-mini-instruct
  • Phi-3.5-vision-instruct

三兄弟的表现可以说是相当的不错,其中,Phi-3.5-MoE 在基准测试中击败了 Llama 3.1 8B、Mistral-Nemo-12B,Gemini 1.5 Flash。在推理能力方面它也优于其他一些较大的模型,仅落后于 GPT-4o-mini,直接分分钟登顶同级模型!

不同用途不同选择!

三个Phi 3.5模型有不同的专长!

Phi-3.5 MoE - 微软专家大集合

大哥Phi-3.5 MoE 是一个混合专家模型,将多个不同的模型类型组合成一个,其中每个模型类型专门从事不同的任务。该模型有420亿个活动参数的架构,支持128k token上下文长度。

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_agi_02

划重点:

  • 6.6B 活动参数(总参数42B)
  • 128K 上下文、多语言和相同分词器
  • 在 4.9T tokens 上进行训练
  • 使用 512 张 H100 进行训练(23 天)

为了在各种推理任务中脱颖而出,Phi-3.5 MoE在代码、数学和多语言理解方面提供了强大的性能,基准测试中通表现都很好,在5个单项的MMLU(大规模多任务语言理解)测试中,它也击败了gpt-4o mini!

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_语言模型_03

在长文本上超越了明显优于仅支持8K上下文长度的Gemma-2系列,与其他更大更强的开源模型如Llama-3.1-8B-instruct和Mistral-Nemo-12B-instruct-2407也可以一比,而且已经比GPT-4o好了!

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_agi_04

总的来说,只有6.6B活动参数的Phi-3.5-MoE实现了与更大模型相似的语言理解和数学水平。但是,对于某些任务,它仍然受到其大小的根本上限制,因为,该模型根本不具备存储太多事实知识的能力,作者指出,这个弱点可以通过使用搜索引擎来解决,特别是在RAG设置下使用该模型时。

模型开源地址:
https://huggingface.co/microsoft/Phi-3.5-MoE-instruct

Phi 3.5 mini - 针对计算受限的环境进行了优化

二哥Phi-3.5 Mini Instruct主打一个轻量级!一共有38亿参数,专为遵守指令而设计,并支持128k token上下文长度。非常适合在受限的环境中使用!Phi3.5 Mini Instruct模型虽然小巧,但在多语言和多轮对话任务中表现出色,相较其前代有了显著提升。它在多个基准测试中的性能接近最先进水平,尤其在RepoQA测试中超越了其他同类模型(如Llama-3.1-8b-instruct和Mistral-7b-instruct)。

划重点:

  • 3.8B参数,击败Llama3.1 8B和Mistral 7B
  • 多语言和 32K 词汇的分词器
  • 在 3.4T tokens 上进行训练
  • 使用 512 张 H100 进行训练(只需要10 天!)

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_ai_05

▲在多语言MMLU、MEGA和多语言MMLU-pro数据集上的多语言能力。总的来说,即使只有38 b的活动参数,与其他具有更大活动参数的模型相比,该模型在多语言任务上是比较出色!

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_语言模型_06

▲RepoQA基准测试遥遥领先

模型开源地址:
https://huggingface.co/microsoft/Phi-3.5-mini-instruct

Phi-3.5 Vision Instruct - 高级多模态推理

三弟Phi-3.5 Vision Instruct是一款融合文本与图像处理能力的视觉指令模型。与同系列其他型号类似,它支持128k token的上下文长度,能够处理复杂的多帧视觉任务。

微软指出,该模型采用经过筛选的公开数据集进行训练,增强了模型的多帧图像理解和推理能力。主要功能包括详细的图像对比、多图总结与叙事,以及视频摘要,侧重于高质量和推理密集型数据。

划重点:

  • 4.2B 参数,在部分基准测试上击败了GPT-4o(不是mini!!!)
  • 使用 500B tokens 进行训练
  • 使用 256 张 A100 进行训练(6 天)
  • 专注于TextVQA + ScienceVQA

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_人工智能_07

▲采用了BLINK基准测试,包含14个视觉任务,总体而言,模型在相同尺寸下普遍优于竞争对手,并在多帧能力和视频摘要方面与更大的模型竞争。

模型开源地址:
https://huggingface.co/microsoft/Phi-3.5-vision-Instruct

根据开源博客的声明,Phi-3.5系列模型在MIT许可下发布,即允许开发者自由使用、修改、发布、分发甚至销售软件副本。不过,该许可也附带免责声明,即要求软件得是“按原样”提供的,不附带任何形式的担保。微软和其他版权所有者不对因使用该软件而可能引发的任何索赔、损害或其他责任承担责任~

怎么训练?

给大家搬运下官方的训练步骤!我们以大哥Phi-3.5-MoE-instruct 的训练为例,Phi-3.5系列模型都集成到 transformers 的官方版本中,官方版本后续也通过 pip 发布:

  1. 加载模型时,确保在 from_pretrained() 函数中传递 trust_remote_code=True 作为参数。可以通过以下命令验证当前的 transformers 版本:
pip list | grep transformers。
  1. 安装所需软件包示例:
flash_attn==2.5.8
torch==2.3.1
accelerate==0.31.0
transformers==4.43.0
  1. 分词器

Phi-3.5-MoE-Instruct 支持最多 32064 个 token 的词汇量,分词器文件已经提供了可以用于下游微调的占位符 token,可以扩展到模型的最大词汇量。

  1. 输入格式

鉴于训练数据的特性,Phi-3.5-MoE-instruct 模型最适合使用以下聊天格式的提示:

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_agi_08

  1. 本地加载模型 在获得 Phi-3.5-MoE-instruct 模型检查点后,用户可以使用以下示例代码进行推理。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline 

torch.random.manual_seed(0) 

model = AutoModelForCausalLM.from_pretrained( 
    "microsoft/Phi-3.5-MoE-instruct",  
    device_map="cuda",  
    torch_dtype="auto",  
    trust_remote_code=True,  
) 

tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3.5-MoE-instruct") 

messages = [ 
    {"role": "system", "content": "You are a helpful AI assistant."}, 
    {"role": "user", "content": "Can you provide ways to eat combinations of bananas and dragonfruits?"}, 
    {"role": "assistant", "content": "Sure! Here are some ways to eat bananas and dragonfruits together: 1. Banana and dragonfruit smoothie: Blend bananas and dragonfruits together with some milk and honey. 2. Banana and dragonfruit salad: Mix sliced bananas and dragonfruits together with some lemon juice and honey."}, 
    {"role": "user", "content": "What about solving an 2x + 3 = 7 equation?"}, 
] 

pipe = pipeline( 
    "text-generation", 
    model=model, 
    tokenizer=tokenizer, 
) 

generation_args = { 
    "max_new_tokens": 500, 
    "return_full_text": False, 
    "temperature": 0.0, 
    "do_sample": False, 
} 

output = pipe(messages, **generation_args) 
print(output[0]['generated_text'])

结语

大家觉得Phi-3.5系列的三兄弟表现如何?虽然不同的基准测试可能让大家对他们的能力有不同的评价,褒贬不一,但不得不说,微软这次确实又开放了一个不错的模型,又OpenAI

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_人工智能_09

了不是!

谢谢微软,又又又Open了!一口气发布3款Phi-3.5新模型,领先Llama3.1和谷歌同级模型_ai_10

据看到的新闻,OpenAI 推出了 GPT-4o 微调功能,每天免费送100万Token,允许开发者为特定用例定制模型~

结合今天微软的又一开源,开源和闭源的发展越来越像两条快速延伸平行线,一方面是模型的开放,另一方面是在引导应用方向上的开放。



标签:Phi,Llama3.1,模型,开源,instruct,3.5,MoE
From: https://blog.51cto.com/u_16163442/11909406

相关文章

  • arXiv最热NLP大模型论文:一文读懂大模型的prompt技术
    引言:探索高效提示方法的重要性在人工智能领域,大语言模型(LLMs)已经成为了自然语言处理(NLP)任务的重要工具。随着模型规模的不断扩大,如何高效地利用这些模型,尤其是在资源有限的情况下,成为了一个迫切需要解决的问题。提示方法(Prompting)作为一种新兴的范式,能够通过简洁的指令引导模型完成......
  • 《BERT基础教程:Transformer大模型实战》一本相见恨晚的大模型入门书(附PDF)
    前言随着chatgpt的火热,大模型成为业界新的热点。而未来每个人,不仅仅是人工智能或者计算机行业从业者,未来的工作或多或少可能都会被大模型的影响。所以了解transformer为基础的大模型(Bert,gpt)就很有必要了。本书聚焦谷歌公司开发的BERT自然语言处理模型,由浅入深地介绍了BERT的工......
  • 本地搭建 Whisper 语音识别模型实现实时语音识别研究
    目录摘要关键词1.引言2.Whisper模型简介3.环境准备4.系统架构与实现4.1模型加载4.2实时音频输入处理4.3实时转录处理4.4程序实现的框架4.5代码实现5.实验与结果6.讨论7.结论参考文献摘要语音识别技术近年来发展迅速,广泛应用于智能家居、智能客......
  • Neural Magic发布GuideLLM:评估和优化大型语言模型(LLM)部署的强大工具
    大型语言模型(LLMs)的部署和优化已成为各种应用的关键。NeuralMagic推出了GuideLLM,以应对对高效、可扩展且具有成本效益的LLM部署日益增长的需求。这款强大的开源工具旨在评估和优化LLM的部署,以确保它们在满足现实中的推理需求的同时,具有高性能和最小的资源消耗。GuideLLM概述......
  • 代码大模型Wavecoder学习笔记及代码实践
    目录学习笔记摘要(Abstract)介绍(Introduction)CodeSeaXDataset:四任务代码相关指令数据四任务信息增强指令生成1.原始代码收集(WaveCoder-main\WaveCoder-main\src\data\raw_code_collection)2.基于LLM的生成器-鉴别器框架实验设置结果代码生成任务评估:其他代码相关任......
  • 深入理解Java内存模型:对并发编程的启示
    深入理解Java内存模型:对并发编程的启示大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java并发编程中,Java内存模型(JMM)是一个至关重要的概念。它定义了Java程序中各种变量的访问规则,以及这些变量如何与计算机内存交互。正确理解JMM对于编写高效、可......
  • 基于MATLAB的SEIR传染病模型建模与仿真
    1.课题概述       SEIR传染病模型是一种用于描述传染病传播过程的数学模型。这个模型将人群分为四类:易感者(Susceptible)、暴露者(Exposed)、感染者(Infectious)和康复者(Recovered),通过这四类人群之间的转化关系,来描述传染病的传播过程。通过matlab将这个过程进行建模与仿真。......
  • 开源模型应用落地-qwen2-7b-instruct-LoRA微调&合并-ms-swift-单机多卡-RTX 4090双卡(
    一、前言  本篇文章将使用ms-swift去合并微调后的模型权重,通过阅读本文,您将能够更好地掌握这些关键技术,理解其中的关键技术要点,并应用于自己的项目中。二、术语介绍2.1.LoRA微调  LoRA(Low-RankAdaptation)用于微调大型语言模型(LLM)。 是一种有效的自适应......
  • 你的AI绘画工具SD该更新啦!6款超好用的SDXL负面提示词Embedding模型,让你的出图效果好上
    大家好,我是强哥AI绘画SDXL1.0模型发布以来,优质的SDXL大模型不断涌现,让图像的生成质量越来越高。但版本迭代后,之前的SD1.5的负面提示词Embedding并不能和SDXL大模型配合使用,而每次都输入一大串的反向提示词又实在麻烦。所以今天就给大家推荐6款可以配合SDXL......
  • 51c大模型~合集46
    #HITS北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率单元测试是软件开发流程中的一个关键环节,主要用于验证软件中的最小可测试单元,函数或模块是否按预期工作。单元测试的目标是确保每个独立的代码片段都能正确执行其功能,对于提高软件质量和开发效率具有重要意义。然......