这个C++项目大家觉得怎么样:分布式大模型基础架构

项目适用岗位:互联网C++后端, 大模型端侧部署 ,自动驾驶/机器人具身智能C++开发

1、底层通信组件方案
通信模式封装
支持兼容多种通信模式
普通消息模式:PUB/SUB(发布订阅)、PUSH/PULL(点对点通信)
RPC 模式:通过ZMQ_REP、ZMQ_REQ 封装 RPC 功能
RPC功能
支持 RPC 方法的动态注册
提供默认的 RPC 方法列表查询
支持 RPC 调用
2、Master模块(实现思路:类似ROS1 Master功能, 更轻量化)
背景:分布式大模型系统中,多个节点(如llm/vlm, asr,tts, camera,yolo)需要动态发现彼此并高效通信,外部用户可以动态管理节点内任务调度
​​节点注册与发现​
实现轻量化内存kv缓存数据库:存储节点元信息;并提高sql查询接口,供节点动态通信
节点启动时向Master模块注册,上报自身元信息;节点通信时自动匹配
动态任务调度分配
设计用户请求-任务匹配机制:外部用户仅封装简易数据包请求,可实现动态控制各个模块(启停/llm推理等)
3、Channel模块
封装上层发布-订阅(PUB/SUB)和点对点通信(PUSH/PULL)混合通信模式
设计闭包,通过闭包将​​网络层​​(ZeroMQ)与​​业务层​​(用户回调)解耦,同时隐式维护了通信上下文状态。
4、Infra基础架构模块
rpc分布式控制指令下发+异步​事件驱动架构​
​注册rpc_setup/rpc_pause等分布式控制接口->注册eventpp事件监听->上层触发rpc调用 -> 添加eventpp事件队列中-> 异步事件驱动->各子类Setup/Pause等功能接口
标准化控制协议​​
基于抽象接口(Setup/Pause等)实现跨模块统一管控,支持LLM/ASR/TTS等异构节点无缝集成
5、TASK模块
与Infra模块关系:类似与进程和线程之间关系,Infra模块负责资源分配和流程管控,TASK模块是真正干活的,干的活如下:
各模块中模型生命周期管理(加载/卸载)
infra推理
包装回调输出
等等

#Linux#  #实习#   #秋招#  #项目#   #C++要学到什么程度#
全部评论
项目适用岗位:互联网C++后端, 大模型端侧部署 ,自动驾驶/机器人具身智能C++开发
2 回复 分享
发布于 05-28 18:20 江苏
C++分布式大模型基础架构项目-初版 代码仓库地址:https://github.com/superxiaobai-1/Edge-LLM-Infra/tree/master 后续会完善代码,更新详细视频文档解析
1 回复 分享
发布于 06-16 17:07 江苏
星球内秋招实习项目评价哈
1 回复 分享
发布于 05-28 23:54 江苏

相关推荐

07-28 15:15
门头沟学院 Java
面试八股环节还好,但是我是力扣战士,面试官让在编译器上写代码类都不会怎么写了,两个算法,字母异位词和策略模式,只写了方法,力扣战士凉透了,希望大家平时还是要在编译器上做题策略模式等一些设计模式,希望大家也进行默写,别像我一样会背不会写字母异位词import java.util.*;public class Main {public static List<List<String>> groupAnagrams(String[] strs) {// 用于存储分组结果的映射,键为排序后的字符串,值为对应的字符串列表Map<String, List<String>> anagramGroups = new HashMap<>();for (String s : strs) {// 将字符串转换为字符数组并排序char[] chars = s.toCharArray();Arrays.sort(chars);String sortedStr = new String(chars);// 如果映射中不存在该键,则创建一个新的列表anagramGroups.computeIfAbsent(sortedStr, k -> new ArrayList<>());// 将当前字符串添加到对应的列表中anagramGroups.get(sortedStr).add(s);}// 返回映射中的所有值(即所有分组)return new ArrayList<>(anagramGroups.values());}public static void main(String[] args) {// 示例输入String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat"};// 调用方法获取分组结果List<List<String>> result = groupAnagrams(strs);// 输出结果for (List<String> group : result) {System.out.println(group);}}}策略模式// 支付策略接口interface PaymentStrategy {void pay(double amount);}// 微信支付实现class WechatPay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用微信支付:" + amount + "元");// 微信支付具体实现逻辑}}// 支付宝实现class Alipay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用支付宝支付:" + amount + "元");// 支付宝支付具体实现逻辑}}// 银行卡支付实现class BankCardPay implements PaymentStrategy {@Overridepublic void pay(double amount) {System.out.println("使用银行卡支付:" + amount + "元");// 银行卡支付具体实现逻辑}}// 支付上下文(策略持有者)class PaymentContext {private PaymentStrategy strategy;public PaymentContext(PaymentStrategy strategy) {this.strategy = strategy;}public void setStrategy(PaymentStrategy strategy) {this.strategy = strategy;}public void executePayment(double amount) {strategy.pay(amount);}}// 主类和测试代码public class Main {public static void main(String[] args) {// 创建支付上下文PaymentContext context = new PaymentContext(new WechatPay());// 使用微信支付context.executePayment(100.0);// 切换为支付宝支付context.setStrategy(new Alipay());context.executePayment(200.0);// 切换为银行卡支付context.setStrategy(new BankCardPay());context.executePayment(300.0);}}
查看2道真题和解析
点赞 评论 收藏
分享
评论
1
13
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务