zero-lora
zero-lora copied to clipboard
zero零训练llm调参
[https://github.com/huggingface/peft/issues/280](https://github.com/huggingface/peft/issues/280) 我看到https://github.com/huggingface/peft/pull/263支持多个LORA,但看起来它只支持切换多个LORA,而不是同时加载多个LORA并支持调整相应的权重,如果我想达到类似的结果目前有支持的方法吗?🤔 目前,您可以加载多个适配器并合并到基本模型中,如下所示,此处所有适配器的权重相等: model = AutoModel... # base model # set `load_in_8bit` to `False` for peft_model_id in peft_model_ids: model = PeftModel.from_pretrained(model, peft_model_id) model = model.merge_and_unload() 我不确定这是否是一个常见的要求,但我可以分享我的例子:我目前正在开发一种人工智能服务,主要训练专业人士之间的日常对话,以及与专业领域相关的理论知识。最终目标是提供更接近人与人之间日常对话风格的答案,而不是产生僵化的理论知识。因此, 我希望能够同时加载多个 LORA,并在提问时根据一定的权重融合它们, 例如在这种情况下, 用于日常对话和专业知识的...
训练您自己的 LoRA [https://github.com/oobabooga/text-generation-webui/blob/main/docs/Training-LoRAs.md](https://github.com/oobabooga/text-generation-webui/blob/main/docs/Training-LoRAs.md) 训练您自己的 LoRA WebUI 旨在使训练您自己的 LoRA 尽可能简单.它归结为几个简单的步骤: 第 1 步:制定计划。 您想使用哪种基本模型?您制作的 LoRA 必须与单个架构匹配 (例如 LLaMA-13B) 并且不能转移到其他人 (例如 LLaMA-7B, 稳定LM, 等等都是不同的).同一模型的衍生物(例如LLaMA-13B的羊驼微调)可能是可转移的,但即便如此,最好完全按照您计划使用的内容进行训练。 您想要什么模型格式?在撰写本文时,8 位模型最稳定,支持 4 位模型,但处于实验阶段。在不久的将来,4位可能是大多数用户的最佳选择。 你在训练它什么?你想让它学习真实的信息,一个简单的格式,...? 步骤 2:收集数据集。 如果使用类似于...
[https://github.com/PhoebusSi/Alpaca-CoT](https://github.com/PhoebusSi/Alpaca-CoT) Alpaca-CoT:具有指令数据收集和统一大语言模型接口的指令微调平台 LICENSE torch data model wandb colab 这是该项目的存储库,旨在构建一个指令微调(IFT)平台,该平台具有广泛的指令集合(特别是CoT数据集)以及各种大型语言模型和参数高效方法的统一接口。我们正在不断扩展我们的[指令调整数据收集](https://huggingface.co/datasets/QingyiSi/Alpaca-CoT/),并集成更多的LLM和更参数高效的方法。此外,我们还创建了一个新的分支[tabular_llm](https://github.com/PhoebusSi/Alpaca-CoT/tree/tabular_llm)来构建用于解决表智能任务的表格 LLM。Alpaca-CoT 热忱欢迎您向我们提供任何未收集的指令调整数据集(或其来源)。我们将统一格式化它们,使用这些数据集训练 Alpaca 模型(以及早期的其他 LLM),开源[模型检查点](https://huggingface.co/QingyiSi/Alpaca-CoT/tree/main),并进行广泛的实证研究。我们希望我们的项目能够为大型语言模型的开源过程做出一点贡献,并降低NLP研究人员入门的门槛。
[https://github.com/ggerganov/llama.cpp/issues/904](https://github.com/ggerganov/llama.cpp/issues/904) 对于 https://github.com/ggerganov/llama.cpp/pull/820,加载的模型可能与基本模型不同。能够以交互方式将当前加载的模型导出到 binfile 是有意义的。 特别是如果允许线性插值多个 LoRA 文件的选项 - 即 LoRA 调酒学以获得独特的 LLM 个性. @MillionthOdin16 [百万之奥丁16](https://github.com/MillionthOdin16)评论 [on Apr 12](https://github.com/ggerganov/llama.cpp/issues/904#issuecomment-1504654366) 如果您熟悉 loras 的混合,我认为如果您可以在上面链接一些资源,这对这里的很多人都会有所帮助。我听说你可以做一些很酷的事情,但我不是很熟悉。 @jon创 贡献 作者 [钟创](https://github.com/jon-chuang)评论 [on Apr 12](https://github.com/ggerganov/llama.cpp/issues/904#issuecomment-1504672958) •...
[https://github.com/Vahe1994/SpQR](https://github.com/Vahe1994/SpQR) SPQR 模型压缩 此存储库包含演示用于 LLM 压缩的 SpQR 方法的代码。 它伴随着研究论文“SpQR:几乎无损LLM权重压缩的稀疏量化表示”。
[https://github.com/mit-han-lab/llm-awq](https://github.com/mit-han-lab/llm-awq) AWQ:用于LLM压缩和加速的激活感知重量量化[[论文](https://arxiv.org/abs/2306.00978)] 适用于LLM的高效准确的低比特权重量化(INT3 / 4),支持指令调谐模型和多模态LM。 overview 当前版本支持: AWQ 搜索以实现准确的量化。 用于LLM的预先计算的AWQ模型库(LLaMA,OPT,Vicuna,LLaVA;加载以生成量化权重)。 PyTorch 中的内存效率高 4 位线性。 高效的 CUDA 内核实现,可实现快速推理(支持上下文和解码阶段)。 指令调谐模型 (Vicuna) 和多模态 LM (LLaVA) 的 4 位推理示例。 
[https://github.com/huggingface/peft/pull/39](https://github.com/huggingface/peft/pull/39) 此 PR 通过能够共享经过训练的 LoRA 权重和配置来添加一些增强功能.使用此 PR,API 如下所示:peft from transformers import AutoModelForCausalLM from peft import LoraConfig, LoraModel model_id = "facebook/opt-350m" lora_model_id = "./temp-lora" # Create a config config = LoraConfig(...
[https://github.com/huggingface/peft/blob/main/examples/multi_adapter_examples/PEFT_Multi_LoRA_Inference.ipynb](https://github.com/huggingface/peft/blob/main/examples/multi_adapter_examples/PEFT_Multi_LoRA_Inference.ipynb) PEFT多LoRA切换
[https://github.com/Lightning-AI/lit-llama/issues/193](https://github.com/Lightning-AI/lit-llama/issues/193) 有没有办法在 LoRA 适配器之间切换?即为不同的任务加载几个不同的适配器,并在它们之间快速切换以执行不同的任务?尽可能使用peft库。 @totaltube我认为我们不支持这一点。你能举个例子吗?请注意,LoRA 和适配器是两个不同的东西. 例如, 要从 LoRA 切换到适配器微调, 您必须 1.删除上下文管理器 2。将模型类替换为 和 3。更改为 。with lora()lit_llama.model.LLaMAlit_llama.adapter.LLaMAmark_only_lora_as_trainablemark_mark_only_adapter_as_trainable(model) 我认为目标不是从 lora 切换到适配器, 而是在同一基本模型之上切换不同的 lora 权重 正确。 这是另一个库中的示例:https://github.com/huggingface/peft/blob/main/examples/multi_adapter_examples/PEFT_Multi_LoRA_Inference.ipynb 目标是 - 我可以独立地为不同的任务微调模型并快速切换权重。无需在扩展数据集上重新训练,例如,扩展数据集包括另一个任务。 关于如何实现@awaelchli所说的内容的示例类: class...
[https://github.com/IST-DASLab/sparsegpt](https://github.com/IST-DASLab/sparsegpt) CML 2023 论文“SparseGPT:大规模语言模型可以一次性准确修剪”的代码。 [arxiv.org/abs/2301.00774](https://arxiv.org/abs/2301.00774) 具体来说,它提供了脚本和实现,以便: 评估原始维基文本2,PTB和C4子集上的基线和修剪模型。(, ,datautils.pyopt.pybloom.py) 在 OPT 和 BLOOM 模型上执行非结构化、n:m 和稀疏 + 量化的 SparseGPT 压缩。(, ,sparsegpt.pyopt.pybloom.py) 我们注意到这个 SparseGPT 实现是基于我们的开源 [GPTQ 代码](https://github.com/IST-DASLab/gptq)。