创建大模型的新方法 - 配比两个模型

这篇具有很好参考价值的文章主要介绍了创建大模型的新方法 - 配比两个模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文:创建大模型的新方法 - 配比两个模型 - 知乎

现在,创建大模型的新方法还可以使用配比两个模型- 正如炼金术巫师那样。

工具1 medusa:
https://github.com/FasterDecoding/Medusa

Medusa 为 LLM 添加了额外的“头”,以同时预测多个未来代币。当使用 Medusa 增强模型时,原始模型保持不变,只有新的头部在训练过程中进行微调。在生成过程中,这些头每个都会为相应位置生成多个可能的单词。然后使用基于树的注意力机制组合和处理这些选项。最后,采用典型的接受方案从候选者中挑选最长的合理前缀以进行进一步解码。

工具2 mergekit:

https://github.com/cg123/mergekit/tree/main

mergekit是一个用于合并预先训练的语言模型的工具包,使用多种合并方法,包括 TIES、线性和 slerp 合并。该工具包还可以使用从其他模型中选择的层来分段组装语言模型bakllama.py

ref="https://github.com/cg123/mergekit/tree/main#merging-models-with-mainpy">合并模型main.py

用法

要使用脚本合并模型main.py,请指定最终模型的输出目录以及要使用该--merge选项合并的模型。根据所选的合并方法,可能需要其他参数,例如--density--weight和。--base-model

该脚本支持以下合并方法:

  • 解决合并模型时的干扰(默认方法,“ties”)
    • 需要一个基础模型。
    • 可以指定每个模型的重量和密度。
  • 线性
    • 不需要基础模型。
    • 必须指定要合并的所有模型的权重。
  • SLERP
    • 正好需要两个模型。
    • 必须指定单个权重来设置两个模型之间的插值参数。

例子

  • 与 TIES 方法合并并指定每个模型的权重和密度:
    python main.py ./output-model --base-model TheBloke/Llama-2-13B-fp16 --cuda \ --merge WizardLM/WizardLM-13B-V1.2 --weight 0.3 --density 0.5 \ --merge garage-bAInd/Platypus2-13B --weight 0.5 --density 0.5
  • 与线性方法合并并设置模型权重:
    python main.py ./output-model --cuda --method linear \ --merge garage-bAInd/Platypus2-13B --weight 0.6 \ --merge WizardLM/WizardLM-13B-V1.2 --weight 0.2
  • 与SLERP方法合并并设置插值参数:
    python main.py ./output-model --cuda --method slerp --base-model garage-bAInd/Platypus2-13B \ --merge WizardLM/WizardLM-13B-V1.2 --weight 0.5
  • 具有层权重插值梯度的 SLERP:
    python main.py ./output-model --cuda --method slerp --base-model garage-bAInd/Platypus2-13B \ --merge WizardLM/WizardLM-13B-V1.2 --layer-gradient "[0, 0.3, 0.7, 0, 0.1, 1.0]"

python main.py --help有关所有可用选项的详细信息,请参阅脚本的帮助消息 ( )。

ef="https://github.com/cg123/mergekit/tree/main#piecewise-layer-combinations-with-bakllamapy">分段层组合bakllama.py

bakllama.py脚本允许您使用从其他预训练模型中获取的层分段组装模型。

配置

要使用 bakllama.py 脚本,您需要创建一个 YAML 配置文件,在其中定义要从各种源模型使用的层,并可选择指定嵌入和 LM 头组件的源。

配置文件应具有以下字段:

  • layer_slices:图层切片对象的列表,每个对象指定要从源模型获取的图层范围。
    • model:源模型的标识符或路径。
    • start:起始图层索引(含)。
    • end:结束层索引(不包括)。
    • scale:(可选)层权重的比例因子。
  • embedding_source:(可选)从中获取嵌入层的模型。如果未指定,则默认为 layer_slices 中列出的第一个模型。
  • lm_head_source:(可选)采用 LM 头的模型。如果未指定,则默认为 layer_slices 中列出的最后一个模型。

用法

创建 YAML 配置文件后,使用bakllama.py配置文件和输出路径作为参数运行脚本:

python bakllama.py path/to/your/config.yml ./output-model-directory

工具2

其他参考:https://www.toutiao.com/video/7323120863611224611/?log_from=4c1c2792567a5_1705195584743文章来源地址https://www.toymoban.com/news/detail-807108.html

到了这里,关于创建大模型的新方法 - 配比两个模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自然语言文本分类模型代码

            以下是一个基于PyTorch的文本分类模型的示例代码,用于将给定的文本分为多个预定义类别:         该模型将输入的文本作为整数序列传递给嵌入层,然后通过多层LSTM层进行处理,最终输出每个类别的预测概率。         在训练模型之前,需要将文本序列

    2024年02月14日
    浏览(30)
  • 从ChatGPT出发:大模型与自然语言模型

    2022年11月30日,OpenAI在其博客上发布了ChatGPT的介绍,掀起了大语言模型的一波狂风,席卷了2023年伊始几乎所有的话题。这个能够“理解”人类语言的模型,不仅可以完成接续上下文的查询和交流任务,还能够实现包括代码、论文、周报等在内的撰写工作。 它的能力,远不仅

    2024年02月02日
    浏览(32)
  • 《大型语言模型自然语言生成评估》综述

    在快速发展的自然语言生成(NLG)评估领域中,引入大型语言模型(LLMs)为评估生成内容质量开辟了新途径,例如,连贯性、创造力和上下文相关性。本综述旨在提供一个关于利用LLMs进行NLG评估的全面概览,这是一个缺乏系统分析的新兴领域。 我们提出了一个连贯的分类体

    2024年01月23日
    浏览(48)
  • 自然语言处理:大语言模型入门介绍

    随着自然语言处理(Natural Language Processing, NLP)的发展,此技术现已广泛应用于文本分类、识别和总结、机器翻译、信息提取、问答系统、情感分析、语音识别、文本生成等任务。 研究人员发现扩展模型规模可以提高模型能力,由此创造了术语——大语言模型(Large Language

    2024年02月12日
    浏览(38)
  • 自然语言模型的哲学小谈

    近期,以chatGPT为代表的大语言模型表现非常惊艳。“In Context Learning”、“Instruct” 1 ,以及推理能力,很难不让我们期待未来人工智能的发展,同时冷静思考一下为什么自然语言模型能够取得巨大进步。 我们是如何思考的?人类在不张嘴的情况下,会进行哪些活动?或者说

    2024年02月03日
    浏览(27)
  • 30个最新的自然语言处理模型

    T5:基于Transformer,结合了多任务学习和无监督预训练,并使用大规模的英文维基百科语料库进行训练。 GPT-3:同样基于Transformer,使用了极其庞大的语料库,并使用Zero-shot学习实现了自然语言推理功能。 Chinchilla:一种新型自然语言生成模型,使用了自适应正则化和动态使用

    2023年04月27日
    浏览(33)
  • 自然语言处理 | 大模型|类似chatGPT的开源大模型整理

    最近正在学习chatGPT相关大模型,整理相关资料如下,本文仍在修改中,如有侵权,请联系删除 chatGPT-1: Improving Language Understanding by Generative Pre-Training chatGPB-2: Language Models are Unsupervised Multitask Learners chatGPT-3: Language Models are Few-Shot Learners 模型名称 开发者 模型介绍 介绍资料

    2024年02月02日
    浏览(32)
  • 自然语言处理 微调ChatGLM-6B大模型

    bert的主要任务是随机的去除掉某个单词,使用上下文将其预测出来(相当于完形填空任务); GPT的主要任务是根据前面一句话,预测下面的内容; GLM结合了bert的强大双向注意力与gpt的强大生成能力两种能力,被nask的地方使用单向注意力,未被mask的地方使用双向注意力 预测

    2024年02月09日
    浏览(37)
  • 《自然语言处理》chapter7-预训练语言模型

    这是阅读《自然语言处理-基于预训练模型的方法》的学习笔记,记录学习过程,详细的内容请大家购买书籍查阅。 同时参考沐神的两个视频: GPT,GPT-2,GPT-3 论文精读【论文精读】 BERT 论文逐段精读【论文精读】 自然语言处理的核心在于如何更好地建模语言。广义上的预训

    2024年02月10日
    浏览(48)
  • 自然语言处理(五):子词嵌入(fastText模型)

    在英语中,“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同,“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西班牙语等其他语言中,许多动词有40多种变

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包