- 博客(157)
- 资源 (11)
- 收藏
- 关注
原创 python技巧梳理
在开发中,经常会遇到,同时存在多个值,依次判断上述值,选择第一个非空、True的值作为整个表达式的值进行返回,这个时候会用到or这个关键词,下面讲一下用法。
2024-05-23 09:30:29 154
原创 FastAPI+aiohttp+uvicorn快速搭建个人服务
当你想搭建一套服务实现某个demo或者是小型服务,最快的方式就是使用fastapi+aiohttp+uvicorn。
2024-04-24 23:34:29 177
原创 RAFT: Adapting Language Model to Domain Specific RAG
RAFT是一种在特定领域下实现高性能回答的策略RAFT在训练的时候采用了正确文档和错误文档组合的方式RAFT在使用CoT的时候,效果提升明显RAFT更适合实际场景,因为实际场景是存在错误文档的。
2024-04-15 19:44:16 1243
原创 大模型GPU监控之nvitop
在进行大模型训练的时候,往往需要用到多张GPU卡,如何实现多卡的管理和监控,这是一个比较好的话题,下面介绍一个小工具。
2024-03-11 16:20:42 365
原创 llama-index调用qwen大模型实现RAG
从上面的代码可以看出,我们使用qwen和bge-zh模型可以实现本地下载模型的RAG方案,知识库里面的内容也可以实现中文问答,这非常有利于我们进行私有化部署方案,从而扩展我们的功能。
2024-03-08 10:15:06 1397
原创 碰瓷“一带一路”
前段时间参加了个比赛,ikcest大数据竞赛,拿了个优秀奖,不过没算力也没人,纯粹就玩一玩,了解下相关技术,这里也稍微看着玩吧。
2023-11-21 16:01:55 199
原创 回文链表判断
恰好指向链表的中间节点(如果链表长度为奇数,则中间节点只有一个;回文字符串和数组我们会经常遇到,今天讲一个相关问题,叫回文链表,还是和以前一样,先把代码提上来。同时遍历左边部分和反转后的右边部分,比较它们的值是否相等。最后,需要将右边部分的链表再次反转回来,以恢复原始链表的结构。最后将右边部分反转回来,得到原始链表:1 -> 2 -> 3 -> 2 -> 1。将右边部分反转,得到链表:1 -> 2 -> 3 和 1 -> 2。的下一个节点,这是为了将链表分为两部分:左边部分和右边部分。
2023-09-12 17:48:43 192
原创 基数排序之代码解析
基数排序是生活中咱们写程序用的比较少的排序,但是这个排序比较巧妙,今天就给大家讲一讲,原理都在代码里面,下面会给一些解释。上面是整段核心代码的解释,通过这段代码的解释,可以 把整个流程都搞明白了。减一,以便下一个相同数字的元素(如果有的话)可以放入。: 这是一个循环,从数组中的右端(是十位数,那么它可能会返回。数组中的合适位置,然后将。: 这一行代码用于获取第。的十位数字,以此类推。
2023-09-12 15:29:23 157
原创 荷兰国旗问题之快速分组
上面主要是讲了荷兰国旗问题的一个小分支,这属于核心算法,具体如何实现整体的,大家可以自行查阅,其实这个算法可以自己去算一算,如果用一句话总结的话就是:给一个数组,最右侧的R是默认要划分的边界值,lessEqual记录小于等于R的最右侧边界索引,最后把R放到lessEqual的未知,再返回lessEqual的index。
2023-08-30 17:39:02 259
原创 百度商业AI 技术创新大赛赛道二:AIGC推理性能优化TOP10之经验分享
上面是我整个项目的尝试,具体细节信息各位赛友自己跑一跑我的代码才知道,里面有很多错误尝试,包括我甚至还尝试了内存共享技术、多线程技术、多进程技术和异步处理等等,都不是很理想,可能你们尝试后会有提高,这里面提升最大的还得是超参优化和so库调用。
2023-08-22 14:56:46 1343 2
原创 AIGC等大模型能力提升计划
不管是上学的学生、上班的打工仔、独立创业的小奋青,如果需要AI技术方面的培训、支撑、开发,都可以联系我,我的联系方式在博客个人简介里面有提。经常翻看我博客的人知道,我博客会不定期更新一些新知识,对于需要自媒体创作知识的、出版刊物的,也可以联系我。
2023-07-18 19:58:17 221
原创 page_dewarp实现弯曲文本矫正
朋友们,如果你使用ocr,再识别的时候会遇到文本扭曲的问题,为了解决这个问题,需要进行弯曲文本矫正,这里推荐一个开源项目,可以使用上面的功能进行矫正,不过里面可能需要改动一些代码,原来的应用范围好像python2。矫正效果(代码里面细节需要修正,部分图片丢了)
2023-07-13 15:07:47 716 1
原创 算力资源自由,你也来试试吧
这个平台,你可以自己先充值1元,再做新手礼包,就能用至少一天,后期租也不贵,像我的2080ti才不到八毛钱一小时,够很多人开始用了!朋友们,如果你搞AI,可能永远会缺算力,今天给大家推荐一个平台,价格非常合理,适合自己玩模型。
2023-07-12 15:38:44 195
原创 simbert训练计划之踩坑盘点
朋友们,如果你的工作中需要用到语句相似度计算,可能听说过simbert这个模型,可能现实中你需要自己去训练某个专业的模型,里面还是有一些小坑需要你去踩的,下面盘点几个常见问题:(1)显卡不适配报错信息:failed to run cuBLAS routine cublasSgemm_v2: CUBLAS_STATUS_EXECUTION_FAILED Blas GEMM launch failed。
2023-07-10 17:10:16 581 2
原创 simbert&milvus实现相似句检索
朋友们,simbert模型是一个较好的相似句检索模型,但是在大规模检索中,需要实现快速检索,这个时候离不开milvus等向量检索库,下面用实际代码来讲一下simbert之milvus应用。上面的向量入库的时候,文本的id和text都存了,milvus里面有id->text的向量,所以最终检索的时候,能够同时拿到vector和id,然后id去mysql里面找即可。
2023-05-29 16:03:10 301
原创 python 之Postgres连接
朋友们,如果你接触大数据,肯定离不开greenplum,需要你用python进行操作和处理,这里面需要封装很多函数,下面我封装一个较全的类,你们可以自己下载后修改后复用。
2023-05-29 15:50:47 306
原创 Speech and Language Processing之Long Short-Term Memory
长短期记忆(LSTM)网络(Hochreiter and Schmidhuber, 1997)将上下文管理问题分为两个子问题:从上下文中删除不再需要的信息,以及添加以后决策可能需要的信息。lstm首先在体系结构中添加一个显式的上下文层(除了通常的循环隐藏层之外),并通过使用专门的神经单元来实现这一点,这些神经单元利用门来控制信息流进出组成网络层的单元。此门的目的是从上下文中删除不再需要的信息。遗忘门计算前一状态的隐藏层和当前输入和通过的加权。然后将此掩码乘以要删除的上下文向量不再需要的上下文信息。
2023-05-17 10:07:22 79
原创 Speech and Language Processing之RNN
循环神经网络(RNN)是在其网络连接中包含循环的任何网络。也就是说,任何一个单元的值直接或间接依赖于作为输入的早期输出的网络。虽然这种网络很强大,但很难进行推理和训练。然而,在一般的循环网络中,有一些被证明在应用于口语和书面语时非常有效的约束架构。来自前一个时间步骤的隐藏层提供了一种形式的记忆或上下文,它对早期处理进行编码,并通知在稍后的时间点做出的决策。关键的是,这种体系结构并没有对这种先前的上下文施加固定的长度限制;前一个隐藏层中包含的上下文包括可追溯到序列开头的信息。
2023-05-16 16:13:38 586
原创 Speech and Language Processing之Part-of-Speech Tagging
标注是一项消歧任务,单词是模棱两可,有不止一种可能的词性,目标是找到适合这种情况的正确标签。例如,book可以是动词(book that flight)或名词(hand me that book)。这可以是一个限定词(Does that flight serve dinner),也可以是一个补语(I thought that your flight was earlier)。pos标记的目标是解决这些歧义,为上下文选择适当的标记。标签歧义有多普遍?1、HMM算法。
2023-05-15 14:45:42 567
原创 神经网络之异或与非线性
例如,1 XOR 1 = 0,1 XOR 0 = 1,0 XOR 0 = 0,0 XOR 1 = 1。如果我们把这个问题看作是一种二元分类问题,其中对应的标签为1表示z=1,标签为0表示z=0,那么这个问题就是一个非常简单的分类问题。然后,我们定义了神经网络的结构:输入层包含2个节点,隐藏层包含2个节点,输出层包含1个节点。每个节点会接收前一层节点的输出作为输入,并对其进行加权求和和激活函数处理,得到当前节点的输出。在更高维的空间中,异或问题更加复杂,无法通过一个超平面将标签为0和标签为1的点完全分开。
2023-05-12 18:18:17 1868
原创 神经网络异或解决小demo
异或问题是指当数据集无法通过一个简单的线性模型进行分类时,我们需要通过神经网络模型来进行分类。在本文中,我们将介绍如何使用神经网络来解决异或问题。
2023-05-12 18:05:39 222
原创 Speech and Language Processing之神经网络
上面这句话很好的解释了一件事,就是“大力出奇迹” ,当神经元的数目足够足够多的时候,机器所能做到的事情就很复杂、很难理解了,这是不是说明chatgpt的成功也是因为大?现代神经网络是一个由小型计算单元组成的网络,每个计算单元接受一个输入值向量,并产生一个输出值。我们介绍的结构被称为前馈网络,因为计算从一层单元到下一层单元逐层进行。现代神经网络的使用通常被称为深度学习,因为现代网络通常是深度的(有很多层)。神经网络与逻辑回归有许多相同的数学原理。
2023-05-12 14:53:08 438
原创 Speech and Language Processing之word2vec
事实证明,在每一个NLP任务中,密集向量都比稀疏向量工作得更好。虽然我们不能完全理解其中的所有原因,但我们有一些直觉。首先,密集向量可以更成功地作为特征包含在机器学习系统中;例如,如果我们使用100维词嵌入作为特征,分类器只需要学习100个权重来表示一个词的含义函数;如果我们使用一个50,000维的向量,分类器将不得不为每个稀疏维学习数万个权重。第二,因为它们比显式计数的稀疏向量包含更少的参数,密集向量可以更好地泛化,并有助于避免过拟合。最后,密集向量可能比稀疏向量在捕获同义词方面做得更好。
2023-05-10 14:03:55 189
原创 梯度下降小demo
梯度下降是一种常见的优化算法,通常用于训练机器学习模型。该算法通过反复迭代来逐步调整模型参数,从而最小化损失函数。梯度下降是一种常见的优化算法,用于训练机器学习模型。在实践中,我们可以根据数据集的大小和计算资源的限制,选择合适的梯度下降算法来优化模型。同时,我们也需要注意调整学习率等超参数以确保算法的稳定性和收敛速度。
2023-05-09 18:43:47 573
原创 罗辑回归小demo
逻辑回归是一种常用的分类算法,可以对样本进行概率估计,并通过最小化交叉熵损失函数来优化模型。在实际应用中,我们需要根据数据集的特点和任务需求选择合适的逻辑回归模型,并通过调整超参数和优化算法来提高预测性能。
2023-05-09 18:35:34 437
原创 机器学习中几种距离
在机器学习中,向量是非常重要的概念。在对向量进行各种操作时,我们经常需要计算它们之间的距离。本文将介绍几种常用的向量距离计算方法,包括欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、余弦相似度和皮尔逊相关系数。
2023-05-09 18:31:52 849
原创 Speech and Language Processing之Cosine for measuring similarity
更频繁的单词具有更长的向量,因为它们倾向于与更多的单词共现,并且与每个单词具有更高的共现值。如上,我们将看到的,大多数向量之间的相似性度量是基于点积的。点积作为一个相似度度量,因为当两个向量在相同的维度上具有较大的值时,它会趋于高。另外,在不同维数上为零的向量——正交向量——的点积为0,表示它们之间有很强的不相似性。为了定义两个目标词v和w之间的相似性,我们需要一个度量来取两个这样的向量并给出向量相似性的度量。这个归一化的点积就等于这两个向量夹角的余弦,根据向量a和b的点积的定义。
2023-05-09 15:22:43 38
原创 Speech and Language Processing之Gradient Descent
梯度下降法是一种通过计算函数的斜率在哪个方向(在参数空间θ中)上升得最陡并向相反方向移动来找到函数的最小值的方法。直觉告诉我们,如果你在峡谷里徒步旅行,想要以最快的速度下到谷底的河边,你可能会360度环顾四周,找到地面坡度最大的方向,然后沿着那个方向往下走。梯度是斜率的多变量泛化,因此对于图中这样的单变量函数,我们可以将梯度非正式地认为是斜率。因此,为了找到最小值,梯度下降告诉我们朝相反的方向移动:将w向正方向移动。我们使用梯度下降的目标是找到最优权重:最小化我们为模型定义的损失函数。
2023-05-08 15:28:12 46
原创 Speech and Language Processing之Logistic Regression
标准算法是梯度下降法;简单来讲,生成式模型就是要学习label的特征,比如猫和狗的分类,他要去学习猫和狗有什么不同,猫什么样子,狗什么样子;但是判别模型他不学习这个,他只需要找到特征能把二者区分即可,比如如果所有的狗都带着围脖,而猫没有,那么只需要围脖这一个特征就完成了学习,并且是一个很棒的模型。权重wi表示输入特征对分类决策的重要性,可以是正的(意味着特征与类相关)也可以是负的(意味着特征与类不相关)。因此,我们可能期望在情感任务中,单词awesome具有很高的正权重,而单词abyss具有非常负的权重。
2023-05-08 14:27:56 54
原创 Speech and Language Processing之Naive Bayes and Sentiment Classification
我们把一个文本文档当作一个词袋来表示,也就是说,它是一组无序的词,忽略它们的位置,只保留它们在文档中的频率。上面的推理过程其实很简单,首先是由原来的条件概率简化,因为P(d)对于确定的一个d是固定不变的,所以它并不影响最终类别c,所以可以省略,然后条件概率P(d|c)又可以转联合概率,最终,这个仍旧难以计算,那么就需要简化了。如上,这两个假设首先就是词袋模型,也就是我们认为词顺序无关,只考虑这个词的频率,再者就是贝叶斯假设,条件独立,概率之间不影响,可以把前面的公式展开。
2023-05-06 15:57:02 61
原创 Speech and Language Processing之评估语言模型
评估语言模型性能的最佳方法是将其嵌入到应用程序中,并度量应用程序的改进程度。这种端到端评价被称为外在评价。外部评估是了解组件的特定改进是否真的有助于手头任务的唯一方法。因此,对于语音识别,我们可以通过两次运行语音识别器来比较两种语言模型的性能,每种语言模型运行一次,并查看哪个提供更准确的转录。不幸的是,端到端运行大型NLP系统通常非常昂贵。相反,如果有一个度量标准可以用来快速评估语言模型的潜在改进,那就更好了。内在评价度量是指独立于任何应用程序的模型质量的度量。对于语言模型的内在评价,我们需要一个测试集。
2023-04-28 10:15:22 166
原创 聊一下python异步
朋友们,之前你可能看过很多的文章都是关于python异步的,他们很理论,但是你还是搞不清异步究竟干了什么,今天给大家讲一讲。
2023-04-27 18:29:39 119
原创 nametuple之简用
是 Python 中的一个标准库,它是一个工厂函数,用于创建具有字段名称和属性的元组(tuple)。与普通的元组不同,这些命名元组可以像类的实例一样使用,即可以通过字段名称来访问和操作其中的数据。需要注意的是,虽然命名元组的字段名可以是任意合法的变量名,但通常建议使用 Python 的标识符命名规范,即使用小写字母、单词之间用下划线分隔。也可以作为字典(dict)的替代品,因为它既可以使用字段名称访问数据,又比字典更加轻量级,性能更高。可以更加方便地表示复杂的数据结构,而且比普通的元组更易读、更清晰。
2023-04-27 17:00:20 722
原创 Speech and Language Processing-之N-gram语言模型
也就是说,你有大量的语料,然后你找出所有的句子h,然后你再找出h后面跟着the的句子,此时,后面的句子数目除以前面的句子数目,就是概率p(w|h)。这是因为语言是创造性的;这段依旧写的很经典,就是说,之前我为了判断h后面the的概率,我需要把h里面所有的概率累加起来,这样的话计算量太大,为了避免这个问题,直接把h前面的头去掉,用that代替h,也就是1-gram。正如一句老话所说,预测是困难的,尤其是预测未来。如上,这段写的非常经典,就不翻译了,自己看英文,写的非常凝练,其实就是记号的写法还有计算公式。
2023-04-27 14:44:32 498
原创 Speech and Language Processing-之最小化编辑距离
如上,图中第一行字符串和第二行字符串分别是对比的两串,两行字符串中间的竖线表示的是这两串字符挨个字符进行对比并对齐,对齐的过程中肯定有字符不一样的,那这个时候,第三行字符表示该字符对比后是需要删除(d)还是替换(s)还是插入(i)。否则,我们可以进行三种操作中的一种(插入、删除、替换),取这三种操作中编辑距离最小的那个值加 1,作为当前状态的编辑距离。更正式地说,两个字符串之间的最小编辑距离定义为将一个字符串转换为另一个字符串所需的最小编辑操作(插入、删除、替换等操作)数量。个字符所需的最小编辑距离。
2023-04-27 10:30:48 425
CMU-CS-79-forgy-RETE.pdf
2020-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人