将微调后的模型发布至 Hugging Face
发布微调后的 BERT 模型到 Hugging Face 模型库是一个很好的方式,可以让社区成员共享和使用你的工作。本文介绍了如何准备和发布你的模型到 Hugging Face。

发布微调后的 BERT 模型到 Hugging Face 模型库是一个很好的方式,可以让社区成员共享和使用你的工作。本文介绍了如何准备和发布你的模型到 Hugging Face。

pathvalidate 处理不合法的文件或路径名字符串在编程时经常需要处理文件和目录的命名,然而直接将字符串用作文件名或路径名时,可能会遇到一个常见问题:字符串中含有特殊字符或保留字,这可能导致在尝试保存文件时出现异常,如无法创建文件、路径解析错误等问题。例如,Windows 系统不允许文件名包含字符如 \、/、:、*、?、"、<、> 和 |。
本文介绍了 pathvalidate 库,它提供了一系列实用的函数,用于验证和清理文件名和路径名中的非法字符。这样我们就不必重复造轮子来处理这些特殊字符了。
np.corrcoef 计算 Pearson 和 Spearman 相关系数本文实验探究了 np.corrcoef 在对含有空值的数据计算 Pearson 相关系数和 Spearman 相关系数时的结果。
np.corrcoef 在计算相关系数时,如果数据中存在一个空值,那么空值所在列与其他列的相关系数也会为空值。np.ma.corrcoef,它的参数 allow_masked 默认为 True。当传入一个 MaskedArray 对象时,np.ma.corrcoef 会忽略掉其中的空值。argsort().argsort() 对数据进行排序后,空值会被当做最小值,它也会获得一个排序值,空值内部的排序值大小取决于该空值所在的位置。因此,计算 Spearman 相关系数时,需要先手动删除空值。在一个设备上搭建了 Conda 虚拟环境后,如果需要在另一个设备上使用相同的环境,可以制作 environment.yml 文件,方便快速地迁移,而不需要再次手动安装包。
本文记录了将 macOS 的 Conda 虚拟环境迁移到 Linux 的过程。

大语言模型可以做很多事情:给它一个提示词,它就能给出聪明的回复。但是,我们有时需要得到结构化的、具有严格类型要求的回答。例如我们需要判断一句话的情感得分,那么我们只需要得到一个数值,而不需要任何其他的元素。即使我们每次都在提示词中写上“请返回一个数值,例如 1.0。不要包含任何其他元素,只要一个数值,求你了”,模型仍然可能会返回各种奇怪的文本,这些文本在后续代码中极有可能出错。
marvin 是一个非常实用的 Python 包,它使用简单的代码和类型提示就能获取特定数据类型的返回。它的官网介绍说:
This lets you focus on what you've always focused on: writing clean, versioned, reusable code and data models, and not scrutinizing whether you begged your LLM hard enough to output JSON or needed to offer it a bigger tip for the right answer.
本文借助 marvin 用 gpt-3.5-turbo 对文本进行二分类,判断一段文本是否由大语言模型生成,而不是人类生成。

isinstance 和 type 的区别在 Python 中,isinstance 和 type 都是用于检查对象类型的函数,但它们的使用场景和结果有所不同。本文介绍了 Python 中的 isinstance 和 type 的区别。
JupyterLite 是一个轻量级的 Jupyter 笔记本环境,旨在为用户提供快速、便捷的交互式计算体验。与传统的 Jupyter 环境不同,JupyterLite 可以在不需要安装任何软件的情况下直接在浏览器中运行。
有时我们希望快速测试一些简单的代码(例如得到 ChatGPT 给出的代码后),就可以用 JupyterLite 在浏览器中快速运行代码。
本文记录了如何部署 JupyterLite 站点,以及参与开源项目贡献的心得。

在 Jupyter Notebook 中,可以使用 HTML 功能来并排显示两个 Pandas DataFrame,让我们更方便地查看和对比多个表格。本文提供了一个简单的例子,展示了如何做到这一点。

在 Python 中,set 和 list 是两种不同的数据结构,它们在使用和功能上有很大的不同。set 是一个无序的、不重复的元素集合,而 list 是一个有序的、可重复的元素集合。
然而,从 set 到 list 的过程并不是一个简单的转换,因为 set 本身就是无序的,所以从 set 到 list 的过程并没有固定的顺序。这意味着每次转换得到的 list 的元素顺序可能都会不同。
在一些项目中,我们希望结果可重现,因此需要确保每一步的结果都没有随机性。许多随机性可以通过随机种子来控制,但从 set 到 list 的过程并不会被随机种子控制住,因此仍然存在随机性。
本文探讨了从 set 到 list 的过程中的随机性,亦作为排查随机性来源的一次记录。
有时需要批量替换许多 Jupyter Notebook 的内容,由于 Jupyter Notebook 并不是简单的文本文件,在读取和替换时并不像批量修改 Python 脚本那样方便。
本文介绍了使用 nbformat 批量修改 Jupyter Notebook 的内容的方法。
