检索增强生成(RAG)实战1-基于LlamaIndex构建第一个RAG应用

本文将介绍如何使用LlamaIndex构建一个非常简单的RAG应用。通过该案例,可以初步了解LlamaIndex构建RAG应用的大体流程。

环境准备

安装LlamaIndex

安装LlamaIndex相关包:

bash

pip install llama-index
pip install llama-index-embeddings-huggingface
pip install llama-index-llms-huggingface

llama-index是核心包;llama-index-embeddings-huggingface允许我们使用本地的embedding模型去完成文档的切分和编码等操作;llama-index-llms-huggingface允许我们使用本地的大模型去开发RAG应用。

安装完成后,检查服务器cuda版本是否与当前安装的pytorch对应,如果不对应,需要将pytorch版本降低到≤服务器cuda版本(详细见搭建一个大模型API服务):

bash

pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2

下载embedding模型权重

使用BAAI开源的中文bge模型作为embedding模型,使用以下命令将模型权重下载到服务器:

bash

git clone https://huggingface.co/BAAI/bge-base-zh-v1.5

下载大模型权重

使用阿里开源的通义千问大模型,使用以下命令将模型权重下载到服务器:

bash

git clone https://www.modelscope.cn/qwen/Qwen1.5-14B-Chat.git

构建第一个RAG应用-中医临床诊疗术语证候问答

文档准备

本应用使用的文档是由国家卫生健康委员和会国家中医药管理局发布的中医临床诊疗术语 第2部分:证候。其部分内容展示如下:

3.5.5.5
    湿浊蒙窍证  syndrome/pattern of dampness-turbidity clouding orifices
    因湿浊壅盛,上蒙清窍所致。临床以头重闷胀,眩晕欲仆,恶心,呕吐唾沫,胸闷,舌苔白厚或垢腻,脉濡缓或滑,可伴见脑鸣、耳胀,听音不真,或眼球震颤,视物模糊,眼前有灰黄色暗影遮挡,或鼻塞、涕浊,不闻香臭等为特征的证候。

3.5.5.6
    湿浊上泛证  syndrome/pattern of dampness-turbidity flooding in the upper
    湿浊蒙上,泌别失职证
    湿浊蒙上证
    因湿浊内蕴,邪犯清空,泌别失职所致。临床以头晕作胀,神志昏蒙、恍惚,恶心、呕吐,面色晦滞,少尿或无尿,舌质淡,舌苔厚浊,脉沉缓,可伴见脘腹闷胀,不思饮食,皮肤干燥、瘙痒等为特征的证候。

3.5.5.7
    湿浊冲心证  syndrome/pattern of dampness-turbidity attacking heart
    因湿浊内蕴,壅阻心脉,上攻冲心,壅闭心神所致。临床以胸膺憋闷,心悸、怔忡,或神志恍惚,甚则昏昧,言语时或错乱,舌苔厚腻,脉弦或缓,可伴见心胸痹痛,面色晦滞,呕吐、不食等为特征的证候。

中医临床诊疗术语证候.txt放入项目根目录下的document文件夹中。

导入所需的包

python

import logging
import sys
import torch
from llama_index.core import PromptTemplate, Settings, SimpleDirectoryReader, VectorStoreIndex, load_index_from_storage, \
    StorageContext, QueryBundle
from llama_index.core.schema import MetadataMode
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.huggingface import HuggingFaceLLM
from llama_index.core.node_parser import SentenceSplitter

定义日志配置

python

logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

如果想看到更多的日志输出,将level的级别改为logging.DEBUG。

定义System Prompt

python

SYSTEM_PROMPT = """You are a helpful AI assistant."""
query_wrapper_prompt = PromptTemplate(
    "[INST]<<SYS>>\n" + SYSTEM_PROMPT + "<</SYS>>\n\n{query_str}[/INST] "
)

使用llama-index-llms-huggingface构建本地大模型

python

llm = HuggingFaceLLM(
    context_window=4096,
    max_new_tokens=2048,
    generate_kwargs={"temperature": 0.0, "do_sample": False},
    query_wrapper_prompt=query_wrapper_prompt,
    tokenizer_name='/yldm0226/models/Qwen1.5-14B-Chat',
    model_name='/yldm0226/models/Qwen1.5-14B-Chat',
    device_map="auto",
    model_kwargs={"torch_dtype": torch.float16},
)
Settings.llm = llm

tokenizer_namemodel_name后面的路径为前面下载的大模型权重的存储路径。

使用llama-index-embeddings-huggingface构建本地embedding模型

python

Settings.embed_model = HuggingFaceEmbedding(
    model_name="/yldm0226/RAG/BAAI/bge-base-zh-v1.5"
)

model_name是前面下载的embedding模型权重的存储路径。

读取文档

python

documents = SimpleDirectoryReader("document").load_data()

对文档进行切分,将切分后的片段转化为embedding向量,构建向量索引

python

index = VectorStoreIndex.from_documents(documents, transformations=[SentenceSplitter(chunk_size=256)])

chunk_size可以控制切分片段的大小。

构建查询引擎

python

query_engine = index.as_query_engine(similarity_top_k=5)

similarity_top_k决定了我们将检索出多少个片段用于RAG。

获得答案

python

response = query_engine.query("不耐疲劳,口燥、咽干可能是哪些证候?")

稍作等待后,得到以下输出:

从中医的角度来看,口燥、咽干且不耐疲劳可能与以下几个证候相关:

  1. 津液不足证津亏证:由于津液生成不足或者体内燥热导致津液耗损,表现为口眼喉鼻干燥,大便干结,小便少,舌质红干,脉细数。
  2. 津亏热结证:津液亏乏加上热邪内结,也可见口燥咽干,可能伴有便秘。
  3. 津液亏耗证液干热结证:津液亏损可能导致口干、口渴,皮肤干燥,甚至影响消化功能(如大便干结)。
  4. 津液亏涸证:严重的津液亏损会出现口唇干燥、鼻燥、皮肤干瘪等症状。
  5. 燥干清窍证:长期气候干燥或环境因素导致的津液耗损,表现为口鼻咽喉干燥,眼睛干涩。
  6. 津伤化燥证津伤燥热证:体内燥热伤津,也会有口干、舌燥、食多善饥、皮肤干燥等表现。

综合以上,这些证候都有可能涉及到口燥咽干和不耐疲劳的症状,但具体需要结合病史和全身症状来确诊。建议就诊中医师进行辨证论治。

如何系统的去学习AI大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的所有 ⚡️ 大模型 LLM 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

全套 《LLM大模型入门+进阶学习资源包↓↓↓ 获取~

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

<think>好的,我现在要处理用户关于AI大模型应用开发学习路线的问题。首先,我需要回顾用户提供的引用内容,确保回答准确。引用1提到需要扎实的基础知识、系统学习路线和持续实践。引用2和3讨论了从设计到部署的全流程,以及分阶段的学习计划。引用4强调了从大模型接口和Prompt工程开始的学习步骤。 用户的需求是了解学习路线图,所以需要分阶段、结构清晰地呈现。首先,我应该从基础知识开始,包括数学和编程基础,接着是大模型理论,然后是接口使用和Prompt工程,再到应用开发框架,最后是部署和优化。每个阶段需要具体的时间安排和关键内容,例如Python编程、深度学习框架、Transformer架构等。 同时,用户示例中的快速排序回答结构值得参考,使用分点说明和代码示例。但这里可能需要调整,用项目示例代替代码,比如构建对话系统或知识库应用。此外,用户希望生成相关问题,我需要考虑相关的问题,比如数学基础的重要性、Prompt工程的学习资源、选择哪种框架等。 需要确保回答符合系统级指令:使用正确的中文和LaTeX格式,引用标识自然添加。例如,在提到Transformer架构时,可以引用[^3]中的阶段一内容。同时,避免使用Markdown,保持段落简洁。 最后,检查是否覆盖了所有关键点,并确保引用正确。比如,引用[^4]提到从接口开始学习,所以在阶段二中要明确这一点。阶段三的Prompt工程对应引用[^4]的第二步。项目实战部分可以参考引用[^2]的实战营内容。总结时,强调持续学习和实践,呼应引用[^1]的内容。</think>### AI大模型应用开发学习路线图 #### 一、基础准备阶段(1-2个月) 1. **数学与编程基础** - 线性代数:矩阵运算($A \cdot B = C$)、特征值分解 - 概率统计:贝叶斯定理($P(A|B) = \frac{P(B|A)P(A)}{P(B)}$) - Python编程:掌握Numpy/Pandas/Pytorch框架 ```python import torch model = torch.nn.Transformer() # Transformer模型基础实现 ``` 2. **深度学习基础** - 神经网络原理:前向传播($y = \sigma(Wx + b)$) - 自然语言处理:词嵌入($e_{word} \in \mathbb{R}^{d}$) - 学习资源:吴恩达《深度学习专项课程》[^1] #### 二、大模型核心技术阶段(3-4个月) 1. **大模型接口开发** - 掌握OpenAI API调用(如GPT-3.5/4) - 学习文心一言、智谱API等国产接口[^4] ```python from openai import OpenAI client = OpenAI() response = client.chat.completions.create(model="gpt-3.5-turbo", messages=[...]) ``` 2. **Prompt工程体系** - 设计原则:角色定义+任务描述+格式约束 - 高级技巧:思维链(CoT)、思维树(ToT)[^3] - 代码示例:知识增强型Prompt ```python prompt = """你是一名医学专家,根据以下研究文献: [文献内容]... 请用JSON格式输出症状分析""" ``` #### 三、应用开发阶段(2-3个月) 1. **开发框架实践** - LangChain构建AI工作流 $$ \text{Chain} = \text{PromptTemplate} \rightarrow \text{LLM} \rightarrow \text{OutputParser} $$ - LlamaIndex:实现私有数据检索[^2] 2. **工程化能力培养** - 模型微调:LoRA/P-Tuning方法 - 性能优化:量化压缩(FP16→INT8) - 部署方案:Docker+FastAPI+云服务 #### 四、项目实战阶段(持续迭代) 1. **典型项目示例** - 智能对话系统(包含意图识别模块) - 企业知识库问答(RAG架构) - 自动化报告生成(多模态输出) 2. **前沿技术追踪** - Agent开发:ReAct框架 - 多模态应用:GPT-4V、Stable Diffusion集成 - 伦理安全:内容过滤($f_{filter}(x) \rightarrow \{0,1\}$)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值