- 博客(90)
- 收藏
- 关注
原创 conda 环境下 docker 使用
参数 p 为容器端口到主机端口映射,参数 v 为绑定容器挂载点到主机目录,这里挂载的目录和文件,即可以复制到容器内,也可以通过挂载的方式访问,命令的最后是容器的名称和标签或版本号。首先编辑 dockerfile 文件,根据 AI 项目所使用的模型和组件包指定 python 的版本,创建用户及路径,并设置路径所属用户权限,然后指定用户和工作路径,最后是 docker 启动时调用的启动脚本。再等待一段时间以后,docker 镜像就构建完成了,上述镜像在不复制相关文件的情况下,镜像尺寸大约占用 1G 磁盘空间。
2024-06-11 15:36:37
422
原创 Radius 计费请求协议解析
下面是 Radius 协议数据格式摘要,Code 字段是一个八位字节,4 代表计费请求,5 代表计费应答;Radius 协议支持多种加密机制,可以为认证过程提供数据的安全保证,同时该协议还具备良好的扩展性,可以通过(Attribute-Value Pairs, AVPs)形式传递和夹带额外的信息,Radius 服务器是集中式的管理用户认证和授权信息,极大的简化了网络管理,总之在网络安全领域 Radius 服务扮演着机器重要的角色,确保只有授权用户才能访问其网络资源。
2024-05-23 15:31:50
347
原创 个性化语音模型合成实现
am_config 为声学模型的配置文件路径,位于 tmp_am 子目录中,定义了模型的架构和训练参数;model_id 为创建的 SambertHifigan 对象,后续将通过它来调用模型的方法,执行语音合成的任务。接下来再定义一个字典类型配的配置项,键名为 custom_ckpt,键值为 custom_infer_abs,当 kwargs 被调用时,kwargs 字典中的键值对将作为单独的参数传递给调用函数,使函数能够访问和使用 custom_ckpt 中的配置来执行自定义的推断任务。
2024-05-23 10:58:49
822
原创 个性化语音模型训练实现
log_interval 设定了训练日志输出的频率,即在训练过程中,每10个步骤,模型的训练状态和性能指标将会被打印出来,供开发者监控训练进度。以上就是个性化语音模型训练的介绍和实现过程,补充说明一下个性化训练语音样本的格式和要求,从实践经验来看,样本为 wav 声音文件,音频长度建议不少于 10 秒,样本文件数不少于 20 个,在录制音频的时候无特殊要求,保持背景环境安静低噪音,按照平时正常说话的音量语速即可,经过上述训练过程生成的音色模板,在后续的语音再合成中,一定可以得到满意的效果。
2024-05-22 17:10:09
455
原创 RAGFlow 实现
它可以为规模企业提供简化的 RAG(检索增强生成) 工作流程,结合大型语言模型提供真实的对话功能,重点是它能够支持私有化的知识库,弥补大语言模型在特定场景中相关知识的不足,很好的解决了个性化应用的纵深问题。这篇文档描述的是知识库的构建、管理与应用。管理层面的输入是知识库文档,返回的是文档的管理状态,结合前端页面,用户可以方便的管理自己的知识库。最后说明一下,知识库检索返回的是知识库文档分片集合,后续的工作流可以对分片集合格式化,结合用户会话列表生成提示和上下文,提交给大语言模型生成文本。
2024-05-20 18:08:47
1032
原创 Ubuntu 系统 python 项目开机自启
接下来执行命令 systemctl enable my_project.service,要求系统允许 my_project.service 开机自启,执行结果显示:Created symlink /etc/systemd/system/my_project.service → /lib/systemd/system/my_project.service. 这条指令的目的是创建一个配置链接到 etc 路径下。然后创建配置文件 /lib/systemd/system/my_project.service。
2024-05-16 16:36:57
419
原创 PostgreSQL 支持向量功能
基于 RAG(Retrieval-Augmented Generation)引擎的企业级 AI 业务,对向量的存储和检索是至关重要的,各种类型的数据(文本、图像、声音和视频)都可以转换为向量,从而为复杂的数据结构提供了一种强大的数据表示能力,使其在机器学习和人工智能领域有着广泛的适用性和重要性。操作系统为 Ubuntu os 22.04 64 位操作系统,首先安装数据库、附加组件包(包括一系列扩展模块、工具、插件和额外功能),以及数据库的软件开发包(包括开发工作所需要的头文件和各类函数)。
2024-04-30 14:10:26
506
原创 Stable Diffusion 模型应用
最后一步将生成的图像数据转换为 bytearray,cv2 是 OpenCV 库中的一个广泛用于图像处理的库,imencode 函数是将图像编码为内存缓冲区中的指定格式,output['output_imgs'][0] 表示从之前生成的图像输出中取出第一张图像,numpy.array 方法将编码后的图像数据转换为 NumPy 数组,获取图像的数据部分,bytearray 方法则是将 NumPy 数组形式的图像数据转换为用于存储的二进制数据,以便于在网络上传输或保存到磁盘。
2024-04-29 11:32:20
533
原创 C 语言并发服务实现
这个文档描述了一个本人在 15 年前的后端并发服务器的实现,采用 C 语言开发,以 epoll + 动态线程池的方式受理客户端的请求。现在的生态环境已经非常成熟,各种第三方和开源的组件都提供了完美的解决方案,不再需要开发人员自己造轮子了。代码中关键位置都附上了注释,熟悉 epoll 和底层线程实现的话看着应该不复杂,供大家参考。
2024-04-29 10:11:08
148
原创 prometheus 打点实现
Prometheus 是一个开源的系统监控和告警工具包,最开始是在 2012 年左右的时候由谷歌的工程师研发,设计用于对时间序列数据的收集和处理,特别适合于云原生环境的监控。它的优势在于简单、灵活和云原生环境的适应性,配合 grafana 可视化监控平台展示的各项度量指标,使其成为各个互联网公司业务监控告警的首选工具。Prometheus 系统有许多优势,首先它易于管理,极大的简化了部署和管理过程,同时采用灵活的多维数据模型,每个时间序列数据由键值对组成,查询非常高效;
2024-04-22 18:16:23
309
原创 大语言模型知识分享
意图 (Intent) 是指用户与 AI 模型在交互的时候,想要完成的任务或想要获取的信息,在具体的业务中可以基于场景需要定义不同的任务。例如,当用户向 AI 模型服务发送“请帮我订一张北京到上海的飞机票”的消息时,认为用户的意图是“订机票”。实体 (Entities) 是同类型单词的合集。例如,语句“请帮我订一张北京到上海的飞机票”,其中“机票”即是一种实体。在实际生活中,很多不同的词语往往可以表示同一种意思。例如,北京、中国首都,这两个词语都是指同一个实体。
2024-04-19 17:00:34
522
原创 低代码平台调研
低代码平台是一种软件开发工具,旨在帮助开发人员使用图形化界面和少量的编码来快速构建应用程序。它通过减少手动编写代码的需求,提供了一种更加高效、快速的应用开发方式。低代码平台的目标是减少开发周期、提高开发效率,并且使开发过程更加可视化和易于理解。它适用于快速开发原型、中小规模应用程序的开发以及业务需求较为简单的应用场景。原理是通过提供一些可视化的工具和组件,使人员快速构建应用程序,不需要编写大量代码。
2024-04-19 11:54:51
424
原创 Text-To-Speech (TTS) 模型应用
modelscope 模块的 Tasks 定义了预设任务类型的枚举类和常量,在机器学习和深度学习过程中,定义了模型所要解决的具体问题或应用领域,如分类、回归、文本摘要、文本生成、语音识别、语音合成等。然后调用并执行任务,input 参数代表输入的文本,及待合成的文本信息,voice 参数为合成语音时的特征,如发音人风格、语速、音高等,具体效果取决于模型和项目的实现,可能是字符串、数字、字典或其他复合类型,用来描述合成语音所需的声音特性。最后创建了一个临时文件,并在代码块结束后自动关闭文件。
2024-04-19 10:58:08
666
2
原创 AI 大语言模型应用
然后初始化模型请求,messages 是一个对象数组,每个对象包含 role 和 content 两个变量,其中 content 是内容,role 可以是 ASSISTANT、SYSTEM 或 USER,分别表示对系统指定的用户提示输入做出相应的角色、指示或设置助手行为的角色,以及为聊天补全提供输入的角色。虽然代码量很小,不过想跑起来还是需要颇费些周折的,需要安装 python、conda 环境、NVIDIA 驱动,CUDA,以及长长的依赖库列表,看看模型结果,满足一般性的业务要求还是值得的。
2024-04-18 10:20:33
1202
原创 基于 RPC 微服务的 token 管理系统
这是一个基于 RPC 微服务的 token 管理项目,实现了对 token 的创建、过滤、刷新和查询的操作。协议定义和方法调用通过 thrift 构建,token 缓存在 redis 中,有效期在业务中定义。日志写入 kafka,由其他组件消费后写入 clickhouse 后再通过 superset 汇总展示。打点操作写入 prometheus 系统,由 grafana 汇总展示。开发语言为 golang,代码为原创分享给大家。以上为核心功能代码,仅供参考。
2024-04-16 08:32:35
285
1
原创 采用 mustache 构造 prompt
在 AI 应用中,prompt 构造的好坏对生成的结果有着非常显著的影响,格式化的 prompt 可以更加精准的控制内容生成的细节,包括字数、格式、段落以及风格等等。
2024-04-15 15:04:02
225
原创 Azure OpenAI 对接
不过 Azure OpenAI 服务是按量计费的,需要事先在微软官网开立账户并预存一部分资金,对接完成后即可使用服务实现自己的业务了,这种方式比较适合传统行业的小微企业,也算是入门级的 AI 技术解决方案,起码它不用 FQ。需要补充说明的一点是,大语言模型生成结果的效果和 prompt 定义的好坏是有密切关系的,想得到优质的内容需要对 prompt 有个调优的过程,这个心里预期是必不可少的。AZURE_OPENAI_KEY:用户的私钥。AZURE_MODEL_NAME:模型名称。
2024-04-15 12:10:19
423
2
原创 minio 搭建与接入
设置读权限:Buckets -> digit-travel -> Summary -> Access Policy -> 选择 Public -> 保存。创建 Buckets:Buckets -> Create Bucket + -> Bucket Name* -> 保存。通过InputStream上传对象。以流的形式获取一个文件对象。列出存储桶中的所有对象。获取 minio 句柄。
2024-03-01 09:01:16
347
原创 nginx 负载均衡与 rpc 转发
3、ssl_certificate 和 ssl_certificate_key 为 ssl 证书,需要保存到对应路径下;2、stream 块为 RPC 调用,my_rpc 为 RPC 项,配置了地址端口以及权重;1、my_upstream 为自定义的 http 后端服务,配置了地址端口以及权重;
2024-01-29 09:55:19
489
原创 ChatBot 搭建
1 - (embedding '{input_embedding}') > {similarity_threshold},其中 input_embedding 为输入向量,similarity_threshold 为设置的相似度阈值。知识库后端对不同格式的数据进行格式化,生成 embedding 向量,保存到 RDS 中;数据的相似性检索是通过 RDS 的原生功能实现的,并根据相似度设置一次检索的返回数;FAISS,基于稠密向量的高效相似度搜索和聚类工具,支持任意大小的向量几何算法;
2024-01-26 16:03:24
301
原创 移动通信的信令采集
一个完整的会话过程由GTP-C协议中的控制面ID来确保,如果接收方确认已经成功地给发送方分配了用于信令的控制面ID,则该值与以前发送的保持一致,当接收者接收到任何来自发送方的控制面消息的GTP头的TEID值就是其分配的值时,则认为成功分配控制面ID。删除PDP上下文请求报文由SGSN节点发给GGSN节点,作为GPRS分离过程的一部分或GPRS的 PDP上下文去活过程的一部分;一个有效的请求将初始化SGSN中的PDP上下文和GGSN中的PDP上下文间的隧道创建。这个消息是删除PDP上下文请求的响应。
2024-01-26 14:30:35
1745
原创 RTB 引擎技术白皮书
平台接入作为系统总入口,负责与供应方平台的媒体对接,接收媒体下发的竞价请求,并在最短的时间内将响应应答返回供应方平台,各供应方平台的传输协议各不相同,存在较大的差异,;RTB广告的特点在于,广告平台售卖的不仅仅是传统意义上的广告位,而是访问这个广告位的具体用户,这个用户会有自己的兴趣爱好,广告能够投其所好产生最大的收益。匹配算法是对倒排索引进行查询,倒排索引的存储结构有键值两部分组成,键来自于广告执行单的字段,也是计算维度,值是若干广告执行单在广告配置内存中的存放地址的集合。广告订单排期最大值360天;
2024-01-26 11:38:49
797
原创 搜广推系统流程
用户上下文:请求用户中心,根据 UID 获取用户基本信息和扩展信息,基本信息为长期无频繁变动的信息,如年龄、性别、地域等,扩展信息为用户中期和短期内频繁变动的信息,如长期(短期)兴趣标签、话题、屏蔽关键字、关注用户、拉黑用户等;请求内容池,根据内容 ID 获取内容详情,详情包括基本信息,如标题、正文、作者,话题、标签、关键字等;内容过滤:包括自身、作者、话题、回答、视频、空标题、空内容、管控内容等;
2024-01-22 09:22:31
389
原创 搜广推基础架构
报警系统:业务指标来自于打点系统,根据设置的阈值报警和报错,并将消息发送到技术人员的手机等设备上;日志系统:存储生产环境下的日志数据,提供实时查询,帮助问题排查和定位,存储失效期比较短;打点系统:记录生产环境下各个系统的实时操作,方便统计、聚合、查看业务的各项运行指标;用户中心:保存全量用户基础信息,如 ID、年龄、性别、地域、教育程度及兴趣标签;内容详情平台:保存内容的详细信息,如标题、正文、图片、视频及超链接等;
2024-01-22 09:04:39
551
原创 机学走起-8-总结
与无监督机器学习相对应的是有监督的机器学习,去年脸书开源了一款“快文”,涵盖了词向量和内容分类,速度快效果好那是相当的好用,github上有c++、Python和java三个版本的,c++是脸书原作,java又分java语言实现和jni调用两种方式,由于java是根据c++改写的,版本维护跟不上,所以训练的结果模型不能跨版本使用,但对于一般企业级应用足够了。余弦相似度用于计算两个向量集在二维或多维坐标系中的相似性,检验它们是否具备在同一象限内向相同方向延展的趋势,重合度越高认为相似性约大。
2024-01-22 08:56:11
331
原创 机学走起-6-构建向量
数学的奇妙之处就在于把一些散乱的看似毫不相关的东西以数字的形式表现,再通过公式和模型组织起来加以计算,最终的结果又刚好完美的证明了它自己是真实可信的,局部哈希完美的诠释了这句真理,局部哈希与哈希的不同在于它温柔的描述了一个对象在向另一个对象变化过程中保留着自身的主要特征,而不像哈希那样基因突变式的猝不及防。
2024-01-22 08:47:01
330
原创 机学走起-5-余弦相似
点评:这两种方法对相似度计算中自然语言的语义因素的考量都显得过于粗放,TF-IDF也仅是在TF基础上有小幅提升,都适合各种长短尺寸的语句,并未因语句长度增加造成效果衰减,反之同理,显然要想进一步提升相似度计算的效果还需要换个思路。接下来对TF值进行调整,将向量值换成TF-IDF,并对该值设置阈值,低于阈值的项丢弃不参与余弦运算,这样做的目的是为了提升词语在语句权重中的价值,修正硬相似度计算中所导致的误差。第三步计算:将向量空间中的值逐一带入下面的公式,计算两个向量空间的夹角余弦值;
2024-01-22 08:43:59
350
原创 机学走起-4-LDA
实际效果和训练样本的质量关系极其密切,目标类目不宜期待过多过细,否则效果的衰减将远超预期,另外脸书一款开源监督机器学习主题提取模型效果更佳,今天先挖个坑留着以后再说。样本导入需要两个参数,cps,二维向量对应文档,size,整数对应词表尺寸,定义目标主题数可以根据需要指定,主题概率和单词概率默认配置即可,训练完毕根据模型提取主题词。主题预测:随机一篇文章去停用词分词备用,根据词表生成一份一维向量表,连同训练结果模型一并作为参数执行主题预测,返回结果是一个双精度向量集合。把结果打印出来看看!
2024-01-22 08:42:17
318
原创 机学走起-3-词频
第二步初始:将《机学走起第二式》第四步生成的IDF配置加载到容器中;第四步计算:出现次数除以当前文档词语总数再乘以该词语的IDF值;第五步排序:对当前文档全量词语的TF-IDF值按照降序进行排序;第一步文档:准备数据源,分词去停用词空格分隔,一行一篇备用;第六步输出:根据业务需要提取n个有价值的词语作为文档关键字;第三步统计:统计当前词语在当前文档中累计出现的总次数;
2024-01-22 08:40:57
394
原创 机学走起-2-关键词
第二步统计:用文档总数除以命中数量再取个对数,统计过程缓存在容器中,遍历的时候恒大于零所以未加一,具体看个人实现,提醒注意double数据类型初始化对结果精度的影响,需要说明的是一个词在一篇文章中出现多次仅记录一次,记录多次将导致IDF值误差并进而影响TF-IDF结果;第三步排序:执行sort sougou.idf -k -n > sougou.idf.sorted,对结果按照IDF值升序排序,这样看着舒服并非强制需要;第四步部署:将结果文件保存至项目配置路径,在启动的时候加载,方便计算TF-IDF终值;
2024-01-22 08:39:20
347
原创 fastxml多分类器
模型训练:python3 fxml.py 模型名称 训练数据 --standard-dataset --verbose train --iters 100 --trees 20 --label-weight propensity --alpha 1e-4 --leaf-classifiers --no-remap-labels。解压组件:unzip fastxml-master.zip,cd fastxml-master,python setup.py develop安装组件。
2024-01-19 17:29:08
358
原创 faiss技术分享
•nlist参数控制将数据集向量聚类的总数,nprobe参数控制在多少个类范围内进行查询,伴随nprobe参数值增加,精度值增加,同时时间开销增加,当nprobe=nlist时,与IndexFlatL2索引等效;•倒排索引需要对数据做预处理来提高索引效率,将数据库向量通过聚类方法分割成若干类,查询时选择距离最近的类中心,在类中采用精确方法查询,通过增加相邻类查询来提高精确度;•在查询阶段返回的结果是近似值,实验显示,乘积量化后查询返回的距离值与真实值相比偏小,此外,索引的初始化过程的耗时也比较久一些;
2024-01-19 17:28:03
360
原创 ELK搭建
采用API方式查看服务状态,执行命令curl -i -XGET 'localhost:9200/_count?path.logs: /home/elasticsearch-6.4.2/logs // 日志存放路径。path.data: /home/elasticsearch-6.4.2/data // 数据存放路径。配置完成后启动即可,打开浏览器,
2024-01-19 17:27:09
380
原创 TensorFlow Serving裸机安装
ipa-client-common-4.4.0-12.el7.centos.noarch 有已安装冲突 freeipa-client-common: ipa-client-common-4.4.0-12.el7.centos.noarch。ipa-server-common-4.4.0-12.el7.centos.noarch 有已安装冲突 freeipa-server-common: ipa-server-common-4.4.0-12.el7.centos.noarch。
2024-01-19 17:25:57
337
原创 TensorFlow Serving加打点
启动参数:--port=8208 --model_config_file=/models/rank/model.config。编译命令:bazel build -c opt tensorflow_serving/...断点函数:TensorflowPredictor::Predict。
2024-01-19 17:23:57
337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人