当前位置: 首页 > news >正文

中国站长网站兰州专业做网站的公司

中国站长网站,兰州专业做网站的公司,淘宝网站怎样建,百度下载安装2021基础任务 (完成此任务即完成闯关) 任务要求#xff1a;基于 LlamaIndex 构建自己的 RAG 知识库#xff0c;寻找一个问题 A 在使用 LlamaIndex 之前InternLM2-Chat-1.8B模型不会回答#xff0c;借助 LlamaIndex 后 InternLM2-Chat-1.8B 模型具备回答 A 的能力#xff0c;截…基础任务 (完成此任务即完成闯关) 任务要求基于 LlamaIndex 构建自己的 RAG 知识库寻找一个问题 A 在使用 LlamaIndex 之前InternLM2-Chat-1.8B模型不会回答借助 LlamaIndex 后 InternLM2-Chat-1.8B 模型具备回答 A 的能力截图保存。 llamaindexInternlm2 RAG实践 本文将分为以下几个部分来介绍如何使用 LlamaIndex 来部署 InternLM2 1.8B以 InternStudio 的环境为例 前置知识环境、模型准备LlamaIndex HuggingFaceLLMLlamaIndex RAG 1. 前置知识 正式介绍检索增强生成Retrieval Augmented GenerationRAG技术以前大家不妨想想为什么会出现这样一个技术。 给模型注入新知识的方式可以简单分为两种方式一种是内部的即更新模型的权重另一个就是外部的方式给模型注入格外的上下文或者说外部信息不改变它的的权重。 第一种方式改变了模型的权重即进行模型训练这是一件代价比较大的事情大语言模型具体的训练过程可以参考InternLM2技术报告。第二种方式并不改变模型的权重只是给模型引入格外的信息。类比人类编程的过程第一种方式相当于你记住了某个函数的用法第二种方式相当于你阅读函数文档然后短暂的记住了某个函数的用法。  RAG 效果比对 如图所示由于xtuner是一款比较新的框架 InternLM2-Chat-1.8B 训练数据库中并没有收录到它的相关信息。左图中问答均未给出准确的答案。右图未对 InternLM2-Chat-1.8B 进行任何增训的情况下通过 RAG 技术实现的新增知识问答。 进入开发机后创建新的conda环境命名为 llamaindex在命令行模式下运行 conda create -n llamaindex python3.10 复制完成后在本地查看环境。 conda env list 结果如下所示。 # conda environments: # base * /root/.conda llamaindex /root/.conda/envs/llamaindex 运行 conda 命令激活 llamaindex 然后安装相关基础依赖 python 虚拟环境: conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvidia 安装python 依赖包 pip install einops0.7.0 protobuf5.26.1 环境激活后命令行左边会显示当前也就是 llamaindex 的环境名称如下图所示:  2.2 安装 Llamaindex 安装 Llamaindex和相关的包 conda activate llamaindex pip install llama-index0.10.38 llama-index-llms-huggingface0.2.0 transformers[torch]4.41.1 huggingface_hub[inference]0.23.1 huggingface_hub0.23.1 sentence-transformers2.7.0 sentencepiece0.2.0 2.3 下载 Sentence Transformer 模型 源词向量模型 Sentence Transformer:我们也可以选用别的开源词向量模型来进行 Embedding目前选用这个模型是相对轻量、支持中文且效果较好的同学们可以自由尝试别的开源词向量模型 运行以下指令新建一个python文件 cd ~ mkdir llamaindex_demo mkdir model cd ~/llamaindex_demo touch download_hf.py 打开download_hf.py 贴入以下代码 import os# 设置环境变量 os.environ[HF_ENDPOINT] https://hf-mirror.com# 下载模型 os.system(huggingface-cli download --resume-download sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 --local-dir /root/model/sentence-transformer) 然后在 /root/llamaindex_demo 目录下执行该脚本即可自动开始下载 cd /root/llamaindex_demo conda activate llamaindex python download_hf.py 更多关于镜像使用可以移步至 HF Mirror 查看。 2.4 下载 NLTK 相关资源 我们在使用开源词向量模型构建开源词向量的时候需要用到第三方库 nltk 的一些资源。正常情况下其会自动从互联网上下载但可能由于网络原因会导致下载中断此处我们可以从国内仓库镜像地址下载相关资源保存到服务器上。 我们用以下命令下载 nltk 资源并解压到服务器上 cd /root git clone https://gitee.com/yzy0612/nltk_data.git --branch gh-pages cd nltk_data mv packages/* ./ cd tokenizers unzip punkt.zip cd ../taggers unzip averaged_perceptron_tagger.zip 之后使用时服务器即会自动使用已有资源无需再次下载 3. LlamaIndex HuggingFaceLLM 运行以下指令把 InternLM2 1.8B 软连接出来 cd ~/model ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b/ ./ 运行以下指令新建一个python文件 cd ~/llamaindex_demo touch llamaindex_internlm.py 打开llamaindex_internlm.py 贴入以下代码 from llama_index.llms.huggingface import HuggingFaceLLM from llama_index.core.llms import ChatMessage llm HuggingFaceLLM(model_name/root/model/internlm2-chat-1_8b,tokenizer_name/root/model/internlm2-chat-1_8b,model_kwargs{trust_remote_code:True},tokenizer_kwargs{trust_remote_code:True} )rsp llm.chat(messages[ChatMessage(contentxtuner是什么)]) print(rsp) 之后运行 conda activate llamaindex cd ~/llamaindex_demo/ python llamaindex_internlm.py 结果为 回答的效果并不好并不是我们想要的xtuner。 4. LlamaIndex RAG 安装 LlamaIndex 词嵌入向量依赖 conda activate llamaindex pip install llama-index-embeddings-huggingface0.2.0 llama-index-embeddings-instructor0.1.3 运行以下命令获取知识库 cd ~/llamaindex_demo mkdir data cd data git clone https://github.com/InternLM/xtuner.git mv xtuner/README_zh-CN.md ./ 运行以下指令新建一个python文件 cd ~/llamaindex_demo touch llamaindex_RAG.py 打开llamaindex_RAG.py贴入以下代码 from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settingsfrom llama_index.embeddings.huggingface import HuggingFaceEmbedding from llama_index.llms.huggingface import HuggingFaceLLM#初始化一个HuggingFaceEmbedding对象用于将文本转换为向量表示 embed_model HuggingFaceEmbedding( #指定了一个预训练的sentence-transformer模型的路径model_name/root/model/sentence-transformer ) #将创建的嵌入模型赋值给全局设置的embed_model属性 #这样在后续的索引构建过程中就会使用这个模型。 Settings.embed_model embed_modelllm HuggingFaceLLM(model_name/root/model/internlm2-chat-1_8b,tokenizer_name/root/model/internlm2-chat-1_8b,model_kwargs{trust_remote_code:True},tokenizer_kwargs{trust_remote_code:True} ) #设置全局的llm属性这样在索引查询时会使用这个模型。 Settings.llm llm#从指定目录读取所有文档并加载数据到内存中 documents SimpleDirectoryReader(/root/llamaindex_demo/data).load_data() #创建一个VectorStoreIndex并使用之前加载的文档来构建索引。 # 此索引将文档转换为向量并存储这些向量以便于快速检索。 index VectorStoreIndex.from_documents(documents) # 创建一个查询引擎这个引擎可以接收查询并返回相关文档的响应。 query_engine index.as_query_engine() response query_engine.query(xtuner是什么?)print(response) 之后运行 conda activate llamaindex cd ~/llamaindex_demo/ python llamaindex_RAG.py 结果为  借助RAG技术后就能获得我们想要的答案了。 5. LlamaIndex web 运行之前首先安装依赖 pip install streamlit1.36.0 运行以下指令新建一个python文件 cd ~/llamaindex_demo touch app.py 打开app.py贴入以下代码 import streamlit as st from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings from llama_index.embeddings.huggingface import HuggingFaceEmbedding from llama_index.llms.huggingface import HuggingFaceLLMst.set_page_config(page_titlellama_index_demo, page_icon) st.title(llama_index_demo)# 初始化模型 st.cache_resource def init_models():embed_model HuggingFaceEmbedding(model_name/root/model/sentence-transformer)Settings.embed_model embed_modelllm HuggingFaceLLM(model_name/root/model/internlm2-chat-1_8b,tokenizer_name/root/model/internlm2-chat-1_8b,model_kwargs{trust_remote_code: True},tokenizer_kwargs{trust_remote_code: True})Settings.llm llmdocuments SimpleDirectoryReader(/root/llamaindex_demo/data).load_data()index VectorStoreIndex.from_documents(documents)query_engine index.as_query_engine()return query_engine# 检查是否需要初始化模型 if query_engine not in st.session_state:st.session_state[query_engine] init_models()def greet2(question):response st.session_state[query_engine].query(question)return response# Store LLM generated responses if messages not in st.session_state.keys():st.session_state.messages [{role: assistant, content: 你好我是你的助手有什么我可以帮助你的吗}] # Display or clear chat messages for message in st.session_state.messages:with st.chat_message(message[role]):st.write(message[content])def clear_chat_history():st.session_state.messages [{role: assistant, content: 你好我是你的助手有什么我可以帮助你的吗}]st.sidebar.button(Clear Chat History, on_clickclear_chat_history)# Function for generating LLaMA2 response def generate_llama_index_response(prompt_input):return greet2(prompt_input)# User-provided prompt if prompt : st.chat_input():st.session_state.messages.append({role: user, content: prompt})with st.chat_message(user):st.write(prompt)# Gegenerate_llama_index_response last message is not from assistant if st.session_state.messages[-1][role] ! assistant:with st.chat_message(assistant):with st.spinner(Thinking...):response generate_llama_index_response(prompt)placeholder st.empty()placeholder.markdown(response)message {role: assistant, content: response}st.session_state.messages.append(message) 之后运行 streamlit run app.py 然后在命令行点击红框里的url。 即可进入以下网页然后就可以开始尝试问问题了。 询问结果为
http://www.hkea.cn/news/14332286/

相关文章:

  • 2008 iis asp配置网站金华网站建设网站
  • 饮料网站建设市场分析沈阳百度推广哪家好
  • 眼镜网站怎么做竞价汕头房产网站建设
  • 网站上线确认书锕锕锕锕锕锕锕好湿免费网址
  • 个人做外贸的网站那个好做无锡网站制作建设
  • 多php网站建设wordpress 显示文章列表
  • 网站开发网址免费社区建站系统
  • 网站开发jd网站开发属于什么职位类别
  • 丝印网版制作整站seo优化哪家好
  • 网站建设试用wordpress备案显示
  • 做公众号主页面的有哪些网站二手手表交易平台哪个好
  • 抚州网站建设公司石家庄做外贸网站建设
  • 现在网站给源码wordpress 网站地图
  • 杨凌做网站的公司网站建设规划书中的技术可行性不包括
  • 黄山集团网站建设网站建设的布局对网络推广的影响
  • 太仓网站公司如何建设局域网网站
  • 一个学校怎么制作网站哈尔滨优化网站方法
  • 水利工程建设信息网站Wordpress下拉选择默认
  • wordpress设置关站动漫网站在线免费观看
  • 泰国用什么网站做电商网站电脑端和手机端
  • 电子商务网站建设的论文石家庄做网站网络公司
  • js网站页面效果代码广告平面设计培训班要学多久
  • 小工作室做网站wordpress弹窗广告
  • 网站设计不包括沼气服务网站建设管理
  • 个人如何做购物网站 关于支付接口龙口网络公司
  • 湛江免费建站哪里有沈阳公司网站
  • 国内网站开发的主流技术如何用网站开发工具停止网页进程
  • 南宁定制网站制作网络公司开销售单的软件哪个好用
  • 苏州公司网站建设电话线上营销怎么做
  • 深圳建设银行官方网站免费pc网站建设