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

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. 项目实训5-28 后端部署+依赖报错问题解决 JFM
  2. 数据库部署落地:
    1. 创新实训2024.05.26日志:落地基于硬盘的数据库服务 LYH

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
  2. 微调实验:我们微调后的大模型还没合并集成部署起来,所以后面再写。
  3. 能力增强/提示工程:
    1. 创新实训2024.05.28日志:记忆化机制、基于MTPE与CoT技术的混合LLM对话机制 LYH
  4. 性能评测:
    1.  创新实训2024.05.29日志:评测数据集与baseline测试 LYH
    2.  创新实训-结果统计 LDL

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/666367.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

echarts 环形图

环形图封装成了一个组件 组件名diagran.vue <!--环形图--> <template><div classchartPreDonut refchartPreDonut></div> </template><script> import * as echarts from echarts export default {props: [option, unit, title, center, …

UE5 Cesium2 最新使用地理配准子关卡构造全球场景

参考官方最新教程&#xff1a;Building Global Scenes with Georeferenced Sublevels – Cesium 创建持久关卡&#xff08;主关卡&#xff09; 这里一般包含DynamicPawn、CesiumSunSky 和 Cesium World Terrain 全球场景通用的对象。子关卡的创立&#xff0c;官方教程分为了两…

【SQL学习进阶】从入门到高级应用(八)

文章目录 ✨连接查询✨什么是连接查询✨连接查询的分类✨笛卡尔积现象✨内连接✨什么叫内连接✨内连接之等值连接✨内连接之非等值连接✨内连接之自连接 ✨外连接✨什么叫外连接✨外连接之左外连接&#xff08;左连接&#xff09;✨外连接之右外连接&#xff08;右连接&#xf…

Vue3兼容低版本浏览器(ie11,chrome63)

1、插件安装 为了使你的项目兼容 Chrome 63&#xff0c;你需要确保包含适当的 polyfills 和插件配置。你已经在使用 legacy 插件&#xff0c;但在代码中可能缺少一些配置或插件顺序有问题。以下是几个可能的改进&#xff1a; 安装 vitejs/plugin-legacy 插件&#xff1a; 确保…

使用shell命令开启隧道转发的方式

1.适用场景 中转电脑可以通公网&#xff0c;也可以通内网&#xff0c;想把内网映射出去&#xff0c;公网其他电脑就可以通过该隧道远程访问内网的情况 2.命令 开隧道&#xff08;21235是自定义的转发端口&#xff09;&#xff1a; ssh -R 21235:内网地址:ssh端口 用户名公网服…

Java集合(一)

集合 概念&#xff1a;集合是Java API所提供的一系列类&#xff0c;可以用于动态存放多个对象。集合只能存对象集合与数组的不同在于&#xff0c;集合是大小可变的序列&#xff0c;而且元素类型可以不受限定&#xff0c;只要是引用类型。(集合中不能放基本数据类型&#xff0c…

低边驱动与高边驱动

一.高边驱动和低边驱动 低边驱动(LSD): 在电路的接地端加了一个可控开关&#xff0c;低边驱动就是通过闭合地线来控制这个开关的开关。容易实现&#xff08;电路也比较简单&#xff0c;一般由MOS管加几个电阻、电容&#xff09;、适用电路简化和成本控制的情况。 高边驱动&am…

适合能源企业的文档安全外发系统应该是什么样的?

能源企业是市场经济中的重要组成&#xff0c;也是社会可持续长远发展的关键组成之一&#xff0c;能源行业在开拓新能源业务线、提升产能的日常经营中&#xff0c;也需要与外部合作伙伴、客户间进行密切的业务往来&#xff0c;文档可能涉及多个领域多个类型。 能源供应合同&…

【漏洞复现】电信网关配置管理系统 rewrite.php 文件上传漏洞

0x01 产品简介 中国电信集团有限公司(英文名称"China Telecom”、简称“"中国电信”)成立于2000年9月&#xff0c;是中国特大型国有通信企业、上海世博会全球合作伙伴。电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员…

【Text2SQL 论文】DIN-SQL:分解任务 + 自我纠正 + in-context 让 LLM 完成 Text2SQL

论文&#xff1a;DIN-SQL: Decomposed In-Context Learning of Text-to-SQL with Self-Correction ⭐⭐⭐⭐ NeurIPS 2023, arXiv:2304.11015 Code: Few-shot-NL2SQL-with-prompting | GitHub 文章目录 一、论文速读1.1 Schema Linking Module1.2 Classification & Decompo…

【火炬打宝策略】

打宝策略刷遗物&#xff1a; 时可4 只刷奇诊加稀有度&#xff0c;没有奇诊可以直接不打。

服装连锁店收银系统需要具备的五大功能

当今服装连锁店在市场竞争中需要拥有高效的收银系统来提升业务效率和顾客满意度。以下是服装连锁店收银系统需要具备的五大功能&#xff1a; 首先&#xff0c;完善的商品管理功能是至关重要的。这包括商品信息的录入、管理、更新和查询。收银系统应该能够快速而准确地识别商品&…

STP----生成树协议

目的&#xff1a;解决二层环路问题 跨层封装 广播风暴---广播帧在二层环路中形成逆时针和顺时针转动环路&#xff0c;并且无限循环&#xff0c;最终造成设备宕机&#xff0c;网络瘫痪。 MAC地址表的翻摆&#xff08;漂移&#xff09;---同一个数据帧&#xff0c;顺时针接收后记…

《逆水寒》手游周年庆,热度不减反增引发热议

易采游戏网5月31日最新消息&#xff1a;随着数字娱乐时代的飞速发展&#xff0c;手游市场的竞争愈发激烈。在这样的大背景下&#xff0c;《逆水寒》手游以其独特的古风武侠世界和深度的社交体验&#xff0c;自上线以来便吸引了无数玩家的目光。如今&#xff0c;这款游戏迎来了它…

Flink搭建

目录 一、standalone模式 二、Flink on Yarn模式 一、standalone模式 解压安装Flink [rootbigdata1 software]# tar -zxvf flink-1.14.0-bin-scala_2.12.tgz -C /opt/module/ [rootbigdata1 module]# mv flink-1.14.0/ flink-standalone 2.进入conf修改flink-conf.yaml job…

汇总区间,合并区间

题目一&#xff1a; 代码如下&#xff1a; vector<string> summaryRanges(vector<int>& nums) {vector<string> ret;if (nums.size() 0)return ret;int n nums.size();int i 0;while (i < n){int prev i;i;while (i < n && nums[i] n…

java使用资源过高排查

在生产环境中有可能出现某java程序使用资源特别严重&#xff0c;这就需要找到该java进程&#xff0c;然后通过进程去找到是哪个线程的问题&#xff0c;这里我们就是用pidstat工具来排查一下 安装pidstat工具 yum -y install sysstat 查看java服务的pid jps 通过pid查看线…

Feign:使用接口方式调用服务

一、什么是Feign Feign是一个http请求调用的轻量级框架&#xff0c;可以以Java接口注解的方式调用Http请求&#xff0c;而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解&#xff0c;将请求模板化&#xff0c;当实际调用的时候&#xff0c;传入参数&…

【模型架构】学习RNN、LSTM、TextCNN和Transformer以及PyTorch代码实现

一、前言 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;模型架构的不断发展极大地推动了技术的进步。从早期的循环神经网络&#xff08;RNN&#xff09;到长短期记忆网络&#xff08;LSTM&#xff09;、Transformer再到当下火热的Mamba&#xff08;放在下一节&a…

ES升级--02--kibana安装与启动

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Kibana官网文档https://www.elastic.co/guide/cn/kibana/current/targz.html 1.官网下载https://www.elastic.co/cn/downloads/past-releases#kibana 2.解压软件3.配…