FDE Times 数据在招 FDE 职位 863▼55 近 7 天在招职位数的变化(同口径比较):不计入本周新开始追踪的公司的职位近 7 天新增 71在招公司 181支持远程 24%美国薪资中位数 $200k招聘最多 Palantir 95
ENVI

前线部署工程师(FDE)的专业媒体

书籍与课程

Hugging Face 免费课程教 FDE 把微调放到最后

前三章与客户项目的顺序一致:先用 pipeline() 建基线,再检查数据;建议每章学一周,每周 6 至 8 小时。

分享微博

要点速览

  • 课程由来自 Hugging Face 及其贡献者的十位作者编写,免费、无广告,代码采用 Apache-2.0 许可证,越南语译本已完成。
  • 前三章的顺序与 FDE 在客户现场的工作顺序一致:用 pipeline() 建基线,用分词器理解数据,用 Trainer 微调。
  • 每章每周约需 6-8 小时。按这个节奏,学完前三章就足以用自己的真实数据启动一个小项目。
示意图由三张依次相连的卡片组成。第 1 周,pipeline():建立基线,把几十条真实工单丢进现成的分类 pipeline,统计分错的条目。第 2 周,分词器,以橙色突出并标注“最需慢读”:检查数据,用分词器处理工单本身,例如一句简短的“没收到货”,看它如何切分。第 3 周,Trainer API:微调,主要工作是构建标签清晰的数据集、划分训练集/测试集并经过正确的分词器。一个箭头从微调绕回基线:把微调模型与基线对比,得出可以拿给客户看的结果。
按 1、2、3 的顺序,每周一章:只有手里有基线可供对比,才知道微调值不值得。

设想一家物流公司,想把客服工单自动分成五类。那里没人会问 Transformer 是什么。他们关心的是:几周之内,你能不能交付一个在他们自己数据上跑得通的模型。

Hugging Face LLM Course 的前三章,差不多就在回答这个问题。Hugging Face 并没有把这门课定位成项目方法论,但用前线部署工程师(FDE)的眼光来读,这三章的顺序恰好对应客户现场的工作流程:先建基线,再看数据,最后才微调。

课程免费、无广告,并以 Apache-2.0 许可证开源。越南语版已列入已完成的译本。对想转向前线部署工程的开发者来说,入门成本几乎为零。

谁写的,该按什么节奏学?

十位作者来自 Hugging Face 及其贡献者,包括 Sylvain Gugger、Lewis Tunstall、Leandro von Werra、Merve Noyan 和 Ben Burtenshaw。官方页面标题是“Welcome to the 🤗 Course!”,引用格式为“The Hugging Face Course, 2022”。

GitHub README 对课程目标的描述是:教会读者把 Transformers 应用于各类自然语言处理任务及更多场景。建议节奏为每周一章,每周约 6-8 小时。

仓库对所有人开放阅读,但 Hugging Face 目前不接受社区为新章节贡献内容。这对学习者没有影响:你是来学习和读代码的,前三章已经足够开工。

思路一:先建基线,再选模型

第 1 章讲 pipeline() 函数,用于文本生成、分类等任务。听上去很简单,但正是这个习惯,把 FDE 和只会做 demo 的人区分开来。

回到那家物流公司。第一天不该提微调。拿几十条真实工单,丢进现成的分类 pipeline,数一数分错了多少条。这个数字就是基线:之后任何方案都必须超过它。

如果基线已经够用,你就替客户省下了几周工作量。如果不够,分错的工单清单会告诉你该往哪里查。

思路二:真实数据往往在分词器这一步变形

第 2 章把分词器的作用概括得很简洁:把文本转换成模型能处理的数据。随后比较了三种切分方式:按词(word-based)、按字符(character-based)和按比词更小的单位(subword)。子词一类包括 GPT-2 使用的 BPE、BERT 使用的 WordPiece,以及 SentencePiece/Unigram。

这一章要读得最慢,因为客户数据从来不像示例那样干净。假设物流工单里有“ko dc giao hang”这样的句子,这是越南语“没收到货”的缩写,打字时省掉了声调符号;或者句子中间粘着一个运单号。

从原理上说,基于词的分词器会经常遇到词表外的词。子词分词器会把陌生词拆成已知的片段,但这些片段是否还保留原意,只有亲眼看过才知道。

第一件事,就是用你打算采用的模型的分词器,去跑这些工单本身,亲眼看看切分结果。这五分钟往往就能解释基线为什么失败,赶在有人怪罪模型之前。

思路三:微调的大部分工作是准备数据

第 3 章按照当下的最佳实践,讲解如何用高层的 Trainer API 微调。但这一章的另一半,即借助 🤗 Datasets 的新功能从 Hub 准备大型数据集,才最贴近实际工作。

在物流的例子里,难点不在调用 Trainer,而在于把几千条杂乱的工单整理成数据集:标签清晰,训练集/测试集划分合理,并且使用第 2 章检查过的同一个分词器。

做完这些,剩下的就是把微调后的模型和第 1 章的基线放在一起对比。这份对比,就是你要拿给客户看的东西。

适合谁,按什么顺序学?

严格按 1、2、3 的顺序,每周一章。

理由很实际:只有手里有第 1 章的基线,才知道微调值不值得;而第 3 章的数据集,必须经过你在第 2 章弄明白的那个分词器。

如果有你所用语言的译本,会有帮助,但要和英文原版对照着用。读译本理解概念,代码和 API 名称看英文,因为文档、issue,以及以后客户提的问题,用的都是英文术语。

看岗位描述时,留意 Transformers、fine-tuning、tokenization、Hugging Face 这类关键词。简历上别写“学完了课程”,而是写一个三步项目:用 pipeline 建的基线、在真实数据上做的分词器分析、一个超过基线的微调模型,附上实测数字和仓库链接。

证书只能证明你学过。按这三章的顺序做出来的项目,才能证明你到了客户现场知道从哪里下手。

这篇文章对你有帮助吗?

4 个信源
路线图上的下一篇 · 阶段 3: AI 应用不训练模型的 FDE,也该从零写一遍 GPTKarpathy 的免费课程从 150 行的自动求导引擎一路讲到分词器,直接跳到第七讲就失去了意义。