- 博客(948)
- 资源 (37)
- 收藏
- 关注
原创 Python中的列表:当内置遇上类型提示
代码清晰度:使用类型提示让你的代码意图更加明确。错误预防:静态类型检查可以在运行前捕获潜在的类型错误。兼容性:同时使用list和List可以兼顾不同Python版本和各种工具。性能平衡:运行时检查保证了执行效率,而类型提示不会影响运行时性能。记住,在Python的世界里,list和List就像是一对相辅相成的双胞胎。善用它们,你的代码不仅会更加清晰,还能避免许多潜在的错误。下次当你在代码中看到它们时,别忘了向这对双胞胎打个招呼!
2024-08-29 20:10:53 429 1
原创 当线程遇到超时:用 func_timeout 优雅地说再见
真正地终止超时的线程,而不是让它们在后台继续运行。更好地控制程序的执行时间,提高效率。优雅地处理超时情况,不让一个任务拖累整个程序。记住,在编程世界里,时间就是金钱,效率就是生命。善用 func_timeout,让你的程序不再"迷路",准时"回家"。下次当你的程序遇到那些顽固的、不愿意结束的线程时,别忘了召唤 func_timeout 这个法力无边的"线程终结者"。它会帮你把那些超时的线程送入温柔的离别之乡,让你的程序再次风驰电掣!记住,在编程的世界里,有时候说再见,是为了更好的相遇。
2024-08-27 10:57:38 891
原创 探索 LoRA-GA:低秩适配与梯度近似的完美结合
LoRA-GA 是一种结合了低秩适配(LoRA)和梯度近似(GA)的技术。它的核心思想是通过引入低秩矩阵来减少需要更新的参数数量,从而降低计算和存储成本。同时,LoRA-GA 通过梯度近似技术确保低秩矩阵的更新方向与全参数矩阵的更新方向尽可能一致,从而提高模型的适应性和训练效率。LoRA-GA 通过结合低秩适配和梯度近似技术,有效地提高了模型微调的效率和性能。与原始的 LoRA 技术相比,LoRA-GA 在减少计算和存储成本的同时,能够更快地收敛,并且在相同的训练时间内达到更低的损失值和更高的准确率。
2024-08-14 14:52:41 677
原创 探索 MongoDB 的 $currentDate:解决 TTL 时间不同步问题的利器
currentDate 是 MongoDB 的一个更新操作符,用于将指定字段的值设置为当前日期和时间。它的作用类似于你在 Python 中调用 datetime.now(),但更强大的是,它确保时间戳是由 MongoDB 服务器生成的,而不是客户端。这意味着,无论你的客户端时钟有多么不靠谱,MongoDB 都能保证时间的一致性。通过使用 $currentDate 操作符,我们可以确保时间戳是由 MongoDB 服务器生成的,从而避免了客户端和服务器之间的时间不同步问题。
2024-08-14 09:27:02 442
原创 探索 Pluggy 插件系统:未注册插件时返回空列表的奥秘
在 Python 的世界里,插件系统是一个强大的工具,能够让我们的代码更加模块化和可扩展。而 Pluggy 作为一个灵活的插件管理框架,正是我们实现这一目标的利器。然而,当我们在使用 Pluggy 时,可能会遇到一些令人困惑的现象,比如未注册插件时返回空列表。今天,我们就通过一个具体的代码实例来揭开这个谜团。
2024-08-12 19:58:49 281
原创 探索Transformer中的多头注意力机制:如何利用GPU并发
首先,什么是多头注意力机制?简单来说,它是Transformer模型的核心组件之一。它通过并行计算多个注意力头(attention heads),使模型能够从不同的表示子空间中捕捉不同的特征。想象一下,你有八只眼睛,每只眼睛都能看到不同的东西,这样你就能更全面地理解世界。
2024-08-07 09:47:13 557
原创 线程不安全的那些事儿
这段代码的目标很简单:我们创建了一个共享变量 counter,然后启动100个线程,每个线程都对 counter 进行100,000次递增操作。理论上,最终的 counter 值应该是100 * 100,000 = 10,000,000,对吧?什么?10,000,000变成了100,040?这到底是怎么回事?
2024-07-31 09:13:29 340
原创 保存模型可训练参数的正确姿势:state_dict vs named_parameters
今天我们来聊聊一个看似简单但却容易踩坑的主题:如何正确保存模型的可训练参数。你可能会问:“这有什么难的?直接用 model.state_dict() 不就行了吗?” 哦,朋友,事情可没那么简单!
2024-07-24 15:15:37 715
原创 递归锁与普通锁的区别
在多线程编程中,锁是一种机制,用来确保某些代码块在同一时间只能被一个线程执行。想象一下,你和你的朋友们都想同时进入一个只有一把椅子的房间。为了避免混乱,你们需要一个锁来控制进入的顺序。
2024-07-16 14:27:02 399
原创 缓存与锁:让你的Python代码不仅能飞且安全
通过结合 cachetools 的 cachedmethod 装饰器、TTLCache 和 threading.Lock,我们实现了线程安全且带有过期时间的类方法缓存。这样,你的代码不仅跑得更快,还能在多线程环境中稳如泰山。
2024-07-10 20:44:20 407
原创 深入浅出:MongoDB中的背景创建索引
想象一下,你正忙于将成千上万的数据塞入你的MongoDB数据库中,你的用户期待着实时的响应速度。此时,你突然想到:“嘿,我应该给这些查询加个索引!” 没错,有了索引,查询速度将大大提升。但问题是,创建索引需要时间,而这段时间里,你的数据库性能可能会有所下降。该怎么办呢?别急,让我向你介绍一种神奇的操作——背景创建索引。
2024-06-27 09:49:24 518
原创 mongo使用投影(projection)的作用
投影在MongoDB中是一个非常有用的功能,通过它你可以控制查询结果中返回的字段,从而减少数据传输量,提高查询效率,并简化数据处理逻辑。在使用mongo时大脑需要有这样的意识,即投影的存在;理论和使用方法都可以从GPT4获得;
2024-05-30 09:26:27 536
原创 RuntimeError: “LayerNormKernelImpl“ not implemented for ‘Half‘
另一方面,GPU,尤其是NVIDIA的一些较新的GPU,如支持Tensor Cores的V100、A100等,专门设计了硬件加速FP16运算,这使得它们在处理这种数据类型时非常高效。相对于GPU,CPU在处理FP16计算方面通常要缓慢得多,因为它们可能需要将这些数值转换回FP32来进行计算,然后再转换回FP16来存储。它通常用于深度学习模型,因为它可以减少模型的内存占用,并可能在支持FP16计算的GPU上加速模型的训练和推理。如果你希望在CPU上进行推理,通常需要将模型转换回FP32精度。
2024-04-25 11:22:46 411
原创 vim中粘贴代码片段出现每行新增缩进的解决方法-set paste
set paste准备复制一段代码到Linux服务器上的vim文件中,效果如下:
2024-04-25 09:16:07 737
原创 pulsar存在大量消费未ack的原因
某产品灰度上线后,从pulsar服务端监控发现存在一种现象:消费但未ack的信息不断增加,直到3000左右就稳定下来了且消费速度为0,但不清楚这3000是怎么来的,因为代码是消费到立马ack的;
2024-04-01 13:03:05 595
原创 Temperature&Top-k&Top-p
在语言模型中使用温度(temperature)这个参数是为了控制文本生成过程中的随机性和可预测性。这个概念来自于统计力学中的温度概念,在那里它用来描述系统的熵(或随机性)水平。在语言模型中,输出概率分布上的温度参数用于调整选择下一个词的多样性。pwsoftmaxTlogp利用温度参数,模型能够在生成预测的词时权衡探索(尝试新的、不太可能的词)和利用(选择最可能的词)之间的平衡。在实际应用中,根据语境和应用场景的要求,可以调节温度参数,以产生合适的输出文本。
2024-03-31 22:27:48 898
原创 深入探秘Python生成器:揭开神秘的面纱
想象一下,您掌握了一种魔法,在代码世界里,您可以轻松呼唤出一个整数。然而,事情并不总是看起来那样简单。表面上,这段代码看起来像是在进行一个简单的问候和返回神秘数字1的仪式。这个不是预期中的整数!而是一种被称为生成器的强大生物。那么,这是如何发生的呢?
2024-03-31 11:44:26 547
原创 (生成器)yield与(迭代器)generator
外部的 while True 循环将会导致无限循环,但不是因为 yield_test() 函数内部的逻辑,而是因为外部循环每次迭代都重新创建了一个新的生成器对象。可以忽略掉yield_test内部执行逻辑,从外部调用来看,while会一直执行yield_test方法,永远都不会有终止的时候。
2024-03-26 20:20:24 701
原创 当模型足够大时,Bias项不会有什么特别的作用
阅读OLMo论文时,发现有如下一段话:加上前面研究llama和mistral结构时好奇为什么都没有偏置项了。
2024-03-14 09:54:29 1052
原创 python导入的缓存机制
logger文件main文件中调用会执行print语句输出: load logger然后执行子进程每个子进程都会有from app.internal.component.logger import logger但没有执行print语句,且Logger.info打印的日志也没有输出。
2024-03-13 20:49:48 578
原创 在/etc/hosts中为某个IP配置域名解析时,域名可以有不同的,而且域名必须配置成指定的,不能是任意的
在/etc/hosts中为某个IP配置域名解析时,域名可以有不同的,而且域名必须配置成指定的,不能是任意的?
2024-03-04 21:30:31 557
原创 Repetition Improves Language Model Embeddings
问题定义:论文指出自回归大型语言模型(LLMs)在提取文本嵌入时存在一个限制,即早期标记的上下文化嵌入不能包含来自句子后部的信息。这可能导致在语义相似性估计上的失败。方法提出:为了解决这个问题,作者提出了一种名为“回声嵌入”的方法。这种方法通过在上下文中重复输入两次,并从第二次出现的文本中提取嵌入,从而使早期标记能够编码关于后续标记的信息。实验设计:作者在大规模文本嵌入基准(MTEB)上进行了实验,包括零样本和微调设置,以评估回声嵌入与传统嵌入方法的性能。
2024-02-29 17:40:18 1008
原创 telnet与ping的区别
如果 telnet 客户端在 “Trying” 状态后没有其他输出,这通常表明它正在等待响应,如果超过一定时间没有收到响应,可能会出现超时错误。这种情况下,需要检查网络连接、目标主机状态、端口状态以及防火墙设置等,以确定为何无法建立连接。当使用 telnet 命令尝试连接到某个主机的特定端口时,如果你看到 “Trying” 消息,这意味着 telnet 客户端正在尝试建立到目标主机和端口的TCP连接。换句话说,它正在发送一个TCP连接请求,并等待目标主机响应。
2024-02-27 17:12:04 2543
原创 NoReturn与None的区别
在这个例子中,my_function 会抛出一个异常,所以它不会有返回值,不仅是不返回 None,而是根本就不会有任何返回过程,因为函数执行会在抛出异常时被中断。总的来说,None 是一个实际的值,而 NoReturn 是一个类型注解,用于描述函数的行为(即函数不会正常结束执行)
2024-02-27 17:03:43 437
原创 if __name__ == ‘__main__‘: main()为什么是最佳实践呢
可维护性和可测试性:从 main() 函数调用代码使得它更容易被测试,因为你可以从测试框架中直接调用 main() 函数。此外,如果程序变得更加复杂,使用 main() 函数可以更容易地维护和扩展代码。避免全局变量:在 main() 函数内声明的变量是局部的,避免了全局变量的使用,这减少了由于变量命名冲突或无意中改变了全局状态所引起的bug。性能优化:在某些情况下,将代码放入函数中可以提高性能。如果你直接将代码放在 if。’: 块中,那么这部分代码在被其他脚本导入时不会执行,也无法被重用。
2024-02-26 20:27:10 332
原创 k8s部署项目的优势
可伸缩性:Kubernetes 可以根据应用负载动态调整副本数。这意味着你的 Python 应用可以根据需求自动扩展或收缩,从而提供更高效的资源使用。自我修复:当一个服务实例失败时,Kubernetes 能够自动重启容器,替换故障的 Pods,或者重新调度到健康的节点上,以确保应用的持续可用性。负载均衡:Kubernetes Service 提供了内置的负载均衡器,可以自动分发网络流量到不同的应用副本,有助于提高应用的响应速度和可用性。
2024-02-02 16:44:10 1289
原创 uptrained的解释
如果 “uptrained” 出现在与机器学习或人工智能相关的上下文中,它可能是指 “进一步训练”、“增量训练” 或 “继续训练”。在这种情况下,它描述的可能是在一个已经训练好的模型基础上,使用新数据或额外的数据来继续训练以提高性能或适应新的任务。如果一个模型已经在一个数据集上训练过了,然后你使用额外的数据继续训练它,这个过程可能被称为 “uptraining”,相应的中文可以翻译为 “进一步训练” 或 “继续训练”。“uptrained” 这个词没有直接的中文翻译,因为它不是一个标准的英文单词。
2024-02-02 09:13:18 451
原创 Serializable与dataclasses结合的作用
Serializable 通常会提供诸如 to_dict(), from_dict(), to_json(), from_json() 等方法。这样做的好处是可以简化在不同系统或网络传输过程中的数据交换。Serializable 类提供了将数据类的实例转换为更容易进行JSON序列化的字典格式的方法,以及从该字典格式创建数据类实例的方法。在 Python 中,dataclass 是一个装饰器和一个函数,它们位于 dataclasses 模块中,自 Python 3.7 起作为标准库的一部分提供。
2024-02-01 15:01:02 456
原创 isinstance(1, type) 为什么会输出false呢
isinstance() 函数是Python中用来检查一个对象是否是一个类的实例的内置函数。它接受两个参数:第一个参数是要检查的对象,第二个参数是类(或类的一个元组,表示任意一个类)。
2024-01-27 16:51:59 417
原创 linux中配置文件目录为什么用etc来命名
在现代的 Linux 和类 Unix 系统中,/etc 目录用于存放系统的全局配置文件。例如,你会在 /etc 目录下找到网络配置、系统服务启动脚本、用户账户信息、安装的软件的配置文件等。的缩写,最初意味着 “其他”,用来存放杂项或者不属于其他特定目录的文件。然而,随着时间的推移,/etc 目录的用途逐渐演变并专门化。,这是一个很好的例子,展示了技术术语和命名随着时间的演进而逐渐定型的过程。在早期的 Unix 系统中,/etc 目录的名称确实来源于单词。目录的名称起源于“其他”,但现在它已经成为了。
2024-01-26 11:46:08 744
原创 __name__是私有属性吗
在Python中,属性和方法名称前面带有双下划线(、__dict__等,它们并不是私有的,而是被称为"特殊方法"或"魔术方法"。
2024-01-26 11:17:16 381
原创 python中globals()的作用-反射很给力
在Python中,globals() 函数返回一个字典,表示当前全局符号表。这个符号表始终针对当前模块,包含了可以在程序的全局作用域内访问的所有变量和函数。
2024-01-26 11:00:52 498
Training deep network without learningrate coinbet
2018-11-14
stacked Denoise autoencoder learning useful representation
2018-11-14
深度学习+tf
2018-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人