V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
liweizhismd
V2EX  ›  分享创造

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

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

    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 社区或者微信群交流:

    9 条回复    2023-07-19 01:31:07 +08:00
    ospider
        1
    ospider  
       2023-06-23 13:15:17 +08:00   ❤️ 1
    你确定 java 能融合进 llm 的生态?
    liweizhismd
        2
    liweizhismd  
    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/)

    所以说不定呢?
    gaobh
        3
    gaobh  
       2023-06-23 14:12:56 +08:00 via iPhone
    建议你的开发文档写的像 langchain 一样,一般看文档的也有产品经理,不只是开发
    liweizhismd
        4
    liweizhismd  
    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
    liweizhismd
        7
    liweizhismd  
    OP
       2023-06-23 23:31:43 +08:00 via iPhone
    @wangmou 😂名字中的 torch 其实只是觉得 torch 的意义比较美好。不能说 javascript 一定要和 java 有关系吧?
    liweizhismd
        8
    liweizhismd  
    OP
       2023-06-23 23:37:19 +08:00 via iPhone
    @Aloento 我本身一定程度认同你这句话的。但 langtorch 只是提供另外一种选择。
    soft101team
        9
    soft101team  
       2023-07-19 01:31:07 +08:00
    群失效了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:15 · PVG 02:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.