
《NLP算法实战》
文章平均质量分 85
本专栏深入探讨了自然语言处理(NLP)的核心算法和实际应用的知识,从基础理论到高级技术,全面展示了NLP领域的最新发展。通过清晰的解释、实用的示例和实战项目,读者将在掌握NLP的同时获得实际项目开发的经验。
码农三叔
学编程20年,乐于奉献,一往无前
展开
-
(26-6)基于OpenAI和LangChain的上市公司估值系统:估值报告可视化
(1)Tableau 仪表板提供了直观的界面,可用于可视化每个公司的关键信息,如图10-8所示。地理分割部分提供了关于公司在不同国家或地区运营分布的分析。(3)在Tableau 估值仪表板中,可以快速地可视化从我们的 8 个场景中得到的不同估值,包括自由现金流估值和股息估值信息。(4)在 PowerBI 中也构建了类似的仪表板,另外有一些不同的视觉元素,以更好地利用该工具的功能,比如使用瀑布图而不是简单的条形图(也可以在 Tableau 中构建瀑布图,但需要进行一些数据处理才能使其达到正确的格式)。原创 2024-06-23 21:17:10 · 802 阅读 · 0 评论 -
(26-5-04)基于OpenAI和LangChain的上市公司估值系统:定量分析(Quantitative Analysis)(4)风险评估
对于每个文件,它提取了摘要信息并将其组织成DataFrame的行,其中包括文件类型、提交日期、摘要信息、摘要链接等。(3)打印输出公司风险评估的结果,包括公司市值(以美元计)、公司规模评级、公司复杂性评级、股份稀释程度、收入、库存信息、应收账款信息、公司类型、审计师信息。(2)看下面的这段代码,用户与从文档中提取一些公司特征和数据,用于评估公司的风险,这有助于综合评估公司的风险情况,为投资决策提供参考。通过全面评估这些因素,投资者可以更深入地了解投资公司所涉及的风险,并做出更明智的投资决策。原创 2024-06-22 17:32:05 · 1128 阅读 · 0 评论 -
(26-5-03)基于OpenAI和LangChain的上市公司估值系统:定量分析(Quantitative Analysis)(3)计算估值
(3)计算自由现金流(FCFF)和股利的估值差异,以及股票的清算价值与当前价格之间的差异。根据不同的情况进行了条件判断,如果估值值大于0,则计算出价格与估值之间的百分比差异;首先,将不同情景下的FCFF和股利估值值组成列表,并设定了衰退概率。然后,通过对不同情景下的估值值进行加权平均,得到了FCFF和股利的估值期望值,从而更全面地考虑了衰退风险。(1)在本项目中,分别使用了基于股息和自由现金流的方法计算股票的估值。通过打印这些数值,可以更好地了解不同情景下的估值结果,并评估市场价格与估值之间的差异。原创 2024-06-21 17:11:18 · 525 阅读 · 0 评论 -
(26-5-02)基于OpenAI和LangChain的上市公司估值系统:定量分析(Quantitative Analysis)(2)数据处理
(5)编写函数xtract_balance_sheet_current_assets,从财务文件中提取资产负债表中的流动资产信息,通过提取和整合这些信息,可以帮助分析者了解公司的流动资产结构,评估其财务健康状况,并进行进一步的财务分析和预测。(3)函数extract_shares的功能是从财务文件中提取股份信息,并处理不同的股份度量单位,以确保数据的一致性。(2)函数merge_subsets_most_recent的功能是将多个子集中的最新值合并成一个总集,用于合并最新的财务数据。原创 2024-06-20 21:10:35 · 406 阅读 · 0 评论 -
(26-5-01)基于OpenAI和LangChain的上市公司估值系统:定量分析(Quantitative Analysis)(1)
(2)函数get_ttm_from_df从包含季度和年度值的DataFrame中计算出 trailing twelve months (TTM) 值,此函数接受一个包含季度和年度值的DataFrame df。在这本项目的定量分析中,DataFrame扮演着关键的角色,用于处理和分析从公司财务文档中提取的数,为项目提供了数据处理、计算和分析的基础。(1)函数get_most_recent_value_from_df的功能是获取DataFrame中最新的财务数据,即最后一行的值和日期。原创 2024-06-19 21:08:58 · 1018 阅读 · 0 评论 -
(26-4-04)基于OpenAI和LangChain的上市公司估值系统:OpenAI API和Langchain探索(4)LangChain处理
这将生成 Alphabet Inc.最新提交的所有重要部分的摘要,并将结果保存在 items_summary 集合中。(2)然后使用LangChain总结business(业务)部分,该部分包含了公司描述信息以及其他有助于了解公司业务的信息。(7)下面代码会获取摘要文档,并循环打印输出每个部分的摘要。在上述代码中,选择一个名为"business"的部分进行总结,并打印其原始文本以及生成的摘要及其成本。(1)使用LangChain选择一个要总结的文档部分,并在模型响应后打印输出其摘要。原创 2024-06-18 21:17:06 · 595 阅读 · 0 评论 -
(26-4-03)基于OpenAI和LangChain的上市公司估值系统:OpenAI API和Langchain探索(3)创建摘要
编写文件qualitative_analysis.py,功能是重构已解析的文档,并为每个文档创建摘要。方法restructure_parsed_10k、restructure_parsed_10q和restructure_parsed_8k的功能是将已解析的文档重组为特定格式,以便后续的摘要生成功能做好基础。result = {})result = {})continue方法sections_summary的功能是对每个文档部分进行生成摘要,并将结果存储在MongoDB中。原创 2024-06-18 15:11:05 · 288 阅读 · 0 评论 -
(26-4-02)基于OpenAI和LangChain的上市公司估值系统:OpenAI API和Langchain探索(2)Langchain和OpenAI处理
编写文件summarizer.py,定义了使用 Langchain 和 OpenAI 处理文本和文档的功能处。其中,类UnstructuredStringLoader用于加载未结构化的字符串内容,将其分割成适当大小的块。方法split_text_in_chunks 和方法 split_doc_in_chunks分别用于将文本和文档分割成块。最后,doc_summary 函数用于生成文档摘要和预览。原创 2024-06-17 21:26:29 · 308 阅读 · 0 评论 -
(26-4-01)基于OpenAI和LangChain的上市公司估值系统:OpenAI API和Langchain探索(1)OpenAI接口
编写文件openai_interface.py,实现了许多与OpenAI接口相关的功能,包括处理消息、计算令牌数量、调用OpenAI模型以及创建摘要。它还包括了一些用于检查输入令牌数量的功能。通过使用这些功能,我们可以提取并总结文档中的关键部分,以便更好地理解和分析文档。接下来使用OpenAI API与Langchain对解析后的文档进行总结,从中提取有价值的信息。这将帮助我们更好地理解文档中的内容,包括业务情况、风险因素、财务状况分析等,并提供更简洁的概括信息。原创 2024-06-14 21:11:06 · 427 阅读 · 0 评论 -
(26-3-03)基于OpenAI和LangChain的上市公司估值系统:质性分析(3)文档解析
首先,从MongoDB中获取指定URL的文档,并将其传递给parse_document方法进行解析。方法parse_document将文件解析为文本,并提取其中的各个部分,如业务、风险因素、管理层讨论与分析等。最终,解析后的内容将存储在MongoDB的parsed_documents集合中,以便后续分析和使用。(1)定义方法parse_document,它接受一个文档作为输入,解析其中的内容,删除HTML标记,并将结果保存在MongoDB的parsed_documents集合中。原创 2024-06-13 15:11:20 · 483 阅读 · 0 评论 -
(26-3-02)基于OpenAI和LangChain的上市公司估值系统:质性分析(2)生成年度报告内容
(8)方法get_sections_using_strings(soup, table_of_contents, default_sections)的功能是使用字符串匹配的方法从 HTML 文档中提取部分。(4)方法get_sections_using_hrefs(soup, table_of_contents)的功能是使用目录中的超链接标签识别部分,并提取相应的文本。(6)方法is_title_valid(text) 的功能检查部分标题是否有效,排除不合规的标题。原创 2024-06-12 21:14:28 · 639 阅读 · 0 评论 -
(26-3-01)基于OpenAI和LangChain的上市公司估值系统:质性分析(1)年度报告参考
这些部分包括企业业务、风险因素、未解决的员工意见、财产、法律诉讼、矿产安全披露、注册人普通股的市场情况、管理层对财务状况和业绩的讨论与分析、关于市场风险的定量和定性披露、财务报表和附加数据、会计和财务披露方面的变化和异议、控制与程序、其他信息、关于阻止检查的外国司法管辖区的披露、董事、高管和公司治理、高管薪酬、某些有关股东和管理层的证券所有权和相关股东事务、某些关系和相关交易以及董事独立性、主要会计师费用和服务、以及附件和财务报表附表。在本项目中,这个列表的作用是作为用于识别 10-Q 报告中目录的参考。原创 2024-06-12 17:47:55 · 502 阅读 · 0 评论 -
(26-2-03)基于OpenAI和LangChain的上市公司估值系统:数据收集(2)获取股票信息
编写文件yahoo_finance.py,功能是通过Yahoo Finance网站获取股票的价格信息,以供后续的分析和处理使用。原创 2024-06-11 20:53:17 · 571 阅读 · 0 评论 -
(26-2-02)基于OpenAI和LangChain的上市公司估值系统:数据收集(2)DGAR数据交互
EDGAR是一个公开的数据库平台,允许投资者、分析师和其他人员访问公司提交给SEC的各种文件,包括年度报告(10-K)、季度报告(10-Q)、重大事件报告(8-K)等。EDGAR数据库提供了对美国上市公司的全面和及时的财务和非财务信息的访问,为投资者和监管机构提供了重要的信息来源。在本项目中,文件edgar_utils.py提供了与 EDGAR数据库交互的功能,包括从 EDGAR 获取公司的提交信息和财务数据,并将其存储在 MongoDB 中。原创 2024-06-11 17:38:10 · 1072 阅读 · 0 评论 -
(26-2-01)基于OpenAI和LangChain的上市公司估值系统:数据收集(1)
本项目将使用PostgreSQL存储从Damodaran教授网站和Yahoo Finance获取的数据,从Damodaran网站可以获取财务比率、市场数据、宏观经济指标等文件。文件mongodb.py是一个用于与 MongoDB 数据库进行交互的 Python 脚本,包含了一系列方法,包括数据库连接、数据插入、数据更新和数据检索等功能,以及获取集合的大小信息。在本项目的实习过程中,数据收集是一个关键步骤,涉及了使用不同的数据库来存储和组织不同类型的数据。在本节的内容中,将详细讲解本项目数据收集的知识。原创 2024-06-10 21:21:27 · 519 阅读 · 0 评论 -
(25-7-03)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):基于Gradio Web的问答系统
具体来说,字典中的键是嵌入模型的名称,例如"rocketqa-zh-base-query"、"rocketqa-zh-dureader"等,而对应的值则是该模型在应用程序中的标识符,如"rocketqa-zh-base-query-encoder"、"rocketqa-zh-dureader-query-encoder"等。允许用户选择不同的语言模型和嵌入模型,上传自定义的知识库文件,并与 ChatLLM 进行交互,以获取基于本地知识的自动问答服务。具体实现流程如下所示。图13-3 对话界面。原创 2024-06-09 21:33:22 · 1509 阅读 · 0 评论 -
(26-1)基于OpenAI和LangChain的上市公司估值系统:背景介绍+项目介绍
在当今金融市场,投资者需要处理大量的数据和信息来做出明智的投资决策。然而,这些数据可能来自不同的来源,格式各异,且难以快速有效地分析和理解。针对这一挑战,本项目应运而生。本项目旨在利用先进的人工智能技术,特别是OpenAI的语言模型和数据分析工具,帮助投资者更好地理解和评估美国公司的价值和风险。通过自动化处理公司报告、财务数据以及其他相关信息,项目能够快速提取关键信息、识别潜在投资机会和风险,并为投资者提供决策支持。原创 2024-06-07 21:05:02 · 427 阅读 · 0 评论 -
(25-7-02)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):基于飞桨AIStudio的ChatGLM对话系统(2)
文件cli.py是一个命令行界面(CLI)应用程序,用于与用户进行对话交互,使用基于知识检索的方法来回答用户提出的问题。这个CLI应用程序通过与用户的交互,利用预训练模型ChatGLM-6B,并结合了基于知识检索的方法来提供答案。原创 2024-06-06 18:37:59 · 624 阅读 · 0 评论 -
(25-7-01)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):基于飞桨AIStudio的ChatGLM对话系统(1)
在本项目的“paddlepaddle”目录中,将预训练模型ChatGLM-6B部署在了飞桨AI Studio,利用PaddleNLP 进行文本嵌入和处理,以及与飞桨 AI Studio 集成,实现了一个基于本地知识的自动问答应用。文件chatllm.py实现了一个基于PaddleNLP的文本生成任务的聊天语言模型(LLM),利用PaddleNLP提供的任务流框架来实现聊天任务,具有简洁的实现和易于使用的特点。具体实现流程如下所示。原创 2024-06-05 21:14:10 · 998 阅读 · 0 评论 -
(25-6-02)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):基于Gradio Web的问答系统
文件app.py实现了一个基于Gradio的Web界面,用户可以通过上传文件或直接输入文本与ChatLLM模型进行交互,并获取自动问答的响应。上述代码是一个简单的Gradio应用程序,实现了一个基于LangChain和大型语言模型系列的自动问答系统。具体实现流程如下所示。原创 2024-06-05 17:43:31 · 577 阅读 · 0 评论 -
(25-6-01)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):基于ModelScope的ChatGLM对话系统(1)
在本项目的“modelscope”目录中,利用了ModelScope网站托管的的预训练模型ZhipuAI/ChatGLM-6B模型实现了问答系统,成功的实现了在ModelScope平台的部署工作。在初始化过程中,它加载了指定的模型,并提供了方法来计算文档和查询的嵌入。文件chatglm_llm.py实现了一个基于 ChatGLM模型(该模型使用了预训练的 ChatGLM-6B 模型)的语言生成器,它继承了 LangChain 库中的 LLM 基类,并提供了对话生成的功能。原创 2024-06-04 21:18:31 · 688 阅读 · 0 评论 -
(25-5-03)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):实现Web端的问答系统(3)
然后,根据是否使用网络搜索,获取网络内容。接下来,调用 knowladge_based_chat_llm 对象的 get_knowledge_based_answer 方法,传入相应的参数,以获取基于知识的答案。(12)函数init_vector_store用于初始化知识向量存储,此函数接收一个文件对象 file_obj作为参数,并利用knowladge_based_chat_llm对象的 init_knowledge_vector_store方法来生成一个包含文件对象名称的知识向量存储。原创 2024-06-04 17:00:00 · 1194 阅读 · 0 评论 -
(25-5-02)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):实现Web端的问答系统(2)
如果成功加载了模型配置,会打印输出"开始加载模型配置"和"模型配置加载成功"的信息,并调用语言模型的 _call方法,并传递 "你好" 作为提示信息,以确保模型已成功加载。最后,如果出现异常,它将打印详细的异常信息,并返回"模型未成功加载,请重新选择模型后点击"重新加载模型"按钮"的提示信息。(6)方法get_knowledge_based_answer的功能是,基于已知信息回答用户的问题。然后,加载已经构建好的知识向量存储,并使用检索和语言模型,结合已知信息和用户问题,返回一个基于知识的答案。原创 2024-06-03 21:00:38 · 585 阅读 · 0 评论 -
(25-5-01)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):实现Web端的问答系统(1)
(1)下面这段代码导入了一系列Python模块,包括系统模块、Gradio、NLTK(自然语言处理工具包)、Sentence Transformers、DuckDuckGo搜索引擎的API、LangChain库中的一些模块(用于处理文档和嵌入)、Hugging Face的模型嵌入库、LangChain中的提示模板等。类KnowledgeBasedChatLLM的实例可以用于基于知识的对话系统,结合了预训练的语言模型和词嵌入模型,可以根据输入的问题和已有的知识进行回答。原创 2024-06-03 17:10:47 · 814 阅读 · 0 评论 -
(25-4-02)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署): 构建和部署对话系统(2)
(11)定义@serving函数名为 predict,用于实现预测功能,能够根据用户的查询或问题,返回相应的基于知识的答案。接着,根据 use_web 参数决定是否进行网络搜索,如果需要,则调用 search_web 函数获取网络搜索的内容,否则设置为空字符串。然后,调用knowladge_based_chat_llm 对象的 get_knowledge_based_answer 方法,传入相应的参数,以获取基于知识的答案。将获取到的结果存储在 resp 中,并将查询和结果的元组添加到历史记录中。原创 2024-06-03 17:03:56 · 463 阅读 · 1 评论 -
(25-4-01)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署): 构建和部署对话系统(1)
在初始化模型配置信息的过程中,根据指定的大型语言模型名称,确定所需的模型类型(例如 'chatglm'、'belle'、'vicuna'),并从预先定义的模型字典中获取相应的模型路径。在函数 reinit_model的内部,尝试调用 knowladge_based_chat_llm 对象的 init_model_config 方法,通过传入新的模型名称来重新配置和初始化模型。在执行方法get_knowledge_based_answer的过程中,首先根据输入的网络内容,构建一个提示模板,用于引导答案生成。原创 2024-06-02 21:07:36 · 1021 阅读 · 0 评论 -
(25-3)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署): 加载和使用大语言模型
(4)函数 auto_configure_device_map(num_gpus: int)用于自动配置Transformer模型中每个层所在的GPU设备,它接受一个整数参数 num_gpus,表示可用的GPU数量,并返回一个字典,将每个Transformer模型的层映射到相应的GPU设备上。通过调用不同的模型和方法,实现了对话的生成和处理,LangChain提供了一个通用的语言模型接口,使得可以方便地切换和使用不同类型的语言模型,从而提供了更大的灵活性和扩展性。加载完成后,将模型设置为评估模式。原创 2024-06-02 09:35:50 · 1157 阅读 · 0 评论 -
(17-2-04)检索增强生成(RAG):PDF文档加载器(PDFLoader)
上面介绍的这些加载器提供了从PDF文档中提取文本和元数据的不同方法,大家可以根据具体的需求和场景选择合适的加载器。Mathpix 提供了一个名为 Mathpix Snip 的应用程序,用户可以通过它来截取文档的图像,然后 Mathpix 会使用其先进的 OCR(光学字符识别)技术来识别图像中的文字和公式,并将它们转换为可编辑的格式。Mathpix 提供了一个名为 Mathpix PDF Loader 的工具,这是一个集成到 LangChain 框架中的加载器,用于加载 PDF 文档并提取其中的内容。原创 2024-04-26 17:09:33 · 2075 阅读 · 3 评论 -
(25-2)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署): 系统配置+文本拆分
在本节的内容中,将详细讲解本项目的具体实现过程,这主要包括文本拆分、加载和使用LLM模型、架构和部署对话系统等模块。原创 2024-06-01 21:12:05 · 599 阅读 · 0 评论 -
(25-1)基于本地知识库的自动问答系统(LangChain+ChatGLM+ModelScope/Huggingface部署):背景介绍+项目介绍
在当前人工智能技术快速发展的背景下,越来越多的大型语言模型被应用于各种领域,其中包括自然语言处理和智能问答系统。随着这些模型的普及,人们对于构建自己的定制化问答系统的需求也越来越高。在人工智能技术飞速发展的大环境下,为了满足用户对自定义问答系统的需求,利用先进的语言模型和嵌入模型,构建了一个灵活、高效的自动问答应用。在这样的背景下,LangChain-ChatGLM-Webui应运而生。本项目旨在展示如何利用先进的语言模型和嵌入模型,构建一个基于本地知识的自动问答应用。原创 2024-05-31 16:38:46 · 1750 阅读 · 0 评论 -
(24-4-02)基于大模型的Python学习系统(Gemma+Langchain+FAISS):RAG(2)
本项目旨在利用自然语言处理技术,特别是语言模型和信息检索技术,为软件工程师提供更有效的Python编程问题解答和支持。通过本项目的源码,结合检索增强生成(RAG)技术和微调模型对两种不同规模的Gemma语言模型进行了比较和研究。(1)首先,采用了2B规模的Gemma模型进行实验。然而,该模型在理解Python概念方面存在局限性,导致回答与问题不相关的结果。即使在微调后,该模型的表现也仍然不理想,经常生成无意义的输出,无法满足我们的需求。原创 2024-05-31 14:25:30 · 1244 阅读 · 0 评论 -
(24-4-01)基于大模型的Python学习系统(Gemma+Langchain+FAISS):RAG(1)
下面的代码中定义了一个适配器类 GemmaLC,用作模型与 LangChain 之间的桥梁。该类继承自 LLM 类,并实现了 _call() 方法和 _identifying_params 属性。原创 2024-05-30 21:07:21 · 1192 阅读 · 0 评论 -
(24-3-02)基于大模型的Python学习系统(Gemma+Langchain+FAISS):基于Transformers的模型微调(2)
跟前面12.4.3中的第一次迭代相比,第一次迭代的每个样本的问题和模型生成的答案都是唯一的,并且通过调用函数print_markdown实现格式化输出,并显示代码执行的总时间。而在本次第二次迭代中,输出的问题和答案是固定的示例,并没有根据具体的测试集样本进行动态生成,而且每个输出之间都是相同的。在打印问题时,如果问题的长度超过了195个字符,则只打印其中的后195个字符,以确保输出的简洁性。在打印问题时,如果问题的长度超过了195个字符,则只打印其中的后195个字符,以确保输出的简洁性。原创 2024-05-30 16:51:46 · 859 阅读 · 0 评论 -
(24-3-01)基于大模型的Python学习系统(Gemma+Langchain+FAISS):基于Transformers的模型微调(1)
(2)划分数据集:使用train_test_split函数将数据集划分为训练集(X_train)和测试集(X_test),其中训练集包含150个样本,测试集包含100个样本。将原始的“问题-答案”数据集文件“Dataset_Python_Question_Answer.csv”转换为模型能够处理的提示格式,以便用于模型的训练和评估工作。将原始的“问题-答案”数据集文件“Dataset_Python_Question_Answer.csv”转换为模型能够处理的提示格式,以便用于模型的训练和评估工作。原创 2024-05-30 14:24:41 · 788 阅读 · 0 评论 -
(24-2)基于大模型的Python学习系统(Gemma+Langchain+FAISS):模型准备和处理
(2)model.config.pretraining_tp = 1:设置模型的预训练参数为1,用于指定模型的预训练任务类型或设置相关的参数。(1)model.config.use_cache = False:设置模型的缓存使用参数为False,表示在模型的预测过程中不使用缓存。下面这段代码用于加载预训练的Gemma模型,并在加载过程中优化内存和维持性能,从而提高模型的加载速度并减少内存的占用情况。下面这段代码用于设置模型的一些配置参数,以及加载模型的tokenizer,并获取终止标记用于后续的处理工作。原创 2024-05-29 20:43:32 · 1109 阅读 · 0 评论 -
(24-1)基于大模型的Python学习系统(Gemma+Langchain+FAISS):背景介绍+项目介绍
随着计算机科学和编程技能的重要性日益增强,越来越多的人开始学习Python编程语言。然而,对于初学者来说,理解概念和解决问题往往是一项具有挑战性的任务。传统的学习方法可能过于抽象,缺乏实践指导,导致学习效率低下。为了提高Python编程学习的效率和质量,我们提出了基于大模型的Python学习系统。个性化学习体验:通过结合自然语言处理技术,系统可以根据学习者的需求和水平提供个性化的学习指导,帮助他们更好地理解Python编程的概念和原理。原创 2024-05-29 16:23:30 · 819 阅读 · 0 评论 -
(22-3-02)基于RAG的法律法规解析系统(Llama3+Langchain+ChromaDB):构建欧盟人工智能法案问题的RAG(2)
上述代码对于理解 RAG 系统中检索器部分的行为非常有用,它允许开发者或用户查看对于特定查询,系统究竟检索到了哪些文档,以及这些文档的具体内容和来源。由于这是一个自动化测试,查询的答案质量将取决于 RAG 系统中检索器和生成器的性能,以及向量数据库中文档的相关性和覆盖范围。(3)创建函数test_rag,用于测试检索增强生成(RAG)系统的性能,这个函数允许用户以一种清晰且格式化的方式看到 RAG 系统对于特定查询的回答,并且提供了回答生成所需的时间,这有助于评估系统的性能。图11-2 格式化显示结果。原创 2024-05-28 21:12:15 · 1282 阅读 · 0 评论 -
(22-3-01)基于RAG的法律法规解析系统(Llama3+Langchain+ChromaDB):构建欧盟人工智能法案问题的RAG(1)
这个PDF 文件可以用于构建检索增强生成(RAG)系统中的检索组件,例如,可以将文档被分割成更小的块,然后转换为向量并存储在向量数据库中,如 ChromaDB,以便于快速检索。分割后的文本块可以用于构建检索增强生成(RAG)系统中的检索组件,例如将它们转换为向量并存储在向量数据库中,以便于快速检索和生成与查询相关的回答。构建本RAG系统的基本步骤如下所示。(2)检索器(Retriever):实现一个检索器,它能够理解用户的查询并将它与向量数据库中的文档进行匹配,以检索出相关的文档片段。原创 2024-05-28 15:17:05 · 1263 阅读 · 0 评论 -
(22-2)基于RAG的法律法规解析系统(Llama3+Langchain+ChromaDB):准备模型
通过这种方式,代码不仅能够生成对特定主题的深入查询的答案,而且还能够以一种格式化和视觉友好的方式展示这些信息,提高了信息的可读性和吸引力。通过这种方式,不仅展示了如何准备一个用于NLP任务的模型,还提供了一种衡量加载时间的方法,这对于性能分析和优化是很有帮助的。(3)加载模型:使用 transformers.AutoModelForCausalLM.from_pretrained 方法加载预训练的因果语言模型(Causal Language Model,简称CLM),该模型通常用于生成文本或续写文本。原创 2024-05-27 21:09:59 · 1223 阅读 · 0 评论 -
(22-1)基于RAG的法律法规解析系统(Llama3+Langchain+ChromaDB):背景介绍+项目介绍
随着人工智能技术的快速发展,法律法规在适应新兴技术方面的挑战日益增加。特别是在欧洲,对于人工智能技术的规范和监管尤为重视,欧盟人工智能法案(EU AI Act)的提出正是为了解决这一问题。然而,法律文件通常内容复杂、篇幅庞大,且涉及专业术语,这给法律专业人士、政策制定者、技术开发者以及普通公民理解和应用这些法律带来了困难。在这样的背景下,利用人工智能技术来解析和理解法律法规文本成为一个迫切的需求。原创 2024-05-27 21:02:22 · 1769 阅读 · 0 评论