检索增强生成(RAG)实践:基于LlamaIndex和Qwen1.5搭建智能问答系统检索增强生成(RAG)实践:基于Ll

Qwen1.5版本年前开源了包括0.5B、1.8B、4B、7B、14B和72B在内的六种大小的基础和聊天模型,同时,也开源了量化模型。不仅提供了Int4和Int8的GPTQ模型,还有AWQ模型,以及GGUF量化模型。为了提升开发者体验,Qwen1.5的代码合并到HuggingFaceTransformers中,开发者现在可以直接使用transformers>=4.37.0而无需trust_remote_code。

与之前的版本相比,Qwen1.5显著提升了聊天模型与人类偏好的一致性,并且改善了它们的多语言能力。所有模型提供了统一的上下文长度支持,支持32K上下文。还有,基础语言模型的质量也有所小幅改进

Qwen1.5全系列统一具备强大的链接外部系统能力(agent/RAG/Tool-use/Code-interpreter)

正因为Qwen1.5作为中文LLM率先合入了Transformers,我们也可以使用LLaMaIndex的原生HuggingFaceLLM来加载模型。

Qwen系列模型相比同规模模型均实现了效果的显著提升。我们评测的数据集包括MMLU、C-Eval、GSM8K、MATH、HumanEval、MBPP、BBH等数据集,考察的能力包括自然语言理解、知识、数学计算和推理、代码生成、逻辑推理等。Qwen-72B在所有任务上均超越了LLaMA2-70B的性能,同时在10项任务中的7项任务中超越GPT-3.5.

测算了BF16、Int8和Int4模型在生成2048个token时的平均推理速度(tokens/s)和显存使用。结果如下所示:

下面记录7B和14B模型在单GPU使用LoRA(LoRA(emb)指的是embedding和输出层参与训练,而LoRA则不优化这部分参数)和QLoRA时处理不同长度输入的显存占用和训练速度的情况。本次评测运行于单张A100-SXM4-80GGPU,使用CUDA11.8和Pytorch2.0,并使用了flashattention2。我们统一使用batchsize为1,gradientaccumulation为8的训练配置,记录输入长度分别为256、512、1024、2048、4096和8192的显存占用(GB)和训练速度(s/iter)。我们还使用2张A100测了Qwen-7B的全参数微调。受限于显存大小,我们仅测试了256、512和1024token的性能。

具体数值如下所示:

LlamaIndex是一个基于LLM的应用程序的数据框架,受益于上下文增强。这种LLM系统被称为RAG系统,代表“检索增强生成”。LlamaIndex提供了必要的抽象,可以更轻松地摄取、构建和访问私有或特定领域的数据,以便将这些数据安全可靠地注入LLM中,以实现更准确的文本生成。

LlamaIndex有用性的核心是其有助于构建LLM应用程序的功能和工具。在这里,我们详细讨论它们:

LlamaIndex提供数据连接器,可以提取您现有的数据源和格式。无论是API、PDF、文档还是SQL数据库,LlamaIndex都可以与它们无缝集成,为您的LLM准备数据。

使用LLM的主要挑战之一是以易于使用的方式构建数据。LlamaIndex提供了在索引或图表中构建数据的工具。

LlamaIndex不仅仅是摄取和构建数据。它还为您的数据提供高级检索或查询界面。只需输入任何LLM输入提示,LlamaIndex将返回检索到的上下文和知识增强输出。

LlamaIndex允许与您的外部应用程序框架轻松集成。您可以将它与LangChain、Flask、Docker、ChatGPT以及您的项目可能需要的任何其他工具一起使用。

无论您的熟练程度如何,LlamaIndex都能满足您的需求。初学者用户会喜欢高级API,它允许使用LlamaIndex以仅五行代码来摄取和查询他们的数据。另一方面,高级用户可以根据需要利用较低级别的API自定义和扩展任何模块(数据连接器、索引、检索器、查询引擎、重新排名模块)。

文本表示示例,输入一个句子,输入一个固定维度的连续向量:

文本的向量表示通常可以用于文本聚类、文本相似度计算、文本向量召回等下游任务中。

在ModelScope框架上,提供输入文本(默认最长文本长度为128),即可以通过简单的Pipeline调用来使用GTE文本向量表示模型。ModelScope封装了统一的接口对外提供单句向量表示、双句文本相似度、多候选相似度计算功能

安装依赖库1

!pipinstallllama-indexllama-index-llms-huggingfaceipywidgets!pipinstalltransformers-Uimportloggingimportsyslogging.basicConfig(stream=sys.stdout,level=logging.INFO)logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))fromIPython.displayimportMarkdown,displayimporttorchfromllama_index.llms.huggingfaceimportHuggingFaceLLMfromllama_index.core.promptsimportPromptTemplatefrommodelscopeimportsnapshot_downloadfromllama_index.core.base.embeddings.baseimportBaseEmbedding,EmbeddingfromabcimportABCfromtypingimportAny,List,Optional,Dict,castfromllama_index.coreimport(VectorStoreIndex,ServiceContext,set_global_service_context,SimpleDirectoryReader,)因为Qwen本次支持了Transformers,使用HuggingFaceLLM加载模型,模型为(Qwen1.5-4B-Chat)1

embeddings=ModelScopeEmbeddings4LlamaIndex(model_id=embedding_model)service_context=ServiceContext.from_defaults(embed_model=embeddings,llm=llm)set_global_service_context(service_context)index=VectorStoreIndex.from_documents(documents)

THE END
1.国内可用的ChatGPTGPT-4 Turbo:支持视觉等多模态,128k 上下文,训练截止 2023 年 12 月。 2、功能对比(对比热门的4o和o1) 最大区别:ChatGPT 4o支持多模态,OpenAI o1目前只支持文本内容。 能力上:OpenAIo1在推理能力上全面领先ChatGPT 4o。 使用限制:目前ChatGPT 4o官方Plus用户没有使用限制了,o1-mini 的限额从每周 50 条https://blog.csdn.net/gptwebsite/article/details/145264082
2.命令行版的ChatGPT(修改版)jackMeng原版GitHub:https://github.com/pdfinn/sgpt用法: sgpt -k <API_KEY> -i <INSTRUCTION> [-t TEMPERATURE] [-m MODEL] [-s SEPARATOR] [-u] case "gpt-4", "gpt-4-0314", "gpt-4-32k", "gpt-4-32k-0314", "gpt-3.5-turbo": url = "https://api.openai.com/v1/chat/completions"https://www.cnblogs.com/mq0036/p/18290338
3.gpt4vision基于chatgpt-next-web,增加了midjourney绘画功能,支持mj-plus的ai换脸和局部重绘,接入了stable-diffusion,支持oss,支持接入fastgpt知识库,支持suno,支持luma。支持dall-e-3、gpt-4-vision-preview、whisper、tts等多模态模型,支持gpt-4-all,支持GPTs商店。新增加了支持后台管理的版本,包括登录注册,平台模型apikey管理https://github.com/topics/gpt-4-vision-preview
4.ChatGPT中文網OpenAIChatGPTForReddit?4,000+? 使用者 生產力 取得 與您的瀏覽器不相容 描述 發揮您的內容潛力——最終瀏覽器擴展,輕鬆訪問ChatGPT!只需輕按Ctrl/?+M,無論您身在何處,即可輕鬆掌握在Reddit上訪問OpenAI Chat GPT的權力。今天就加入ChatGPT革命吧! Features: ChatGPT can be accessed with eashttps://microsoftedge.microsoft.com/addons/detail/chat-gpt-%E4%B8%AD%E6%96%87%E7%B6%B2-openai-cha/hakbgbpjppdacflghgepjhklgedljcad?hl=zh-TW
5.在UbuntuLinux终端安裝和使用ChatGPT,原来这么简单人们使用这个多面手、无处不在的工具来开玩笑、编写代码,甚至回答最随机的问题。作为一个Linux用户,为什么不跟上呢?你也可以享受ChatGPT 在 Linux 下的化身 ShellGPT。下面是几个简单的步骤,教你如何在 Ubuntu 终端安装和使用这个人工智能工具。 什么是 ShellGPT https://www.shangyexinzhi.com/article/7304585.html
6.基于阿里云PAI平台搭建知识库检索增强的大模型对话系统支持对接通义千问、ChatGPT、ChatGLM、LLaMA 2等主流大模型,构建企业专属AI问答知识库。在AI问答场景下结合大模型进行高效的知识更新,提升问答的速度与准确度,应用于产品技术支持、智能客服、AI导购、公司企业知识库等场景。 开通Hologres实例并创建数据库。具体操作,请参见购买Hologres。您需要将已创建的数据库名称https://developer.aliyun.com/article/1369412
7.在UbuntuLinux终端安裝和使用ChatGPT,原来这么简单!人们使用这个多面手、无处不在的工具来开玩笑、编写代码,甚至回答最随机的问题。作为一个Linux用户,为什么不跟上呢?你也可以享受ChatGPT 在 Linux 下的化身 ShellGPT。下面是几个简单的步骤,教你如何在 Ubuntu 终端安装和使用这个人工智能工具。 什么是 ShellGPT https://blog.51cto.com/u_15671528/6251321
8.shellsgpt --chat conversation_1 "what would be my favorite number + 4?" # -> Your favorite number is 4, so if we add 4 to it, the result would be 8.You can use chat sessions to iteratively improve GPT suggestions by providing additional details. It is possible to use --code or --shehttps://pypi.org/project/shell-gpt/