- 博客(14)
- 收藏
- 关注
原创 「Datawhale」RAG技术全栈指南 Task 5
因为菜谱按标题分块后,用户问"宫保鸡丁怎么做"可能只检索到"操作步骤"那一块,缺了食材信息就没法完整回答。但如果直接用整个文档做检索,又会因为"用量配比"这种细节在整个文档中占比太小而检索不到。两种检索各有所长:向量检索理解语义,能把"简单易做的菜"匹配到标记为"简单"的菜谱;BM25 精确匹配关键词,搜"宫保鸡丁"就能直接命中。RRF 公式其实很简单:对每个文档,把它在两个检索结果中的排名取倒数再加起来,最后按总分排序。比如用户就说"做菜",系统会重写成"简单易做的家常菜谱",提高检索效果。
2026-01-31 22:52:23
404
原创 「Datawhale」RAG技术全栈指南 Task 3
向量嵌入与检索技术概述 向量嵌入(embedding)是将高维数据转换为低维稠密向量的技术,其核心在于使语义相似对象在向量空间中距离更近。衡量embedding质量的标准是相近词向量相似度是否更高。 相似度度量方法选择: 余弦相似度:适合文本检索、聚类/去重等场景 点积:L2归一化后等同于余弦相似度 欧式距离:适用于图像特征、度量学习等场景 向量检索技术: HNSW:多层近邻图结构,适合高召回+低延迟场景 IVF:聚类分桶方法,适合超大规模数据 应用实践: LlamaIndex存储结构包括docstore、
2026-01-23 21:56:44
646
原创 「Datawhale」RAG技术全栈指南 Task 2
本文介绍了文档处理中的两个关键环节:数据加载和文本分块。数据加载部分详细说明了如何将各种格式文档转换为结构化数据,并提供了Unstructured工具的使用示例及常见错误解决方法。文本分块部分阐述了分块的必要性(如模型长度限制)、常见策略(固定大小、递归字符、语义分块等)以及工具应用(Unstructured、LlamaIndex)。文章强调应根据文档特点选择合适分块方式,避免过大分块导致信息模糊或丢失。
2026-01-17 00:49:47
1061
原创 「Datawhale」RAG技术全栈指南 Task 1
摘要:RAG(检索增强生成)技术通过结合参数化与非参数化知识,分为检索和生成两个阶段。检索阶段利用向量数据库精准定位相关文档片段,生成阶段整合上下文进行可控文本生成。相比微调,RAG更适合需要特定领域知识的场景(如医疗/法律),能有效减少幻觉问题。环境配置时需注意conda渠道初始化问题,可通过添加conda-forge解决。实践部分包括:1)过滤LangChain输出获取content;2)调整文本分块参数观察效果(小块精确但上下文不足,大块信息杂);3)为LlamaIndex代码添加详细注释,涵盖向量索
2026-01-15 00:25:21
334
原创 【android开发】如何在安卓app内监听系统媒体音量变化
查了很多资料,发现有两种方式可以在app内监听到系统音量变化:一种是通过监听系统的按键事件,重载onKeyUp和onKeyDown来完成,缺点是只能在activity中进行监听,业务在fragment会有点难搞。另外一种就是通过ContentObserver进行监听,我写了一个简单的帮助类,使用的时候只需要换掉listener的类型,在需要音量监听的页面调用register(),生命周期结束时调用unregister()即可。/** * 系统音量监听 * * @property con.
2020-06-14 23:52:38
1326
原创 android opencv开发基础:从零开始实现人眼识别与变色
NDK + opencv 安卓基础应用分享概念NDKNative Development Kit 在android应用中调用c或c++的工具。功能是讲.c/.cpp转换成.so文件,将.so文件和android应用一起打包成apk。用途:在平台之间移植其应用。重复使用现有库,或者提供其自己的库供重复使用。在某些情况下提高性能,特别是像游戏这种计算密集型应用。JNI:Java ...
2020-04-06 21:09:45
1770
7
原创 【Kotlin 学习笔记】kotlin的类、对象和接口基础
接口kotlin中的接口与java8相似,可以包含抽象方法的定义以及非抽象方法的实现,但是不能包含任何状态。kotlin中使用interface关键字而不是class来声明。声明简单接口interface Clickable{ fun click()}所有实现这个接口的非抽象类都需要提供这个方法的一个实现。实现该简单接口class Button : Click...
2019-08-16 17:29:46
332
原创 【android 读源码】MultiTypeAdapter使用及源码解析
前言在一个app里,如果对不同样式的recycleview都使用一个新的adapter,不仅代码繁琐项目臃肿,而且维护成本太高了。最近搭建新项目,尝试使用了multiTypeAdapter。本篇文章来简单写一下multiTypeAdapter的用法和源码结构。MultiTypeAdapter简介源码地址:https://github.com/drakeet/MultiTypeMul...
2019-08-13 19:28:42
1536
原创 【Android开发】mac Android Studio 从安装配置到真机编译
仅以这篇博客纪念我为了在mac上装个as所浪费的一天半的时间。Android Studio 安装步骤1、下载安装android studio2、安装SDK3、配置adb,开始真机编译调试。(如果不配置adb,手机只能安装release包,不能安装debug包和进行调试)1、Android Studio安装网站:https://developer.android....
2019-07-16 16:26:09
482
原创 win10+cuda9.2+tensorflow-gpu1.8.0安装记录
今天体验了一下从零开始给新电脑配环境,作为能遇到奇怪bug体质的人欲哭无泪。记录一下安装流程,以便以后使用。 第一步:安装anaconda 安装网址:https://www.anaconda.com/download/ 选择python3.6版本64位下载,下载后一路默认,到这一步时,记得勾选第一项,将anaconda自动加入环境变量中。 ...
2018-08-21 18:48:03
2455
原创 解决【VirtualBox】报错:不能为虚拟机xxx打开一个新任务
之前打开virtualbox都是好用的,一段时间没用,今天打开发现报了一个很奇怪的错:(错误信息一样,我忘记截图了qaq)百度的方法都试过一遍:1、检查硬件虚拟化是否开启2、检查磁盘的地址能否被正确访问以上思路都不对,后来突然想起来自己在电脑上装过docker,一查果然是他们两个发生冲突。Docker使用的Hype-V会导致Virtualbox失效。解决办法:...
2018-07-04 18:36:21
20950
8
原创 Julius语音识别使用(一)——toolkitDemo配置与运行
Julius项目地址:https://github.com/julius-speech/julius最近在写一个日语语音识别的项目,Julius相关资料太少,在此记录一下自己在运行配置时遇到的各种问题。一、Julius框架简介 Julius是日本京都大学和日本IPA(Information-tech-nology Promotion Agency)联合开发的一个实用高效双通道的大词汇连续语音识别引...
2018-04-03 17:05:42
5623
2
原创 使用FragmentTransaction管理fragment时,对activity控件进行控制的方法
@Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); if (hidden){ toolBar.setVisibility(View.GONE); } else{
2018-01-26 12:00:01
602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅