Langtorch🔥: 基于 Java , 模块化的 AI/LLM 开发框架

2023-06-23 13:11:16 +08:00
 liweizhismd

Langtorch🔥: 基于 Java, 模块化的 AI/LLM 开发框架

项目地址: https://github.com/Knowly-ai/langtorch

最近的更新

差不多两个月前,我发布了在 V2EX 的第一个帖子( https://www.v2ex.com/t/936009), 当时刚开始做 langtorch 这个开源项目,匆匆写下了几行象征性的纪念了一下这个项目的开始。

在 ChatGPT 出来的几个月内,我完全被 ChatGPT 的效果震惊了。虽然在大学里也做过一段时间深度学习的研究,但当时模型的效果远不如现在来得这么惊艳。在那之后的我开始用 Python streamlit 搭建各种有意思的工具,比如和 PDF 对话,让大语言模型模仿著名风投 a16z, 做了个 slack 内置的 ai bot 等。后来发现了 langchain 和 gpt-index(现在改名为 llama-index),它们的出现让开发 ai 工具更方便。

后来了解到 gpt3 的训练成本超过 4 百万美金,以及后来出现的效果更好更大的 gpt4 让我认识到未来大语言模型的提供商应该是财力雄厚的大公司比如 Google, Microsoft 的天下。如果未来大语言模型都是通过 http 调用,那是不是暗示 python 不再是开发 AI 应用的 go-to language?至少从生产环境来说是这样呢?

同时在 Twitter 上看到有 startup 抱怨他们到使用 langchain 遇到了并发问题和 python 一些老生常谈的通病,好像在证明这一点。github 上搜了一圈后貌似没看到有人用 Java 做除了 open ai client 的开发,我就想不如写一个 Java 版的吧!于是就开始造轮子的快乐的日子。

经过 9 周的开发,现在 langtorch 基本完成了“可复用”或者叫“模块化”的搭建,虽然我知道还不够完善。

接下来是 Langtorch 的介绍

我们希望通过 Langtorch 能让 ai/llm 应用的搭建像搭乐高一样;于是便将 AI/LLM 应用中的几个 concept 抽取出来变成不同的组件。比如 LLM Service Provider(例如 openai, minimax 等), 向量数据库(pinecone, milvus 等), 数据加载器(比如读取 pdf, excel, 或者是 mysql 数据库), 提示词模版,数据预处理,Cache 等...

同时最近在实现组件的扩展,使得让组件生命周期定制化更简单。比如通过扩展在每次 OpenAI http 请求后都保存下来请求的 body 和返回的 response, 这样更方便未来的提示词的调整。

作为一个开源项目,我们非常非常希望获得来自开发者的使用建议!!! 当然如果有愿意有想贡献代码的小伙伴,请加入 discord 我们一起讨论。

如果使用过程中有任何疑问,欢迎👏大家来提 Issue 和 PR 。 同时也欢迎大家加入Discord 社区或者微信群交流:

3191 次点击
所在节点    分享创造
9 条回复
ospider
2023-06-23 13:15:17 +08:00
你确定 java 能融合进 llm 的生态?
liweizhismd
2023-06-23 13:20:08 +08:00
@ospider 这是一个好问题。我觉得如果是从事学术研究,我觉得 python 的地位不可撼动。但是如果是部署的话,java 在大语言模型的时代未尝不可呢? Tianqi 大神有一个 mlc-llm 的项目[https://github.com/mlc-ai/mlc-llm]能够让模型在任何环境调用。同时 netflix 从 python 转回 java 来做实时的[inference]( https://aws.amazon.com/blogs/opensource/how-netflix-uses-deep-java-library-djl-for-distributed-deep-learning-inference-in-real-time/)

所以说不定呢?
gaobh
2023-06-23 14:12:56 +08:00
建议你的开发文档写的像 langchain 一样,一般看文档的也有产品经理,不只是开发
liweizhismd
2023-06-23 14:18:39 +08:00
@gaobh 感谢建议!最近会把文档再完善和更加易懂
wangmou
2023-06-23 19:00:53 +08:00
内容完全和 torch 不搭边,如果后续不会用 java 实现 torch 库的话,建议换个名字。
Aloento
2023-06-23 20:53:42 +08:00
Java 这种语言本身就是和 AI 脱节的,高效的推理部署也有更好的方案
#1 #5 +1
liweizhismd
2023-06-23 23:31:43 +08:00
@wangmou 😂名字中的 torch 其实只是觉得 torch 的意义比较美好。不能说 javascript 一定要和 java 有关系吧?
liweizhismd
2023-06-23 23:37:19 +08:00
@Aloento 我本身一定程度认同你这句话的。但 langtorch 只是提供另外一种选择。
soft101team
2023-07-19 01:31:07 +08:00
群失效了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/951010

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX