分享Embedding 模型微调的实现
写在前面
\1. 当前比较主流的Embedding开源模型有哪些?
 答:1. m3e(Moka Massive Mixed Embedding) 2. BAAI/bge-large-zh-v1.5。更多的开源模型评测榜单可见:
 https://huggingface.co/spaces/mteb/leaderboard
\2. 模型的作用?
 答:通过词,句子或者上下文的向量生成,从而来实现更高效的语义检索,语言理解的相关任务。
\3. 模型是如何捕获语义信息的?
 答:在训练的过程中,模型学习用来反映语义相似性的方式将向量分配给单词或序列。简言之,通过分析数据中的词共现模式来实现。
\4. 为什么需要对Embedding 模型进行微调?
 答:因为稀疏性的问题,在垂类数据下微调,可以得到更好的效果。
领域微调实现
如何从0-1的训练一个Embedding model 可以参考智源的论文:
 https://arxiv.org/pdf/2309.07597.pdf,从中我们可以看到如果需要一个特定的领域向量模型,那么就需要这个行业的相关文本,和特定任务的文本对。例如某一个医学问题及其对应的内容的文本对。
这篇文章将从文本对的构建和微调上进行展开。
数据构建:
在通常情况下,我们可以比较容易的获取到一些垂类相关的无监督文本,比如:垂类书籍,论文等来源。难的是获取文本对,以往这些数据都是依赖于开源或者人工标注,但现在有了另一种解决方案,LLM生成文本对。
具体的做法是:
 \1. 解析垂类数据,比如:pdf,docx等格式
 \2. 将数据进行chunk 切分。
 \3. 用LLM对每一个chunk 生成N个问题(或者生成简要的摘要),从而组合成文本对。
接下来是代码实现:
# coding=utf-8
import jsonfrom llama_index import SimpleDirectoryReader
from llama_index.node_parser import SimpleNodeParser
from llama_index.schema import MetadataModedef load_corpus(files):reader = SimpleDirectoryReader(input_files=files)    docs = reader.load_data()       parser = SimpleNodeParser.from_defaults()    nodes = parser.get_nodes_from_documents(docs, show_progress=True)    corpus = {node.node_id: node.get_content(metadata_mode=MetadataMode.NONE) for node in nodes}    return corpusfiles = ["./origin_data/html_news.docx"]train_corpus = load_corpus(files)
SimpleDirectoryReader 能支持多种数据格式的载入(详情请查看API):

通过以上处理,将文本拆分成了多个chunk,如下例子所示:
{"7a4a2b52-aa00-4e3d-895e-90c4d9a6898c":"12月新规来了!这些变化将影响你我生活\n\n来源:中国新闻网 | 2023年12月01日 06:49:43\n\n原标题:12月新规来了!这些变化将影响你我生活\n\n  中新网北京12月1日电 12月,一批影响民生的新规开始施行。中国对6国试行单方面免签政策、社保经办领域首部行政法规实施、明确销售食用农产品禁止使用“生鲜灯”……这些新规值得你我关注!\n\n  全国性新规\n\n  中国对6国试行单方面免签政策\n\n  为进一步促进中外人员往来,服务高质量发展和高水平对外开放,中方决定试行扩大单方面免签国家范围,对法国、德国、意大利、荷兰、西班牙、马来西亚6个国家持普通护照人员试行单方面免签政策。2023年12月1日至2024年11月30日期间,上述国家持普通护照人员来华经商、旅游观光、探亲访友和过境不超过15天,可免签入境。上述国家不符合免签条件人员仍需在入境前办妥来华签证。\n\n  新版外国人永久居留身份证签发启用\n\n  国家移民管理局宣布,自12月1日起正式签发启用新版中华人民共和国外国人永久居留身份证,同时发布新版永居证式样。新版永居证启用后,现版永居证在有效期内仍可继续使用,持证人可根据个人需要,适时申请换发新版永居证。",    "bba2eefb-17ed-4f3c-bc60-775b52ffc25f":"社保经办领域首部行政法规实施\n\n  《社会保险经办条例》自12月1日起施行,一是紧扣社会保险法,明确条例调整范围;二是明确经办机构职责,强化服务管理监督;三是减少证明材料,明确办理时限;四是完善管理制度,强化监督措施;五是明确法律责任,严惩违法犯罪行为。\n\n  明确仅销售预包装食品备案的具体要求\n\n  《食品经营许可和备案管理办法》自12月1日起施行,增设专章明确仅销售预包装食品备案的具体要求;进一步简化食品经营许可流程,压减许可办理时限,并将部分按照许可管理的情形调整为报告,释放改革红利;进一步明晰办理食品经营许可的范围和无需取得食品经营许可的具体情形等。\n\n  明确销售食用农产品禁止使用“生鲜灯”\n\n  《食用农产品市场销售质量安全监督管理办法》自12月1日起施行,明确经营者销售生鲜食用农产品时,不得使用对食用农产品的真实色泽等感官性状造成明显改变的照明等设施,误导消费者对商品的感官认知。",    "1ea72c22-88d8-4fd4-b746-e29f7fbdbcc0":"规定牙膏的功效宣称应有充分科学依据\n\n  《牙膏备案资料管理规定》自12月1日起施行,规定牙膏的功效宣称应有充分的科学依据,禁止标注明示或暗示具有医疗作用的内容,对添加氟化物的非儿童牙膏应当标注“本产品不适用于儿童”等。\n\n  首次对庭院凉篷进行详细规范\n\n  《庭院凉篷》国家标准化指导性技术文件自12月1日起施行,该文件的制定和出台将填补该类产品缺乏标准规范的空白,有利于庭院凉篷产品质量的提升以及行业的发展,为企业出口提供保障。文件首次对庭院凉篷从产品分类、原材料、外观、产品完整性、尺寸、性能要求和安全要求等方面进行详细规范。\n\n  地方性新规\n\n  上海:全面实行临时居民身份证“跨省通办”\n\n  12月1日起,上海公安机关全面实行临时居民身份证“跨省通办”,外省市户籍也可以在上海申领临时身份证。",    "ca03e3f7-aec0-4de1-9140-a77d151fef96":"辽宁:培训机构收取培训费用应存入监管专用账户\n\n  《辽宁省关于面向中小学生的非学科类校外培训机构管理办法》自12月1日起施行,明确培训机构不得一次性收取或变相收取时间跨度超过3个月或60个课时的费用,且不得超过5000元,所收取的培训费用应全额存入监管专用账户。\n\n  山东:从事药品网络销售应具备线下门店\n\n  《山东省药品网络销售监督管理实施办法》自12月1日施行,规定从事网络零售活动的,应当具备对应的线下实体门店,无实体门店不得通过网络销售药品。\n\n  山西:全面实施“互联网+职工门诊统筹”医保支付\n\n  12月1日起,山西全面实施“互联网+职工门诊统筹”医保支付工作。参保人员通过医保互联网医院网上问诊开具电子处方后,在定点医药机构购药可享受职工医保门诊统筹待遇。\n\n  江苏:小区内的新能源汽车公共充换电设施用电实行居民电价\n\n  12月1日起,江苏对居民小区内的新能源汽车公共充换电设施用电实行居民电价,对执行工商业电价的充换电设施用电实行峰谷分时电价等支持性政策。",    "af872e02-877f-4ed3-970f-bfc5ed4fd569":"四川:建立健全守信激励制度\n\n  《四川省社会信用条例》自12月1日起施行,鼓励市场主体对守信主体采取给予优惠便利、增加交易机会等措施,对失信主体采取取消优惠、提高保证金等措施。\n\n  云南:统一全省失业保险费率\n\n  云南《关于建立失业保险省级统筹制度的意见》自12月1日施行,将全省失业保险缴费费率统一为3%,其中,单位缴费费率为2%,个人缴费费率为1%。(完)"
}
接下来,我们用LLM对每一个chunk文本进行提问,Prompt模板如下:
 
 截一下在GPT-4(最近Qwen-72B 开放了,笔者也在上面尝试了一下,对Prompt模板做了下微调,效果也挺不错。)上的效果:
 
微调:
上述的数据构建,我们生成了正样本对,但是没有负样本,在这里我们采用MultipleNegativesRankingLoss,它会在每批N-1个负样本中进行随机采样,模型微调我们使用 sentence_transformers
 
 写在后面
实际中还需要补充一个评测逻辑,对向量模型训练前后的指标做一下统计,这部分内容相对比较简单,笔者这里就跳过了。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
 

相关文章:
 
分享Embedding 模型微调的实现
写在前面 \1. 当前比较主流的Embedding开源模型有哪些? 答:1. m3e(Moka Massive Mixed Embedding) 2. BAAI/bge-large-zh-v1.5。更多的开源模型评测榜单可见: https://huggingface.co/spaces/mteb/leaderboard \2. 模型的作用? …...
 
TED: 1靶场复现【附代码】(权限提升)
机下载地址: Ted: 1 ~ VulnHubTed: 1, made by Avraham Cohen. Download & walkthrough links are available.https://www.vulnhub.com/entry/ted-1,327/ 1. 主机发现端口扫描目录扫描敏感信息获取 1.1. 主机发现 nmap -sn 192.168.59.0/24|grep -B 2 00:0C…...
 
Python(TensorFlow)衍射光学层卷积算法模拟(英伟达GPU)
🎯要点 🎯衍射光学卷积算法模拟 | 🎯模拟或数字电子计算之前加入一层光学计算 | 🎯前馈卷积神经网络计算成像系统对输入图像进行分类 | 🎯相位掩模利用线性空间不变成像系统执行固有卷积 📜用例 Python非…...
 
iOS开发进阶(二十二):Xcode* 离线安装 iOS Simulator
文章目录 一、前言二、模拟器安装 一、前言 Xcode 15 安装包的大小相比之前更小,因为除了 macOS 的 Components,其他都需要动态下载安装,否则提示 iOS 17 Simulator Not Installed。 如果不安装对应的运行模拟库,真机和模拟器无法…...
 
Prostgresql的Timescaledb插件/扩展部署
背景:研发需求,需要把docker部署得postgresql迁移到新的节点并要求再本地部署,提前查看数据库需要那些插件,并进行安装,docker部署的默认有插件。 版本对比:postgresql版本对应某个Timescaledb版本 我得p…...
 
分布式知识总结(一致性Hash算法)
文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 一致性Hash算法 假如有三台服务器编号node0、node1、node2&…...
图数据库在社交网络分析中的应用
随着社交网络的飞速发展,用户之间的关系变得日益复杂。传统的关系型数据库由于其表结构的限制,难以高效地处理和查询这些复杂的网络数据。图数据库以其独特的图模型结构,能够更好地表示和分析社交网络中的关系,因而在社交网络分析…...
 
Git基础使用教程
版本控制手册 本文中出现的 [ ] 为根据需求自行修改的变量。 基本命令 git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中。 git config --global user.name [xxx]:设置全局用户名,信息记录在~/.gitconfig文件中。…...
技术速递|Python in Visual Studio Code 2024年8月发布
排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 8 月发布! 此版本包括以下公告: 面向贡献者的 Python 扩展开发容器用于运行带有参数的 Python 文件的调试配置Python 扩展 API 的 Npm 包容错 …...
 
【话题】重塑未来:AI辅助编程对程序员工作的影响与应对策略
目录 人工智能时代,程序员如何保持核心竞争力? 引言 方向一:AI辅助编程对程序员工作的影响 效率提升 代码质量 潜在风险 方向二:程序员应重点发展的核心能力 复杂系统设计 跨学科知识整合 与AI协作的能力 方向三:人机协…...
在Debian上安装freeswitch
在Debian上安装freeswitch 说明: 首次发表日期:2024-08-12参考文档: https://medium.com/jogikrunal9477/ultimate-guide-to-installing-freeswitch-on-ubuntu-22-04-lts-3745ef6a6bd6https://developer.signalwire.com/freeswitch/FreeSWI…...
 
论文分享 | Fuzz4All: 基于大语言模型的通用模糊测试
大语言模型是当前最受关注的研究热点,基于其生成和理解能力,对现有领域在提升性能和效果上做更多尝试。分享一篇发表于2024年ICSE会议的论文Fuzz4All,它组合多个大语言模型以非常轻量且黑盒的方式,实现了一种跨语言和软件的通用模…...
 
VS Code 配置docker 管理员权限终端
问题描述 在容器中需要使用sudo或者su root时候,权限不够,被灵魂提问。 然而,镜像是官方发布的,翻遍了githubissues也没有找到password. 解决 Attach shell 在docker插件中,attach shell 可以直接获得shell。 所…...
 
使用Linux实现FTP云盘1
关于FTP服务器 FTP(文件传输协议)服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP 协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。 程序运行,服务端不断接收客户端指令,服务 端可同时处…...
tombo resquiggle
Re-squiggle 算法 简介 纳米孔读取产生的电流信号水平数据称为squiggle。将这些squiggle信息进行基底呼叫通常与参考序列相比会包含一些错误。Re-squiggle算法定义了从squiggle到参考序列的新分配,即重新squiggle。 Re-squiggle算法是Tombo框架的基础。该算法输入包含原始信…...
 
vue3获取vue实例 并注册全局属性方法
vue3注册全局属性方法 前言一、app.config.globalProperties1 注册实例2 注册方法 二、依赖注入(Provide / Inject)1 注册实例2 注册方法3 一次性多次传入 最后 前言 在使用 Vue 时,多个地方使用同一个方法导致每个地方都需要按需引用&#…...
function calling后,如何让大模型进行自然语言输出?
在现代的自然语言处理(NLP)系统中,Function Calling 是指模型在对话过程中调用外部函数以获取特定数据或执行特定操作的能力。在 Function Calling 后,你可以将接收到的数据发送回大模型,并生成自然语言输出。以下是如…...
Android笔试面试题AI答之Kotlin(8)
文章目录 34.Kotlin 泛型中的“*”和“Any”有什么区别?Any*总结 35.Kotlin 协程在哪些方面优于 RxKotlin/RxJava?1. 语法简洁性和易读性2. 性能3. 错误处理和调试4. 场景适用性5. 学习和使用成本 36.Kotlin 协程中的 launch/join 和 async/await 有什么…...
 
LVS服务的搭建之NAT模式、DR模式的搭建实战
# LVS的概述 1/什么是LVS linux virtural server的简称,也就是linxu虚拟机服务器,使用lvs可以达到的技术目标是:通过linux达到负载均衡技术和linux操作系统实现一个高性能高可用的linux服务器集群,他具有良好的可靠性࿰…...
 
Raft分布式存储
文章目录 前言一、项目大纲二、Raft模块1.Raft介绍2.大致内容Leader与选举日志同步、心跳raft日志的两个特点 3.主要流程1. raft类的定义关键函数m_nextIndex 和 m_matchIndex作用 2.启动初始化3.竞选leaderelectionTimeOutTicker:doElectionsendRequestVoteRequestVote 4.日志…...
 
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
 
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
 
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
 
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
 
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
 
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
