- 博客(63)
- 资源 (9)
- 收藏
- 关注
原创 transformer学习笔记-导航
本系列专栏,主要是对transformer的基本原理做简要笔记,目前也是主要针对个人比较感兴趣的部分,包括:神经网络基本原理、词嵌入embedding、自注意力机制、多头注意力、位置编码、RoPE旋转位置编码等部分。transformer涉及的知识体系比较庞大,还有待持续深入。以下各部分的笔记,我尽可能通过图示和极简的代码DEMO说明,以加深对原理的理解。
2024-12-16 10:37:12
468
1
原创 transformer学习笔记-位置编码
在学习原理的时候,我们提到:将句子从“苹果梨”,改成“梨苹果”,最终的到的新苹果和新梨,竟然是一样的,因为苹果和梨两个向量调换顺序后,对应计算的权重也换了顺序,因此最终计算出来的结果一样也就是仅通过词嵌入和attention计算,并不会体现不同词token之间的位置关系,这也就是为何需要引入位置编码。当然理解这一知识点,需要点空间物体移动的想象力。
2024-12-16 00:13:28
1009
原创 transformer学习笔记-自注意力机制(1)
当Q和K的维度特别大的时候,内积也会变得很大,由于softmax通过指数计算,容易导致数值爆炸增长,同时元素间的差值和方差也变大失真,使softmax后的概率分布变得更加尖锐(即某些位置的概率接近1,而其他位置的概率接近0,大的大小的小),导致模型损失对概率小的位置的关注,通过损失函数求导过程中对softmax求导,对于接近0的元素的梯度变得极小(梯度消失),影响权重收敛。通过输入序列中的最后一个token的output与解嵌入矩阵相乘,得到词库中每个词token的概率,概率最大的词就是下一个出现的词。
2024-12-09 21:55:12
808
原创 transformer学习笔记-词嵌入embedding原理
在学习transformer的时候,可以看到,输入通常需要对词token进行embedding处理,如果没有先了解embedding的原理可能会有疑问,这个embedding,到底怎么来的,怎么就把一个token 变成一个矩阵,这个矩阵到底暗藏了哪些信息。总不能随便给一个token配一个矩阵,self-attention机制就能处理吧?肯定不是的,接下来我们来尝试理解下embedding的奥秘。
2024-11-29 22:16:09
1579
原创 transformer学习笔记-神经网络原理
在深度学习领域,transformer可以说是在传统的神经网络的基础上发展而来,着重解决传统神经网络长距离关联、顺序处理、模型表达能力等问题。在学习transformer之前,我想,有必要先对传统的神经网络做简要的了解。
2024-11-27 23:14:41
1490
原创 大模型应用开发框架:autoGen初体验与原理
在体验和学习autogen的原理前,先来看看官网的两段话:总的来说,autoGen是为了复杂的工作流而生的LLM应用开发框架,通过可定制可对话的agent与LLM交互,简化LLM工作流的编排、优化和自动化。本文将从autogen简单使用,functioncall,代码生成与执行、Groupchat等几个方面对autogen原理做简要分析。
2024-02-28 10:35:54
7733
1
原创 redis源码之:目录导航
redis源码系列解读笔记,主要偏重个人比较感兴趣的部分内容,后续有其他新的兴趣点,将持续更新。本人debug用的cento7的图形界面系统,cento7中安装clion2020.1。redis源码本身的注释是很完善的,在理解源码原理的时候难度会减少很多。redis版本6.2.8。
2024-02-07 14:38:56
586
原创 redis源码之:cluster集群故障处理
在[redis源码之:集群创建与节点通信(1)](https://blog.youkuaiyun.com/qq_22351805/article/details/135990455)分析**clusterCron定时任务**及在[redis源码之:集群创建与节点通信(2)](https://blog.youkuaiyun.com/qq_22351805/article/details/136043142)分析**clusterReadHandler处理ping请求与pong响应时(clusterProcessPacket)**时,
2024-02-07 13:51:24
1067
原创 redis源码之:集群创建与节点通信(2)
在上一篇我们可知,在集群中,cluster节点之间,通过meet将对方加入到本方的cluster->nodes列表中,并在后续过程中,不断通过clusterSendPing发送ping请求,使用gossip协议共享集群节点信息并通过clusterReadHandler处理对方发送的ping请求和pong响应。本文,来继续看看,clusterSendPing和clusterReadHandler的处理逻辑。
2024-02-06 15:08:40
893
原创 redis源码之:集群创建与节点通信(1)
这里主要是对主动请求过来的客户端的处理,这里设置的clusterReadHandler主要是处理对方发送过来的请求,后面clusterCron中会主动去连接别的node,然后也是设置clusterReadHandler处理,不过是处理对方的响应。在此处主要还是对通过cluster meet命令加到本方的cluster-nodes的节点,发送meet请求到对方,让对方也认识自己(把自己加到对方的cluster->nodes。D向A发送meet请求,最终通过gossip协议,达成各节点信息最终一致。
2024-02-05 15:46:14
1040
原创 redis源码之:redis-cli 集群命令
在集群命令执行前,需要先按上一章节的方式,启动四个新的redis节点,但不要执行cluster create命令,保持四个节点独立。redis-cli的命令执行大抵流程差不多,下面以。
2024-01-31 15:26:39
707
原创 redis源码之:clion搭建cluster环境
cluster集群通常每个node节点都是一主N从的模式,此处为简化环境搭建,所有node节点均只有一个主节点。在clion环境中,为方便debug,需要通过配置多个cmake application实现redis-server、redis-cli等源码debug模式启动。
2024-01-26 17:11:14
569
原创 redis源码之:客户端命令执行Command
读取数据:在创建conn的时候,就将连接的type设置为Socket。在call方法里,调用具体的command对应处理方法。
2024-01-15 14:50:16
713
原创 redis源码之:事件驱动epoll
从上面的分析可知,当客户端tcp连接创建并注册到epoll后,当该tcp连接有用户请求数据写入并可读,在epoll_wait中获取到事件触发connSocketEventHandler(参考二中循环查看epoll_wait的处理过程),该方法中会取出clientData,从上面的分析可知,clientData就是个connection实例,其中有read_handler的指针,以读数据为例,指向readQueryFromClient。通过server.c中aeMain(server.el);
2024-01-12 16:55:47
595
原创 redis源码之:扩容后的dictScan遍历顺序与JDK的concurrentHashMap 扩容机制
Redis扩容,dictScan遍历顺序
2023-06-27 00:13:02
376
原创 NGINX源码之:upstream与proxy_pass代理机制
对NGINX的upstream和proxy_pass机制,做简要源码解读ngx_http_upstream、ngx_http_proxy_pass、ngx_http_proxy_handler、
2022-11-01 16:54:34
2131
原创 NGINX源码之:子请求与请求后置处理ngx_http_finalize_request
ngx_http_finalize_request流程解读、ngx_http_subrequest子请求说明、ngx_http_finalize_connection、ngx_http_close_request、ngx_close_connection
2022-10-31 13:11:33
976
原创 NGINX源码之:多进程通信与请求负载
NGINX多进程通信与请求负载均衡实现机制,共享内存锁实现原理,ngx_init_signals、ngx_master_process_cycle、ngx_start_worker_processes、ngx_spawn_process、ngx_worker_process_cycle、ngx_worker_process_init、ngx_process_events_and_timers
2022-10-14 11:25:37
1502
原创 NGINX源码之:filter机制
NGINX源码解读,ngx_http_send_header、ngx_http_output_filter、ngx_linux_sendfile_chain、
2022-09-26 17:33:28
954
1
原创 NGINX源码之:ngx_open_cached_file
NGINX源码解读:ngx_open_cached_file、ngx_pool_cleanup_add、ngx_open_and_stat_file、ngx_open_file_cache_init、ngx_expire_old_cached_files、ngx_open_file_cleanup、ngx_open_file_cache_cleanup
2022-09-23 17:29:38
1236
原创 NGINX源码之:event与epoll
nginx event与epoll处理机制,ngx_events_block、ngx_event_use、ngx_event_process_init、ngx_epoll_init、ngx_epoll_add_event、ngx_process_events_and_timers、ngx_epoll_process_events、ngx_event_accept、ngx_get_connection、ngx_drain_connections等方法解读.........
2022-08-31 15:00:27
1370
原创 NGINX源码之:location
nginx location配置处理,ngx_http_init_locations、ngx_http_init_static_location_trees、ngx_http_join_exact_locations、ngx_http_create_locations_list、ngx_http_create_locations_tree
2022-08-16 23:48:23
2501
原创 NGINX源码之:listen和server_name命令与listening监听创建
nginx listen命令,server_name命令解析,ngx_http_core_listen()、ngx_parse_url()、ngx_http_add_listen()、ngx_http_optimize_servers()、ngx_http_server_names()、ngx_http_init_listening()等方法解读
2022-08-10 00:15:27
3519
原创 NGINX源码之:ngx_array&ngx_list&ngx_string
NGINX array,list,string等数据结构的原理及应用
2022-06-24 17:17:16
471
原创 concurrentHashMap 1.8笔记
本文主要对JDK1.8版本的ConcurrentHashMap的主要流程做简要记录,并对主要的位运算做简要分析。
2022-05-13 16:23:17
619
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人