- 博客(44)
- 收藏
- 关注
原创 Deepseek R1 技术报告
为了装备更高效的较小模型,具备像DeepSeek-R1一样的推理能力,我们直接微调了开源模型,如Qwen(Qwen,2024b) 和Llama(AI @ Meta,2024) 使用DeepSeek-R1精选的80万个样本,详见第2.3.3节。值得注意的是,我们提炼的14B模型大大超过了最先进的开源QwQ-32B-Preview(Qwen,2024a),而经过提炼的32B和70B模型在密集模型的推理基准上创造了新记录。如图所示,随着RL训练的推进,DeepSeek-R1-Zero表现出稳定和一致的性能增强。
2025-03-01 17:48:25
682
原创 一文带你入门+实操 Elasticsearch 数据库
docker: Server Version: 27.3.1elasticsearch: 8.17.0kibana: 8.17.0拉取镜像创建自定义网桥获得密码:修改的为重启容器:浏览器访问:https://localhost:9200/浏览器访问:https://localhost:5601参考内容:基于docker部署elasticsearch与kibana 8.10.2_哔哩哔哩_bilibiliDocs黑马Elasticsearch全套教程,含DSL查询语法、数据聚合、ES集合,最后
2024-12-27 15:47:03
617
原创 Ubuntu 20.04 部署向量数据库 Milvus + Attu
最开始在自己的办公电脑(无显卡的 windows 10 系统) 上使用 Docker Desktop 部署了 Milvus 容器,方便的很, 下载 Attu 也很方便,直接就把这个向量数据库通过 Attu 这个图形化界面跑了起来,使用起来感觉 Milvus 向量数据库效果比较好,后面想在服务器(Ubuntu 20.04)上同样部署,遇到了不小的麻烦,花了一下午解决了,希望能给后人铺路。
2024-11-02 19:20:58
1594
原创 向量索引:向量数据库路线图
路线图在旅行时很有用,因为它们从现实世界中获取密集的地理信息并将其浓缩成一张易于导航的纸(或智能手机显示屏)。就像旅行者从地图中受益一样,矢量数据库也受益于矢量索引。向量索引是原始向量的压缩形式,允许高效、快速的搜索。与通过原始嵌入处理搜索相比,索引的紧凑性降低了内存需求并增强了可访问性。索引有多种形式,由不同的算法方法创建。您不需要了解使用大多数 vector 数据库创建索引本身的细节;它们可以通过您选择的简单命令轻松创建。但是,掌握向量索引的基本工作原理及其各种形式有助于了解选择哪一个以及何时选择。
2024-10-29 21:22:23
1199
原创 构建生产级的 RAG 系统
以下是构建生产级 RAG 的一些主要注意事项:1️⃣用于检索的文本块不一定要与用于LLM生成的文本块相同在信息检索阶段,通常将文档分割成较小的文本块,以提高检索的准确性和效率。然而,在让 LLM 生成回答时,可能需要更大的文本块来提供充分的上下文信息。因此,针对检索和生成过程,应采用不同的文本分块策略,以优化各自的效果。2️⃣嵌入应存在于不同的潜在空间中,而不是直接使用原始文本的嵌入原始文本可能包含无关的填充词或噪音,直接对其进行 embedding 可能会引入偏差。
2024-10-29 21:07:16
1078
原创 ROUGE:摘要自动评估软件包
添加图片注释,不超过 140 字(可选)算法解析ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一组用于自动评估文本摘要质量的指标,主要通过比较机器生成的摘要与一个或多个参考摘要之间的重合程度来衡量。ROUGE 包括多个变体,其中最常用的有 ROUGE-N、ROUGE-L、ROUGE-W 和 ROUGE-S。下面将详细介绍这四种 ROUGE 测量方法的算法定义、它们之间的区别,并通过生动的例子来帮助理解。添加图
2024-10-21 21:18:41
666
原创 斯坦福 CS229 I 机器学习 I 构建大型语言模型 (LLMs)
困惑度是基于验证损失计算的,用来衡量模型对数据的理解程度,反映模型在预测序列时的平均不确定性(模糊预测的 token 有多少)。通过让预训练好的模型生成类似人类标注的数据,可以快速地积累大规模的数据集,降低对人类标注的依赖。模型可以生成各种形式的答案,从健康建议到对编程任务的解答,这些生成的数据可以用来微调其他模型,提升它们在特定任务上的表现。这个向量经过线性变换,从初始维度。PPO 是一种常用的强化学习算法,它通过约束更新步骤,避免模型的过度优化(即防止模型产生非常激进的变化),保持训练的稳定性。
2024-10-09 20:45:46
1383
原创 大语言模型知识点分享
大模型一般指1亿以上参数的模型,但是这个标准一直在升级,目前万亿参数以上的模型也有了。大语言模型(Large LanguageModel,LLM)是针对语言的大模型。Post-LN位置:layer norm 在残差链接之后缺点:Post-LN 在深层的梯度范式逐渐增大,导致使用 Post-LN 的深层 transformer容易出现训练不稳定的问题Pre-LN位置:layer norm 在残差链接中。
2024-09-28 18:20:57
1528
3
原创 大型视觉语言模型的有效性评估
第 2 节评估了 MiniGPTv2 [4]、LLaVA-1.5 [8] 和 Shikra [9] 在各种专业任务中的识别性能。其中,LLaVA-1.5 通常在存在判定和对象分类方面表现出更好的识别能力。然而,定量分析表明,虽然这些模型在没有特定领域微调的情况下在各种专门任务中表现出了一定的认知能力,但它们的识别性能还需要进一步提高。当直接应用于这些任务时,它们对专业领域的认知和理解仍然有限。
2024-09-06 11:11:12
1374
原创 python 中的拷贝与赋值
直接赋值:完全共享相同的对象,任何改变都会反映在所有引用中。浅拷贝:创建一个新的对象,但嵌套的子对象仍然共享。因此,顶层修改不会影响原始对象,但修改嵌套对象会。如果你需要一个完全独立的副本,包括所有嵌套的对象,你需要使用深拷贝(deepcopy数组切分创建了原对象的浅拷贝。它复制了对象的元素,但不会影响原对象。对于可变对象,这种方式非常有用,因为它可以在不改变原对象的情况下操作副本。对于不可变对象,这种操作没有实际区别,但仍然可以用于创建一个新的引用。
2024-08-28 17:48:03
944
原创 SDK 和 API
软件开发工具包(SDK)是一组适合于开发人员的平台特定构建工具集。您需要调试器、编译器和库等组件来创建在特定平台、操作系统或编程语言上运行的代码。SDK 将开发和运行软件所需的一切都集中在一处。此外,它们还包含文档、教程和指南之类资源,以及用于加快应用程序开发的 API 和框架。SDK 为您提供了一个集成平台,使您可以高效地从头开始开发应用程序。它提供了缩短开发过程的构建基块。您可以使用 SDK,而不必从头开始编写代码。SDK 通常由库、编译器、调试器、代码示例和文档组成。
2024-08-22 17:07:58
1368
原创 A Comprehensive Study of Knowledge Editing for Large Language Models
大型语言模型(LLMs)在理解和生成与人类交流密切相关的文本方面表现出了非凡的能力。然而,一个主要的限制在于训练期间的大量计算需求,这是由于它们的广泛参数化而产生的。世界的动态性质进一步加剧了这一挑战,需要经常更新 LLMs 以纠正过时的信息或整合新知识,从而确保其持续的相关性。请注意,许多应用程序需要在训练后不断调整模型,以解决缺陷或不良行为。人们对高效、轻量级的动态模型修改方法越来越感兴趣。
2024-07-25 21:02:38
1313
原创 Knowledge Editing for Large Language Models: A Survey
在本文中,我们将将要注入 LLMs 的知识表示为知识三元组 t = (s,r,o),其中 s 是主题(例如美国总统),r 是关系(例如是),o 是对象(例如拜登)。从知识三元组的角度来看,针对 LLMs 的 KME 的目标是将模型预训练权重中编码的原始知识三元组 t = (s, r, o) 修改为目标知识三元组 t∗ = (s, r, o∗),其中 o∗ 是与 o 不同的目标对象。
2024-07-25 20:57:11
1083
原创 Ubuntu 20.04.6 安装 docker
其实,最好用的方法就是通过安装包直接安装,技能同时安装最新版的docker,也拥有好用的docker界面,但遗憾的是,仅支持, 和,不支持和版本,因此只能选择单独安装docker。
2024-07-09 20:09:40
918
原创 大型语言模型评估调查
是一项生成任务,目的是为给定句子学习一个简洁的摘要。在这项评估中,Liang 等人[114]发现 TNLG v2 (530B) [179] 在两种情况下都获得了最高分,OPT (175B) [245] 紧随其后,排名第二。微调后的 Bart [106]仍然优于 zero-shot ChatGPT。具体来说,ChatGPT 与文本-davinci-002 [6]的 zero-shot 性能相当,但不如 GPT-3.5。这些发现表明,LLM,尤其是 ChatGPT,在摘要任务中表现一般。
2024-07-02 11:57:33
2038
原创 评估大型语言模型生成文章的能力
1. AI解读1.1. 总体概要本文探讨了大型语言模型(LLMs)如GPT-4在生成特定领域(如计算机科学中的自然语言处理NLP)教育调查文章方面的能力和局限性。研究发现,尽管GPT-4能够根据特定指导生成高质量的调查文章,与人类专家的作品相媲美,但在细节完整性和事实准确性方面仍存在不足。此外,GPT-4在评估机器生成文本时显示出对自身生成内容的偏好,表明在某些情况下,它可能不是人类判断的完美替代品。文章强调了LLMs在教育领域中的潜在变革作用,同时也指出了需要进一步验证和人工干预的必要性,
2024-06-27 17:29:05
1738
1
原创 LLMs 驱动的数据合成、整理和评估
1. AI 速读总体概要本文综述了大型语言模型(LLMs)在合成数据生成、筛选和评估方面的最新进展,旨在为学术和工业界提供深入、系统化的研究方向。文章强调了合成数据在解决真实世界数据局限性中的重要性,特别是在数据量和质量方面。通过一个通用的合成数据生成工作流程,文章组织了相关研究,突出了现有研究中的空白,并概述了未来研究的前景。文章的核心思想是,LLMs驱动的合成数据生成不仅能够自动化整个模型训练和评估过程,减少人类参与,而且能够为开发下一代LLMs铺平道路。此外,文章还探讨了合成数据生成的
2024-06-26 15:35:22
1535
原创 C++ 编程技巧分享
所有的数据都要放在 private 域当中参数尽可能通过引用(reference)进行传递,看情况考虑要不要加 const返回值尽量通过引用(reference)进行传递,但存在不能通过引用进行传递的情况在类的 body 内的函数,应加 const 的函数(不改变传入参数和数据的函数)都应该加上构造函数在传参时,尽量使用参数化列表方式进行传递问题:什么情况下可以 pass by reference只要传入的参数的值不发生改变,就可以 pass by reference修改调用者的变量。
2024-06-21 21:14:26
1368
原创 计算机系统的主要概念
进程是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。而并发运行,则是说一个进程的指令和另一个进程的指令是交错执行的。在大多数系统中,需要运行的进程数是多于可以运行它们的 CPU 个数的。传统系统在一个时刻只能执行一个程序,而先进的多核处理器同时能够执行多个程序。无论是在单核还是多核系统中,一个 CPU 看上去都像是在并发地执行多个进程,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换。
2024-06-14 22:26:02
1057
原创 Ollama+Open WebUI本地部署Llama3 8b(附踩坑细节)
open-webui 是一款可扩展的、功能丰富的用户友好型自托管 Web 界面,旨在完全离线运行。此安装方法使用将 Open WebUI 与 Ollama 捆绑在一起的单个容器映像,从而允许通过单个命令进行简化设置。下载完之后默认安装在C盘,安装在C盘麻烦最少可以直接运行,也可以通过软链接保存到其他盘,但可能会出现一系列问题。到这里 docker desktop 的配置就大功告成了,可以开始下载 open-webui 容器了。添加代理,这样本地找不到的容器会自动到网上去找,添加后点 Apply。
2024-06-14 21:39:52
52336
16
原创 STL - 常用算法
学习目标:算法简介:功能描述:函数原型:// 遍历算法 遍历容器元素// beg 开始迭代器// end 结束迭代器// _func 函数或者函数对象5.1.2. transform功能描述:函数原型://beg1 源容器开始迭代器//end1 源容器结束迭代器//beg2 目标容器开始迭代器//_func 函数或者函数对象5.2. 常用查找算法学习目标:算法简介:功能描述:函数原型:// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置// beg 开始迭代器// end
2024-06-13 20:42:15
684
原创 STL-常用容器
(First In Last Out, FILO)的数据结构,只有一个出口,栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。List有一个重要的性质,插入和删除操作都不会造成原有list迭代器的失效,这在vector是不成立的。//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。//删除pos迭代器所指的元素,返回下一个元素的迭代器。//删除pos迭代器所指的元素,返回下一个元素的迭代器。
2024-06-13 20:18:40
1470
原创 使用Git进行代码版本管理
Remote(远程仓库)这是存储在远程服务器上的代码库,通常用来与团队成员共享代码。远程仓库包含了所有提交的历史记录。操作示例:git push(将本地仓库的更改推送到远程仓库),git pull(从远程仓库拉取更新到本地仓库)。Repository(本地仓库)这是存储在本地计算机上的代码库,包含项目的所有历史提交记录。它是一个完整的版本库副本。操作示例:git commit(将工作区中的更改提交到本地仓库),git checkout(切换到某个特定的提交或分支)。
2024-06-12 15:00:59
2178
原创 排序复选制
在候选人超过两名的情况下,选民在选票上按喜好排列其支持的候选者。计票时,首先依照选票上的第一选择来计算候选人的得票,得票最少的候选人将被淘汰,然后将其得票依第二选择重新分配给其他候选人,按票数再排序后,再将最少票的候选者排除,并将其选票分配给余下的候选人,如此类推,直至有候选人取得过半数选票为止。排序复选制优点是相对于两轮投票制而言,一次即可确保从多位候选人择一选出,不必另行投票。不同于比例代表制,排序复选制使较小政党较难取得议会议席,但同时亦防止大政党像领先者当选般容易取得大多数议席。
2024-06-03 19:20:35
1074
原创 VIKOR方法
VIKOR方法是一种多标准决策(MCDM)或多标准决策分析方法。它最初由 Serafim Opricovic 开发,用于解决具有冲突和不可通约(不同单位)标准的决策问题,假设冲突解决可以接受妥协,决策者想要一个最接近理想的解决方案,并根据符合所有既定标准。VIKOR 对备选方案进行排名,并确定最接近理想的名为折衷的解决方案。折衷解决方案的思想是由 Po-Lung Yu 于 1973 年[1]和 Milan Zeleny 在 MCDM 中引入的。[2]
2024-06-03 19:10:50
3753
1
原创 大规模 Transformer 模型 8 比特矩阵乘
通过实验,我们发现不使用 4 字节 FP32 精度转而使用 2 字节 BF16/FP16 半精度可以获得几乎相同的推理结果,同时模型大小会减半。这促使我们想进一步削减内存,但随着我们使用更低的精度,推理结果的质量也开始急剧下降。为了解决这个问题,我们引入了 8 位量化。仅用四分之一精度,因此模型大小也仅需 1/4!但这次,我们不能简单地丢弃另一半位宽了。基本上讲,量化过程是从一种数据类型“舍入”到另一种数据类型。
2024-05-31 20:52:14
1686
原创 图解 Transformer
Transformer 是在论文 Attention is All You Need 中提出的。它的 TensorFlow 实现是 Tensor2Tensor 软件包的一部分。哈佛大学的 NLP 小组创建了一份指南,用 PyTorch 实现该论文。在这篇文章中,我们将尝试把事情简化一些,并逐一介绍相关概念,希望能让大家更容易理解。
2024-05-31 10:39:37
1098
原创 Transformer模型的参数计算
输入序列长度(sequence length):10 一次处理的样本数量(batch size):32 输入嵌入维度(embedding dimension):512 位置编码维度:512 每一个Transformer层中注意力头的数量(number of attention heads):8 前馈神经网络(FFN)隐藏层维度(hidden dimension of FFN):2048 Transformer层的数量(number of Transformer layers):61.
2024-05-18 17:32:41
2313
原创 GPU vs CPU,GPU的三大优势
你可以将CPU想象为一辆法拉利,而GPU则是一辆大卡车。它们的任务都是从一个随机位置A取得包裹,并将这些包裹运送到另一个随机位置B。CPU(法拉利)可以快速从你的RAM中获取一些内存(包裹),而 GPU(大卡车)在这方面做得较慢(延迟更高)。然而,CPU(法拉利)需要多次往返才能完成任务(从位置A取2个包裹到位置B...重复),而GPU可以一次性获取更多的内存(从位置A取100个包裹到位置B...重复)。
2024-05-14 20:43:47
1443
2
原创 STL初识
vector中存放自定义数据类型,并打印输出//vector容器中存放自定义数据类型public:int m_age;//向容器中添加数据//遍历容器中的数据it!= v.end();it++)//*it(即解引用)得到的是vector中的数据类型,在本例中为Person数据类型// 方式一:cout
2024-04-19 19:56:56
965
原创 C++文件操作
程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化保存在硬盘上C++中对文件操作需要包含头文件ofstreamifstreamfstream。
2024-04-11 16:14:45
489
1
原创 C++中的多态
多态是C++面向对象的三大特性之一多态分为两类:静态多态和动态多态的区别:案例:总结实现动态多态要满足的条件:多态使用条件:区分重写和重载:定义父类内函数为虚函数时,会创建一个虚函数指针,指向一个虚函数表,在表中保存虚函数的函数入口地址,此时若子类继承该父类,子类中也会复制一份同样的虚函数指针和虚函数表,如下图所示:当子类重写父类的虚函数时,子类虚函数表中的内容会被替换成子类的虚函数地址,如下图所示:示例:3. 多态案例一:计算器类案例描述:分别用普通写法和多态技术,设计实现两个操作数进行运
2024-04-11 14:30:04
939
1
原创 C++中的友元
生活中你的家有客厅(Public),有卧室(Private)客厅所有的客人都可以进入,但你的卧室是私有的,只有你能进去但是,你也可以允许你最好的朋友进去在C++程序中,有些私有属性,也想让类外特殊的一些函数或类进行访问,就需要用到“友元”技术友元的目的就是让一个函数或者类,能够访问另一个类中的私有成员友元的关键字为:friend友元的三种实现方式:全局函数做友元类做友元成员函数做友元。
2024-04-08 11:28:48
247
原创 C++中对象的初始化和清理
生活中我们买的电子产品基本都会有出厂设置,在某一天我们不用的时候也会删除自己的数据防止信息泄漏C++中面向对象的思想源自于生活,每个对象都有自己的初始设置以及对象销毁之前清理数据的设置。
2024-04-08 11:24:34
1117
原创 C++中的封装
circle.hcircle.hC++面向对象的三大特性为:封装 | 继承 | 多态C++认为万事万物皆为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名/身高/年龄/体重......,行为有走/跑/跳/吃饭/唱歌......车也可以作为对象,属性有轮胎/方向盘/车灯......,行为有载人/放音乐......具有相同性质的对象,我们可以抽象成类,人属于一类,车也属于一类。
2024-04-08 11:17:43
393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人