- 博客(156)
- 收藏
- 关注
原创 【LLM】搭建RAG
本节主要是实操内容,将前面三节所学的知识库、model api、langchain组合成一个RAG系统。简单入门了Streamlit框架,尝试发布了自己的第一个RAG应用。本次学习中发现Langchain居然有memory功能,上一节学习语义知识库时候想到了一个方案:将用户历史聊天记录处理成向量录入向量知识库中,在新的一轮对话中,用户输入新信息会先匹配向量数据库中最相似的K组对话。这个idea就是LangChain已经实现的VectorStore-backed Memory功能!!!
2024-04-25 02:16:22 278
原创 【LLM】向量知识库
在此列出一些公开的embeedding_model,Langchain原生支持加载embeedding_model,动手能力强的小伙伴可以根据文档动手实现一个embeedding api.文本嵌入模型 text-embedding-model本节了解了什么是向量、向量的生成、向量的存储和向量的应用,同时对比了向量数据库和常见非向量数据库的区别。动手设计了一个加载text2vec-large-chinese embedding model的api接口,并且将生成的向量录入到向量数据库中。
2024-04-23 04:35:06 699
原创 【LLM】LLM API 开发
主要了解了LLM中的基础知识,包括输入提示词prompt、temperature(模型输出的温度系数,控制输出的随机程度,取值范围是 0~1.0,且不能设置为 0。温度系数越低,输出内容越一致。)以及Prompt Engineering中常用的调优技术,如:写清晰的说明、给LLM充足的思考时间…,只要prompt写得好,LLM回答才会更快返回符合用户的答案。
2024-04-21 02:25:24 936
原创 【LLM】认识LLM
大语言模型(LLM,Large Language Model),也称大型语言模型,是一种旨在理解和生成人类语言的人工智能模型。它们在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。LLM的特点是规模庞大,包含数十亿的参数,帮助它们学习语言数据中的复杂模式。这些模型通常基于深度学习架构,如转化器,这有助于它们在各种NLP任务上取得令人印象深刻的表现。RAG(中文为检索增强生成, Retrieval-Augmented Generation) = 检索技术 + LLM 提示。
2024-04-18 02:59:47 658
原创 【java】java三大特性之继承
Java的继承机制是面向对象编程的重要概念之一,它允许一个类(子类)基于另一个类(父类)来构建,并且可以继承父类的属性和方法。继承层次:继承可以形成层次结构,即一个类可以作为另一个类的子类,而这个子类又可以作为另一个类的父类,以此类推。:继承是实现多态性的基础之一。继承机制是Java编程语言中的核心概念之一,它使得代码的组织和复用变得更加灵活和方便,同时也提供了多态性的支持,使得代码更具有扩展性和可维护性。:有时候,父类提供的方法不能完全满足子类的需求,子类可以通过继承来覆盖父类的方法,以实现特定的行为。
2024-02-18 17:10:49 636 1
原创 【es】解决es报错failed to authenticate user [elastic]
某天使用接口查询es数据时出现报错,没有返回数据。想到是测试环境的es因为没内存又挂了,于是上服务器重启服务。但是重启后等待一段时间再次查询es,还是同样报错,显示连接拒接。于是lsof -i:9200查看端口,端口没起来。查看日志,显示。
2024-02-06 11:21:12 1668
原创 【强化学习】day1 强化学习基础、马尔可夫决策过程、表格型方法
强化学习是一种重要的机器学习方法,它使得智能体能够在环境中做出决策以达成特定目标。在这篇博客中,我们将深入探讨强化学习的三个关键领域:基础知识、马尔可夫决策过程和表格型方法。
2023-11-16 02:06:11 614
原创 【diffusion model】扩散模型入门
写在最前,参加DataWhale 10月组队学习。参考资料:HuggingFace 开源diffusion-models-class2.2 notebook登录huggingface账号建议创建可写token,后续如果要上传模型的话有write权限https://huggingface.co/settings/tokens这两个命令用于在Jupyter Notebook中运行Shell命令,并将输出捕获(capture)起来,而不直接在Notebook中显示输出。%%capture是一个Ju
2023-10-20 23:28:59 793
原创 【leetcode】 数组双指针和滑动窗口
数组双指针(Two-Pointer)是一种常用的算法技巧,用于处理数组或链表等数据结构中的问题。它的核心思想是使用两个指针来遍历数组,从而在数组中执行某种操作,如查找、修改、反转等。双指针分为「对撞指针」、「快慢指针」、「分离双指针」。
2023-09-25 00:22:10 591
原创 【SLAM】 前端-视觉里程计之相对位姿估计
在前端视觉里程计中,相对位姿估计是指通过视觉传感器(例如相机)捕捉的图像信息,来估计相机相对于先前位置的位姿(位置和姿态)变化。:使用特征点匹配的信息,通过不同的算法(例如,本质矩阵估计、基本矩阵估计、光流法等)来估计相机的位移和旋转,即相对位姿的变化。:在估计过程中,可能存在误差累积的问题,因此需要引入环回检测和误差修正机制,以提高估计的准确性。:相对位姿估计通常与地图构建相结合,以便构建环境的地图或场景,同时估计相机的位姿。:通过积累相对位姿的估计,可以跟踪相机或机器人在整个运动过程中的轨迹。
2023-09-23 00:16:41 626
原创 【leetcode】 数组二分查找
二分查找(Binary Search),也称为折半查找,是一种在有序数组中查找特定元素的高效算法。它的基本思想是不断将待查找区间缩小一半,直到找到目标元素或确定目标元素不在数组中为止。这种查找方法比线性查找效率高,因为它可以快速排除掉大部分不可能包含目标元素的区间,从而减少了比较次数。二分查找的工作原理如下:首先,确定查找范围的左边界left和右边界right,通常初始时left设为数组的起始索引,right设为数组的结束索引。计算中间元素的索引mid,可以使用计算。
2023-09-22 01:39:15 400
原创 【SLAM】前端-视觉里程计之对极几何
单应矩阵表示了两个平面之间的映射关系。本质矩阵用于将图像上的特征点从一个相机的坐标系映射到另一个相机的坐标系,从而使得双目视觉和立体视觉中的匹配和深度估计问题得以解决。在这个上下文中,我们关心的是非零解,因为零解表示两个相机之间的运动是平凡的(没有相对运动)。但是一般会省略这个焦距,让其变为1(大多说这里是使用齐次坐标,个人感觉这说不通,齐次坐标是为了矩阵运算的维度相等,加的一个1,但这个是直接替换。:根据三角形的相似性原理,如果两个三角形的一个角相等,并且它们的对应边成比例,那么这两个三角形是相似的。
2023-09-21 02:43:25 246
原创 【Linux】解决`arguments must be process or job IDs`报错
(3)vi filename打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。(2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式。(3)vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。查看脚本文件是dos格式还是unix格式的几种办法。
2023-09-19 22:00:00 1723
原创 【leetcode】数组排序
快速排序是一种分治算法,它选择一个基准元素,将数组分成小于基准和大于基准的两个子数组,然后递归地对子数组进行排序。时间复杂度为O(n log n)。归并排序也是一种分治算法,它将数组分成两个子数组,分别对子数组进行排序,然后将它们合并为一个有序数组。计数排序适用于非负整数数组,它统计每个元素的出现次数,然后按顺序构建排序后的数组。桶排序将元素分散到若干个桶中,然后对每个桶内的元素进行排序,最后将桶中的元素按顺序合并。插入排序将数组分为已排序和未排序两部分,然后逐个将未排序元素插入已排序部分的正确位置。
2023-09-19 01:45:11 229
原创 【SLAM】 前端-视觉里程计之特征点
根据应用的需求,可以自己实现特征点的选择和过滤算法,以确保它们在图像中均匀分布,并且适合特定任务。需要注意的是,改善特征点的均匀分布可能需要一些实验和参数调整,以适应不同的图像和应用场景。最佳方法取决于您的具体需求和数据集。
2023-09-19 01:33:30 333
原创 【SLAM】视觉SLAM简介
在SLAM(Simultaneous Localization and Mapping)中,中间接法(indirect methods)和直接法(direct methods)是两种不同的方法,用于估计机器或传感器的运动和构建环境地图。它们的主要区别在于如何处理传感器数据以估计位姿(位置和方向)和地图。中间接法(Indirect Methods):中间接法通过首先提取特征点或关键点(例如角点或边缘)来处理传感器数据。这些特征点通常代表环境中的显著性特征,如窗户、门、墙角等。
2023-09-16 21:58:50 486
原创 【SLAM】三维空间刚体运动
task03 本次学习了三维刚体运动和旋转的参数化。三维空间刚体的运动,简单来说由平移与旋转构成。平移指两个点之间的位移,三维空间中其自由度为三。旋转则是绕着三个轴各种旋转的角度,自由度也为三。平移加旋转可构成一次变换,这个变换称为欧式变换。
2023-09-15 02:00:30 56
原创 【SLAM】坐标系变换与外参标定
突然发现学习文档有下面这句话:学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。——法布尔task02从二维坐标系开始推导坐标系变换参数,进而加入平移,加入Z轴拓展到三维坐标系的坐标转换方程。同时了解到相机外参对SLAM系统的作用,清楚外参标定常用到的软件。
2023-09-13 02:42:32 122
原创 【科研论文配图绘制】task8 总结与回顾
task8 总结与回顾,这次组队学习大致掌握了常见python绘图工具包的使用,整体上和matlab的语法类似,也是用画布形式控制元素的绘制。印象深刻的是seaborn的使用,在之前做波士顿房价预测时候先接触了seaborn绘制的散点图、直方图和核函数图。看了《科研论文配图绘制》一书后有了更直观的了解,明白解题时通过工具包绘制的图能更容易分析变量之间的关系。
2023-09-05 00:25:44 381
原创 【科研论文配图绘制】task7密度图绘制
密度图(Density Plot)是一种用于可视化数据分布的图表类型。它通过在数据中创建平滑的概率密度曲线来显示数据的分布情况。数据分布展示: 密度图可用于显示数据集的分布情况,特别是在数据量较大时,它可以提供比直方图更平滑的视觉呈现。多变量关系: 在多维数据集中,可以创建多个密度图来观察不同变量之间的关系。这些图可以叠加或组合在一起,以更好地理解多个变量之间的相互关系。比较分布: 可以使用密度图来比较不同组或数据集的分布情况,从而帮助识别差异和相似性。异常检测: 密度图可以用于检测异常值。
2023-09-03 01:39:01 852
原创 【科研论文配图绘制】task6直方图绘制
直方图是一种用于表示数据分布情况的图形工具,通过将数据分成不同的区间(也称为“箱子”或“bin”),并计算落入每个区间的数据点数量或频数,从而展示数据的分布模式。直方图的横轴表示数据的范围,纵轴表示数据点的频数或相对频率。绘制直方图的过程通常涉及将数据分组并计算每个区间的频数,然后将这些频数表示为柱状图。直方图的外观会受到区间宽度和数量的影响,因此合适的区间选择对于准确地反映数据分布至关重要。选择适当的区间数量和宽度: 选择合适的区间数量和宽度对于正确显示数据分布至关重要。
2023-08-29 22:21:43 380
原创 【科研论文配图绘制】task5 SciencePlots绘图包入门
SciencePlots作为一个专门用于科研论文绘图的第三方拓展工具包,提供了主流英文科技 期刊(如 Nature、Science 和 IEEE 等)的 Matplotlib 图样式(Matplotlib Styles)。task5主要学习了SciencePlots拓展包的出图样式,掌握SciencePlots的安装及具体使用。
2023-08-29 00:12:34 172
原创 【科研论文配图绘制】task4 Proplot绘图包入门
task4主要学习了Proplot绘图包的函数,掌握Proplot和matplotlib的异同点,了解通过Proplot绘图的特点。
2023-08-27 00:25:28 78
原创 【科研论文配图绘制】task3 Seaborn绘图包入门
task3 主要掌握Seaborn绘图包的使用,通过Seaborn的绘图函数会指出不同的绘图主题和风格。
2023-08-25 00:29:36 71
原创 【科研论文配图绘制】task2 Matplotlib绘图包入门
task2主要了解Matplotlib工具包的使用,掌握matplotlib中基本的图形元素名称,图层顺序和坐标系。多子图绘制方法和常见的绘图函数。
2023-08-22 23:19:31 56
原创 【Django】 Task5 DefaultRouter路由组件和自定义函数
Task5 主要了解了DefaultRouter路由组件,Django REST framework(DRF)是一个强大且灵活的 Django 插件,用于开发 Web API。并且掌握通过@action进行自定义函数。
2023-08-22 00:27:26 700
原创 【Django】Task4 序列化及其高级使用、ModelViewSet
Task4主要了解序列化及掌握其高级使用,了解ModelViewSet的作用,ModelViewSet 是 Django REST framework(DRF)中的一个视图集类,用于快速创建处理模型数据的 API 视图。
2023-08-21 01:09:08 1251 1
原创 【Django】Task3 外键的使用、Queryset和Instance
数据表外键是数据库设计中的一个重要概念,它用于建立两个数据表之间的关系。外键定义了一个字段,该字段与另一个表的主键字段相关联,从而在逻辑上将两个表连接起来。外键用于表示表之间的关系,通常用于实现一对多(多对一)和多对多关系。建立关系: 外键允许您在一个表中建立到另一个表的关系。这种关系通常表示一个表的记录与另一个表的记录之间的连接,如订单和客户、学生和课程等。参照完整性: 外键确保了数据的参照完整性。这意味着在建立外键关系后,数据库会强制执行数据的一致性,确保只有在相关表中存在的值才能插入到关联表中。
2023-08-19 02:54:29 745
原创 【Django】Task2 了解models和使用admin后台
在 Django 中,models 是必不可少的组成部分之一。models 是 Django ORM(对象关系映射)的核心部分,它允许您在 Python 代码中定义数据模型,这些模型将映射到数据库表格。通过定义数据模型,您可以轻松地在代码中创建、查询和管理数据库表格,而无需编写原始的 SQL 查询语句。数据持久化: 在许多 Web 应用程序中,需要将数据持久化到数据库中以进行长期存储。models 允许您在 Python 代码中定义数据模型,然后通过迁移操作将这些模型映射到数据库表格。
2023-08-17 00:51:44 589
原创 【Django】Task1安装python环境及运行项目
写在最前8月份Datawhale组队学习,在这个群除我佬的时代,写一下blog记录学习过程。参考资源:学习项目github:https://github.com/Joe-2002/sweettalk-django4.2队长博客:https://blog.plutos.org.cn/posts/fc39ad07.htmlgithub地址:https://github.com/Joe-2002/sweettalk-django4.2之前已经在本机装过anaconda环境了,具体教程可以移步博客【ML入门】
2023-08-16 01:32:30 1212
原创 【亲测有效】idea部署jrebel插件
JRebel是一套JavaEE开发工具。Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。
2023-05-26 20:00:00 1074
原创 线程池的使用
在使用多线程时候,都会考虑创建线程池进行线程复用。Java线程池是一种用于管理和重用线程的机制。它通过维护一组线程,并在需要时分配这些线程来执行任务,从而提高程序的性能和效率。在Java中,线程池由java.util.concurrent.ExecutorService接口表示。ExecutorService提供了一组方法,用于提交任务并管理线程池的行为。常见的实现类是ThreadPoolExecutor。要创建一个线程池,可以使用Executors类中的静态工厂方法。
2023-05-16 19:20:01 3575
原创 【解决】docker启动kibana报错`search_phase_execution_exception`
可以看到kibana的相关索引是红的,猜想是kibana没有正常关闭导致。第一个想到的方向是kibana配置的es host不对,观察配置文件发现无误,继续以下排查。服务器挂了,所有服务需要重启。在重启kibana时候出现报错。发现节点变红,继续通过命令排查变红的索引是什么。通过docker命令观察启动日志。重启kibana,正常启动。通过命令观察es节点的状况。重启kibana命令。
2023-05-04 20:00:00 962 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人