自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大数据,大模型,服务器,技术、架构,方案

大数据技术,大模型,方案架构,以及Linux、服务器领域性能优化与思考

  • 博客(114)
  • 收藏
  • 关注

原创 Caddy代理静态文件与处理单页应用SPA

本文展示如何使用 Caddy替代传统的 Nginx 来代理静态文件,并解决单页应用(SPA)中的路由问题。Caddy 不仅提供了简易的配置和自动 HTTPS 支持,还通过其灵活的插件系统简化了开发流程。对于没有公网域名的开发者,我们还将介绍如何快速关闭自动 HTTPS 功能进行本地部署。此外,针对 SPA 常见的 404 错误,我们将提供一种优雅的 Caddy 配置方法,确保页面跳转和刷新时都能正常工作。

2024-12-31 14:07:29 947

原创 Caddy入门使用教程

Caddy是一个用Go语言编写的可扩展服务器平台,主要管理配置并通过静态编译时插入的模块提供功能。

2024-12-26 11:03:15 639

原创 Elasticsearch读写性能优化与负面清单

Elasticsearch读写性能优化与负面清单。

2024-12-23 17:34:12 538

原创 理想很丰满的Ollama-OCR

Ollama OCR 理想很丰满,但是实测效果一言难尽

2024-12-23 15:13:09 1885 1

原创 PG15源码编译与pgvector插件安装

如果在下载过程中遇到网络问题,可能是由于链接无效或网络连接不稳定。上面步骤完成后pg数据库就可以使用了,下面是向量插件安装,也是源码编译。由于操作系统自带的postgresql版本过低,不满足使用要求,

2024-12-18 14:21:57 453

原创 基于Llamaindex的网页内容爬取实战

本文不关注如何解析网页 html 元素和各种 python 爬虫技术,仅作为一种网页数据的预处理手段进行研究。Llamaindex 也并不是爬虫技术的集大成者,使用它是为了后续的存查一体化。观察到获取到的正文内容无用字符,边角料颇多。使用下面的 Loader,获取到的正文效果好很多。关于这个报错,查阅了官方文档,VectorStoreIndex 的确是没有。这个方法的,所以应该是官方示例 demo 写错了。注释部分是补充安装的内容。

2024-12-13 17:17:47 571

原创 实现问答提取的7个项目与改进思路

介绍 7 个QA提取项目(论文)的特定、场景、思路。以下是正文。

2024-12-13 08:45:35 1496

原创 模型温度能降低图片理解幻觉吗?

早在 llama 3.1 多模态视觉模型开源时,我就测试过不少图片描述的效果,当时除了描述失准之外,对图片的大小还有不少限制。现在的多模态模型大部分对图片分辨率不做过多要求了,但是最新发布的模型测试下来仍然“无中生有”:Ollama 认为“Set temperature to 0 for more deterministic output”。所以设置生成文本时的采样温度(temperature)参数为 0,以获得更加确定性的输出,我们测试一下实际效果。

2024-12-12 16:10:25 250

原创 Ollama 0.5 支持结构化输出

最近,Ollama 在其 0.5+版本中推出了关键更新,引入了与 OpenAI 相类似的结构化输出(Structured Outputs)特性。这项新功能允许开发者利用 JSON schema 来明确指定和限制模型的输出格式,确保了输出内容的格式一致性与预期性。目前,此功能已全面集成到 Ollama 的 Python 和 JavaScript 客户端库中,为开发者提供了更强大的工具来控制模型的响应格式。OpenAI 在其模型的迭代中特别关注了这一问题,并做了相应的优化。天下苦格式幻觉久矣!

2024-12-12 13:31:12 1139

原创 问答提取的技术原理综述(Part 2)

问答提取(QA Extract)核心机制包括问题理解、信息检索和答案抽取。主要技术路线有抽取式 QA、多选式 QA、生成式 QA 和基于知识图谱的 QA。最新技术框架包括生成-检索框架、抽取式问答系统、开放式和封闭式生成问答系统以及基于深度学习的技术。在问答提取中,最好是有效利用知识图谱。抽取式 QA 和生成式 QA 各有优缺点,前者准确性高、效率高,但局限性大;后者灵活性强、适应性强,但准确性和资源消耗是挑战。

2024-12-12 09:19:43 1309

原创 问答提取技术入门(Part 1)

问答提取(Question Answering Extraction, QA Extraction)是从非结构化文本中自动识别并抽取问题及其对应答案的技术。随着互联网信息的爆炸式增长,如何快速、准确地从大量文档中获取所需信息成为了关键挑战,尤其是在当前大模型训练以及知识库构建的浪潮下。传统的搜索方法往往返回整篇文档或段落,用户需要进一步筛选才能找到确切答案。而问答提取技术旨在直接提供精准的答案,极大提高了知识构建检索的效率。问答提取的最新技术主要依赖于预训练语言模型(如 BERT、Longformer)和检

2024-12-11 09:29:29 463

原创 关于RAG与大模型的一些思考与声音(2024-12)

在人工智能的浪潮中,RAG(检索增强生成)和大语言模型(LLM)无疑是两个耀眼的明星。它们在工业工程、学术研究、落地案例与价值、未来展望与思考等方面,引发了许多深刻的讨论和思考,以下总结。

2024-12-10 09:39:44 829

原创 Dashboard-Factory没图没真相的虚假BI

是一个用于快速创建和定制仪表板(dashboards)的 Python 库。看其他推文的介绍(截图仅用于交流目的,无恶意):如果你看到下面的介绍,是否有点心动。

2024-12-06 10:18:26 526 1

原创 千问推理模型QwQ测试-Ollama

在探寻答案的过程中,它始终保持自省,以理性之光审视每一个假设,在不同的思维维度中穿行,追寻更深层的真理。QwQ 理解了 985 是什么,但没有完全抓住问题的焦点——焦点是 750 分肯定够考上 985 大学了,而且能考 750 都会被抓去不正常人类研究中心做研究了,而不是回答如何才能考上。在假设的情况下,今天周五,昨天是周四,真实情况是:明天是周四,所以今天是周三。将5L瓶子的水装满,倒入装有2L水的3L瓶子当中,5L瓶子剩4L水。模型回答很长,无法得出结论,陷入了死循环,我终止了回答。

2024-12-04 14:47:01 1804

原创 构建PDF OCR 基础能力(2行代码)

`ocrmypdf` 是一个开源的命令行工具和 Python 库,它可以帮助你给 PDF 文件添加光学字符识别(OCR)功能。查看识别后的 PDF 文档:**效果相当出色,文本可以选取复制,图片和表格全部都有保留。**

2024-11-28 15:03:05 545

原创 RAG场景下Python读取pdf文件(附代码)

代码很简洁(但是解析文件时会打印一些进度条影响观感),保留了标题级别等信息,表格没有恢复为完美的 markdown 的表格语法,表格识别的效果整体上与上面的库差不多。一般来说,不进行复杂的布局检测和特殊处理的话,效果不会差异很大,实际的使用效果需要搭配 LLM 进行验证,或许阅读友好的格式对 LLM 来说不一定是最合适的。处理 PDF 文件时需要使用专门的库来提取文本内容,常用的库有 PyPDF 2 和 pdfplumber。效果一言难尽,首先是都有的硬换行问题,其次就是表格乱换行,无法阅读。

2024-11-27 11:24:14 430

原创 hive和spark读写分区表NULL列

先创建一张非分区表,并插入10条数据,其中部分city和gender字段为空。随后我们基于这些数据创建写入分区表看下hive和spark-sql的区别,怎么读取空的分区列

2024-11-26 16:25:06 678

原创 百千万上下文LLM已来,RAG过时了吗?

随着大模型上下文窗口扩大到100K-200K Token(开源)或者200万-1000万字(商业),不少人开始质疑检索增强生成(RAG)是否已经过时?LangChain团队的最新技术报告探讨了“RAG是否真的已经死亡”的问题。RAG技术的现状和未来趋势:尽管有观点认为简单的RAG系统可能会消失,但定制化的RAG仍然具有存在的必要性和潜力。LangChain和其他研究机构正在不断优化和改进RAG技术,以提高其检索效率和生成质量。技术挑战与创新。

2024-11-21 09:22:22 693

原创 基于Langchain的RAG全本地运行

本文说明本地向量嵌入模型+本地 Ollama 大模型 + Chroma 向量库组合的运行流程。LlamaIndex和LangChain是构建LLM应用程序的两个框架。LlamaIndex专注于RAG用例,LangChain 则有更广泛的应用。从开发层面看,如果是和RAG相关的用例,LlamaIndex是首选(犹如当年 Spark 对 MapReduce 的优势)。

2024-11-20 14:52:34 906

原创 基于LlamaIndex的RAG进阶(附代码)

基于前面实现 RAG demo 进行可用性调整,满足更多定制化需求。- 索引数据的持久化:默认情况下,向量索引数据全部保存在内存当中,可以把这些数据存储到硬盘上避免丢失;- 打印查询和事件日志:用于研发阶段的观察和分析,以及 debug;- 嵌入模型支持的参数:设置并发度等,机器资源充足的话加快嵌入的速度;- 大模型支持哪些参数:怎么修改 Ollama 地址或端口、模型温度等等;- 分块或者检索:有什么直接可用的优化方式吗?本文将逐个说明上述需求的实现方式,最后提供完整的代码。

2024-11-20 10:08:44 1116 5

原创 基于Llamaindex的本地向量与大模型RAG搭建流程

本文展示了 Llamaindex + Chunk + Local Embed +Ollama + RAG 的全流程代码。这里设置了 Ollama 作为语言模型,并指定了其 API 的基础 URL、使用的模型名称以及请求超时时间。这里查询的是关于“dify 的开源协议”的信息。从指定目录中读取文档,并使用设置好的嵌入模型和分词器将这些文档转换为向量存储索引。嵌入模型,用于将文本转换为向量表示。

2024-11-19 10:58:45 1281

原创 大模型的提示词与实测应用

大模型里的提示词就像是给朋友发消息一样,你在跟AI说话的时候,用的这些话就是提示词。提示词很重要,因为它们能帮助AI理解你要它做什么,怎么做,这样AI才能给出你想要的回答或内容。

2024-11-18 17:17:02 1192

原创 使用ollama创建长上下文的LLM

模板部分定义了如何根据不同的输入格式化输出。系统消息和工具定义...{{- end }}如果存在系统消息或工具定义,则这部分会被包含在内。系统消息通常用于给模型提供背景信息或指示其行为方式。工具定义则允许模型调用外部函数或服务。消息循环...{{- end }}遍历所有消息,根据消息的角色(用户、助手或工具)来决定如何格式化输出。SystemLicensesuccess一般而言,对于英语文本,1个token大约是3~4个字符;而对于中文文本,则大约是1.5~1.8个汉字。

2024-11-15 15:45:56 2549 2

原创 大数据治理:从概念到实践的旅程

大数据治理是现代企业信息管理和数据管理的重要环节,它不仅关乎数据的准确性、一致性和可靠性,更是数据安全性和合规性的守护者。随着技术的不断进步和数据量的持续增长,大数据治理将呈现出智能化与自动化、数据隐私保护、跨组织数据共享与合作、数据治理与业务创新深度融合等趋势。未来,大数据治理将继续在提升决策准确性、降低风险、提高安全合规性等方面发挥关键作用,为企业的数字化转型和创新发展提供坚实的支持。

2024-11-14 17:40:55 951

原创 Ollama自定义模型备忘

服务,第一种对于调用 chat api 可以直接通过 api 调用参数传递,对于兼容 openai 模式的暂时就不行了(官方说是不兼容,实际上目前 openai 的 api 可以进行一些额外参数的传递,只要兼容也可以解决)。FlashAttention 是一种优化的注意力机制,用于加速深度学习模型中常见的自注意力计算,尤其是在 Transformer 架构中。之后需要使用创建出来的新模型。目前基本分类两种方法,一种是临时的,机制上还有一些差异,因为 ollama 内部实际也是拉起的。

2024-11-14 17:15:27 1548

原创 python+LLM技术栈的介绍-后端

Django 拥有活跃的开发者社区和丰富的文档资源,支持多种数据库(如 MySQL、PostgreSQL、SQLite 和 Oracle),并且兼容 WSGI 和 FastCGI 服务器。此外,Django 生态系统还包括大量的第三方库和插件,可以扩展框架的功能。它相当于大模型界的 Docker,但是运行在本地,有 pull,run ,push 等命令,还可以打包创建新的模型文件,允许用户自定义模型参数,对模型进行个性化适配提供了支持。上面说到 Django 兼容 WSGI, 这又是什么概念呢?

2024-11-13 10:18:01 1103

原创 Linux python程序打包方式

在RPM规范文件中使用条件元素和基于平台的宏定义,可以帮助创建能够在多个Linux发行版上运行的RPM包。这种方法允许你针对不同的发行版定制包的行为。

2024-11-12 09:16:28 3397 1

原创 大模型落地场景及价值思考

大部分Text-To-SQL 的系统的准确率只能达到60%左右,如果把数据库的结构信息补充给大模型,并把数据库里执行过的SQL执行做人工的文本标注,加入相关的上下文的文档后,准确率可以提升至90%左右。在实际业务环境中,数据的来源和逻辑错综复杂,自然语言的模糊性和数据的精准性存在巨大差异,毕竟 AI 大语言模型是概率模型,而 BI 更像精准的机器。**2. 内容创作:**腾讯新闻使用大模型“Dreamwriter”自动化新闻写作,提高了发稿速度,模仿专业记者的写作风格,并扩大了应用范围。

2024-11-08 14:54:44 771

原创 小语言模型介绍与LLM的比较

小语言模型(SLM)与大语言模型(LLM)相比,具有不同的特点和应用场景。大语言模型通常拥有大量的参数(如 GPT-3 拥有 1750 亿个参数),能够处理复杂的自然语言任务,例如文本生成、对话系统和翻译等。然而,这些模型需要大量的计算资源来训练和运行,因此在实际应用中可能会受到限制。相比之下,小语言模型则设计得更为紧凑和高效,适用于资源受限的环境或特定任务。例如,它们可以用于语音识别、机器翻译等场景。SLM 在这些领域中表现出色,因为它们不仅消耗较少的计算资源,而且更容易集成到现有的业务系统中。

2024-11-05 16:06:31 951

原创 文本分段Chunking综述-RAG

即便大模型开始普通支持更大的上下文,但 RAG 技术目前仍然具有不可替代的价值,RAG 需要外部知识库。外部知识文档往往比较长,可能是包含几十页甚至数百页的内容,如果直接使用会存在以下问题:所以我们需要根据一定策略将文本切分为小块,以便适应大模型的上下文窗口,同时提高知识检索的精度。将大文档分割成较小的分块是一项关键而复杂的任务,对 RAG 系统的性能有着重大的影响。一般地,RAG 系统旨在通过将基于检索的方法和基于生成的方法相结合,提高产出的质量和相关性。文本分块(chunk)最核心的目的就是把相同语义

2024-10-29 18:13:17 2459 3

原创 RAG进阶形态之GraphRAG

GraphRAG 是一种结合了知识图谱和检索增强生成技术的模型,它通过利用结构化的图谱数据来增强大型语言模型(LLM)在特定领域的问答和信息生成能力。

2024-10-16 14:43:19 920

原创 ES 8分片分配迁移和恢复

Elasticsearch中的分片(Shard)是数据分布和查询的基本单元。一个索引可以被分成多个分片,这些分片可以分布在集群的不同节点上,以提高数据的可扩展性和查询性能。

2024-10-14 17:37:10 1327

翻译 Elasticsearch 8 节点设置

这些活动的性能特征是每个主节点合格节点上存储的速度以及选举主节点和集群中其他节点之间的网络互连的可靠性和延迟的函数。因此,你必须确保你的集群中的节点拥有足够的存储和网络,以满足你的性能目标。随着集群的增长,特别是如果你有大型机器学习作业或持续的 transforms,考虑将专用的主节点从专用的数据节点、机器学习节点和 transform 节点中分离出来。一个小的或轻负载的集群如果其主节点合格节点拥有其他角色和职责,可能会运行良好,但一旦你的集群包含超过少数节点,通常使用专用主节点合格节点是有意义的。

2024-10-14 09:43:56 148

原创 文本嵌入的一些思考

现代深度学习模型,尤其是基于 Transformer 架构的模型(如 BERT、RoBERTa 等),能够处理不同长度的输入,并生成固定大小的向量表示。每个小块会被单独处理,即通过嵌入模型为每个词生成嵌入向量,然后通常使用均值池化(也称作平均池化)的方式,将每个小块内的所有词向量合并成一个单一的向量,以此代表该小块的整体语义。值得注意的是,虽然长文本可以通过上述方法被嵌入成固定长度的向量,但是信息损失不可避免,特别是在处理非常长的文本时,选择合适的策略尤为重要。:不同的模型有不同的处理能力和适用范围。

2024-10-12 14:46:27 945

原创 BKD树介绍、区别与联系

BKD树(全称 bushy kd-trees)是一种用于高维数据搜索的数据结构。它结合了K-D树和B树的特点,旨在提高多维空间数据的索引和查询效率。BKD树是一种高效且灵活的数据结构,特别适用于处理高维空间数据。通过递归分割和动态调整,BKD树能够实现高效的查询和空间管理,广泛应用于各种需要多维数据索引的场景。

2024-10-11 09:30:58 757

原创 Calcite第二课:核心概念

Calcite 是一个用于优化异构数据源的查询处理的基础框架,其核心概念和组件设计使其具有高度的灵活性、可插拔性和可扩展性。

2024-10-11 09:19:00 1072

原创 Calcite第一课

Apache Calcite 是一个动态数据管理框架。它包含构成典型数据库管理系统的许多部分,但省略了一些关键功能:数据存储、数据处理算法和元数据存储库。Calcite 设计为不参与数据的存储和处理。正如我们将要看到的,这使它成为应用程序与一个或多个数据存储位置和数据处理引擎之间的绝佳中介。它还是构建数据库的完美基础:只需添加数据即可。

2024-09-25 10:15:52 919

原创 使用psutil进行系统资源的快速监控(代码)

每行数据包括时间戳、CPU使用率(%)、内存使用率(%)、磁盘读取速率(MB/s)和磁盘写入速率(MB/s)。在实际应用中,你要将这部分内容与之前的CPU和内存监控代码结合使用。这意味着,当你运行上述脚本时,它监控的是系统上所有活动磁盘的总体读写速率。每 2 秒是为了减轻监控程序对主测试项的干扰,同样的, 优秀的监控平台很多,我们自行实现也是为了弱化现有监控系统的黑盒程度。类,后台的 nmon、夜莺监控等等,又想自动化收集测试期间的系统资源使用情况,可以使用 psutil 实现自己可控的效果。

2024-06-03 14:54:21 467

原创 ES 8的向量检索性能调优实践

针对Elasticsearch的向量检索性能调优需要综合考虑并发处理、存储选择、分片策略以及I/O调度器等多个方面。通过合理的配置和优化,可以显著提升ES的查询效率和响应速度,从而满足实际应用中的高性能需求。我们观察到在HDD环境下,将搜索并发提高至40后,QPS相较于默认设置提升了23倍。尤为显著的是,通过段合并策略,性能提升幅度从原本的20%扩大至惊人的380%,这充分展现了段合并技术的巨大优势。

2024-06-03 14:43:03 1629

原创 使用iperf3测试网卡bond性能

当 Linux 系统中的两个网卡配置为 Bonding 模式 4(即 802.3 ad 动态链路聚合模式),目的是为了实现网络流量在多个物理链路上的负载均衡和故障转移,从而理论上可以达到或接近两个网卡带宽之和。理论上,为了达到 20,000 Mbps,你需要根据实际带宽和希望的测试强度来决定线程数。为了尽量测试出这个极限,可以尝试使用较高的线程数,但需注意不要超出系统或网络的实际处理能力。但是,有时手动设置窗口大小可以帮助提高特定条件下的吞吐量,尤其是在进行高带宽、低延迟网络的测试时。

2024-05-16 08:45:26 1722

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除