- 博客(140)
- 资源 (4)
- 收藏
- 关注
原创 无意图的大模型对话系统CALM
Conversational AI with Language Models,是一个原生大模型的对话方案,包括:业务逻辑(Business Logic)对话理解 (Dialogue Understanding)对话修复 (Automatic Conversation Repair)大模型负责理解用户的整篇对话,输出贴合业务流程的内部命令语言。由于大模型并不是直接输出文字给用户,而是保证DM流程图的执行,因此,它不会产生幻觉,在商业领域中可以可靠的运行。
2024-01-11 17:52:55 1532
原创 使用Poetry对python工程进行依赖管理和打包
为什么推荐使用poetry而不是pipenv?poetry除了具有依赖管理,还具有打包和发布的功能(不再需要twine)poetry在安装过程中,具有过程进展显示(而不是像pipenv长时间卡住都不知道)
2024-01-05 15:07:00 606
原创 triton server的docker单机部署
v /disk/triton_models:/models 代表你的模型文件夹都要放在物理机的/disk/triton_models文件夹中(这个文件夹会mount到容器内部的/models里)代表使用显卡1(第二张显卡),triton并不会独占显卡,启动后,显卡仍然可以进行训练和其他任务(triton加载模型越多,显存占用越多,不需要的模型可以挪出文件夹)(--model-control-mode=poll 文件夹任意内容的改变都会被triton监听,自动加载最新内容)docker ps 可以查看。
2023-12-29 23:55:53 1008
原创 Triton python backend的BLS(商业逻辑脚本)
Triton的21.08开始,支持BLS功能,将model serving的和模型交互的代码,放入triton的python backend中。
2023-12-27 17:50:28 980
原创 onnx转tensorflow以便于发挥显卡的混合精度
在单个处理的速度上,onnx胜过使用了混合精度的Tensorflow模型;在批量处理上,如批量50条,则应用了混合精度的Tensorflow模型比Onnx模型性能高2倍多。
2023-12-25 18:52:13 577
原创 Triton下的Onnx/TensorRT/Pytorch哪一个更快
onnx模型比优化后的pytorch模型更快35%转为tensorRT后,相比优化后的pytorch模型,吞吐量提升1.5倍
2023-12-23 22:38:11 1444
原创 为什么要在DDD实践中引入CQRS架构模式
CQRS全称为命令查询职责分离(Command Query Responsibility Segregation),是一种应用层读写分离的架构模式,提供快速整合不同 数据源的通用技术解决方案,能够充分利用不同数据库的优势,根据不 同业务场景对接不同数据库并建立合适的读模型。关键技术是通过事件 驱动方式进行数据同步,保证读模型和写模型的数据最终一致性。
2023-12-22 10:34:09 1194
原创 徐昊《如何落地业务建模》读书笔记
软件开发的核心难度在于处理隐藏在业务知识中的复杂度。DDD是一种模型驱动的设计方法:通过领域模型捕捉领域知识,使用领域模型构造更易维护的软件。
2023-12-21 14:05:10 1292
原创 【独家深度】Gitlab基于Elasticsearch的站内搜索设计
通过分析Gitlab的站内搜索设计,借鉴其设计经验,来改进自己的站内搜索方案,包括领域对象划分,索引设计,权限控制设计。这可能是国内第一篇详细解剖Gitlab站内搜索设计实现的文章。
2023-12-20 14:55:38 2014
原创 ES如何对搜索缓存进行空间压缩
ES搜索时,如果Query里包含了filter,则会对filter进行缓存,方便其他Query的复用。(must和should条件都不会缓存,只有filter会)filter语句会返回什么id,这个信息缓存在内存中。为了能在有限的内存中缓存更多的filter,ES对filter对应的ids存储进行了压缩。
2023-12-19 17:30:28 434
原创 Elasticsearch应用Suggestion的代码示例
ES的java有2个主流客户端,官方的和spring data的。不管哪一个,关于suggestion的代码示例都非常少。这里就是为了弥补这个空白。
2023-12-18 16:13:01 558
原创 为什么推荐采用对象存储取代NAS磁盘
当存在如下需求或痛点时,都应该采用对象存储取代NAS磁盘。数据不可丢失(硬件故障,人为误操作)数据的权限管控数据需要共享到多地音频数据的立刻播放
2023-12-18 16:06:41 1292
原创 【深度】ES到底是如何对倒排索引进行速度和空间优化
倒排索引虽然很快,但是空间消耗很大。需要优化保证搜索速度更快(优势更明显)空间占用减小(缺点缩小)ES的优化设计ES对性能和空间节省做了大量的优化。
2023-12-15 17:18:12 1133
原创 搜索引擎演进调研
搜索引擎的演进方向采用能充分释放硬件性能的新语言进行开发(如,rust)更低成本(存储计算分离,索引改造),更易用(用户/开发体验),更快(新语言)的方向演进产品混合搜索 (文本及向量的混合搜索)
2023-12-15 17:09:25 1383
原创 为什么推荐使用Mapstruct取代BeanUtils进行Entity和DTO的转换
选择Mapstruct的核心原因代码封装速度快(十倍以上的速度优势)Mapstruct让转换代码聚集在一起这是一个DTO转Entity的Mapstruct代码,可以看到有如下优势:所有赋值工作,都在一个接口里定义,外部进行DTO转Entity时,只需要一句话,极其简洁,无需多行的设置操作。可以解决不同字段名的赋值,可以解决赋值需要运行函数获取的方式,也可以解决源为空时,再使用函数赋值等等的常见操作
2023-12-14 18:31:25 803
原创 如何在DTO中应用Enum类型自动限制前端的输入
其中,fromString方法是负责将前端传入的String类型,转换为DTO的Enum类型。代码实现上,即支持Enum值的匹配也支持code值的匹配注意:如果都匹配不上,应该抛出异常,而不是网上的返回null。因为抛出异常,才能被捕获,实现自动返回错误码给前端。如果是返回null,将会流入controller代码,导致null错误。一种是POST/PUT的RequestBody的JSON Payload。一种是GET的RequestParam参数;
2023-12-13 17:27:47 1180
原创 为什么推荐选择Mybatis Dynamic SQL
MBG已经推荐所有的java新项目,都采用Mybatis Dynamic SQL,以java API的方式书写SQL,而不是XML
2023-12-13 17:25:30 1255
原创 基于Mybatis实现PG文本搜索的更优实现
分词,这里采用最简单的分词工具hanlp 1.x(同类产品还有jieba,ikanalyse),如果需要更好的分词效果,可以通过API调用外部的基于深度学习的分词模型(如hanlp 2.x)。负责将java函数和SQL进行映射,其中,SQL由另一个SQL Builder的类负责动态生成SQL语句(根据java函数的入参,动态生成包含实际入参的SQL)。因此,中文搜索涉及的文本处理,需要外置实现。通过mapper,将java函数和sql进行映射,这样,执行java搜索函数时,实际执行的是PG对应的SQL。
2023-11-28 18:17:26 1141
原创 基于Mybatis实现PG文本搜索的最简易方法
在数据库表sparring_workflow中,需要在workflow_name和workflow_desc中实现文本搜索。(前端可以在name和desc中搜索到用户需要的信息)
2023-11-28 18:15:02 1140
原创 华为《数字化转型》读书笔记
道战略力,数字领导力,变革力战略力:变成企业必须做、大家一起做的共同战略变革力:变革的本质是对人的行为的重塑术流程驱动,数据驱动,智能驱动流程驱动:是聚焦业务重构数字化流程,从企业的角度来看,数据是不完整的。数据已经在随着业务的开展而逐步产生,所以企业也需要开展有限度的数据治理工作。数据驱动:业务数据的实时,准确,可视。数据安全体系(防攻击,防泄密,防特权)智能驱动:但如果应用场景不成熟,流程在线、数据共享、技术领先等储备再多,智能化也无法在业务上实现。
2023-06-29 00:19:16 971
原创 基于Elasticsearch Phrase Suggester的地址纠错设计
使用elasticsearch的phrase suggester实现地址的纠错设计
2023-01-19 12:08:15 375 1
原创 基于Elasticsearch Term Suggester的地址纠错设计
基于elasticsearch的term suggester技术实现地址信息的纠错设计方案
2023-01-19 12:04:47 433
原创 基于Postgresql的低成本简单搜索
传统搜索需要使用elasticsearch,需要额外建设,这里使用postgresql低成本实现简单搜索
2023-01-19 11:42:36 528
原创 基于nvidia triton的模型工程化实践
什么是triton inference server?它的前身是nvidia的tensorRT,triton在具备tensorRT的基础上,增加了主流的TF,pytorch,onnx等模型的推理部署支持。是一款非常好的推理模型部署服务。具体了解:NVIDIA Triton Inference Server | NVIDIA Developerhttps://developer.nvidia.com/nvidia-triton-inference-server模型部署及优化实践pyto
2021-12-07 19:11:33 4630 1
原创 ubuntu中nvidia独显和intel集成显卡怎么切换
我的笔记本虽然有nvidia独显,但为了更好的续航,平时会切换为intel集成显卡,需要AI计算时,才临时切换会nvidia独显。采用prime-select指令prime-select query 可以查询在用的显卡是哪一个sudo prime-select nvidia 切换nvidia独显sudo prime-select intel 切换intel集成显卡...
2021-02-27 16:56:33 1244
原创 很火的Fastapi框架,用async函数真的比普通函数快吗?
python的新款异步框架FASTAPIhttps://fastapi.tiangolo.com/是一款最近很火的框架。我过去使用了Flask很多年,当一使用上fastapi,就喜欢上它了。今天的问题是:我们的函数到底应该定义为async还是普通函数?直接上演示代码。from fastapi import FastAPIimport timeimport asyncioimport osapp = FastAPI()@app.get("/async_slowest")async
2020-09-28 22:58:54 14050 6
原创 放下你那python的古老异步框架吧
上古时代的人们会使用tornado等异步框架来提高并发性能。我以前则采用gevent的协程方式来提供并发能力。现在有更快的汽车。如果只知道python新版本的async/await的用法,也是不够快的。python默认采用asyncio的事件loop,如何让它更快呢?采用uvloop取代python默认的asyncio.为什么uvloop可以更快?因为它采用了更快的cython编写(不是cpython),cython会将python转为c级别。并基于libuv构建..
2020-09-04 23:59:22 503
arm(软浮点交叉编译)版的python(极简版)
2017-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人