【LLM大模型】打造领域专属的大语言模型

简介

大模型具有生成和理解自然语言的强大能力,但在专属领域中,通用模型往往表现不尽如人意。为了解决这一问题,越来越多的人希望能够使用基于专业或行业领域的大语言模型,以提高回答问题的准确性。

从零开始训练一个大模型所需的算力、成本以及数据质量和数量的要求都非常高,因此并不适用于所有人。

然而,我们可以选择在已有的大模型(例如GPT系列)上进行微调。微调是指在已经训练好的大模型的基础上,使用专业领域的数据进行进一步训练。通过在原有大模型的基础上添加专业领域的数据,可以对模型进行微调,从而减少大模型出错的概率和降低模型出现幻觉的次数。这种方法不仅能够显著提升模型在特定领域的表现,还能够在一定程度上控制成本,是一种切实可行的解决方案。

在这里插入图片描述

微调模型的优点
  1. 赋予大模型新的数据

微调允许我们在已有大模型的基础上,加入特定领域的新数据,从而增强模型在该领域的知识和表现能力。例如,通过加入医学领域的数据,模型可以更准确地回答医学相关的问题。

  1. 帮助大模型修正错误信息

通用大模型在某些专业领域可能会出现错误或不准确的信息。通过微调,我们可以利用高质量的领域特定数据来修正这些错误,从而提高模型的准确性和可靠性。

  1. 微调成本可控

与从零开始训练一个大模型相比,微调所需的资源和成本大大降低。微调只需要在已有模型的基础上进行进一步训练,这使得微调的成本和算力需求更容易计算和管理,对于中小型企业和个人用户来说尤其实用。

微调前的准备工作

在开始微调之前,需要确认微调的方向并收集相应的专业知识,以便模型能够学习该领域的专业内容,这样,经过多次微调后,模型才能给出令人满意的结果。需要包含如下步骤:

  1. 确定微调方向:明确希望模型在什么领域表现出色(例如,医学、法律、金融等)。
  2. 收集数据:收集该领域的专业知识和数据,确保数据的准确性和全面性。
  3. 准备数据格式:
    • 整合数据,使其符合 OpenAI 可接受的格式,即一组演示对话。
    • 对话应包括希望在实际使用过程中出现的相应类型。
  4. 格式化对话
    • 数据需要符合 Chat Completions 的消息格式。
    • 每条消息应包含角色、内容和可选名称。
    • 添加预期和辅助消息,帮助模型提供更理想的响应。

可微调的模型如下:

  • gpt-3.5-turbo-0125(推荐)
  • gpt-3.5-turbo-1106
  • gpt-3.5-turbo-0613
  • babbage-002
  • davinci-002(实验)
  • gpt-4o-2024-05-13

数据示例格式如下:

代码语言:python

代码运行次数:0

**Cloud Studio代码运行

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already."}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?"}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters."}]}
模型微调过程

示例文件下载:点击下载 jsonl 文件

在准备好数据之后,就可以开始模型的微调。主要分为以下几个步骤:

  1. 上传数据

上述准备好的数据可以保存进jsonl文件,主要在这个文件中,每行都是完整的一条json数据,即每一行都是完整的一次对话。使用文件 API 上传文件,以便与微调作业一起使用。

代码语言:python

代码运行次数:0

Cloud Studio代码运行

from openai import OpenAI
client=OpenAI()
client.files.create(
    file=open('<jsonl文件路径>','rb'),
    purpose='fine-tune'
)

一次上传文件的大小最大为 1G,但是不建议使用这么大的数据量进行微调,上传文件需要时间并且不太可能需要那么大的数据量才能看到改进。

  1. 微调模型

确保数据集上传正确后,就可以创建微调作业,可以通过界面化或者编程的方式来创建微调作业。示例如下:

代码语言:python

代码运行次数:0

Cloud Studio代码运行

from openai import OpenAI
client = OpenAI()

client.fine_tuning.jobs.create(
  training_file="file-abc123", # 训练文件上传到 OpenAI API 时返回的文件 ID。可以使用后缀参数自定义微调模型的名称
  model="gpt-3.5-turbo" # 要微调的模型的名称
)
  1. 查看微调状态

使用上述创建微调任务后,一般情况下会有一个等待微调成功的时间,可以使用以下的 API 随时查看微调的结果:

代码语言:python

代码运行次数:0

Cloud Studio代码运行

# 检查微调任务的状态
job_retrieved = client.fine_tuning.jobs.retrieve('ftjob-abc123')
# 列出存在的10条job
client.fine_tuning.jobs.list(limit=10)
# 列出微调中的10条事件
client.fine_tuning.jobs.list_events(fine_tuning_job_id="ftjob-abc123", limit=10)
# 删除一个微调的模型
client.models.delete("ft:gpt-3.5-turbo:abc276")
  1. 模型验证与测试

等待模型微调成功后,即可直接调用该模型进行测试,为了方便看出差异,可以同时调用 gpt-3.5-turbo 和微调后的模型并且询问同一个问题,便能看出微调的效果:

代码语言:python

代码运行次数:0

Cloud Studio代码运行

completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
   # 修改调用的模型类型
   # model="<微调后的模型>",
    messages=[
        {"role": "system", "content": "<给出系统角色需要提前给出的提问背景信息>"},
        {"role": "user", "content": "<用户提问的问题>"}
    ],
   #  控制生成文本时的随机性
    temperature=0.7,
   #  生成的响应数量
    n=1,
   #  用于终止生成的令牌列表或字符串。
    stop=None
)
# 打印看出答案
print(completion_fine.choices[0].message.content)
微调后数据的评估

为了完成对模型的微调,需考虑到一次微调的结果很可能不如预期,因此可以通过不断调整训练数据集来提高模型输出的质量。具体可参考内容如下:

检查现有示例:

  1. 确保训练示例包含响应所需的信息:每个示例应明确并充分地涵盖预期地回答内容,确保模型有足够的信息来生成准确的响应。
  2. 查看训练示例中的一致性:确保所有示例在格式、语调和结构上保持一致,以便模型能从中学习到统一的风格和逻辑。
  3. 确保所有实例都使用相同的格式:一致的格式有助于模型更好的理解和学习。

追加新的示例:

  1. 收集预期不对的示例:将模型输出的预期不正确的示例收集起来,并将修改后的预期回答作为新的训练示例,补充进下一次微调的数据集中。
  2. 检查现有示例:根据回答的内容判断示例是否存在语法、逻辑等问题,确保每个示例都是高质量的。
  3. 考虑数据地平衡性和多样性:不同类型的回答应该均衡分布,并且包含各种不同类型的内容,以确保模型在各种情境下都能生成适当的响应。
总结
  • 微调的概念
  • 微调的优点
  • 微调前的准备工作
  • 模型微调过程
  • 微调后数据的评估

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值