
引言
现在市面有有非常多的大模型应用平台:Dify AI、FastGPT、Bisheng、Ragflow等等。但是这些平台基本都是面向C端的,企业端使用缺少了很多必要元素:权限管理、组织结构管理、账户体系等。对于B端改造,笔者最近在探索基于Ragflow(主要看中了它的Rag能力)进行二次开发,特写此篇文章供大家参阅。本文将深入分析RAGFlow的整体架构设计、关键技术点以及二次开发的一些注意事项。
一、RAGFlow概述
RAGFlow是由InfiniFlow团队开源的RAG引擎,其核心理念是"Quality in, quality out"(优质输入,优质输出)。与传统RAG系统不同,RAGFlow基于深度文档理解技术,能够处理复杂格式的文档,提供具有可追溯引用的准确答案。
核心特性
-
深度文档理解:基于DeepDoc技术的知识抽取
-
模板化分块:智能且可解释的文档分块策略
-
减少幻觉:通过可视化分块和可追溯引用降低AI幻觉
-
异构数据兼容:支持Word、Excel、PDF、图片等多种格式
-
自动化RAG工作流:适用于个人和企业的流水线编排(个人试用起来觉得很弱,没有Dify AI,FastGpt等的好用)
二、系统架构深度解析
2.1 整体架构设计
RAGFlow采用了现代化的微服务架构,主要包含以下几个核心层次:
RAGFlow架构图
2.2 核心模块分析
2.2.1. API服务层设计
RAGFlow的API层基于Flask框架及peewee ORM构建,具有以下特点:
-
模块化设计:将不同功能划分为独立的应用模块(apps目录)
-
统一认证:支持多种OAuth认证方式(GitHub、飞书等)
-
自动路由配置:通过文件名后缀自动进行路由接口注册
# 核心服务启动流程 (来源: api/ragflow_server.py)
if __name__ == '__main__':
logging.info(f'RAGFlow version: {get_ragflow_version()}')
show_configs()
settings.init_settings()
print_rag_settings()
# init db
init_web_db()
init_web_data()
# init runtime config
RuntimeConfig.init_env()
RuntimeConfig.init_config(JOB_SERVER_HOST=settings.HOST_IP, HTTP_PORT=settings.HOST_PORT)
# start http server
run_simple(
hostname=settings.HOST_IP,
port=settings.HOST_PORT,
application=app,
threaded=True,
use_reloader=RuntimeConfig.DEBUG,
use_debugger=RuntimeConfig.DEBUG,
)
2.2.2. RAG核心引擎
RAG核心模块位于rag/目录,包含检索、生成、评估等关键组件:
-
搜索引擎:支持Elasticsearch、Infinity、OpenSearch等多种向量数据库
-
嵌入模型:集成多种嵌入模型,支持本地和云端部署
-
重排序:融合多路召回结果,提升检索精度
-
LLM集成:支持OpenAI、千问、ChatGLM等主流大模型
# RAG核心搜索实现 (来源: rag/nlp/search.py)
class Dealer:
def __init__(self, dataStore: DocStoreConnection):
self.qryr = query.FulltextQueryer()
self.dataStore = dataStore
def get_vector(self, txt, emb_mdl, topk=10, similarity=0.1):
qv, _ = emb_mdl.encode_queries(txt)
shape = np.array(qv).shape
if len(shape) > 1:
raise Exception(
f"Dealer.get_vector returned array's shape {shape} doesn't match expectation(exact one dimension).")
embedding_data = [get_float(v) for v in qv]
vector_column_name = f"q_{len(embedding_data)}_vec"
return MatchDenseExpr(vector_column_name, embedding_data, 'float', 'cosine', topk, {"similarity": similarity})
def search(self, req, idx_names: str | list[str], kb_ids: list[str], emb_mdl=None, highlight=False):
filters = self.get_filters(req)
orderBy = OrderByExpr()
pg = int(req.get("page", 1)) - 1
topk = int(req.get("topk", 1024))
ps = int(req.get("size", topk))
# 实际搜索逻辑...
2.2.3. DeepDoc文档理解
DeepDoc是RAGFlow的核心创新,实现了深度文档理解:
-
Vision视觉模块: 基于深度学习的文档视觉理解
-
Parser解析器: 多格式文档的结构化解析
-
结构化提取: 保持文档原始逻辑结构和视觉布局
-
质量评估: 解析结果的质量评估和异常检测
# 文档解析器架构
parsers = {
'pdf': PDFParser,
'docx': DocxParser,
'xlsx': ExcelParser,
'pptx': PPTParser,
'html': HtmlParser,
'txt': TxtParser
}
2.2.4. Agent智能代理系统
Agent模块提供了可视化的工作流编排能力:
-
画布设计器:可视化的工作流设计界面
-
组件库管理:预定义和自定义组件的管理
-
工作流引擎:支持条件分支、循环、并行等控制结构
-
状态管理:执行过程中的状态持久化和恢复
Agent系统基于DSL配置和组件化架构,支持复杂的工作流编排和执行。
2.2.5. GraphRAG知识图谱
GraphRAG模块实现了基于知识图谱的增强检索:
与RAG核心层的区别:
-
RAG核心层:基于文档块的平面检索,关注语义相似性
-
GraphRAG层:基于实体关系的图结构检索,关注知识关联性
核心功能:
-
知识图谱构建:从文档中抽取实体和关系
-
实体关系抽取:NER + 关系抽取的pipeline
-
图推理搜索:基于图结构的多跳推理
-
查询重写:将自然语言问题转换为图查询
该模块支持查询重写、实体扩展和图谱推理等高级功能。
2.2.6. Web前端架构
RAGFlow的前端采用了现代化的React技术栈,具有以下技术特点:
核心技术栈:
-
框架基础:基于UmiJS 4.0 + React 18 + TypeScript
-
UI组件库:Ant Design 5.x + Radix UI + Tailwind CSS
-
状态管理:Zustand + TanStack Query (React Query)
-
路由管理:UmiJS内置路由系统
-
国际化:react-i18next多语言支持
架构特色:
-
组件化设计:高度模块化的UI组件体系
-
数据流管理:TanStack Query处理服务端状态
-
类型安全:完整的TypeScript类型定义
-
响应式设计:适配桌面端和移动端
-
主题系统:支持明暗主题切换
可视化能力:
-
工作流设计器:基于ReactFlow的可视化编排
-
PDF预览器:支持文档在线预览和标注
-
图表组件:使用Recharts进行数据可视化
-
Markdown渲染:富文本内容的渲染和编辑
2.2.7 数据存储架构
RAGFlow采用了多层次的数据存储策略:
-
关系型数据库(MySQL):存储元数据、用户信息、配置等
-
向量数据库(ES/Infinity):存储文档向量和全文索引
-
缓存系统(Redis):缓存检索结果和会话状态
-
对象存储(MinIO/S3):存储原始文件和处理结果
三、关键技术深度剖析
RAGFlow的分块策略是其核心竞争力之一,采用了模板化的分块方法,针对不同文档类型设计了专门的分块模板:
3.1 分块策略总览
RAGFlow提供了12种针对性的分块策略,每种策略都专门优化了特定类型文档的处理:
class ParserType(StrEnum):
PRESENTATION = "presentation" # 演示文稿
LAWS = "laws" # 法律文档
MANUAL = "manual" # 用户手册
PAPER = "paper" # 学术论文
RESUME = "resume" # 简历文档
BOOK = "book" # 书籍文档
QA = "qa" # 问答对话
TABLE = "table" # 表格数据
NAIVE = "naive" # 通用分块
PICTURE = "picture" # 图片文档
ONE = "one" # 单文档
EMAIL = "email" # 邮件文档
3.2 各分块策略详细分析
3.2.1. NAIVE - 通用分块策略
适用场景:通用文档、技术文档、报告等核心特点:
-
基于分隔符的文本切分
-
支持多种分隔符:
"\n!?。;!?" -
可配置的Token数量限制
-
自动图文混合处理
应用场景:
-
✅ 技术文档和API文档
-
✅ 企业报告和分析文档
-
✅ 新闻文章和博客
-
✅ 通用PDF和Word文档
3.2.2. PAPER - 学术论文分块策略
适用场景:学术论文、研究报告、技术白皮书核心特点:
-
识别论文结构(摘要、引言、方法、结论等)
-
保持引用和公式的完整性
-
特殊处理图表和参考文献
-
按照学术论文的逻辑结构进行智能分块
应用场景:
-
✅ 学术论文数据库
-
✅ 研究机构知识库
-
✅ 技术专利文档
-
✅ 科研报告系统
3.2.3. BOOK - 书籍分块策略
适用场景:电子书、长篇文档、教材核心特点:
-
章节层次结构识别
-
目录和索引处理
-
分页信息保留
-
使用层次化合并算法处理书籍结构
应用场景:
-
✅ 电子图书馆
-
✅ 在线教育平台
-
✅ 技术手册系统
-
✅ 法规条文库
3.2.4. MANUAL - 用户手册分块策略
适用场景:用户手册、操作指南、API文档核心特点:
-
步骤流程识别
-
代码块特殊处理
-
图文配对保持
-
保持操作步骤的逻辑完整性
应用场景:
-
✅ 软件用户手册
-
✅ 设备操作指南
-
✅ API技术文档
-
✅ 培训教材
3.2.5. QA - 问答对分块策略
适用场景:FAQ文档、问答知识库、客服对话核心特点:
-
问答对完整保持
-
相关问题聚合
-
上下文关联处理
应用场景:
-
✅ 客服知识库
-
✅ FAQ系统
-
✅ 在线问答平台
-
✅ 技术支持文档
3.2.6. LAWS - 法律文档分块策略
适用场景:法律条文、法规文件、合同文档核心特点:
-
条文层次结构保持
-
法条引用关系维护
-
层级编号识别
应用场景:
-
✅ 法律条文库
-
✅ 合同管理系统
-
✅ 法规查询平台
-
✅ 律师事务所知识库
3.2.7. RESUME - 简历分块策略
适用场景:个人简历、人员档案核心特点:
-
结构化信息提取
-
时间线信息保持
-
关键技能识别
-
按简历模块进行分块处理
应用场景:
-
✅ 人力资源系统
-
✅ 招聘平台
-
✅ 人才数据库
-
✅ 员工档案管理
3.2.8. PRESENTATION - 演示文稿分块策略
适用场景:PPT演示文稿、幻灯片文档核心特点:
-
每页独立分块
-
幻灯片缩略图保存
-
演讲备注处理
应用场景:
-
✅ 企业培训资料
-
✅ 学术演讲存档
-
✅ 产品介绍文档
-
✅ 会议演示材料
3.2.9. TABLE - 表格分块策略
适用场景:Excel表格、CSV数据、数据报表核心特点:
-
表格结构保持
-
列标题关联
-
数据完整性保证
-
按行或按表格单元进行分块
应用场景:
-
✅ 财务数据分析
-
✅ 销售报表系统
-
✅ 统计数据库
-
✅ 业务数据平台
3.3 分块策略选择指南
选择合适的分块策略对RAG效果至关重要,下表提供一些选择建议:
|
文档类型 |
推荐策略 |
关键特点 |
适用场景 |
|---|---|---|---|
|
通用文档 |
NAIVE |
通用性强,配置灵活 |
企业文档、技术资料 |
|
学术论文 |
PAPER |
结构化处理,引用保持 |
科研机构、学术平台 |
|
电子书籍 |
BOOK |
章节识别,层次分明 |
图书馆、教育平台 |
|
操作手册 |
MANUAL |
步骤保持,图文配对 |
技术文档、用户指南 |
|
问答文档 |
QA |
问答完整,关联处理 |
客服系统、FAQ |
|
法律文档 |
LAWS |
条文完整,引用关系 |
法务系统、合规平台 |
|
个人简历 |
RESUME |
结构化提取,时间线 |
HR系统、招聘平台 |
|
演示文稿 |
PRESENTATION |
页面独立,视觉保持 |
培训系统、展示平台 |
3.4 多路召回与融合重排
RAGFlow采用多路召回策略,结合向量检索和全文检索,通过融合重排算法提升检索精度。系统支持多种相似度计算方法和重排序算法,能够根据不同场景自动选择最优的检索策略。
技术特点:
-
多路召回:结合向量检索和全文检索
-
智能融合:基于相关性分数的结果合并
-
重排序优化:使用专门的重排序模型提升精度
3.5 LLM抽象层设计
RAGFlow设计了统一的LLM抽象层,支持多种大模型。通过标准化的接口设计,系统可以无缝切换不同的大语言模型,包括对话、嵌入、重排序等多种模型类型。
支持的模型厂商:
-
OpenAI (GPT系列)
-
阿里云 (通义千问)
-
智谱AI (ChatGLM)
-
百度 (文心一言)
-
本地模型 (Ollama)
-
其他模型提供商
3.6 分布式架构支持
# docker-***pose配置示例
services:
ragflow:
image: infiniflow/ragflow:v0.18.0
depends_on:
- mysql
- elasticsearch
- redis
- minio
架构优势:
-
容器化部署:基于Docker的标准化部署
-
服务解耦:各组件独立部署和扩展
-
高可用性:支持集群部署和故障转移
四、二次开发指南
4.1 RAGFlow现有局限性分析
尽管RAGFlow在RAG技术领域表现出色,但作为一个开源项目,它仍然存在一些局限性,特别是在企业级应用场景中。了解这些局限性有助于开发者明确二次开发的方向和重点。
4.1.1 用户定位局限性
C端导向设计:
-
RAGFlow主要面向个人用户和小团队设计,缺乏企业级的复杂业务场景支持
-
用户管理功能相对简单,无法满足大型组织的层级管理需求
-
缺乏多租户隔离机制,难以支持SaaS化部署
权限管理不完善:
-
权限体系过于简单,只有基础的用户角色区分
-
缺乏细粒度的权限控制,如文档级别、功能级别的权限管理
-
没有完整的审批流程和操作日志追踪机制
-
缺乏数据安全相关的访问控制策略
4.1.2 企业级功能缺失
监控和运维能力不足:
-
缺乏完善的系统监控和告警机制
-
性能监控指标不够全面,难以进行深度性能分析
-
日志管理功能较为基础,缺乏结构化的日志分析
-
没有完整的备份恢复机制和灾难恢复方案
数据管理功能不完善:
-
缺乏数据生命周期管理功能
-
没有完整的数据导入导出工具
-
数据备份和版本控制机制较为简单
-
缺乏数据质量监控和清理工具
4.1.3 性能和扩展性限制
并发处理能力:
-
在高并发场景下的性能表现有待提升
-
缺乏完善的负载均衡和集群部署方案
-
内存和CPU使用优化空间较大
存储和检索优化:
-
大规模数据处理的优化不够充分
-
检索性能在数据量增长时会有明显下降
-
缺乏智能的数据分片和索引优化策略
4.2 二次开发的必要性和方向
基于以上分析,企业在采用RAGFlow时通常需要进行二次开发,主要方向包括:
-
企业级权限管理系统:构建完善的基于组织架构的RBAC权限体系
-
用户界面重构:设计符合企业品牌和用户体验的界面
-
系统集成开发:与企业现有系统进行深度集成
-
性能优化改造:针对大规模数据场景进行性能优化
-
行业特定功能开发:添加行业专用的业务逻辑和合规功能
-
运维监控系统:构建完善的监控、告警和运维管理系统
4.3 开发环境搭建
# 1. 克隆代码
git clone https://github.***/infiniflow/ragflow.git
# 2. 安装依赖
cd ragflow
uv sync --python 3.10 --all-extras
# 3. 启动依赖服务
docker ***pose -f docker/docker-***pose-base.yml up -d
# 4. 启动后端服务
source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
# 5. 启动前端服务
cd web
npm install
npm run dev
4.4 核心扩展点
4.4.1. 自定义文档解析器
from deepdoc.parser import PdfParser
class CustomParser(PdfParser):
def __call__(self, filename, binary=None, from_page=0, to_page=100000):
# 实现自定义解析逻辑
# 返回标准格式的解析结果
pass
# 注册自定义解析器
PARSERS['custom'] = CustomParser
4.4.2. 扩展Agent组件
from agent.***ponent.base import ***ponentBase
class Custom***ponent(***ponentBase):
***ponent_name = "Custom"
def _run(self, history, **kwargs):
# 实现自定义组件逻辑
return Custom***ponent.be_output("处理结果")
4.4.3 API扩展
在api/apps/目录下创建新的API模块,api的构建路径:dbmodel->service->app:
from flask import Blueprint
from api.utils import get_json_result
bp = Blueprint('custom_api', __name__, url_prefix='/api/v1/custom')
@bp.route('/endpoint', methods=['POST'])
def custom_endpoint():
# 实现自定义API逻辑
return get_json_result(data=result)
4.4.4 数据库扩展
from api.db.db_models import DB
from peewee import CharField, IntegerField
class CustomModel(DB.Model):
id = CharField(primary_key=True)
name = CharField(max_length=255)
status = IntegerField(default=0)
class Meta:
table_name = "custom_table"
4.4.5 前端二开
布局调整
// web/src/layouts/index.tsx
const App: React.FC = () => {
const {
token: { colorBgContainer, borderRadiusLG },
} = theme.useToken();
return (
<Layout className={styles.layout}>
<Layout>
<Sider></Sider>
<Divider type='vertical' className={styles.divider} />
<Content
style={{
minHeight: 280,
background: colorBgContainer,
borderRadius: borderRadiusLG,
overflow: 'auto',
// display: 'flex',
}}
>
<Outlet />
</Content>
</Layout>
</Layout>
);
};
自定义页面组件
// src/pages/custom/index.tsx
import { PageContainer } from'@ant-design/pro-***ponents';
import { Card } from'antd';
import React from'react';
const CustomPage: React.FC = () => {
return (
<PageContainer>
<Card title="自定义页面">
{/* 页面内容 */}
</Card>
</PageContainer>
);
};
exportdefault CustomPage;
自定义Hook开发
// src/hooks/use-custom-data.ts
import { useQuery } from '@tanstack/react-query';
import customService from '@/services/custom-service';
export const useCustomData = (id: string) => {
return useQuery({
queryKey: ['custom-data', id],
queryFn: () => customService.getData(id),
enabled: !!id,
});
};
扩展路由配置
// src/routes.ts 中添加新路由
{
path: '/custom',
name: 'Custom',
***ponent: '@/pages/custom',
a***ess: 'normalRouteFilter',
}
路由权限控制
// src/routes.ts
{
path: '/',
***ponent: '@/layouts',
layout: false,
wrappers: ['@/wrappers/auth', '@/wrappers/permission'],
routes: [
{ path: '/', redirect: '/applications' },
{
path: Routes.Applications,
***ponent: '@/pages/applications',
},
{
path: '/knowledge',
***ponent: '@/pages/knowledge',
},
],
}
// src/wrappers
import { useFetchUserInfo } from'@/hooks/user-setting-hooks';
import { useEffect, useRef } from'react';
import { Outlet, useLocation, useNavigate } from'umi';
import { Spin } from'antd';
// Map each route path to its required permission code
const routePermissionMap: Record<string, string> = {
'/knowledge': 'knowledge',
'/chat': 'chat',
'/search': 'search',
'/flow': 'flow',
'/file': 'file',
'/sys-setting': 'sys-setting',
// Add all other routes that need permission checks
};
exportdefault () => {
const { data: userInfo, loading } = useFetchUserInfo();
// 将userInfo存入localStorage
localStorage.setItem('userInfo', JSON.stringify(userInfo));
const location = useLocation();
const navigate = useNavigate();
const permissions = userInfo.permissions || [];
// 记录最后重定向的路径,用于防止同一路径重复重定向
const lastRedirectPath = useRef<string | null>(null);
// Get the base route path (e.g., /sys-setting/role -> /sys-setting)
const getBaseRoute = (path: string): string => {
const segments = path.split('/').filter(Boolean);
if (segments.length > 0) {
return`/${segments[0]}`;
}
return'/';
};
// 在用户信息加载完成后执行权限检查
useEffect(() => {
// 如果用户信息正在加载,则等待
if (loading) return;
const currentPath = location.pathname;
// 如果路径变化,重置重定向状态
if (currentPath !== lastRedirectPath.current) {
lastRedirectPath.current = null;
}
const currentBasePath = getBaseRoute(currentPath);
// 检查当前路径是否需要权限
if (currentBasePath in routePermissionMap) {
const requiredPermission = routePermissionMap[currentBasePath];
// 如果用户没有所需权限且没有重定向过,则重定向到应用页面
if (!permissions.includes(requiredPermission) && !lastRedirectPath.current) {
console.log(`User lacks permission "${requiredPermission}" for ${currentBasePath}, redirecting to /applications`);
lastRedirectPath.current = currentPath;
navigate('/applications');
}
}
}, [location.pathname, userInfo.id, permissions, loading]);
if (loading && !userInfo.id) {
return (
<div className="flex items-center justify-center h-screen">
<Spin size="large" tip="Loading..." />
</div>
);
}
return <Outlet />;
};
五、二开效果图
六、实际应用场景
6.1 企业知识库
-
文档管理:统一管理企业内部文档
-
智能问答:员工可以快速查找相关信息
-
知识沉淀:将专家经验转化为可检索的知识
6.2 客服系统
-
问题分类:自动识别用户问题类型
-
答案推荐:基于历史对话推荐解决方案
-
工单处理:智能分析工单内容并推荐处理方式
6.3 法律咨询
-
案例检索:基于案例相似度检索相关判例
-
法条匹配:自动匹配相关法律条文
-
风险评估:分析案件风险和胜诉概率
还有很多就不一一举例,主要是需要契合企业内部需求。
结语
本文主要介绍了Ragfow的整体架构以及一些关键技术点,另外也介绍了针对企业端进行定制化开发需要关注的一些点及对应调整方案说明。希望本文章能够对大家有所帮助,觉得有帮助的话麻烦给个关注,感谢老铁们。
一、大模型风口已至:月薪30K+的AI岗正在批量诞生
2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
二、如何学习大模型 AI ?
🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
* 大模型 AI 能干什么?
* 大模型是怎样获得「智能」的?
* 用好 AI 的核心心法
* 大模型应用业务架构
* 大模型应用技术架构
* 代码示例:向 GPT-3.5 灌入新知识
* 提示工程的意义和核心思想
* Prompt 典型构成
* 指令调优方法论
* 思维链和思维树
* Prompt 攻击和防范
* …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
* 为什么要做 RAG
* 搭建一个简单的 ChatPDF
* 检索的基础概念
* 什么是向量表示(Embeddings)
* 向量数据库与向量检索
* 基于向量检索的 RAG
* 搭建 RAG 系统的扩展知识
* 混合检索与 RAG-Fusion 简介
* 向量模型本地部署
* …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
* 为什么要做 RAG
* 什么是模型
* 什么是模型训练
* 求解器 & 损失函数简介
* 小实验2:手写一个简单的神经网络并训练它
* 什么是训练/预训练/微调/轻量化微调
* Transformer结构简介
* 轻量化微调
* 实验数据集的构建
* …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
* 硬件选型
* 带你了解全球大模型
* 使用国产大模型服务
* 搭建 OpenAI 代理
* 热身:基于阿里云 PAI 部署 Stable Diffusion
* 在本地计算机运行大模型
* 大模型的私有化部署
* 基于 vLLM 部署大模型
* 案例:如何优雅地在阿里云私有部署开源大模型
* 部署一套开源 LLM 项目
* 内容安全
* 互联网信息服务算法备案
* …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】