背景
随着大语言模型(LLM)在各行业的广泛应用,企业和研究团队面临将通用模型适配特定领域的迫切需求。通用大语言模型在处理特定领域任务时,往往无法满足深度需求。例如,在闭源编程语言的应用中,现有开源模型对其语法和语义的理解不足,导致在代码生成和纠错等任务中表现不佳。因此,注入领域知识并训练专属的大语言模型,成为提升开发效率和代码质量的关键步骤。
本文基于作者的工作经验,总结了如何在现有通用模型的基础上,通过数据准备、模型训练、部署、评估及持续迭代,构建具备特定领域知识的大语言模型。
为什么要向基座模型注入领域知识
挑战一:有限的领域知识
现有的预训练模型(如 GPT-4、Llama 3)主要基于通用语料库进行训练,缺乏对小众语言或专有领域的深入理解,导致模型在处理编程代码时表现不佳。
挑战二:数据安全与合规
企业在处理敏感数据时,必须遵循严格的数据主权和合规性要求。将私有业务数据上传至第三方云服务存在安全隐患,因此需要在本地环境中完成数据处理与模型训练。
挑战三:OpenAI微调的局限
主流商用 API 的微调方案通常较为基础,难以实现深层次的对齐和优化。对于需要高度定制化的领域模型,这种方法难以满足需求。
注入知识两种方法
在实际项目中,常见的将领域知识注入基座模型的方法主要包括 微调 (Fine-Tuning) 和 检索增强生成 (RAG)。下文将详细对比这些方法,以帮助选择最适合的策略。
方法对比
微调 (Fine-Tuning)
核心思路
通过持续预训练、监督微调和偏好对齐,直接更新模型参数,使其掌握特定领域知识和任务模式。
技术细节
- 继续预训练 (CPT):在大量领域特定的无监督数据上继续预训练基座模型。
- 监督微调 (SFT):使用高质量的标注数据进行有监督微调。
- 偏好对齐 (DPO):通过用户反馈优化模型输出。
- 参数微调方法:使用全参数微调或者结合 LoRA 等 PEFT 方法冻结部分参数并添加 adapter。
优势
- 深度定制:模型内部权重更新,能够深入理解领域知识。
- 无需依赖外部检索:推理时不需额外的知识库支持,减少延迟和总的 token 消耗。
- 提升整体性能:在特定领域任务上表现显著优于通用模型。
劣势
- 高计算成本:需要大量计算资源进行训练,尤其是 CPT 阶段。
- 训练周期长:从数据准备到模型训练再到优化,需要较长时间。
- 灾难性遗忘:模型可能在学习新知识的同时,遗忘原有的通用能力。
检索增强生成 (RAG)
核心思路
构建领域知识库,在推理阶段检索相关文档,辅助模型生成更准确的回答,无需直接改变模型参数。
技术细节
- 数据处理:对领域文档进行预处理,按块大小和重叠量切分。
- 向量化:使用文本嵌入模型将文本块转换为向量,存储在向量数据库中。
- 召回:推理时通过相似度搜索召回相关文档,作为上下文信息或 few-shot 示例提供给基座模型。
优势
- 保持通用能力:模型参数不变,仍保留通用语言能力。
- 快速更新:知识库可动态更新,无需重新训练模型。
- 计算效率:避免大规模训练,节省计算资源。
劣势
- 依赖知识库质量:检索到的文档质量直接影响回答质量。
- 推理速度:检索过程可能增加推理延迟,并且需要更多的 token。
- 知识覆盖有限:模型内部知识仍受限于基座模型的预训练数据。
模型与训练资源
基座模型
以 Llama 3 系列 为例,其具有以下特点:
参数规模
Llama 3 系列涵盖从 1B 到 405B 参数的模型,广泛支持多语言处理、代码生成、推理,以及视觉和文本任务。小型模型(1B 和 3B)经过专门优化,适合边缘和移动设备,支持最大 128K 的上下文窗口,可高效处理本地任务,例如摘要生成、指令执行和文本重写。多模态能力
Llama 3 的视觉模型(11B 和 90B 参数)在图像理解任务上的表现优于许多封闭模型,同时支持图像、视频和语音的多模态处理。所有模型均支持微调,便于针对特定领域进行定制化开发。开源与社区支持
Llama 3 系列模型及其权重以开源形式发布,可通过 llama.com 和 Hugging Face 平台 获取,为开发者提供便捷的访问和应用支持。数据集限制
虽然 Llama 3 模型本身以开源形式发布,但其训练所使用的数据集并未开源。因此,严格来说,Llama 3 并非完全开源的模型。这一限制可能会在解决灾难性遗忘问题时带来挑战,因为难以获得与原始训练完全一致的数据集。
训练资源
训练大型语言模型需要强大的计算资源和高效的分布式训练框架。
硬件资源
- GPU 集群:建议使用 NVIDIA A100 或 H100 GPU,4卡或8卡配置,通过 NVLink 或 InfiniBand 提升通信带宽。
- 存储资源:高性能 SSD(如 NVMe)以支持快速的数据读写。
软件框架
- 并行框架:DeepSpeed、Megatron-LM 等分布式训练框架,支持大规模模型训练。
- 推理框架:vLLM、ollama 等,优化推理速度和资源利用。
并行策略
- 数据并行:适用于单卡可容纳模型的情况,通过 DeepSpeed 的 ZeRO Stage 0 实现。
- 模型并行、流水线并行和张量并行:单卡无法容纳时,采用 ZeRO Stage 1、2、3 进行优化,或使用 ZeRO-Infinity 将参数和优化器状态部分卸载到 CPU 或 NVMe。
DeepSpeed ZeRO 分片策略对比
为了更好地理解 DeepSpeed 的 ZeRO 分片策略,以下将分为不同的部分进行详细说明。
ZeRO Stage 分片策略
ZeRO Stage | 描述 | 显存占用 | 训练速度 |
---|---|---|---|
ZeRO-0 | 纯数据并行,不进行任何分片。所有优化器状态、梯度和参数在每张 GPU 上完全复制。 | 最高 | 最快 |
ZeRO-1 | 分片优化器状态(例如动量和二阶矩),减少显存占用,但梯度和参数仍为数据并行。 | 高 | 略慢于 ZeRO-0 |
ZeRO-2 | 分片优化器状态和梯度,在 ZeRO-1 的基础上进一步减少显存占用。 | 中 | 慢于 ZeRO-1 |
ZeRO-3 | 分片优化器状态、梯度和模型参数,显存占用最低,适合大规模模型。但需要在前向和后向时进行参数广播(All-Gather/All-Reduce),通信量显著增加。 | 低 | 明显慢于 ZeRO-2,取决于模型大小和网络带宽 |
Offload 策略
Offload 类型 | 描述 | 显存占用 | 训练速度 |
---|---|---|---|
ZeRO-1 + CPU Offload | 在 ZeRO-1 的基础上,将优化器状态卸载到 CPU 内存;可进一步降低 GPU 显存占用,但需要 CPU-GPU 数据传输,依赖 PCIe 带宽,且占用 CPU 内存。 | 中偏低 | 慢于 ZeRO-1,受 CPU 性能和 PCIe 带宽影响 |
ZeRO-2 + CPU Offload | 在 ZeRO-2 的基础上,将优化器状态卸载到 CPU 内存;对较大模型进一步降低 GPU 显存占用,但会增加 CPU-GPU 数据传输开销。 | 较低 | 慢于 ZeRO-2,受 CPU 性能和 PCIe 带宽影响 |
ZeRO-3 + CPU Offload | 在 ZeRO-3 的基础上,将优化器状态和模型参数卸载到 CPU;GPU 显存占用最小,但 CPU-GPU 通信量极大,且 CPU 带宽远小于 GPU-GPU 通信。 | 极低 | 非常慢 |
ZeRO-Infinity (NVMe Offload) | 基于 ZeRO-3,将优化器状态、梯度和参数卸载到 NVMe,突破 CPU 内存限制,适合超大规模模型;性能高度依赖 NVMe 并行读写速度。 | 极低需 NVMe 支持 | 慢于 ZeRO-3,但通常优于 ZeRO-3 + CPU Offload |
通信量与性能影响
ZeRO-0/1/2
- 通信以 梯度同步 为主,使用 All-Reduce 操作,通信量相对较低。
ZeRO-3
- 需要对模型参数进行 All-Gather/All-Reduce 操作,通信量显著增大,网络带宽成为关键瓶颈,前后传播时的参数广播进一步加剧通信负担。
CPU Offload(ZeRO-1/2/3 + CPU)
- 卸载优化器状态或参数到 CPU,减少 GPU 显存占用。
- 通信量主要来自 CPU <-> GPU 数据传输,带宽远低于 GPU-GPU 通信,极易造成性能瓶颈,尤其在 ZeRO-3 场景下。
NVMe Offload(ZeRO-Infinity)
- 在 ZeRO-3 的基础上进一步卸载至 NVMe,突破 CPU 内存限制以支持超大规模模型。
- 性能强烈依赖 NVMe I/O 带宽 和并行度,若 NVMe 速度足够高,通常优于 CPU Offload;但在 I/O 性能较弱或高延迟场景下,效果可能不佳。
硬件与配置影响
硬件限制
- PCIe 带宽、网络带宽、NVMe I/O 等对 Offload 性能有显著影响,需根据硬件环境选择最佳策略。
补充说明
- CPU Offload 利用 CPU 内存并通过 PCIe 传输数据;NVMe Offload 则将状态保存于 NVMe 设备。
- NVMe Offload 在 NVMe I/O 性能充足 时通常优于 CPU Offload,但需避免因 I/O 性能不足导致的性能瓶颈。
与官方文档对照
- 建议结合 DeepSpeed 官方文档 获取最新、最准确的配置参数和性能调优建议。
数据准备:决定训练成败的核心
数据质量直接决定了模型的性能。数据准备包括数据收集、清洗、去重、分类与配比、脱敏等步骤。
预训练数据
数据来源
- 公开数据集:如:the-stack-v2、Common Crawl 等。
- 企业自有数据:内部文档、代码库、业务日志等。
- 网络爬虫:通过爬虫技术采集领域相关的网页内容。
数据规模
- 建议使用至少数亿到数十亿个 token,以确保模型能够充分学习领域知识。
- 当数据量不足时,模型效果可能受限,建议采用数据增强的方法来补充数据。
数据处理
数据预处理
- 格式统一:对来自多个数据源的无标注大量语料进行处理,确保其格式一致。推荐使用高效的存储格式,如 Parquet,以提高数据读取和处理的效率。
数据去重
- 检测方法:使用 MinHash、SimHash 或余弦相似度等算法进行近似重复检测。
- 处理粒度:可选择按句子、段落或文档级别去重,根据任务需求灵活调整。
- 相似度阈值:设定合理的相似度阈值(如 0.9),删除重复度高于阈值的文本,确保数据多样性。
数据清洗
- 文本过滤:结合规则和模型评分器(如 BERT/RoBERTa)去除乱码、拼写错误和低质量文本。
- 格式化处理:优先使用 JSON 格式处理数据,确保代码、Markdown 和 LaTeX 等特殊格式的准确性。
数据脱敏
- 隐私保护:匿名化或去除人名、电话号码、邮箱、密码等敏感信息,确保数据合规。
- 不合规内容过滤:剔除含有违法、色情或种族歧视等内容的数据块。
数据混合与配比
- 比例控制:例如,将 70% 的领域特定数据与 30% 的通用数据相结合,避免模型遗忘通用能力。
- 任务类型:确保数据包含代码生成、问答对话、文档摘要、多轮对话和数学推理等多种任务类型。
数据顺序
- 逐步引导:采用课程学习(Curriculum Learning)方法,从简单、干净的数据开始训练,逐步引入更复杂或噪声较高的数据,优化模型的学习效率和收敛路径。
- 语义连贯性:利用上下文预训练(In-context Pretraining)技术,将语义相似的文档拼接在一起,增强上下文一致性,提升模型的语义理解深度与泛化能力。
监督微调数据
数据格式
可采用 Alpaca 或 Vicuna 风格,比如结构化为 [instruction, input, output] 的单轮和多轮对话。
- 规模:几千条到几十万条,具体根据项目需求和计算资源决定。
- 质量:确保数据的高质量和多样性,避免模型学习到错误或偏见。
数据构建
在数据构建过程中,我们首先收集日常业务数据,并与业务专家共同构建基础问题。随后,利用大语言模型进行数据增强,以提升数据的多样性和鲁棒性。以下是具体的数据增强策略:
数据增强策略
表达多样化
通过大语言模型对现有数据进行改写,采用同义词替换和语法变换等方法,增加数据的多样性。鲁棒性增强
构建包含拼写错误、混合语言等输入的提示(Prompt),以模拟真实场景,同时确保生成答案的高质量。知识蒸馏
利用 GPT-4、Claude 等大型语言模型进行知识蒸馏,生成符合需求的问答数据对。复杂任务设计
针对复杂场景(如多轮对话、逻辑推理等),手动设计高质量数据,以覆盖模型的能力边界。数据生成管道
构建自动化数据生成流水线,将数据生成、筛选、格式化和校验等环节集成,提高整体效率。
关键要点
- 任务类型标注:每条数据标注明确的任务类型,便于后续精细化分析和调优。
- 多轮对话与话题切换:构建多轮对话中上下文关联与话题转换的数据,确保模型能够学习话题切换与上下文关联的能力。
- 思维链(Chain of Thought)策略:分类、推理等任务可先用 COT 生成过程性答案,提高准确率。
- 数据飞轮:上线后持续收集用户真实问题,结合真实需求迭代数据;定期清洗,确保质量与多样性。
偏好数据
数据格式
- 三元组结构:[prompt, chosen answer, rejected answer]
- 标注细节:
- 多模型采样:使用多个不同训练阶段或不同数据配比的模型生成回答,增加数据多样性。
- 编辑与优化:标注人员可对选择的回答进行小幅修改,确保回答质量。
采样策略
- 多模型采样:部署多个不同版本的模型,对同一 prompt 生成不同回答。
- 对比标注:由人工或自动化系统对生成的回答进行对比,选择更优的回答对。
关键要点
- 数据多样性与覆盖:确保偏好数据涵盖各种场景和任务,避免模型在特定情境下表现不佳。
- 高质量标注:偏好数据的质量直接影响模型的对齐效果,需确保标注准确且一致。
训练流程
一个完整的特定领域大语言模型训练流程通常包括 继续预训练 (CPT) → 监督微调 (SFT) → 直接偏好对齐 (DPO) 三个主要步骤,最终实现模型的部署与持续优化。
三种方法对比
训练方法概览
训练方法 | 主要目标 | 数据需求 | 典型应用场景 |
---|---|---|---|
继续预训练 (CPT) | 继续在大规模无监督语料上进行预训练,注入新领域知识 | 大量无标签文本(至少数亿到数十亿 Token) | 补足领域知识,如法律、医疗、金融等专业文本 |
监督微调 (SFT) | 在有监督标注的数据上进行微调,强化特定任务和指令执行能力 | 定制化标注数据(指令/对话对等),从几千到几十万条 | 各类特定任务,如代码生成、问答、文本改写、复杂指令执行等 |
直接偏好对齐 (DPO) | 利用偏好数据(正例 chosen vs. 负例 rejected)直接对齐人类偏好 | 偏好数据:[prompt, chosen, rejected](规模相对较小) | 对齐人类反馈,如回答风格、合规性、安全性等 |
优势与挑战
继续预训练 (CPT)
优势:
- 更好领域覆盖,全面提升模型在特定领域的理解和生成能力。
- 无需额外手动标注。
挑战/局限:
- 需要大量高质量领域数据。
- 训练成本高,需大规模算力与时间。
- 可能引入领域偏见,需谨慎处理数据质量与分布。
监督微调 (SFT)
优势:
- 快速获取可用的任务执行能力。
- 显著提升模型对特定场景的准确性。
挑战/局限:
- 数据标注成本较高。
- 需谨慎选择标注数据以避免过拟合。
- 微调后可能削弱模型的通用性。
直接偏好对齐 (DPO)
优势:
- 无需单独训练 Reward Model。
- 数据量需求较小,调优效率高。
挑战/局限:
- 需要可靠的偏好标注。
- 对复杂、多样化场景仍需持续迭代收集更多偏好数据。
- 易受偏好数据分布的限制。
通用训练要点与技术细节
在进行 CPT、SFT、DPO 三种训练方法时,存在许多通用的训练要点和技术细节。以下部分将这些通用内容进行统一描述,以便于更好地理解和应用。
数据处理与准备
- 数据质量:无论是 CPT、SFT 还是 DPO,数据的质量都是至关重要的。需要确保数据的准确性、无歧义性和多样性。
- 数据格式:统一的数据格式有助于简化训练流程。例如,使用 JSON 或其他结构化格式来存储训练数据。
- 数据增强:通过 LLM 重写和优化等方式增加数据多样性,提升模型的泛化能力。
学习率与优化
- 学习率设置:通常采用比预训练阶段更小的学习率,如从 3e-4 降低到 3e-5,具体数值视任务和数据量而定。
- 学习率调度:使用 warm-up 策略(如前 10% 步骤线性递增),随后采用线性衰减或余弦退火策略,确保训练过程平稳。
- 优化器选择:根据模型规模和硬件资源选择合适的优化器,比如 AdamW。
训练策略
- 全参数微调:在资源允许的情况下,优先进行全参数微调,以确保模型能够全面掌握新知识。
- 参数高效微调(PEFT):如 LoRA,适用于计算资源有限的场景,通过冻结部分参数并添加 adapter 实现高效微调。
- 混合精度训练:在支持的 GPU 上使用 bf16 或 fp16,降低显存占用,提高训练速度。
- 训练稳定性:采用梯度裁剪、正则化、dropout、权重衰减等技术,防止梯度爆炸和模型过拟合。
- Flash Attention:利用 Flash Attention 技术优化注意力机制的计算效率,提升训练速度和降低显存占用。
监控与调优
- 收敛监控:实时监控训练集和验证集的 loss 曲线,确保模型逐步收敛,必要时调整学习率和其他超参数。
- Checkpoint:定期保留 Checkpoint,防止意外中断导致全部训练进度丢失。
- 早停机制:防止模型过拟合,适时停止训练,保存最佳模型状态。
- 模型评估:在训练过程中定期进行评估,确保模型性能符合预期。
继续预训练 (CPT)
目标
通过在大量领域特定的无监督数据上继续预训练基座模型,注入新的领域知识,使模型更好地理解和生成特定领域的内容。
训练要点
流式加载
实施流式数据加载,以便在训练过程中动态读取数据,防止超过最大内存,训练中断。全参数微调
在进行模型训练时,通常需要更新模型的全部参数,以确保模型能够全面掌握新知识。
全量微调相较于参数高效微调(如 LoRA)在领域知识注入方面效果更佳,尤其在运算资源充足的情况下,建议优先选择全参数微调。
监督微调 (SFT)
目标
通过高质量的标注数据,训练模型执行特定任务,如代码生成、代码修复、复杂指令执行等,提升模型的实用性和准确性。
训练要点
Epoch 数量
- 在数据量充足的情况下通常 1 ~ 4 个 epoch 即可见到显著效果。
- 如果数据量不够,可以考虑加大 epoch 数量,但要注意过拟合的风险,建议进行数据增强。
数据增强与多样性
- 确保训练数据涵盖多种任务类型和指令表达方式,提升模型的泛化能力。
- 包含多轮对话和鲁棒性数据,增强模型应对真实用户场景的能力。
直接偏好对齐 (DPO)
目标
通过用户反馈和偏好数据,优化模型输出,使其更符合人类的期望和需求,包括回答风格、安全性和可读性等方面。
DPO 的特点
直接优化
不需要单独训练 Reward Model,直接通过 (chosen, rejected) 数据对模型进行对比学习。高效性
相较于 PPO,DPO 需要更少的数据和计算资源即可达到相似甚至更好的效果。动态适应
每次有新数据时,模型能立即适应,无需重新训练 Reward Model。
训练要点
偏好数据的收集
- 部署多个不同训练阶段或不同数据配比的模型,生成多样化的回答。
- 通过人工或自动化方式标注 chosen 和 rejected 回答对,确保数据的多样性和质量。
对比学习
通过最大化 chosen 回答的概率,最小化 rejected 回答的概率,优化模型参数。迭代优化
- 持续收集用户反馈,生成新的偏好数据,进行循环迭代,逐步提升模型性能。
- 结合数据飞轮机制,实现模型的持续进化与优化。
常见问题与解决方案
重复输出 (Repetitive Outputs)
问题:模型生成内容重复,连续打印停不下来。
解决方案:- 数据去重与清洗:确保训练数据不含大量重复内容。
- 检查 EOT(End-of-Token)设置:防止模型连接打印无法停止。
- 通过 SFT/DPO 进行对齐:优化模型输出质量。
- 调整解码策略:如增加 top_k、repetition penalty 和 temperature 参数。
灾难性遗忘 (Catastrophic Forgetting)
问题:模型在微调过程中遗忘原有的通用能力,可以看作是在新的数据集上过拟合,原本模型参数空间变化过大。
解决方案:- 混合一部分通用数据:保持模型的通用能力。
- 调低学习率:减少对原有知识的冲击。
- 增加 Dropout Rate 和 Weight Decay:避免过拟合。
- 采用 LoRA 等参数高效微调方法:避免大规模参数更新。
- 使用 RAG 辅助:结合外部知识库提升模型表现。
- Chat Vector: 通过模型权重的简单算术操作,快速为模型注入对话和通用能力。
实体关系与推理路径理解不足
问题:模型难以正确理解复杂的实体关系和推理路径。
解决方案:
模型部署与评估
部署
推理框架
集成 RAG & 智能体
- RAG:结合向量知识库,实时检索相关文档或代码片段,辅助模型生成更精准的回答。
- 智能体:利用 Function Call 或多轮对话机制,让模型调用外部工具或进行复杂推理,提升互动性和实用性。
- Langgraph:封装 RAG 和 多智能体工作流,构建定制化的对话系统或代码自动生成平台。
评估
评估指标
- CPT 阶段:使用领域内测试集,评估困惑度(Perplexity,PPL)或者交叉熵(Cross Entropy),衡量模型对新知识的掌握程度。
- SFT / DPO 阶段:
- Human 或模型评测:通过人工评分或自动化工具,评估回答的准确性、连贯性、可读性和安全性。
- 代码生成:构建大规模单元测试集,评估 pass@k 指标,衡量代码生成的正确率。
- 通用能力:在常见 benchmark(如 MMLU、CMMLU)对模型进行测试,确保模型在通用任务上的表现下降不大。
解码超参数
- 一致性:在评估过程中保持 top_k、top_p、temperature、max_new_tokens 等解码参数一致,确保评估结果的可比性。
- 网格搜索:在算力允许的情况下,对不同解码参数组合进行评估,选择最优的参数配置。
数据飞轮与持续迭代
数据飞轮机制
实时收集用户日志
收集线上用户的真实 prompt 和生成的回答,覆盖多样化的使用场景和任务类型。自动或人工标注
对收集到的用户 prompt 和回答进行偏好标注,生成新的 (chosen, rejected) 数据对。迭代训练
将新生成的偏好数据加入到下一轮的 SFT/DPO 训练中,不断优化模型的回答质量和用户体验。鲁棒性数据
包含拼写错误、混合语言、模糊指令等数据,提升模型在真实场景下的鲁棒性和应对能力。
持续优化
- 反馈循环:利用用户反馈,持续改进训练数据和模型表现,实现模型的自我优化和进化。
- 多模型协同:部署多个版本的模型,生成多样化的回答,通过对比学习提升模型的综合能力。
结合意图识别和多智能体推理
使用意图分类模型让大模型判断用户输入意图类别。基于意图类别与上下文类型的映射,监督推理路径,然后根据推理路径进行多路召回。将这些信息提供给训练好的模型,生成最终结果。
总结
通过 继续预训练 (CPT) → 监督微调 (SFT) → 直接偏好对齐 (DPO) 的组合方法,能够有效地在基座大模型上注入特定领域的知识,构建出具备高效解决业务问题能力的闭源大语言模型。关键步骤如下:
数据准备
- 高质量的数据收集、清洗、去重和分类,确保训练数据的多样性与准确性。
- 结合数据脱敏策略,保护隐私与合规。
模型训练
- 通过 CPT 注入领域知识,SFT 学习特定任务模式,DPO 优化模型输出符合人类偏好和安全。
- 利用高效的并行训练框架和调参技巧,提升训练效率和资源利用率。
部署与评估
- 采用高效的推理框架,结合 RAG 和 Agent 实现知识增强和功能扩展。
- 通过多维度评估,确保模型在各个阶段的表现符合预期。
持续迭代
- 构建数据飞轮,实时收集用户反馈,不断优化训练数据和模型表现。
- 集成 RAG 和 Agent,实现模型能力的持续提升与扩展。
最终,通过系统化的流程和技术手段,能够构建一个不仅具备深厚领域知识,还能灵活应对复杂业务需求的长生命周期 AI 系统。
参考资料
- DeepSpeed
- Megatron-LM
- ollama
- vLLM
- GraphRAG
- The Llama 3 Herd of Models
- ZeRO-Infinity: Breaking the GPU Memory Wall for Extreme Scale Deep Learning
- Chat Vector: A Simple Approach to Equip LLMs with Instruction Following and Model Alignment in New Languages
- Evaluating Large Language Models Trained on Code
- Direct Preference Optimization: Your Language Model is Secretly a Reward Model
引用
引用:转载或引用本文内容,请注明原作者与出处。
Cited as:
Yue Shui. (Jan 2025). 构建特定领域的大语言模型.
https://syhya.github.io/posts/2025-01-05-domain-llm-training
Or
@article{syhya2024domainllm,
title = "构建特定领域的大语言模型",
author = "Yue Shui",
journal = "syhya.github.io",
year = "2025",
month = "Jan",
url = "https://syhya.github.io/posts/2025-01-05-domain-llm-training/"
}