LLM大模型:Llama 3 + RAG,本地部署私人知识库的大模型!

llama3 结构详解 然而,在MHA中,由于每个head都有独立的键和值,内存和计算成本较高,特别是在处理长序列或大批量数据时。我们知道,在《Attention is all you need》一文中,作者为了提高计算效率,提出了MHA技术,思想是采用分而治之的策略,把K、Q、V 对应的切分为若干个短向量,然后使用Scaled Dot-Product Attention 计算出attention score后,再把结果拼接起来,从而避免了超大向量乘法的计算消耗,从而提高了计算效率。的计算中,也没有做减去均值的操作( 阅读详情

在今天的的教程中,我们将打造更加个性化的大模型,可以定制搭载私人知识库的本地大模型!

我们探讨Meta AI 的尖端 Llama 3 语言模型构建强大的检索增强生成 (RAG**) 来实现。通过利用 Llama 3 和 RAG 技术的功能,我们将创建一个应用程序,允许用户与网页进行交互式对话,检索定制化、私人知识库的相关信息并生成对用户查询的准确响应。在本教程中,我们将深入探讨设置开发环境、加载和处理网页数据、创建嵌入和向量存储以及实现 RAG 链以提供卓越用户体验的分步过程。

什么是Llama 3?

在这里插入图片描述

Llama 3 是由 Meta AI 开发的最先进的语言模型,擅长理解和生成类似人类的文本。

  • 凭借其令人印象深刻的自然语言处理能力,Llama 3 可以理解复杂的查询、提供准确的响应并参与与上下文相关的对话。
  • 它能够处理广泛的主题和处理效率,使其成为构建智能应用程序的理想选择。
  • 想测试Llama 3的威力吗?立即与 Anakin AI 聊天!(它支持任何可用的 AI 模型!

什么是RAG?

检索增强生成 (RAG) 是一种将信息检索和语言生成相结合以提高问答系统性能的技术。

  • 简单来说,RAG 允许 AI 模型从知识库或文档中检索相关信息,并使用该信息对用户查询生成更准确和上下文适当的响应。
  • 通过利用检索和生成的强大功能,RAG 能够创建智能聊天机器人和问答应用程序,为用户提供高度相关和信息丰富的响应。
  • 对于想要在没有编码经验的情况下运行 RAG 系统的用户,您可以尝试 Anakin AI,在那里您可以使用 No Code Builder 创建很棒的 AI 应用程序!

在这里插入图片描述

运行本地 Llama 3 RAG 应用的先决条件

在开始之前,请确保已安装以下先决条件:

  • Python 3.7 or higher
  • Streamlit
  • ollama
  • langchain
  • langchain_community

您可以通过运行以下命令来安装所需的库:

pip install streamlit ollama langchain langchain_community

使用 Llama-3 在本地运行您自己的 RAG 应用程序的分步指南

第 1 步:设置 Streamlit 应用程序

首先,让我们设置 Streamlit 应用程序的基本结构。创建一个名为 app.py 的新 Python 文件,并添加以下代码:

import streamlit as st
import ollama
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.document_loaders import WebBaseLoader
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import OllamaEmbeddings

st.title("Chat with Webpage 🌐")
st.caption("This app allows you to chat with a webpage using local Llama-3 and RAG")

# Get the webpage URL from the user
webpage_url = st.text_input("Enter Webpage URL", type="default")

此代码设置 Streamlit 应用程序的基本结构,包括标题、说明和供用户输入网页 URL 的输入字段。

步骤 2:加载和处理网页数据

接下来,我们需要从指定的网页加载数据并对其进行处理以供进一步使用。将以下代码添加到 app.py :

if webpage_url:
    # 1. Load the data
    loader = WebBaseLoader(webpage_url)
    docs = loader.load()
    text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=10)
    splits = text_splitter.split_documents(docs)

在这里,我们使用 WebBaseLoader from langchain_community 来加载网页数据。然后,我们使用 RecursiveCharacterTextSplitter from langchain 将加载的文档拆分为更小的块。

第 3 步:创建 Ollama 嵌入和矢量存储

为了能够从网页中有效地检索相关信息,我们需要创建嵌入和向量存储。添加以下代码:

    # 2. Create Ollama embeddings and vector store
    embeddings = OllamaEmbeddings(model="llama3")
    vectorstore = Chroma.from_documents(documents=splits, embedding=embeddings)

我们使用 from OllamaEmbeddings langchain_community 类创建 Ollama 嵌入并 llama3 指定模型。然后,我们使用该 Chroma 类创建一个向量存储,传递拆分文档和嵌入。

第 4 步:定义 Ollama Llama-3 模型函数

现在,让我们定义一个函数,该函数利用 Ollama Llama-3 模型根据用户的问题和相关上下文生成响应。添加以下代码:

    # 3. Call Ollama Llama3 model
    def ollama_llm(question, context):
        formatted_prompt = f"Question: {question}\n\nContext: {context}"
        response = ollama.chat(model='llama3', messages=[{'role': 'user', 'content': formatted_prompt}])
        return response['message']['content']

此函数将用户的问题和相关上下文作为输入。它通过组合问题和上下文来格式化提示,然后使用该 ollama.chat 函数使用 Llama-3 模型生成响应。

第 5 步:设置 RAG 链

为了根据用户的问题从向量存储中检索相关信息,我们需要设置 RAG(Retrieval Augmented Generation)链。添加以下代码:

    # 4. RAG Setup
    retriever = vectorstore.as_retriever()

    def combine_docs(docs):
        return "\n\n".join(doc.page_content for doc in docs)

    def rag_chain(question):
        retrieved_docs = retriever.invoke(question)
        formatted_context = combine_docs(retrieved_docs)
        return ollama_llm(question, formatted_context)

    st.success(f"Loaded {webpage_url} successfully!")

在这里,我们使用该 as_retriever 方法从向量存储创建一个检索器。我们定义了一个帮助程序函数 combine_docs ,将检索到的文档组合成一个格式化的上下文字符串。该 rag_chain 函数接受用户的问题,使用检索器检索相关文档,将文档组合到格式化的上下文中,并将问题和上下文传递给 ollama_llm 函数以生成响应。

第 6 步:实现聊天功能

最后,让我们在 Streamlit 应用程序中实现聊天功能。添加以下代码:

    # Ask a question about the webpage
    prompt = st.text_input("Ask any question about the webpage")

    # Chat with the webpage
    if prompt:
        result = rag_chain(prompt)
        st.write(result)

此代码添加一个输入字段,供用户询问有关网页的问题。当用户输入问题并提交时,将使用用户的问题调用该 rag_chain 函数。然后,生成的响应将使用 st.write 显示。

最后一步:是时候运行应用程序了!

若要运行该应用,请保存 app.py 文件并打开同一目录中的终端。运行以下命令:

streamlit run app.py

这将启动 Streamlit 应用程序,您可以在 Web 浏览器**中通过提供的 URL 访问它。

结论

你已成功构建了在本地运行的 Llama-3 的 RAG 应用。该应用程序允许用户利用本地 Llama-3 和 RAG 技术的强大功能与网页聊天。用户可以输入网页 URL,应用程序将加载和处理网页数据,创建嵌入和向量存储,并使用 RAG 链检索相关信息并根据用户的问题生成响应。

根据需要添加更多功能、改进用户界面或集成其他功能,您可以随意探索和增强应用程序。

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

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

继科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

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

​

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

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

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

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线 ↓

阶段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.3 流水线工程
    • L2.4 总结与展望

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

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容:

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

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

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容:

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

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

​

首发!Llama3纯本地部署攻略!中文方法! 完成了LLAMA3的模型部署,从测试的结果可以看到, llama3的基础模型对于中文的支持并不好,我们的问题是中文,它却返回了英文的结果,原因可能是因为它的训练集有15个T但是其中95%是英文,想要它支持中文更好,还需要使用中文的训练集进行微调,可喜的是,微调llma系列的中文训练集并不少(可能是因为llama系列都有这个问题),后续我会接着对llama3进行微调, 待续。。。 阅读详情

相关推荐

基于LLama3、Langchain,Chroma 构建RAG

使用Llama3 Langchain和ChromaDB创建一个检索增强生成(RAG)系统。这将允许我们询问有关我们的文档(未包含在训练数据中)的问题,而无需对大型语言模型(LLM)进行微调。在使用RAG时,首先要做一个检索步骤,从一个特殊的数据库中提取任何相关的文档,本文使用的是《欧盟人工智能法案》文本。

weixin_41870426的博客 5135

LLMs之Llama-3:Llama 3的简介、安装和使用方法、案例应用之详细攻略

​ LLMs之Llama 3:Llama 3的简介、安装和使用方法、案例应用之详细攻略 目录 Llama 3的简介 Llama 3的安装和使用方法 Llama 3的案例应用 Llama 3的简介 2024年4月18日,Meta 重磅推出了Meta Llama 3,Llama 3是Meta最先进开源大型语言模型的下一代,包括具有80亿和700亿参数的预训练和指令微调的语言模型,能够支持广泛的应用场景。这一代Llama在一系列行业标准基准测试中展示了最

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5万+

Llama 3+RAG本地部署实战:构建隐私优先的私人知识库

RAG(检索增强生成)是一种将大语言模型与外部知识源动态结合的关键技术,其核心原理是通过向量化检索替代全量微调,在保障模型泛化能力的同时实现精准、可溯源的问答。该技术显著提升了AI大模型在专业文档理解中的准确性与可控性,尤其适用于法律、医疗、制造等对数据隐私和结果可审计性要求极高的场景。相比依赖云端API或复杂平台(如Dify),基于Llama 3与BGE-M3的轻量本地部署方案,兼顾中文适配性、推理效率与工程落地性,成为当前构建私人知识库最务实的技术路径。

weixin_30467199的博客 247

LLaMa系列模型详解(原理介绍、代码解读):LLaMA 3

2024年4月18日,Meta 重磅推出了Meta Llama 3,Llama 3是Meta最先进开源大型语言模型的下一代,包括具有80亿和700亿参数的预训练和指令微调的语言模型,能够支持广泛的应用场景。这一代Llama在一系列行业标准基准测试中展示了最先进的性能,并提供了新的功能,包括改进的推理能力。

qq_51957239的博客 3万+

手把手教你用RMII接口配置以太网PHY芯片(附YT8512实战代码)

本文详细介绍了如何使用RMII接口配置以太网PHY芯片,以国产YT8512为例,提供从硬件设计到软件驱动的全流程实战指南。内容包括RMII接口技术解析、YT8512硬件设计要点、驱动开发实战代码及常见问题排查,帮助开发者快速实现以太网通信功能。

mac99的博客 997

科研党必备:Python脚本批量下载DOI文献的保姆级教程(附避坑指南)

本文为科研人员提供了一份详细的Python脚本批量下载DOI文献的教程,涵盖环境配置、核心功能实现、性能优化及常见问题解决。通过自动化脚本,研究者可高效完成文献批量下载,显著提升科研工作效率,特别适合需要处理大量文献的研究团队使用。

weixin_26965807的博客 479

本地部署Llama3并构建私人知识库进行问答

最新的Llama3,基础版本在对话方面,已经非常可用,相当于本地有了一个随时可以聊天的助手。在构建私人知识库进行问答方面,我试的几个工具,目前都还处于不太可用的状态,我调过一些参数,也尝试了使用Markdown文本的知识库,都不OK。期待早日这类工具能更完善些,或者LLM运营商提供私人知识库服务。更期待Llama3 70B级别的LLM能在本地便捷地运行起来。

lvaolan168的博客 1528

MDM主数据清洗和编码集成说明

绝大多数的企业业务系统是伴随业务发展而建设的,但随着业务发展单一系统难以支撑企业业务闭环。MDM主数据管理平台可以满足企业数据治理的需求,本文针对主数据清洗和编码集成进行梳理。...

数通畅联 3321

【LLM大模型】本地部署私人知识库的大模型!Llama 3 + RAG!

Llama 3 是由 Meta AI 开发的最先进的语言模型,擅长理解和生成类似人类的文本。凭借其令人印象深刻的自然语言处理能力,Llama 3 可以理解复杂的查询、提供准确的响应并参与与上下文相关的对话。它能够处理广泛的主题和处理效率,使其成为构建智能应用程序的理想选择。想测试Llama 3的威力吗?立即与 Anakin AI 聊天!(它支持任何可用的 AI 模型!什么是RAG?检索增强生成 (RAG) 是一种将信息检索和语言生成相结合以提高问答系统性能的技术。

h1453586413的博客 1583

WinForm实战:如何用C#和PdfiumViewer打造一个功能齐全的PDF阅读器(含源码)

本文详细介绍了如何使用C#和PdfiumViewer库从零开始构建一个功能齐全的WinForm PDF阅读器。内容涵盖项目环境搭建、核心组件解析、基于命令模式的工具栏与UI架构设计,并深入讲解了智能缩放、页面导航、打印功能等核心交互的实现,以及内存管理和性能优化等高级话题,为开发者提供了一套完整的实战解决方案。

docker8compose的博客 505

RT-Thread Studio与CubeMX联合编程(超级详细)

RT-Thread Studio与CubeMX联合编程 本文章参考以下文章: https://blog.youkuaiyun.com/qq_40824852/article/details/122596043 https://zhuanlan.zhihu.com/p/395106066 https://blog.youkuaiyun.com/m0_37697335/article/details/108890584 一、简介 经过上次对RT-Thread Studio的初步尝试,发现RT-Thread Studio中存在官方支

zhuzhu的博客 3万+

Llama 3 + RAG!LLM大模型本地部署私人知识库!

我们探讨Meta AI 的尖端 Llama 3 语言模型构建强大的检索增强生成 (RAG) 来实现。通过利用 Llama 3 和 RAG 技术的功能,我们将创建一个应用程序,允许用户与网页进行交互式对话,检索定制化、私人知识库的相关信息并生成对用户查询的准确响应。在本教程中,我们将深入探讨设置开发环境、加载和处理网页数据、创建嵌入和向量存储以及实现 RAG 链以提供卓越用户体验的分步过程。

2301_81940605的博客 1001

适合初学者的ROS机器人教程(1): Ubuntu下ROS创建自己的包和使用github下载的包

ROS如何创建自己的包 1. 首先创建catkin工作空间(如果你以及有了请忽略) $ mkdir catkin_ws # 创建一个文件夹里面计划放我们的项目,ws是workspace的缩写 $ cd catkin_ws # 将当前工作文件夹切换到catkin_ws这个文件夹 ~/catkin_ws$ catkin_make # 执行catkin_make创建一ROS项目 此时你的catkin_...

@司南牧|知乎|博客|易懂教程|李韬 3245

Llama 3 + RAG!LLM大模型本地部署私人知识库,大模型入门到精通,收藏这篇就足够了!

在本教程中,我们将深入探讨设置开发环境、加载和处理网页数据、创建嵌入和向量存储以及实现 RAG 链以提供卓越用户体验的分步过程。

pythonhy的博客 768

16、天文时间序列分类:基于人工神经网络的研究

本研究探讨了基于人工神经网络的天文时间序列分类方法,重点比较了MLP、LSTM和CNN等模型在BRITE和开普勒K2数据集上的表现。研究发现LSTM不适用于此类数据,而结合特征提取与PSO超参数优化的多层感知器(MLP)在开普勒K2数据上实现了98.55%的二分类准确率。通过精细的数据预处理和高置信度样本选择,显著提升了分类性能。研究成果为恒星变异性识别提供了高效工具,并对天文学与机器学习交叉领域具有重要参考价值。

pz8901234的博客 113

UNet改进(19):基于残差注意力模块Residual Attention的高效分割网络设计

本文提出一种结合注意力机制的改进UNet网络,通过引入残差注意力模块(ResidualAttentionBlock)增强医学图像分割性能。该网络在传统UNet的U型结构基础上,创新性地将轻量级注意力机制与残差连接相结合,在编码器-解码器各层级实现特征重标定。改进后的网络具有三方面优势:通过注意力机制自适应聚焦关键特征区域,利用残差连接缓解梯度消失问题,采用模块化设计灵活配置注意力位置。

2501_91516851的博客 784

本地部署知识库:Llama 3 + RAG +大模型开源教程「动手学大模型应用开发」

在本教程中,我们将深入探讨设置开发环境、加载和处理网页数据、创建嵌入和向量存储以及实现 RAG 链以提供卓越用户体验的分步过程。

2301_81940605的博客 663

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

打造专属知识库:利用Llama3与LangChain,通过RAG构建私人信息库

LLM存在时效性和幻觉问题,在 [如何用解决大模型时效性和准确性问题?RAG技术核心原理]一文中我介绍了RAG的核心原理,本文将分享如何基于llama3和langchain搭建本地私有知识库。

2401_84204207的博客 1103

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

三步搞定私人AI助手 | LLaMA-3本地部署小白攻略

在你的电脑上运行一个强大的AI助手,它不仅能力超群,还把所有秘密都藏在你的硬盘里。好奇这是如何实现的吗?动动手,三分钟就可以完成LLaMA-3的本地部署!

DEVELOPERAA的博客 1062

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

三步搞定私人AI助手 | LLaMA-3本地部署小白攻略(附教程)

在你的电脑上运行一个强大的AI助手,它不仅能力超群,还把所有秘密都藏在你的硬盘里。好奇这是如何实现的吗?动动手,三分钟就可以完成LLaMA-3的本地部署!

瓦罗兰特顶级C位的博客 1765

私有化搭建、本地知识库、可联网查询、具备RAG能力的私人DeepSeek

对私有化部署的DeepSeek进行设置,搭建本地知识库、联网搜索、RAG(检索增强生成),以实现私人专属AI大模型。

云计算课代表 2051
上一篇: 5分钟打造基于 LangChain+Gradio 的个人知识助理
下一篇: 如何构建o1模型推理能力?清华北大等提出LLaVA-o1: 让视觉语言模型逐步推理
Llama-Turbo
博客等级 码龄4年 9901粉丝 2024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值