检索增强生成(RAG,Retrieval-Augmented Generation)能够对大语言模型(LLM)的输出进行优化,使其能够在生成响应(response)之前引用训练数据来源之外的知识库中的数据对输入提示词(prompt)进行润色,从而让大模型给出更准确的答案。但大模型本身受限于训练时所采 Read More
posted @ 2024-08-27 18:48 软件心理学工程师 Views(30) Comments(0) Diggs(0) Edit
最近一年多,公司在大力提高服务的安全性,我也参与了公司密钥管理系统的建设,做了较多密钥创建/删除/轮换/销毁/安全存储/安全传输/审计方面的工作,不过这篇文章不谈密钥管理,而是总结不同场景下如何选择足够安全的加密算法和密钥。 按业务场景划分主要有两种:落盘加密(encryption of data Read More
posted @ 2021-10-03 09:17 软件心理学工程师 Views(570) Comments(0) Diggs(0) Edit
上周对ES集群进行扩容,运维同学找了几台物理机部署data node,结果发现新的data node比以前的data node性能差很多。同样的data node配置,同样的查询量,测试结果:CPU低,load非常高,diskIO打满。 最后通过对比系统配置,发现区别是新加入的物理机以前是跑Mong Read More
posted @ 2020-04-06 12:07 软件心理学工程师 Views(1470) Comments(0) Diggs(0) Edit
语言需要不断改进以跟进硬件的更新或满足程序员的期待。所以java也需要演变,不然就会不适应IT产业的发展从而被别的语言淘汰,java语言现在更新到java12,不过业界主流应该还是java7或java8。 Java8中的主要变化反映了它开始远离常侧重改变现有值的经典面向对象思想,而向函数式编程领域转 Read More
posted @ 2020-03-14 23:15 软件心理学工程师 Views(197) Comments(0) Diggs(0) Edit
一个ES索引最大可以支持多少个shard?理论上无限扩展,我推测最大应该是java array的最大长度:Integer.MAX_VALUE。通常业务为了保证查询效率,往往会限制data node上shards的总个数(cluster.routing.allocation.total_shards_ Read More
posted @ 2020-02-23 23:11 软件心理学工程师 Views(7229) Comments(0) Diggs(0) Edit
最近做的某个feature需要在很短的时间内上千万次请求其他部门的web服务,为了减少请求次数和提升系统响应速度决定采用cache来缓存数据。 说到cache最出名的就是memcached和redis了,因为目前公司内用redis的项目用的更多,有专门的集群和运维工程师,就果断选了redis。一言以 Read More
posted @ 2020-02-20 23:11 软件心理学工程师 Views(132) Comments(0) Diggs(0) Edit
最近在做ES搜索调优,看了一些lucene搜索的文档和代码,本文用于总结调优过程中学到的知识和自己的思考。 在抓到ES慢查询之后,会通过profile或者kibana的Search Profiler console查看具体慢在了哪里。一般在执行profile search之前,需要稍微改变query Read More
posted @ 2019-10-27 09:16 软件心理学工程师 Views(4300) Comments(0) Diggs(0) Edit
最近把搜索后端从AWS cloudsearch迁到了AWS ES和自建ES集群。测试发现search latency高于之前的benchmark,可见模拟数据远不如真实数据来的实在。这次在产线的backup ES上直接进行测试和优化,通过本文记录search调优的主要过程。 问题1:发现AWS ES Read More
posted @ 2019-10-26 09:57 软件心理学工程师 Views(1322) Comments(0) Diggs(0) Edit
日常工作中用到的ES相关基础知识和总结。不足之处请指正,会持续更新。 1.集群的健康状况为 yellow 则表示全部主分片都正常运行(集群可以正常服务所有请求),但是 副本 分片没有全部处在正常状态。 2.主分片的数目在索引创建时就已经确定了下来。但是,读操作——搜索和返回数据——可以同时被主分片  Read More
posted @ 2019-10-21 22:48 软件心理学工程师 Views(226) Comments(0) Diggs(0) Edit
cluster.name: 指定node所属的cluster。 node.name: 本机的hostname。 node.master: 是否可以被选举为master节点。(true or false) node.data: 是否为data node。(true or false) node.att Read More
posted @ 2018-02-28 13:42 软件心理学工程师 Views(2342) Comments(0) Diggs(0) Edit