研究生开学技术分享

序言

        新学期开始,导师安排任务要博士们给师弟师妹分享科研经验当作“入学培训”,但是其实本人也是直博的新生,经验不多,只能分享一些代码经验。也借此机会总结一下本科阶段的代码技术。

机器学习

        机器学习的主要能力在于进行分类、回归的监督学习任务和降维、聚类的无监督任务上。对于一些简单任务(比如可以确信自变量对因变量的确有显著影响的任务),使用scikit-learn库即可完成。对于一些目前网上的类似比赛,任务可能不会如此简单,需要再做好数据挖掘等工作。

        通用来讲,对于csv等表格类数据的回归、分类任务处理流程如下:

  1. 读取文件(pandas完成)
  2. 数据预处理(pandas完成)
    1. nan值处理
    2. 格式转化(string的数值转为float等)
    3. 独热处理(将一项离散特征的每个离散值都变为可用0、1表示的离散特征)
    4. 其他特殊处理(string信息的抽取等)
  3. 数据集划分(训练集、测试集;sklearn完成)
  4. 选用模型训练、测评(sklearn完成)

        对于简单任务,就是肯定确保能获得预测准确模型的任务,基本不用调参,亦可获得良好结果,如果不是这一类的任务,则需要进行更复杂的特化分析了,但是这一流程基本可用于大部分的课堂任务与一些经典应用场景。

深度学习

        深度学习,目前最主流的当属pytorch框架,对于普通的回归和分类,只要设计出对应的特征数量的神经元输入和输出即可,中间若干层则是可以自由DIY的,其实最普通的则是sklearn里也提供好的MLP模型。

        深度学习的基本原理是正向推理,反向优化。每一次优化都会尽量使得下一次输出更接近原来的标注结果,最终获得一个效果较好的模型。对于其优化方法的一种简单理解是,将一次推理的结果与真实值之间的误差对模型参数进行求导,将模型参数向可减小误差的方向移动一定步长(这个步长,即所谓的学习率)。

        对于复杂一些的应用场景,如计算机视觉和自然语言处理,其基本原理也是类似的,不过基本不用从头搭建模型,例如对于计算机视觉可以选择对MM、yolo系列模型进行修改或迁移学习等工作用于自身的研究领域。目前一些即插即用的注意力机制模块在这个应用上更是十分广泛。

大模型

        大模型是参数量大的模型(好像是废话,但是确实也就是这样的解释),大模型作为NLP的主要成果,是目前AI领域最为火热的话题,或许没有之一。

        普通研究者使用大模型的方法并不多,对于论文,除了模型本身算法的突破,对于数据集的制作和训练方法的研究也有较多数量的文章在发表。

        大模型在垂类领域的应用得益于迁移学习,也就是大模型微调。我们可以在一些开源模型上进行微调,让模型在某一领域上获得更多能力,或者修改基本认识(比如你可以训练xxx-xb的大模型,让它说它是由你发明的,而不是他原来的公司)。目前微调技术使用github开源的LLama-Factory即可,这个项目适配了很多的开源模型。但是如果你确实要进行上述的修改,你需要准备好自己的数据集,并在开源许可范围内合理使用。

        图像生成,建议使用DIT和stable diffusion。stable diffusion模型的文生图微调也很方便,建议使用github上diffusers项目,lora微调等。同样的,stable diffusion需要准备好数据集,这里需要parquet格式的数据,而文本的一般则是json,DIT的微调只需要准备好图片。

        对于大模型的微调,若是眼光放开一些这是一个超级广泛的领域,比如AI写作,AI总结,AI提示,AI这个AI那个,每个需要生成内容的都可以进行联系,同时也可以将其与软件本身进行结合,或者微调大模型进行回归和分类等等更加不同以往的应用。本人的想象力也是有限,仅举这些例子吧。

软件工程

        这其实是我本来的专业,但是由于研究方向越来越像AI倾斜,这一部分快被丢干净了,但是打开一些招聘软件,多数AI岗位不会仅仅需要上面那些科研能力,还是有一定数量的AI后端的能力。关于这个结合,我目前能做到的程度其实只是为大模型启动一个API,或者在jetson简单部署推理模型。

        抛开这个结合领域,对于单纯的软件工程,或者当我们需要做一些软件时,我们最基本应具有哪些能力呢。其实这里有许多可选择的技术栈,比如对于一个与特殊硬件、传感器交互时,可采用的纯python开发C端(桌面)应用,由PyQt做前端。对于数据管理软件可选用B端(浏览器)应用,则是Vue、react等前端与java后端结合;亦可使用更简单的前后端不分离的python flask、fastapi等技术完成。

        当然如果是面向当前的软件工程、前后端岗位就业,上述技术应该是远远不够的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想改代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值