动手学大模型第三章

一、大模型开发整体流程

1.何为大模型开发

我们将开发以大语言模型为功能核心、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用称为大模型开发。开发大模型相关应用,其技术核心点虽然在大语言模型上,但一般通过调用 API 或开源模型来实现核心的理解与生成,通过 Prompt Enginnering 来实现大语言模型的控制,因此,虽然大模型是深度学习领域的集大成之作,大模型开发却更多是一个工程问题。

在大模型开发中,我们一般不会去大幅度改动模型,而是将大模型作为一个调用工具,通过 Prompt Engineering、数据工程、业务逻辑分解等手段来充分发挥大模型能力,适配应用任务,而不会将精力聚焦在优化模型本身上。因此,作为大模型开发的初学者,我们并不需要深研大模型内部原理,而更需要掌握使用大模型的实践技巧。
在这里插入图片描述

2.大模型开发的整体流程

在这里插入图片描述

二、项目流程简析

2.1项目规划与需求分析

1.项目目标:基于个人知识库的问答助手
2.核心功能:

  1. 上传文档、创建知识库;
  2. 选择知识库,检索用户提问的知识片段;
  3. 提供知识片段与提问,获取大模型回答;
  4. 流式回复;
  5. 历史对话记录;

3.确定技术架构和工具

  1. LangChain框架
  2. Chroma知识库
  3. 大模型使用 GPT、科大讯飞的星火大模型、文心一言、GLM 等
  4. 前后端使用 Gradio 和 Streamlit

2.2数据准备与向量知识库构建

实现原理

  1. 收集和整理用户提供的文档。
  2. 将文档词向量化
  3. 将向量化后的文档导入Chroma知识库,建立知识库索引

2.3大模型集成与API连接

集成GPT、星火、文心、GLM 等大模型,配置 API 连接。
编写代码,实现与大模型 API 的交互,以便获取问题答案。

2.4核心功能实现

构建 Prompt Engineering,实现大模型回答功能,根据用户提问和知识库内容生成回答。
实现流式回复,允许用户进行多轮对话。
添加历史对话记录功能,保存用户与助手的交互历史。

2.5核心功能迭代优化

进行验证评估,收集 Bad Case。
根据 Bad Case 迭代优化核心功能实现。

2.6前端与用户交互界面开发

使用 Gradio 和 Streamlit 搭建前端界面。
实现用户上传文档、创建知识库的功能。
设计用户界面,包括问题输入、知识库选择、历史记录展示等。

2.7部署测试与上线

部署问答助手到服务器或云平台,确保可在互联网上访问。
进行生产环境测试,确保系统稳定。
上线并向用户发布。

2.8维护与持续改进

监测系统性能和用户反馈,及时处理问题。
定期更新知识库,添加新的文档和信息。
收集用户需求,进行系统改进和功能扩展。

三、项目架构简析

本项目从底向上依次分为 LLM 层、数据层、数据库层、应用层与服务层:
① LLM 层主要基于四种流行 LLM API 进行了 LLM 调用封装,支持用户以统一的入 口、方式来访问不同的模型,支持随时进行模型的切换;
② 数据层 主要包括个人知识库的源数据以及 Embedding API,源数据经过 Embedding 处理可以被向量数据库使用;
③ 数据库层 主要为基于个人知识库源数据搭建的向量数据库,在本项目中我们选择了 Chroma;
④ 应用层 为核心功能的最顶层封装,我们基于 LangChain 提供的检索问答链基类进行了进一步封装,从而支持不同模型切换以及便捷实现基于数据库的检索问答;
⑤ 最顶层为服务层,我们分别实现了 Gradio 搭建 Demo 与 FastAPI 组建 API 两种方式来支持本项目的服务访问。

项目逻辑

用户:可以通过 run_gradio 或者 run_api 启动整个服务;
服务层调用 qa_chain.py 或 chat_qa_chain 实例化对话检索链对象,实现全部核心功能;
服务层和应用层都可以调用、切换 prompt_template.py 中的 prompt 模板来实现 prompt 的迭代;
也可以直接调用 call_llm 中的 get_completion 函数来实现不使用数据库的 LLM;
应用层调用已存在的数据库和 llm 中的自定义 LLM 来构建检索链;
如果数据库不存在,应用层调用 create_db.py 创建数据库,该脚本可以使用 openai embedding 也可以使用 embedding.py 中的自定义 embedding

五、学习地址

在线学习地址
项目仓库地址

注:由datawhale提供学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢奶盖那只猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值