AI应用—C++在AI中的应用
一、C++和AI
可能对大多数AI开发者来说,应用最广泛的当然是Python,而且Python也正是因为AI的大火使其排名直线上升到了No.1。但如果细究起来,大家可以发现,其实在AI的基础建设中,C++也起着不可忽视的重要作用,特别是在前期,C++的作用更是明显。
其实近些年AI的发展并没有想象的那么好,当初的机器学习在实际应用中根本就没有什么突出的亮点,不过随着谷歌的Deep learning的出现,使得整个AI的发展出现了一个跳跃式的进步,虽然深度学习算是一个热点,但真正让AI火热起来的,是近些年的大模型,大模型的发展,虽然没有真正让AI达到人们期望的目的,但至少是朝着那个方向迈进了较大的一步。
二、AI中的C++应用场景
C++在AI中的应用是一个全方位的应用,当然,可能存在着在某些场景下应用范围较小,有些较大的情况。C++在当前AI中的应用主要包括三个层次:
1、AI本身的建设
主要包括:
1)深度学习的基础框架的支持:如Tesorflow和MXNET,而现在应用广泛的Pytorch其某些计算模块仍然使用的是C++实现的
2)AI相关算法的模块或库:比如相关的卷积运算、RBM及其它一些算法
3)嵌入式场景或移动场景:如嵌入式AI及机器人相关等的应用(也包括类似边缘计算相关场景)
4)优化和加速:对相关场景下的处理加速(如NLP中的分词等)和大模型的推理优化等
2、AI支撑建设
1)海量数据的处理,如图像、音视频及其它相关数据
2)硬件和驱动的支持,比如操作与之相关的显卡、CPU等的优化、虚拟设备的优化等
3、AI辅助系统
1)并行计算的支持:比如使用CUDA等框架进行AI开发
2)控制调度:比如对一些场景的决策和分析等
2)其它:包括围绕AI相关的应用的开发和相关技术支持如跨平台的编译支持等
三、相关的C++的框架和库
因为AI现在已经在实际应用中全面开花,包括图像识别、语音和视频处理、自然语言处理等等,不过仍然可以根据其本身应用和支持应用和辅助应用区别划分相关的框架和库:
1、AI本身的开发
如TensorFlow、LibTorch以及Caffe等
2、AI支持相关
如Dlib、Kaldi、HTK、llama.cpp等
3、AI辅助相关
如OpenCV、Matlab等
其实在实际的AI开发中,应用的C++库还有很多,由于对AI的认知和理解的程度,只能把一些自己了解的库给大家列举上来,有兴趣的可以自己去查看相关的书籍资料,其实相关的库和框架是非常多的。
四、总结
在AI的应用中,C++有其自有的优势,当然也有不小的劣势。现在主流的AI开发中,中下层基本是Python为主,不过正如前面分析,在一些特定的算法和效率提升方向上,C++有着不可替代的重要作用。这其实就是“君子性非异也,善假于物也”的一个非常好的诠释。