C++项目|分布式大模型基础架构
1. 项目背景:
针对端侧设备(树莓派、昇腾、RK系列)的低资源环境,设计一套轻量化分布式框架,实现大模型(LLM/ASR/TTS等)的高效协同推理,解决端侧设备算力分散、通信受限、动态扩展难等问题。
技术栈:Linux、C++、ZMQ、设计模式、分布式架构、主从Reactor模式、docker、cmake、shell
3. 项目设计方案
1. 双模式部署设计:设计Docker与裸机双部署方案,通过自动化镜像部署和容器操作脚本,环境部署效率提升70%
2. 底层混合通信组件:
- 设计基于ZMQ的多模式通信中间件,通过工厂模式统一创建PUB/SUB、PUSH/PULL、RPC等6种通信策略,结合策略模式实现动态通信方式切换,降低业务层网络代码复杂度70%;
- 构建高可用RPC框架,支持方法动态注册与服务发现,通过设置双端超时控制与自动重连机制提高通信可靠性;
- 设计ZMQ消息封装模块,开发轻量级序列化协议,采用长度前缀+紧凑存储结构设计实现多参数打包/解包
3. channel模块设计:
- 统一管理底层多模式通信中间件的ZMQ连接,支持动态URL绑定,信道注册
- 设计观察者模式和闭包方案,实现网络层与业务逻辑的解耦
- 通过动态work_id路由和连接池技术,实现多unit单元通信隔离
- JSON协议设计,用于节点间/外部用户消息交互
4. 分布式任务调度框架设计-与业务节点关系(继承)
- 采用 Reactor模式,设计异步事件驱动的任务调度框架,通过eventpp实现毫秒级事件响应
- 动态RPC服务注册,支持跨业务节点 setup/exit 等指令的远程调用
- 统一管理 work_id-channel 连接池,对上层业务节点屏蔽底层通信复杂性
- 提供标准化setup等虚函数接口,支持业务节点自定义任务处理逻辑
5. unit-manager模块
- 设计RPC服务注册,实现信道自动注册/释放,SQL处理;并解析 action 实现动态分发请求
- 实现轻量化内存kv缓存数据库 存储 unit 元信息;并提供线程安全SQL查询接口,供节点动态通信
- 设计多协议网关,实现TCP/ZMQ协议转换,支持外部用户-内部业务节点通信交互
- 设计主从多Reactor TCP通信框架,实现压测10000+TCP并发连接
6. Node业务层接口设计
- TASK任务管理:实现单任务实例管理,模型加载/推理/流式输出回调机制等
- 服务层控制:自定义实现setup等接口,对业务节点进行生命周期管理,实现节点间相互订阅
#简历中的项目经历要怎么写# #项目# #C++方向# #c++项目# #cpp还是java# #后端开发#
针对端侧设备(树莓派、昇腾、RK系列)的低资源环境,设计一套轻量化分布式框架,实现大模型(LLM/ASR/TTS等)的高效协同推理,解决端侧设备算力分散、通信受限、动态扩展难等问题。
技术栈:Linux、C++、ZMQ、设计模式、分布式架构、主从Reactor模式、docker、cmake、shell
3. 项目设计方案
1. 双模式部署设计:设计Docker与裸机双部署方案,通过自动化镜像部署和容器操作脚本,环境部署效率提升70%
2. 底层混合通信组件:
- 设计基于ZMQ的多模式通信中间件,通过工厂模式统一创建PUB/SUB、PUSH/PULL、RPC等6种通信策略,结合策略模式实现动态通信方式切换,降低业务层网络代码复杂度70%;
- 构建高可用RPC框架,支持方法动态注册与服务发现,通过设置双端超时控制与自动重连机制提高通信可靠性;
- 设计ZMQ消息封装模块,开发轻量级序列化协议,采用长度前缀+紧凑存储结构设计实现多参数打包/解包
3. channel模块设计:
- 统一管理底层多模式通信中间件的ZMQ连接,支持动态URL绑定,信道注册
- 设计观察者模式和闭包方案,实现网络层与业务逻辑的解耦
- 通过动态work_id路由和连接池技术,实现多unit单元通信隔离
- JSON协议设计,用于节点间/外部用户消息交互
4. 分布式任务调度框架设计-与业务节点关系(继承)
- 采用 Reactor模式,设计异步事件驱动的任务调度框架,通过eventpp实现毫秒级事件响应
- 动态RPC服务注册,支持跨业务节点 setup/exit 等指令的远程调用
- 统一管理 work_id-channel 连接池,对上层业务节点屏蔽底层通信复杂性
- 提供标准化setup等虚函数接口,支持业务节点自定义任务处理逻辑
5. unit-manager模块
- 设计RPC服务注册,实现信道自动注册/释放,SQL处理;并解析 action 实现动态分发请求
- 实现轻量化内存kv缓存数据库 存储 unit 元信息;并提供线程安全SQL查询接口,供节点动态通信
- 设计多协议网关,实现TCP/ZMQ协议转换,支持外部用户-内部业务节点通信交互
- 设计主从多Reactor TCP通信框架,实现压测10000+TCP并发连接
6. Node业务层接口设计
- TASK任务管理:实现单任务实例管理,模型加载/推理/流式输出回调机制等
- 服务层控制:自定义实现setup等接口,对业务节点进行生命周期管理,实现节点间相互订阅
#简历中的项目经历要怎么写# #项目# #C++方向# #c++项目# #cpp还是java# #后端开发#
全部评论
项目适用岗位:互联网C++后端,大模型端侧应用开发,自动驾驶/机器人C++开发
⚠️加入星球服务|获取所有项目视频/文档/答疑;免费1对1视频会议简历辅导/职业规划/学习路线指导⚠️
mark
相关推荐
02-02 15:32
南京信息工程大学 Java
HR_丸山彩同学:你的项目描述里,系统设计讲了很多:MemCube是什么、三级存储架构怎么设计、四种遗忘策略分别是什么。这些面试的时候讲没问题,但简历上不需要这么细。
简历要突出的是影响力,不是实现细节。面试官看简历的时候想知道的是「这个项目有多大价值」,不是「这个项目具体怎么实现的」。实现细节是面试时候聊的
怎么改:技术细节可以精简为一句「采用三级存储架构+四种遗忘策略」,把省出来的篇幅用来写影响力。比如:项目有没有开源?有没有写成技术博客?有没有被别人使用过?
校园经历没有任何信息量,任何人都可以写这句话,写了等于没写。更关键的是,你投的是技术岗,校园活动经历本来就不是加分项。如果非要写,必须写出具体的数字和成果。如果你没有这些数字,那就老老实实删掉 点赞 评论 收藏
分享