别人是面向"对象"学习,我呢?面向Boss直聘学习。无疑,今年生成式AI的火热,aigc+方向可谓首选。在刷完一堆吴恩达和他的朋友们的课后,在Boss上看到这则招聘,方向有了...
AIGC前端工程师
我是看PHP入门开发的,无聊的CRUD和命令行,让我把陈小春的《神啊救救我吧》听了一百遍。有天,亲戚小孩把奥特曼摆到了家里的神龛上,对着光之使者磕头跪拜,可爱之外让人哭笑不得,那时我正敲着js代码写一个页面特效... 后来我成了一名前端工程师,写代码的时候,眼里是经常会有光的。我觉得我在写前端的时候,并不是在写代码,而是一位导演,html是我的演员,css是化妆师, js是动作导演或特效师,将自己的创意代码展示给用户。
时光穿梭,经历了全栈、微服务、云开发等技术变革后,来到了AI的时代。作为一名前端工程师,应该怎么学习,跟Boss谈“心”呢?
在看了一些AI算法和吴恩达的课程后,我又想起了那尊被小孩摆在神龛上的奥特曼。我的AI学习是要有光的,AIGC前端方面的东西才是我想要搞明白的。在经过一些摸索后,发现Hugging Face的transformers可以让前端更快速找到AI任务快感,LangChain可以方便做出AI应用,Flowise这种AI低代码实现让枯燥的AI流程一看便知,于是,为了明年在AIGC前端方向上好跟Boss谈,我计划写些文章,记录自己学习的过程。应该有挺多前端朋友,也跟我一样吧,那就来帮我指出一些问题吧....
何为Hugging Face?
Hugging Face 仿佛就是那一道从奥特曼手里射出的光,让我从NLP的理论学习痛苦中抽离出来,快速消灭了一些NLP“怪兽”。
Hugging Face 是目前最火的NPL开源社区,里面有着丰富的开源大模型和数据集,简化了开发流程,提供了类似github page一样的在线项目托管工具,非常适合前端AIGC新人来玩,发布项目。
核心产品Transformers库
Hugging Face的核心产品是Transformers库,它提供了一系列预训练模型和API,用于解决各种NLP任务,如文本分类、命名实体识别、机器翻译等。Transformers库还提供了一系列工具和API,用于简化模型训练和部署的流程。
基于我的渣渣电脑,建议就直接上手 Google Colab 来个transformers初体验。
pipeline 一个情感分析任务
常见的NLP任务有文本分类(Text Classification)、命名实体识别(Named Entity Recognition)、机器翻译(Machine Translation)、问答系统(Question Answering)、序列标注(Sequence Labeling)、文本生成(Text Generation)等,接下来的代码就是文本分类里的情感分析任务,在transfomers里,我们用pipeline来安排一个NPL任务。
!pip install transformers # 安装huggingface开源的 transformers库
from transformers import pipeline # pipeline是 transfromers的模块,专业安排各种NLP。
classifier = pipeline('sentiment-analysis') #安排了情感分析任务
result = classifier('I love you')[0] #返回情感分析结果
print(f"label: {result['label']}, with score: {round(result['score'], 4)}")
输出结果为: label: POSITIVE, with score: 0.9999 0.9999的积极, 当然,写代码的尽头是为了爱....
自此,我们就利用Hugging Face 的 transformers库完成了第一个情感分析任务,我这位前端小学生又要跟着奥特曼飞向AIGC的星系了。
pipeline 一个机器翻译的例子
from transformers import pipeline
translator = pipeline("translation_en_to_fr")
result = translator("Hugging Face is a technology company based in New York and Paris", max_length=40)
print(result[0]['translation_text'])
输出结果为: Hugging Face est une entreprise technologique basée à New York et à Paris.
pipeline 一个问答系统的例子
from transformers import pipeline
question_answerer = pipeline("question-answering")
context = r"""
Machine learning (ML) is the study of computer algorithms that improve automatically through experience.
It is seen as a subset of artificial intelligence. Machine learning algorithms build a model based on
sample data, known as "training data", in order to make predictions or decisions without being explicitly
programmed to do so. Machine learning algorithms are used in a variety of applications, such as email
filtering and computer vision, where it is difficult or infeasible to develop a conventional algorithm
for effectively performing the task.
"""
result = question_answerer(question="What is machine learning?", context=context)
print(f"Answer: {result['answer']}")
输出结果为: the study of computer algorithms that improve automatically through experience
总结
以上我们介绍了Hugging Face 的 transformers库,轻松上手了一些常见NLP任务。大家可以到Pipelines (huggingface.co)看更多NLP任务, 亲手把玩。
思考题
请把上面代码里的 “I love you” 改成 “遥遥领先”,看看结果, 有什么问题? 期待评论区有你的代码实现。 下一集 transformers model 来解决这个问题。