- 博客(84)
- 资源 (2)
- 收藏
- 关注
原创 LLM应用实战: 文档问答系统Kotaemon-1. 简介及部署实践
本篇主要是Kotaemon的简介信息,涉及到主要特点,与传统文档RAG的区别,如何部署、以及效果演示
2024-09-18 08:49:54 920
原创 LLM应用实战:当图谱问答(KBQA)集成大模型(三)
本文主要是针对KBQA方案基于LLM实现存在的问题进行优化,主要涉及到响应时间提升优化以及多轮对话效果优化,提供了具体的优化方案以及相应的prompt。
2024-06-12 12:09:38 993
原创 LLM实战:当网页爬虫集成gpt3.5
本文主要是通过Scrapegraph-ai集成gpt3.5实现一个简单的网页爬取并解析的demo应用,其中涉及到gpt3.5免费申请,Scrapegraph-ai底层原理简介,demo应用源码等。
2024-05-20 20:43:23 1271
原创 LLM实战:LLM微调加速神器-Unsloth + Qwen1.5
本文主要是使用unsloth框架针对Qwen1.5的高效微调实验,提供了详细的对比代码以及不同维度的对比分析结果。
2024-05-16 20:55:58 1449
原创 LLM实战:LLM微调加速神器-Unsloth + LLama3
本文主要是使用unsloth框架针对llama3的高效微调实验,提供了详细的对比代码以及不同维度的对比分析结果。
2024-05-13 22:02:20 1673
原创 LLM优化:开源星火13B显卡及内存占用优化
本文主要是针对开源星火13B的显存及内存占用过大的一个代码优化。核心思想是使用CPU预加载模型,再转换至GPU。
2024-04-28 16:37:23 1119
原创 LLM应用实战:当KBQA集成LLM(二)
本文主要是针对KBQA方案基于LLM实现存在的问题进行优化,主要涉及到图谱存储至Es,且支持Es的向量检索,还有解决了一部分基于属性值倒查实体的场景,且效果相对提升。
2024-04-25 20:56:30 1171 3
原创 LLM面面观之Prefix LM vs Causal LM
前缀语言模型可以根据给定的前缀生成后续的文本,而因果语言模型只能根据之前的文本生成后续的文本。
2023-11-29 14:29:36 1736
原创 Meta AI新发布的超大规模语言模型-OPT-175B
Meta AI在2022年5月3日新发布的OPT-175B模型,该模型是现阶段第一个模型参数超过千亿级别的模型,其次该模型与GPT-3相比,更加开放及便于访问。具体开放性表现在如下几个方面:1.论文: 提供了某些能力是可能的存在证明,并揭示可以建立在此基础上的一般思想2.API访问:允许研究人员探索和评估现有基础模型的能力(例如,推理)和局限性(例如,偏差)3. 模型权重:允许研究人员逐步改进现有模型,开发更深入的可解释技术和更有效的微调方法4. 训练数据:让研究人员更好地理解训练数..
2022-05-04 11:37:20 1847
转载 12个进程管理命令介绍
转自https://linux.cn/article-5557-1.html执行中的程序在称作进程。当程序以可执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源、内存、安全属性和与之相关的状态。可以有多个进程关联到同一个程序,并同时执行不会互相干扰。操作系统会有效地管理和追踪所有运行着的进程。为了管理这些进程,用户应该能够:查看所有运行中的进程查看进程消耗资源
2015-06-06 10:25:40 574
原创 Linux学习笔记(十四)进程
进程是如何工作的:当系统启动的时候,内核先把一些自己的程序初始化为进程,然后运行一个叫做init的程序。init再依次运行一系列的称为init脚本的shell脚本(位于/etc),它们可以启动所有的系统服务。其中许多系统服务以守护(daemon)程序的形式实现,守护程序仅在后台运行,没有任何用户接口。这样,即使我们没有登录系统,至少系统也在忙于执行一些例行事务。内核维护每个进程的信息,以此
2014-09-24 11:44:10 683
转载 CentOS6.4安装mplayer
本文转自:http://blog.sina.com.cn/s/blog_94b802c70101j4np.html
2014-09-10 09:50:41 618
转载 Java中的StringTokenizer类的使用方法
本文转自:StringTokenizer是字符串分隔解析类型,属于:java.util包。1.StringTokenizer的构造函数StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。StringTok
2014-09-09 20:19:17 476
转载 java.util.Properties类 学习笔记
本文转自:java.util.Properties类 学习笔记 学习目标: 1、认识properties文件,理解其含义,会正确创建properties文件。2、会使用java.util.Properties类来操作properties文件。3、掌握相对路径,能正确书写一个properties文件的相对路径。 一、认识pr
2014-09-09 19:53:58 464
转载 JUnit4 详解
JUnit4概述 JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作
2014-09-09 17:27:29 592
转载 CentOS下安装Eclipse
本文转自:http://www.centoscn.com/image-text/install/2014/0507/2924.html
2014-09-07 13:33:00 1497
转载 CentOS下安装及配置JAVA
本文转自:一般情况下,我们都要将linux自带的OPENJDK卸载掉,然后安装SUN的JDK。 首先查看Linux自带的JDK是否已安装。输入如下命令,查看已经安装的JAVA版本信息。 Linux代码 java -version 输入如下命令,查看JDK的信息。Linux代码 rpm -qa|grep jav
2014-09-07 13:02:37 502
转载 双向链表的C实现
本文转自:http://blog.csdn.net/qinxd8523/article/details/6087897双向链表需要定义一个结构体,结构体有3个属性typedef struct __Node{ int data; 数据 struct __Node *pre; 指向前一个结点指针 struct __Node *next;
2014-09-02 10:09:39 451
原创 算法导论之九链表
1. 与数组不同,链表的顺序是由各个对象里的指针决定的。双向链表L的每一个元素都是一个对象,每个对象有一个关键字key和两个指针next和prev。设x为链表的一个元素,x.next指向的它在链表中的后继元素,x.prev指向它的前驱元素。如果x.prev=NIL,则元素x是链表的头,若x.next=NIL,则x是链表的尾。若L.head=NIL,则链表为空。2. 循环链表
2014-09-01 22:40:02 583
原创 算法导论之八计数排序
1. 定理1:在最坏情况下,任何比较排序算法都需要做 定理2:堆排序和归并排序都是渐近最优的比较排序算法。2. 计数排序的思想是:对每一个输入元素x,确定小于x的个数,前提条件时假设n个输入元素中的每一个都是在0到k区间内的一个整数。3. 计数排序算法的输入是数组A[1..n],Alength=n,数组B[1..n]存放排序的输出,C[0..k
2014-09-01 22:39:14 586
原创 算法导论之七快速排序
1. 快速排序也采用了分治思想,下面是对子数组A[p..r]进行快速排序的三步分治过程:分解:数组A[p..r]被划分为两个子数组(可能为空)A[p..q-1]和A[q+1..r],使得A[p..q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1..r]中的每一个元素。其中,计算下标q也是划分过程的一部分。解决:通过递归调用快速排序,对子数组A[
2014-09-01 22:37:47 600
原创 算法导论之五堆排序
堆排序的时间复杂度是,与插入排序相似,堆也具有空间原址性,即任何时候都只需要常数个额外的元素空间存储临时数据。1. 堆简介:(1)堆是一个数组,表示堆的数组A包括两个属性:A.length表示数组元素的个数,A.heap-size表示有多少个堆元素存储在该数组中。给定一结点的下标i,可以得到其父结点、左孩子和右孩子的下标:PARENT(i)return
2014-09-01 22:34:58 673
原创 算法导论之六栈与队列
1.在栈中,被删除的是最近插入的元素,其实现的是后进先出(LIFO)策略,在队列中,删除的是在集合中存在时间最长的那个元素,其实现的是先进先出(FIFO)策略。2.可用一个数组来实现最多容纳个元素的栈,其中有一个属性,指向最新插入的元素,如果试图对一个空栈执行弹出操作,则称栈下溢,如果超过了,则称栈上溢。3.几种栈操作的伪代码: STACK_EMPTY(S)
2014-09-01 22:34:17 543
原创 算法导论之四矩阵乘法的Strassen算法
实现Strassen矩阵相乘的C++代码如下:#include using namespace std;const int N=4; //常量N用来定义矩阵的大小void main(){ //函数声明部分 voidstrassen(int n,float A[][N],float B[][N],float C[][N]);
2014-09-01 22:31:56 1345
原创 算法导论之三最大子数组问题
最大子数组是数组A的和最大的非空连续子数组。只有当数组中包含负数时,最大子数组问题才有意义。注意将实际问题转化为数学问题!使用分治策略的求解方法:为寻找A[low..high]的最大子数组,其中央位置记为mid,然后考虑求解两个子数组A[low..mid]和A[mid+1..high]。A[low..high]的任何子数组A[i..j]所处的位置必然是以下三种情况之一:1. 完全位于子
2014-09-01 22:30:46 683
原创 算法导论之一插入排序
插入排序,对于少量元素的排序,是一个有效的算法。将其伪代码过程命名为INSERTION-SORT,其中的参数是一个数组A[1..n],包含长度为n的要排序的一个序列。伪代码如下:INSERTION-SORT(A)for j = 2 to A.length key = A[j] // Insert A[j] into thesorted sequence A[1..j -
2014-09-01 22:28:45 566
原创 算法导论之二归并排序法
分治法的思想是将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解。归并排序算法完全遵循分治模式,操作步骤如下:分解:将待排序的n个元素的序列分解为分别具有n/2个元素的两个子序列。解决:使用归并排序递归地排序两个子序列。合并:合并两个已排序的子序列以产生已排序的原序列。“合并”操作中通过调用一个辅助过程MERGE(A
2014-09-01 22:27:28 582
转载 多线程
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond(){ Sleep(6000);
2014-09-01 11:11:50 405
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人