首页 > 其他分享 >【大模型指令微调: 从零学会炼丹】第一章: 微调数据集构建

【大模型指令微调: 从零学会炼丹】第一章: 微调数据集构建

时间:2024-09-30 15:23:05浏览次数:10  
标签:微调 模型 instruction 第一章 指令 output input 炼丹 data

大模型指令微调: 从零学会炼丹

系列目录

第一章: 微调数据集构建

文章目录

第一章: 微调数据集构建

Alpaca 格式

Alpaca格式是一种用于指令微调大模型的数据集格式。其主要有以下特点和结构:

  1. 基本结构与组成部分
    • instruction(指令):这是对模型的具体指令或任务描述,告诉模型需要完成什么样的任务,例如“用‘黎明’、‘天空’和‘广阔’这三个词组成一个句子”“解释一下相对论的基本原理”等。
    • input(输入,可选):一些任务可能需要额外的输入信息,该部分为模型提供了除指令之外的相关输入内容。比如在“计算这些物品的总费用”的指令中,输入部分可以是“汽车-$3000,衣服-$100,书-$20”这样的具体物品价格信息。但不是所有的指令都需要输入部分,如果指令本身已经足够明确,不需要额外信息,那么这部分可以为空。
    • output(输出):这是模型根据指令和输入所生成的回答或结果。例如对于上述两个例子,对应的输出分别是“随着黎明的到来,天空逐渐明亮,一片广阔的视野展现在眼前。”和“汽车、衣服和书的总费用为$3000 + $100 + $20 = $3120。”
  2. 数据存储形式:通常以 JSON 文件格式存储。这样方便数据的读取、处理和在不同的机器学习框架中使用。例如一个简单的 Alpaca 格式的 JSON 数据示例如下:
[
  {
    "instruction": "用“梦想”、“坚持”和“成功”这三个词组成一个句子。",
    "input": "",
    "output": "只有坚持追逐梦想,才能最终取得成功。"
  },
  {
    "instruction": "对《三国演义》这本书做一个简短的介绍。",
    "input": "",
    "output": "《三国演义》是中国古典四大名著之一,描写了从东汉末年到西晋初年之间近百年的历史风云,诉说了东汉末年的群雄割据混战和魏、蜀、吴三国之间的政治和军事斗争,塑造了一群叱咤风云的三国英雄人物。"
  }
]
  1. 适用场景:适合于指令跟随形式的任务,即让模型按照给定的指令进行回答或操作。这种格式可以帮助模型更好地理解人类的指令意图,从而提高模型在各种任务上的表现,例如文本生成、问答、推理计算等任务。

总的来说,Alpaca 格式为大模型的指令微调提供了一种有效的数据组织方式,通过大量的指令数据对模型进行训练,可以使模型更好地适应各种具体的任务需求。不过,在实际应用中,可能需要根据具体的任务和模型对数据进行进一步的清洗、筛选和优化。

编写Instruction

  • 因为我们的任务只有一个, 所以可以直接编写一个instruction, 后续直接加载到对应的数据集中即可
  • 对于多种任务的场景, 可以将instruction 作为一列放到数据集中
instruction-key
#Role
You are a professional, rigorous and efficient data analyst. You are good at using professional knowledge in the computer field and rich background knowledge to quickly and accurately find the matching and non-matching parts from the given [BOM] table and [def] table, and output the results in a standardized format.

读取本地数据

在本地构建了一个带有input 和output 的数据文件, 通过pandas 和 datasets 读取并将其转换为dataset格式

import pandas as pd
from datasets import Dataset

excel_data = pd.read_excel('your_excel_file_path.xlsx')
dataset = Dataset.from_pandas(excel_data)

定义format 函数

为了指导我们的模型,我们需要将我们的结构化示例转换为通过指令描述的任务集合。我们定义一个 formatting_function ,它接受一个样本并返回一个符合格式指令的字符串。

def create_prompt_template(data):
    INTRO_BLURB = "Below is an instruction that describes a task. Write a response that appropriately completes the request."
    INPUT_KEY = "### Input:"
    RESPONSE_KEY = "### Output:"
    END_KEY = "### End"

    blurb = f"\n{INTRO_BLURB}\n{instruction_key}"
    input = f"{INPUT_KEY}\n{data['input']}"
    response = f"{RESPONSE_KEY}\n{data['output']}"
    end = f"{END_KEY}"

    parts = [part for part in [blurb, input, response, end] if part]

    formatted_prompt = "\n\n".join(parts)
    data["text"] = formatted_prompt

    return data

使用以上的方法可以将一行数据中的input,output结合prompt整合为一段完整的指令, 后续调用这个数据进行微调

标签:微调,模型,instruction,第一章,指令,output,input,炼丹,data
From: https://blog.csdn.net/weixin_42980968/article/details/142655039

相关文章

  • 阅文小说——控制领域的名人们:第一章起名天才詹姆斯·瓦特
    “在瓦特发明离心调速器之前,没有人将舵手与控制论产生联系。”——作者注。瓦特蒸汽机中的离心调速器:从“掌舵人”到工业自动化的先驱在工业革命的浪潮中,詹姆斯·瓦特的名字无疑是一座丰碑。他改良的蒸汽机不仅极大地推动了生产力的飞跃,还孕育了现代自动化控制技术的雏形。其......
  • MySQL数据库初级学习笔记---第一章-数据库概述
    第一章-数据库概述聊聊数据库数据库是一门独立的学科,只要是做软件开发的,数据库都要学。数据库(电子化的文件柜)是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。它的存储空间很大,可以存放百万条......
  • 基于qwen2.5 手把手实战 自定义数据集 微调(llama-factory)
    基于qwen2.5手把手实战自定义数据集微调(llama-factory)准备工作1.数据集准备(例:民法典.txt)2.服务器准备(阿里云DSW白嫖)3.环境配置pip升级模型下载微调助手4.数据集处理脚本文件4.1文本分割(bert-base-chinese)4.2数据集生成4.3.1数据集转换(只有一个数据集)alpaca格式......
  • 一文详解几种常见本地大模型个人知识库工具部署、微调及对比选型
    前言近年来,大模型在AI领域崭露头角,成为技术创新的重要驱动力。从AlphaGo的胜利到GPT系列的推出,大模型展现出了强大的语言生成、理解和多任务处理能力,预示着智能化转型的新阶段。然而,要将大模型的潜力转化为实际生产力,需要克服理论到实践的鸿沟,实现从实验室到现实世界的落地......
  • 第一章数据管理【4’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)
    1、以下哪个不是DAMA-DMBOK的数据管理框架图?(知识点:第一章数据管理)A.DAMA车轮图B.DMBOK金字塔图C.环境因素六边形图D.知识领域语境关系图参考答案:B题目解析:DMBOK2第一章数据管理1.3.3,DAMA-DMBOK框架2、以下关于数据管理原则描述正确的是?(知识点:第一章数据管理)A.......
  • 系统集成项目管理工程师笔记1 - 第一章 信息化发展
    基础知识第一章信息化发展1.1信息与信息化1.1.1信息基础信息物质、能量以及其属性的标示的集合,是确定性的增加。以物质介质为载体,传递和反映世界各种事物存在方式、运动状态等的表征。信息不是物质,也不是能力。以一种普遍形式,表达物质运动规律,在客观世界中大量存在、产......
  • 【赛博炼丹】深度学习软件安装及环境配置:Anaconda、CUDA、cuDNN、PyTorch及PyCharm
    前言建议大伙自己建一个文件夹(不能有中文),专门放深度学习的软件,后续添加环境,比较方便。1.安装Anaconda1.1下载AnacondaAnaconda官网:https://www.anaconda.com清华大学镜像网站:Indexof/anaconda/archive/|清华大学开源软件镜像站|TsinghuaOpenSourceMirror安装A......
  • 解析 Llama-Factory:从微调到推理的架构
    轻松搞定大模型微调与推理的开源神器©作者|DWT来源|神州问学一、前言:Llama-Factory的背景与重要性在人工智能(AI)领域,尤其是自然语言处理(NLP)技术迅速发展的今天,如何高效地微调和部署大型语言模型(LLM)成为了研究和应用的热点。Llama-Factory作为一个开源的微调框架,正是在......
  • Lora微调的Bug
    问题这里,记录一下在使用LoRa进行微调时遇到的错误。设备不一致的问题ValueError:CaughtValueErrorinreplica0ondevice0.这个问题时有由于多块GPU不在一个设备上引起的。解决方法很简单。使用当个GPU,最直接的操作就是CUDA_VISIBLE_DEVICES=0pythonxxx.py。制定GPU的......
  • RLHF 的启示:微调 LSTM 能更好预测股票?
    作者:老余捞鱼原创不易,转载请标明出处及原作者。写在前面的话:    在财务预测领域,准确预测股票价格是一项具有挑战性但至关重要的任务。传统方法通常难以应对股票市场固有的波动性和复杂性。这篇文章介绍了一种创新方法,该方法将长短期记忆(LSTM)网络与基于评分的......