PaddlePaddle / Paddle

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)
http://www.paddlepaddle.org/
Apache License 2.0
22.07k stars 5.54k forks source link

C++编程需求 #43255

Closed yuwoyizhan closed 1 year ago

yuwoyizhan commented 2 years ago

需求描述 Feature Description

1.世界上最大的两个深度学习框架pytorch和tensorflow都支持C++编程,虽然我不敢说支持C++20,C++23这些最新的标准,但是使用VS2022编写C++代码,是毫无问题的,项目全流程都可以使用C++编程.前几天我提过issue,咨询飞桨是否支持C++编程,提了几个问题,只有一个问题得到解答,那就是飞桨不支持非百度人员在除了预测之外使用C++编程. 对于clas,dec,seg等几个套件来说,我认为使用python编写读取数据,组网,训练,评估等步骤的代码无可厚非,毕竟步骤都是太固定了,基本不会有什么改变,一个项目的代码,往往改几行代码就能用于另一个项目中.但是对于强化学习parl,如果强制要求只能使用python语言,那很明显,学习parl的开发者就必须精通python,因为parl开发套件绝不可能一个项目改几行代码就用于其他项目,有太多需要编程的东西了.还是有不少人精通C++,不精通python,不能因为python更容易学习,就指望每个程序员精通python. 说白了就一句话,还是希望百度飞桨可以考虑支持C++编程,而不是仅仅让C++用于预测阶段.这个估计难度也比较大吧,哈哈哈哈.pytorch好像也是测试很久才上线C++模式.对于飞桨的开发者来说,或许优先级不高,哈哈哈哈.

2.https://www.paddlepaddle.org.cn/overview 这个网站有很多飞桨开发套件,可是还是有很多机器学习相关的东西是飞桨没有的.比如文本生成图像,这个东西最近太火了,飞桨有这个相关的套件吗?谷歌出了imagen,openai出了DALL·E 2,这两个模型,好像都属于完全封闭状态,也就是开发者完全用不了,飞桨有这种文本生成图像的模型吗?飞桨愿意提供模型吗?甚至开源代码吗?

3.飞桨有没有模特的模型,我意思是,我拍摄一张项链的图片,把图片输入飞桨提供的模型,模型生成一个模特带着项链的图片.或者是我拍摄一个枕头的图片,输入飞桨提供的模型,模型生成模特睡在枕头上的图片.这个模型,对于创作者来说,太重要了,看看Adobe一年卖PS等几个套件赚多少钱吧,哈哈哈哈.我认为,飞桨有能力提供这个模型,就不知道你们是否愿意这样做了,哈哈哈哈.

4.说到读取数据,我想问问,飞桨目前有没有测试支持多大的数据读取呢?十万条数据这个级别,还是百万,千万?比方说,飞桨读取数据,是否支持从数据库读取数据呢?比如mysql,sql server等数据库.我目前正在为了做这个方面的研究而努力,需要读取很大数量的数据.

最后吐槽一句,飞桨的文档比起pytorch强百倍,而且中英文都有,并且比较详细,可靠.飞桨还提供AI studio用于训练模型,真心不错,哈哈哈哈,难怪飞桨可以做到中国第一机器学习框架,真牛逼. 但是飞桨在支持方面,那肯定比pytorch慢啊,30系显卡出来后,pytorch比飞桨早支持几个月,python3.10也是pytorch早几个月实现支持,到今时今日,飞桨还不支持C++编程,pytorch支持至少一年多了吧.CSDN,知乎等平台,一堆pytorch的C++编程代码,飞桨只能用C++编程用于预测.或者是支持C++编程难度大,或者是优先级不高吧,可能你们认为精通C++的人,肯定愿意花时间去精通python.

听说超过80%的研究人员使用pytorch,但愿飞桨有一天可以做到这点,期待.飞桨是否有针对pytorch,考虑究竟有哪些不足,进行改进呢?

替代实现 Alternatives

No response

paddle-bot-old[bot] commented 2 years ago

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档常见问题历史IssueAI社区来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQGithub Issue and AI community to get the answer.Have a nice day!

Shixiaowei02 commented 2 years ago

您好!建议已收到。感谢您对飞桨的关注。

我在工作中更了解框架一些。我认为推理使用 C++ 接口的主要原因是部署性能;在语言类型上,Python 的确更容易上手,相比 C++ 安装调试都方便一些,打磨好 Python 用户接口有助于提升用户上手体验,所以我们整个框架花了较多精力开展这件事。为满足您所述使用其它语言 API 的需求,我们调研过底层数据结构暴露给用户的方式,由于推理部署 API 数量较少,部分工作已经完成,可向用户暴露更多底层 C++ 数据结构,并已支持 Python / Go / Java 等语言。训练组网使用 C++ 的工作我们内部评估下是否可以更快推进。

关于您文中提到的,对套件模型的疑问和意见,我找相应同学跟进回复。

再次感谢您的支持!

jzhang533 commented 2 years ago

我们在最新的算子库(PHI)项目中,已经设计了与Python API保持一致的 C++ 运算类 API。这些C++ API将来可以用在C++的项目当中,相应的Demo和文档也在计划当中,敬请期待。

cc: @XiaoguangHu01 @chenwhql

yuwoyizhan commented 2 years ago

@jzhang533 @Shixiaowei02 大佬,您说的意思是,飞桨确实有考虑增加C++编程API接口?并且在不远的将来,就可以用了?将来无论是图像分类,还是强化学习,都是可以全流程使用C++编程,不需要学习和使用python语言,是这意思吗? 如果飞桨支持C++编程的话,能用VS2022客户端编程吗?能在ai studio使用C++编程吗?打算支持C++什么标准?C++20吗? 还有个疑问,对于飞桨各个套件来说,有不少文档可以查看,很容易上手,比如图像分类clas太容易上手了. 但是我看了飞桨2.3的更新内容,基本上完全看不懂,算子等知识也不知道是什么意思?如果要深度学习飞桨的话,要如何做呢? 我觉得对于飞桨很多开发套件,我都会应用到实际项目中了,但是飞桨2.3更新内容,为什么我还是基本看不懂呢?不可思议.

Ligoml commented 2 years ago

@yuwoyizhan 是的,我们在2.3版本发布的高可复用算子库PHI的其中一个设计思路就是在考虑C++编程,目前正在建设中的还有一系列更灵活更易用的项目,所以是可以期待未来使用C++编程的。但是目前阶段还没有建设完全,我们还是主推荐使用Python编程~ 至于你提到的诸如IDE支持等问题,应该会放在C++编程能力成熟之后讨论。 另外飞桨套件本身的设计出发点就是不断降低使用门槛,很高兴听到你说套件很容易上手并已有应用。如果你不满足于简单的使用飞桨,而希望了解更多甚至参与建设飞桨,非常欢迎你参与飞桨社区活动,从模型复现(论文复现赛)到框架开发(黑客马拉松)应有尽有,此外我们还公开了一部分框架建设的roadmap,应该会帮助你更进一步了解飞桨~

yuwoyizhan commented 2 years ago

@Ligoml 1.请问一下,C++编程大概几时可以使用呢?今年有希望吗?飞桨2.5有希望吗? 2.你提到的都是建设飞桨,而不是学习飞桨,请问一下,如果我打算深度学习飞桨,而不是学习飞桨套件,我该如何入手呢?我希望有一天可以看懂飞桨的版本更新内容,都知道你们在说什么话.有学习飞桨的图书,文档,视频,或者百度飞桨QQ微信吗? 3.我想问问,市面上很多牛逼哄哄的模型使用pytorch编程的,这种训练好的模型转成飞桨模型,容易吗?项目太大了,而且技术极其复杂,我肯定无法把整个pytorch项目都转换为飞桨项目,即使我可以做到这点,我也肯定没有那个算力,搞定训练部分,所以目前思路只能期待于pytorch模型可以轻轻松松转换为飞桨模型. 最后再夸一句,飞桨有很多方面不是pytorch,tensorflow等框架能比的了得,提问几天就得到回答,并且比较仔细,这点pytorch肯定比不了.

yuwoyizhan commented 2 years ago

@Shixiaowei02 大佬,小弟问了4个问题,第1个问题基本了解清楚了,第2-4问题还没有得到任何解答,求大佬解答一下,谢谢大佬. 祝飞桨越来越成功,早日在世界范围,在研发界打败pytorch.

Ligoml commented 2 years ago

学习飞桨可以参考飞桨官网的文档,或aistudio视频课程,相关教程书籍可以参考https://github.com/PaddlePaddle/Paddle/issues/40889 的回复 模型转换方面你可以了解一下X2Paddle 全面支持C++ API在计划中,暂未确定版本,可以关注一下

paddle-bot[bot] commented 1 year ago

Since you haven\'t replied for more than a year, we have closed this issue/pr. If the problem is not solved or there is a follow-up one, please reopen it at any time and we will continue to follow up. 由于您超过一年未回复,我们将关闭这个issue/pr。 若问题未解决或有后续问题,请随时重新打开,我们会继续跟进。