LLM¶
机器生成文本检测器
简介
本应用使用 BERT 模型和 SHAP 解释性分析技术,旨在帮助用户判断一个文本是否可能由机器生成。应用允许用户输入文本,然后使用预先训练好的 BERT 模型进行分析,最后通过 SHAP 提供文本的可解释性分析,帮助理解模型的预测结果。
在线体验地址:https://machine-generated-text-detection.streamlit.app
在 Python 中调用在线大模型 API
许多大模型都提供了在线 API 接口服务,我们可以在 Python 中调用它们。本文使用 openai
、chatllm
、dashscope
等包实现了对 OpenAI、讯飞星火、智谱 AI、百度、阿里通义千问的调用。用户只需在本地用 .env
文件存储 API Key 即可快速调用这些大模型。
基于 Bert 的中文问答机器人
最终训练的模型已经部署到 Hugging Face,请尝试输入一些简单的中文段落和相关问题
本文基于 Bert 的中文分词和问答的预训练模型,利用 10, 000 余条中文问答数据进行微调,构建了能够理解中文段落并回答相关问题的问答机器人。用自定义的数据进行测试,模型的效果基本能达到“正确回答小学三年级以下的阅读理解题”的水平。
这是我第一次完整地实现一个 NLP 项目。在这个过程中,我学习了如何使用预训练模型、中文分词、准备数据、文本编码与解码、设计问答机器的损失与优化目标、导出训练模型等技术,对问答领域的 NLP 有了更透彻的理解。
理论部分可参考李沐老师的 Transformer 论文逐段精读【论文精读】 和 BERT 论文逐段精读【论文精读】。当然,如果想要理解得更透彻一些,还是应该动手写代码,看看每一步到底在做什么,到真正实现出来看到模型结果的那一刻,是非常有成就感的。
不同 GPU 平台的训练效率对比
为对比不同平台上的 GPU 的训练效率的差异,我在 Kaggle、Google Colab、趋动云和本地的 Macbook Pro M1 Pro 四台机器上分别进行了训练。对于单个 Epoch:
- 付费使用的趋动云使用 2 个 GPU 并行训练,效率最高,单个 Epoch 共耗时 4 分 40 秒;
- 免费使用的 Kaggle 耗时 9 分钟,Google Colab 耗时 17 分钟;
- 在 Macbook Pro M1 Pro 上运行效率最低,即使使用了 GPU,单个 Epoch 仍预计耗时 3 小时。