自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Ubuntu 20.04.6 安装 docker

其实,最好用的方法就是通过安装包直接安装,技能同时安装最新版的docker,也拥有好用的docker界面,但遗憾的是,仅支持, 和,不支持和版本,因此只能选择单独安装docker。

2024-07-09 20:09:40 290

原创 大型语言模型评估调查

是一项生成任务,目的是为给定句子学习一个简洁的摘要。在这项评估中,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 1092

原创 评估大型语言模型生成文章的能力

1. AI解读1.1. 总体概要本文探讨了大型语言模型(LLMs)如GPT-4在生成特定领域(如计算机科学中的自然语言处理NLP)教育调查文章方面的能力和局限性。研究发现,尽管GPT-4能够根据特定指导生成高质量的调查文章,与人类专家的作品相媲美,但在细节完整性和事实准确性方面仍存在不足。此外,GPT-4在评估机器生成文本时显示出对自身生成内容的偏好,表明在某些情况下,它可能不是人类判断的完美替代品。文章强调了LLMs在教育领域中的潜在变革作用,同时也指出了需要进一步验证和人工干预的必要性,

2024-06-27 17:29:05 1149 1

原创 LLMs 驱动的数据合成、整理和评估

1. AI 速读总体概要本文综述了大型语言模型(LLMs)在合成数据生成、筛选和评估方面的最新进展,旨在为学术和工业界提供深入、系统化的研究方向。文章强调了合成数据在解决真实世界数据局限性中的重要性,特别是在数据量和质量方面。通过一个通用的合成数据生成工作流程,文章组织了相关研究,突出了现有研究中的空白,并概述了未来研究的前景。文章的核心思想是,LLMs驱动的合成数据生成不仅能够自动化整个模型训练和评估过程,减少人类参与,而且能够为开发下一代LLMs铺平道路。此外,文章还探讨了合成数据生成的

2024-06-26 15:35:22 819

原创 C++ 编程技巧分享

所有的数据都要放在 private 域当中参数尽可能通过引用(reference)进行传递,看情况考虑要不要加 const返回值尽量通过引用(reference)进行传递,但存在不能通过引用进行传递的情况在类的 body 内的函数,应加 const 的函数(不改变传入参数和数据的函数)都应该加上构造函数在传参时,尽量使用参数化列表方式进行传递问题:什么情况下可以 pass by reference只要传入的参数的值不发生改变,就可以 pass by reference修改调用者的变量。

2024-06-21 21:14:26 1214

原创 计算机系统的主要概念

进程是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。而并发运行,则是说一个进程的指令和另一个进程的指令是交错执行的。在大多数系统中,需要运行的进程数是多于可以运行它们的 CPU 个数的。传统系统在一个时刻只能执行一个程序,而先进的多核处理器同时能够执行多个程序。无论是在单核还是多核系统中,一个 CPU 看上去都像是在并发地执行多个进程,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换。

2024-06-14 22:26:02 949

原创 Ollama+Open WebUI本地部署Llama3 8b(附踩坑细节)

open-webui 是一款可扩展的、功能丰富的用户友好型自托管 Web 界面,旨在完全离线运行。此安装方法使用将 Open WebUI 与 Ollama 捆绑在一起的单个容器映像,从而允许通过单个命令进行简化设置。下载完之后默认安装在C盘,安装在C盘麻烦最少可以直接运行,也可以通过软链接保存到其他盘,但可能会出现一系列问题。到这里 docker desktop 的配置就大功告成了,可以开始下载 open-webui 容器了。添加代理,这样本地找不到的容器会自动到网上去找,添加后点 Apply。

2024-06-14 21:39:52 5904 6

原创 STL - 常用算法

学习目标:算法简介:功能描述:函数原型:// 遍历算法 遍历容器元素// beg 开始迭代器// end 结束迭代器// _func 函数或者函数对象5.1.2. transform功能描述:函数原型://beg1 源容器开始迭代器//end1 源容器结束迭代器//beg2 目标容器开始迭代器//_func 函数或者函数对象5.2. 常用查找算法学习目标:算法简介:功能描述:函数原型:// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置// beg 开始迭代器// end

2024-06-13 20:42:15 584

原创 STL - 函数对象

【代码】STL - 函数对象。

2024-06-13 20:40:44 426

原创 STL-常用容器

(First In Last Out, FILO)的数据结构,只有一个出口,栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。List有一个重要的性质,插入和删除操作都不会造成原有list迭代器的失效,这在vector是不成立的。//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。//删除pos迭代器所指的元素,返回下一个元素的迭代器。//删除pos迭代器所指的元素,返回下一个元素的迭代器。

2024-06-13 20:18:40 1339

原创 使用Git进行代码版本管理

Remote(远程仓库)这是存储在远程服务器上的代码库,通常用来与团队成员共享代码。远程仓库包含了所有提交的历史记录。操作示例:git push(将本地仓库的更改推送到远程仓库),git pull(从远程仓库拉取更新到本地仓库)。Repository(本地仓库)这是存储在本地计算机上的代码库,包含项目的所有历史提交记录。它是一个完整的版本库副本。操作示例:git commit(将工作区中的更改提交到本地仓库),git checkout(切换到某个特定的提交或分支)。

2024-06-12 15:00:59 1022

原创 排序复选制

在候选人超过两名的情况下,选民在选票上按喜好排列其支持的候选者。计票时,首先依照选票上的第一选择来计算候选人的得票,得票最少的候选人将被淘汰,然后将其得票依第二选择重新分配给其他候选人,按票数再排序后,再将最少票的候选者排除,并将其选票分配给余下的候选人,如此类推,直至有候选人取得过半数选票为止。排序复选制优点是相对于两轮投票制而言,一次即可确保从多位候选人择一选出,不必另行投票。不同于比例代表制,排序复选制使较小政党较难取得议会议席,但同时亦防止大政党像领先者当选般容易取得大多数议席。

2024-06-03 19:20:35 903

原创 VIKOR方法

VIKOR方法是一种多标准决策(MCDM)或多标准决策分析方法。它最初由 Serafim Opricovic 开发,用于解决具有冲突和不可通约(不同单位)标准的决策问题,假设冲突解决可以接受妥协,决策者想要一个最接近理想的解决方案,并根据符合所有既定标准。VIKOR 对备选方案进行排名,并确定最接近理想的名为折衷的解决方案。折衷解决方案的思想是由 Po-Lung Yu 于 1973 年[1]和 Milan Zeleny 在 MCDM 中引入的。[2]

2024-06-03 19:10:50 1297

原创 大规模 Transformer 模型 8 比特矩阵乘

通过实验,我们发现不使用 4 字节 FP32 精度转而使用 2 字节 BF16/FP16 半精度可以获得几乎相同的推理结果,同时模型大小会减半。这促使我们想进一步削减内存,但随着我们使用更低的精度,推理结果的质量也开始急剧下降。为了解决这个问题,我们引入了 8 位量化。仅用四分之一精度,因此模型大小也仅需 1/4!但这次,我们不能简单地丢弃另一半位宽了。基本上讲,量化过程是从一种数据类型“舍入”到另一种数据类型。

2024-05-31 20:52:14 1294

原创 图解 Transformer

Transformer 是在论文 Attention is All You Need 中提出的。它的 TensorFlow 实现是 Tensor2Tensor 软件包的一部分。哈佛大学的 NLP 小组创建了一份指南,用 PyTorch 实现该论文。在这篇文章中,我们将尝试把事情简化一些,并逐一介绍相关概念,希望能让大家更容易理解。

2024-05-31 10:39:37 1020

原创 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 1270

原创 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 775 2

原创 STL初识

vector中存放自定义数据类型,并打印输出//vector容器中存放自定义数据类型public:int m_age;//向容器中添加数据//遍历容器中的数据it!= v.end();it++)//*it(即解引用)得到的是vector中的数据类型,在本例中为Person数据类型// 方式一:cout

2024-04-19 19:56:56 879

原创 C++中的模板

本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用。

2024-04-18 16:38:59 810

原创 C++文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化保存在硬盘上C++中对文件操作需要包含头文件ofstreamifstreamfstream。

2024-04-11 16:14:45 411 1

原创 C++中的多态

多态是C++面向对象的三大特性之一多态分为两类:静态多态和动态多态的区别:案例:总结实现动态多态要满足的条件:多态使用条件:区分重写和重载:定义父类内函数为虚函数时,会创建一个虚函数指针,指向一个虚函数表,在表中保存虚函数的函数入口地址,此时若子类继承该父类,子类中也会复制一份同样的虚函数指针和虚函数表,如下图所示:当子类重写父类的虚函数时,子类虚函数表中的内容会被替换成子类的虚函数地址,如下图所示:示例:3. 多态案例一:计算器类案例描述:分别用普通写法和多态技术,设计实现两个操作数进行运

2024-04-11 14:30:04 900 1

原创 C++中的继承

继承的好处:可以减少重复的代码A 类称为 子类 或 派生类B 类称为 父类 或 基类。

2024-04-08 21:02:29 826

原创 C++运算符重载

运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

2024-04-08 11:30:13 257

原创 C++中的友元

生活中你的家有客厅(Public),有卧室(Private)客厅所有的客人都可以进入,但你的卧室是私有的,只有你能进去但是,你也可以允许你最好的朋友进去在C++程序中,有些私有属性,也想让类外特殊的一些函数或类进行访问,就需要用到“友元”技术友元的目的就是让一个函数或者类,能够访问另一个类中的私有成员友元的关键字为:friend友元的三种实现方式:全局函数做友元类做友元成员函数做友元。

2024-04-08 11:28:48 214

原创 C++对象模型和this指针

在C++中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象。

2024-04-08 11:27:30 164

原创 C++中对象的初始化和清理

生活中我们买的电子产品基本都会有出厂设置,在某一天我们不用的时候也会删除自己的数据防止信息泄漏C++中面向对象的思想源自于生活,每个对象都有自己的初始设置以及对象销毁之前清理数据的设置。

2024-04-08 11:24:34 1026

原创 C++中的封装

circle.hcircle.hC++面向对象的三大特性为:封装 | 继承 | 多态C++认为万事万物皆为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名/身高/年龄/体重......,行为有走/跑/跳/吃饭/唱歌......车也可以作为对象,属性有轮胎/方向盘/车灯......,行为有载人/放音乐......具有相同性质的对象,我们可以抽象成类,人属于一类,车也属于一类。

2024-04-08 11:17:43 234

原创 C++中的引用

结论:C++推荐使用引用技术,因为语法方便,引用的本质是指针常量,但是所有的指针操作编译器都帮我们做了。引用:就是给变量起“外号”(别名),原变量和“外号”变量指向同一个内存空间。在函数形参列表中,可以加const修饰形参,防止形参改变实参。作用:函数传参时,可以利用引用的技术让形参修饰实参。本质:引用的本质是在C++内部实现一个指针常量。引用的语法:数据类型 &别名 = 原名。作用:引用是可以作为函数的返回值存在的。作用:用来修饰形参,防止误操作。注意:不要返回局部变量的引用。用法:函数的调用作为左值。

2024-04-08 11:10:22 368

原创 C++函数提高

作用:在C++中,可以使用相同的函数名,提高复用性同在一个作用域下函数名相同函数参数类型不同或个数不同或顺序不同注意:函数的返回值不可以作为函数重载的条件//函数重载// 函数重载需要满足的条件:// 1.同在一个作用域下// 2.函数名相同// 3.函数参数 类型不同 或 个数不同 或 顺序不同cout << "func 的调用." << endl;//函数参数个数不同cout << "func(int a) 的调用!" << endl;//函数参数类型不同。

2024-04-08 11:09:34 101

原创 C++编程——内存分区模型

局部变量是存储在函数调用栈上的,这意味着当函数执行完毕并返回后,局部变量的内存空间将被释放回操作系统,并可能被后续的函数调用或其他数据覆盖。因此,局部变量的地址在函数外部是无效的,任何尝试访问该地址的操作都是不确定的,通常会导致不稳定的行为或程序崩溃。使用全局变量或静态变量:这些变量的生命周期覆盖了程序的整个运行时期,因此返回它们的地址是安全的。返回值:如果函数的目的只是要返回某种计算的结果,最简单的办法可能就是直接返回计算结果的值,而不是返回指向该结果的指针或引用。在程序编译后,生成exe可执行程序。

2024-04-08 11:03:44 705

原创 C/C++代码变为可执行文件的Toolchain

源文件(.c/.cpp) → 预处理(展开头文件,将对应的宏进行替换,把注释去掉)得到扩展源代码文件 → 编译器(gcc/g++)进行编译得到汇编文件(.s) → 汇编器进一步处理得到二进制文件(.obj/.o) → 链接器(将二进制文件进行链接)得到一个打包好的可执行文件。结果:生成目标文件(Object File),通常是.o(在Unix/Linux系统)或.obj(在Windows系统)。源文件:程序员编写的源代码文件,通常是.c(C语言)或.cpp(C++语言)文件。4. 汇编(Assembly)

2024-04-08 10:59:59 268

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除