新闻详情

新闻详情

首页 / 资讯中心 / 详情

PaddleNLP 示例库全景指南:从 NLP 基础技术到系统应用与拓展实践

发布时间:2026/9/25 5:08:23来源:尧图网络
PaddleNLP 示例库全景指南:从 NLP 基础技术到系统应用与拓展实践
人工智能大模型预训练微调LoRARLHF强化学习分布式训练【免费下载链接】PaddleNLPEasy-to-use and powerful LLM and SLM library with awesome model zoo.项目地址https://gitcode.com/gh_mirrors/pa/PaddleNLP点击查看免费下载导读PaddleNLP 作为易用且强大的 LLM/SLM 库在slm/examples目录下沉淀了覆盖词法分析、文本分类、文本匹配、机器翻译、信息抽取、情感分析、语义索引、小样本学习等主流 NLP 任务的丰富示例。本文以该示例库为核心梳理其目录结构与任务覆盖范围深入剖析每个代表性示例的实现路径、数据格式、训练/评估/部署命令及参数含义并结合仓库源码给出可复现、可扩展的实战方案帮助开发者快速找到与自身业务匹配的参考样例并落地应用。示例库概览覆盖从研究到产业应用的完整任务版图PaddleNLP 的示例库位于仓库 slm/examples 目录旨在提供覆盖从研究到产业应用的丰富示例加速开发者文本任务开发效率。整个示例库围绕三大板块组织NLP 基础技术、NLP 系统应用与NLP 拓展应用同时仓库中还补充了 benchmark 评测与 torch 迁移等工程化主题。从目录结构看示例库当前包含以下 20 个顶级目录目录所属板块核心任务lexical_analysis基础技术词法分析分词、词性标注、专名识别text_matching基础技术文本匹配text_summarization基础技术文本摘要semantic_indexing基础技术语义索引information_extraction基础技术信息抽取sentiment_analysis系统应用情感分析machine_translation系统应用机器翻译simultaneous_translation系统应用同声翻译machine_reading_comprehension系统应用阅读理解few_shot拓展应用小样本学习text_to_knowledge拓展应用知识关联与挖掘解语model_compression拓展应用模型压缩text_graph拓展应用文本图学习contrastive_learning拓展应用对比学习Embeddingcode_generation其他代码生成model_interpretation其他模型可解释性multimodal其他多模态torch_migration其他PyTorch 迁移复现benchmark其他评测基准Lambada、WikiText、GLUE 等下面按照基础技术 → 系统应用 → 拓展应用的主线逐一深入剖析各代表性示例的技术要点与实战命令。NLP 基础技术示例词法分析Lexical Analysis词法分析任务是 PaddleNLP 基础技术中的经典序列标注任务完整示例位于 lexical_analysis。任务输入为一个字符串句子输出为句子中的词边界、词性以及实体类别。示例采用经典的GRU CRF序列标注建模方式输入采用 one-hot 方式表示每个字以一个 id 表示one-hot 序列通过字表转换为实向量表示的字向量序列字向量序列作为双向 GRU的输入学习特征表示示例堆叠了两层双向 GRU 以增强学习能力CRF 层以 GRU 学习到的特征为输入、以标记序列为监督信号完成序列标注解码。数据准备与格式执行以下命令下载并解压示例数据集python download.py --data_dir ./训练数据除第一行固定的text_a\tlabel开头外后续每行由两列组成、以制表符分隔第一列是 utf-8 编码的中文文本以\002分割每个字第二列是对应每个字的标注同样以\002分隔。标注采用IOB2 标注体系X-B表示类型为 X 的词开始X-I表示持续O表示不关注的字在词性、专名联合标注中实际不存在 O。数据示例如下除\002了\002他\002续\002任... p-B\002p-I\002r-B\002v-B...其中词性与专名类别标签集合如下词性标签 24 个小写字母专名类别标签 4 个大写字母。值得说明的是人名、地名、机构名、时间四类存在两套标签PER/LOC/ORG/TIME与nr/ns/nt/t被标注为第二套标签的词是模型判断为低置信度的实体词开发者可据此在四类实体的准确率与召回率之间做出权衡。标签含义标签含义标签含义标签含义n普通名词f方位名词s处所名词t时间nr人名ns地名nt机构名nw作品名nz其他专名v普通动词vd动副词vn名动词a形容词ad副形词an名形词d副词m数量词q量词r代词p介词c连词u助词xc其他虚词w标点符号PER人名LOC地名ORG机构名TIME时间模型训练、评估、导出与预测单卡训练python train.py \ --data_dir ./lexical_analysis_dataset_tiny \ --model_save_dir ./save_dir \ --epochs 10 \ --batch_size 32 \ --device gpu \ # --init_checkpoint ./save_dir/finaldata_dir数据集所在文件夹路径model_save_dir训练期间模型保存路径epochs模型训练迭代轮数batch_size每次迭代每张卡上的样本数目device训练设备gpu表示使用 GPU、xpu表示百度昆仑卡、cpu表示 CPUinit_checkpoint模型加载路径通过设置可启动增量训练。多卡训练使用 Paddle 分布式启动器python -m paddle.distributed.launch --gpus 0,1 train.py \ --data_dir ./lexical_analysis_dataset_tiny \ --model_save_dir ./save_dir \ --epochs 10 \ --batch_size 32 \ --device gpu模型评估加载训练保存的 checkpoint 在测试集上验证./save_dir/model_100.pdparams是训练过程中保存的参数文件需替换为实际路径python eval.py --data_dir ./lexical_analysis_dataset_tiny \ --init_checkpoint ./save_dir/model_100.pdparams \ --batch_size 32 \ --device gpu模型导出动态图训练结束后可将参数导出为静态图参数实现见export_model.py静态图参数保存在output_path指定路径python export_model.py --data_dir./lexical_analysis_dataset_tiny --params_path./save_dir/model_100.pdparams --output_path./infer_model/static_graph_params其中params_path是动态图训练保存的参数路径output_path是静态图参数导出路径。导出后即可用于部署deploy/predict.py提供了 Python 部署预测示例# 开启 PIRPaddlePaddle 3.0.0 默认 python deploy/predict.py --model_fileinfer_model/static_graph_params.json --params_fileinfer_model/static_graph_params.pdiparams --data_dir lexical_analysis_dataset_tiny # 未开启 PIR python deploy/predict.py --model_fileinfer_model/static_graph_params.pdmodel --params_fileinfer_model/static_graph_params.pdiparams --data_dir lexical_analysis_dataset_tiny模型预测对无标签数据启动预测python predict.py --data_dir ./lexical_analysis_dataset_tiny \ --init_checkpoint ./save_dir/model_100.pdparams \ --batch_size 32 \ --device gpu输出形如(大学, n)(学籍, n)(证明, n)(怎么, r)(开, v)的分词与词性标注结果。Taskflow 一键预测与自定义模型示例还演示了使用 PaddleNLP 的Taskflow工具对文本进行一键分词from paddlenlp import Taskflow lac Taskflow(lexical_analysis) lac(LAC是个优秀的分词工具) # [{text: LAC是个优秀的分词工具, segs: [LAC, 是, 个, 优秀, 的, 分词, 工具], tags: [nz, v, q, a, u, n, n]}] lac([LAC是个优秀的分词工具, 三亚是一个美丽的城市])任务默认路径为$HOME/.paddlenlp/taskflow/lexical_analysis/lac/包含执行任务所需的全部文件。如需定制化分词及标注结果可通过task_path加载自定义词法分析模型自定义目录需包含以下文件用户自己的模型权重与标签字典custom_task_path/ ├── model.pdparams ├── word.dic ├── tag.dic └── q2b.dic加载方式from paddlenlp import Taskflow my_lac Taskflow(lexical_analysis, model_path./custom_task_path/)Taskflow 的完整用法可进一步参考 docs/zh/model_zoo/taskflow.md。需要说明的是原始文档中引用的 LAC 预训练模型、PaddleHub 分词模型等外部资源链接不在本仓库内如需使用可直接参考百度 LAC 开源项目。文本匹配Text Matching文本匹配是 NLP 领域基础且重要的方向研究的是两段文本之间的关系。文本相似度计算、自然语言推理、问答系统、信息检索等任务都可抽象为文本匹配问题信息检索归结为搜索词与文档资源的匹配问答系统归结为问题与候选答案的匹配复述识别归结为两个同义句的匹配。文本匹配任务每个样本通常由两个文本组成query, title类别为 0不匹配或 1匹配。示例库 text_matching 提供了面向搜索、推荐系统排序模块与召回模块的常规解决方案覆盖三种主流范式单塔 Point-wise 语义匹配模型ernie_matching模型精度高、计算复杂度高适合直接进行语义匹配二分类的应用场景单塔 Pair-wise 语义匹配模型ernie_matching模型精度高、计算复杂度高对文本相似度的序关系建模能力更强适合将相似度特征作为上层排序模块输入特征的应用场景双塔 Point-wise 语义匹配模型SimNet 与 Sentence Transformers计算效率更高适合对延迟要求高、根据语义相似度进行粗排的应用场景。其中ernie_matching展示了基于预训练模型 ERNIE-Gram 训练单塔 Point-wise Pair-wise 语义匹配模型SimNet展示了使用 CNN、LSTM、GRU 等网络完成文本匹配任务Sentence Transformers展示了以 ERNIE 为代表的模型 Fine-tune 完成文本匹配任务。语义索引Semantic Indexing语义索引是搜索引擎、推荐系统、广告系统在召回阶段的核心技术之一其模型效果直接决定语义相关的物料能否被成功召回进入上层排序。示例库 semantic_indexing 提供了前沿语义索引策略的训练、效果评估方案支持基于开源的语义索引模型进行文本 Pair 相似度计算或 Embedding 语义表示抽取。示例基于 ERNIE1.0 热启分别采用In-batch negatives与HardestNeg策略开源了batch_neg_v1.0和hardest_neg_v1.0模型模型参数TrasformerLayer:12, Hidden:768, Heads:12, OutputEmbSize: 256相比 Baseline 效果显著提升模型Recall10Recall50策略简要说明Baseline46.9960.84标准 pair-wise 训练范式随机采样产生负样本In-batch negatives51.204.2167.246.4在 Batch 内同时使用 batch_size 个负样本训练HardestNeg50.223.2365.174.33在 Batch 内先挖掘最难负样本再 pair-wise 训练数据准备训练数据每一行由 tab 分隔的语义相似文本 Pair 对组成欢打篮球的男生喜欢什么样的女生 爱打篮球的男生喜欢什么样的女生 我手机丢了我想换个手机 我想买个新手机求推荐评估集same_semantic.tsv中第 1 列文本作为输入模型的源文本 Source Text第 2 列作为语义相似的目标文本 Target Text召回库corpus_file则抽取出训练集所有文本与验证集所有 Target Text 构成。数据依赖hnswlib库用于 ANN 建索引。代码结构与训练|—— train_batch_neg.py # In-batch negatives 策略的训练主脚本 |—— train_hardest_neg.py # HardestNeg 策略的训练主脚本 |—— batch_negative |—— model.py # In-batch negatives 策略核心网络结构 |—— hardest_negative |—— model.py # HardestNeg 策略核心网络结构 |—— ann_util.py # Ann 建索引库相关函数 |—— base_model.py # 语义索引模型基类 |—— data.py # 数据读取、数据转换等预处理逻辑 |—— evaluate.py # 根据召回结果和评估集计算评估指标 |—— predict.py # 给定输入文件计算文本 pair 的相似度 |—— recall.py # 基于训练好的语义索引模型从召回库中召回相似文本基于In-batch negatives策略训练指定 GPU 0,1,2,3python -u -m paddle.distributed.launch --gpus 0,1,2,3 \ train_batch_neg.py \ --device gpu \ --save_dir ./checkpoints/ \ --batch_size 64 \ --learning_rate 5E-5 \ --epochs 3 \ --output_emb_size 256 \ --save_steps 500 \ --max_seq_length 64 \ --margin 0.2 \ --train_set_file semantic_pair_train.tsv参数含义device使用 cpu/gpu 训练save_dir模型存储路径output_emb_sizeTransformer 顶层输出的文本向量维度save_steps模型存储 checkpoint 的间隔 steps 数margin正样本相似度与负样本之间的目标 Gaptrain_set_file训练集文件。基于HardestNeg策略的训练脚本train_hardest_neg.py参数与上述完全一致。效果评估与预测语义索引评估目标为给定输入文本模型从海量候选召回库中快速、准确召回一批语义相关文本。评估分为三步首先基于模型抽取召回库文本向量并用 ANN 引擎建索引当前基于 hnswlib然后抽取评估集 Source Text 向量在索引库中查询召回 Top50 相似 Target Text最后基于评估集和召回结果计算 R10 与 R50python -u -m paddle.distributed.launch --gpus 0 --log_dir recall_log/ \ recall.py \ --device gpu \ --recall_result_dir recall_result_dir \ --recall_result_file recall_result.txt \ --params_path ${checkpoints_params_file} \ --hnsw_m 100 \ --hnsw_ef 100 \ --batch_size 64 \ --output_emb_size 256 \ --max_seq_length 60 \ --recall_num 50 \ --similar_text_pair semantic_similar_pair.tsv \ --corpus_file corpus_file参数含义recall_result_dir/recall_result_file召回结果存储目录与文件名params_path待评估模型参数文件hnsw_m/hnsw_efhnsw 算法参数保持默认即可recall_num对 1 个文本召回的相似文本数量similar_text_pair评估集corpus_file召回库数据。随后运行evaluate.py产出 R10 和 R50 指标python -u evaluate.py \ --similar_pair_file semantic_similar_pair.tsv \ --recall_result_file ./recall_result_dir/recall_result.txt \ --recall_num 50预测则基于模型计算文本 Pair 的语义相似度输入为 tab 分隔的 tsv 文件python -u -m paddle.distributed.launch --gpus 0 \ predict.py \ --device gpu \ --params_path ./checkpoints/batch_neg_v1.0.0/model_state.pdparams \ --output_emb_size 256 \ --batch_size 128 \ --max_seq_length 64 \ --text_pair_file ${your_input_file}两种负采样策略的核心思路In-batch negatives策略的训练数据为语义相似的 Pair 对其核心是在 1 个 Batch 内同时基于 N 个负例进行梯度更新将 Batch 内除自身之外其它所有 Source Text 对应的 Target Text 作为负例。例如 Batch size4 时我手机丢了我想换个手机有 1 个正例和 3 个负例。HardestNeg策略的核心则是在 Batch 内所有负样本中先挖掘出最难区分的负样本再基于最难负样本进行梯度更新促使模型学到更细腻的判别能力。示例同时集成了基于 Paddle 自定义算子能力的 FastGeneration 高性能预测 API基于 FasterTransformer 思路并给出了多组 batch size / max_seq_len 下的性能评测数据表测试环境为 NVIDIA Tesla V100 16G 单卡、Paddle 2.2.1、CUDA 10.1、cuDNN 7.6可使用faster_predict.py配合--use_fp16加速推理。需要说明的是示例文档中给出的加速比等数据均为该项目当时测试环境的实测结果实际部署时请以当前 Paddle 版本与硬件环境重新验证。信息抽取Information Extraction信息抽取示例位于 information_extraction包含 DuEE事件抽取、DuIE关系抽取、DuUIE通用信息抽取、msra_ner命名实体识别与 waybill_ie快递单信息抽取五个子示例。以 waybill_ie 为例它演示了如何从快递单中抽取姓名、电话、省、市、区、详细地址等内容并形成结构化信息。数据集中以特殊字符\t分隔文本与标签以\002分隔每个字标注采用BIO 模式Bbegin表示标签类别的开头如 P-B 指姓名开头Iinside表示标签延续O 表示无关字符。标签定义如下标签定义标签定义P-B姓名起始位置P-I姓名中间位置或结束位置T-B电话起始位置T-I电话中间位置或结束位置A1-B省份起始位置A1-I省份中间位置或结束位置A2-B城市起始位置A2-I城市中间位置或结束位置A3-B县区起始位置A3-I县区中间位置或结束位置A4-B详细地址起始位置A4-I详细地址中间位置或结束位置O无关字符示例提供BiGRUCRF与ERNIEFC两种模型结构前者显存占用小、推理速度快后者收敛更快、精度更高但推理较慢。分别通过run_bigru_crf.py与run_ernie.py启动训练并通过export_ernie_model.py、export_ernie_crf_model.py、export_bigru_crf_model.py导出静态图模型随后可配合deploy/python进行部署预测。NLP 系统应用示例机器翻译Machine Translation机器翻译是利用计算机将一种自然语言源语言转换为另一种自然语言目标语言的过程。示例库 machine_translation 以 WMT14 EN-DE 数据集为示例配套 Transformer 翻译模型的完整训练、评估与部署流程。使用示例前需额外安装attrdict、pyyaml、subword_nmt以及可选的fastBPE。数据准备内置数据集与自定义数据集使用内置数据集编写如下代码即可自动载入 WMT14 EN-DE 数据数据集会自动下载并解压到~/.paddlenlp/datasets/WMT14ende/datasets load_dataset(wmt14ende, splits(train, dev))使用自定义数据集可先通过 shell 脚本完成数据下载与 bpe 训练再调用preprocessor/preprocessor.py完成词表构建、数据集文件整理与 bpe 分词可选# 数据下载、处理包括 bpe 的训练 bash preprocessor/prepare-wmt14en2de.sh --icml17 # 数据预处理 DATA_DIRexamples/translation/wmt14_en_de python preprocessor/preprocessor.py \ --source_lang en \ --target_lang de \ --train_pref $DATA_DIR/train \ --dev_pref $DATA_DIR/dev \ --test_pref $DATA_DIR/test \ --dest_dir data/wmt17_en_de \ --thresholdtgt 0 \ --thresholdsrc 0 \ --joined_dictionarypreprocessor.py主要参数说明--src_lang/--trg_lang-s/-t源语言与目标语言类型如en英语、de德语、fr法语--train_pref/--dev_pref/--test_pref训练/验证/测试数据的路径与文件名前缀结合源语言名得到具体文件验证集与测试集中未在训练集出现过的 token 会被unk替换--dest_dir处理完成数据与词表的保存路径--threshold_src/--threshold_trg源/目标语言中频次低于阈值的 token 替换为unk默认 0 表示不忽略--src_vocab/--trg_vocab源/目标语言词表默认 None 表示根据训练集重新生成若共用词表则使用--src_vocab--nwords_src/--nwords_trg词表最大大小不含 special token默认不限制--align_file是否将平行语料整合成一个文件--joined_dictionary源/目标语言是否共用同一份词表--only_source/--dict_only是否仅处理源语言 / 仅处理词表--bos_token/--eos_token/--pad_token/--unk_token句子开始、结束、padding 与未登录词替换标记--apply_bpe/--bpe_code是否作 bpe 分词及对应的 bpe code 文件。数据下载与处理环节还依赖 mosesdecoder 的tokenizer.perl、clean-corpus-n.perl以及 subword-nmt 的learn_bpe.py、apply_bpe.py完成分词、清洗与 bpe 学习。除 WMT14 英德外仓库还提供了prepare-wmt14en2fr.sh用于英法数据。进一步训练、评估和推理请参考 transformer/README.md其部署方案还包含 cpp、python 与 serving 三种形态。情感分析Sentiment Analysis情感分析旨在自动识别和提取文本中的倾向、立场、评价、观点等主观信息包含句子级情感分类、评价对象级情感分类、观点抽取、情绪分类等任务。示例库 sentiment_analysis 中的 skep 展示了百度研究团队提出的情感知识增强预训练模型SKEPSentiment Knowledge Enhanced Pre-training for Sentiment AnalysisACL 2020 论文。SKEP 利用无监督方法自动挖掘情感知识再利用情感知识构建预训练目标为各类情感分析任务提供统一且强大的情感语义表示。示例在语句级情感分类、评价对象级情感分类、观点抽取三类典型任务共 14 个中英文数据集上给出了验证结果例如 SST-2英文ACC 指标、ChnSentiCorp中文等数据集上的表现。同目录下还包含 textcnn 等轻量模型示例。需要说明的是示例文档中给出的具体精度数值为该论文及当时实验环境的评测结果引用时建议以原论文与当前环境复测为准。其他系统应用示例库还覆盖了同声翻译simultaneous_translation包含 STACL 模型及 demo与阅读理解machine_reading_comprehension包含 SQuAD、DuReader-robust、DuReader-yesno 等数据集为流式翻译与抽取式/是/否问答提供完整参考实现。NLP 拓展应用示例小样本学习Few-Shot LearningFew-Shot Learning 研究如何从少量有监督训练样本中学习出具有良好泛化性的模型对训练数据很少或监督数据获取成本极高的场景价值显著。示例库 few_shot 提供简单易用、全面、前沿的 FSL 策略库包含 P-tuning、EFL、PET 三种算法并在中文小样本学习测评基准 FewCLUE 上评测。以下是基于 ERNIE-1.0-Large-CW 预训练模型、在 FewCLUE 9 个任务的 test_public.json 测试集上的效果评测算法预训练模型eprstmtcsldcpiflytektnewsocnlibustmchidcslcluewscPETERNIE-1.0-Large-CW88.0363.7956.4356.5756.2772.6991.3976.0078.79P-TuningERNIE-1.0-Large-CW89.8464.5745.8057.4144.1368.5190.0074.6773.26EFLERNIE-1.0-Large-CW90.8254.4846.7154.4343.1772.6385.7161.5280.02评测注释CHID 数据集指标与 FewCLUE 榜单计算方式不同由于 iflytek 和 csldcp 标签数较多每条样本采样 5 个非正确标签作为负样本训练评测为统一配置除 EFL-iflytek 外均训练 1000 stepsEFL-iflytek 训练 5000 steps。各算法子目录p-tuning、efl、pet分别对应论文 P-TuningGPT Understands, Too、EFLEntailment as Few-Shot Learner与 PETExploiting Cloze Questions for Few Shot Text Classification的复现实现。文本知识挖掘解语Text to Knowledgetext_to_knowledge 是首个覆盖中文全词类的知识库百科知识树及知识标注与挖掘框架拥有可描述所有中文词汇的词类体系、中文知识标注工具集以及更适用于中文挖掘任务的预训练语言模型。解语由三部分构成百科知识树TermTreetermtree包括能够描述所有中文词汇的 TermType 词类体系以及 Term 关系和属性值中文知识标注工具集包括词类知识标注工具 WordTagwordtag、名词短语标注工具 NPTagnptag与适用于中文文本挖掘的预训练语言模型 ERNIE-CTMernie-ctm中文知识挖掘方案知识模板挖掘工具wordtag-ie提供灵活可配置、可快速定制的中文知识挖掘方案。开源试用版包括TermTree V1.0 试用版简化版 TermType 词类体系 约 100 万 term 集、WordTag V1.0、NPTag V1.0 与 ERNIE-CTM V1.0。应用场景 A文本挖掘/解析模板生成与匹配WordTag 整合了传统中文解析的分词、词性标注、命名实体识别能力可将任意中文句子解析为完整的词类序列。基于 WordTag 标注的样本词类序列可自动生成或配置更丰富、精准的挖掘/解析模板。例如输入美人鱼是周星驰执导的电影得到如下标注结果含wordtag_label词类标签与termid知识树关联 ID{ text: 美人鱼是周星驰执导的电影, items: [ {item: 美人鱼, offset: 0, wordtag_label: 作品类_实体, length: 3, termid: 作品与出版物_eb_美人鱼}, {item: 是, offset: 3, wordtag_label: 肯定词, length: 1, termid: 肯定否定词_cb_是}, {item: 周星驰, offset: 4, wordtag_label: 人物类_实体, length: 3, termid: 人物_eb_周星驰}, {item: 执导, offset: 7, wordtag_label: 场景事件, length: 2, termid: 场景事件_cb_执导}, {item: 的, offset: 9, wordtag_label: 助词, length: 1, termid: 助词_cb_的}, {item: 电影, offset: 10, wordtag_label: 作品类_概念, length: 2, termid: 影视作品_cb_电影} ] }取出词类序列并去除虚词、标点后即可构造挖掘匹配模板[作品类_实体][肯定词|是][人物类_实体][场景事件|执导][作品类_概念|电影]结合 TermTree 概念扩展可匹配出所有同句式文本如《狂人日记》是鲁迅创作的……、《澳门风云》是王晶创作执导的……等。WordTag 区分人物类_实体/概念、作品类_实体/概念TermTree 也区分命名实体词eb: entity base与非实体词cb: concept base可分别进行实体扩展如 周星驰→王晶与概念扩展如 电影→小说生成更丰富多样的模板。应用场景 B/C/D知识增强、图谱关联与样本优化词类知识增强的深度学习模型将 WordTag 产出的词类作为 embedding 特征叠加到文本 token 上或在 BERT 等模型中利用 position id 与可见性矩阵控制 token 和词类特征的可见性知识图谱关联term-linkingWordTagTermTree 提供通用图谱关联框架将 term-linking 拆分为基于词类的 linking仅用文本与词类特征支持切换不同应用图谱与同类同名实体词的 linking需依赖特定图谱的 SPO 知识开源版提供第一步的解决示例文本分类与文本挖掘样本优化使用 WordTag 产出样本模板、TermTree 泛化约束筛选高置信度样本或过滤不合格样本利用词类关系检测类别与样本一致性利用 TermTree 筛选样本提升低频 term 上的样本平衡性与泛化能力。此外示例文档还给出了解语的论文引用信息Zhao et al., TermTree and Knowledge Annotation Framework for Chinese Language Understanding适合在学术工作中引用。对比学习Contrastive Learningcontrastive_learning 展示了对比学习在文本向量模型Embedding Model中的应用。对比学习是一种自监督学习方法通过最大化相似样本对正样本对相似性、最小化非相似样本对负样本对相似性来学习数据表示无需明确标签、能利用大量未标注数据。数据准备Query 清洗与负样本挖掘训练数据样例为 JSON 格式包含query查询文本、pos_passage正样本列表与neg_passage负样本列表{query: 四季青的炮制方法是什么?, pos_passage: [取原药材除去残枝、枯叶及杂质略润切成丝干燥筛去灰屑。...], neg_passage: [平时多注意锻炼。饮食方面多吃大叶的绿色蔬菜...]}Query 清洗训练效果高度依赖数据质量大量相似 query 会干扰训练。清洗步骤为利用 Embedding Model 将每个 query 转为向量 → 用余弦相似度计算 query 间相似度并设置阈值去重 → 使用多卡推理与 faiss 向量索引加速。示例代码from clean_query import Clean_Query model_path BAAI/bge-m3 tokenizer_path BAAI/bge-m3 input_data_path ./toy_data/toy_source.json output_data_path ./toy_data/test_clean.json test_clean Clean_Query(model_path, tokenizer_path, input_data_pathinput_data_path, output_data_pathoutput_data_path, similarity_threshold0.70) test_clean.clean()多卡推理加速清洗python -u -m paddle.distributed.launch --devices 0,1,2,3,4,5,6,7 clean_query.py负样本挖掘高质量负样本能加速训练并增强泛化性能。步骤为构建 query 与 positive passage 的向量表示 → 在向量空间计算余弦相似度召回虽不直接相关但有一定相似性的困难负样本 → 多卡推理 faiss 加速。示例代码from mining_negative_samples import MiningNegativeSamples input_data_path ./toy_data/toy_source.json output_data_path ./toy_data/test_min_neg.json model_path BAAI/bge-m3 tokenizer_path BAAI/bge-m3 test_mining MiningNegativeSamples(model_path, tokenizer_path, input_data_pathinput_data_path, output_data_pathoutput_data_path) test_mining.mining()训练、推理与评估Embedding Model 训练代码位于仓库 llm/run_embedding.py训练示例python -u -m paddle.distributed.launch --devices 0,1,2,3,4,5,6,7 run_embedding.py ./config/xlm_roberta/emb_argument.json训练完成后进行推理评估评估指标包括 hit rate、MRR、NDCG 等model_path BAAI/bge-m3 tokenizer_path BAAI/bge-m3 query_pos_passage_path ./toy_data/toy_dev.json neg_passage_path ./toy_data/toy_dev_neg.json eval Embedding_Evaluation(model_path, tokenizer_path, query_pos_passage_path, neg_passage_path) print(eval.evaluate())其中query_pos_passage_path为待评估的 query-正样本对数据neg_passage_path为参与评估的负样本数据推理评估后将打印并返回 Hit_rate、MRR、NDCG 等评价指标。多卡推理评估使用embedding_evaluate.py脚本配合paddle.distributed.launch启动。示例还注明借鉴了 FlagEmbedding 中 Hard Negative Mining 相关教程的代码设计思路。评测基准与工程化示例Benchmark 评测benchmark 目录提供了若干模型评测基准其中 wiki_lambada 演示了在 Lambada 与 WikiText 数据集上评估语言模型# 验证 Lambada 数据集 python eval.py \ --model_name_or_path /path/to/your/model \ --batch_size 4 \ --eval_path /path/to/your/dataset/lambada_test.jsonl \ --tensor_parallel_degree 1 \ --cloze_eval # 验证 WikiText 数据集 python eval.py \ --model_name_or_path /path/to/your/model \ --batch_size 4 \ --eval_path /path/to/your/dataset/wikitext-103/wiki.valid.tokens \ --tensor_parallel_degree 1此外还有 ceval、clue、glue、peft 等评测示例覆盖中文综合能力、NLP 经典基准与参数高效微调等场景。模型压缩、文本图学习与多模态等拓展模型压缩model_compression提供 distill_lstm、minilmv2、ofa、pp-minilm 等蒸馏与裁剪方案其中 pp-minilm 还包含 general_distill 与 serving 部署文本图学习text_graph/erniesage基于 ERNIESage 模型将文本与图结构结合进行表示学习多模态multimodal涵盖 LayoutLM、LayoutXLM、MiniGPT4 等图文模型示例模型可解释性model_interpretation提供可解释性分析相关示例代码生成code_generation/codegenCodeGen 模型示例PyTorch 迁移torch_migration提供从 PyTorch 迁移到 Paddle 的分步复现流程Step1Step5示例文档给出了安装 PaddlePaddle 与 PyTorch 的具体命令其中依赖版本要求以各示例的requirements.txt为准。如何选择适合你的示例开发者可根据业务形态快速定位示例需要分词、词性、专名识别→ 参考 lexical_analysis支持 GRUCRF 训练与 Taskflow 一键预测需要语义匹配/相似度排序/召回→ 单塔选 ernie_matching双塔粗排选 simnet 或 sentence_transformers召回阶段选 semantic_indexing需要抽取结构化字段→ 参考 information_extraction事件、关系、NER、快递单需要翻译/摘要/阅读理解/情感分析→ 分别参考 machine_translation、text_summarization、machine_reading_comprehension、sentiment_analysis监督数据稀缺→ 参考 few_shot 的 P-tuning/EFL/PET 策略中文知识挖掘与图谱关联→ 参考 text_to_knowledge 的 WordTag TermTree 方案文本向量表示与检索排序→ 参考 contrastive_learning 的 Query 清洗、负样本挖掘与 Embedding 训练评估全流程。总结slm/examples示例库完整覆盖了从基础词法分析、文本匹配、语义索引、信息抽取到机器翻译、情感分析等系统应用再到小样本学习、知识挖掘、对比学习等拓展方向并配套模型压缩、评测基准与 PyTorch 迁移工程化支撑。每个示例均遵循数据准备 → 训练 → 评估 → 导出/部署 → 预测的完整闭环可直接复现、可按需替换自有数据是快速上手 PaddleNLP 各类文本任务、验证算法思路与落地产业应用的首选参考。赞分享人工智能大模型预训练微调LoRARLHF强化学习分布式训练【免费下载链接】PaddleNLPEasy-to-use and powerful LLM and SLM library with awesome model zoo.项目地址https://gitcode.com/gh_mirrors/pa/PaddleNLP点击查看免费下载相关推荐地理信息系统技术生态全景指南从基础工具到前沿应用地理信息系统技术生态全景指南从基础工具到前沿应用 地理信息系统GIS是一门融合空间数据处理、地图可视化与地理分析的交叉学科而 awesome gis 项文档GISSlacker文件上传与消息管理企业级Slack集成开发最佳实践Slacker文件上传与消息管理企业级Slack集成开发最佳实践 Slacker是一个功能全面的Python Slack API客户端为开发者提供了便捷的企终极免费股票分析平台OpenStock完整搭建指南与专业级功能深度解析终极免费股票分析平台OpenStock完整搭建指南与专业级功能深度解析 在金融市场数据日益昂贵的今天OpenStock作为一款完全开源的专业级股票分析平台金融科技前端后端AI 应用上一篇免费开源的智能文档扫描终极指南告别纸质文件烦恼下一篇Dialyxir 50警告类型详解每个警告的成因、示例与修复方法创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

librosa.display 深度解析:基于 matplotlib 的音频与音乐可视化 API 全解 2026/9/25 5:40:16

librosa.display 深度解析:基于 matplotlib 的音频与音乐可视化 API 全解

音频处理科研 【免费下载链接】librosa Python library for audio and music analysis 项目地址: https://gitcode.com/gh_mirrors/li/librosa 点击查看 免费下载 本文围绕 librosa 官方文档中的 Display API 索引页 展开,系统讲解 librosa.display 模块…

阅读更多 →
Apache Beam 基础设施合规强制模块:IAM 策略与服务账号密钥漂移检测实战 2026/9/25 5:40:16

Apache Beam 基础设施合规强制模块:IAM 策略与服务账号密钥漂移检测实战

大数据批处理流处理数据工程 【免费下载链接】beam Apache Beam is a unified programming model for Batch and Streaming data processing. 项目地址: https://gitcode.com/gh_mirrors/beam4/beam 点击查看 免费下载 infra/enforcement 是 Apache Beam 仓库中用于…

阅读更多 →
Atlas 300V 24G跑YOLO全流程:从环境搭建到推理优化 2026/9/25 5:40:09

Atlas 300V 24G跑YOLO全流程:从环境搭建到推理优化

干了这么多年AI部署,说实话被各种推理卡折磨过不少回,Atlas 300V 24G 这张卡算是让我印象比较深的一张。一开始单纯以为它就是一张普通的 PCIe 加速卡,结果从驱动到算子适配到模型转换,每一步都有它自己的脾气。这篇文章就围绕 At…

阅读更多 →
Atlas 300V 24G推理加速卡部署YOLOv5全流程实战 2026/9/25 5:40:09

Atlas 300V 24G推理加速卡部署YOLOv5全流程实战

最近在折腾Atlas这块卡,把YOLO模型从PyTorch一路迁移到昇腾推理环境,踩了不少坑,也终于理清了整套流程。先说结论:Atlas 300V 24G确实是运算加速卡,但更准确的说法是AI推理加速卡,它和打游戏的显卡、跑训练…

阅读更多 →
CIFAR-10/CIFAR-100稳定下载与数据验证指南 2026/9/25 5:40:03

CIFAR-10/CIFAR-100稳定下载与数据验证指南

1. 项目概述:为什么CIFAR-10和CIFAR-100仍是深度学习入门绕不开的“第一块砖”你刚打开PyTorch文档,想跑通第一个图像分类模型,官方教程里赫然写着torchvision.datasets.CIFAR10;你在Keras官网上找示例代码,tf.keras.d…

阅读更多 →
Atlas 300V Pro 24G推理卡部署YOLO实战:从环境搭建到性能调优 2026/9/25 5:39:57

Atlas 300V Pro 24G推理卡部署YOLO实战:从环境搭建到性能调优

1. 一张24GB的推理卡,先搞清楚它能干什么先回答那个被反复问到的问题:Atlas 300V 24G确实是运算加速卡,而且不是那种插在个人电脑里跑游戏的显卡,它的定位是数据中心和边缘服务器里的AI推理加速卡。很多朋友看到“300V”“24G”第…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉