AI大模型实战训练营-大模型原理及训练技巧、大模型微调的核心原理

AI大模型实战训练营-大模型原理及训练技巧、大模型微调的核心原理

前言

在当前信息技术迅猛发展的时代,知识库的构建与应用已成为企业竞争的关键。随着自然语言处理技术的不断进步,基于微调的企业级知识库改造落地方案受到越来越多的关注。在前面的系列篇章中我们分别实践了基于CVP架构-企业级知识库实战落地和基于基于私有模型GLM-企业级知识库开发实战;本文将深入探讨和实践一种基于微调技术的企业级知识库改造方法,以期为企业提供更加高效、安全和可靠的知识管理解决方案。

一、概述

企业知识库架构方案,通常有3中可选方案:
1)基于在线的大模型如ChatGPT,加上Embedding技术,通过更新迭代向量数据库;开发、运维简单,开发门槛比较低;仅需少量的AI知识技能储备,但是需要将知识开放给大模型;
2)基于开源的大模型如GLM,Llama,自己独立部署,同样加上Embedding技术,通过更新迭代向量数据库;开发、运维简单,需要提供硬件GPU资源保障;需要较少的AI知识技能储备,可以保障知识库的隐私安全;
3)基于开源的大模型如GLM,Llama,自己独立部署,采用微调技术,再同样加上Embedding技术,通过更新迭代向量数据库;开发、运维简单,需要提供硬件GPU资源保障;需要较深的AI知识技能储备,可以保障知识库的隐私安全;可以自己定制化扩展。( 如果知识库更新频率较低,可以不需要引入向量数据库作为补充,直接定期微调即可)

二、知识库核心架构回顾(RAG)

1、知识数据向量化

首先,通过文档加载器加载本地知识库数据,然后使用文本拆分器将大型文档拆分为较小的块,便于后续处理。接着,对拆分的数据块进行Embedding向量化处理,最后将向量化后的数据存储到向量数据库中以便于检索。

2、知识数据检索返回

根据用户输入,使用检索器从向量数据库中检索相关的数据块。然后,利用包含问题和检索到的数据的提示,交给ChatModel / LLM(聊天模型/语言生成模型)生成答案。
在这里插入图片描述

三、技术选型

1、模型选择ChatGLM3-6B

1)开源的:需要选择开源的项目方便自主扩展。
2)高性能的:选择各方面性能指标比较好的,能够提升用户体验。
3)可商用的:在不增加额外成本的前提下,保证模型的商用可行性。
4)低成本部署的:部署时要能够以最低成本代价部署运行知识库,降低公司成本开支。
5)中文支持:需要选择对我母语中文支持性比较好的模型,能够更好的解析理解中文语义。
注意:选择ChatGLM3-6B更主要的原因是方便自己能够跑起来(本钱不够)

企业实践可以考虑通义千问-72B(Qwen-72B),阿里云研发的通义千问大模型系列的720亿参数规模的模型。Qwen-72B是基于Transformer的大语言模型,
在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。同时,在Qwen-72B的基础上,还使用对齐机制打造了基于大语言模型的AI助手Qwen-72B-Chat。
主要有以下特点
1)大规模高质量训练语料:使用超过3万亿tokens的数据进行预训练,包含高质量中、英、多语言、代码、数学等数据,涵盖通用及专业领域的训练语料。通过大量对比实验对预训练语料分布进行了优化。
2)强大的性能:Qwen-72B在多个中英文下游评测任务上(涵盖常识推理、代码、数学、翻译等),效果显著超越现有的开源模型。具体评测结果请详见下文。
3)覆盖更全面的词表:相比目前以中英词表为主的开源模型,Qwen-72B使用了约15万大小的词表。该词表对多语言更加友好,方便用户在不扩展词表的情况下对部分语种进行能力增强和扩展。
4)更长的上下文支持:Qwen-72B支持32k的上下文长度。
5)系统指令跟随:Qwen-72B-Chat可以通过调整系统指令,实现角色扮演,语言风格迁移,任务设定,和行为设定等能力。*
资源要求:运行FP16模型需要多卡至少144GB显存(例如2xA100-80G或5xV100-32G);运行Int4模型(生产环境不建议采用量化技术,避免影响准确度)
至少需要48GB显存(例如1xA100-80G或2xV100-32G)

2、Embedding模型选择

我们要选择一个开源免费的、中文支持性比较好的,场景合适的,各方面排名靠前的嵌入模型。
MTEB排行榜:https://huggingface.co/spaces/mteb/leaderboard ,MTEB是衡量文本嵌入模型在各种嵌入任务上性能的重要基准;可从排行榜中选相应的Enbedding模型;
本次从中选择使用比较广泛的 bge-large-zh-v1.5 (同样也是智谱AI的开源模型),常用的还有text2vec-base-chinese
在这里插入图片描述

四、改造后的技术选型

1)LLM模型:ChatGLM3-6B
2)Embedding模型:bge-large-zh-v

<think>我们有一定基础的Python学习者想要转向AI大模型领域,需要推荐中文教程。这里的关键是:中文、大模型相关、适合有Python基础的人。推荐教程应当覆盖以下内容:1.深度学习基础(神经网络、反向传播等)2.常见的深度学习框架(如PyTorch、TensorFlow)3.自然语言处理(NLP)基础4.大模型核心技术(如Transformer、BERT、GPT等)5.大模型训练微调与应用注意:教程应当是中文的,并且适合有一定Python基础的学习者。下面给出具体推荐:</think>### Python AI大模型学习中文教程推荐(适合有基础者) #### **核心学习路径** 1. **深度学习基础** - 必学:神经网络原理、反向传播、梯度下降 - 框架选择:PyTorch(研究首选)或 TensorFlow(工业部署常用) 2. **大模型核心技术** - Transformer架构(注意力机制、位置编码) -训练方法(BERT的MLM、GPT的自回归) - 微调技术(LoRA、Prompt Tuning) 3. **实践方向** - NLP:文本生成、机器翻译 - 多模态:CLIP、Stable Diffusion - 模型压缩:量化、蒸馏 #### **中文优质教程** 1. **书籍** - 《动手学深度学习》(PyTorch版) - 作者:李沐等([电子版](https://zh-v2.d2l.ai/)) - 特点:Jupyter notebook交互式学习,含代码实现 - 《Python深度学习:基于PyTorch》 - 实战案例:从CNN到Transformer 2. **视频课程** - **百度飞桨**:[PaddlePaddle深度学习实战](https://aistudio.baidu.com/) - 特色:提供免费GPU算力,含大模型训练教程 - **黑马程序员**:[AI大模型实战](https://www.bilibili.com/video/BV1QT4y1Z7cv) - 内容:Hugging Face Transformers库详解 + Llama微调 3. **实践平台** - **华为ModelArts**:[大模型开发套件](https://developer.huaweicloud.com/) - 提供盘古大模型等中文预训练模型 - **阿里云天池**:[大模型训练营](https://tianchi.aliyun.com/) - 比赛:中文NLP任务实战 #### **关键代码示例(Transformer实现片段)** ```python import torch import torch.nn as nn class MultiHeadAttention(nn.Module): def __init__(self, d_model, num_heads): super().__init__() self.d_model = d_model self.num_heads = num_heads self.head_dim = d_model // num_heads # 线性变换层 self.W_q = nn.Linear(d_model, d_model) self.W_k = nn.Linear(d_model, d_model) self.W_v = nn.Linear(d_model, d_model) self.W_o = nn.Linear(d_model, d_model) def forward(self, Q, K, V, mask=None): # 维度转换 [batch, seq_len, d_model] -> [batch, num_heads, seq_len, head_dim] Q = self.W_q(Q).view(Q.size(0), -1, self.num_heads, self.head_dim).transpose(1,2) K = self.W_k(K).view(K.size(0), -1, self.num_heads, self.head_dim).transpose(1,2) V = self.W_v(V).view(V.size(0), -1, self.num_heads, self.head_dim).transpose(1,2) # 注意力分数 scores = torch.matmul(Q, K.transpose(-2, -1)) / torch.sqrt(torch.tensor(self.head_dim, dtype=torch.float32)) if mask is not None: scores = scores.masked_fill(mask == 0, -1e9) # 注意力权重 attn_weights = torch.softmax(scores, dim=-1) output = torch.matmul(attn_weights, V) # 输出转换 output = output.transpose(1,2).contiguous().view(output.size(0), -1, self.d_model) return self.W_o(output) # 测试 d_model = 512 num_heads = 8 attn = MultiHeadAttention(d_model, num_heads) x = torch.randn(2, 10, d_model) # [batch_size, seq_len, d_model] print(attn(x, x, x).shape) # 输出: torch.Size([2, 10, 512]) ``` #### **学习建议** 1. **分阶段突破** ```mermaid graph LR A[PyTorch基础] --> B[Transformer实现] B --> C[HuggingFace实战] C --> D[模型微调] D --> E[分布式训练] ``` 2. **避坑指南** - 硬件不足时:使用Colab免费GPU或云平台(AutoDL) - 中文任务:优先选择`bert-base-chinese`等中文预训练模型 - 调试技巧:用`torchsummary`检查模型结构 #### **为什么选择这些资源?** - **李沐教程**:将数学原理转化为可运行代码 - **飞桨/AI Studio**:提供中文环境和大模型工具链 - **Hugging Face**:生态完善(200,000+预训练模型) --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值