Gemma 2 :使用 Ollama 或 Hugginface 构建 RAG(检索增强生成)管道。了解高级 RAG、部署策略。
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1em;letter-spacing: 0.1em;color: rgb(80, 80, 80);">
Hi,这里是Aitrainee,欢迎阅读本期新文章。
没错,这两天关于Gemma2 9B、27B开源的消息又刷屏了,如果你还不知道的话,可以搜搜看看,还是挺不错的。
▲从这组官方的对比数据看出,能力已经力压llama3,甚至gemma:27b的能力也接近了llama3 70b,看来模型真的是在往小了发展,越来越接地气,我们老百姓的普通电脑配置也能跑起来!
既然老百姓的普通电脑都能跑了(9B),那我们就介绍使用 Gemma 2 构建 RAG的全过程:
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin-top: 2em;margin-right: 8px;margin-bottom: 0.75em;padding-left: 8px;border-left: 3px solid rgb(0, 152, 116);color: rgb(63, 63, 63);">步骤一:下载和安装Gemma 2ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">首先,您需要在本地计算机上安装Ollama,这是一个终端应用程序,可以帮助您下载大型语言模型,例如Gemma 2。只需打开终端,复制并粘贴以下命令即可:ollama run gemma2。这将把模型下载到你的计算机上。#要下载的软件包列表
```python
#安装所需的软件包
#!pipinstalltransformers
#!pipinstalllangchain-chroma
#!pipinstalllangchain
#!pipinstalllangchain_community
#!pipinstalllangchainhub
#pipinstalllangchain-huggingface
#pipinstall--upgrade--quietlangchainsentence_transformers
#!pipinstall-U"huggingface_hub[cli]"
#!huggingface-cliloginingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin-top: 2em;margin-right: 8px;margin-bottom: 0.75em;padding-left: 8px;border-left: 3px solid rgb(0, 152, 116);color: rgb(63, 63, 63);">步骤二:加载和转换数据接下来,我们将从一个网站加载数据,这里选择了关于LeBron James的网站。尽管有观众在我之前的视频中表示偏好其他球员,但我选择这个网站是因为它包含了复杂的数据,能够很好地测试模型的性能。我们将使用一个网络数据加载器来加载数据,并将其转换为一个名为Chroma DB的向量数据库。
fromlangchain_community.document_loadersimportWebBaseLoader
#加载数据
loader=WebBaseLoader("https://www.nba.com/player/2544/lebron-james")
data=loader.load()
datafromlangchain.vectorstoresimportChroma
fromlangchain_huggingfaceimportHuggingFaceEmbeddings
#使用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,然后运行这个链,传入问题并检视结果。
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;overflow-x: auto;border-radius: 8px;margin: 10px 8px;">fromlangchain_community.chat_modelsimportChatOllama
fromlangchain_core.output_parsersimportStrOutputParser
fromlangchain_core.promptsimportChatPromptTemplate
fromlangchain.chainsimportRetrievalQA
fromlangchainimporthub
fromlangchain_huggingface.llmsimportHuggingFacePipeline
fromtransformersimportAutoModelForCausalLM,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 管道,并最终进行问答。
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |