LMFlow

2025-12-11 0 677

<span class = lmflow“样式=”宽度:50%;最大宽度:100%;“>

LMFlow

英语| 简体中文| Español| 日本语| 한국어| हिंदी

一种可扩展,方便且高效的工具箱,用于填充大型机器学习模型,该模型旨在用户友好,快速且可靠,并且可容纳整个社区。

<span class = lmflow -features“ style =”宽度:100%;最大宽度:100%;“>

最新消息

重要的

  • ❗[2025-07-09]我们对LMFlow进行了重大更新,并具有完全加速的支持和广泛的精简。如果您正在寻找以前的版本,请使用Git Checkout V0.0.10,或查看V0.0.10分支。在此处查看所有版本。
  • [2024-12-02]支持Hymba,这是一个新的小语言模型家庭,具有混合式平行体系结构。查看培训后的Hymba以获取更多详细信息。
  • [2024-07-01] LMFlow在NAACL 2024获得了最佳演示纸奖! ?
  • [2024-06-30]扩展优化选项!现在,我们支持各种优化器的自定义优化器培训。深入了解详细信息,并在Custom_optimizers上使用我们更新的脚本尝试新功能。
  • [2024-04-25]支持对话模板!我们已经预设了最新的Llama-3和Phi-3对话模板以及一些经常使用的模板,例如ChatMl(请参阅此处的所有模板),我们正在努力添加更多的预设模板。在Shell脚本中添加相应的-conversation_template,您将全部设置!
更多新闻…
  • [2024-03-27]支持LISA,在不卸载的情况下实现24G内存训练!

  • [2023-09-11]支持投机解码。查看使用和加速详细信息的投机_decoding。

  • [2023-08-14]为Llama模型支持长上下文推断,以插值的位置插值(线性和NTK缩放)。查看Postion_interpolation有关更多详细信息。

  • [2023-08-07]支持Flash Guate-2。查看flash_atections,以获取更多详细信息。

  • [2023-08-02]支持Llama2,Chatglm2和Baichuan模型。

  • [2023-07-23] LMFlow多模式聊天机器人现在可用!支持图像和文本的多模式输入。还提供了在线演示(我们在单个GPU上持有该服务,因此有时可能会在多个用户同时访问时会遇到“排队”或“应用程序忙”,请等待,稍后再尝试此类事件发生时) 图像

  • [2023-06-22] LMFlow纸已经熄灭了!在https://arx*iv.o**rg/abs/2306.12420上查看我们的实施详细信息

  • [2023-06-16]我们的Finetuntuned Robin-33B-V2在我们的离线评估中在Huggingface LLM排行榜上得分令人印象深刻,表现优于主要的开源LLM!所有检查点(7b,13b,33b和65b)都发布了!在这里查看表演。

  • [2023-06-07] LMFlow现在在PYPI上正式提供!使用PIP安装LMFlow -FINETUNE安装它!

  • [2023-05-30]发布Robin-13b-V2和Robin-33b-V2!

  • [2023-05-15]释放LMFlow -DATA,Robin-7b-V2的培训数据集。还发布了新的测试数据。

  • [2023-05-09]发布Robin-7b-V2,在Chitchat,Commensense推理和跟随指导的任务上实现竞争性能。请参阅我们的全面研究。

  • [2023-05-08] Release LMFlow Benchmark,这是一个开源聊天风格LLM的自动评估框架。报告了31种流行模型的基准结果。参与LMFlow基准测试。

  • [2023-04-21]版本Robin-7b(基于Llama-7b),以及两种商业用途的型号:Parakeets-2.7b(基于GPT-Neo-2.7b)和Cokatoo-7B(基于StableLM-7B)

  • [2023-04-15]推断:支持流输出和ChatGlm。

  • [2023-04-10]我们提出了一种新的对齐算法:奖励排名较高(RAFT),它比常规(基于PPO的)RLHF更有效。 [纸]

  • [2023-04-02] Web服务在线!

  • [2023-04-01]在模型动物园中释放三个指令调节检查点和三个医疗检查点:Llama-7b-tuned,Llama-13b-tuned,Llama-33b-tuned,Llama-7b-7b-Mendical,Llama-13b-Mentical,Llama-13b-Mensical和Llama-33b-Medical。

  • [2023-03-27]为所有解码器模型支持完整的调整和LORA调整。

  • [2023-03-27]任务是调谐模型在医疗领域击败chatgpt。

  • [2023-03-27]发布代码和检查点 – 版本0.0.1!我们任务的模型在医疗领域击败了Chatgpt。

目录

  • LMFlow
    • 最新消息
    • 目录
    • 快速开始
      • 设置
      • 准备数据集
      • 微调
        • 估计的硬件要求
        • 完整的填充
        • 丽莎
        • 洛拉
      • 推理
      • 部署
      • 评估
    • 支持的功能
    • 支持
    • 执照
    • 引用

快速开始

设置

我们的软件包已在Linux OS(Ubuntu 20.04)上进行了测试。其他操作系统平台(MacOS,Windows)尚未完全测试,您可能会遇到意外错误。如果您是第一次使用LMFlow ,建议您尝试使用Linux机器或Google Colab。

LMFlow
conda create -n LMFlow python=3.9 -y
conda activate LMFlow
conda install mpi4py
pip install -e .\”>

git clone -b v1.0.0 https://g*ith*ub.c*om/OptimalScale/LMFlow.git
cd LMFlow
conda create -n LMFlow python=3.9 -y
conda activate LMFlow
conda install mpi4py
pip install -e .
寻找以前的版本?

LMFlow
conda create -n LMFlow python=3.9 -y
conda activate LMFlow
conda install mpi4py
pip install -e .\”>

git clone -b v0.0.10 https://g*ith*ub.c*om/OptimalScale/LMFlow.git
cd LMFlow
conda create -n LMFlow python=3.9 -y
conda activate LMFlow
conda install mpi4py
pip install -e .
对于CUDA版本10.3-11.7

LMFlow
conda create -n LMFlow python=3.9 -y
conda activate LMFlow
conda install mpi4py
pip install -e .\”>

git clone -b v0.0.5 https://g*ith*ub.c*om/OptimalScale/LMFlow.git
cd LMFlow
conda create -n LMFlow python=3.9 -y
conda activate LMFlow
conda install mpi4py
pip install -e . 

提示

我们使用WandB默认情况下跟踪和可视化训练过程。在运行培训脚本之前,用户可能需要使用命令登录到Wandb:

wandb login

有关详细说明,请参阅《 Wandb Quickstart指南》。步骤1(注册)和步骤2(使用WANDB API密钥登录)应足以设置您的环境。

禁用挥手

一个人可以通过任何一个禁用魔杖:

  1. 在运行训练命令之前,添加环境变量。
 export WANDB_MODE=disabled
  1. 或者,指定集成以报告结果和日志。在培训脚本中,补充:
--report_to none \\

准备数据集

请参考我们的文档。

微调

估计的硬件要求

方法 0.5B 3b 7b 14b 30b 70B XB
完整的BF16/FP16 9GB 55GB 120GB 240GB 600GB 1200GB 18xGB
洛拉 1GB 6GB 16 GB 32GB 64GB 160GB 2xGB
qlora pont_bit = 8 0.7GB 3GB 10GB 20GB 40GB 80GB XGB
qlora pont_bit = 4 0.4GB 1.5GB 6GB 12GB 24GB 48GB X/2GB

完整的填充

完整的培训更新所有参数,以列出语言模型。这是对GPT-2基本模型进行捕获的示例。

 cd data && ./download.sh alpaca && cd -

bash ./scripts/run_finetune.sh \\
  --model_name_or_path gpt2 \\
  --dataset_path data/alpaca/train_conversation \\
  --output_model_path output_models/finetuned_gpt2

提示

对于对话数据集,请通过将“ conversation_template”添加到命令中指定对话模板,以获得更好的性能。

Llama-3-8B对话数据集示例
 cd data && ./download.sh alpaca && cd -

bash ./scripts/run_finetune.sh \\
 --model_name_or_path meta-llama/Meta-Llama-3-8B \\
 --dataset_path data/alpaca/train_conversation \\
 --conversation_template llama3 \\
 --output_model_path output_models/finetuned_llama3_8b

丽莎

LISA是一种内存有效的鉴定算法,可在内存和随机未重雷层的数量之间进行权衡。当前,此脚本仅在单个GPU中进行测试。请继续关注我们的最新更新?

 cd data && ./download.sh alpaca && cd -

bash ./scripts/run_finetune_with_lisa.sh \\
  --model_name_or_path meta-llama/Llama-2-7b-hf \\
  --dataset_path data/alpaca/train_conversation \\
  --output_model_path output_models/finetuned_llama2_7b \\
  --lisa_activated_layers 1 \\
  --lisa_interval_steps 20

提示

Llama-2-7B对话数据集示例
 cd data && ./download.sh alpaca && cd -

bash ./scripts/run_finetune_with_lisa.sh \\
 --model_name_or_path meta-llama/Llama-2-7b-hf \\
 --dataset_path data/alpaca/train_conversation \\
 --conversation_template llama2 \\
 --output_model_path output_models/finetuned_llama2_7b_lisa \\
 --lisa_activated_layers 1 \\
 --lisa_interval_steps 20

洛拉

洛拉(Lora)是一种参数效率的芬特算法,比全面填充更有效。

 cd data && ./download.sh alpaca && cd -

bash ./scripts/run_finetune_with_lora.sh \\
  --model_name_or_path facebook/galactica-1.3b \\
  --dataset_path data/alpaca/train_conversation \\
  --output_lora_path output_models/finetuned_galactica_lora

提示

Llama-2-7B对话数据集示例
 cd data && ./download.sh alpaca && cd -

bash ./scripts/run_finetune_with_lora.sh \\
 --model_name_or_path meta-llama/Llama-2-7b-hf \\
 --dataset_path data/alpaca/train_conversation \\
 --conversation_template llama2 \\
 --output_model_path output_models/finetuned_llama2_7b_lora \\
合并洛拉体重

使用以下方式将洛拉重量和基本模型合并为一个:

bash ./scripts/run_merge_lora.sh \\
 --model_name_or_path Qwen/Qwen1.5-1.8B \\
 --lora_model_path output_models/lora \\
 --output_model_path output_models/lora_merged \\

推理

填充后,您可以运行以下命令与模型聊天。

bash ./scripts/run_chatbot.sh output_models/finetuned_gpt2

提示

我们建议使用VLLM更快地推断。

使用VLLM更快的推断
bash ./scripts/run_vllm_inference.sh \\
  --model_name_or_path Qwen/Qwen2-0.5B \\
  --dataset_path data/alpaca/test_conversation \\
  --output_dir data/inference_results \\

部署

如果您想在本地部署自己的模型,我们将提供一个基于Gradio的UI来构建聊天机器人。运行以下命令将启动Robin-7B的演示:

pip install gradio
python ./examples/chatbot_gradio.py --deepspeed configs/ds_config_chatbot.json --model_name_or_path YOUR-LLAMA  --lora_model_path ./robin-7b --prompt_structure \" A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human\'s questions.###Human: {input_text}###Assistant: \"       --end_string \" # \" --max_new_tokens 200

评估

LMFlow基准测试是开源大型语言模型的自动评估框架。我们使用负面的对数似然(NLL)作为度量,以评估语言模型的不同方面:chitchat,常识性推理和能力后的指导。

您可以直接运行LMFlow基准测试评估,以获取参与LLM比较的结果。例如,要运行GPT2 XL,可以执行

bash ./scripts/run_benchmark.sh --model_name_or_path gpt2-xl

-model_name_or_path是需要的,您可以在此处填写拥抱面模型名称或本地模型路径。

要检查评估结果,您可以检查benchmark.log in ./output_dir/gpt2-xl_ LMFlow _chat_nll_nll_eval,./output_dir/gpt2-xl_all_all_nll_nll_nll_nll_eval and ./output_dir/gpt2-xl_commonsense_qamonsense_qa_qa_eval。

支持的功能

Finetune加速与内存优化
  • 丽莎:层次的重要性抽样对记忆有效的大语言模型微调

    丽莎(Lisa)是针对大语言模型的一种新颖且记忆效率的训练策略,在优化过程中选择性冻结层,超过了诸如洛拉(Lora)的现有方法。查看丽莎以获取更多详细信息。
    在LMFlow中,在训练命令中使用-use_lisa 1激活LISA。用-lisa_activated_layers 2控制激活层的数量,并使用-lisa_step_interval 20调整冻结层间隔。

  • 洛拉

    洛拉(Lora)是一种参数效率的芬特算法,比全面填充更有效。查看Finetuning-Lora以获取更多详细信息。

  • 闪存

    LMFlow支持Flashattention-1和最新的Flashattention-2。查看flash_atections,以获取更多详细信息。

  • 梯度检查点

    梯度检查点是一种内存优化技术,可将计算的计算用于内存。当模型太大而无法适应GPU内存时,这很有用。仅将其添加到您的培训命令中来使用它。

  • 深速零3

    LMFlow支持DeepSpeed Zero-3卸载。我们提供了一个示例深速配置,您可以直接使用它。

推理加速度
  • Llama推断CPU

    多亏了Llama.cpp的巨大努力。每个人都有可能通过4位量化在CPU上运行自己的Llama模型。我们提供一个脚本将Llama Lora权重转换为.pt文件。您只需要在llama.cpp中使用convert-pth-to-ggml.py来执行量化。

  • 闪存

    LMFlow支持Flashattention-1和最新的Flashattention-2。查看flash_atections,以获取更多详细信息。

  • vllm

    尝试VLLM快速,易于使用的LLM推理和服务。感谢您的出色工作!

长上下文
  • 骆驼模型的位置插值

    现在, LMFlow支持Llama模型的最新线性和NTK(神经内核理论)缩放技术。查看Postion_interpolation有关更多详细信息。

模型自定义
  • 词汇扩展

    现在,您可以训练自己的句子令牌,并将其与Model的Origin HF Tokenizer合并。查看vocab_extension有关更多详细信息。

多模式
  • 多模式聊天机器人

    LMFlow支持图像和文本的多模式输入。查看我们的LMFlow多模式聊天机器人。

自定义优化
  • 自定义优化

    LMFlow现在支持各种优化器的自定义优化器培训。通过量身定制的优化策略来提升模型的性能。深入了解详细信息,并在Custom_optimizers上使用我们更新的脚本尝试新功能。

    下表评估了自定义优化器在羊驼数据集上GPT-2的微调过程中的性能,从而强调了他们的个人对培训损失的影响。特定的超参数设置利用默认配置,可以在custom_optimizers上自定义和调整。重要的是要注意,评估是在0.1个时期内进行的,以提供对优化者有效性的初步见解。

    优化器名称 火车损失
    RMSPROP 2.4016
    狮子-32位 2.4041
    亚当 2.4292
    Adamp 2.4295
    adamw 2.4469
    afactor 2.4543
    Adabound 2.4547
    Adamwschedulefree 2.4677
    阿丹 2.5063
    纳达姆 2.5569
    适应性 2.5857
    Adamax 2.5924
    radam 2.6104
    阿达德尔塔 2.6298
    Adagrad 2.8657
    瑜伽士 2.9314
    诺维格拉德 3.1071
    索菲亚 3.1517
    羊肉 3.2350
    拉斯 3.3329
    sgdschedulefree 3.3541
    SGDP 3.3567
    SGD 3.3734

支持

如果您需要任何帮助,请提交GitHub问题。

执照

此项目中包含的代码是根据Apache 2.0许可证的。如果您希望将本项目中包含的代码和模型用于商业目的,请签署本文档以获得授权。

引用

如果您发现此存储库有用,请考虑提供并引用我们的论文:

LMFlow,
title={ LMFlow : An extensible toolkit for finetuning and inference of large foundation models},
author={Diao, Shizhe and Pan, Rui and Dong, Hanze and Shum, Ka Shun and Zhang, Jipeng and Xiong, Wei and Zhang, Tong},
journal={arXiv preprint arXiv:2306.12420},
year={2023}
}\”>

@article{diao2023 LMFlow ,
  title={ LMFlow : An extensible toolkit for finetuning and inference of large foundation models},
  author={Diao, Shizhe and Pan, Rui and Dong, Hanze and Shum, Ka Shun and Zhang, Jipeng and Xiong, Wei and Zhang, Tong},
  journal={arXiv preprint arXiv:2306.12420},
  year={2023}
}
@article{dong2023raft,
  title={Raft: Reward ranked finetuning for generative foundation model alignment},
  author={Dong, Hanze and Xiong, Wei and Goyal, Deepanshu and Pan, Rui and Diao, Shizhe and Zhang, Jipeng and Shum, Kashun and Zhang, Tong},
  journal={arXiv preprint arXiv:2304.06767},
  year={2023}
}
@article{pan2024lisa,
  title={LISA: Layerwise Importance Sampling for Memory-Efficient Large Language Model Fine-Tuning}, 
  author={Pan, Rui and Liu, Xiang and Diao, Shizhe and Pi, Renjie and Zhang, Jipeng and Han, Chi and Zhang, Tong},
  journal={arXiv preprint arXiv:2403.17919},
  year={2024}
}

下载源码

通过命令行克隆项目:

git clone https://github.com/OptimalScale/LMFlow.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 建站资源 LMFlow https://www.zuozi.net/35471.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务