动手做一个最小RAG——TinyRAG

 Datawhale干货 

作者:宋志学,Datawhale成员

大家好,我是不要葱姜蒜。

接下来我会带领大家一步一步地实现一个简单的RAG模型,这个模型是基于RAG的一个简化版本,我们称之为Tiny-RAG。Tiny-RAG是一个基于RAG的简化版本,它只包含了RAG的核心功能,即Retrieval和Generation。Tiny-RAG的目的是为了帮助大家更好地理解RAG模型的原理和实现。

OK,让我们开始吧!

1. RAG 介绍

LLM会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。

正是在这样的背景下,检索增强生成技术(Retrieval-Augmented Generation,RAG)应时而生,成为 AI 时代的一大趋势。

RAG 通过在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程,极大地提升了内容的准确性和相关性。RAG 有效地缓解了幻觉问题,提高了知识更新的速度,并增强了内容生成的可追溯性,使得大型语言模型在实际应用中变得更加实用和可信。

RAG的基本结构有哪些呢?

  • 要有一个向量化模块,用来将文档片段向量化。

  • 要有一个文档加载和切分的模块,用来加载文档并切分成文档片段。

  • 要有一个数据库来存放文档片段和对应的向量表示。

  • 要有一个检索模块,用来根据 Query (问题)检索相关的文档片段。

  • 要有一个大模型模块,用来根据检索出来的文档回答用户的问题。

OK,那上述这些也就是 TinyRAG 仓库的所有模块内容。

a3405c63b7919a09fc13eb45eb6a2d12.png

那接下来,让我们梳理一下 RAG 的流程是什么样的呢?

  • 索引:将文档库分割成较短的 Chunk,并通过编码器构建向量索引。

  • 检索:根据问题和 chunks 的相似度检索相关文档片段。

  • 生成:以检索到的上下文为条件,生成问题的回答。

那也就是下图所示的流程,图片出处  Retrieval-Augmented Generation for Large Language Models: A Survey

2db79056383ec70629633a18df5ece49.png

2. 向量化

首先让我们来动手实现一个向量化的类,这是RAG架构的基础。向量化的类主要是用来将文档片段向量化,将一段文本映射为一个向量。

那首先我们要设置一个 Embedding 基类,这样我们再用其他的模型的时候,只需要继承这个基类,然后在此基础上进行修改即可,方便代码扩展。

class BaseEmbeddings:
    """
    Base class for embeddings
    """
    def __init__(self, path: str, is_api: bool) -> None:
        self.path = path
        self.is_api = is_api
    
    def get_embedding(self, text: str, model: str) -> List[float]:
        raise NotImplementedError
    
    @classmethod
    def cosine_similarity(cls, vector1: List[float], vector2: List[float]) -> float:
        """
        calculate cosine similarity between two vectors
        """
        dot_product = np.dot(vector1, vector2)
        magnitude = np.linalg.norm(vector1) * np.linalg.norm(vector2)
        if not magnitude:
            return 0
        return dot_product / magnitude

观察一下BaseEmbeddings基类都有什么方法,首先有一个get_embedding方法,这个方法是用来获取文本的向量表示的,然后有一个cosine_similarity方法,这个方法是用来计算两个向量之间的余弦相似度的。其次在初始化类的时候设置了,模型的路径或者是否是API模型。比如使用OpenAI的Embedding API的话就需要设置self.is_api=Ture

继承BaseEmbeddings类的话,就只需要编写get_embedding方法即可,cosine_similarity方法会被继承下来,直接用就行。这就是编写基类的好处。

class OpenAIEmbedding(BaseEmbeddings):
    """
    class for OpenAI embeddings
    """
    def __init__(self, path: str = '', is_api: bool = True) -> None:
        super().__init__(path, is_api)
        if self.is_api:
            from openai import OpenAI
            self.client = OpenAI()
            self.client.api_key = os.getenv("OPENAI_API_KEY")
            self.client.base_url = os.getenv("OPENAI_BASE_URL")
    
    def get_embedding(self, text: str, model: str = "text-embedding-3-large") -> List[float]:
        if self.is_api:
            text = text.replace("\n", " ")
            return self.client.embeddings.create(input=[text], model=model).data[0].embedding
        else:
            raise NotImplementedError

3. 文档加载和切分

接下来我们来实现一个文档加载和切分的类,这个类主要是用来加载文档并切分成文档片段。

那我们都需要切分什么文档呢?这个文档可以是一篇文章,一本书,一段对话,一段代码等等。这个文档的内容可以是任何的,只要是文本就行。比如:pdf文件、md文件、txt文件等等。

这里只展示一部分内容了,完整的代码可以在 RAG/utils.py 文件中找到。在这个代码中可以看到,能加载的文件类型有:pdf、md、txt,只需要编写对应的函数即可。

def read_file_content(cls, file_path: str):
    # 根据文件扩展名选择读取方法
    if file_path.endswith('.pdf'):
        return cls.read_pdf(file_path)
    elif file_path.endswith('.md'):
        return cls.read_markdown(file_path)
    elif file_path.endswith('.txt'):
        return cls.read_text(file_path)
    else:
        raise ValueError("Unsupported file type")

那我们把文件内容都读取之后,还需要切分呀!那怎么切分呢,OK,接下来咱们就按 Token 的长度来切分文档。我们可以设置一个最大的 Token 长度,然后根据这个最大的 Token 长度来切分文档。这样切分出来的文档片段就是一个一个的差不多相同长度的文档片段了。

不过在切分的时候要注意,片段与片段之间最好要有一些重叠的内容,这样才能保证检索的时候能够检索到相关的文档片段。还有就是切分文档的时候最好以句子为单位,也就是按 \n 进行粗切分,这样可以基本保证句子内容是完整的。

def get_chunk(cls, text: str, max_token_len: int = 600, cover_content: int = 150):
    chunk_text = []

    curr_len = 0
    curr_chunk = ''

    lines = text.split('\n')  # 假设以换行符分割文本为行

    for line in lines:
        line = line.replace(' ', '')
        line_len = len(enc.encode(line))
        if line_len > max_token_len:
            print('warning line_len = ', line_len)
        if curr_len + line_len <= max_token_len:
            curr_chunk += line
            curr_chunk += '\n'
            curr_len += line_len
            curr_len += 1
        else:
            chunk_text.append(curr_chunk)
            curr_chunk = curr_chunk[-cover_content:]+line
            curr_len = line_len + cover_content

    if curr_chunk:
        chunk_text.append(curr_chunk)

    return chunk_text

4. 数据库 && 向量检索

上面,我们做好了文档切分,也做好了 Embedding 模型的加载。那接下来就得设计一个向量数据库用来存放文档片段和对应的向量表示了。

还有就是也要设计一个检索模块,用来根据 Query (问题)检索相关的文档片段。OK,我们冲冲冲!

一个数据库对于最小RAG架构来说,需要实现几个功能呢?

  • persist:数据库持久化,本地保存

  • load_vector:从本地加载数据库

  • get_vector:获得文档的向量表示

  • query:根据问题检索相关的文档片段

嗯嗯,以上四个模块就是一个最小的RAG结构数据库需要实现的功能,具体代码可以在 RAG/VectorBase.py 文件中找到。

class VectorStore:
    def __init__(self, document: List[str] = ['']) -> None:
        self.document = document

    def get_vector(self, EmbeddingModel: BaseEmbeddings) -> List[List[float]]:
        # 获得文档的向量表示
        pass

    def persist(self, path: str = 'storage'):
        # 数据库持久化,本地保存
        pass

    def load_vector(self, path: str = 'storage'):
        # 从本地加载数据库
        pass

    def query(self, query: str, EmbeddingModel: BaseEmbeddings, k: int = 1) -> List[str]:
        # 根据问题检索相关的文档片段
        pass

那让我们来看一下, query 方法具体是怎么实现的呢?

首先先把用户提出的问题向量化,然后去数据库中检索相关的文档片段,最后返回检索到的文档片段。可以看到咱们在向量检索的时候仅使用 Numpy 进行加速,代码非常容易理解和修改。

主要是方便改写和大家理解,并没有使用成熟的数据库,这样可以更好地理解RAG的原理。

def query(self, query: str, EmbeddingModel: BaseEmbeddings, k: int = 1) -> List[str]:
    query_vector = EmbeddingModel.get_embedding(query)
    result = np.array([self.get_similarity(query_vector, vector)
                        for vector in self.vectors])
    return np.array(self.document)[result.argsort()[-k:][::-1]].tolist()

5. 大模型模块

那就来到了最后一个模块了,大模型模块。这个模块主要是用来根据检索出来的文档回答用户的问题。

一样的,我们还是先实现一个基类,这样我们在遇到其他的自己感兴趣的模型就可以快速的扩展了。

class BaseModel:
    def __init__(self, path: str = '') -> None:
        self.path = path

    def chat(self, prompt: str, history: List[dict], content: str) -> str:
        pass

    def load_model(self):
        pass

BaseModel 包含了两个方法,chatload_model,如果使用API模型,比如OpenAI的话,那就不需要load_model方法,如果你要本地化运行的话,那还是会选择使用开源模型,那就需要load_model方法啦。

这里咱们以 InternLM2-chat-7B 模型为例

class InternLMChat(BaseModel):
    def __init__(self, path: str = '') -> None:
        super().__init__(path)
        self.load_model()

    def chat(self, prompt: str, history: List = [], content: str='') -> str:
        prompt = PROMPT_TEMPLATE['InternLM_PROMPT_TEMPALTE'].format(question=prompt, context=content)
        response, history = self.model.chat(self.tokenizer, prompt, history)
        return response


    def load_model(self):
        import torch
        from transformers import AutoTokenizer, AutoModelForCausalLM
        self.tokenizer = AutoTokenizer.from_pretrained(self.path, trust_remote_code=True)
        self.model = AutoModelForCausalLM.from_pretrained(self.path, torch_dtype=torch.float16, trust_remote_code=True).cuda()

可以用一个字典来保存所有的prompt,这样比较好维护。

PROMPT_TEMPLATE = dict(
    InternLM_PROMPT_TEMPALTE="""先对上下文进行内容总结,再使用上下文来回答用户的问题。如果你不知道答案,就说你不知道。总是使用中文回答。
        问题: {question}
        可参考的上下文:
        ···
        {context}
        ···
        如果给定的上下文无法让你做出回答,请回答数据库中没有这个内容,你不知道。
        有用的回答:"""
)

那这样的话,我们就可以利用InternLM2模型来做RAG啦!

6.  LLM Tiny-RAG Demo

那接下来,我们就来看一下Tiny-RAG的Demo吧!

from RAG.VectorBase import VectorStore
from RAG.utils import ReadFiles
from RAG.LLM import OpenAIChat, InternLMChat
from RAG.Embeddings import JinaEmbedding, ZhipuEmbedding


没有保存数据库
docs = ReadFiles('./data').get_content(max_token_len=600, cover_content=150) # 获得data目录下的所有文件内容并分割
vector = VectorStore(docs)
embedding = ZhipuEmbedding() # 创建EmbeddingModel
vector.get_vector(EmbeddingModel=embedding)
vector.persist(path='storage') # 将向量和文档内容保存到storage目录下,下次再用就可以直接加载本地的数据库

question = 'git的原理是什么?'

content = vector.query(question, model='zhipu', k=1)[0]
chat = InternLMChat(path='model_path')
print(chat.chat(question, [], content))

当然我们也可以从本地加载已经处理好的数据库,毕竟我们在上面的数据库环节已经写过这个功能啦。

from RAG.VectorBase import VectorStore
from RAG.utils import ReadFiles
from RAG.LLM import OpenAIChat, InternLMChat
from RAG.Embeddings import JinaEmbedding, ZhipuEmbedding

# 保存数据库之后
vector = VectorStore()

vector.load_vector('./storage') # 加载本地的数据库

question = 'git的原理是什么?'

embedding = ZhipuEmbedding() # 创建EmbeddingModel

content = vector.query(question, EmbeddingModel=embedding, k=1)[0]
chat = InternLMChat(path='model_path')
print(chat.chat(question, [], content))

7. 总结

经过上面的学习,你是否学会了如何搭建一个最小RAG架构呢?相信你一定学会啦,哈哈哈。

那让我们再来复习一下,一个最小RAG应该包含哪些内容叭?(此处默写!)

  • 向量化模块

  • 文档加载和切分模块

  • 数据库

  • 向量检索

  • 大模型模块

okk,你已经学会了,但别忘了给我的项目点个star哦!

项目地址:https://github.com/KMnO4-zx/TinyRAG

efc2eef19a4ee8c4f20d16ebafa35f63.png
一起“赞”三连

一、课程优势本课程有陈敬雷老师的清华大学出版社配套新书教材《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)。新书配合此实战课程结合学习,一静一动,互补高效学习!配套书籍京东自营地址:https://item.jd.com/15073742.html本课程由互联网一线知名大牛陈敬雷老师全程亲自授课,技术前沿热门,是真正的互联网工业级实战项目。二、课程简介 大模型RAG项目落地优化策略实战课做RAG项目总卡在落地环节?数据预处理混乱、检索慢且不准、生成回答质量差,看着技术热却没法落地高价值应用?「大模型RAG项目落地优化策略实战课」专为破解这些难题而来!12大核心优化策略,从文档预处理到生成回答全链路拆解,帮你扫清RAG落地障碍。不管你是刚接触RAG想避开落地坑,还是资深从业者要提升项目效率与精准度,这门课都能让你摆脱“知道优化却不知怎么落地”的困境,把实战策略转化为RAG项目的落地能力,让项目从“能跑”到“好用”,在AI业务落地中快速出成果!课程核心亮点:直击RAG落地痛点,全链路优化有方法课程聚焦RAG落地全流程关键堵点,每个策略都带实战经验支撑:  课程大纲-大模型RAG项目落地优化策略实战课    1.    文档预处理优化策略实战经验:RAG 落地 “第一关”!    2.    文本分块优化策略实战经验:掌握 RAG “信息拆解艺术”    3.    文本向量化优化策略实战经验:给信息贴对 “语义标签”    4.    元数据优化策略实战经验:给向量加个 “隐形标签”,让搜索快    5.    多级索引和路由优化策略实战经验:给查询搭好 “快速通道”    6.    索引与查询算法优化策略实战经验:玩转 “速度 - 精度平衡术    7.    查询转换/改写优化策略实战经验:让查询 “会说话”!    8.    检索参数优化策略:别忽视 “微调小操作”!调对权重、设对数量    9.    高级检索优化策略:解锁 RAG “黑科技”    10.    重排模型优化策略实战:给检索结果 “智能排座次”    11.    提示词优化策略:保障大模型输出准确性与相关性的关键策略​    12.    大模型生成回答优化策略:选对模型 + 用好框架,生成高质量回复三、老师介绍陈敬雷  充电了么创始人,CEO兼CTO陈敬雷,北京充电了么科技有限公司创始人,CEO兼CTO,十几年互联网从业经验,曾就职于用友网络、中软集团、凡客诚品、唯品会、猎聘、人民日报(灵思云途)、北京万朝科技,曾任架构师、首席技术官、首席科学家等职务,对业务领域B端、C端、电商、职场社交招聘、内容文娱、营销行业都有着丰富的经验,在技术领域,尤其在大数据和人工智能方向有丰富的算法工程落地实战经验,其中在猎聘任职期间主导的推荐算法系统项目获得公司优秀项目奖,推荐效果得到5倍的提升。此外,陈敬雷著有清华大学出版社四本人工智能书籍,分别是《分布式机器学习实战》《自然语言处理原理与实战》《GPT多模态大模型与AI Agent智能体》《DeepSeek大模型与具身智能实践》,颇受好评。同时陈敬雷还是知名大数据人工智能讲师,研发了上百门课程,总计有30万学员。四、《GPT多模态大模型与AI Agent智能体》书籍配套视频课程介绍:陈敬雷老师的京东自营书名标题: GPT多模态大模型与AI Agent智能体(跟我一起学人工智能)《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)是一本2025年清华大学出版社出版的图书,作者是陈敬雷,本书深入探讨了GPT多模态大模型与AI Agent智能体的技术原理及其在企业中的应用落地。全书共8章,从大模型技术原理切入,逐步深入大模型训练及微调,还介绍了众多国内外主流大模型。LangChain技术、RAG检索增强生成、多模态大模型等均有深入讲解。对AI Agent智能体,从定义、原理到主流框架也都进行了深入讲解。在企业应用落地方面,本书提供了丰富的案例分析,如基于大模型的对话式推荐系统、多模态搜索、NL2SQL数据即席查询、智能客服对话机器人、多模态数字人,以及多模态具身智能等。这些案例不仅展示了大模型技术的实际应用,也为读者提供了宝贵的实践经验。本书适合对大模型、多模态技术及AI Agent感兴趣的读者阅读,也特别适合作为高等院校本科生和研究生的教材或参考书。书中内容丰富、系统,既有理论知识的深入讲解,也有大量的实践案例和代码示例,能够帮助学生在掌握理论知识的同时,培养实际操作能力和解决问题的能力。通过阅读本书,读者将能够更好地理解大模型技术的前沿发展,并将其应用于实际工作中,推动人工智能技术的进步和创新。五、配套书籍目录:第1章 大模型技术原理1.1 大模型技术的起源、思想1.2 基于Transformer的预训练语言模型1.2.1 编码预训练语言模型1.2.2 解码预训练语言模型1.2.3 基于编解码架构的预训练语言模型1.3 提示学习与指令微调1.3.1 提示学习1.3.2 指令微调1.4 人类反馈强化学习1.4.1 强化学习1.4.2 PPO算法1.4.3 大模型人类反馈强化学习对齐1.5 GPT智能涌现原理与AGI通用人工智能1.5.1 什么是智能涌现1.5.2 思维链1.5.3 上下文学习能力1.5.4 指令理解1.5.5 通用人工智能第2章 大模型训练及微调2.1 大模型训练概述2.2 分布式训练的并行策略2.2.1 数据并行2.2.2 模型并行2.2.3 混合并行2.2.4 并行计算框架2.3 预训练模型的压缩2.3.1 模型压缩方案概述2.3.2 结构化模型压缩策略2.3.3 非结构化模型压缩策略2.3.4 8位/4位量化压缩实战2.4 大模型微调方法2.4.1 Prefix Tuning微调2.4.2 P-Tuning V1微调2.4.3 P-Tuning V2微调2.4.4 LoRA微调2.4.5 QLoRA微调2.5 基于旋转位置编码RoPE的长文本理解2.5.1 RoPE技术原理2.5.2 RoPE关键特性第3章 主流大模型3.1 国内大模型3.1.1 智谱清言ChatGLM3.1.2 百川智能3.1.3 百度文心一言3.1.4 阿里巴巴通义千问3.1.5 腾讯混元3.1.6 华为盘古3.1.7 360智脑3.1.8 科大讯飞星火3.1.9 智源悟道大模型3.1.10 月之暗面Kimi3.1.11 复旦大学MOSS3.1.12 零一万物3.1.13 字节跳动豆包大模型3.2 国外大模型3.2.1 OpenAI GPT-4o3.2.2 Meta LLaMA3.2.3 Anthropic Claude3.2.4 谷歌Gemini和开源Gemma3.2.5 Mistral Large3.2.6 xAI Grok3.3 垂直类大模型3.3.1 HuatuoGPT3.3.2 BianQue3.3.3 BenTsao3.3.4 XrayGLM3.3.5 DoctorGLM3.3.6 ChatMed3.3.7 度小满轩辕3.3.8 BloombergGPT3.3.9 LawGPT3.3.10 LexiLaw3.3.11 Lawyer LLaMA3.3.12 ChatLaw3.3.13 ChatGLM-Math第4章 LangChain技术原理与实践4.1 LangChain技术原理4.2 LangChain六大核心模块4.2.1 模型I/O4.2.2 数据增强模块4.2.3 链模块4.2.4 记忆模块4.2.5 Agent模块4.2.6 回调处理器第5章 RAG检索增强生成5.1 RAG技术原理5.1.1 RAG的概念与应用5.1.2 RAG技术架构5.1.3 分块和向量化5.1.4 搜索索引5.1.5 重新排序和过滤5.1.6 查询转换与路由5.1.7 RAG中的Agent智能体5.1.8 响应合成器5.1.9 大模型微调和RAG优劣势对比5.2 文本向量模型5.2.1 Embedding模型、Reranker模型及ColBERT模型5.2.2 阿里巴巴GTE向量模型5.2.3 中文acge_text_embedding模型5.2.4 智源中英文语义向量模型BGE5.2.5 Moka开源文本嵌入模型M3E5.2.6 OpenAI的text-embedding模型5.3 向量数据库5.3.1 Faiss5.3.2 Milvus5.3.3 Pinecone5.3.4 Chroma5.4 RAG应用实践5.4.1 基于大模型构建企业私有数据的知识问答5.4.2 应对大模型落地挑战的优化策略第6章 多模态大模型6.1 多模态基础模型6.1.1 多模态对齐、融合和表示6.1.2 CLIP6.1.3 BLIP6.1.4 BLIP-26.1.5 InstructBLIP和X-InstructBLIP6.1.6 SAM6.1.7 OpenFlamingo6.1.8 VideoChat6.1.9 PaLM-E6.2 OpenAI多模态大模型DALL·E 3、GPT-4V、GPT-4o、Sora6.2.1 文生图多模态大模型DALL·E 36.2.2 GPT-4V6.2.3 端到端训练多模态大模型GPT-4o技术原理6.2.4 文生视频多模态大模型Sora6.3 通义千问多模态大模型6.3.1 开源Qwen-VL和Qwen-VL-Chat6.3.2 Qwen-VL-Plus和Qwen-VL-Max6.4 开源端到端训练多模态大模型LLaVA6.4.1 LLaVA6.4.2 LLaVA-1.56.4.3 LLaVA-1.66.4.4 MoE-LLaVA6.4.5 LLaVA-Plus6.4.6 Video-LLaVA和LLaVA-NeXT-Video6.5 零一万物多模态大模型Yi-VL系列6.5.1 Yi-VL系列模型架构6.5.2 Yi-VL系列模型训练微调及推理6.6 清华系多模态大模型6.6.1 VisualGLM-6B6.6.2 CogVLM26.6.3 CogAgent6.6.4 CogView、CogVideo和CogVideoX6.6.5 CogCoM6.6.6 GLM-4V-9B第7章 AI Agent智能体7.1 AI Agent智能体介绍和原理7.1.1 AI Agent的定义与角色7.1.2 AI Agent技术原理7.2 主流大模型Agent框架7.2.1 AutoGPT7.2.2 MetaGPT7.2.3 ChatDev7.2.4 AutoGen7.2.5 FastGPT7.2.6 XAgent7.2.7 GPT-Engineer7.2.8 BabyAGI7.2.9 SuperAGI第8章 大模型在企业应用中落地8.1 基于大模型的对话式推荐系统8.1.1 基于大模型的对话式推荐系统技术架构设计8.1.2 推荐AI Agent智能体8.1.3 面向推荐的语言表达模型8.1.4 知识插件8.1.5 基于大模型的推荐解释8.1.6 对话式推荐系统的新型评测方法8.2 多模态搜索8.2.1 多模态搜索技术架构设计8.2.2 多模态搜索关键技术8.2.3 多模态实时搜索与个性化推荐8.3 基于自然语言交互的NL2SQL数据即席查询8.3.1 NL2SQL数据即席查询技术原理8.3.2 NL2SQL应用实践8.4 基于大模型的智能客服对话机器人8.4.1 大模型智能客服对话机器人技术原理8.4.2 AI大模型赋能提升智能客服解决率新策略8.4.3 基于大模型的智能客服对话机器人系统搭建8.5 多模态数字人8.5.1 多模态数字人技术原理8.5.2 三维建模与三维重建8.5.3 数字人形象设计8.5.4 唇形同步算法8.5.5 NeRF、ER-NeRF与RAD-NeRF模型8.5.6 数字人项目实践8.6 多模态具身智能8.6.1 多模态具身智能概念及技术路线8.6.2 多模态感知与场景理解8.6.3 视觉导航8.6.4 世界模型8.6.5 具身智能模拟器8.6.6 多模态多感官交互具身智能大模型8.6.7 端到端强化学习人形机器人8.6.8 多模态通才具身智能体   
当前,尽管大模型技术展现出变革行业的巨大潜力,但其实际应用仍面临三化困境:一是技术悬浮化:多数企业停留在概念验证阶段,缺乏与垂直场景深度融合的解决方案;二是能力碎片化:通用模型在专业领域存在知识盲区,难以满足行业特定的精准性需求;三是价值模糊化:应用场景与商业回报的关联路径不清晰,导致投资决策困难。为此,聚焦大模型行业认知智能的落地范式,设计包含智能监控平台、RAG推荐系统、智能体智驾系统三大项目的实战课程。通过本课程构成行业智能基座教学矩阵,旨在演示如何将大模型技术深度融合到行业工作流中,提供可复用的场景化AI工程方法论,建立从技术能力到商业价值的可量化验证路径。课程涉及大模型领域最热门技术栈,课程采取项目贯穿式设计,通过三个大实战项目(多模态监控平台、RAG推荐系统、智能体智驾系统)串联起多模态大模型、大模型提示词、RAG、AI Agent智能体开发、MCP、语音识别、超拟人语音合成、FastAPI、Websocket编程、多线程编程等技术。课程中项目均为目前最为前沿的技术,项目为可商用落地项目,也可作为毕设,项目充分结合了软硬件,且具有很好的交互界面,能大大提升学员的兴趣。此外课程讲解采取理实结合,资源丰富,除3个大的项目外,另外还设计了近80个案例Demo,全程手写代码,保姆级教学,降低学习难度和门槛。本课程具有以下特点。特点一、三大前沿硬核项目,直击行业应用核心本课程绝非零散技术的简单堆砌,而是通过三个精心设计、可直接商用的旗舰项目,为您系统性地串联起大模型核心技术的完整价值链。课程累计时长超50小时,其中项目讲解超30小时。项目运行效果演示可看第1章的第1个视频。项目1:基于多模态的智能工业监控平台(1)项目部分截图(2)项目架构图项目2:基于RAG的电影推荐系统(1)项目部分截图(2)项目架构图项目3:基于AI Agent的智能驾驶系统(1)项目部分截图(2)项目架构图特点二、“一核三翼”课程架构,构建全景知识图谱与工程能力矩阵本课程的架构图如下,课程详情介绍请看第1章第2个视频采用“一核三翼”课程设计的顶层思想,一个核心目标不是让学员成为只会调用API的程序员,而是旨在培养具备系统思维和工程化能力的优秀“大模型AI开发工程师”。“三翼”是支撑起“核心目标”的三大实战项目载体,是学员将架构师思维付诸实践的练兵场。它们分别代表了三个最重要且最具商业潜力的AI应用方向。它们覆盖了当前大模型落地的三大主流技术范式,学完即可胜任绝大多数前沿的AI应用开发工作。特点三、保姆级手写代码,告别“调包”与“看不懂”真正的掌握源于亲手实践。课程拒绝“复制粘贴”和“黑箱操作”,讲师将全程从零开始,手写每一行代码,整个课程手写代码超1万行。从环境配置到项目开发再到项目部署,一步一屏,细致入微。无论您是初学者还是希望深化实践的开发者,这种教学方式都能极大降低学习难度,确保您能跟上节奏,真正将代码和能力收入囊中,获得实实在在的成就感。特点四、易于操作,零成本复现全栈项目本课程彻底摒弃了封闭、付费的API接口,全程基于国产顶尖大模型和全球领先的开源框架,大模型平台包含免费试用额度,确保您无需支付任何模型调用费用,跟着老师敲代码,即可在个人电脑上完整复现所有商业级项目,真正实现“零成本”学习与“无壁垒”创新。特点五、课程资源丰富,打造“开箱即用”的学习体验课程将提供丰富的课件、讲义、项目操作素材以及全套源代码。课件和讲义包含核心原理剖析、架构及流程图解,API接口细化到每一个关键参数的讲解。代码结构清晰、注释详细,您既可以跟随老师一步步亲手敲击以深入理解,也可以直接运行现成代码进行测试和二次开发,真正实现“从学习到部署”的无缝衔接。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值