微信扫码
添加专属顾问
我要投稿
Gemma 2 :使用 Ollama 或 Hugginface 构建 RAG(检索增强生成)管道。了解高级 RAG、部署策略。
Hi,这里是Aitrainee,欢迎阅读本期新文章。
没错,这两天关于Gemma2 9B、27B开源的消息又刷屏了,如果你还不知道的话,可以搜搜看看,还是挺不错的。
▲ 从这组官方的对比数据看出,能力已经力压llama3,甚至gemma:27b的能力也接近了llama3 70b,看来模型真的是在往小了发展,越来越接地气,我们老百姓的普通电脑配置也能跑起来!
既然老百姓的普通电脑都能跑了(9B),那我们就介绍使用 Gemma 2 构建 RAG的全过程:
首先,您需要在本地计算机上安装Ollama,这是一个终端应用程序,可以帮助您下载大型语言模型,例如Gemma 2。只需打开终端,复制并粘贴以下命令即可:ollama run gemma
2
。这将把模型下载到你的计算机上。
我已经完成了这一步,现在我们继续在代码编辑器中安装必要的包。
# 要下载的软件包列表
```python
# 安装所需的软件包
#!pip install transformers
#!pip install langchain-chroma
#!pip install langchain
#!pip install langchain_community
#!pip install langchainhub
#pip install langchain-huggingface
#pip install --upgrade --quiet langchain sentence_transformers
#!pip install -U "huggingface_hub[cli]"
#!huggingface-cli login
接下来,我们将从一个网站加载数据,这里选择了关于LeBron James的网站。尽管有观众在我之前的视频中表示偏好其他球员,但我选择这个网站是因为它包含了复杂的数据,能够很好地测试模型的性能。我们将使用一个网络数据加载器来加载数据,并将其转换为一个名为Chroma DB的向量数据库。
from langchain_community.document_loaders import WebBaseLoader
# 加载数据
loader = WebBaseLoader("https://www.nba.com/player/2544/lebron-james")
data = loader.load()
data
from langchain.vectorstores import Chroma
from langchain_huggingface import HuggingFaceEmbeddings
# 使用 HuggingFace 的嵌入模型
embeddings_model = HuggingFaceEmbeddings() # 例如 sentence-transformers/all-mpnet-base-v2
# 创建 Chroma 向量数据库
vectorstore = Chroma.from_documents(documents=data, embedding=embeddings_model, persist_directory="./chroma_db")
在这个步骤中,我们将导入所需的各种包,如chatolama、output parser、chat prompt等,并导入Transformers包。接着,使用chatolama加载Gemma 2模型,并从Lang chain Hub导入一个RAG prompt。我们会创建一个QA链,传入我们选择的LLM(Gemma 2)、检索器和RAG prompt,然后运行这个链,传入问题并检视结果。
from langchain_community.chat_models importChatOllama
from langchain_core.output_parsers importStrOutputParser
from langchain_core.prompts importChatPromptTemplate
from langchain.chains importRetrievalQA
from langchain import hub
from langchain_huggingface.llms importHuggingFacePipeline
from transformers importAutoModelForCausalLM,AutoTokenizer, pipeline
# 使用 ChatOllama 模型
llm =ChatOllama(model="gemma2")
# 拉取 RAG 提示模板
prompt = hub.pull("rlm/rag-prompt")
# 使用向量数据库创建检索器
vectorstore =Chroma(persist_directory="./chroma_db", embedding_function=HuggingFaceEmbeddings())
# 创建 RetrievalQA 链
qa_chain =RetrievalQA.from_chain_type(
llm,
retriever=vectorstore.as_retriever(),
chain_type_kwargs={"prompt": prompt}
)
# 提问并获取结果
question ="这些统计数据属于谁?"
result = qa_chain({"query": question})
# 输出结果
print(result["result"])
以上代码包含了所有步骤,从安装软件包、加载数据、创建向量数据库到创建 RAG 管道,并最终进行问答。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-19
基于Embedding分块 - 文本分块(Text Splitting),RAG不可缺失的重要环节
2025-04-19
RAG升级-基于知识图谱+deepseek打造强大的个人知识库问答机器人
2025-04-19
RAG vs. CAG vs. Fine-Tuning:如何为你的大语言模型选择最合适的“脑力升级”?
2025-04-19
低代码 RAG 只是信息搬运工,Graph RAG 让 AI 具备垂直深度推理能力!
2025-04-18
微软PIKE-RAG全面解析:解锁工业级应用领域知识理解与推理
2025-04-18
AI 记忆不等于 RAG:对话式 AI 为何需要超越检索增强
2025-04-18
Firecrawl:颠覆传统爬虫的AI黑科技,如何为LLM时代赋能
2025-04-18
什么是RAG与为什么要RAG?
2024-10-27
2024-09-04
2024-07-18
2024-05-05
2024-06-20
2024-06-13
2024-07-09
2024-07-09
2024-05-19
2024-07-07
2025-04-19
2025-04-18
2025-04-16
2025-04-14
2025-04-13
2025-04-11
2025-04-09
2025-04-07