摘要:
问题描述: 微调baichuan2-7b模型,验证一轮后继续训练第一个iteration显存大幅增加 项目链接: https://github.com/wp931120/baichuan_sft_lora 具体描述: 由于某些原因,笔者是在transformers4.30.2、torch2.0.1, 阅读全文
摘要:
TF-IDF 计算公式(一个词的 tf-idf 值在不同文档,它的值也不同): 1、根据已有的原始数据,只展示了前5片文档,content是文档内容,s_words是通过jieba分词将文档划分成了若干个词: 2、统计整个语料库所有词的词频,只计算前5000个高频词的TF-IDF值(因为如果词表太大 阅读全文
摘要:
问题起因:笔者想把别人的torch的代码复制到笔者的代码框架下,从而引起的显存爆炸问题 该bug在困扰了笔者三天的情况下,和学长一同解决了该bug,故在此记录这次艰辛的debug之路。 尝试思路1:检查是否存在保留loss的情况下是否使用了 item() 取值,经检查,并没有 尝试思路2:按照网上的 阅读全文
摘要:
当我们需要加载之前训练的checkpoint的时候,有时候会发现之前能训练的代码无法继续训练。 这时候很有可能加载优化器的步骤在加载模型前面,这样可能会导致优化器的参数仍然在CPU上,因此代码需要由原来改为: #将: optimizer, scheduler = self.get_optimizer 阅读全文
摘要:
查看内存使用情况 一般使用 top 命令即可,命令行输入 top会实时显示内存和cpu等硬件的使用情况,然后输入M即显示内存的使用情况。 但是有些情况下,内存明明被占用了,但是使用top命令依然无法找到哪个进程使用了,可以使用 ps aux --sort -rss 命令查看。 释放内存 通过上述命令 阅读全文
摘要:
题目来自“2018-2019 ICPC, NEERC, Southern Subregional Contest”,codeforces上放置了此题:Find a Number 题意:给出两个正整数d,s。找到一个最小的数 n 使得 n%d==0,并且所有的 n 所有位的数字相加和为s。 解题思路: 阅读全文
摘要:
解题思路:常规解法很容易想到O(n^3)的解法,但是,n最大为1000,很显然会超时。 如何优化到O(n^2),a+b+c =0,我们只需要判断 a+b的相反数是否在数组中出现,而且元素的取值范围在1e5的范围内,所以,我们可以空间换时间,开辟一个数组,将第三层的查询O(n)的复杂度降到O(1),需 阅读全文
摘要:
解题思路:位运算,只能用位运算符。a、b同号比较好处理。主要是异号的情况,考虑 a>0,b<0,因为 a,b的绝对值都不会超过2^32,因此取模数为2^32。根据同余方程可知 (a+b)%mod = (a+(mod+b))%mod,mod+b即为负数b在mod下的补码:b & int('1'*32, 阅读全文
摘要:
解题思路:数位DP。dp数组为dp[pos][sum]表示当前位以下还有pos个可变位并且当前位以及它的最高位出现了sum个1的dp值。因为数的取值为2^31所以,数组开dp[10][10]就够了。 数位DP入门博客: https://www.luogu.com.cn/blog/virus2017/ 阅读全文
摘要:
解题思路:这道题很两种解法,常规的就是O(n),另一种就是巧妙的利用位运算实现分治,时间复杂度O(1),类似于归并排序。不过这个递归不是自顶向下,而是巧用位运算从自底向上实现。 比如01001000通过这种方法得到00010010 class Solution: def reverseBits(se 阅读全文