Langtorch: 基于 Java , 模块化的 AI/LLM 开发框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
li2109
V2EX    分享创造

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

  •  
      li2109 2023-06-23 13:11:16 +08:00 3742 次点击
    这是一个创建于 842 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    最近的更新

    差不多两个月前,我发布了在 V2EX 的第一个帖子( 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 社区或者微信群交流:

    10 条回复    2025-06-16 12:10:24 +08:00
    4BVL25L90W260T9U
        1
    4BVL25L90W260T9U  
       2023-06-23 13:15:17 +08:00   1
    你确定 java 能融合进 llm 的生态?
    li2109
        2
    li2109  
    OP
       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/)

    所以说不定呢?
    Solix
        3
    Solix  
       2023-06-23 14:12:56 +08:00 via iPhone
    建议你的开发文档写的像 langchain 一样,一般看文档的也有产品经理,不只是开发
    li2109
        4
    li2109  
    OP
       2023-06-23 14:18:39 +08:00 via iPhone
    @gaobh 感谢建议!最近会把文档再完善和更加易懂
    wangmou
        5
    wangmou  
       2023-06-23 19:00:53 +08:00   1
    内容完全和 torch 不搭边,如果后续不会用 java 实现 torch 库的话,建议换个名字。
    Aloento
        6
    Aloento  
       2023-06-23 20:53:42 +08:00
    Java 这种语言本身就是和 AI 脱节的,高效的推理部署也有更好的方案
    #1 #5 +1
    li2109
        7
    li2109  
    OP
       2023-06-23 23:31:43 +08:00 via iPhone
    @wangmou 名字中的 torch 其实只是觉得 torch 的意义比较美好。不能说 Javascript 一定要和 java 有关系吧?
    li2109
        8
    li2109  
    OP
       2023-06-23 23:37:19 +08:00 via iPhone
    @Aloento 我本身一定程度认同你这句话的。但 langtorch 只是提供另外一种选择。
    soft101team
        9
    soft101team  
       2023-07-19 01:31:07 +08:00
    群失效了
    fanhaipeng0403
        10
    fanhaipeng0403  
       118 天前
    你这头像哪来的。。。大猫?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2847 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:56 PVG 21:56 LAX 06:56 JFK 09:56
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86