分享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 json

from llama_index import SimpleDirectoryReader
from llama_index.node_parser import SimpleNodeParser
from llama_index.schema import MetadataMode

def 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 corpus

files = ["./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%免费
  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值