微信扫码
与创始人交个朋友
我要投稿
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+中大型企业
2024-11-23
FastRAG半结构化RAG实现思路及OpenAI O1-long COT蒸馏路线思考
2024-11-23
检索增强生成(RAG):解密AI如何融合记忆与搜索
2024-11-23
如何提高RAG系统准确率?12大常见痛点及巧妙解!
2024-11-23
RAG 2.0性能提升:优化索引与召回机制的策略与实践
2024-11-22
RAG技术在实际应用中的挑战与解决方案
2024-11-22
从普通RAG到RAPTOR,10个最新的RAG框架
2024-11-22
如何使用 RAG 提高 LLM 成绩
2024-11-21
提升RAG性能的全攻略:优化检索增强生成系统的策略大揭秘 | 深度好文
2024-07-18
2024-05-05
2024-07-09
2024-05-19
2024-07-09
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21