一、课程核心问题探讨
(一)模型使用多样化需求
在大语言模型的应用场景中,除了常见的 ChatGPT,还存在使用其他模型(如开源的 Llama2、ChatGLM)的需求,甚至想要在本机从头训练新模型并在 LangChain 中使用,这涉及到诸多技术要点和流程。
(二)大模型训练的复杂性
大模型的微调、预训练、重新训练乃至从头训练是庞大且复杂的话题,不仅要求足够知识与经验,还需大量语料数据、GPU 硬件及强大工程能力,难以在短时间内全面讲透,但可梳理其关键流程和使用方法。
二、大语言模型相关基础
(一)发展史关键节点
- 2018 年 Google 论文提出 Transformer 架构,它是几乎所有预训练模型的核心底层架构,基于此架构预训练所得的大规模语言模型被称为 “基础模型”,为后续 NLP 任务提供了通用语言表示基础。
- BERT 作为早期具代表性和影响力的预训练模型,通过学习文本前后向上下文信息深入理解句子结构,推动 NLP 领域进入新时代,诸多大型预训练模型随之涌现,解决了众多 NLP 难题。
(二)预训练 + 微调模式
- 预训练:在大规模无标注文本数据上训练模型,使其学习自然语言基础表达、上下文信息和语义知识,为下游任务奠定通用语言表示基础。
- 微调:基于预训练模型,针对特定下游任务在相对较小有标注数据集上进行有监督学习,调整模型头部或部分参数以适应任务需求。此模式优势明显,可迁移通用语言知识、快速优化特定任务、简化部署难度且具有强可扩展性,广泛应用于 NLP 任务。
三、使用开源模型流程
(一)用 HuggingFace 跑开源模型
- 注册并安装:需登录 HuggingFace 网站获取 Token,安装 HuggingFace Library,设置 API Token。
- 申请使用 Llama2 模型:在 HuggingFace 的 Model 中找到 meta-llama/Llama-2-7b 版本,申请 Access 后可查看基本信息,通过导入相关工具(如 AutoTokenizer、AutoModelForCausalLM),利用 from_pretrained 方法加载模型和分词器,给定提示并转换格式,最后用.generate () 方法生成响应,但需注意其与 ChatGPT 存在差距。
(二)LangChain 和 HuggingFace 的接口
- 通过 HuggingFace Hub 集成:这是一种简单的集成方式,指定模型名称即可在 HuggingFaceHub 类的 repo_id 中直接下载并使用模型,结合初始化 LLM、创建提示模板等熟悉步骤可完成相关操作,但测试时可能出现错误。
- 通过 HuggingFace Pipeline:这是简化 NLP 任务使用流程的高级工具,即便不了解模型细节也能利用预训练模型完成任务。
四、在本机使用自定义语言模型
可创建 LLM 的衍生类自定义模型,实现_call 方法接收输入并返回响应字符串,以及可选的_identifying_params 方法帮助打印属性。以下载的 llama-2-7b-chat.ggmlv3.q4_K_S.bin 模型为例,需安装相关包,虽其中文能力欠佳,但英文表现不错,且在本机 CPU 环境下运行推理速度可接受,综合表现获较高评分。
五、总结与拓展
(一)课程总结
通过本次课程,了解到大模型训练需大量数据和计算资源,训练后常需微调以适应特定任务,还可能经过量化处理。同时掌握了使用不同开源模型及在 LangChain 中集成的方法,以及在本机运行自定义模型的要点。
(二)后续学习方向
若要深入学习大模型,PyTorch、HuggingFace、LangChain 等工具至关重要,它们在 AI 模型全生命周期中发挥关键作用,有助于开发和部署高效 AI 系统。
六、个人思考
大语言模型领域发展迅速,不断涌现的新技术、新模型为我们提供了广阔的探索空间。在学习和实践过程中,不仅要掌握各种模型的使用方法,更要理解其背后的原理和技术架构,这样才能更好地运用这些工具解决实际问题。同时,不同模型各有优劣,我们应根据具体需求选择合适的模型,并通过微调等手段使其发挥最大效能。此外,开源社区和相关工具库的发展为我们提供了便利,我们应充分利用这些资源,不断提升自己在该领域的能力。