国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LLM 模型融合實(shí)踐指南:低成本構(gòu)建高性能語(yǔ)言模型

這篇具有很好參考價(jià)值的文章主要介紹了LLM 模型融合實(shí)踐指南:低成本構(gòu)建高性能語(yǔ)言模型。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

編者按:隨著大語(yǔ)言模型技術(shù)的快速發(fā)展,模型融合成為一種低成本但高性能的模型構(gòu)建新途徑。本文作者?Maxime Labonne?利用?mergekit?庫(kù)探索了四種模型融合方法:SLERP、TIES、DARE和passthrough。通過配置示例和案例分析,作者詳細(xì)闡釋了這些算法的原理及實(shí)踐操作。

作者的核心觀點(diǎn)是:相比訓(xùn)練全新模型,融合現(xiàn)有模型可以以更低計(jì)算成本獲取類似或更優(yōu)異的效果。

文章通過模型融合生成了性能優(yōu)異的?Marcoro14-7B-slerp?。在?Open LLM Leaderboard?和?NousResearch?兩個(gè)基準(zhǔn)測(cè)試上,它都是同參數(shù)量模型中的佼佼者。案例驗(yàn)證了作者主張的模型融合存在的高性價(jià)比。當(dāng)然模型融合也存在一定問題,如訓(xùn)練數(shù)據(jù)污染和可能在各種評(píng)測(cè)排行榜的分?jǐn)?shù)偏高。本文提供了模型融合技術(shù)與工程實(shí)踐的詳盡指南,對(duì)AI實(shí)踐者具有重要參考價(jià)值。

作者 | Maxime Labonne

編譯?|?岳揚(yáng)

LLM 模型融合實(shí)踐指南:低成本構(gòu)建高性能語(yǔ)言模型,技術(shù)干貨,白??萍?LLM,模型融合,人工智能,AI,語(yǔ)言模型,深度學(xué)習(xí)

Image by author

模型融合(Model merging)是一種將兩個(gè)或更多個(gè)大語(yǔ)言模型(LLM)合并為一個(gè)模型的技術(shù)。這是一種相對(duì)較新的實(shí)驗(yàn)性方法,可以以較低成本(無(wú)需?GPU)創(chuàng)建新模型。 令人驚訝的是,這種技術(shù)的效果還比較出奇,使用模型融合技術(shù)在?Open LLM?Leaderboard[1]上產(chǎn)生了許多最先進(jìn)的模型。

在本教程中,我們將使用?mergekit?[2]庫(kù)來實(shí)現(xiàn)這一技術(shù)。更具體地說,我們將回顧四種模型融合方法,并提供相關(guān)的配置示例。然后,我們將使用?mergekit?創(chuàng)建一個(gè)模型:Marcoro14–7B-slerp[3],該模型已成為?Open LLM?Leaderboard(02/01/24)上表現(xiàn)最佳的模型。

相關(guān)代碼已上傳至?GitHub[4]?和?Notebook[5]。個(gè)人建議使用?LazyMergekit[6]?項(xiàng)目,來輕松運(yùn)行?mergekit。

特別感謝?mergekit?庫(kù)的作者?Charles Goddard[7]?審閱本文。

LLM 模型融合實(shí)踐指南:低成本構(gòu)建高性能語(yǔ)言模型,技術(shù)干貨,白海科技,LLM,模型融合,人工智能,AI,語(yǔ)言模型,深度學(xué)習(xí)

Image by author

01 ???融合算法

在本節(jié),我們將重點(diǎn)介紹?mergekit?庫(kù)目前實(shí)現(xiàn)的四種模型融合方法。請(qǐng)注意,還有其他方法,比如?linear?[8]和?Task Arithmetic?[9]。如果你對(duì)模型融合的相關(guān)論文感興趣,我推薦閱讀Hugging Face上的這本優(yōu)秀論文集[10]。

1.1 SLERP

Spherical Linear Interpolation(SLERP)是一種用于在兩個(gè)向量之間進(jìn)行平穩(wěn)和連貫地插值的方法。這種方法能夠保持恒定的變化速率,并保留向量所在球面空間的幾何特性。

與使用傳統(tǒng)的線性插值方法相比,SLERP?更受青睞的原因有幾個(gè)。例如,在高維空間中,線性插值(linear interpolation)可能導(dǎo)致插值向量的大?。ǚ龋p?。礄?quán)重的規(guī)模減?。4送?,權(quán)重方向的變化往往比大小(幅度)的變化代表的信息更有意義(如特征學(xué)習(xí)(Feature Learning)和表征(Representation))。

SLERP?是通過以下步驟實(shí)現(xiàn)的:

  1. 對(duì)輸入的向量進(jìn)行歸一化處理,使它們的長(zhǎng)度(magnitude)變?yōu)閱挝婚L(zhǎng)度(長(zhǎng)度為1)。這一步驟的目的是確保這些向量表示的是方向,而不是大小。
  2. 使用點(diǎn)積計(jì)算這些向量之間的角度。
  3. 如果這些向量幾乎平行,則默認(rèn)使用線性插值以提高效率。如果輸入的兩個(gè)向量夾角較大,SLERP?將根據(jù)插值因子?t?(插值因子?t?是一個(gè)介于?0?到?1?之間的值,用于指定插值的程度。t=0?表示完全使用第一個(gè)向量,t=1?表示完全使用第二個(gè)向量,而在?0?到?1?之間的值表示兩個(gè)向量的混合程度。 )和向量之間的夾角計(jì)算比例因子(Scale factor)。
  4. 這些因子用于給原始向量加權(quán),然后求和來獲得插值向量。

SLERP?目前是最流行的模型融合方法,但它僅限于一次合并兩個(gè)模型。不過,仍然可以通過分層融合多個(gè)模型,就像在?Mistral-7B-Merge-14-v0.1[11]?中所示。

配置示例:

slices:
??-?sources:
??????-?model:?OpenPipe/mistral-ft-optimized-1218
????????layer_range:?[0,?32]
??????-?model:?mlabonne/NeuralHermes-2.5-Mistral-7B
????????layer_range:?[0,?32]
merge_method:?slerp
base_model:?OpenPipe/mistral-ft-optimized-1218
parameters:
??t:
????-?filter:?self_attn
??????value:?[0,?0.5,?0.3,?0.7,?1]
????-?filter:?mlp
??????value:?[1,?0.5,?0.7,?0.3,?0]
????-?value:?0.5
dtype:?bfloat16

這是一種經(jīng)典的?SLERP?配置,SLERP?被應(yīng)用于模型的每一層,以完成整體的模型融合。請(qǐng)注意,我們?yōu)椴逯狄蜃?t?輸入了一系列梯度值(gradient of values)。自注意力層和?MLP?層的參數(shù)將使用?OpenPipe/mistral-ft-optimized-1218[12]?和?mlabonne/NeuralHermes-2.5-Mistral-7B[13]?的不同組合。

可以在?Hugging Face Hub?上找到最終訓(xùn)練完成的模型,位于?mlabonne/NeuralPipe-7B-slerp[14]。

1.2 TIES

TIES-Merging?由?Yadav?等人在這篇論文[15]中引入,TIES-Merging?旨在將多個(gè)特定任務(wù)模型高效地合并為一個(gè)多任務(wù)模型。它解決了模型融合中的兩大難題:

  • 模型參數(shù)的冗余:它能夠識(shí)別并消除特定任務(wù)模型中的冗余參數(shù)。具體做法是在模型微調(diào)(fine-tuning)的過程中,關(guān)注模型參數(shù)發(fā)生的變化,對(duì)微調(diào)過程中發(fā)生的變化進(jìn)行排序,并選擇那些對(duì)模型性能影響最顯著的前?k%?的變化,并忽略那些在微調(diào)中變化較小或?qū)π阅苡绊戄^小的部分。
  • 模型參數(shù)的符號(hào)之間存在分歧:當(dāng)不同模型對(duì)同一參數(shù)提出相反的調(diào)整建議時(shí),就會(huì)產(chǎn)生沖突。TIES-Merging?通過創(chuàng)建一個(gè)統(tǒng)一的符號(hào)向量來解決這些沖突,該向量表示所有模型中變化方向的最顯著方向。

TIES-Merging?分為以下三個(gè)步驟:

  • Trim(修剪) :只保留一部分最重要的參數(shù)(密度參數(shù)(density parameter)),并將其余參數(shù)重置為零,從而減少特定任務(wù)模型中的冗余參數(shù)。
  • Elect Sign(確定符號(hào)) :通過確定模型中哪些方向上的變化(正向或負(fù)向)是最為顯著或最主導(dǎo)的,創(chuàng)建一個(gè)統(tǒng)一的符號(hào)向量,以解決不同模型之間的符號(hào)沖突。
  • Disjoint Merge:在合并過程中,僅考慮那些與先前創(chuàng)建的統(tǒng)一符號(hào)向量一致的參數(shù)值,并計(jì)算這些值的平均值。在計(jì)算平均值時(shí),不考慮原始參數(shù)值為零的情況。

與?SLERP?不同,TIES?可以一次性合并多個(gè)模型。

配置示例:

models:
??-?model:?mistralai/Mistral-7B-v0.1
????#?no parameters necessary for base model
??-?model:?OpenPipe/mistral-ft-optimized-1218
????parameters:
??????density:?0.5
??????weight:?0.5
??-?model:?mlabonne/NeuralHermes-2.5-Mistral-7B
????parameters:
??????density:?0.5
??????weight:?0.3
merge_method:?ties
base_model:?mistralai/Mistral-7B-v0.1
parameters:
??normalize:?true
dtype:?float16

在此配置下,我們使用?Mistral-7B?作為基礎(chǔ)模型來計(jì)算?delta?權(quán)重。我們?nèi)诤狭藘蓚€(gè)模型:mistral-ft-optimized-1218(50%)[12]和?NeuralHermes-2.5-Mistral-7B(30%)[13],并進(jìn)行了歸一化處理。這里的“density”參數(shù)意味著我們只保留了每個(gè)模型?50%的參數(shù)(另一半來自基礎(chǔ)模型)。

請(qǐng)注意,在配置中權(quán)重之和不等于?1,但?normalize:?true?參數(shù)會(huì)自動(dòng)在內(nèi)部將其歸一化。 此配置的靈感來自?OpenHermes-2.5-neural-chat-7b-v3-1-7B[16]?這個(gè)模型的作者提供的參數(shù)。

你可以在?Hugging Face Hub?上的?mlabonne/NeuralPipe-7B-ties[17]?找到最終訓(xùn)練完成的模型。

1.3 DARE

DARE[18]?由?Yu?等人(2023?年)提出,使用了與?TIES?類似的方法,但有兩個(gè)主要區(qū)別:

  • Pruning:?DARE?隨機(jī)將微調(diào)后的權(quán)重重置為原始值(基礎(chǔ)模型的權(quán)重)。
  • Rescaling:?DARE?重新調(diào)整權(quán)重,以保持模型輸出的期望值大致不變。它將兩個(gè)(或更多)模型的重調(diào)整后的權(quán)重與基礎(chǔ)模型的權(quán)重相加,并使用了一個(gè)比例因子。

Mergekit?對(duì)這種方法的實(shí)現(xiàn)有兩種:有?TIES?的確定符號(hào)步驟(dare_ties)或沒有?TIES?的確定符號(hào)步驟(dare_linear)。

配置示例:

models:
 - model:?mistralai/Mistral-7B-v0.1
 #?No parameters necessary for base model
 - model:?samir-fama/SamirGPT-v1
 parameters:
 density: 0.53
 weight: 0.4
 - model:?abacusai/Slerp-CM-mist-dpo
 parameters:
 density: 0.53
 weight: 0.3
 - model:?EmbeddedLLM/Mistral-7B-Merge-14-v0.2
 parameters:
 density: 0.53
 weight: 0.3
merge_method:?dare_ties
base_model:?mistralai/Mistral-7B-v0.1
parameters:
 int8_mask: true
dtype:?bfloat16

在這個(gè)配置示例中,我們使用?dare_ties?合并了基于?Mistral-7B?的三個(gè)不同模型。這次,我選擇的權(quán)重總和為?1(總和應(yīng)在?0.9?和?1.1?之間)。density?參數(shù)略高于論文中建議的值(<0.5),但看起來它能持續(xù)提供更好的結(jié)果(參見此討論[19])。

你可以在?Hugging Face Hub?的?mlabonne/Daredevil-7B[20]?上找到它。它也是本文中最好的合并模型,甚至優(yōu)于?Marcoro14-7B-slerp。

1.4 Passthrough

Passthrough?方法與前幾種方法有很大不同。通過連接來自不同?LLMs?的模型層,這種方法可以生成具有奇怪參數(shù)數(shù)量的模型(例如,使用兩個(gè)?7B?參數(shù)模型可以生成?9B?模型)。 這些模型通常被稱為?"Frankenmerges?"或?“Frankenstein?模型”。

這種技術(shù)極具實(shí)驗(yàn)性,但能夠成功地創(chuàng)建一些令人印象深刻的模型,比如使用兩個(gè)?Llama 2 70B?模型融合而成的?goliath-120b。最近發(fā)布的?SOLAR-10.7B-v1.0?也使用了同樣的思想,在他們的論文中這種技術(shù)稱為"depth-up scaling"。

配置示例:

slices:
??-?sources:
????-?model:?OpenPipe/mistral-ft-optimized-1218
??????layer_range:?[0,?32]
??-?sources:
????-?model:?mlabonne/NeuralHermes-2.5-Mistral-7B
??????layer_range:?[24,?32]
merge_method:?passthrough
dtype:?bfloat16

由此產(chǎn)生的?frankenmerge?模型將包含第一個(gè)模型的全部?32?層和第二個(gè)模型的?8?個(gè)附加層。這將創(chuàng)建一個(gè)總共有?40?層和?8.99B?參數(shù)的?frankenmerge。此配置的靈感來自于?GML-Mistral-merged-v1[21]。

您可以在?Hugging Face Hub?上的?mlabonne/NeuralPipe-9B-merged?[22]找到最終模型。

02 ???融合我們自己的模型

在本節(jié)中,我們將使用?mergekit?庫(kù)加載一個(gè)模型融合配置,運(yùn)行它并將生成的結(jié)果模型上傳到?Hugging Face Hub。

首先,我們直接通過源代碼安裝?mergekit,步驟如下:

!git clone https://github.com/cg123/mergekit.git
!cd mergekit?&&?pip install?-q?-e?.

在下面的代碼塊中,我們將以?YAML?格式加載模型融合配置。還在此指定了完成模型融合后模型的名稱,以備將來使用。您可以在此復(fù)制/粘貼上一節(jié)中的任何配置。

這次,我們將使用兩個(gè)不同的模型:?Marcoroni-7B-v3[23]?和?Mistral-7B-Merge-14-v0.1[24]?并用?SLERP?方法進(jìn)行模型融合。然后將配置保存為?yaml?文件,以便用作模型融合命令的輸入。

import yaml

MODEL_NAME?=?"Marcoro14-7B-slerp"
yaml_config?=?"""
slices:
??-?sources:
??????-?model:?AIDC-ai-business/Marcoroni-7B-v3
????????layer_range:?[0,?32]
??????-?model:?EmbeddedLLM/Mistral-7B-Merge-14-v0.1
????????layer_range:?[0,?32]
merge_method:?slerp
base_model:?AIDC-ai-business/Marcoroni-7B-v3
parameters:
??t:
????-?filter:?self_attn
??????value:?[0,?0.5,?0.3,?0.7,?1]
????-?filter:?mlp
??????value:?[1,?0.5,?0.7,?0.3,?0]
????-?value:?0.5
dtype:?bfloat16

"""

#?Save config as yaml file
with open('config.yaml',?'w',?encoding="utf-8")?as f:
????f.write(yaml_config)

我們會(huì)使用以下參數(shù)運(yùn)行模型融合命令:

  • –copy-tokenizer?用于從基礎(chǔ)模型復(fù)制分詞器
  • –allow-crimes?和?--out-shard-size?可用于將模型劃分為較小的分片(shards),可在內(nèi)存較小的?CPU?上進(jìn)行計(jì)算
  • –lazy-unpickle?用于啟用實(shí)驗(yàn)性的lazy unpickler(譯者注:“l(fā)azy unpickler”?指的是一種實(shí)驗(yàn)性的、能夠以一種惰性或延遲加載的方式執(zhí)行反序列化操作的機(jī)制。),以降低內(nèi)存使用率

此外,某些模型可能還需要?--trust_remote_code?參數(shù)(Mistral-7B?不需要)。

該命令將下載模型融合配置中列出的所有模型的權(quán)重,并運(yùn)行所選的模型融合方法(應(yīng)該需要約?10?分鐘)。

#?Merge models
!mergekit-yaml config.yaml merge?--copy-tokenizer?--allow-crimes?--out-shard-size 1B?--lazy-unpickl

現(xiàn)在,模型已經(jīng)融合并保存在?merge?目錄中。在上傳之前,我們可以創(chuàng)建一個(gè)包含復(fù)現(xiàn)該模型融合操作所需信息的?README 文件。以下代碼塊定義了一個(gè)?Jinja?模板,并自動(dòng)將模型融合配置中的數(shù)據(jù)填入其中。

!pip install?-qU huggingface_hub

from?huggingface_hub?import?ModelCard,?ModelCardData
from?jinja2?import?Template

username?= "mlabonne"

template_text?= """
---
license:?apache-2.0
tags:
-?merge
-?mergekit
-?lazymergekit
{%-?for model in models?%}
-?{{?model?}}
{%-?endfor?%}
---

#?{{?model_name?}}

{{?model_name?}}?is a merge of the following models using?[mergekit](https://github.com/cg123/mergekit):

{%-?for model in models?%}
*?[{{?model?}}](https://huggingface.co/{{?model?}})
{%-?endfor?%}

##????Configuration

```yaml
{{-?yaml_config?-}}
```
"""

#?Create a Jinja template object
jinja_template?=?Template(template_text.strip())

#?Get list of models from config
data?=?yaml.safe_load(yaml_config)
if "models" in?data:
????models?= [data["models"][i]["model"] for?i?in range(len(data["models"])) if "parameters" in?data["models"][i]]
elif "parameters" in?data:
????models?= [data["slices"][0]["sources"][i]["model"] for?i?in range(len(data["slices"][0]["sources"]))]
elif "slices" in?data:
????models?= [data["slices"][i]["sources"][0]["model"] for?i?in range(len(data["slices"]))]
else:
 raise?Exception("No models or slices found in yaml config")

#?Fill the template
content?=?jinja_template.render(
????model_name=MODEL_NAME,
????models=models,
????yaml_config=yaml_config,
????username=username,
)

#?Save the model card
card?=?ModelCard(content)
card.save('merge/README.md')

現(xiàn)在我們有了?model card?,就可以將整個(gè)文件夾推送到?HuggingFace Hub。

from google.colab import userdata
from huggingface_hub import HfApi

username?=?"mlabonne"

#?Defined in the secrets tab in Google Colab
api?=?HfApi(token=userdata.get("HF_TOKEN"))

api.create_repo(
????repo_id=f"{username}/{MODEL_NAME}",
????repo_type="model"
)
api.upload_folder(
????repo_id=f"{username}/{MODEL_NAME}",
????folder_path="merge",
)

該模型現(xiàn)在可以在?Hugging Face Hub?上找到,位于?mlabonne/Marcoro14–7B-slerp[25]。在另一個(gè)?notebook?中,我們可以使用以下代碼嘗試在免費(fèi)的?T4 GPU?上運(yùn)行該模型:

!pip install?-qU transformers accelerate

from transformers import AutoTokenizer
import transformers
import torch

model?=?"mlabonne/Marcoro14-7B-slerp"
messages?=?[{"role":?"user",?"content":?"What is a large language model?"}]

tokenizer?=?AutoTokenizer.from_pretrained(model)
prompt?=?tokenizer.apply_chat_template(
????messages,
????tokenize=False,
????add_generation_prompt=True
)
pipeline?=?transformers.pipeline(
????"text-generation",
????model=model,
????torch_dtype=torch.float16,
????device_map="auto",
)

outputs?=?pipeline(prompt,?max_new_tokens=256,?do_sample=True,?temperature=0.7,?top_k=50,?top_p=0.95)

我們向?LLM?提出了"What is a Large Language Model?"這個(gè)問題,并獲得了這樣的輸出結(jié)果:

A large language model is a type of artificial intelligence?(AI)?system that has been trained on vast amounts of text data.?It’s designed to understand and generate human-like language,?making predictions on what words or phrases might come next in a sentence or document.?These models use complex algorithms and neural network architectures to learn from the data and improve their performance over time.?Some well-known large language models include GPT-3 from OpenAI and BERT from Google.

融合后的模型看起來不錯(cuò),但我們需要更全面的評(píng)估。對(duì)于這種通用型模型,有一些有趣的基準(zhǔn)測(cè)試:

  1. Chatbot Arena[26],它通過人類的投票編制?LLMs?排行榜。人們對(duì)不同語(yǔ)言模型的表現(xiàn)進(jìn)行投票,然后使用?Elo?算法對(duì)這些模型進(jìn)行排名。
  2. MT-bench[26],它使用?GPT-4?作為評(píng)判員,對(duì)一組多輪問題上的模型回答進(jìn)行評(píng)分。
  3. NousResearch benchmark suite[27],它匯總了四個(gè)基準(zhǔn)測(cè)試:AGIEval、GPT4ALL、TruthfulQA?和?Bigbench。GPT4ALL?包括了?HellaSwag、OpenBookQA、Winogrande、ARC-Easy、ARC-Challenge、BoolQ?和?PIQA。
  4. Open LLM Leaderboard[28],它匯總了六個(gè)基準(zhǔn)測(cè)試:ARC、HellaSwag、MMLU、Winogrande、GSM8K?和?TruthfulQA。

不幸的是,我們無(wú)法將該模型提交到?Chatbot Arena。不過,可以選擇使用?Open LLM Leaderboard?和?NousResearch?基準(zhǔn)測(cè)試對(duì)其進(jìn)行評(píng)估。

我已經(jīng)將該模型提交到了?Open LLM Leaderboard[28],它在該排行榜上被評(píng)為最佳的?7B?參數(shù)模型。以下是具體情況截圖:

LLM 模型融合實(shí)踐指南:低成本構(gòu)建高性能語(yǔ)言模型,技術(shù)干貨,白??萍?LLM,模型融合,人工智能,AI,語(yǔ)言模型,深度學(xué)習(xí)

Image by author

Open LLM Leaderboard?的問題在于這些基準(zhǔn)測(cè)試是公開的。這意味著人們可以在測(cè)試數(shù)據(jù)上訓(xùn)練語(yǔ)言模型,以獲得更好的結(jié)果。融合這些最佳的模型,也會(huì)污染模型。可以肯定的是,Marcoro14-7B-slerp?受到了污染,而且這次融合中使用的一些模型應(yīng)該是在這些評(píng)估測(cè)試集上訓(xùn)練過的。 如果你想創(chuàng)建最好的模型而非僅僅在排行榜上表現(xiàn)較好的模型,我建議只使用非融合的模型來創(chuàng)建自己的融合模型。

這就是為什么我們不能只依賴于?Open LLM Leaderboard。在?NousResearch?benchmark suite?中,我使用了????LLM AutoEval?[29]來自動(dòng)計(jì)算評(píng)估分?jǐn)?shù)。以下是與表現(xiàn)優(yōu)秀的?OpenHermes-2.5-Mistral-7B?[30]進(jìn)行比較的結(jié)果:

LLM 模型融合實(shí)踐指南:低成本構(gòu)建高性能語(yǔ)言模型,技術(shù)干貨,白??萍?LLM,模型融合,人工智能,AI,語(yǔ)言模型,深度學(xué)習(xí)

Image by author

與該模型相比,我們?cè)诿宽?xiàng)基準(zhǔn)測(cè)試中都取得了顯著進(jìn)步。請(qǐng)注意,?NousResearch?benchmark suite?與?Open LLM Leaderboard?共享了一些評(píng)估任務(wù):ARC-Challenge,TruthfulQA,HellaSwag和Winogrande。據(jù)我所知,Bigbench是唯一完全不同的基準(zhǔn)測(cè)試(如果情況不是這樣,請(qǐng)隨時(shí)去原文鏈接與作者聯(lián)系)。然而,在此次模型融合中使用的模型之一仍可能是在Bigbench的評(píng)測(cè)數(shù)據(jù)集上訓(xùn)練過的。

03 總結(jié)

在這篇文章中,我們介紹了使用四種不同的方法去融合?LLMs?。詳細(xì)說明了?SLERP、TIES、DARE?和?passthrough?的工作原理,并提供了相關(guān)的配置示例。最后,我們通過?mergekit?庫(kù)使用SLERP方法訓(xùn)練出了?Marcoro14–7B-slerp?,并將其上傳到?Hugging Face Hub?。我們?cè)趦蓚€(gè)基準(zhǔn)套件上都獲得了出色的性能:Open LLM Leaderboard(該模型是該榜單性能最佳的?7B?模型)和NousResearch。

Thanks for reading!

END

參考資料

[1]https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard

[2]https://github.com/cg123/mergekit

[3]https://huggingface.co/mlabonne/Marcoro14-7B-slerp

[4]https://github.com/mlabonne/llm-course/blob/main/Mergekit.ipynb

[5]https://colab.research.google.com/drive/1_JS7JKJAQozD48-LhYdegcuuZ2ddgXfr?usp=sharing

[6]https://colab.research.google.com/drive/1obulZ1ROXHjYLn6PPZJwRR6GzgQogxxb?usp=sharing

[7]https://www.linkedin.com/in/charles-goddard-7b6797b/

[8]https://github.com/cg123/mergekit/tree/1011ef3a84e4c5545473602baf7ef32d535044a9#linear

[9]https://arxiv.org/abs/2212.04089

[10]https://huggingface.co/collections/osanseviero/model-merging-65097893623330a3a51ead66

[11]https://huggingface.co/EmbeddedLLM/Mistral-7B-Merge-14-v0.1

[12]https://huggingface.co/OpenPipe/mistral-ft-optimized-1218

[13]https://huggingface.co/mlabonne/NeuralHermes-2.5-Mistral-7B

[14]https://huggingface.co/mlabonne/NeuralPipe-7B-slerp

[15]https://arxiv.org/abs/2306.01708

[16]https://huggingface.co/Weyaxi/OpenHermes-2.5-neural-chat-7b-v3-1-7B

[17]https://huggingface.co/mlabonne/NeuralPipe-7B-ties

[18]https://arxiv.org/abs/2311.03099

[19]https://github.com/cg123/mergekit/issues/26

[20]https://huggingface.co/mlabonne/Daredevil-7B

[21]https://huggingface.co/zyh3826/GML-Mistral-merged-v1

[22]https://huggingface.co/mlabonne/NeuralPipe-9B-merged

[23]https://huggingface.co/AIDC-ai-business/Marcoroni-7B-v3

[24]https://huggingface.co/EmbeddedLLM/Mistral-7B-Merge-14-v0.1

[25]https://huggingface.co/mlabonne/Marcoro14-7B-slerp

[26]https://chat.lmsys.org/

[27]https://github.com/teknium1/LLM-Benchmark-Logs

[28]https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard

[29]https://github.com/mlabonne/llm-autoeval

[30]https://huggingface.co/teknium/OpenHermes-2.5-Mistral-7B

原文鏈接:

https://towardsdatascience.com/merge-large-language-models-with-mergekit-2118fb392b54文章來源地址http://www.zghlxwxcb.cn/news/detail-836255.html

到了這里,關(guān)于LLM 模型融合實(shí)踐指南:低成本構(gòu)建高性能語(yǔ)言模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Kafka 最佳實(shí)踐:構(gòu)建可靠、高性能的分布式消息系統(tǒng)

    Kafka 最佳實(shí)踐:構(gòu)建可靠、高性能的分布式消息系統(tǒng)

    Apache Kafka 是一個(gè)強(qiáng)大的分布式消息系統(tǒng),被廣泛應(yīng)用于實(shí)時(shí)數(shù)據(jù)流處理和事件驅(qū)動(dòng)架構(gòu)。為了充分發(fā)揮 Kafka 的優(yōu)勢(shì),需要遵循一些最佳實(shí)踐,確保系統(tǒng)在高負(fù)載下穩(wěn)定運(yùn)行,數(shù)據(jù)可靠傳遞。本文將深入探討 Kafka 的一些最佳實(shí)踐,并提供豐富的示例代碼,幫助讀者更好地應(yīng)用

    2024年02月03日
    瀏覽(42)
  • 構(gòu)建高性能的MongoDB數(shù)據(jù)遷移工具:Java的開發(fā)實(shí)踐

    構(gòu)建高性能的MongoDB數(shù)據(jù)遷移工具:Java的開發(fā)實(shí)踐

    隨著大數(shù)據(jù)時(shí)代的到來,數(shù)據(jù)遷移成為許多企業(yè)和組織必須面對(duì)的挑戰(zhàn)之一。作為一種非關(guān)系型數(shù)據(jù)庫(kù),MongoDB在應(yīng)用開發(fā)中得到了廣泛的應(yīng)用。為了滿足數(shù)據(jù)遷移的需求,我們需要一個(gè)高性能、穩(wěn)定可靠的MongoDB數(shù)據(jù)遷移工具。下面將分享使用Java開發(fā)高性能MongoDB數(shù)據(jù)遷移工具

    2024年02月13日
    瀏覽(31)
  • Redis學(xué)習(xí)指南(28)-Redis高性能特性之單線程模型

    Redis是一種高性能、非關(guān)系型的內(nèi)存數(shù)據(jù)庫(kù),被廣泛應(yīng)用于緩存、消息隊(duì)列、任務(wù)隊(duì)列等場(chǎng)景。Redis之所以能夠達(dá)到如此高的性能,其中一個(gè)重要的原因就是其采用了單線程模型。 Redis使用單線程模型指的是主要的工作線程只有一個(gè),這個(gè)線程負(fù)責(zé)處理所有的客戶端請(qǐng)求和對(duì)數(shù)

    2024年01月24日
    瀏覽(25)
  • 乳腺癌CT影像數(shù)據(jù)的深度學(xué)習(xí):R語(yǔ)言與ANN神經(jīng)網(wǎng)絡(luò)構(gòu)建高性能分類診斷模型

    乳腺癌是全球最常見的女性惡性腫瘤之一,也影響著男性的健康。據(jù)統(tǒng)計(jì),每年有數(shù)百萬(wàn)人被診斷出患有乳腺癌[1]。乳腺癌的早期檢測(cè)和準(zhǔn)確診斷對(duì)于治療和預(yù)后至關(guān)重要。然而,乳腺癌的早期診斷面臨許多挑戰(zhàn),如圖像解讀的主觀性和復(fù)雜性,以及差異化的病理特征[2]。因

    2024年02月14日
    瀏覽(26)
  • 高性能計(jì)算與AI融合成為剛需|什么是高性能計(jì)算?應(yīng)用領(lǐng)域有哪些?與人工智能的關(guān)系梳理

    高性能計(jì)算與AI融合成為剛需|什么是高性能計(jì)算?應(yīng)用領(lǐng)域有哪些?與人工智能的關(guān)系梳理

    本文一部分轉(zhuǎn)載自楊凈 整理自 MEET2023量子位 算力的需求,遠(yuǎn)比以往來得更為猛烈。甚至有人直呼:得算力者得未來。 元宇宙、AIGC、AI for Science的涌現(xiàn),又給高性能計(jì)算(HPC)平添了好幾把火。 在諸多挑戰(zhàn)與機(jī)遇共存交織的當(dāng)下,這一領(lǐng)域泰斗中國(guó)工程院院士、清華大學(xué)計(jì)算

    2024年02月08日
    瀏覽(23)
  • 企業(yè)如何構(gòu)建高性能計(jì)算云?

    企業(yè)如何構(gòu)建高性能計(jì)算云?

    HPC是推動(dòng)科學(xué)和工程應(yīng)用發(fā)展的重要組成部分。除了將處理器向Exascale邁進(jìn)之外,工作負(fù)載的性質(zhì)也在不斷變化—從傳統(tǒng)的模擬和建模到混合工作負(fù)載,包括企業(yè)內(nèi)部和云應(yīng)用,還需要整合、吸收和分析來自無(wú)數(shù)物聯(lián)網(wǎng)傳感器的數(shù)據(jù)。同時(shí),隨著HPC基礎(chǔ)設(shè)施上的人工智能工作

    2024年02月03日
    瀏覽(25)
  • 【Unity3D熱更新】Unity3D 零成本、高性能的C#的熱更新框架:HybridCLR

    【Unity3D熱更新】Unity3D 零成本、高性能的C#的熱更新框架:HybridCLR

    推薦閱讀 CSDN主頁(yè) GitHub開源地址 Unity3D插件分享 簡(jiǎn)書地址 我的個(gè)人博客 QQ群:1040082875 大家好,我是佛系工程師 ☆恬靜的小魔龍☆ ,不定時(shí)更新Unity開發(fā)技巧,覺得有用記得一鍵三連哦。 相信只要做過熱更新的小伙伴,都被熱更新搞過心態(tài)吧。 我有一個(gè)小伙伴,本來是面向

    2024年01月16日
    瀏覽(26)
  • 第7章 高性能門戶首頁(yè)構(gòu)建

    高性能門戶建設(shè) 1、了解文件存儲(chǔ)系統(tǒng)的概念 2、了解常用文件服務(wù)器的區(qū)別 3、掌握Minio的應(yīng)用 1、OpenResty 百萬(wàn)并發(fā)站點(diǎn)架構(gòu) OpenResty 特性介紹 搭建OpenResty Web站點(diǎn)動(dòng)靜分離方案剖析 2、多級(jí)緩存架構(gòu)實(shí)戰(zhàn) 多級(jí)緩存架構(gòu)分析 Lua語(yǔ)法學(xué)習(xí) Lua操作Redis實(shí)戰(zhàn) 首頁(yè)高效加載實(shí)戰(zhàn) 3、Ng

    2024年02月11日
    瀏覽(24)
  • 構(gòu)建三高架構(gòu):高性能、高可用、高可擴(kuò)展

    在當(dāng)今計(jì)算機(jī)科學(xué)領(lǐng)域,構(gòu)建強(qiáng)大、高效的系統(tǒng)已成為迫切需求。為了應(yīng)對(duì)用戶需求的不斷增加,三高架構(gòu)應(yīng)運(yùn)而生,包括高性能、高可用性和高可擴(kuò)展性。本文將深入探討這三個(gè)關(guān)鍵特性,并提供基于 Java 的代碼示例來說明這些概念的實(shí)際應(yīng)用。 1.1 優(yōu)化的系統(tǒng)設(shè)計(jì) 在構(gòu)建

    2024年01月25日
    瀏覽(29)
  • JAMstack架構(gòu):快速構(gòu)建安全、高性能的現(xiàn)代應(yīng)用

    JAMstack架構(gòu):快速構(gòu)建安全、高性能的現(xiàn)代應(yīng)用

    隨著Web應(yīng)用的快速發(fā)展,開發(fā)者們?cè)趯ふ腋痈咝А踩涂删S護(hù)的應(yīng)用架構(gòu)。JAMstack架構(gòu)應(yīng)運(yùn)而生,它通過將前端、后端和部署過程分離,提供了一種現(xiàn)代化的方式來構(gòu)建Web應(yīng)用。在本文中,我們將深入探討JAMstack架構(gòu)的特點(diǎn)、優(yōu)勢(shì)以及使用場(chǎng)景。 什么是 JAMstack 架構(gòu)? JA

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包