NLP
文章平均质量分 67
去追风,去看海
这个作者很懒,什么都没留下…
展开
-
AgentScope 初体验
AgentScope是以开发者为中心的多智能体平台,它使开发者能够更轻松地构建基于大语言模型的多智能体应用程序。原创 2024-09-10 18:55:49 · 1068 阅读 · 0 评论 -
通过API使用通义千问
使用非流式输出方式需要等待模型生成结束后再将生成的中间结果拼接后返回,而流式输出可以实时地将中间结果返回,可以在模型进行输出的同时进行阅读,减少等待模型回复的时间。当使用Linux系统(如Ubuntu、CentOS等)中的命令行添加DashScope的API-KEY为环境变量时,可以选择在当前会话添加临时性环境变量,或对当前用户添加永久性环境变量。如果想对当前用户添加永久性环境变量,使得在该用户的新会话中也可以使用该环境变量,可以把以下命令语句复制并添加到。信息,更符合日常交流的场景。原创 2024-09-10 15:42:03 · 1083 阅读 · 0 评论 -
KL 散度(python+nlp)
KL 散度(Kullback-Leibler divergence),也称为相对熵,是衡量两个概率分布之间差异的一种方式。KL 散度是非对称的,也就是说,P 相对于 Q 的 KL 散度通常不等于 Q 相对于 P 的 KL 散度。原创 2024-08-08 17:18:15 · 580 阅读 · 0 评论 -
query改写微调(T5 + DPO)
将原始的 CSV 文件转换为 T5 模型可以接受的格式。T5 模型的训练通常需要将数据转换为特定的文本输入格式,通常是 “source_text -> target_text” 的形式。中的数据需要进一步处理才能用于 T5 模型的训练。T5 模型通常需要特定的输入格式和数据预处理步骤来进行有效的训练。数据验证功能通过语义相似度、Jaccard 相似度、BM25 分数和长度差异四种方法,筛选符合质量标准的改写文本。是我们希望模型转换的查询,而。原创 2024-07-30 17:45:28 · 1004 阅读 · 0 评论 -
RedisSearch(附 python demo 代码)
初始化和配置:提供了灵活的配置选项来连接 Redis 服务器,并且支持设置索引的定义。文档操作:提供了添加、批量添加、更新和删除文档的操作,确保对索引数据的全面管理。查询操作:支持复杂的搜索查询,包括得分、负载和排序等功能,增强了搜索的灵活性。索引管理:提供了删除索引的功能,确保可以清理和重建索引。这个类提供了一个高效、灵活的接口来使用 Redisearch 进行全文搜索和索引管理,适用于多种使用场景。bge-large"""初始化 BM25 模型。:param documents: 文档列表。原创 2024-07-30 16:05:07 · 975 阅读 · 0 评论 -
几种常用的位置编码介绍及pytorch实现
我借给你300块与你借给我300块具有完全不同的含义。对于Transformer模型来说,由于Attention模块的无序性(无法区分不同位置的Token),必须加入额外的信息来记录顺序,这里引入了位置编码。位置编码从实现方式上大致可以分为2类:绝对位置编码: 将位置信息融入到输入中相对位置编码: 微调Attention结构,使其可以分辨不同位置的Token。原创 2024-07-29 10:23:04 · 866 阅读 · 0 评论 -
PDF-Extract-Kit (PDF内容抽取开源项目)
PDF文档中包含大量知识信息,例如文本、表格、图像、公式等。此外,PDF的文档布局也相当复杂,页眉、页脚、表格标题、图片标题等等,提取高质量的PDF内容并非易事。布局检测:使用LayoutLMv3模型进行区域检测,如图像表格标题文本等;公式检测:使用YOLOv8进行公式检测,包含行内公式和行间公式;公式识别:使用UniMERNet进行公式识别;光学字符识别:使用PaddleOCR进行文本识别;注意: 由于文档类型的多样性,现有开源的布局检测和公式检测很难处理多样性的PDF文档,为此。原创 2024-07-19 11:57:30 · 1329 阅读 · 8 评论 -
hf-mirror (huggingface 的国内镜像)
官网:网站域名,用于镜像域名。作为一个公益项目,致力于帮助国内AI开发者快速、稳定的下载模型、数据集。原创 2024-07-10 14:04:07 · 16092 阅读 · 8 评论 -
function-calling初体验
函数调用(Function-Calling)允许使用自定义功能扩展LLM,使它们能够根据自然语言指令形成对外部函数的调用。结构化数据提取使LLM能够从非结构化文本中提取可用信息。Function-calling是LLM接收自然语言查询以及函数描述,并输出可用于调用该函数的字符串的能力。先使用NexusRavenV2-13B 大模型,一个针对函数调用(function-calling)和数据提取进行了微调的开源模型。原创 2024-07-03 12:07:58 · 1285 阅读 · 0 评论 -
RAG开源项目Qanything源码阅读3-在线推理
项目:https://github.com/netease-youdao/QAnything。原创 2024-07-03 12:06:36 · 725 阅读 · 0 评论 -
RAG开源项目Qanything源码阅读2-离线文件处理
开源原创 2024-07-02 16:15:39 · 699 阅读 · 0 评论 -
RAG开源项目Qanything源码阅读1-概述+服务
相比于论文中的对RAG的探索,实践更讲求实用性和全链路的完整性,类似文档处理、精排等逻辑在现实中的使用,一个很快的学习方式就是看开源项目,随着RAG项目的逐渐成熟,完整的开源项目也逐渐变多,包括langchain在内,类似Qanything、RAGflow、fastRAG。RAG全流程都具备,从文件上传、处理到在线推理、排序等,关键模块都是有的,而且中文注释,注释和文档也比较完善,很适合学习。包括完整的前后端体系。原创 2024-07-02 11:31:14 · 972 阅读 · 0 评论 -
AutoGen 两个agent讲相声
注意,你想让那哪个先开始就从哪个agent 初始化一个 initiate_chat ,然后设置对话者(recipient),然后起个话头,然后设置下最多对话几轮就可以开始一个简单的相声对话了。如果我们想记录状态(state),并保持状态(maintain the state),然后让他执行一系列的任务(tasks),我们需要一个不同的方法(approach)现在有了两名相声演员,一个逗哏,一个捧哏,开始欣赏下现挂的相声吧。添加summary 参数,获取更加好的summary。原创 2024-07-01 20:59:04 · 1340 阅读 · 0 评论 -
query2doc:用大模型做query检索拓展
这个时候就可以分析bad case。找回链路不信任关键链路漏召回相似度计算有问题的规则心法利器[37] | bad case治疗术:认知篇心法利器[38] | bad case治疗术:现状篇心法利器[39] | bad case治疗术:分析篇心法利器[40] | bad case治疗术:解决篇心法利器[32] | 一些印象深刻的bad caseML&DEV[13] | bad case分析NLP.TM[22] | 如何修正NLP问题的bad case。原创 2024-06-24 16:22:02 · 1104 阅读 · 0 评论 -
libGL.so.1: cannot open shared object file: No such file or directory
将/path/to/libGL.so.1替换为libGL.so.1文件的实际路径。然后,重新运行Python程序,看看问题是否得到解决。原创 2024-06-12 17:46:46 · 1148 阅读 · 0 评论 -
大模型PEFT(二) 之 大模型LoRA指令微调学习记录(qlora 在最后有补充,流程差不多)
增加额外参数:PrefixTuning、Prompt Tuning、Adapter Tuning及其变体。选取一部分参数更新:BitFit。引入重参数化混合高效微调。原创 2024-06-09 16:50:35 · 1351 阅读 · 0 评论 -
pydantic.errors.PydanticUserError: If you use `@root_validator`
pydantic的版本问题,将pydantic库的版本降低到1.10.13,pydantic_core等相关依赖库的版本也会自动降低。原创 2024-05-28 18:51:57 · 716 阅读 · 3 评论 -
Transformer模型架构笔记
Transformer是一种用于自然语言处理(NLP)和其他序列到序列(sequence-to-sequence)任务的深度学习模型架构,它在2017年由Vaswani等人首次提出。Transformer架构引入了自注意力机制(self-attention mechanism),这是一个关键的创新,使其在处理序列数据时表现出色。原创 2024-05-28 16:11:59 · 1045 阅读 · 0 评论 -
CUDA_VISIBLE_DEVICES‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
如果为CUDA_VISIBLE_DEVICES 设置了不存在的设备,所有实际设备将被隐藏,CUDA 应用将无法使用GPU设备;如果设备序列是存在和不存在设备的混合,那么不存在设备前的所有存在设备将被重新编号,不存在设备之后的所有设备将被屏蔽。当主机有多个GPU设备时,设置CUDA_VISIBLE_DEVICES 环境变量可以改变CUDA程序所能使用的GPU设备。假如主机中有4块GPU设备,那么这些GPU设备的默认编号为[0,1,2,3],在默认情况下,编号为。”,则设备2,3,0将分别被设置为。原创 2024-05-28 11:15:24 · 1385 阅读 · 0 评论 -
大模型PEFT(一)之推理实践学习记录
多种模型: LLaMA、Mistral、Mixtral-MoE、Qwen、Yi、Gemmha、Baichuan、ChatGLM、Phi等等。集成方法:(增量)预训练、指令监督微调、奖励模型训练、PPO训练和DPO训练。多种精度:32比特全参数微调、16比特冻结微调、16比特LORA微调和基于AQLM/AWQ/GPTQ/LLM.int8 的2/4/8比特 QLORA 微调。先进算法:GaLore、DORA、LongLoRA、LLaMAPro、LoftQ和Agen微调。实用技巧。原创 2024-05-27 18:00:45 · 1824 阅读 · 0 评论 -
RAG 评测
生成模块指的是将检索到的文档与查询相结合,形成增强或合合成的输入。这与最终答案或响应的生成不同,后者通常采用端到端的评估方方式。对RAG模型对特定输入生成的最终响应进行评估,涉及模型生成的答案与输入查询的相关性和一致性。原创 2024-05-23 13:38:51 · 1169 阅读 · 0 评论 -
Ubuntu 安装 LibreOffice
下载下来是个压缩包,解压一下(我是windows上下载,解压好又拖到ubuntu上去的,你可以直接wget 下载到ubuntu解压)还可以安装中文离线帮助文件中的所有deb包,哈哈,我没装所以后面转的中文pdf乱码了,不过后面用其他方法弄好了。Libcairo是一个用于创建二维矢量图形的库,是许多图形库(如GTK,Pango,rsvg等)的依赖项。由于 linux 默认没有安装中文字体,所以导出有中文的文件会导致中文乱码。linux 命令改成自己安装的版本,我的是7.6。安装主安装程序的所有deb包。原创 2024-05-21 17:00:05 · 2213 阅读 · 1 评论 -
PaddleCOR安装过程中问题列表
python paddleocr 增加识别速度的方法。切记长度不要超过 960px。原创 2024-05-17 11:24:37 · 351 阅读 · 0 评论 -
OCR版面分析-- PaddleOCR(python 文档解析提取)
当内置模型无法满足需求时,需要使用到自己训练的模型。首先,参照模型导出将检测、分类和识别模型转换为inference模型,然后按照如下方式使用。原创 2024-05-16 18:53:42 · 2949 阅读 · 1 评论 -
版面分析--OCR开源项目记录(备用)
光学字符识别(Optical Charater Recognition, OCR) 是针对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。原创 2024-05-16 18:04:22 · 827 阅读 · 0 评论 -
prompt工程策略(四:仅使用 LLM 分析数据集,不使用插件或代码)
原文:我是如何赢得GPT-4提示工程大赛冠军的原文的原文: How I Won Singapore’s GPT-4 Prompt Engineering CompetitionLLM 执行准确的,这使得它们需要对数据集进行的任务,比如:LLM 擅长识别和。这种能力源自 LLM 训练时使用的大量多样化数据,这让它们可以识别出可能并不显而易见的复杂模式。真实世界 Kaggle 数据集,是为客户个性分析任务收集整理的,其中的任务目标是,以更好地了解客户。取用一个 LLM 的,其中包含 和。之后,用于分析的数据集原创 2024-05-14 16:32:54 · 771 阅读 · 0 评论 -
prompt工程策略(三:使用 LLM 防护围栏创建系统提示)
在这个案例中,聊天中的每个用户 prompt 都只是你希望得到文本解答的问题。在上面的 System Prompt 示例中,任务被定义为仅使用特定的文本进行问答,并指示 LLM 以 {“Question”: “Answer”} 的格式进行响应。在一组聊天中,每一次你都要提供一个新的 prompt,System Prompts 的作用就像是一个 LLM 会自动应用的过滤器。现在,每个用户 prompt 中都既包含执行问答所基于的文本,也包含所要回答的问题。这三个术语,而且很多时候它们的意思似乎差不多。原创 2024-05-14 15:49:34 · 1095 阅读 · 0 评论 -
prompt工程策略(二:使用分隔符为 prompt 设置分节)
分隔符是一种特殊 token,可帮助 LLM 分辨 prompt 的哪些部分应被视为单个含义单元。这很重要,因为输入 LLM 的整个 prompt是单个的token 长序列。分隔符能将 prompt 中不同部分隔离开,从而为这个 token 序列提供结构,让其中各个部分能被区别对待(重点对待)。原创 2024-05-14 14:27:09 · 727 阅读 · 0 评论 -
prompt工程策略(一:使用 CO-STAR 框架来搭建 prompt 的结构)
为了让 LLM 给出最优响应,为 prompt 设置有效的结构至关重要。CO-STAR框架是一种可以方便用于设计prompt 结构的模板。该模板考虑了会影响 LLM 响应的有效性和相关性的方方面面,从而有助于得到更优的响应。上下文提供任务有关背景信息理解场景响应相关目标定义任务响应具体任务风格指定写作风格引导语气态度响应符合情绪上下文受众确定目标受众响应提供响应格式列表JSON专业报告。原创 2024-05-14 13:57:46 · 2672 阅读 · 0 评论 -
pdf 版面分析与优化策略
版面分析作为RAG的第一步工作,其效果对于下游工作至关重要。前常见的 PDF 解析方法包括三种基于规则:根据 PDF 的组织特征确定每个部分的规则(风格和内容)缺点:不通用(PDF格式不固定)基于深度学习:目标检查和 OCR 结合的流行解决方案基于多模态大模型:对复杂的结构进行Pasing或提取PDF中的关键信息。原创 2024-05-12 23:09:22 · 1412 阅读 · 0 评论 -
使用 DPO 微调 Llama 2 (TRL)
Direct Preference Optimization(DPO) ,通过直接优化语言模型以符合人类偏好,无需显性奖励模型或强化学习。该算法隐式地优化与现有 RLHF 算法相同的目标(奖励最大化,带有 KL 散度约束),但易于实现且容易训练。原创 2024-05-07 17:10:54 · 1716 阅读 · 1 评论 -
BM25检索算法 python
BM25(Best Matching 25)是一种经典的信息检索算法,是基于 TF-IDF算法的改进版本,旨在解决、TF-IDF算法的一些不足之处。其被广泛应用于信息检索领域的排名函数,用于估计文档D与用户查询Q之间的相关性。它是一种基于概率检索框架的改进,特别是在处理长文档和短查询时表现出色。BM25的核心思想是基于词频(TF)和逆文档频率(IDF)来,同时还引入了文档的长度信息来计算文档D和查询Q之间的相关性。目前被广泛运用的搜索引擎ES就内置了BM25算法进行全文检索。原创 2024-04-23 13:34:22 · 2956 阅读 · 0 评论 -
Knowledge Graphs for RAG -- Chatting with the SEC Knowledge Graph (吴恩达-知识图谱在RAG中的应用 6)
拥有公司股票的经理提交了一些被分成块处理的表单。现在经理和公司都与地址相连接。公司之间那些比较近?只需要在图中跟踪指针(pointers箭头)即可有多少投资公司在他们所投资的公司附近?有多少投资公司和他们所投资的公司在同一个城市?原创 2024-04-09 23:01:48 · 1634 阅读 · 3 评论 -
常见语种简称
完整语种列表原创 2024-04-08 13:48:02 · 149 阅读 · 1 评论 -
Knowledge Graphs for RAG --Expanding the SEC Knowledge Graph (吴恩达-知识图谱在RAG中的应用 5)
expanding-the-sec-knowledge-graph1.1 读取新的表格 Form13投资管理公司必须通过提交一份名为Form 13的文件向美国证券交易委员会报告其对公司的投资为已投资NetApp的经理加载一组Form 13 看一下数据格式数据原始表格以XML格式存在,在数据准备过程中,从XML中提取特定字段,并将其添加为CSV文件中的一行。1.2.1 查看一下前五行数据可以看到这些公司每个都投资与同一家公司:NETAPP所有这些管理公司都有不同的名称,但他们都是NE原创 2024-03-30 15:06:25 · 1249 阅读 · 0 评论 -
大模型微调典型评价指标简记
在大模型微调过程中,评价指标的设定是为了精确衡量模型在特定任务上的表现,以便判断微调的效果和指导进一步的优化。选择合适的评价指标至关重要,因为它们直接影响到对模型性能的理解、比较和决策。确定微调任务的具体类型,如分类、回归、序列标注、问答、生成任务等。每种任务类型有其适用的一组或几组核心评价指标。原创 2024-03-30 11:55:04 · 1150 阅读 · 0 评论 -
ModuleNotFoundError: No module named ‘langchain.schema‘
【代码】ModuleNotFoundError: No module named ‘langchain.schema‘原创 2024-03-28 19:01:01 · 403 阅读 · 0 评论 -
Knowledge Graphs for RAG -- Adding Relationships to the SEC Knowledge Graph (吴恩达-知识图谱在RAG中的应用 4)
扩展矢量存储定义以接受Cypher查询Cypher查询获取向量相似性搜索的结果,然后以某种方式对其进行修改从一个简单的查询开始,该查询只返回一些额外的文本和搜索结果# 一开始的两个变量 node和score来自向量相似度搜索本身 # 我们将其取出,然后只是取一个字面上的字符串,并将它成为 额外文本(extraText) # 我们将 额外文本与节点文本拼接 返回 # 并返回相似度分数 # 还返回了关于结果节点的元数据 retrieval_query_extra_text = """score,原创 2024-03-25 23:57:43 · 1337 阅读 · 0 评论 -
Knowledge Graphs for RAG -- Constructing a Knowledge Graph from Text Documents (吴恩达-知识图谱在RAG中的应用 3)
将上面的文件构建知识图谱之后就可以对这些金融数据进行问答对话了,但是下载下来是XML 格式,需要对XML进行解析并对数据进行清洗。在调用辅助函数批量创建知识图谱之前,我们需要采取额外的步骤来确保我们不会重复数据。使用Neo4j和LangChain开始最简单的就是Neo4j向量接口。创建辅助函数来使用Neo4j进行向量搜索。打开就长下面这个样子(随便截了几张)目前只有节点,节点之间没有关系。查看所有索引看是否创建成功。原创 2024-03-24 22:15:15 · 1133 阅读 · 0 评论 -
Knowledge Graphs for RAG -- Preparing Text Data for RAG (吴恩达-知识图谱在RAG中的应用 2) jupyter + langchain 版
想要验证索引是否已经创建,可以要求Neo4j直接显示向量索引。现在查看下标语及计算出来的文本编码嵌入。换个question试试。原创 2024-03-24 19:53:33 · 439 阅读 · 0 评论