- 博客(822)
- 资源 (152)
- 收藏
- 关注
原创 Jacoco的XML报告详解
使用jacococli完成jacoco测试报告生成后,会看到有一个.xml结尾的文件,这个就是xml格式的覆盖率报告。除了xml还有csv、html格式的报告,本文进介绍xml报告。
2024-09-11 17:39:54 551
原创 DPR:一种用于开放与问答任务的检索方法
它的核心思想是利用深度学习模型来生成问题的高维密集向量表示,并在大量的文档集合(如维基百科)中检索与问题最相关的文档段落。DPR的优势在于它能够快速地从大量文本数据中检索出与问题相关的信息,为后续的答案生成或提取提供上下文支持。在RAG模型中,DPR作为检索组件,与生成模型(如BART)结合,使得模型在生成答案时能够利用到外部知识源中的信息,从而提高答案的准确性和相关性。查询编码器(Query Encoder):这是一个基于BERT-base模型的编码器,用于将输入的问题转换成一个高维的查询向量。
2024-08-30 14:20:01 334
原创 程序调用大模型返回结构化输出(JSON)
大家很多时候使用langchain、llamaindex等大模型框架的时候,一直很头疼的就是大模型的answer不一定就按照约定的结构化数据返回,那么下面就以讯飞的spark为例解决这个问题。
2024-08-08 15:41:50 183
原创 AI的IDE:Cursor配置虚拟python环境(conda)
Cursor是一个AI的IDE,是从VSCode源代码中fork出来的,专注于和AI一起Coding而生。https://www.cursor.com/是官方地址。最近开始逐渐的试用Cursor,之前一直是VSCode的重度用户,python技术栈,因此Anaconda使用也很频繁。试用中发现Cursor和Anaconda之间的配合没有那么平滑,为了解决这个问题做了如下的一些记录。
2024-08-07 15:17:38 2434
原创 Function Calling 快速理解
Function Calling是可以用自己的函数当作调用chatgpt的参数,在函数中我们可以做任何事情,例如获取网络上的数据,查询自己的数据库等。白话就是一下就是大模型函数调用,不是说去调用大模型函数,而是告诉大模型它需要调用那些函数完成处理,然后返回结果。
2024-07-30 15:42:35 158
原创 LLM的幻觉验证
对于模型的幻觉的验证现在虽然已经有了这么多办法,在面对幻觉的时候应该还是有很多未解的问题,对于评估方法、测试实践上还有很多值得探索和挖掘的内容。在模型的幻觉测试中,原子事实的分割和现实完全可信对比的方法虽然繁琐,但是确实当前最容易实施的方案;其次,selfcheckGPT的思路简单,方便实施,但是在相似性评价上哪一个更适合你所测试的模型,却需要读者自己判断了。最后的一致性检测相对繁琐,需要自己准备的内容较多,但是在发现幻觉上发挥一定的作用,也是一个值得深入的方向。
2024-07-26 17:28:33 86
原创 Retrieval-Augmented Evaluation方法评估模型幻觉
构建输入的prompt和golden answer相对比较耗时(可以利用LLM完成设计),往往在完成Golden Answer的设计后很少需要再次设计,因此这个成本的投入是固定的。但是评估方法是每次评估都需要执行的事情,因此建立快速、边界、ROI高的评估方法是相对比较重要的部分。
2024-07-26 11:27:08 91
原创 如何评价一个AI系统
构建输入的prompt和golden answer相对比较耗时(可以利用LLM完成设计),往往在完成Golden Answer的设计后很少需要再次设计,因此这个成本的投入是固定的。但是评估方法是每次评估都需要执行的事情,因此建立快速、边界、ROI高的评估方法是相对比较重要的部分。
2024-07-14 22:40:04 483
原创 Testability的论证
原本只是在一本书上看到Testability的介绍,书中对于Testability的介绍使我对Testability中文翻译可测试性差生了一些疑惑,丛书中的描述中我更倾向于理解其是易测试性,而不是可测试性。因此就开始了翻阅testablity的资料,追溯下来可测试性的翻译确实一点问题也没有,只是书上的描述有点问题。文中很多英文原文的准苏,但是我英文不太好,翻译过来感觉很别扭,我就直接引用了原文。
2024-07-10 14:46:47 759
原创 一次利用大模型完成Jacoco code coverage报告合并的尝试
最近有一些需要合并jacoco报告的需求,这个合并远远超出了jacococli提供的mergeapi的能力,所以尝试用大模型来解决该问题。
2024-07-05 10:47:24 511
原创 Jacoco的覆盖率原理
虽然JVMTI提供了强大的功能,但是需要注意的是,并非所有的JVM实现都支持JVMTI的所有特性。Probe探针在不影响原来的指令执行流程的前提下插入到两个指令之间,每一个探针都插入在程序的control flow的边中,如果探针被执行了,我们可以确定这个边上的代码就会被执行。JUMP(conditional):反转操作码的语义,然后在条件跳转指令后加探针,然后在探针后添加GOTO指令跳转到原本的位置(这是因为字节码是顺序执行的,所以需要添加一个goto,完成无条件跳转的。
2024-07-03 16:14:54 270
原创 线上数据线下使用的数据处理方法:数据脱敏
在信息技术领域,敏感数据是指那些一旦被泄露或滥用,可能会对个人隐私、企业利益或国家安全造成严重影响的信息。这类数据通常包括但不限于:个人信息:如姓名、身份证号、联系方式、住址等。财务信息:如银行账户、信用卡号、交易记录等。商业机密:如产品设计、市场策略、研发资料等。数据脱敏(DataMasking)就是针对敏感信息进行处理的技术,通过对敏感数据的清晰、变形等方法保护了敏感信息的保密性,同时又能够利用这些信息进行质量保证工作的支持。
2024-06-26 11:24:05 128
原创 性能测试并发量评估新思考:微服务压力测试并发估算
相信很多人在第一次做压力测试的时候,对并发用户数的选择一直有很多的疑惑,那么行业内有一些比较通用的并发量的计算方法,但是这些方法在如今微服务的架构下多少会有一些不适合,下面的文章我们对这些问题进行一些讨论,说一说我的思考。
2024-06-21 11:04:27 972
原创 流量回放的数据隔离
流量回放的数据隔离是回放得以实施的重要部分,如果没有做好数据隔离,回放后对于数据的污染会是一个灾难性的后果。那么除了上面说的隔离方案外,要成功实施流量回放还需要完成一些外部依赖系统的解耦,还有一些内部资格验证的逻辑约束,这是因为有时候流量回放是通过录制后放大的流量进行的回放,因此有些用户、优惠券、活动资格等都是有约束的,这些对于流量回放标记的数据应该有一些豁免权。
2024-06-20 10:43:16 135
原创 成功注册Google的SerpAPI实现AI Agent的tool
SerpApi 是一个专门针对Google搜索结果页面(SERP)的API服务。通过这个API,我们可以获取到Google搜索的各种数据,包括但不限于搜索结果、位置、时间等信息。
2024-06-11 17:22:23 448
原创 LlamaIndex废弃了ParamTuner,可以用RayTuneParamTuner和AsycParamTuner替换
一些实现细节可以参见https://github.com/run-llama/llama_index/blob/main/llama-index-legacy/llama_index/legacy/param_tuner/base.py。LlamaIndex在0.10.x中的llama-index-experimental-param-tuner中设计了ParamTuner,在后面的版本中提供了AsyncParamTuner和RayTuneParamTuner替换。
2024-05-30 11:33:10 103
原创 rest_asyncio 简化和管理异步python编程中的 REST API 调用
rest_asyncio 是一个 Python 库,用于简化和管理异步编程中的 REST API 调用。它结合了 aiohttp 和 asyncio,提供了一种高效的方式来处理网络请求和响应,特别是在需要大量并发请求的场景下,例如爬虫、批量数据获取或实时数据处理。
2024-05-29 17:54:23 153
原创 Elo ranking介绍
Elo ranking,一种经典的排名算法,最初用于评估棋类比赛中选手的水平。现在,它也被广泛应用于各种竞技场景,包括电子竞技、体育比赛以及在线游戏。通过理解Elo ranking,你可以更好地评估测试用例的优先级和价值。Elo ranking旨在根据参与者之间的胜负结果来确定他们的相对能力水平。简而言之,它是一种评估竞争者技能的方法,其数值代表了参与者的相对强度。
2024-05-24 14:07:29 372
原创 HyDE:改善大模型的信息检索的方法
HyDE,全称为Hypothetical Document Embeddings,是一种用于改进信息检索的方法。它通过生成可用于回答用户输入问题的假设文档,来对齐查询和文档的语义空间。这些文档是由大型语言模型(LLM)根据它们自身学习到的知识生成的,然后这些文档被向量化,用于从索引中检索文档。HyDe的工作过程是从使用LLM基于查询生成假设文档开始的,在完成了假设文档的生成后将生成的假设文档输入编码器,将其映射到密集向量空间中。
2024-05-21 18:03:33 939
原创 Ollama局域网内访问
我们平时面对的场景中,服务器往往并不能链接互联网,因此我们就不能用上面介绍的Ollama的命令一样,运行命令直接获从Ollama中央仓库下载一个模型,Ollama为我们提供了一个导入模型的办法。那么如果有些模型没有量化的模型的话,就需要自己动手了,这个主要是借助llama.cpp完成的,具体操作就不做详细说明了,需要的时候,在网上学习吧。选择我的电脑点击右键,选择属性后点击高级系统设置就可以看到环境变量的按钮了,点击进入后可以看到有上下两部分,上面是用户变量,下面是系统变量。重新载入配置,再通过。
2024-04-29 15:59:19 2861
原创 Ollama完成本地模型的运行
Ollama 是一个开源的大型语言模型(LLM)服务工具,它允许用户在本地运行和使用各种大型语言模型。Ollama 提供了一个命令行界面,支持多种流行的模型,如 Llama 3、Qwen 1.5、Mixtral、Gemma 等,并且用户可以根据自己的需求定制和创建模型。Ollama能够实现模型的本地运行,降低了模型开发的复杂度,无聊时AI开发的高手还是新人都可以快速使用Ollama完成模型本地运行。同时可以识别Nvidia、AMD的GPU,AVX、AVX2指令集的CPU。
2024-04-25 13:54:01 807
原创 LangSmith帮助测试大模型系统
想要使用LangSmith首先进入他的设置页面,https://smith.langchain.com/settings注册一个账号,然后进入API Keys页面创建一个API Keys,我们为例后续演示,这里创建一个test_api_key名字的API Key,如下图所示。LangSmith完成了跟踪LangChain构建应用的所有的中间过程,这也为验收或者测试LangChain构建的基于大模型的应用提供了有力的手段。在项目下的列表中,我们多次执行LangChain构建的大模型的应用也可以做横向对比。
2024-04-24 00:00:29 236
原创 通过Llama Index实现大模型的SQL生成的三种方法详解
llamaindex提供的三种text2sql的方法真的不同的问题都有其更加擅长的方向,并没有一个可以全盘解决问题的技术方案,所以具体选择哪一种还是需要根据面对的问题而定。
2024-04-10 10:46:46 844
原创 Llama Index的NodeParser详解
Node Parser有很多种,具体需要使用哪一种就需要我们根据数据的内容、数据的特点等做出选择了。
2024-04-08 14:10:09 318
原创 基于chatGLM在llama index上建立Text2SQL
文中使用了chatglm的llm和embedding modle,利用的智谱的免费token。
2024-04-03 11:30:18 617 1
原创 sqlalchemy的Session
在使用SQLAlchemy进行数据库操作时,Session是对数据库交互的主要接口之一。在Session中执行查询时,可以通过不同的方法来添加查询条件,从而筛选出符合要求的记录。以下是一些常见的Session查询中添加条件。
2024-04-03 10:57:20 654
原创 sqlite建立数据库
在做一些简单的实验项目的时候,sqlite比较好用(MacOS验视环境)。相关包下载网页:https://www.sqlite.org/download.html。在当前目录,执行如下代码。目录下面就有了数据库文件。
2024-04-02 17:35:00 724
原创 BM25方法
BM25它是根据 TF-IDF(Term Frequency-Inverse Document Frequency)算法改进而来的,旨在克服 TF-IDF
2024-03-29 18:08:25 442
原创 解决github Push rejected报错 remote: error: GH013: Repository rule violations found for refs/heads/maste
在push代码到master的时候Github 报错 remote: error: GH013: Repository rule violations found for refs/heads/main这次是因为Github的保护机制引起rejected。
2024-03-20 09:56:42 3887 8
原创 LLM的测试工具:LaVague平替成国内大模型
LaVague 通过LLM将自然语言转换Selenium的代码引擎,用户或其他人工智能轻松实现自动化。
2024-03-19 22:51:26 454
原创 5 AI的道德验证和实践方法
AI的道德性是AI需要遵守的底线也是大模型的缔造者需要建立的道德围栏,虽然对于AI的道德有各式各样的要求,各大国家、组织都对AI的道德做了基本的约束,但是如何验证AI是否遵守了道德约束确实一个不容易验证的内容,通过“道德黑客”的方法,尝试各种方式突破AI的道德底线,例如通过一套密码诱骗AI给出违反道德的结果,通过哀求、贿赂诱骗AI扩过道德围栏,建立red team不断地共计AI的道德围栏等等手段还在不断的尝试和更新中,守住AI的道德底线是守住了人类智慧的基线。
2024-03-09 08:52:25 97
原创 4 AI系统的测试关键技术和实践
SSE最近突然的被很多人关注还有一个主要原因就是ChatGPT等大模型的聊天类系统就采用了SSE协议。在使用ChatGPT的时候,输入Prompt后的反馈是逐渐的显示在聊天区域的,这部分的实现就是主要基于EventStream的事件流,类似打字机一样输出的,这就是SSE的实现,其实类似一下股票行情推送、期货行情推送都可以使用SSE实现。
2024-03-09 08:50:58 184
原创 3 模型评估
随着各式各样的AI系统的出现,模型评估会变得越来越多样化,那么如上介绍的也可能也会退出模型评估的对应基准的选择范围。那么,无论怎么发展这种基准测试都是模型评估的方法都不会过时,这也为各种模型的横向对比提供了一个客观的评价方法,也为模型在某一方面的能表现提供了一个客观的评价基准。
2024-03-09 08:50:03 108
原创 2 数据和测试评价
数据是AI的基础,AI系统是通过数据的训练而得到的,用于AI系统训练的数据通过收集、清晰、打标等一系列处理后才能用于模型的训练,可见数据是否按照模型的要求完成了上述一系列动作是模型最终表现的重要影响,因此用于训练的数据的质量也是非常值得关注的。在训练完成之后的模型的测试中,传统测试方法“测不准”的现象严重影响了测试结果,那么通过神经元覆盖、层级覆盖的思路可以为测试给予指导,帮助测试工程师完善测试用数据,实现基于覆盖率的测试过程评价,将测试结果的评价转换成覆盖率的评价,从而解决了“测不准”的问题。
2024-03-09 08:49:27 70
原创 1 AI系统概述
1936年阿兰·图灵发表的《论可计算数及其在判定问题中的应用》开启了人工智能的篇章,从1950以后,AI这个词的诞生,也注定了人工智能将会不断的影响人类的生活,那么这么多年的发展和积累,AI已经开始影响了我们生活的方方面面,尤其是二十一世纪二十年代以来,AI已经开始影响到了几乎世界上的每一个人。AI的快速发展也为测试工作提出了新的挑战,这些挑战无疑也为系统测试工作提供了新的探索和研究的方向,那么下面的章节我们就会针对AI系统的测试做深入的阐述。
2024-03-09 08:48:20 200
原创 0 如何测试AI系统的软件测试
随着AI系统的井喷是否发展,AI系统的测试已经变成了一个棘手的问题,尤其是传统软件工程中的测试用例的三个关键要素的输入数据、执行步骤和预期结果约束之下,AI系统的测试用例在执行过程中往往并不能完全满足预期结果的描述,但是实际AI系统的输出在逻辑上又是正确的处理,这也就呈现了AI系统测试中的”测不准“的问题。AI系统的测试只能是在实践中通过不断地找到更加适合其特点的方法、技术和实践,通过不断优化和改进测试过程,可以提高软件的质量和可靠性,从而为用户提供更好的体验和价值,提高用户满意度。
2024-03-09 08:47:38 128
原创 ChatGPT使用的SSE协议接口怎么做测试
SSE最近突然的被很多人关注还有一个主要原因就是ChatGPT等大模型的聊天类系统就采用了SSE协议。在使用ChatGPT的时候,输入Prompt后的反馈是逐渐的显示在聊天区域的,这部分的实现就是主要基于EventStream的事件流,类似打字机一样输出的,这就是SSE的实现,其实类似一下股票行情推送、期货行情推送都可以使用SSE实现。
2024-03-06 17:52:48 305
原创 解决AI系统”测不准“的问题:蜕变测试
在被测试的AI模型的处理逻辑之上我们找到了蜕变关系MR,那么我们将测试用例1的输入1通过一种参数扰动的处理,得到了输入1‘{I1’, I2’,…如上给出的全部例子都是基于一种有效的测试用例找到了对应的蜕变关系,其实这种蜕变关系也不一定非要从功能正确的测试用例开始的,我们也可以通过一些反向的测试用例找到对应的蜕变关系,从而设计出很多的测试用例,假设我们前面例子中的一个基于深度学习进行图像分类的模型,通过读入照片识别照片中是不是一只猫,那么我们可以输入一下不是猫的图片,然后基于这个蜕变关系,从完成测试。
2024-03-01 17:43:10 189 1
为集成LLM到测试平台提供更便捷的方式:为讯飞的LLM星火创建接入LangChain类(全部源代码)
2023-11-02
个人版强制更新破解Xshell5的nslicense.dll
2019-01-02
ACIS CAD开发类库9
2009-06-10
ACIS CAD开发类库8
2009-06-10
ACIS--CAD开发类库7
2009-06-10
ACIS--CAD开发类库6
2009-06-10
ACIS--CAD开发类库
2009-06-10
ACIS--CAD开发类库4
2009-06-10
ACIS--CAD开发类库3
2009-06-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人