AI时代Java技术应用思考

April 12, 2024

去年OpenAI的ChatGPT火爆后,人工智能AI技术成为热点。与此对应,英伟达GPU芯片市值一路飚红,Python编程语言连续2年拿下年度编程语言,PyTorch/Pandas/NLTK 等Python开发包获得超高人气被广泛使用。

Java语言在搜索引擎和大数据时期有不错的表现,都出现了明星项目。

然而在AI时代似乎不愠不火,在一些方面的项目不但没有随着AI应用量上升,反而出现开发更新放缓迹象。

分析其原因:

  1. AI项目重点是数学计算,要充分发挥机器算力,充分压榨CPU和GPU的能力,这是native原生语言的长项。热门的算法库核心基本都是c语言编写的,Java还为跨平台而为"向后兼容"在缠斗。
  2. Python因其简明语言表达能力,封装C库成为运维工具的优选语言。对数据结构的优秀表示,以及类似IPython等交互式运行方式,自然成为AI的首选编程语言。Java自身有很多缺失,一些基于JVM的语言倒是在某些领域表现出色,比如Spark用到Scala表示数据分析处理。
  3. Java对于内存的管理方式,适合于长时间运行的服务程序,但对于短期需要高效运算就不是特别合适,JNI调用本地库使用起来也不是很方便。

但我们对Java技术在AI领域的应用前景非常看好:

  1. JDK不断增强的特性,很多帮助AI应用,比如JDK22的FFM(外部函数和内存)API,帮助Java应用方便的调取C库;启动多个文件程序,配合jshell为下一步交互式使用Java做好铺垫;以及之前的var推断类型,正在不断发展的向量API等等。Java正在朝AI所需要的方向不断提升。
  2. 和AI有关联的,比如搜索方面的Lucene项目,大数据全家桶Hadoop以及后来的 Spark,Mahout,Flink等,通通都是Java。即便是现在,互联网公司的大数据处理,Java语言和JVM运行时也还是主力。
  3. AI领域中,大语言模型等基础设施建设是一方面,另外更重要的就是应用。就和容器平台一样,K8s平台编程用Go语言,但上面跑的应用Java是主力。只要涉及到软件应用,那么对用Java编程还是不能忽视的。就像OpenAI等API,首要支持的SDK肯定是Python,Java和Javascript语言。

如今GPT等大语言模型技术已经成熟,开始运用到全球各国各个行业领域,提供AI各种服务的生态也逐步完善。

我们的技术、方案、产品也已经开始逐渐运用先进并趋于成熟AI技术。

经过一段时间的研发,我们提供以下5个AI方向的Java技术输出:

  • 搜索
  • 自然语言处理 NLP
  • 专家系统
  • 数据科学
  • 大语言模型开发 LLM

其中搜索和NLP针对文本自然语言,非结构数据;专家系统和数据科学是针对数据表等结构数据;LLM是应用大语言模型服务。

搜索技术和专家系统中的规则引擎技术,原来就存在于技术输出中,分别归属于Devops和中间件,现在移到人工领域方向。

  • 搜索和NLP有较强的联系,尤其是现在的Lucene库内置了和NLP集成的能力,而NLP是根红苗正的AI技术,我们逐步会提供Java方面的各种NLP技术服务。
  • 专家系统经常是AI领域的第一课,而规则引擎则是专家系统重要领域,我们在很多项目提供过规则引擎和工作流技术服务。
  • 数据科学和数据工程是数据处理分析的两个方向,大数据技术服务是我们近期工作的重点方向,后续数据工程和分布式大数据处理、数据治理等技术输出也会逐步提供。
  • LLM大语言模型应用则是人工智能未来重点,我们定位在中间件专业技术,不会去研究语言模型分析,拼参数拼算力,而会重点放在和成熟产品的集成,帮助客户更好的应用LLM,以及帮助他们的用户更好的利用AI服务。

作为技术输出服务,推出5门人工智能技术课程。 目前还在不断打磨中,这里提供一级纲要,后续会提供完整纲要并上线培训课程。

人工智能课程纲要:

Java搜索和应用

  • Lucene库
  • Solr
  • OpenSearch
  • EasticSearch

NLP自然语言处理

  • NLP发展和技术分析
  • Apache OpenNLP
  • NLP应用实践

专家系统

  • 规则引擎 Drools
  • 数据标准应用实践
  • 运筹学在管理的应用
  • 求解器项目

数据科学

  • 数据统计和应用
  • 数据科学内容
  • 机器学习技术
  • Common.Math, Weka, Spark Mllib等库使用分析

LLM大语言模型开发

  • OpenAI,ChatGPT应用和API
  • 提示工程
  • LangChain4j
  • SpringAI
  • Quarkus和AI的集成

希望得到客户,伙伴,业内朋友等的意见反馈。也希望为推动AI智能技术在国内发展做些工作。