2024山软创新实训:软件系统架构

软件架构

本文着重介绍本应用:基于开源LLM的易学大模型软件系统的架构。在经过2个月的探索、选型、实验、开发后,我们团队终于把整个系统的各块拼图搭建了起来,现在剩下的是集成、评测、优化和部署的工作。

1. Distributed System

整个项目的逻辑架构是分布式的,总共分为3.5层:

  1. 客户端应用:主要负责最外层web服务的图形化界面与用户接口
  2. web服务端应用:负责基本的增删改查、信息维护。以及对LLM与向量知识库的集成和整合
  3. LLM && RAG Kernel:这里涉及到最内核的部分,我们通过第三方框架(LangChain)落地实现了RAG技术,并且通过开源软件和一些具有强力算力的设备进行了开源通用LLM的微调:
    1. RAG落地实现:这个子模块负责初始化向量知识库,并对外(web服务端应用)提供各种接口,包括上传知识文件,检索知识文件,更新知识文件,获取知识文件列表等等。
    2. LLM微调与部署:我们利用第三方开源软件以及智谱AI提供的chatglm3-6B,进行大模型的微调,在此过程中,利用一些领域前沿技术,进行语料的生成与准备
基于开源LLM的易学大模型软件系统架构图

建议点击图片放大查看 

2. 各模块功能解析与实现细节

客户端应用

技术选型:Node.js + Vue3.js + 各类开源前端组件/样式/界面库 

Node.js (aliyun.com)

Vue.js - 渐进式 JavaScript 框架 | Vue.js

实现细节:

  1. 项目实训5-27 前端框架搭建 JFM
  2. 创新设计记录-3:路由守卫与请求拦截 LDL
  3. 创新设计记录-5:博客功能-前端 LDL​​​​​​
  4. 创新设计记录-7:论坛 LDL
  5. 创新设计记录-8:博客收藏 LDL
  6. 创新设计记录-9:论坛-博客展示 LDL
  7. 创新设计记录-10:知识库文件删除 LDL
  8. 创新实训记录(五)LJJ
  9. 创新实训记录(六)LJJ
  10. 创新实训记录(九)LJJ
  11. 项目实训5-30 前端会话与历史会话实现 JFM
  12. 项目实训6-2 知识库界面实现 JFM
  13. 项目实训6-3 sse打字机效果前端实现_前端接入sse流式数据并实现打字机效果 JFM
  14. 项目实训 历史对话增加查询功能 JFM
  15. 项目实训 实现用户终止对话功能 JFM
  16. 创新实训(十四) 项目开发——用户终止对话功能bug修复 JFM

​​

web服务端应用

技术选型:

  1. Web服务器:Uvicorn Uvicorn
  2. Web服务+路由管理:FastAPI + Sharlette FastAPI
  3. 数据校验:Pydantic Welcome to Pydantic - Pydantic
  4. 数据库:
    1. 基于硬盘的嵌入式数据库:Sqlite + SQLAlchemy SQLite Home PageSQLAlchemy - The Database Toolkit for Python
    2. 基于内存的缓存数据库:Redis Redis - The Real-time Data Platform

实现细节:

  1. 服务端接口开发:
    1. 创新实训2024.05.25日志:Web应用技术选型 LYH
    2. 创新实训2024.05.26日志:服务端接口实现——用户开启多个会话 LYH
    3. 创新设计记录(一)LJJ
    4. 创新设计记录(二)LJJ
    5. 创新设计记录 LDL
    6. 创新设计记录-2:管理员管理用户 LDL
    7. 项目实训5-28 后端部署+依赖报错问题解决 JFM
    8. 创新设计记录-4:博客功能-后端 LDL​​​​​​
    9. 创新设计记录-6:博客上传知识库 LDL
    10. 创新设计记录-7:论坛 LDL
    11. 创新设计记录-8:博客收藏 LDL
    12. 创新实训记录(七)LJJ
    13. 创新设计记录(八)LJJ
    14. 创新实训记录(九)LJJ
    15. 创新实训2024.06.02日志:SSE、流式输出以及基于MTPE技术的MT-SSE技术 LYH
  2. 数据库部署落地:
    1. 创新实训2024.05.26日志:落地基于硬盘的数据库服务 LYH
  3.  web服务部署:
    1.  创新实训2024.06.06日志:部署web服务 LYH
  4.  性能测试与压力测试:
    1.  项目实训 完成并发测试 JFM

​​

LLM Kernel

技术选型:

  1. 语料生成:智谱AI 智谱AI开放平台 (bigmodel.cn)
  2. 微调实验:
    1. 软件是LLAMA Factory GitHub - hiyouga/LLaMA-Factory: Unify Efficient Fine-Tuning of 100+ LLMs
    2. 硬件不方便透露,是我们学院的机器 
  3. 开源大模型:清华智谱AIchatglm3-6b chatglm3-6b

实现细节:

  1. 语料生成:
    1. 创新实训2024.04.07日志:提取QA对 LYH
    2. 创新实训2024.04.11日志:self-instruct生成指令 LYH
    3. 项目实训2024.04.12日志:Self-QA生成问答对 LYH
    4. 项目实训4-18:过滤QA对,update prompt JFM
    5. 创新实训2024.05.01日志:document-loaders LYH
  2. 微调实验:
    1.  创新实训2024.06.17日志:大模型微调总结 LYH
    2. 项目实训关键知识点 JFM
  3. 能力增强/提示工程:
    1. 创新实训2024.05.28日志:记忆化机制、基于MTPE与CoT技术的混合LLM对话机制 LYH
  4. 性能评测:
    1.  创新实训2024.05.29日志:评测数据集与baseline测试 LYH
    2.  创新实训-结果统计 LDL
    3. 创新实训记录(三)LJJ
    4. 创新实训记录(四)LJJ
    5. 创新实训2024.06.03日志:完善Baseline Test框架、加入对Qwen-14B的测试 LYH

​​

RAG Kernel

技术选型

  1. RAG工具包:Langchain + Langchain ChatChat LangChain Langchain-Chatchat
  2. 向量知识库:Faiss Welcome to Faiss Documentation — Faiss documentation
  3. 文本嵌入模型:BAAI bge-large-zh bge-large-zh

实现细节:

  1. RAG工具包:
    1. 创新实训2024.04.24日志:RAG技术初探 LYH
  2. 知识库建立部署:
    1. 创新实训2024.05.12日志:建立易学知识库 LYH
    2. 项目实训5-23 RAG重新配置 JFM

​​

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值