个人网站推广手段有哪些百度竞价是什么工作

pingmian/2026/1/22 23:20:41/文章来源:
个人网站推广手段有哪些,百度竞价是什么工作,站内seo优化,漯河做网站推广一、RAG介绍 如何使用没有被LLM训练过的数据来提高LLM性能#xff1f;检索增强生成#xff08;RAG#xff09;是未来的发展方向#xff0c;下面将解释一下它的含义和实际工作原理。 ​ 假设您有自己的数据集#xff0c;例如来自公司的文本文档。如何让ChatGPT和其他… 一、RAG介绍 如何使用没有被LLM训练过的数据来提高LLM性能检索增强生成RAG是未来的发展方向下面将解释一下它的含义和实际工作原理。 ​       假设您有自己的数据集例如来自公司的文本文档。如何让ChatGPT和其他LLM了解它并回答问题 这可以通过四个步骤轻松完成 Embedding使用embedding模型对文档进行embedding操作比如OpenAI的text-Embedding-ada-002或S-BERThttps://arxiv.org/abs/1908.10084。将文档的句子或单词块转换为数字向量。就向量之间的距离而言彼此相似的句子应该很近而不同的句子应该离得更远 Vector Storeembedding文档之后就可以把它们存储在矢量存储中比如ChromaDB、FAISS或Pinecone。矢量存储就像一个数据库但顾名思义它对矢量嵌入进行索引和存储以实现快速检索和相似性搜索 Query既然你的文档已经嵌入并存储当你向LLM提出特定问题时它会embedding你的查询并在向量存储中找到余弦相似度最接近你问题的句子 Answering Your Question一旦找到最接近的句子它们就会被注入到Prompt中就这样LLM现在可以在没有经过任何再训练或微调的情况下回答有关数据的特定问题 整体的架构如下图所示 PS有关RAG的更多信息请查看IBM高级研究科学家Marina Danilevsky的这段来自IBM的精彩视频地址是https://www.youtube.com/watch?vT-D1OfcDW1M。 二、安装python环境以及相关的包 !pip install gradio --quiet!pip install xformer --quiet!pip install chromadb --quiet!pip install langchain --quiet!pip install accelerate --quiet!pip install transformers --quiet!pip install bitsandbytes --quiet!pip install unstructured --quiet!pip install sentence-transformers --quiet 三、导入相关包 import torchimport gradio as gr​from textwrap import fillfrom IPython.display import Markdown, display​from langchain.prompts.chat import ( ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate, )​from langchain import PromptTemplatefrom langchain import HuggingFacePipeline​from langchain.vectorstores import Chromafrom langchain.schema import AIMessage, HumanMessagefrom langchain.memory import ConversationBufferMemoryfrom langchain.embeddings import HuggingFaceEmbeddingsfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain.document_loaders import UnstructuredMarkdownLoader, UnstructuredURLLoaderfrom langchain.chains import LLMChain, SimpleSequentialChain, RetrievalQA, ConversationalRetrievalChain​from transformers import BitsAndBytesConfig, AutoModelForCausalLM, AutoTokenizer, GenerationConfig, pipeline​import warningswarnings.filterwarnings(ignore) 四、Mistral-7b模型介绍 Mistral-7B是由Mistral AI开源的在多个benchmark上超过LLaMA2如下图所示 下面将使用Mistral AI开发的基础LLM Mistral-7b建立了一个文本生成Pipeline对其进行量化、分词和生成参数进行配置 quantiation_configBitsAndBytesConfig…这里使用BitsAndBytesConfig定义量化配置。量化是一种用于降低深度学习模型的内存和计算需求的技术通常通过使用更少的比特在我们的情况下为4比特来表示模型参数tokenizerAutoTokenizer.from_pretrained…这一行初始化Mistral-7b模型的tokenizer允许您预处理输入到模型的文本数据modelAutoModelForCausalLM.from_pretrained…这初始化了用于因果语言建模的预训练语言Mistral-7b模型。该模型配置有各种参数包括先前设置的量化配置generation_configGenerationConfig.from_pretrained…为模型创建一个生成配置指定各种与生成相关的设置如令牌的最大数量、采样温度、top-p采样和重复惩罚pipelinepipeline…最后使用pipeline函数创建一个文本生成管道。这个管道是为文本生成而设置的它将预先训练的模型、标记器和生成配置作为输入。它被配置为返回全文输出。 MODEL_NAME mistralai/Mistral-7B-Instruct-v0.1​quantization_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_compute_dtypetorch.float16, bnb_4bit_quant_typenf4, bnb_4bit_use_double_quantTrue,)​tokenizer AutoTokenizer.from_pretrained(MODEL_NAME, use_fastTrue)tokenizer.pad_token tokenizer.eos_token​model AutoModelForCausalLM.from_pretrained( MODEL_NAME, torch_dtypetorch.float16, trust_remote_codeTrue, device_mapauto, quantization_configquantization_config)​generation_config GenerationConfig.from_pretrained(MODEL_NAME)generation_config.max_new_tokens 1024generation_config.temperature 0.0001generation_config.top_p 0.95generation_config.do_sample Truegeneration_config.repetition_penalty 1.15​pipeline pipeline( text-generation, modelmodel, tokenizertokenizer, return_full_textTrue, generation_configgeneration_config,) HuggingFacePipeline是一个允许您在本地运行Hugging Face模型的类它用于访问和利用Hugging Face Model Hub上托管的各种预先训练的ML模型。在我们的案例中我们将在LangChain环境中使用它作为本地包装器与Hugging Face模型进行交互。然而当使用HuggingFacePipeline时建议安装xformerhttps://github.com/facebookresearch/xformers以实现更高效的内存注意力实现。这就是我们在上面安装它的原因 llm HuggingFacePipeline( pipelinepipeline, ) 在将我们的基础LLM Mistral-7b连接到我们的私人数据之前。首先让我们问一些一般性的问题。当然它将根据在训练前获得的一般知识做出回应。 query Explain the difference between ChatGPT and open source LLMs in a couple of lines.result llm( query)​display(Markdown(fb{query}/b))display(Markdown(fp{result}/p)) 看起来回答的不错如果我们问它一个在预训练阶段没有遇到的问题会发生什么 query What is Hiberus GenIA Ecosystem?result llm( query)​display(Markdown(fb{query}/b))display(Markdown(fp{result}/p)) 这不是预期的答案。GenIA生态系统甚至比这更酷这是因为Mistral-7b LLM在预训练期间从未见过任何关于GenIA生态的信息。我保证在接下来的章节中引导您获得正确答案。 五、Embedding模型 在配置基础LLM之后我们继续来配置embedding模型。正如您所知每个文档都应该转换为embedding向量以便使用用户的查询进行语义搜索该查询也应该被embedding。为了实现这一点我们将利用阿里巴巴大摩学院预训练并在Hugging Face上开源的embedding模型GTEhttps://arxiv.org/abs/2308.03281。值得注意的是这个模型既免费又强大。为了完成我们的任务我们将使用HuggingFaceEmbeddings类这是一个本地管道包装器用于与Hugging Face Hub上托管的GTE模型进行交互。 embeddings HuggingFaceEmbeddings( model_namethenlper/gte-large, model_kwargs{device: cuda}, encode_kwargs{normalize_embeddings: True},) 六、Prompt Template PromptTemplate通过结构化Prompt格式使模型按照用户期望的格式进行输出模板可以包括指令、few-shot例子以及适合特定任务的特定上下文和问题。 template [INST] Act as a Machine Learning engineer who is teaching high school students.​{text} [/INST]​prompt PromptTemplate( input_variables[text], templatetemplate,) 我们来看一下效果 query Explain what are Deep Neural Networks in 2-3 sentencesresult llm(prompt.format(textquery))​display(Markdown(fb{query}/b))display(Markdown(fp{result}/p)) 七、数据加载 数据加载流程如下图所示 为了准确回答我们之前的问题What is Hiberus GenIA Ecosystem?我们必须将LLM与GenIA生态系统的信息联系起来。很幸运有两个网页是理解GenIA生态系统的关键。 urls [ https://www.hiberus.com/expertos-ia-generativa-ld, https://www.hiberus.com/en/experts-generative-ai-ld]​loader UnstructuredURLLoader(urlsurls)documents loader.load()​len(documents)# Output 由于这两个文档数据量较大以及超过了Mistral-7b大模型的上下文窗口大小因此我们需要将文档按照1024个tokens大小进行切分生成21个较小的chunks并且为了保证上下文的连续性chunk与chunk直接设置64个重叠tokens代码如下 text_splitter RecursiveCharacterTextSplitter(chunk_size1024, chunk_overlap64)texts_chunks text_splitter.split_documents(documents)​len(texts_chunks) 八、数据注入 对数据分块之后我们将对分块数据进行embedding并存储到向量数据库Chromdb中 db Chroma.from_documents(texts_chunks, embeddings, persist_directorydb) 数据被添加索引之后我们可以在Prompt模板中添加RAG模型赋予营销经理专家的角色 此外为了将LLM与矢量数据库检索功能相结合我们使用了关键的链接组件RetrievalQA其中k2。这种设置确保检索器输出两个相关的块然后LLM在提出问题时使用这两个块来制定答案。 template [INST] Act as an Hiberus marketing manager expert. Use the following information to answer the question at the end.​{context}​{question} [/INST]​prompt PromptTemplate(templatetemplate, input_variables[context, question])​qa_chain RetrievalQA.from_chain_type( llmllm, chain_typestuff, retrieverdb.as_retriever(search_kwargs{k: 2}), return_source_documentsTrue, chain_type_kwargs{prompt: prompt},) 九、查询 执行完上述步骤我们就可以进行查询了。 例子一 query What is GenAI Ecosystem?result_ qa_chain( query)result result_[result].strip()​​display(Markdown(fb{query}/b))display(Markdown(fp{result}/p)) 例子二 query Why Hiberus has created GenAI Ecosystem?result_ qa_chain( query)result result_[result].strip()​​display(Markdown(fb{query}/b))display(Markdown(fp{result}/p)) 这两个问题的答案都符合预期包括我们之前错过的那个问题。我们还可以输出LLM生成答案的源文档或参考文档。 result_[source_documents] 十、问答 为了实现问答功能我们首先对Prompt模板进行一些调整。然后我们使用ConversationBufferMemory将对话存储在内存中然后稍后检索消息。最后使用链接组件ConversationalRetrievalChain将我们的LLM Mistral-7b与矢量数据库和聊天历史相结合。问答系统整体架构如下图所示 custom_template You are an Hiberus Marketing Manager AI Assistant. Given thefollowing conversation and a follow up question, rephrase the follow up questionto be a standalone question. At the end of standalone question add thisAnswer the question in English language. If you do not know the answer reply with I am sorry, I dont have enough information.Chat History:{chat_history}Follow Up Input: {question}Standalone question:​CUSTOM_QUESTION_PROMPT PromptTemplate.from_template(custom_template)​memory ConversationBufferMemory(memory_keychat_history, return_messagesTrue)​qa_chain ConversationalRetrievalChain.from_llm( llmllm, retrieverdb.as_retriever(search_kwargs{k: 2}), memorymemory, condense_question_promptCUSTOM_QUESTION_PROMPT,) 我们来测试一下问答功能 query Who you are?result_ qa_chain({question: query})result result_[answer].strip()​display(Markdown(fb{query}/b))display(Markdown(fp{result}/p)) query What is GenIA Ecosystem?​result_ qa_chain({question: query})result result_[answer].strip()​display(Markdown(fb{query}/b))display(Markdown(fp{result}/p)) 我们可以通过查看HumanMessages中的问题和AIMessages中的模型响应来获取聊天的历史记录。 memory.chat_memory.messages 十一、基于Gradio搭建问答UI界面 我之前写过一篇一键部署Huggingface模型工具Gradio介绍过Gradio的具体使用Gradio具有用户友好的网络界面任何人都可以从任何地方访问它的工作原理如下我们设置了一个名为querying()的函数它将查询作为主要输入并使用一个名为history的名称巧妙的假参数来解决一个小问题。当你启动这个函数时它会返回我们的超级明星模型Mistral-7b生成的响应。 def querying(query, history): memory ConversationBufferMemory(memory_keychat_history, return_messagesTrue)​ qa_chain ConversationalRetrievalChain.from_llm( llmllm, retrieverdb.as_retriever(search_kwargs{k: 2}), memorymemory, condense_question_promptCUSTOM_QUESTION_PROMPT, )​ result qa_chain({question: query}) return result[answer].strip() 启动Gradio聊天界面 iface gr.ChatInterface( fn querying, chatbotgr.Chatbot(height600), textboxgr.Textbox(placeholderWhat is GenAI Ecosystem?, containerFalse, scale7), titleHiberusBot, themesoft, examples[Why Hiberus has created GenAI Ecosystem?, What is GenAI Ecosystem?],​ cache_examplesTrue, retry_btnRepetir, undo_btnDeshacer, clear_btnBorrar, submit_btnEnviar​ )​iface.launch(shareTrue) 最终展示的聊天界面如下图所示 参考文献 [1] https://medium.com/zekaouinoureddine/ask-your-web-pages-using-mistral-7b-langchain-f976e1e151ca [2] https://arxiv.org/abs/2005.11401 [3] https://arxiv.org/abs/2310.06825 [4] https://arxiv.org/abs/2308.03281 [5] https://www.youtube.com/watch?vPuU_qf23u_8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么网站免费做推广深圳公司车牌怎么申请流程

hexo是由Node.js驱动的一款快速、简单且功能强大的博客框架,支持多线程,数百篇文章只需几秒即可生成。支持markdown编写文章,可以方便的生成静态网页托管在github上。 感觉不错。 前端人员都在用github分享自己的代码。所以想着用hexo部署到g…

wordpress给图片固定尺寸网站优化培训班

文章目录 一、数组的概念1. 什么是数组2. 数组的创建及初始化3. 数组的使用3.1 数组中元素的访问3.2 遍历数组 二、数组是引用类型1. 初始JVM的内存分布2. 基本类型变量与引用变量的区别3. 引用变量4. 认识null 三、数组的应用场景1. 保存数据2. 作为函数的参数2.1 参数传基本类…

专业手机网站建设多少钱网易邮箱163登录

cWing 93. 递归实现组合型枚举 1.排序 考虑顺序 2. 组合 不考虑顺序 参数 -核心 递归 模板 1.指数型 选/不选 2. 排列 -考虑顺序 (判重数组 不知道哪个数有有没有用过)3.组合 不考虑顺序 数据范围 从n个数里选m个数 组合数中间点 取范围 #includ…

吉林网站建站系统平台短视频推广广告

选择使用静态 IP 还是 DHCP(动态主机配置协议)取决于您的网络需求和环境。下面是它们的一些特点和适用场景: 静态 IP: 固定的 IP 地址:静态 IP 是手动配置在设备上的固定 IP 地址,不会随时间或网络变化而改…

文章资讯类网站北京快三是官方的吗

#include<set> multiset与set的唯一不同&#xff1a;允许插入重复的元素。 在插入元素、删除元素、查找元素上与set 有区别。 multiset元素的插入&#xff1a; multiset<int> ms; ms.insert(11); ms.insert(11); //插入两个11&#xff0c;遍历时同样有两个11。…

广东哪家网站建性价比高的网站建设

因产品而异&#xff0c;要看产品类型的工具类&#xff0c;启动次数很重要&#xff1b;社区类&#xff0c;活跃用户和UGC很重要&#xff1b;游戏&#xff0c;在线人数和arpu值是关键。。。转载于:https://blog.51cto.com/yerik/1166365

微商城网站开发政务内网网站群建设方案

文章目录 bzgrep补充说明语法参数 egrep补充说明语法实例 从零学 python bzgrep 使用正则表达式搜索.bz2压缩包中的文件。 补充说明 bzgrep命令用于在.bz2压缩包中搜索符合正则表达式的内容&#xff0c;并将匹配的行输出到标准输出。 语法 bzgrep <pattern> <bz2…

如何做网站优化并快速提高权重视频制作gif表情包

spring 启动进度重新启动企业应用程序时&#xff0c;客户打开Web浏览器时会看到什么&#xff1f; 他们什么也没看到&#xff0c;服务器还没有响应&#xff0c;因此Web浏览器显示ERR_CONNECTION_REFUSED 应用程序前面的Web代理&#xff08;如果有&#xff09;注意到它已关闭&a…

餐饮加盟网站怎么做wordpress配置多站点

文章目录 1. 云计算1.1 云计算概念1.2 云计算的服务模式和类型1.3 云计算的数据中心与应用 2. 物联网2.1 物联网的概念和关键技术2.2 物联网的应用和产业2.3 大数据与云计算、物联网的关系 1. 云计算 1.1 云计算概念 1. 首先从商业角度给云计算下一个定义&#xff1a;通过网络…

购物网站开发文献综述长春网站营销

python if not判断是否为None的情况if not xif x is Noneif not x is Noneif x is not None是最好的写法&#xff0c;清晰&#xff0c;不会出现错误&#xff0c;以后坚持使用这种写法。使用if not x这种写法的前提是&#xff1a;必须清楚x等于None, False, 空字符串""…

自媒体横行还有做网站淘宝网站怎么做的好坏

PHP解压tar.gz格式文件的方法&#xff0c;本文实例讲述了PHP解压tar.gz格式文件的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;1、运用php自带压缩与归档扩展(phar)$phar new PharData(song.tar.gz);//路径 要解压的文件 是否覆盖$phar->extractTo(c:/tmp,…

qq是腾讯还是阿里湖北短视频seo营销

今天开始学mysql数据库&#xff0c;为什么要学这个呢&#xff0c;因为数据库可结构化存储大量的数据信息&#xff0c;方便用户进行有效的检索和访问。数据库可有效地保持数据信息的一致性、完整性、降低数据冗余。数据库可满足应用的共享和安全方面的要求&#xff0c;把数据放在…

怎样如何做网站赚钱网站营销策略

9月10日下午&#xff0c;华为在东莞松山湖举办了2020开发者大会&#xff0c;鸿蒙OS 2.0正式发布。会后&#xff0c;华为软件部总裁王成录博士、华为软件部副总裁杨海松等接受了专访。谈及鸿蒙OS 2.0的规划&#xff0c;杨海松表示&#xff0c;大家非常期待的手机的Beta版本会在今…

liunx做网站跳转服务器企业网站代备案

文章目录 概要Labelme 是什么&#xff1f;Labelme 能干啥&#xff1f; Ubuntu20.04安装Labelme1.Anaconda的安装2.Labelme的安装3.Labelme的使用 概要 图像检测需要自己的数据集&#xff0c;为此需要对一些数据进行数据标注&#xff0c;这里提供了一种图像的常用标注工具——la…

永久网站装修公司网站asp源码

在Python中&#xff0c;你可以使用requests库来发送HTTP请求&#xff0c;以及BeautifulSoup或Scrapy库来解析网页内容。你也可以使用selenium库&#xff0c;它是一个自动化测试工具&#xff0c;用于模拟用户在浏览器中的操作。 下面是一个简单的例子&#xff0c;说明如何使用r…

涿州李战彪搜索引擎优化入门

env&#xff1a; centos 6.5 x64 hyper-v虚拟机 这个方法可以在当前运行的系统中扩展root磁盘 详细步骤 之前想创建的一个虚拟机的磁盘空间不够用了&#xff0c;所以想扩容一下磁盘。 正好使用的时候是lvm磁盘&#xff0c;可以支持扩容。 格式化一个新的分区或者磁盘 Command…

手机一元云购网站建设网站开发工具评价

一. 场景下单后库存校验或者秒杀场景下&#xff0c;有很多利用“锁”的方案来解决问题。但是加锁其实是一件性价比很低的事&#xff0c;所以我们采用用redislua的方式来实现这个功能。二. 思路阶段一&#xff1a;在库存加减逻辑中分为2个步骤&#xff1a;STEP1.读取库存&#x…

免费二维码制作网站注册公司核名

文章目录 前言什么是服务质量&#xff08;QoS&#xff09;&#xff1f;如何配置服务质量&#xff1f;CPU资源配置示例 内存资源配置示例 服务质量等级的判断服务质量的最佳实践结论 前言 Kubernetes&#xff08;简称K8s&#xff09;是一种开源的容器编排平台&#xff0c;用于简…

wordpress多用户信息发布岳阳关键词优化

problem 洛谷链接 solution 一个 AiA_iAi​ 只会影响一个 BiB_iBi​&#xff0c;BiB_iBi​ 之间的决定因素 AAA 是不会有交的。 所以如果相邻两个对同一个 BiB_iBi​ 影响的 A2i,A2i−1A_{2i},A_{2i-1}A2i​,A2i−1​ 都是确定的&#xff0c;那么 BiB_iBi​ 也就确定了。 …

可视化建站网站源码常德做网站专业公司

D题&#xff08;文末获取完整版的&#xff09; 题目三&#xff1a;新控制方法是否会让各利益相关者满意或优于当年实际记录的 水位? 解题思路 问题 3 要求我们理解控制算法对两座控制大坝流出量的敏感性&#xff0c;并利用 2017 年 的数据来验证新控制措施是否能为各方利益相关…