- 博客(61)
- 资源 (1)
- 收藏
- 关注
原创 LightRAG实践详解
e) all_edges_data组装all_edges, all_edges_pack, all_edges_degree, 并按照 (rank, weight) 倒序排序。从 use_text_units 提取数据,组成 text_units_section_list , 进一步生成 text_units_context。h) 按照max_token_size(4000)截取all_text_units , 存入 use_text_units。
2024-12-10 14:07:09
1321
原创 GraphRAG实践详解
parquet文件 -> dataframe_dict['create_final_nodes', 'create_final_commmunity_reports', 'create_final_text_units', 'create_final_relationships', 'create_final_entities']pre_relationship_join, join_text_units_to_relationship_ids 输出作为输入。通过大模型生成输出报告。
2024-12-10 13:51:44
965
原创 Langchain-Chatchat实践详解
本质上是在Langchain基础上封装的一层服务,可以对接底层多种离线LLM和在线的LLM(也可以对接自定义的在线LLM)。提供基于知识库聊天功能相关的一系列API。server/model_workers下面添加线上API的具体定义,可以参考目录下其它线上API定义。generate_stream_gate里面定义具体的接口对接代码。server_config.py中 FSCHAT_MODEL_WORKERS下面新增api绑定端口。
2023-11-09 17:19:04
10727
6
原创 向量数据库实战详解
以NLP的相似问题场景为例。当我们将一个问题通过模型转化成了embedding向量,我们想要找到与这个问题相似的问题,也就是想要找到与embedding向量相似的向量。基本的做法之一,就是遍历备选向量与embedding向量做余弦相似度计算,然后按照计算出的余弦相似度排序,找出最相似的top N。基于向量检索的目的,向量数据库应运而生。向量数据库提供了一种高性能、高可用的查找方式。接下来,以Annoy和Milvus两种向量数据库的实战为例详解。...
2022-06-09 14:01:05
6776
1
原创 SBERT之部署TF-serving和Flask服务实践详解
背景SBERT模型是基于pytorch和transformers来实现的。如果想要通过tensorflow-serving来部署模型的话。首先,要将transformers模型转成pb的。tensorflow-serving只能支持模型本身的输入输出,不支持模型前的预处理,模型后的pooling等业务相关定制化操作。基于我们的定制化业务需求,决定了tensorflow-serving上需要封装一层flask服务来实现定制化业务。从而实现对客户端而言是端到端的输入与输出,将业务封装在服务端。ten
2022-02-18 16:27:02
2081
原创 SBERT模型转化与部署
模型转化图transformers to onnx新创建一个空文件夹onnx,然后进入转换,否则会报错(base) D:\fine_tune\onnx>python ../convert_graph_to_onnx.py --framework pt --model ../bert-base-cased bert-base-cased.onnx参考:Exporting transformers modelsonnx to tensorflow pb安装onnx.
2022-01-10 11:17:47
1604
原创 fine-tune语义相似分类模型实践
完整代码参见:https://github.com/tdaajames/aitest/blob/main/fine_tune.py首先要准备一些fine tune用的训练样本,这个可以通过tensorflow dataset获得,也可以自己解析文本获得。glue_train = bert_encode(glue['train'], tokenizer)glue_train_labels = glue['train']['label']然后,设定一系列的训练参数epochs = 3
2021-12-15 11:33:10
1090
原创 BERT实践详解
BERT特点只有encoder没有decoder的双向语言表示预训练模型,可以接各种下游任务,它的输出只是文本表示,所以不能使用固定的decoder。 BERT是百层左右的深度神经网络,才能把各种语言学的特征提取出来。BERT面世之前,NLP领域的神经网络基本只有几层,Transformer架构出来之后才有可能将NLP网络推向几十至上百层。浅层是分析语法,语法层级的特征,深层进入语义的范畴。 动态词向量。在Word2Vec,GloVe的年代,词向量都是静态的,一旦训练之后词向量就固定不变了,但是这就
2021-11-17 11:27:19
2335
原创 influxdb采坑集锦
influxQL查询tag过滤:select * from "rp_one_month"."rp_video_blocked" where event_type='4'field过滤:select * from "rp_one_month"."rp_video_blocked" where blocked_duration>30select * from "rp_one_month"."rp_video_blocked" where session_id='1625450606
2021-09-23 18:20:04
1133
原创 mysql资源池死锁问题
周末遇到一个服务卡死的问题,经过日志分析发现,可能锁死在两处数据库操作里面了,查看了rds数据库服务端慢日志,又无所获。当时,觉得可能存在的问题就是在一个数据库的事务操作流程里面,又执行了一个另外一个表的数据库写操作,因为,不知道确切原因,所以,先把这个数据库写操作移到了事务操作的外面,那么后面问题没有发生。 周一上班,再进一步和同事讨论分析这个问题,发现果然是mysql事务里面执行的这条数据库写操作造成的资源死锁,我又踩坑了。问题代码如下: //query and lock ...
2020-09-21 14:12:42
222
原创 网络流量计费程序
输入文件:S:SvrID=6, User=200, TimeStamp=2013-5-24 07:30:00, Event=LoginS:SvrID=6, User=100, TimeStamp=2013-5-24 07:59:30, Event=LoginS:SvrID=6, User=100, TimeStamp=2013-5-24 07:59:59, Event=LogoutS:SvrID=4, User=100, TimeStamp=2013-5-24 08:00:00, Event=Lo
2020-07-24 11:05:51
177
原创 user_namespace详解
user_namespacestruct user_namespace init_user_ns = {.uid_map = {.nr_extents = 1,.extent[0] = {.first = 0,.lower_first = 0,.count = 4294967295U,},},.gid_map = {.nr_extents = 1,.extent[0] = {.first = 0,.lower_first =...
2020-07-23 09:31:52
1414
原创 clone新的namespace流程
stub_clone -> sys_clone ->/arch/x86/kernel/entry_64.S:system_call_fastpath:sys_clone ->do_fork -> copy_processcopy_creds -> create_user_ns CLONE_NEWUSERcopy_namespaces -> create_new_namespaces -> copy_mnt_ns CLONE_NE...
2020-07-23 09:31:46
470
翻译 cells
Cells does not pass any accesses to the mux_fb driver from background VPs to the hardware back end, ensuring that the foreground VP has exclusive hardware access. Standard control ioctls are applied to virtual hardware state maintained in RAM. Custom ioctl
2020-07-23 09:31:32
496
原创 kvm启动虚拟机流程
启动虚拟机virDomainCreate#0 virDomainCreate (domain=0x697990) at libvirt.c:8133#1 0x000000000042261f in cmdStart (ctl=0x7fffffffe230, cmd=0x696890) at virsh.c:3150#2 0x000000000041cd1e in vshCommandRun (ctl=0x7fffffffe230, cmd=0x696890) at virs...
2020-07-23 09:30:53
2170
原创 kvm创建虚拟机流程
创建虚拟机#0 virDomainDefineXML (conn=0x696e80, xml=0x697b90 "<domain type='kvm'>\n <name>kvm_win7</name>\n <memory>2097152</memory>\n <currentMemory>2097152</currentMemory>\n <vcpu>2</vcpu>\n &l...
2020-07-23 09:30:46
439
原创 玩转xenstore
1xenstore简介xenstore作为xen中的一种重要特性存在,主要起到个存储的作用,作为不同进程间,Dom0和DomU间的通信介质。它有个守护进程xenstored(ps -ef|grep xenstored可以查看),还有/var/lib/xenstored/tdb作为数据库用来存储xenstore键值。简单地理解,xenstored进程就像个邮差,而tdb就像个邮局,各个用户间的通信就通过xenstored来负责,xenstored把信息送到邮局,再传给需要的用户。2xenstore..
2020-07-23 09:30:37
523
原创 git简单操作
git clone http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gitgit log:查看所有提交的日志git status:查看当前状态git add .:修改后提交代码git commit :为此次提交添加log(注意)git reset –hard/mixed 7e6276dc690e34f3
2020-07-23 09:30:29
543
原创 磁盘挂载异常处理流程
xend路径错误:(libvirt)src\xen\xend_internal.cstatic intxenDaemonAttachDeviceFlags(virDomainPtr domain, const char *xml, unsigned int flags){ case VIR_DOMAIN_DEVICE_DISK: /* modify by w00171884 2011.08.06...
2020-07-23 09:30:20
662
原创 xenstore watch机制
xs_read_watch 会读走相应的信息,xs_daemon_open相当于打开一个socket链接,触发watch时,有几个链接,就发几份信息。同一个链接,同一份信息只能被读一次,第二次读不到就会卡住。社区新引入了一个回调机制:struct libxl__ev_xswatch { /* caller should include this in their own struct */ /* read-only for caller, who may read only ...
2020-07-23 09:29:44
164
原创 RPC机制流程
b remoteDomainBlockStatsremoteDomainBlockStats ->call-> callWithFD -> virNetClientProgramCall-> virNetClientSendWithReply ->virNetClientIOvirNetServerProgramDispatch ->virNetServerProgramDispatchCall-> virNetServerProgramGetProc.
2020-07-23 09:29:14
348
1
原创 查询磁盘吞吐量流程
#0 virDomainBlockStats (dom=0x7ffff00026c0, disk=0x69e080 "xvda", stats=0x7fffffffe300, size=40) at libvirt.c:7513#1 0x000000000042cdfb in cmdDomblkstat (ctl=0x7fffffffe450, cmd=0x672240) at virsh.c:1392#2 0x0000000000427604 in vshCommandRun (ctl=0x7f...
2020-07-22 17:35:31
486
原创 virsh命令调用流程
virsh.c中main-> vshParseArgv-> vshCommandArgvParse-> vshCommandParse-> vshCmddefSearchintmain(int argc, char **argv){ if (!vshParseArgv(ctl, argc, argv)) { vshDeinit(ctl); exit(EXIT_FAILURE); }static boolvshParseA...
2020-07-22 17:31:24
379
原创 时间虚拟化
init_platform_timer xen\arch\x86\setup.c void __init __start_xen(unsigned long mbi_p) { init_xen_time(); xen\arch\x86\time.c int __init init_xen_time(void) { init_platform_timer(); xen\arch\x86\tim...
2020-07-22 17:25:30
571
原创 xen-qemu初始化
qemu初始化 tools\ioemu-qemu-xen\vl.c int main(int argc, char **argv, char **envp) { register_machines(); tools\ioemu-qemu-xen\i386-dm\machine.c void register_machines(void) { qemu_register_machine(&x...
2020-07-22 17:16:46
342
原创 IO指令模拟流程
以写指令为例e6 70 66 9c 66 9d是一条写指令,以它为例来讲解一下IO指令模拟流程。vmx_vmexit_handler→handle_mmio指令由虚拟机下发,由xen收到进行处理。 asmlinkage void vmx_vmexit_handler(struct cpu_user_regs *regs) { switch ( exit_reason ) { case EXIT_REASON_IO_INSTRUCTION:...
2020-07-22 17:07:42
812
原创 xenpaging流程详解
xenpaging流程详解整体流程1)xenpaging初始化。2)交换文件初始化。3)信号处理初始化。4)创建page_in线程。5)将内存页page out到交换文件上。²程序中,通过for循环调用evict_victim函数将数量为num_pages的页从虚拟机中page out出来。²当找不到num_pages个满足page out条件的页时,尽可能多的将页page out出来,然后,跳出for循环。6)进入一个while大循环,完成整个xenpaging开启过...
2020-07-22 16:55:21
217
原创 fork与exec
fork与exec1、fork()一个程序一调用fork函数,系统就为一个新的进程准备了前述三个段,首先,系统让新的进程与旧的进程使用同一个代码段,因为它们的程序还是相同的,对于数据段和堆栈段,系统则复制一份给新的进程,这样,父进程的所有数据都可以留给子进程,但是,子进程一旦开始运行,虽然它继承了父进程的一切数据,但实际上数据却已经分开,相互之间不再有影响了,也就是说,它们之间不再共享任何数据了。而如果两个进程要共享什么数据的话,就要使用另一套函数(shmget,shmat,shmdt等)来操作。现在,
2020-07-22 16:42:35
579
原创 热迁移save分析
1. xend部分:首先,在XendCheckpoint.py中执行save函数,保存虚拟机的内存信息,工作状态等,为迁移到目的端恢复工作做准备。 cmd = [xen.util.auxbin.pathTo(XC_SAVE), str(fd), str(dominfo.getDomid()), "0", "0", str(int(live) | (int(hvm) << 2)) ] … ...
2020-07-22 16:25:36
203
原创 xen的cpu调度流程分析
xen的cpu调度流程分析__start_xen→init_idle_domain→init_idle_domain→scheduler_init void __init scheduler_init(void) { … open_softirq(SCHEDULE_SOFTIRQ, schedule); for_each_possible_cpu ( i ) { spin_lock_init(&per_cpu(schedu...
2020-07-22 16:11:06
369
原创 xen下电流程分析
xen下电流程分析首先,由do_platform_op进入,进行一些平台操作。 case XENPF_enter_acpi_sleep: ret = xsm_acpi_sleep(); if ( ret ) break; ret = acpi_enter_sleep(&op->u.enter_acpi_sleep); break; ...
2020-07-22 15:58:34
193
原创 oVirt集群管理技术指南
硬件要求oVirt Engine最低要求 双核4G,建议4核16GoVirt Node需要部署业务虚拟机(至少2台,1台windows的中控,1台linux的镜像节点) 安装oVirt Engine安装centos 7.5:参看:https://blog.youkuaiyun.com/aptx689/article/details/82803287安装源:http://mirr...
2019-02-14 15:36:14
2421
4
原创 树莓派人脸识别技术指南
树莓派系统安装标准版安装标准系统安装步骤参见:http://www.ruanyifeng.com/blog/2017/06/raspberry-pi-tutorial.html 注:安装系统后的sandisk可见大小就变了,想要恢复原样的话,请操作如下 1.”Win+R”打开运行界面,输入”cmd”,打开命令提示符。2.在命令提示符窗口下输入”diskpart”...
2019-02-14 15:24:40
1075
原创 tgt服务端流程分析
整体流程Figure1 tgt流程图基本操作安装tgt包:yum --enablerepo=epel -y install scsi-target-utils安装完成后,启动 TGT 服务:# service tgtd start如果想在系统启动时自动启动 TGT 服务,可以使用如下命令:# chkconfig tgtd on...
2018-07-10 11:35:59
4400
6
原创 爱告白
“爱告白”是一款用于告白沟通的情感类APP,于4月13日正式上架App Store。在这里,你可以分享自己的爱情故事。在这里,你可以在全世界面前,向心中的那个TA表白。在这里,你可以看到有哪些人向你表白。这里就是爱告白,一款有温度的APP。...
2018-04-13 12:05:17
260
原创 iOS官方用例浅析
Main.storyboard中设计图形界面。New Meal界面对应的控制程序是MealViewController.swift MealViewController.swift中定义了text处理方法: textFieldShouldReturntextFieldDidBeginEditingtextFieldDidEndEditing 定义了图片点击guesture:selectImageF...
2018-03-09 18:17:17
182
原创 libvirt事件机制
1 libvirt事件机制事件机制是libvirt最为核心的一种机制。libvirt通常可以看做两个部分,libvirt客户端和libvirt服务端。libvirt客户端就是我们平时所熟识的libvirt接口部分,是通过提供libvirt共享库以及头文件的形式直接给客户使用的部分,相当于libvirt的眼睛和耳朵,接受客户的各种命令;libvirt服务端就是我们称作libvirtd的守护进程,也是...
2018-02-28 19:11:31
3937
4
原创 Sysvinit调用脚本流程
Paths.h#define VT_MASTER "/dev/tty0" /* Virtual console master */#define CONSOLE "/dev/console" /* Logical system console */#define SECURETTY "/etc/securetty" /* List of root terminals */#d
2013-05-26 19:19:13
579
tgt流程图.docx
2019-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人