RAG 示例:使用 langchain、Redis、llama.cpp 构建一个 kubernetes 知识库问答

11 月 19 日
阅读 3 分钟
95
RAG(Retrieval Augmented Generation 检索增强生成)是目前业界中的一种主流方法,通过增加额外知识的方式来减少大语言模型(LLM)的幻觉问题(一本正经的胡说八道)。

Kubernetes 10 问,测测你对 k8s 的理解程度

11 月 16 日
阅读 3 分钟
168
Kubernetes 10 问假设集群有 2 个 node 节点,其中一个有 pod,另一个则没有,那么新的 pod 会被调度到哪个节点上?应用程序通过容器的形式运行,如果 OOM(Out-of-Memory)了,是容器重启还是所在的 Pod 被重建?应用程序配置如环境变量或者 ConfigMap 可以不重建 Pod 实现动态更新吗?pod 被创建后是稳定的吗,即使用...

Kubernetes Extended Resource 扩展资源使用简介

11 月 6 日
阅读 2 分钟
344
Kubernetes 除了提供基于 CPU 和内存的传统计算资源调度外,还支持自定义的 Extended Resource 扩展资源,以便调度和管理其它各种类型的资源。

Kubernetes Node 节点的生命周期简述

11 月 1 日
阅读 2 分钟
283
Node 节点是 Kubernetes 的核心组件之一,其生命周期可以简要概括为:注册、运行、下线。本文将简要介绍 Node 生命周期中发生的关键事件。

Kubernetes Node 节点上的镜像管理

10 月 29 日
阅读 2 分钟
346
Kubelet 通过 gRPC 协议与 CRI 组件(如 containerd、cri-o)进行交互。在创建新 Pod 时,kubelet 调用 gRPC 的 ImageService.PullImage 方法,由 CRI 组件将镜像下载到节点上。镜像在磁盘上的组织和管理由 CRI 组件负责,不同的 CRI 组件存在差异。

如果自建 ChatGPT,我会如何从 Model、Inference runtime 构建整个系统

10 月 25 日
阅读 3 分钟
333
ChatGPT 是一个基于 LLM 的对话系统。本文将介绍如何构建一个类似 ChatGPT 的系统,包括从模型、推理引擎到整体架构的构建过程。

以翻译 Kubernetes 文档为例,探索 AI 模型 Fine-Tuning 微调

10 月 25 日
阅读 3 分钟
379
在现在的 AI 领域,Fine-Tuning(微调)是一种常见且有效的方法,通过对已经训练好的模型进行特定任务的微调,可以使模型在特定场景下表现得更加出色和符合需求。在这篇文章中,我将以 Kubernetes 文档的英译中为背景,分享我进行 Fine-Tuning 的探索过程。

Kubernetes GPU 调度和 Device Plugin、CDI、NFD、GPU Operator 概述

10 月 20 日
阅读 3 分钟
748
随着人工智能(AI)和机器学习(ML)的快速发展,GPU 已成为 Kubernetes 中不可或缺的资源。然而,Kubernetes 最初设计的调度机制主要针对 CPU 和内存等常规资源,未对异构硬件(如 GPU)提供原生支持。

只想简单跑个 AI 大模型,却发现并不简单

10 月 17 日
阅读 2 分钟
627
之前我用 Ollama 在本地跑大语言模型(可以参考《AI LLM 利器 Ollama 架构和对话处理流程解析》)。这次想再捣鼓点进阶操作,比如 fine-tuning。

AI LLM 利器 Ollama 架构和对话处理流程解析

10 月 15 日
阅读 2 分钟
778
Ollama 是一个快速运行 LLM(Large Language Models,大语言模型)的简便工具。通过 Ollama,用户无需复杂的环境配置,即可轻松与大语言模型对话互动。

Kubernetes:Seccomp、AppArmor、SELinux & Pod 安全性标准和准入

10 月 11 日
阅读 3 分钟
516
在云原生环境中,为确保容器化应用的安全运行,Kubernetes 利用了 Linux 内核的三大安全机制:Seccomp、AppArmor 和 SELinux,并引入了 Pod 安全性标准与准入控制来增强 Pod 的安全性。

Kubernetes: kube-proxy 和 CNI 是如何协作的?

10 月 7 日
阅读 3 分钟
424
在 Kubernetes 中,kube-proxy 和 CNI 插件协同工作,确保集群内 Pod 之间的互联互通。Kube-proxy & CNI如上图所示,假设我们有一个类型为 ClusterIP 的 Service,它对应两个位于不同节点的 Pod。当我们从 Pod A 对该 Service 发起请求时:Pod A: 192.168.0.2 --> service-name(通过域名访问 Service)。CoreDNS 进...

Kubernetes CSI 简介:工作流程和原理

9 月 29 日
阅读 2 分钟
654
本文将会以 CSI driver - NFS 为例,讲述 CSI 驱动的工作流程和原理。CSI 概述CSI 驱动通常分为两个部分:Controller plugin: 负责存储资源的管理,如卷的创建、删除、扩容、快照等。Node plugin: 处理节点级别的存储操作,负责在具体的节点上执行卷的挂载和卸载等任务。CSI 与 kubernetes 组件的交互:Controller plugi...

OCI 简介:Kubernetes 环境下从代码到容器的全流程

9 月 26 日
阅读 3 分钟
645
在容器化技术的演进中,OCI(Open Container Initiative)提供了一套标准化的规范,帮助统一容器的构建、分发和运行。OCI 规范包含三个部分:

kubectl 执行一条命令之后发生了什么?

9 月 22 日
阅读 2 分钟
415
kubectl 是与 Kubernetes 集群交互的命令行工具,用户通过它可以对集群资源进行操作和管理。你有没有想过,当我们执行一条 kubectl 命令之后,背后都发生了什么?

Kubernetes 集群内 DNS

9 月 18 日
阅读 3 分钟
334
在互联网早期,随着连接设备数量的增加,IP 地址的管理与记忆变得越来越复杂。为了简化网络资源的访问,DNS(Domain Name System)应运而生。DNS 的核心作用是将用户可读的域名(如 www.example.com)解析为对应的 IP 地址(如 93.184.215.34),从而使用户无需记忆复杂的数字串,便能轻松访问全球各地的网络资源。

Kubernetes CNI 网络模型概览:VETH & Bridge / Overlay / BGP

9 月 13 日
阅读 4 分钟
666
pods can communicate with all other pods on any other node without NATagents on a node (e.g. system daemons, kubelet) can communicate with all pods on that node

Kubernetes 之 kubelet 与 CRI、CNI 的交互过程

9 月 7 日
阅读 2 分钟
529
序言当一个新的 Pod 被提交创建之后,Kubelet、CRI、CNI 这三个组件之间进行了哪些交互?Kubelet -> CRI -> CNI如上图所示:Kubelet 从 kube-api-server 处监听到有新的 pod 被调度到了自己的节点且需要创建。Kubelet 创建 sandbox 并配置好 Pod 的环境,其中包括:Kubelet 通过 gRPC 调用 CRI 组件创建 sandbox。...

Kubernetes 网关流量管理:Ingress 与 Gateway API

8 月 31 日
阅读 4 分钟
873
随着 Kubernetes 在云原生领域的广泛使用,流量管理成为了至关重要的一环。为了有效地管理从外部流入集群的流量,Kubernetes 提供了多种解决方案,其中最常见的是 Ingress 和新兴的 Gateway API。

图解计算机网络:一条 HTTP 请求的网络拓扑之旅

8 月 24 日
阅读 2 分钟
397
在此拓扑中,终端设备通过 WiFi 连接到路由器,路由器再连接到光猫(或终端设备通过移动网络 4G/5G 连接到基站),之后 ISP 网络服务提供商接管网络通信,将请求最终转发至应用服务器。

DDIA 分布式数据的分区与复制 - 基于 Redis、Kafka、Elasticsearch 的深入分析

8 月 22 日
阅读 3 分钟
426
本文基于《Designing Data-Intensive Applications》一书(设计数据密集型应用,简称 DDIA),深入探讨了 Redis、Kafka 和 Elasticsearch 等常用组件的分区与复制机制。通过这些案例分析,我们可以更好地理解分布式系统的基本原理和实际应用。

典型系统架构的百万并发理论分析

8 月 15 日
阅读 2 分钟
292
引言本文将会描述一个典型的系统架构,然后分析其在理论上是否能够支撑百万并发的请求。典型系统架构及分析为了降低复杂性,笔者将系统简化为了下图所示:该系统架构包含的组件有:网关层:Load Balancer / API Gateway服务层:HTTP Server中间件:Redis、MQ存储层:MySQL / PostgreSQL忽略业务场景的复杂性,让我们依次...

Redis 全文检索及使用示例

7 月 16 日
阅读 4 分钟
573
Redis 除了我们所熟知的缓存功能之外,还通过 RedisJSON、RediSearch、RedisTimeSeries、RedisBloom 等模块支持了 JSON 数据、查询与搜索(包括全文检索、向量搜索、GEO 地理位置等)、时序数据、概率计算等等扩展功能。这些模块既可以按需导入,也被全部打包到了 Redis Stack 中方便我们直接使用。

Redis 向量搜索

7 月 9 日
阅读 6 分钟
960
Redis 除了我们所熟知的缓存功能之外,还通过 RedisJSON、RediSearch、RedisTimeSeries、RedisBloom 等模块支持了 JSON 数据、查询与搜索(包括全文搜索、向量搜索、GEO 地理位置等)、时序数据、概率计算等等扩展功能。这些模块既可以按需导入,也被全部打包到了 Redis Stack 中方便我们直接使用。

以图搜图架构优化:使用客户端模型提取图像特征

7 月 4 日
阅读 4 分钟
619
以图搜图系统指的是从图像内容提取特征向量,然后使用向量数据库进行向量数据的插入、删除、相似性检索等操作,进而提供根据图像内容搜索出具有相似内容的其它图像的功能。

Kubernetes scheduler 概述及自定义调度器

6 月 15 日
阅读 5 分钟
710
kube-scheduler 是 k8s 集群中控制平面的一个重要组件,其负责的工作简单且专一:给未分配的 pod 分配一个 node 节点。

Kubernetes Service 与 long-lived connections

6 月 12 日
阅读 2 分钟
471
本文将会介绍:从 pod 到 service 再到 pod,kubernetes 中的流量是怎么走的?对于 long-lived connection 长连接又是怎样的情况?从 pod 到 service 再到 pod如上图所示:1、我们先创建一个多副本的 deployment,k8s 会通过 CNI(容器网络接口)给每个 pod 分配一个集群内可达的 IP 地址。2、我们随后创建一个类型为 cl...

我的 2024 年 Elasticsearch 认证考试经验与真题回顾

3 月 18 日
阅读 5 分钟
638
我于 2024 年 3 月 14 日参加了 Elastic Certified Engineer(ECE)认证考试,并与 18 日收到了考试通过的邮件。本文将会回顾我的考试过程、考试真题、个人感受。

我的 2024 年 CKA 认证两天速通攻略

3 月 18 日
阅读 2 分钟
2.6k
如上图所示,本人于 2024 年 1 月 22 号晚上 11 点进行了 CKA 的认证考试,并以 95 分(满分100)顺利通过拿证。本文将会介绍我的 CKA 考试心得和速通攻略。

Redis Stack 不只是缓存之 RedisJSON

3 月 18 日
阅读 7 分钟
618
虽然 Redis 作为一个 key-value 数据库早已被广泛应用于各种缓存相关的场景,然而其团队的却并未故步自封,他们希望更进一步为开发者提供一个不只有缓存功能的强大的实时数据平台,用于处理所有实时数据的应用场景。