Bryan Blog

个人分享 但愿各位看官喜欢

来自工业界的 RAG 服务,有道 QAnything 源码全流程深度解析

RAG service from the industry, Youdao QAnything source code in-depth analysis of the entire process

背景介绍 之前在做大模型知识库 RAG 优化时,主要参考的都是学术界的论文。最近了解到有道 QAnything 开源了,在线试用 之后,效果看起来还不错,燃起了探索其实现细节的兴趣。 正好对于 RAG 各个环节的最佳实践存在一些疑问,因此深入查看了有道 QAnything 的完整实现流程,学习下来自工业界大厂有道的实践方案,在这边分享给大家。 本文章基于的是 2024-5 月最新的版本 ...

一种与众不同的 RAG 架构探索

An exploration of a distinctive RAG architecture

背景介绍 在设计检索增强生成 (RAG) 架构时,目前常规的技术方案是基于 LangChain + Faiss 的架构。 这样的架构好处很明显,基于 LangChain 框架可以快速接入大模型,并可以充分利用 LangChain 内置的各个环节的处理能力,利用 Faiss 可以支持离线的向量库构建,简单方便。Faiss 原生的框架可能存在一些薄弱之处,之前的 向量数据库 Faiss 的实践...

向量数据库 Faiss 的实践与增强探索

Practice and enhanced exploration of vector database Faiss

背景介绍 在构建大模型知识库,即检索增强生成 (RAG) 服务时,中间存在一个核心环节就是向量化搜索,如果不希望引入第三方的向量数据库,那么开源的 Faiss 就是一个不错的选择。 Faiss 是 FaceBook 提供的开源向量库搜索库,在 Github 上已经有 28.1k star,相对成熟而且使用方便。 之前构建的 RAG 服务使用的就是 Faiss 提供的向量化搜索服务,Fai...

从开发到部署,搭建离线私有大模型知识库

From development to deployment, build an offline private large model knowledge base

背景介绍 最近一段时间搭建了一套完整的私有大模型知识库,目前完整的服务已经完成测试部署上线。基本之前的实践过程,从工程角度整理技术方案以及中间碰到的一些问题,方便后续对这个方向有需求的研发同学们。 为什么做离线私有化部署 在大模型火热起来之后,很多企业都有尝试相关服务。但是实际会碰到大模型不了解公司个性化的情况,无法针对公司情况给出个性化回答。因此就出现了针对大模型的知识库,通过提供公司内...

人 GPT 协作,从 0 手撸一个量化交易回测平台

Collaborate with GPT,create a quantitative trading backtesting platform from scratch

背景介绍 掌握技能最快的方法就是用技能创造产品,前一阵子对 GPT 辅助编程与项目生成做过较多的调研,但是一直处于试水阶段,没能发挥出 GPT 辅助编程的能力。 本次从新领域入手,借助 GPT 的力量,从 0 手撸一个量化交易回测平台,从这个过程看看 GPT 辅助编程到底有多强,能多大程度帮助程序员,是否有可能替代程序员。 效果展示 实际花费 2 周的休息时间,耗时 116 个番茄钟,从...

难以训练的深度学习

Difficult to train deep learning

背景介绍 深度学习的威力众所周知,但其模型训练过程常伴随着繁琐的挑战。许多人在深度学习的实践中都曾遇到过各种问题,这些问题使得理想模型的训练变得更加复杂。本文将以理论结合实践的方式,探讨深度学习训练过程中常见的问题及相应解决方案,主要涉及以下几个方面: 梯度消失与梯度爆炸 收敛速度缓慢 过拟合 梯度消失与梯度爆炸 是什么(What) 深度学习中模型参数的更新主要使用 梯...

从 0 手撸一个 pytorch

Implementing a simple version of pytorch from 0

背景介绍 最近抽空看了下 Andrej Karpathy 的视频教程 building micrograd,教程的质量很高。教程不需要任何前置机器学习基础,只需要有高中水平的数学基础即可。整个教程从 0 到 1 手撸了一个类 pytorch 的机器学习库 micrograd,核心代码不到 100 行。虽然为了简化没有实现复杂的矩阵运算,但是对于理解 pytorch 的设计思想有很大帮助。 ...

FATE 作业执行全流程追踪

Full process tracking of FATE job execution

背景信息 在最初接触 FATE 源码时就整理过 FATE Flow 源码解析 - 作业提交处理流程,文章整理了 FATE 是如何接收用户提交的作业 (job),然后将作业拆分为独立的任务 (task),然后执行完成各个任务,在这个过程中不断更新作业(job)的执行进度,直到最终完成整个作业(job)。如果期望对 FATE 作业提交的执行流程有一个基础的认识,可以详细了解下之前的文章。 这篇...

最简安全纵向联邦学习实现探索

Exploring the most simplified implementation of secure vertical federated learning

背景介绍 在之前的 FATE 纵向联邦学习实现探索 中介绍了纵向联邦神经网络实现的方案,但是神经网络模型比较复杂,整体的流程也会更复杂,很难简单呈现一个基础的安全纵向联邦的设计思想。因此以纵向联邦线性回归为例,去除与基础纵向联邦无关的部分,由浅入深介绍一个最简化的安全纵向联邦的设计方案。 纵向联邦线性回归 纵向联邦基础思想 前面的 联邦学习下线性回归算法实现概述 中介绍了如何实现最简单的...

深入探索 FATE 纵向联邦学习安全方案

In-depth exploration of FATE vertical federated learning security solution

背景介绍 在之前的 FATE 纵向联邦学习实现探索 介绍了纵向联邦神经网络训练的完整流程,在 深入探索 FATE 纵向联邦学习模型设计方案 详细介绍了纵向联邦神经网络的模型设计方案,但是对于如何在模型训练过程中保证模型的安全性基本都没有深入展开。这篇文章是 FATE 纵向联邦神经网络的最后一篇,补上了安全性这一环。 安全协议 在开始具体的内容的介绍前,需要先了解同态加密以及经典的同态加密实...