一个云系统的构建(ai实现)

基于 Kubernetes 的云原生博客系统与联邦学习模型训练/推理平台

具体可以查看github项目:项目链接

一、项目整体概述

本项目构建了一个运行于 Kubernetes 集群之上的高度自动化的多工作负载云原生系统,核心目标不仅是功能实现本身,更强调 从模型训练、参数聚合、模型部署到在线推理与业务服务的全流程自动化

系统以 Kubernetes 作为统一调度与控制平面,将模型训练、联邦参数聚合、在线推理服务与 Web 应用服务全部纳入容器编排体系,实现:

  • 训练任务的自动调度与生命周期管理
  • 模型参数聚合流程的自动触发与执行
  • 推理服务的自动部署、自动恢复与自动扩展
  • 博客业务服务与模型服务之间的自动解耦与协同运行

在算法层面,项目采用 PyTorch 框架,基于 LSTM 神经网络结构 实现中文文本情感分类任务,并引入 联邦学习(Federated Learning) 训练范式,训练结束后自动开启相关聚合任务,通过多训练节点协同优化模型参数,同时使用轮次聚合和基于样本权重的的平均,实现对训练过程的优化,在不共享原始数据的前提下完成模型训练,为分布式、自动化训练流程提供算法基础。

在系统层面,项目采用 前后端分离架构 + 微服务化设计,并通过 Kubernetes 对各组件进行容器编排、状态管理与弹性伸缩,使整个系统能够在最少人工干预的情况下完成部署、运行与演化。

阅读更多

记一次ssh禁止密码登陆配置经历

在这篇文章里,我记录一下我最近一次配置ssh禁止密码登陆的经历。我本来打算实现禁止通过ssh密码登陆我的mac笔记本,但是却多次尝试无果,究其原因,是过于自以为是了,以为只要配置了PasswordAuthentication no就可以了,但是实际上还需要配置 KbdInteractiveAuthentication no,明明上面的注释

1
2
3
4
5
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no
# Change to no to disable s/key passwords
KbdInteractiveAuthentication no

就写了但是还是没有注意到,还有一个原因是太相信ai了,最开始ai的解释是PasswordAuthentication no就是配置ssh禁止密码登陆的配置,最后看了网上许多教程和自己反复确认之后,终于明白了,就是要同时配置这两个选项,下面是我最终成功配置的步骤。(中间一步都不能少,内容最好不要改,改了可能就又失败了)。
先修改/etc/ssh/sshd_config文件 添加上面的配置,然后重启ssh服务打开设置,然后在共享里面关闭远程登录,然后重新开启远程登录,最后用另一台机器测试ssh登陆,就可以发现已经成功禁止密码登陆了。

有关vscode的mcp教程

在这篇文章里,我会先介绍一下mcp(Model Context Protocol),并说一下我对mcp的理解,然后我会讲一下,如何使用在vscode中使用mcp,最后,我也会尝试着实现一个简单的mcp server。
这里的mcp server的使用都是基于github copilot的agent模式的(ask模式不支持mcp),其他拓展我暂时还没有尝试过。学生可以通过github student pack免费使用github copilot。至于如何申请github student pack,可以参考这个博主写的Github学生认证及学生包保姆级申请指南,我后面看情况也可能会再写一篇,记住认证的时候一定要有2fa,不然认证不过。

阅读更多

记一次c++qt的成功安装使用

之前因为注册表的原因,屡次安装qt失败,遂放弃,后来发现安装失败是因为注册表残留,然后把注册表残留删除后,成功安装
具体的安装过程记载如下:

阅读更多

vmware 无法使用桥接模式

今天,遇到VMnet1无法将网络更改为桥接状态:没有未桥接的主机网络适配器的问题
在网上找了一圈,没有找到答案,后来仔细思考了一下,发现是自己在恢复虚拟网络
编辑器默认配置时,有一个步骤需要复制vmnetBridge.dll,但是我直接取消了,
所以重新走了一遍恢复默认配置的流程,就成功解决问题了。

wsl自定义内核教程

之前因为要使用的雷达串口驱动是CP210x类型,wsl默认没有对这种串口驱动的支持,
所以就自己编译了一个提供该类型驱动支持的内核,这里就简单记录一下:
如何完成wsl自定义内核的编译。

阅读更多

oh-my-zsh 配置教程

安装zsh

使用ubuntu的话,使用apt安装即可
sudo apt install zsh
安装完成后,可以通过zsh --version检查是否安装成功,
接着使用chsh -s $(which zsh)将zsh设置为默认shell。
然后重新打开一个新的终端,使用echo $SHELL可以检查当前的shell
类型是否是zsh。
如果是其他的操作系统也可以参考onmyzsh wiki上的详细教程
onmyzsh wiki install zsh

阅读更多

github action problem1

今天,在运行使用github action时遇到一下报错,其实就是使用的action package过期了。
This request has been automatically failed because it uses a deprecated version of actions/cache: v2. Please update your workflow to use v3/v4 of actions/cache to avoid interruptions. Learn more: https://github.blog/changelog/2024-12-05-notice-of-upcoming-releases-and-breaking-changes-for-github-actions/#actions-cache-v1-v2-and-actions-toolkit-cache-package-closing-down
解决方法也很简单就更新一下版本就好了,将workflows目录下使用v2 版本package的action全部改成v3或者v4就可以了
像下面这样的地方的v4就是从v2改过来的:
action

c++和python之间性能差距的一点感悟

今天在了解到了strace这个工具,然后就想着用它来看看c++和python之间的性能差距,于是就写了一个简单的程序,然后用strace来查看系统调用的次数,结果发现c++的程序调用次数要远远少于python的程序。

用来测试的c++代码如下:

1
2
3
4
5
6
#include <iostream>

int main(int argc, const char** argv) {
std::cout << "hello world\n";
return 0;
}

用来测试的python代码如下:

1
print("hello world\n")
阅读更多