Llama.cpp本地CPU部署大模型

机器是2021年M1的MacBook Pro,斗胆一试。 引言 master分支的commit记录:2075a66 分别部署了Llama-2-7B-Chat,Llama-2-13B-Chat, Llama-2-70B-Chat三款大模型,部署方式完全一致,我拿7B模型举例。 ...

Created: 2024-06-15 · Updated: 2024-06-15 · 2 分钟 · Martin

多智能体系统(COMP310)

Intelligent Agents Agents are objects with attitude, which are autonomous, smart, active. Properties in Environment (环境性质描述) Fully observable / partially observable Deterministic / non-deterministic Static / dynamic Discrete / continuous Episodic / non-episodic Real time Social ability (社交能力) The ability to interact with other agents via cooperation, coordination, and negotiation. Abstract Architectures for Agents (代理的抽象架构) 表示方法 ...

Created: 2024-05-05 · Updated: 2024-05-05 · 2 分钟 · Martin

云计算(COMP315)

虚拟机 借助虚拟化技术,用户能以单个物理硬件系统为基础创建多个模拟环境或专用资源。“Hypervisor” (虚拟机监控程序)的软件可直接连接到硬件,从而将一个系统划分为不同的、单独安全环境,即虚拟机(VM)。 ...

Created: 2024-02-26 · Updated: 2024-02-26 · 26 分钟 · Martin

高性能计算(COMP328)

Week1 高性能计算的目标 对于有限的数据集,最小化解决时间 对于无限的数据集,最大化吞吐量(throughput) 有能力解决一些对于可用的内存来说太大的问题 最大化资源利用 - CPU/内存/网络/加速器(GPU)/电力 一些常用术语 Parallelism vs Concurrency Parallelism: 多个进程同时且独立执行 Concurrency: 多个进程同时执行且共享至少一种资源 Processor, Die & Socket Processor: 执行程序指令的电路。计算机系统中可能有许多处理器,例如图形处理器、视频处理器。在没有限定的情况下,通常指中央处理器 CPU: 计算机系统中主要的通用处理器(之一),而非特定用途(如视频解压缩)。 Die: 指硅晶片,包含处理器(通常是中央处理器)以及接口所需的其他组件(如内存控制器)。 Socket: 处理器和计算机主板之间的物理接口,它定义了处理器与主板连接的方式。不同的处理器和主板可能需要不同类型的Socket。 Core & Thread Core: 核心是CPU内部的一个物理处理单元,能够独立执行计算任务。每个核心可以独立处理指令和执行计算操作。 Thread: 线程是操作系统能够进行计算调度的最小单位。它是程序执行流的一个单一顺序,可以被操作系统调度(启动、停止、挂起等)。 核心和线程共同定义了处理器的处理能力 Node 指一个服务器节点(一台计算机) Cluster/Supercomputer 成百上千个节点组成集群 Single precision floating-point 通常占用32位(4字节)的存储空间,C语言中的float32类型,1符号位,8指数位,23有效数字位 Double precision floating-point 通常占用64位(8字节)的存储空间,C语言中的float64类型,1符号位,11指数位,52有效数字位 Flop Floating-point operations per second 如何量化/评估性能 公式如下👇 ...

Created: 2024-02-03 · Updated: 2024-02-03 · 21 分钟 · Martin

前端刷题笔记

2023年5月7日 为同一个文件添加多种文件格式 <video controls> <source src="html_5.mp4" type="video/mp4"> <source src="html_5.ogv" type="video/ogg"> Your browser does not support the video tag. </video> 为什么要添加多种格式? 解决备份支持和媒体支持 什么是备份支持和媒体支持? 备份支持:提供替代方案,一般是相同的浏览器,版本更老的一代需要这个替代方案。 媒体支持:需要提供多种格式的支持来适应不同的浏览器。 标签 <audio> 与 </audio> 之间插入的内容不是用来解释控件的,而是在浏览器不支持audio标签时显示的文字。 当 <video> 标签中包含 controls 属性时,浏览器将自动为视频播放器提供一组默认的控制选项。用户可以根据自己的需求控制视频的播放。 <datalist> 标签与 <input> 标签结合使用,可以为用户提供一个预定义的选项列表。 <input list="fruits" id="fruit" name="fruit"> <datalist id="fruits"> <option value="Apple"> <option value="Banana"> </datalist> 当 <progress> 标签没有设置 max 和 value 属性时,它会显示一个不确定进度的滚动条。在这种情况下,进度条的动画将自动滑动,但无法显示具体的进度值。 <progress value="50" max="100"></progress> DHTML DHTML(Dynamic HTML)是一种将 HTML、CSS、JavaScript 等技术结合起来,以创建动态、交互式网页的技术组合。 DHTML实现了网页从Web服务器下载后无需再经过服务的处理,而在浏览器中直接动态地更新网页的内容、排版样式和动画的功能 DOM元素带有ID属性 唯一性:ID 必须在整个 HTML 文档中是唯一的。如果有多个元素具有相同的 ID,将导致 JavaScript 在访问元素时出现问题,可能导致意外行为。因此,在为元素分配 ID 时,确保不会重复。 样式污染:如果您的 CSS 使用 ID 选择器为元素应用样式,这可能导致样式污染问题。ID 选择器具有较高的优先级,这可能会导致其他 CSS 规则无法覆盖 ID 选择器的样式。要解决这个问题,您可以考虑使用 CSS 类选择器来应用样式,以便更容易地控制和覆盖样式。 JavaScript 性能:当使用 JavaScript 查询具有特定 ID 的元素时,最好使用 document.getElementById() 方法,因为这是最快的查询方式。使用其他查询方法,如 document.querySelector() 或 document.querySelectorAll(),可能会导致较慢的查询性能,尤其是在大型的 DOM 结构中。 与现有代码冲突:在开发大型应用程序或与其他人协作时,如果不注意命名约定和唯一性,给元素分配 ID 可能会导致与现有代码冲突。在这种情况下,可以采用一致的命名规则和确保 ID 唯一性的方法来避免潜在冲突。 2023年5月8日 今天刷了几道react的题,记录一下 ...

Created: 2023-05-07 · Updated: 2023-05-07 · 4 分钟 · Martin

基础数据结构

上星期被算法课考试狠狠拷打,痛思悔过一小时。发现自己学习算法缺乏实际操作,只知理论,操作甚少,导致对理论的理解也十分浅显。 所以从基础数据结构开始,重新系统学习算法,在这里记录学习的过程。 ...

Created: 2023-03-17 · Updated: 2023-03-17 · 3 分钟 · Martin

Canonical coins system

今天上算法课的tutorial,主要是讲贪婪算法。老师在课上提到了canonical coins system,但并没有深入讲解。回来看了一篇论文,整个问题很有意思,写下来记录一下。 ...

Created: 2023-03-09 · Updated: 2023-03-09 · 3 分钟 · Martin

金融市场交易(COMP226)

R语言基础(W1) 基本数据类型 character(string) logical(boolean) numeric(number) factors(categories) factors表示分类,将分类数据存储为整数向量。下面用代码解释 # 创建一个性别的factor > gender <- factor(c("男", "女", "女", "男", "男")) # 显示gender对象的水平(分类) > levels(gender) [1] "女" "男" # 显示gender对象的摘要信息 > summary(gender) 女 男 2 3 # 显示gender对象中每个水平的计数 > table(gender) gender 女 男 2 3 is和as的区别 is.***()函数用于判断一个对象是否属于某个特定的类别,返回一个逻辑值。 as.***()函数则用于将一个对象转换为指定的类别,返回一个转换后的对象。 vector和list的区别 类型: vector是一种简单的数据结构,其中所有元素必须是相同的类型。 list是一种复杂的数据结构,其中每个元素可以是任意类型的对象。 长度: vector必须是一个固定长度,一旦创建就不能更改。 list的长度是可变的,可以随时添加或删除元素。 索引: vector中的元素可以使用整数索引来访问,例如x[1]表示访问x中的第一个元素。 list中的元素可以使用名称或位置索引来访问,例如x[[1]]表示访问x中的第一个元素,x[["name"]]表示访问x中名称为"name"的元素。 函数 给一个函数,写法如下。显然,该函数是计算输入的平均值。 ...

Created: 2023-02-05 · Updated: 2023-02-05 · 27 分钟 · Martin

算法(COMP202)

时间复杂度和online algorithm (W1) 算法分析中我们常用到三个符号:O,Ω(Omega) 和 Θ(Theta) O表示的是渐进上界,它描述了算法在最坏情况下的时间复杂度,表示算法在最坏情况下所需的时间不会超过O的函数。 Ω表示渐进下界,它描述了算法在最好情况下的时间复杂度,表示算法在最好情况下所需的时间不会低于Ω的函数。 Θ,描述了算法的时间复杂度的渐进上界和下界,表示算法的时间复杂度在最好和最坏情况下的增长速度是相同的。 在线算法指的是,算法必须在输入数据不是完全可知的情况下,完成相应的计算并输出计算结果。 ...

Created: 2023-02-05 · Updated: 2023-05-13 · 33 分钟 · Martin

High-level Petri Net(COMP201)

复(预)习过程中遇到Petri net,记录一下 Petri Net是一种系统模型。因为不确定哪个transition会先fire,所以它是非确定性的,通常被用于建立离散分布式系统。 ...

Created: 2023-01-11 · Updated: 2023-01-11 · 1 分钟 · Martin