作为前端开发,想要介入大模型应用开发,必著作权归作者所有,禁止商业用途转载。【本文首发于唐霜的博客】须有一个大模型可以作为底层驱动,但是op转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.netenAI的chatGPT需要付费,且网络【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。影响因素大,本地部署大模型就成了开发阶段本文作者:唐霜,转载请注明出处。原创内容,盗版必究。的必然选择。作为架构中的关键一环,我们需【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。要一个本地化的大语言模型来支持“完全本地【转载请注明来源】【访问 www.tangshuang.net 获取更多精彩内容】化”。目前市面上的大模型非常多,但对于我著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。们而言,必须满足开源、免费、支持中文著作权归作者所有,禁止商业用途转载。这三个硬性条件,另外还要考虑性能、tok【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。en量、智能程度等。开源是为了本地化部署原创内容,盗版必究。本文作者:唐霜,转载请注明出处。,像openai的闭源模型,直接pass【本文受版权保护】本文版权归作者所有,未经授权不得转载。。国外有几个性能和智能程度都很好的开源模转载请注明出处:www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】型,但是不支持中文比较遗憾。最终选定了c原创内容,盗版必究。【作者:唐霜】hatglm作为我们的目标。本文将详细讲转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。解我开发的chatglmjs,这个让前端本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】开发者可以快速接入本地化大模型的库。
本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】【未经授权禁止转载】【本文受版权保护】【关注微信公众号:wwwtangshuangnet】什么是ChatGLM?【本文首发于唐霜的博客】
【版权所有,侵权必究】原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.netChatGLM是有清华和智普合作研发的一【本文首发于唐霜的博客】未经授权,禁止复制转载。款大语言模型,目前是开源免费可商用(需获【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。得许可)的状态,支持中英双语,在中文领域【访问 www.tangshuang.net 获取更多精彩内容】著作权归作者所有,禁止商业用途转载。属于第一批次的开源模型。
本文版权归作者所有,未经授权不得转载。【本文受版权保护】【版权所有,侵权必究】和ChatGPT一样,都是基于对话形式的【未经授权禁止转载】未经授权,禁止复制转载。大语言模型,虽然GLM与GPT不同,但是【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】在最终表现形式,ChatGLM和Chat原创内容,盗版必究。【未经授权禁止转载】GPT是一致的应用形态,都是对话模式下的【本文首发于唐霜的博客】【未经授权禁止转载】LLM。预训练语言模型大体可以分为三种:【原创不易,请尊重版权】【本文首发于唐霜的博客】自回归(GPT系列)、自编码(BERT系原创内容,盗版必究。【原创内容,转载请注明出处】列)、编码-解码(T5、BART)。GL【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。M是一个通用的预训练语言模型,它在NLU【本文受版权保护】未经授权,禁止复制转载。(自然语言理解)、conditional【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】(条件文本生成) and uncondi【版权所有,侵权必究】【本文受版权保护】tional generation(非条本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。件文本生成)上都有着不错的表现。通俗的讲【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。,区别于上述三种预训练方案,GLM采用“转载请注明出处:www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】完形填空”的方案来训练模型。
未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net【作者:唐霜】虽然总体上,目前的最新版ChatGLM3原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net能力还不如ChatGPT,但是在通用智能【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。方面已经有非常不俗的表现,可以作为我们开【原创不易,请尊重版权】【原创内容,转载请注明出处】发的底层智能驱动。
原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。另外,与其他开源模型相比,ChatGLM【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net还有一个特点,对机器的要求不高,其量化版本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net本甚至被某些网友移植到安卓手机上运行,可【本文受版权保护】未经授权,禁止复制转载。见未来有可能在手机上大面积应用该模型。
本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。【本文首发于唐霜的博客】如何本地化LLM?本文作者:唐霜,转载请注明出处。
【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】ChatGLM官方提供的是python的著作权归作者所有,禁止商业用途转载。【本文首发于唐霜的博客】demo和微调代码,怎么才能在我们的no【本文受版权保护】转载请注明出处:www.tangshuang.netdejs环境中跑它的模型呢?一种方案是用【转载请注明来源】【版权所有,侵权必究】fastapi起一个python的服务提【转载请注明来源】未经授权,禁止复制转载。供接口,node端像普通调第三方接口一样未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。调用它,但是这样就违背了我“纯前端技术”未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net的目标,况且python的环境并不好搭,本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。我折腾了很久才跑起了它的demo。还有没本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。有其他方案呢?
【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。我们来分析一下,其实对于运行大模型用来预转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。测而言,它的代码分为3个部分:模型文件本未经授权,禁止复制转载。【原创不易,请尊重版权】身、transformer运行时代码、用【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.net来提供对外标准接口的代码。其中,模型文件著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。本身都是一样的,从huggingface本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。上下载。官方提供的python demo本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。其实主要是实现了运行时,可以加载模型文件著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net和transform,并完成预测。接口代原创内容,盗版必究。【原创内容,转载请注明出处】码则是赠送品,只用来作为demo的可交互【访问 www.tangshuang.net 获取更多精彩内容】【原创不易,请尊重版权】界面。
转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】【原创不易,请尊重版权】对于我们而言,最难搞定的就是,如何在no本文作者:唐霜,转载请注明出处。【本文首发于唐霜的博客】dejs下有一个可以加载、执行模型文件的本文版权归作者所有,未经授权不得转载。【作者:唐霜】运行时。
原创内容,盗版必究。【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。灵光一闪下,我看到社区有一个chatgl【访问 www.tangshuang.net 获取更多精彩内容】【本文首发于唐霜的博客】m.cpp的项目,结合nodejs可以支未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net持c/c++ addon,瞬间就来了灵感【版权所有,侵权必究】【访问 www.tangshuang.net 获取更多精彩内容】。chatglm.cpp这个项目用c++【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】实现了transformer运行时,除了原创内容,盗版必究。【原创不易,请尊重版权】支持chatglm外,还支持百川和其他几未经授权,禁止复制转载。【访问 www.tangshuang.net 获取更多精彩内容】个模型。我们把它的c++代码提炼出来,稍著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net作调整,编译成可以在nodejs环境下运原创内容,盗版必究。【本文受版权保护】行的addon文件,直接在js里面reu【原创内容,转载请注明出处】【转载请注明来源】qire即可。这样一来,我们就可以nod【版权所有】唐霜 www.tangshuang.net【转载请注明来源】ejs本地运行大模型啦。此外,它需要把原转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】始的模型文件转化为自己的.bin文件,通【版权所有,侵权必究】【原创不易,请尊重版权】过这部转化,原始模型文件由分散的文件列表转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。,变成一个独立的.bin文件,这样更方便【本文受版权保护】原创内容,盗版必究。我们实现模型文件的迁移和分享。
【作者:唐霜】【未经授权禁止转载】【本文受版权保护】经过一个周末的折腾之后,我完成了这个部分【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】的整理,并发布了chatglmjs这个包本文作者:唐霜,转载请注明出处。【转载请注明来源】,你可以方便使用它:
本文作者:唐霜,转载请注明出处。【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.netimport { chat } from 'chatglmjs';
chat({
model_bin_path,
prompt: '你好',
onmessage(msg) {
process.stdout.write(msg);
},
});
安装chatglmjs时,它会自己编译自本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。己,因此需要你的电脑有完整的可以编译c+【版权所有,侵权必究】【本文受版权保护】+的环境,mac上有对应版本的xcode【作者:唐霜】未经授权,禁止复制转载。,linux则是较高版本的g++,win本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。dows上有最新的vs即可。
转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net需要注意的是,由于node的限制,我们在未经授权,禁止复制转载。【本文受版权保护】后续使用langchain时会用到ten【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。sorflow的cpu版本,而不同电脑上【作者:唐霜】本文作者:唐霜,转载请注明出处。的显卡驱动环境也不确定,因此,在构建ch【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.netatglmjs时,我默认是让模型在cpu【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net上运行的,虽然性能差,但是部署方便。
转载请注明出处:www.tangshuang.net【版权所有,侵权必究】转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】【本文首发于唐霜的博客】Chatglm.cpp把模型文件转化为.【转载请注明来源】【关注微信公众号:wwwtangshuangnet】bin文件的操作需要按照它的文档【作者:唐霜】进行,此时又要用到python,去搭py转载请注明出处:www.tangshuang.net【版权所有】唐霜 www.tangshuang.netthon的环境也很麻烦,所以,你可以直接【原创不易,请尊重版权】未经授权,禁止复制转载。用别人已经转化好的.bin文件。下载之后【关注微信公众号:wwwtangshuangnet】【本文受版权保护】,把它的路径传给model_bin_pa未经授权,禁止复制转载。【原创内容,转载请注明出处】th即可。
未经授权,禁止复制转载。【关注微信公众号:wwwtangshuangnet】【原创内容,转载请注明出处】如何在前端开发大模型应用?【原创不易,请尊重版权】
【转载请注明来源】【本文首发于唐霜的博客】【本文受版权保护】【关注微信公众号:wwwtangshuangnet】【访问 www.tangshuang.net 获取更多精彩内容】有了chatglmjs之后,我们就有了在转载请注明出处:www.tangshuang.net【版权所有】唐霜 www.tangshuang.net自己电脑上运行大模型的基础,接下来,我们未经授权,禁止复制转载。【原创内容,转载请注明出处】要做的就是利用它进行更高层面的应用开发。【原创不易,请尊重版权】【作者:唐霜】对于chatglmjs而言,它只提供了一【本文受版权保护】【版权所有】唐霜 www.tangshuang.net个对话接口,大模型的所有能力都是基于对话【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】来提供的,因此prompt的设计至关重要本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。,除了prompt之后,想要搭建起一个类【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.net似chatgpt那样的聊天窗口,我们还要未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。设计聊天历史等状态数据,以及流式交互的接【转载请注明来源】本文作者:唐霜,转载请注明出处。口等等。大体上,我认为我们需要一层一层的本文版权归作者所有,未经授权不得转载。【未经授权禁止转载】按照如下架构来完成开发:
【作者:唐霜】转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net【本文受版权保护】
大体上想要获得一个应用,要考虑5层设计,【作者:唐霜】【关注微信公众号:wwwtangshuangnet】从下到上分别是:存储层、平台层、框架层、未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。业务层、应用层。当然,我这里做的还是比较本文作者:唐霜,转载请注明出处。【本文首发于唐霜的博客】草率,在真正设计架构时,还要根据实际业务【访问 www.tangshuang.net 获取更多精彩内容】转载请注明出处:www.tangshuang.net考虑更多东西。在框架层,我推荐LangC【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。hain,因为它有js版本,提供了非常丰本文作者:唐霜,转载请注明出处。【作者:唐霜】富的组件,我们利用这些组件来把一些核心的【原创内容,转载请注明出处】【未经授权禁止转载】东西搭建出来,而不要自己去从零开始写。
未经授权,禁止复制转载。【本文受版权保护】【版权所有,侵权必究】著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】当然,我们在编写代码时,还应该注意,AI本文作者:唐霜,转载请注明出处。原创内容,盗版必究。是我们的好帮手,我们可以大胆的尝试让AI未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net帮助我们完成这个架构的实现。
【关注微信公众号:wwwtangshuangnet】【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net结语本文版权归作者所有,未经授权不得转载。
【未经授权禁止转载】原创内容,盗版必究。转载请注明出处:www.tangshuang.net本文简单介绍了前端开发者应该如何参与到大【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。模型的开发中,其中核心的部分是实现了ch本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。atglmjs,可以帮助开发者们在本地使本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。用大模型作为开发时的依赖,从而更好的验证本文作者:唐霜,转载请注明出处。【未经授权禁止转载】自己的想法。相信大模型应用开发会很快成为【原创内容,转载请注明出处】原创内容,盗版必究。我们开发业界的讨论重点,我们不妨从现在开【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。始尝试,从安装chatglmjs开始体验原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。这一神奇的新时代。
本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。2024-01-23 4356


