零门槛微调大模型:基于 Ludwig 低代码框架使用 LoRA 技术微调实践

Ludwig+LoRA零代码微调大模型实战指南 大模型微调是将预训练语言模型适配到垂直场景的关键技术,其核心原理在于通过低秩参数更新(如LoRA)高效调整模型注意力与前馈层,兼顾效果与显存开销。该技术显著降低训练成本,使中小团队也能在单卡GPU上完成领域适配。典型应用场景包括电商客服意图识别、医疗报告摘要生成、金融风控结构化输出等任务。而Ludwig框架通过声明式YAML配置、自动target module推断、内置QLoRA量化支持及ECD模块化解耦,将传统需200行PyTorch代码的流程压缩为可读可维护的低代码实践,真正实现‘配置即训练’——这正是 阅读详情

一、Ludwig 介绍

自然语言处理 (NLP) 和人工智能 (AI) 的飞速发展催生了许多强大的模型,它们能够理解和生成如同人类般的文本,为聊天机器人、文档摘要等应用领域带来了革命性的改变。然而,释放这些模型的全部潜力需要针对特定用例进行微调。Ludwig,一个由 Linux 基金会人工智能与数据部门主办的低代码框架,应运而生。并迅速获得了开源社区的广泛关注,在 Github 上已收获 10.9k 颗星。它致力于帮助用户轻松构建定制化的人工智能模型,例如大语言模型 (LLMs) 和其他深度神经网络。

Ludwig 最初由 Piero Molino 于 2019 年在 Uber AI 团队成员 Yaroslav Dudin 和 Sai Sumanth Miryala 的帮助下创建。 如今,Ludwig 已经发展成为一个由 Linux 基金会支持的开源项目,并托管在 Github 上,拥有一个活跃的社区。Ludwig 的开发和维护由 Predibase 的员工和社区贡献者共同完成。

1.1、Ludwig 的主要优势

  • 极易上手: 用户仅需使用一个声明式的 YAML 配置文件,即可轻松训练出最先进的 LLM 模型。Ludwig 支持多任务和多模态学习,并提供全面的配置验证功能,能够在运行前检测无效参数组合,避免错误发生。
  • 高效性和可扩展性: 自动选择最佳批量大小,支持 DDP、DeepSpeed 等分布式训练策略,并提供参数高效微调(PEFT)、4 位量化(QLoRA)、分页和 8 位优化器等多种优化特性,即使面对超大规模数据集也能轻松应对。
  • 专家级控制: 用户可以完全掌控模型的各个方面,细致到激活函数的选择。同时,Ludwig 还提供超参数优化、模型可解释性分析以及丰富的指标可视化工具,满足专业开发者的需求。
  • 模块化和可扩展设计: 如同深度学习的“积木”,用户可以通过简单的参数调整尝试不同的模型架构、任务、特征和模态,极大地提升了模型开发的灵活性。
  • 面向生产环境: 提供预构建的 Docker 容器,原生支持在 Kubernetes 上使用 Ray 进行模型部署,并支持将模型导出至 Torchscript 和 Triton 等平台,以及一键上传模型至 HuggingFace。

Ludwig 特别容易上手,即使你不是代码高手,也能用它轻松构建各种机器学习和深度学习模型。 你只需要一个简单的 YAML 配置文件,就可以训练出最先进的 LLM 模型,还能玩转多任务和多模态学习,超级方便!从模型训练、微调、参数优化,到最终的可视化和部署,Ludwig 都能帮你轻松搞定。

1.2、Ludwig 的主要功能

  • 训练和微调: 支持多种训练模式,包括对预训练模型进行完整的训练和微调。
  • 模型配置: 使用 YAML 文件进行配置,允许用户对模型参数进行详细定义,实现高度的可定制性和灵活性。
  • 超参数调整: 集成自动超参数优化工具,以增强模型性能。
  • 可解释的人工智能: 提供工具帮助用户深入了解模型决策,提高模型的可解释性和透明度。
  • 模型服务和基准测试: 简化模型服务的过程,并支持在不同条件下对模型性能进行基准测试。

Ludwig 的整体设计理念是简化 AI 模型的构建和部署流程,无论是 AI 领域的新手还是专家,都可以轻松上手,快速构建出适用于各种场景的定制化 AI 模型。

二、Ludwig 原理

2.1、ECD 技术架构

Ludwig 的核心建模架构被称为 ECD (编码器-组合器-解码器) 架构。它就像一个高效的信息处理工厂,首先将多个输入特征进行编码,然后将它们送入“组合器”模型进行整合。组合器模型处理完这些编码后的信息后,会将结果传递给针对每个输出特征的解码器,最后输出预测结果并进行后处理。您可以进一步了解 Ludwig 的各种组合器模型,例如 TabNet、Transformer 和 Concat (Wide and Deep learning) 等。

ECD 架构的示意图就像一只翩翩起舞的蝴蝶,因此也被称为“蝴蝶架构”。

ECD 架构可以灵活处理各种不同类型的输入和输出数据,因此适用于许多不同的应用场景。

2.2、分布式训练

训练大型 AI 模型,尤其是像 LLM 这种巨无霸,没有分布式训练就像老牛拉破车,效率低得让人心碎。 好消息是,Ludwig 与 Ray 强强联手,完美解决了这个问题,让你的模型训练效率瞬间起飞!

无论你是在轻便的笔记本电脑上,还是在强大的云端 GPU 集群上,甚至是动用成百上千台机器进行史诗级训练,Ludwig 都能轻松应对,而且你不用修改任何代码,就能享受分布式训练带来的速度与激情!

Ludwig 之所以如此优秀,主要归功于与 Ray 的深度整合:

  • Ray 集群启动器: 就像一位经验丰富的指挥家,只需一个简单的指令,就能迅速组建起一支强大的计算乐团,为你演奏 AI 的华美乐章。
  • Horovod on Ray: 分布式训练的配置过程通常复杂得令人头疼,但有了 Horovod on Ray,一切都变得无比轻松,你只需专注于模型本身,剩下的交给它就好。
  • Dask on Ray: 面对海量数据,传统的单机训练就像小马过河,力不从心。Dask on Ray 犹如一座坚固的桥梁,让你轻松跨越数据规模的鸿沟。
  • Ray Tune: 寻找最佳超参数就像在迷宫中探索,Ray Tune 为你提供了一盏明灯,在多台机器上并行搜索,快速找到通往成功之路。

三、Ludwig 微调

3.1、微调准备工作

在开始微调之前,让我们先来熟悉一下 Ludwig 及其生态系统。如前所述,Ludwig 是一个用于构建自定义 AI 模型的低代码框架,你可以把它想象成一个 AI 模型的“乐高积木”,它能帮助你构建各种自定义模型,例如大语言模型和其他深度神经网络。从技术角度来看,Ludwig 能够训练和微调任何神经网络,并支持广泛的机器学习和深度学习用例。此外,Ludwig 还提供了可视化、超参数调整、可解释的人工智能、模型基准测试以及模型服务等功能。

Ludwig 使用 YAML 文件来指定所有配置,例如模型名称、要执行的任务类型、微调时的 Epoch 数量、训练和微调的超参数、量化配置等。Ludwig 支持各种以 LLM 为中心的任务,例如零样本批量推理、检索增强生成 (RAG)、基于适配器的文本生成微调、指令微调等。接下来,我们将以 Mistral 7B 模型为例,带你一步步体验如何用 Ludwig 对其进行微调,Ludwig 使用 YAML 文件来配置模型参数,就像写一个简单的清单一样。我们会在后面的例子中详细介绍如何配置。

在开始微调你的 AI 模型之前,需要做一些准备工作,一般包括以下几个方面:

  • 环境设置: 安装必要的软件和软件包。
  • 数据准备: 选择和预处理合适的数据集。
  • YAML 配置: 在 YAML 文件中定义模型参数和训练选项。
  • 模型训练和评估: 执行微调过程并评估模型性能。

3.2、Ludwig 微调 LLM 详细步骤

请注意,本文中的代码示例将在 VSCode 环境中运行,但您也可以在 Kaggle Notebook、Jupyter 服务器以及 Google Colab 等其他环境中运行这些代码。

3.2.1、安装必要的软件包

如果遇到 Transformers 版本的运行时错误,请执行以下操作。

%pip install ludwig==0.10.0 ludwig[llm] 
%pip install torch==2.1.2 
%pip install PyYAML==6.0 
%pip install datasets==2.18.0 
%pip install pandas==2.1.4
%pip install transformers==4.30.2

3.2.2、导入必要的库和依赖项

import yaml
import logging
import torch
import datasets
import pandas as pd
from ludwig.api import LudwigModel

3.2.3、数据准备和预处理

这里我们使用斯坦福大学的 Alpaca 数据集来进行微调。 这份数据集就像是专门为基于指令的 LLM 微调而设计,它是由 OpenAI 的 text-davinci-003 引擎生成的,包含了 52,000 多个指令、每个条目包含指令、对应的任务以及 LLM 的输出。

为了有效地管理计算资源,我们将重点关注前 5,000 行数据。我们将使用 Hugging Face 的数据集库来访问和加载数据集到 Pandas DataFrame 中。

data = datasets.load_dataset("tatsu-lab/alpaca")
df = pd.DataFrame(data["train"])
df = df[["instruction", "input", "output"]]
df.head()

3.2.4、创建 YAML 配置文件

我们需要创建一个名为 model.yaml 的 YAML 配置文件,就像一份“训练秘籍”,告诉 Ludwig 如何训练我们的模型。这份秘籍包括以下内容:

  • 模型类型: 我们要训练的是 LLM 模型,所以这里要设定为 llm。
  • 基础模型: 我们选择使用 Hugging Face 模型库中的 mistralai/Mistral-7B-Instruct-v0.1 模型作为基础,你也可以选择其他预训练模型或者自己训练的模型。
  • 输入和输出特征: 这里需要指定模型的输入和输出类型,我们将其分别定义为 instruction 和 output ,代表文本类型,用于处理数据集的输入和模型的输出。
  • 提示模板: 这部分就像给模型的“行动指南”,告诉它如何理解你的指令并给出正确的回应。
  • 文本生成参数: 这里可以设置一些参数来控制模型生成文本的方式,例如 temperature 参数控制文本的随机性,max_new_tokens 参数控制生成文本的最大长度。
  • 适配器和量化: 为了提高模型的效率,我们会使用 LoRA 适配器和 4 位量化技术来优化模型的大小和计算量。
  • 数据预处理: 我们会将 global_max_sequence_length 参数设置为 512,将所有输入文本的长度标准化,并将数据集随机划分为训练集和验证集。
  • 训练器设置: 最后,我们将模型配置为使用大小为 1 的批次进行一个 Epoch 的训练,使用带预热的余弦学习率调度器和 paged_adam 优化器。
model_type: llm
base_model: meta-llama/Llama-2-7b-hf

quantization:
  bits: 4

adapter:
  type: lora

prompt:
  template: |
    ### Instruction:
    {instruction}

    ### Input:
    {input}

    ### Response:

input_features:
  - name: prompt
    type: text

output_features:
  - name: output
    type: text

trainer:
  type: finetune
  learning_rate: 0.0001
  batch_size: 1
  gradient_accumulation_steps: 16
  epochs: 3
  learning_rate_scheduler:
    warmup_fraction: 0.01

preprocessing:
  sample_ratio: 0.1

这份 YAML 配置文件涵盖了模型训练和微调所需的所有必要参数。 如果你想深入了解更详细的自定义选项,可以参考 Ludwig 的官方文档。

3.2.4.1、在 YAML 文件中“写秘籍”

还记得我们之前提到的“训练秘籍”——YAML 配置文件吗? 我们可以直接在里面定义模型的各种设置,就像这样:

import os
import logging
from ludwig.api import LudwigModel

# 在此处设置您的Hugging Face认证令牌
hugging_face_token = <your_huggingface_api_token>
os.environ["HUGGING_FACE_HUB_TOKEN"] = hugging_face_token

qlora_fine_tuning_config = yaml.safe_load(
"""
model_type: llm
base_model: mistralai/Mistral-7B-Instruct-v0.2

input_features:
  - name: instruction
    type: text

output_features:
  - name: output
    type: text

prompt:
  template: >-
    下面是描述任务的指令,与输入配对提供更多背景信息。适当地写一个回复完成请求。

    ### Instruction: {instruction}

    ### Input: {input}

    ### Response:

generation:
  temperature: 0.1
  max_new_tokens: 64

adapter:
  type: lora

quantization:
  bits: 4

preprocessing:
  global_max_sequence_length: 512
  split:
    type: random
    probabilities:
    - 0.95
    - 0
    - 0.05

trainer:
  type: finetune
  epochs: 1 # Typically, you want to set this to 3 epochs for instruction fine-tuning
  batch_size: 1
  eval_batch_size: 2
  optimizer:
    type: paged_adam
  gradient_accumulation_steps: 16
  learning_rate: 0.0004
  learning_rate_scheduler:
    decay: cosine
    warmup_fraction: 0.03
"""
)

3.2.5、使用 LoRA 微调 LLM

万事俱备,只欠东风!现在,我们只需要召唤出 Ludwig 的力量,就可以开始训练模型了。

首先,我们需要实例化一个 Ludwig 模型对象,把我们精心准备的 YAML 配置文件作为参数传递给它,同时,别忘了带上记录器,以便随时跟踪训练进度。 接下来,只需一行简单的代码 model.train(), 就可以启动训练过程啦!

如果遇到错误,请安装以下 Transformers 运行时:

%pip install transformers==4.30.2
model = LudwigModel(
  config=qlora_fine_tuning_config, 
  logging_level=logging.INFO
  )

results = model.train(dataset=df[:5000])

仅需两行代码,我们就可以初始化 LLM 微调过程。为了加快训练速度,节省时间和计算资源,我们暂时只用了前 5000 行数据进行训练。这里我使用了 Kaggle 的 P100 GPU 来加速微调过程,您也可以选择使用它来提升微调的速度和性能!

3.2.6、评估模型性能

test_examples = pd.DataFrame([
    {
        "instruction": "列举三种不同类型的云.",
        "input": "",
    },
    {
        "instruction": "给以下菜谱提出三个改进建议",
        "input": "鸡肉蔬菜汤:将鸡肉、胡萝卜、芹菜和土豆放入水中煮沸,然后小火慢炖一小时。",
    },
    {
        "instruction": "解释一下什么是量子计算。",
        "input": "",
    },
    {
        "instruction": "用不超过 20 个字描述这张图片",
        "input": "一只金毛猎犬在沙滩上奔跑,背景是夕阳。",
    },
    {
        "instruction": "比较并对比巴洛克和古典音乐的特点。",
        "input": "",
    },
])

predictions = model.predict(test_examples, generation_config={
"max_new_tokens": 64, 
"temperature": 0.1})[0]

for input_with_prediction in zip(
    test_examples['instruction'], 
    test_examples['input'], 
    predictions['output_response']
):
    
    print(f"Instruction: {input_with_prediction[0]}")
    print(f"Input: {input_with_prediction[1]}")
    print(f"Generated Output: {input_with_prediction[2][0]}")
    print("\n\n")

四、模型部署

现在,我们可以将微调后的模型部署到 Hugging Face 平台。请按照以下步骤操作:

4.1、在 Hugging Face 上创建模型仓库

  1. 访问 Hugging Face 网站并登录您的账号。
  2. 点击您的个人资料图标,选择 "New Model"。
  3. 填写必要的信息,并为您的模型指定一个名称。

4.2、生成 Hugging Face API 密钥

  1. 在 Hugging Face 网站上,点击您的个人资料图标,然后选择 "Settings"。
  2. 选择 "Access Tokens" 并点击 "New Token"。
  3. 在生成 Token 时,选择 "Write" 权限。

4.3、使用 Hugging Face CLI 进行身份验证

  1. 打开命令行终端。
  2. 使用以下命令登录 Hugging Face,将 <API_KEY> 替换为您生成的 API 密钥:
huggingface-cli login --token <API_KEY>

4.4、将您的模型上传到 Hugging Face

使用以下命令将您的模型上传到 Hugging Face,将 <repo-id> 替换为您的模型仓库 ID,将 <model-path> 替换为本地保存模型的路径:

ludwig upload hf_hub --repo_id <repo-id> --model_path <model-path>

五、模型微调扩展

现在,你已经掌握了用 Ludwig 微调 LLM 的基本招式。但是,江湖路漫漫,想要训练出独步天下的 AI 模型,还需要不断修炼,拓展训练思路。

好在 Ludwig 非常灵活,就像可塑性极强的武学奇才,可以根据你的需求进行各种调整和扩展。以下是一些修改建议:

  • 数据:修炼的根基: 不同的 AI 模型就像不同门派的武功,需要不同的内功心法。根据你想要训练的模型类型和目标,选择合适的数据集至关重要。
# Huggingface datasets and tokenizers
from datasets import load_dataset
from tokenizers import Tokenizer
from tokenizers.models import WordLevel
from tokenizers.trainers import WordLevelTrainer
from tokenizers.pre_tokenizers import Whitespace
  • 任务:挑战自我,突破瓶颈: 不要局限于指令微调,尝试用 Ludwig 完成更复杂的 NLP 任务,例如文本分类、问答系统等等,不断挑战自我,突破模型的极限。
  • 模型:博采众长,融会贯通: Hugging Face 模型库就像一个武学宝库,里面有各种各样的预训练模型。你可以根据自己的需要选择合适的模型,甚至可以将不同的模型组合起来,创造出更强大的模型。
  • 超参数:精雕细琢,追求极致: 超参数就像武功招式中的细节,微小的调整就能对模型的性能产生巨大的影响。Ludwig 内置了超参数优化工具,可以帮助你找到最佳的超参数组合,让你的模型发挥出最大威力。

六、总结

Ludwig 就像一位武功高强的引路人,为你打开了 AI 世界的大门。它简单易用,功能强大,即使是初学者也能轻松上手。Ludwig 的低代码框架为将大语言模型 (LLM) 微调至特定任务提供了一种高效便捷的途径,它在易用性和强大的自定义能力之间取得了良好的平衡。通过利用 Ludwig 全面的模型开发、训练和评估功能,开发人员可以构建出针对特定用例量身定制的强大且高性能的 AI 模型,以满足各种现实世界应用场景的需求。

以下是 Ludwig 的核心优势:

  • 低代码: 你不需要写大量的代码,只需要一个简单的 YAML 配置文件,就能轻松构建各种 AI 模型。
  • 全流程: 从模型训练、微调、超参数优化,到模型可视化和部署,Ludwig 覆盖了 AI 模型开发的整个生命周期。
  • 高性能: Ludwig 提供了丰富的优化工具和策略,可以帮助你最大限度地提升模型性能。
  • 灵活性: 你可以根据自己的需求调整和扩展 Ludwig,使其适应各种 NLP 任务。

无论你是想要构建聊天机器人、开发文档摘要工具,还是探索其他 AI 应用,Ludwig 都能助你一臂之力。 踏上这段激动人心的 AI 旅程,让 Ludwig 与你并肩作战,共同创造无限可能!

参考资料

[1]. Hugging Face Repo:https://huggingface.co/nitinaggarwal12/ludwig-llm-fine-tuning

[2]. Ludwig Git Repo:https://github.com/nitinaggarwaldbx/ludwig-llm-fine-tuning

[3]. Ludwig AI Framework Documentation:https://ludwig.ai/latest/

[4]. Hugging Face Base Model:https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2

[5]. Stanford Alpaca Dataset:https://huggingface.co/datasets/tatsu-lab/alpaca

SAP 实例解析分期付款配置及应用 SAP系统的付款条件支持分期付款功能,其奥妙之处就在于需要定义一个母条款和一个子条款,其中,母条款需要标识“分期付款”。 首先,定义分期付款的母条款OBB8:             然后,定义子条款(即分期付款的具体方式)OBB9:   由上图可以看出,分期付款的配置还是很强大的,针对每次付款,都可以进行第二层次付款条件的设置。   然后,我们做一笔发票, 阅读详情

相关推荐

深入解析STM32F40x CAN控制器的配置与优化

本文深入解析STM32F40x CAN控制器的配置与优化,涵盖基础工作模式、波特率计算、筛选器配置及中断管理等关键技术。通过实战案例和代码示例,帮助开发者高效配置CAN通信,提升工业控制系统的稳定性和性能。

weixin_26834815的博客 220

Ludwig低代码框架实现大模型LoRA微调实战

大语言模型微调(Fine-tuning)是将预训练能力适配到垂直场景的核心技术,其本质是通过参数高效方法(如LoRA)在冻结主干权重的前提下注入任务知识。LoRA通过低秩矩阵分解实现轻量更新,显著降低显存与计算开销,已成为中小算力环境下落地微调的主流选择。Ludwig作为开源低代码AI框架,将模型、适配器、提示模板与训练策略解耦为声明式YAML配置,自动完成Tokenizer集成、模块发现、QLoRA优化及推理一致性保障,使LoRA微调从环境调试密集型工程降维为业务可参与的配置任务。本文基于Qwen、Mis

374

ArcMap 10.7/10.8启动加载界面后闪退?可能是这个隐藏的Normal.mxt模板文件在搞鬼

本文深入分析了ArcMap 10.7/10.8启动加载界面后闪退的问题,指出Normal.mxt模板文件损坏是常见原因。提供了从定位、删除模板文件到系统级修复的完整解决方案,帮助GIS工程师快速恢复工作流程。

weixin_28523493的博客 330

一文带你了解大模型微调框架

大模型的微调(Fine-tuning),通常是指在已经预训练好的大型语言模型(LargeLanguageModels,简称LLMs)基础上,使用特定的数据集进行进一步的训练,以使模型适应特定的任务或领域。这个过程可以让模型学习到特定领域的知识,优化其在特定NLP任务中的表现,比如情感分析、实体识别、文本分类、对话生成等。1、预训练模型:在微调之前,大模型通常已经经过大量的无监督预训练,这使得模型掌握了语言的基本统计特征和知识,具备了预测下一个词的能力。2、任务特定的数据集。

m0_48891301的博客 3338

新手必看:SMIC 0.18um PDK安装保姆级教程(附Cadence IC617环境配置)

本文提供SMIC 0.18um PDK在Cadence IC617环境下的详细安装教程,涵盖环境准备、文件解压、安装脚本运行、环境变量配置及Cadence集成验证等关键步骤,特别针对初学者常见问题提供解决方案,助力快速掌握芯片设计工具配置。

weixin_30522183的博客 491

吊打BEVFormer!GaussianBeV实战:用3D高斯开启BEV分割新范式

GaussianBeV是一种基于3D高斯建模的BEV分割新方法,在自动驾驶感知任务中实现了SOTA性能。其核心创新在于将场景元素表示为3D高斯分布,通过均值、协方差和权重精确描述物体位置、形状和置信度,相比传统BEV方法具有更强的空间建模能力。文章详细介绍了GaussianBeV的原理、环境配置、训练推理流程及其在自动驾驶和城市3D重建中的应用,并讨论了优化方向和未来发展趋势。该方法在nuScenes等数据集上表现出色,为BEV分割任务提供了新的解决方案。

m0_71589036的博客 106

模型微调之基础篇:模型微调概念以及微调框架

之前我们一直强调,大语言模型(LLM)是概率生成系统。能力边界知识时效性:模型知识截止于训练数据时间点推理局限性:本质是概率预测而非逻辑运算,复杂数学推理易出错(deepseek的架构有所不同)专业领域盲区:缺乏垂直领域知识幻觉现象:可能生成看似合理但实际错误的内容之前一直讲解如何通过各种不同的知识库进行知识片段的检索,并通过提示词临时注入到大模型。从今天开始,我会写一写微调相关的文章。定义:在预训练大模型(如GPT、BERT)的基础上,使用特定领域或任务的数据进行额外训练,使模型适应新任务。类比。

2401_85375186的博客 1816

SpringAI系列 - MCP篇(二) - MCP Server Boot Starter

此处需注意之前的。

罗小爬的技术宝书 1319

【2024最新】深入了解 大语言模型(LLM)微调方法(总结)

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。即更新模型所有权重的过程,被称为全微调。需要注意的是,与预训练一样,全微调需要足够的内存和计算预算来存储和处理训练过程中的所有梯度、优化器和其他更新组件。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。

m0_48891301的博客 3860

SGP4/SDP4详解

**SGP4** (Simplified General Perturbations Version 4) 和 **SDP4** (Simplified Deep-space Perturbations Version 4) 是一组**解析轨道预报模型**,用于预测地球轨道卫星的位置和速度。它们是北美防空司令部(NORAD)维护的**TLE**数据格式的标准配套算法。 简单来说:**TLE是卫星轨道的"身份证",而SGP4/SDP4是解读这张身份证的"说明书"**。

ScilogyHunter的博客 589

Python实战:打造学生信息管理系统

通过本教程,我们构建了一个简单的学生信息管理系统,实现了基本的添加、删除、修改和查询功能。当然,这个系统还有很多可以改进和扩展的地方,比如添加用户界面、增加数据持久化功能、支持批量操作等。简介:本文将介绍如何使用Python编写一个功能齐全的学生信息管理系统,包括添加、删除、修改和查询学生信息的基本操作。学生信息管理系统是学校日常管理中不可或缺的一部分,它能够帮助管理人员快速、准确地管理学生信息,提高工作效率。为了实现上述功能,我们可以设计一个包含学生信息的字典,并使用函数来封装各个操作。

铭渊老黄 1489

手把手教你微调大模型,零基础也能学会的AI实战教程,收藏这篇就够了

同时课程详细介绍了。

jennycisp的博客 1502

基于应用谱减法进行语音去噪的算法

在上述代码中首先通过读取语音信号和噪声信号,将两个信号都转换为频域信号,然后计算出语音信号在各频率下的功率谱和噪声信号在各频率下的功率谱,并基于此计算信噪比,接着根据信噪比计算出阈值,并将低于阈值的能量对应的频段进行清零操作,最终实现去噪处理,最后将处理后的信号转换回时域信号。该算法采用谱减法进行降噪处理,能有效地去除语音信号中的噪声,但是在实际应用中,该方法也存在一些问题,如会对语音信号的高频部分产生影响,所以需要在应用过程中进行适当的调整。

weixin_50547796的博客 192

大模型微调之基础篇:大模型微调概念以及微调框架

在大模型微调领域,存在多种框架,每个框架都有其独特的优势和局限性。下面介绍几种常见的微调框架,包括示例代码和适用模型,帮助你根据任务需求选择最合适的框架。

zhishi0000的博客 2088

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Ludwig: 使用 LoRA 进行 LLM 微调的全面指南

自然语言处理(NLP)和人工智能(AI)的发展对该领域产生了重大影响。这些模型可以理解和生成类似人类的文本,从而实现了诸如聊天机器人和文档摘要等应用。然而,为了充分利用它们的功能,需要针对特定用例进行微调。Ludwig 是一个低代码框架,用于创建自定义的 AI 模型,包括 LLM 和深度神经网络。本文提供了使用 Ludwig 进行 LLM 微调的全面指南,重点介绍如何为实际场景创建最先进的模型。Ludwig以其用户友好的低代码方法而闻名,支持各种机器学习(ML)和深度学习应用。这种灵活性使其成为开发人员和研

数智笔记 1053

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Ludwig大语言模型微调:从零到一的LLM定制化

Ludwig大语言模型微调:从零到一的LLM定制化 【免费下载链接】ludwig Low-code framework for building custom LLMs, neural networks, and other AI models ...

gitblog_00822的博客 709

Ludwig+LoRA零门槛微调实战:从配置到部署的全流程解析

大语言模型微调正从高门槛工程实践走向可配置化、低代码化。LoRA作为一种参数高效微调技术,通过低秩分解在不修改原始权重的前提下实现任务适配;Ludwig则将这一过程封装为声明式YAML配置,覆盖数据预处理、适配器注入、量化训练与模型服务全链路。其核心价值在于将Hugging Face生态中的复杂操作(如Q/K/V层LoRA插入、4-bit量化、梯度累积调度)转化为可理解、可调试、可复用的工程模块。尤其适合小样本场景(如百条级电力巡检文本、客服对话)和资源受限环境(单卡16GB显存)。本文结合真实项目,详解L

weixin_30463341的博客 375

Ludwig 高级 PEFT 适配器实战指南:从 PiSSA、TinyLoRA 到 VBLoRA 的低资源大模型微调全解

本指南以 [examples/peft_advanced](https://link.gitcode.com/i/f9c0cabd5af2015dd4801e3035b0449c) 目录为骨架,系统讲解 Ludwig(Low-code framework for building custom LLMs, neural networks, and other AI models)在参数高效微调(P

gitblog_00203的博客 320

显存直降75%:Llama2-7B 4位量化微调全流程,用Ludwig实现低门槛LLM定制训练

你还在为Llama2微调时24GB显存的硬性要求发愁?还在因 quantization(量化)参数配置复杂望而却步?本文将带你用Ludwig框架实现4位量化的Llama2-7B模型微调,显存占用从24GB降至6GB,仅需3步即可完成从环境配置到模型部署的全流程。读完本文你将掌握:4位量化原理与实现、Ludwig配置文件详解、低显存训练技巧、模型上传HuggingFace全流程。 ## 为什么选择...

gitblog_01027的博客 603

Ludwig 低代码 AI 框架实战指南:从声明式配置训练 LLM 到监督学习与生产化部署

Ludwig 是一个专为构建**自定义 LLM、深度神经网络与其他 AI 模型**而设计的低代码(Low-code)开源框架,本文以仓库根目录下的 [README_KR.md](https://link.gitcode.com/i/e8e8168e1f32225cad9513d470617f7f) 为骨架,结合 `ludwig/` 源码目录、`examples/` 实战示例与 `ludwig/da

gitblog_00711的博客 439

掌握大模型微调:7大平台和框架全解析,轻松实现专业级调优!

为了支持用户快速使用模型微调方法解决实际问题,各大厂商均开发了对应的支撑平台与框架,下面将对主流的开源以及闭源的7个模型微调平台和框架进行介绍。

2301_80239908的博客 1297

Ludwig 大规模 LLM 微调实战:基于 DeepSpeed ZeRO-3 与 Ray 的 BLOOM-3B 情感分类

本文以 [examples/llm_finetuning](https://link.gitcode.com/i/6466ea6e373f8b165cca5c5b06b19450) 目录下的完整示例为核心,讲解如何使用 Ludwig 的低代码配置方式,在**不编写任何机器学习代码**的前提下,借助 **DeepSpeed 模型并行**能力微调十亿参数级别的大语言模型(LLM)。示例以 BLOOM-

gitblog_00492的博客 317

情感分析API开发:用Ludwig构建高性能服务

你是否还在为这些问题困扰? - 从零构建情感分析模型需要编写数千行代码 - 模型训练与API服务部署存在技术断层 - 高性能LLM微调受限于硬件资源 本文将展示如何使用Ludwig(低代码AI框架)在100行代码内完成企业级情感分析API的全流程开发,包括数据准备、模型训练、服务部署和性能优化。 读完本文你将掌握: - 基于LLM的情感分析模型配置与训练 - Ludwig Serve服务部署与...

gitblog_00445的博客 419

大模型微调的主流平台和框架(一)

该平台的可视化界面如图5.3所示。(2)全生命周期管理:涵盖数据预处理(支持常见格式数据导入与格式化)、模型训练(多种优化训练算法)、评估(多维度指标评估模型性能)、部署(支持导出GGUF、ONNX等格式适配不同场景)等功能,提供完整的模型开发与管理流程。(1)轻量集成式服务:与Hugging Face生态紧密结合,一站式完成大语言模型从加载、微调(如LoRA/QLoRA等技术)到推理部署的流程,无缝对接Hugging Face的数据集、模型仓库及各类工具库,无需复杂的外部集成操作。

夏天又到了的专栏 1184

LoRAX大模型框架使用

本人使用lorax的过程。

glejexker的博客 1459

Llama2-7B 4bit(QLoRA)指令微调实战:基于 Ludwig 的低资源 LLM 微调指南

本指南以 Ludwig 仓库中的 [examples/llama2_7b_finetuning_4bit/README.md](https://link.gitcode.com/i/ccf1d2e6bd56d5d9f50647bfc46b1467) 为核心,完整讲解如何在一张 12 GiB 显存的 GPU(如 Nvidia T4)上,用 4bit 量化(QLoRA)方式对 Llama2-7B 进行

gitblog_01087的博客 93
上一篇: 高级RAG检索中的五种查询重写策略
下一篇: RAG 高级应用:基于 Nougat、HTML 转换与 GPT-4o 解析复杂 PDF 内嵌表格
技术狂潮AI
博客等级 码龄3年 1282粉丝 137原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术狂潮AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值