LLM Hallucination
123456789101112131415161718192021222324mindmap root((幻觉)) 幻觉是什么? 为什么出现幻觉? 如何检测幻觉? (检索增强评估) 数据集 FactualityPrompt 指标 FActScore SAFE FacTool (基于采样的检测) (未知知识的校准) 幻觉是什么?模型输出是捏造的,而不是以所提供的上下文或世界知识为基础的情况。 上下文中幻觉:模型输出应与上下文中的源内容一致。外在幻觉:当模型不知道一个事实时,它应该说不知道。 为什么出现幻觉?预训练数据,过时、丢失或不正确 微调使用的新数据跟预训练数据不相容 如何检测幻觉?检索增强评估基准数据集 FactualityPrompt 幻觉的评估指标: 幻觉...
Tokenizer
Tokenizer在NLP中,tokenizer是一个软件工具或函数,用于将文本字符串分割成更小的单元,这些单元被称为“tokens”。这些tokens可以是单词、标点符号、数字或任何有意义的文本单元,具体取决于tokenizer的设计和目标应用场景。例如,一个简单的空格分隔的tokenizer会将句子分割成单个的单词。 Tokenization是文本预处理的第一步,几乎所有NLP任务都需要这一步骤,包括但不限于机器翻译、情感分析、文本分类、命名实体识别(NER)、问答系统等。 Tokenizer可以根据不同的语言特性、语法结构和任务需求进行定制。例如: 基础分词器:仅仅基于空格或标点符号分割文本。 高级分词器:考虑连字符、缩写、数字和标点符号,甚至能处理复合词。 子词分词器:如Byte Pair Encoding...
Classic NLP
NLP 是一门研究如何使计算机能够理解、处理和生成人类语言的学科。 基本概念: 语言模型:用于对语言的概率进行建模,包括n-gram模型、神经网络语言模型等。 分词:将连续的文本切分成有意义的词语。 词性标注:为文本中的每个词语标注其词性,如名词、动词、形容词等。 命名实体识别:识别文本中的具体实体,如人名、地名、组织机构等。 语义角色标注:对句子中的每个词语进行语义角色的标注,如施事者、受事者等。 基本技术:...
向量
向量的本质从几何角度来看,向量可以表示空间中的一个有向线段,具有大小(长度)和方向两个属性。向量通常用箭头表示,箭头的方向表示向量的方向,箭头的长度表示向量的大小。 从代数角度来看,向量可以表示为具有一定结构的有序数组或元组。例如,一个二维向量可以表示为一个包含两个实数的有序对(x,y),而一个三维向量可以表示为一个包含三个实数的有序三元组(x,y,z)。在代数中,向量可以进行加法和数乘等运算,从而构成向量空间。 向量运算的本质可以从几何和代数两个角度来理解。...
zsh
1sudo pacman -S zsh 1sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 1sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)" 1git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k 1ZSH_THEME="powerlevel10k/powerlevel10k" 123git clone https://github.com/zsh-users/zsh-autosuggestions...
RAG Retrieval Method
RAG Methords1. 知识预处理:知识源即各种数据、文档(json、pdf、txt…),将其分割成块(chunk),使用embedding算法将每个块编码为词向量,将词向量存储起来并建立索引以便快速查找。 1.1 embedding算法通常将高维数据映射到低维空间,以便更好地表示数据的特征使得可以使用语义相似度衡量句子的相似性。 数值相似的embedding在语义上也近似。假设我们有一个序列 $x=[x_1,x_2,…,x_T]$ , 其中$T$ 是序列的长度, $x_t$是序列中的第 $t$ 个元素。我们的目标是学习一个映射 $f$ ,将序列 $x$ 映射为一个固定大小的向量 v,即 $v=f(x)$。 单词的嵌入不是静态的,还取决于单词周围的上下文,因此我们使用BERT,它能够动态的基于上下文计算语义值,还捕捉到文档的深层语义信息:$v=BERT(x)$ 2. 向量存储和查询知识源有不同格式,我们基于不同格式选择存储方式,大致可分为两类: 2.1 文档存储几乎适用于存储所有的文档数据 123456doc_store =...
Unity3D 入门
GameObject在Unity中,GameObject 是场景中所有实体的基类。它为场景中的对象提供了一个通用的结构和一系列的属性和方法。GameObject 本身并不包含任何渲染或物理功能,但它可以包含其他组件,如 MeshRenderer、Collider、Rigidbody 等,这些组件赋予了 GameObject 实际的功能和特性。以下是 GameObject 的一些关键特性和常用的属性和方法: 属性 activeInHierarchy:定义了 GameObject 是否在场景中激活。 activeSelf:表示 GameObject 本身的激活状态,不受父物体的影响。 transform:包含了 GameObject 的位置、旋转和缩放信息。 renderer:用于渲染 GameObject 的网格。 collider:用于处理 GameObject 的碰撞。 rigidbody:如果 GameObject 拥有刚体属性,这个组件会包含相关的物理信息。 方法 Find:在场景中查找具有特定名称的 GameObject。 FindWithTag:根据...
Neo4j
Neo4jNeo4j 是一个高性能的NoSQL图形数据库,它使用图形结构来存储数据,并支持通过Cypher查询语言进行数据查询。 Neo4j特别适合处理复杂的关系数据,如社交网络、推荐系统、知识图谱等。 它提供了一种灵活且强大的数据模型,可以轻松地表示实体和它们之间的关系。 主要特点 图形数据模型:Neo4j使用节点(Node)、关系(Relationship)和属性(Property)来表示数据,这种模型非常适合表示实体之间的关系。 Cypher查询语言:Cypher是一种声明式查询语言,用于在Neo4j中检索数据。它易于学习,并且支持强大的模式匹配。 高性能:Neo4j能够提供快速的数据读写操作,支持大规模的数据集和复杂的查询。 可扩展性:Neo4j支持水平扩展,可以通过增加更多的服务器来提高性能和存储能力。 集成和连接器:Neo4j提供了多种连接器,可以轻松地与其他系统和数据库集成。 开发者友好:Neo4j有丰富的文档、社区支持和开发工具,如Neo4j Bloom、Neo4j Browser等。 安装和设置1docker volume create...
Git FQA
.gitignore不生效如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了 解决方法: git清除本地缓存(改变成未track状态),然后再提交: 1234git rm -r --cached .git add .git commit -m 'update .gitignore'git push -u origin master Git 的使用——提交避免输入用户名和密码配置存储模式 1git config --global credential.helper store 执行之后会在用户主目录下的.gitconfig文件中多加 helper = store Linux 下查看: 1vim ~/.gitconfig windows10 下当前用户路径:%USERPROFILE% 内容如下: 12345[user] name = TangQuanwei email =...
Fast API
FastAPI是一个现代、快速(高性能)的Web框架,用于构建APIs和基于Python 3.6及以上版本的异步服务器网关接口(ASGI)应用程序。它是由Python的异步框架asyncio和类型提示(Type Hint)设计的,旨在提供高性能的Web应用程序,并支持最新的安全性和OpenAPI / Swagger规范。 FastAPI的主要特点包括: 性能:FastAPI使用异步编程和事件循环,可以实现高并发处理,从而提高性能。 安全性:FastAPI内置了许多安全功能,如OAuth2、JWT、API密钥、CORS、JSON Web Signatures (JWS) 等。 易用性:FastAPI有一个简单的API,易于使用和扩展。它支持Python的类型提示,使得代码更加清晰和易于维护。 OpenAPI / Swagger:FastAPI支持OpenAPI规范,可以自动生成Swagger...





