RAG(检索增强生成)是结合检索与生成式 AI 的技术框架。核心逻辑是先从外部知识库精准检索相关信息,再将其作为上下文输入大模型生成回答。技术上依赖检索引擎(如向量数据库、BM25)、大语言模型(如 GPT、LLaMA)及数据预处理技术。通过检索增强,解决大模型知识滞后、幻觉问题,提升回答准确性。应用广泛,涵盖智能客服、医疗问答、法律检索、教育辅导等场景,能基于特定领域知识提供精准、可控的生成内容。

wow-RAG 是 Datawhale 推出的 RAG 技术实践项目,网址:datawhalechina/wow-rag: A simple and trans-platform rag framework and tutorial    https://github.com/datawhalechina/wow-rag

环境配置与模型初始化

import os
from dotenv import load_dotenv# 加载环境变量
load_dotenv()
# 从环境变量中读取api_key
api_key = os.getenv('ZHIPU_API_KEY')
base_url = "https://open.bigmodel.cn/api/paas/v4/"
chat_model = "glm-4-flash"
emb_model = "embedding-2"# 配置对话模型
from llama_index.llms.zhipuai import ZhipuAI
llm = ZhipuAI(api_key = api_key,model = chat_model,
)# 配置嵌入模型
from llama_index.embeddings.zhipuai import ZhipuAIEmbedding
embedding = ZhipuAIEmbedding(api_key = api_key,model = emb_model,
)
emb = embedding.get_text_embedding("你好呀呀")
  • 使用 dotenv 库从.env 文件加载环境变量,安全管理 API 密钥
  • 初始化智谱 AI 的聊天模型 (GLM-4-Flash) 和嵌入模型 (embedding-2)
  • 测试嵌入模型的功能,生成文本 "你好呀呀" 的向量表示

文档处理与索引构建

# 从指定文件读取,输入为List
from llama_index.core import SimpleDirectoryReader,Document
documents = SimpleDirectoryReader(input_files=['./docs/大模型推理.txt']).load_data()
# 构建向量索引
from llama_index.core import VectorStoreIndex
#index = VectorStoreIndex.from_documents(documents,embed_model=embedding)
# 想要看到进度条的话,加一个参数 show_progress=True
index = VectorStoreIndex.from_documents(documents,embed_model=embedding,show_progress=True)

流式查询引擎

response_stream = query_engine.query("请写一篇1000字的文章论述大模型推理的技术细节") 
for text in response_stream.response_gen:print(text,end="")

构建查询引擎后发起关于 “大模型推理技术细节” 的查询,系统会先将问题向量与索引中的文档向量比对,找到最相关的参考内容,再结合这些信息让大模型生成回答。通过流式响应(response_stream),模型生成的内容会按片段实时返回,循环打印每个片段即可实现 “边生成边显示” 的效果

输出:

大模型推理:技术细节解析随着人工智能技术的飞速发展,大模型(Large Language Model)在自然语言处理领域取得了显著的成果。大模型能够处理复杂的语言问题,为用户提供了便捷、智能的服务。本文将从技术细节的角度,对大模型推理进行探讨。一、大模型推理概述大模型推理是指在大规模语言模型的基础上,利用模型对特定语言任务进行预测和决策的过程。在大模型推理过程中,需要关注以下几个关键技术细节:1. 推理过程大模型推理过程主要包括以下步骤:(1)输入处理:将输入文本转化为模型可理解的格式,如分词、词性标注、句法分析等。(2)特征提取:通过特征提取技术,将输入文本中的有用信息提取出来,供模型进行推理。(3)模型推理:将提取的特征输入到训练好的大模型中,得到预测结果。(4)结果输出:将模型预测结果输出给用户。2. 推理速度大模型推理速度是影响实际应用效果的重要因素。为了提高推理速度,可以采用以下技术:(1)模型压缩:通过模型压缩技术,降低模型参数量和计算复杂度,从而加快推理速度。(2)推理加速:利用硬件加速器(如GPU、TPU)进行推理计算,提高推理速度。(3)量化技术:对模型参数进行量化处理,降低数据精度,从而加快推理速度。二、大模型推理中的关键技术1. 特征提取特征提取是影响大模型推理效果的关键环节。以下是一些常见的特征提取技术:(1)词袋模型:将文本分解为单词或字符,统计其在文档中的出现频率,构建词袋模型。(2)TF-IDF:结合词袋模型和逆文档频率,对特征进行加权,提高特征的重要性。(3)Word2Vec:将文本中的单词映射为固定维度的向量,保留语义信息。2. 思维链(CoT)思维链是一种用于指导大模型推理的技术,它将问题拆解为一系列更小的步骤。以下是思维链的几个关键点:(1)将问题分解:将复杂问题分解为一系列简单、可处理的问题。(2)推理步骤:在思维链中,每一步都对应一个推理步骤,逐步解决问题。(3)结构化推理:将推理过程结构化,使大模型能够更好地理解问题和答案。3. 测试时计算扩展测试时计算扩展是指在推理阶段增加计算量,以提高模型性能。以下是测试时计算扩展的关键技术:(1)长度扩展:增加推理过程中生成的中间结果,提高模型推理能力。(2)样本扩展:增加测试数据量,使模型在更多场景下具有更好的性能。(3)模型扩展:通过改进模型结构或参数,提高模型在特定任务上的表现。三、案例分析:DeepSeek-R1DeepSeek-R1是一种基于思维链的推理型大模型。以下是其技术细节:1. 数据集:DeepSeek-R1使用了80万个高质量数据样本,包括60万个推理示例和20万个非推理示例。2. 模型训练:学生模型通过对比自身输出和教师模型输出,学习DeepSeek-R1的推理方式。3. 推理结果:DeepSeek-R1在多个推理任务上取得了优异的成绩,验证了其推理能力。总之,大模型推理技术在自然语言处理领域具有广泛的应用前景。通过对推理过程、特征提取、思维链和测试时计算扩展等关键技术的深入研究,可以有效提高大模型的推理性能,为用户带来更优质的体验。

FastAPI 流式 API 服务

import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import StreamingResponse
import threadingapp = FastAPI()
app.add_middleware(CORSMiddleware,allow_origins=["*"])# 新增服务器控制相关代码
_server_thread = Nonedef run_server():config = uvicorn.Config(app, host='0.0.0.0', port=5000)server = uvicorn.Server(config)server.run()def start_server():"""启动后台服务"""global _server_threadif not _server_thread or not _server_thread.is_alive():_server_thread = threading.Thread(target=run_server, daemon=True)_server_thread.start()print("服务已启动:http://localhost:5000/stream_chat")@app.get('/stream_chat')
async def stream_chat(param:str = "你好"):async def generate():  response_stream = query_engine.query(param)for text in response_stream.response_gen:yield textreturn StreamingResponse(generate(), media_type='text/event-stream')# 在Notebook中直接调用启动服务
start_server()

uvicorn作为 ASGI 服务器用于运行 FastAPI 应用,FastAPI构建 Web 服务,CORSMiddleware处理跨域请求,StreamingResponse支持流式响应。

通过 GET 请求接收用户查询参数param,利用异步生成器generate从query_engine获取流式响应,并通过StreamingResponse以text/event-stream格式向客户端推送文本片段,实现实时聊天效果。

# 调用服务
import requestsdef test_stream_chat(question="你好"):url = "http://localhost:5000/stream_chat"params = {"param": question}with requests.get(url, params=params, stream=True) as response:for chunk in response.iter_content(decode_unicode=True):if chunk:print(chunk, end="", flush=True)# 调用示例
test_stream_chat("大模型推理就业前景如何?")

输出:

大模型推理作为人工智能领域的一个重要分支,其就业前景相当广阔。随着人工智能技术的不断发展,对于具备大模型推理能力的人才需求日益增长。以下是大模型推理就业前景的一些方面:1. **技术需求增加**:随着企业对智能化的需求提升,大模型推理技术能够帮助解决复杂问题,提高工作效率,因此相关技术人才需求旺盛。2. **多行业应用**:大模型推理在金融、医疗、教育、交通等多个行业中都有广泛应用,这为从业者提供了多样化的就业选择。3. **研究与发展岗位**:在高校、研究机构和企业中,都需要从事大模型推理相关的研究与开发工作,这些岗位对人才的要求较高,但同时也提供了较高的薪资和职业发展空间。4. **产品与解决方案**:随着大模型推理技术的商业化,市场上对于能够将技术转化为实际产品或解决方案的人才需求也在增加。5. **数据与算法工程师**:大模型推理依赖于高质量的数据和高效的算法,因此数据工程师和算法工程师在这一领域具有很高的就业前景。6. **教育与培训**:随着人工智能教育的普及,对于能够教授大模型推理相关课程的专业人才也有较大需求。综上所述,大模型推理领域的就业前景是积极的,但同时也需要从业者不断学习新知识,提升自己的技术能力和解决问题的能力。

参考文章

https://github.com/datawhalechina/wow-raghttps://github.com/datawhalechina/wow-rag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92800.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92800.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92800.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习的胸部 X 光图像肺炎分类系统(三)

目录 二分类胸片判断: 1. 数据加载时指定了两类标签 2. 损失函数用了二分类专用的 3. 输出层只有 1 个神经元,用了sigmoid激活函数 4. 预测时用 0.5 作为分类阈值 二分类胸片判断: import numpy as np import matplotlib.pyplot as plt f…

深入理解 BIO、NIO、AIO

目录 一、同步与非同步 二、阻塞与非阻塞 三、BIO(Blocking I/O,阻塞I/O) 四、NIO(Non-blocking I/O,非阻塞I/O) 五、AIO(Asynchronous I/O,异步I/O) 同步阻塞&…

电脑无法识别固态硬盘怎么办?

随着固态硬盘(SSD)越来越普及,不少用户在给电脑更换、加装SSD时会遇到一个让人头大的问题——电脑识别不了固态硬盘。可能是开不了机,或者在“此电脑”中找不到硬盘,甚至连系统安装界面都提示“找不到驱动器”。这时候…

Kingbasepostgis 安装实践

文章目录前言一、安装准备1.1 部署方案规划1.2 SELINUX、防火墙状态检查1.3 操作系统时间检查1.4 创建用户及密码1.5 目录创建1.6 操作系统参数配置1.6.1 配置limits.conf文件二、安装2.1 上传安装包以及license授权文件2.2 拷贝安装文件2.3 命令行方式安装2.3.1简介2.3.2 许可…

移动端设备能部署的llm

mlc-llm 内置RedPajama hf示例模型 TheBloke/Mistral-7B-Instruct-v0.2-GGUF https://github.com/mlc-ai/mlc-llm/tree/main llama.cpp https://github.com/ggml-org/llama.cpp reference --- MLC-LLM:大模型如何部署到浏览器 / 手机?完整流程复现…

Ubuntu硬盘挂载

一、在 Ubuntu 中,你可以用以下命令快速查看 所有已连接但尚未挂载的硬盘和分区:lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID输出中 MOUNTPOINT 为空的行,就是 未挂载的分区。sda ├─sda1 500M ext4 /boot ├─sda2 1.8T ntfs └─sda3 …

JavaScript -Socket5代理使用

axios 安装两个包 socks-proxy-agent,axios const { SocksProxyAgent } require(socks-proxy-agent); const axios require(axios);const socks5Axios axios.create();const socks5 () > {const socks5Agent new SocksProxyAgent("socks5://112.194.8…

[特殊字符] 从数据库无法访问到成功修复崩溃表:一次 MySQL 故障排查实录

一次典型的 MySQL 故障排查与修复全过程,涵盖登录失败、表崩溃、innodb_force_recovery 救援、坏表剔除与数据恢复等关键操作。一、问题背景某业务系统运行多年,数据库使用的是 MySQL 8.0.18,近期在一次服务器重启后,发现无法正常…

【Agent】API Reference Manual(API 参考手册)

https://github.com/Intelligent-Internet/CommonGround/blob/main/docs/framework/03-api-reference.md 以下是这份 API Reference Manual(API 参考手册) 的完整中文翻译: API 参考手册 版本:0.1 目录 概览 1.1 API 目的 1.2 通信协议与核心概念 HTTP API 2.1 POST /se…

LeetCode Hot 100 全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums [0,1]…

AI大模型如何有效识别和纠正数据中的偏见?

当下,人工智能大模型已成为推动各行业发展的关键力量,广泛应用于自然语言处理、图像识别、医疗诊断、金融风控等领域,为人们的生活和工作带来了诸多便利。然而,随着其应用的不断深入,数据偏见问题逐渐浮出水面&#xf…

如何通过内网穿透,访问公司内部服务器?

“凌晨2点,销售总监王姐在机场候机时突然接到客户电话——对方要求立即查看产品库存数据。她慌忙翻出笔记本电脑,却发现公司内网数据库没有公网IP,VPN连接又卡在验证环节……这样的场景,是否让你想起某个手忙脚乱的时刻&#xff1…

12. isaacsim4.2教程-ROS 导航

1. Teleport 示例 ROS 服务的作用: 提供了一种同步、请求-响应的通信方式,用于执行那些需要即时获取结果或状态反馈的一次性操作或查询。 Teleport 服务在 ROS 仿真(尤其是 Gazebo)和某些简单机器人控制中扮演着瞬移机器人或对象…

DeepSpeed-FastGen:通过 MII 和 DeepSpeed-Inference 实现大语言模型的高吞吐文本生成

温馨提示: 本篇文章已同步至"AI专题精讲" DeepSpeed-FastGen:通过 MII 和 DeepSpeed-Inference 实现大语言模型的高吞吐文本生成 摘要 随着大语言模型(LLM)被广泛应用,其部署与扩展变得至关重要&#xff0…

操作系统:操作系统的结构(Structures of Operating System)

目录 简单结构(Simple Structure) 整体式结构(Monolithic Structure) 什么是 Kernel(内核)? 层次结构(Layered Structure) 微内核结构(Microkernel&#x…

Python柱状图

1.各国GDP柱状图2.各国GDP时间线柱状图

FastGPT:企业级智能问答系统,让知识库触手可及

在信息爆炸的时代,企业如何高效管理和利用海量知识?传统搜索和文档库已难以满足需求。FastGPT正成为企业构建智能知识核心的首选。一、FastGPT:不止于问答的智能知识引擎FastGPT 颠覆了传统知识库的局限,其核心优势在于&#xff1…

探索 MyBatis-Plus

引言在当今的 Java 开发领域,数据库操作是一个至关重要的环节。MyBatis 作为一款优秀的持久层框架,已经被广泛应用。而 MyBatis-Plus 则是在 MyBatis 基础上进行增强的工具,它简化了开发流程,提高了开发效率。本文将详细介绍 MyBa…

Hive【安装 01】hive-3.1.2版本安装配置(含 mysql-connector-java-5.1.47.jar 网盘资源)

我使用的安装文件是 apache-hive-3.1.2-bin.tar.gz ,以下内容均以此版本进行说明。 以下环境测试安装成功: openEuler 22.03 (LTS-SP1)系统 MySQL-8.0.40 1.前置条件 MySQL数据库 我安装的是 mysql-5.7.28 版本的,安装方法可参考《Linux环境…