diff --git a/_data/other_repo_list.csv b/_data/other_repo_list.csv index 1c8879c..9bb0211 100644 --- a/_data/other_repo_list.csv +++ b/_data/other_repo_list.csv @@ -10,7 +10,6 @@ https://git.pixie.town/mayx/mayx https://cgit.tilde.town/~mayx/blog https://gitlab.haskell.org/mayx/mayx https://repo2.serv00.com/git/pub/Mayx/mayx/ -https://www.gitlink.org.cn/mayx/blog https://git.minetest.land/Mayx/blog https://gitea.stormyhome.net/mayx/blog http://47.120.60.153:10880/mayx/blog @@ -81,12 +80,10 @@ https://git.unicom.studio/mayx/blog http://frktedu.ru:3000/mayx/blog https://git.lokalix.de/mayx/blog https://git.influxfin.com/mayx/blog -https://git.programar.io/mayx/blog http://219.157.255.213:25311/mayx/blog https://git.melvincarvalho.com/mayx/blog https://gitea.aerwen.net/mayx/blog https://git.vekus.ru/mayx/blog -https://gitea.svc.obaa.cloud/mayx/blog https://gitea.blubeacon.com/mayx/blog http://116.204.75.78:6180/mayx/blog http://109.228.48.121:8000/mayx/blog @@ -267,7 +264,6 @@ https://schokigeschmack.de/mayx/blog https://git.anatid.net/mayx/blog https://git.lekai.info/mayx/blog http://135.235.225.198:3000/mayx/blog -https://git.sick.earth/mayx/blog https://git.prayujt.com/mayx/blog https://git.galaxylabs.ca/mayx/blog https://gitlab.n8n-store.xyz/mayx/blog @@ -288,7 +284,6 @@ http://8.148.220.5:8089/mayx/blog http://8.140.250.85:3000/mayx/blog https://git.emanuelemiani.it/mayx/blog http://8.134.11.35:3000/mayx/blog -https://git.ctx.dev/mayx/blog https://nas.szwyll.com:3000/mayx/blog https://git.koppa.pro/mayx/blog http://202.65.194.19:3000/mayx/blog @@ -309,7 +304,6 @@ http://8.134.218.17:8013/mayx/blog http://124.223.89.168:8080/mayx/blog http://139.129.21.166:3000/mayx/blog http://111.231.240.168:9082/mayx/blog -https://git.afonsosoares.com/mayx/blog http://209.141.47.52:3000/mayx/blog http://dapainas.asia:5990/mayx/blog http://60.204.158.188:3000/mayx/blog @@ -435,10 +429,8 @@ http://47.112.137.193:3000/mayx/blog https://gitea.malin.onl/mayx/blog http://58.38.123.148:3176/mayx/blog http://docker.clhero.fun:3000/mayx/blog -http://42.193.251.215:3000/mayx/blog https://bdgit.educoder.net/mayx/blog http://e19510c831.iok.la/mayx/blog -https://www.nxgit.xyz/mayx/blog http://119.45.49.212:3000/mayx/blog https://git.synapsenet.net/mayx/blog https://gitea.kdlsvps.top/mayx/blog @@ -497,7 +489,6 @@ https://docker-registry-lszz.uj.com.tw/mayx/blog https://git.honulla.com/mayx/blog https://www.arcbyte.dev/mayx/blog http://45.144.30.78:8083/mayx/blog -https://git.nihil.foo/mayx/blog https://scm.bcorex.e3labs.net/mayx/blog http://167.172.88.190:3000/mayx/blog http://58.17.14.95:8001/mayx/blog @@ -514,12 +505,9 @@ http://104.254.131.244:3000/mayx/blog https://gitea.alacloud.de/mayx/blog https://git.tobiasweise.dev/mayx/blog http://176.124.216.7/mayx/blog -https://publica-gitea.a.cnpgc.embrapa.br/mayx/blog https://code.cif.su/mayx/blog http://47.99.119.173:13000/mayx/blog http://47.97.225.73:3000/mayx/blog http://git.topsailiot.com/mayx/blog -https://git.monogps.com/mayx/blog -https://gitea.brmm.ovh/mayx/blog https://git.cynic.moe/mayx/blog https://git.muellers-software.org/mayx/blog diff --git a/_data/proxylist.yml b/_data/proxylist.yml index 51e946b..2449ab1 100644 --- a/_data/proxylist.yml +++ b/_data/proxylist.yml @@ -27,6 +27,7 @@ mirrors: - https://mayx.dappling.network/ - https://mayx-blog.statichost.eu/ - https://mabbs-blog.static.hf.space/ +- http://mayx.gitlink.net/ repos: - https://github.com/Mabbs/mabbs.github.io - https://gitlab.com/mayx/mayx.gitlab.io @@ -50,6 +51,7 @@ repos: - https://atomgit.com/mayx/blog - https://sourceforge.net/projects/mayx/ - https://dev.azure.com/unmayx/_git/Mayx +- https://www.gitlink.org.cn/mayx/mayx.gitlink.net static: - https://mayx.nekoweb.org/ - https://mayx.neocities.org/ diff --git a/_posts/2026-03-01-llm3.md b/_posts/2026-03-01-llm3.md new file mode 100644 index 0000000..11f6620 --- /dev/null +++ b/_posts/2026-03-01-llm3.md @@ -0,0 +1,35 @@ +--- +layout: post +title: 近期LLM的部署与应用经历(3) +tags: [AI, LLM, 模型部署, 使用体验] +--- + + 用更多的方式探索AI! + +# 起因 + 在一年前,我[整了张RTX4090 48GiB魔改版](/2025/02/22/llm.html)用来跑DeepSeek-R1 70B的4bit量化模型,不过都已经过了这么长时间,这个模型也已经是过时的东西了……我之前在[Mac Studio M3 Ultra](/2025/05/07/mac-studio.html)上试了一下OpenAI在半年前出的gpt-oss-120b模型,感觉效果还挺不错,只不过因为M3 Ultra的GPU实际性能比不上正经高端的独显,所以它在上下文很长的情况下还是有点慢,因此我又整了张RTX4090 48GiB,想整个双路试试更快的GPT-OSS模型,总共96GiB的显存应该够跑这个模型了。 + +# 在两张RTX4090 48G上运行GPT-OSS + 既然现在我手头有两张4090了,那继续用i5-8400处理器的主机似乎不太合适,主要是那个主板就一个PCIe插槽,想插两张显卡也做不到,那买个新的不知道买啥……不管怎么说既然用这么高级的显卡,至少得让它跑满。在两张显卡上跑模型似乎卡间的通信速度比较重要,那最起码得整个支持2个PCIe4.0 x16的板U套装才行,这种级别的没有消费级产品,只能考虑服务器或工作站了。不过我对服务器和工作站了解得并不多,所以就问了问AI哪个支持2个PCIe4.0 x16的平台最便宜,结果AI推荐了TRX40+[TR 3960X](https://www.amd.com/zh-cn/support/downloads/drivers.html/processors/ryzen-threadripper/ryzen-threadripper-3000-series/amd-ryzen-threadripper-3960x.html),于是就按照AI的说法整了一套。 + 这套板U差不多4000CNY,价格倒是还行,如果买现役的估计主板都比显卡贵了。但后来我发现这个并不是最便宜的😂,搜了一下买寨版+[EPYC 7502](https://www.amd.com/zh-cn/support/downloads/drivers.html/processors/epyc/epyc-7002-series/amd-epyc-7502.html)还能再便宜1000CNY,而且通道数更多,插4张显卡都没问题……不过买都买了,就先用吧,看来AI的话不能随便信😥。 + 之前我跑模型为了方便,基本上都用的是[Ollama](https://github.com/ollama/ollama),不过听说Ollama多卡运行的效率很低,而且多并发的效果不太好,所以这次换了新电脑之后我想试试[vLLM](https://github.com/vllm-project/vllm),据说一般生产级的AI都用的是这个框架。 + 安装vLLM倒是比想象得简单很多,直接一句`pip install vllm`就可以了,其实并没有比Ollama复杂多少。我看了一下[OpenAI](https://developers.openai.com/cookbook/articles/gpt-oss/run-vllm/)和[vLLM](https://docs.vllm.ai/projects/recipes/en/latest/OpenAI/GPT-OSS.html)运行GPT-OSS的官方文档,发现启动也非常简单,一般来说直接执行`vllm serve openai/gpt-oss-120b`就可以。不过直接执行是对于单卡的,我用两张卡需要加个`--tensor-parallel-size 2`参数启用张量并行,不然会爆显存。另外考虑到这个模型本身占掉60多GiB的显存之后剩下30GiB还是看起来有点少,所以额外加了个`--kv-cache-dtype fp8`参数降低上下文对显存的占用,毕竟模型本身也就是4bit量化的,加了这个应该不会对它的能力有什么影响。除此之外AI还给我推荐了个`--enable-chunked-prefill`参数,说是也能避免爆显存的问题。 + 一切准备好之后直接执行,程序就自动开始下载模型了,过了几个小时,终于下载完成,顺便一说启动的时候还显示推荐安装`torch_c_dlpack_ext`库,虽然不知道是干啥的,但也顺手安装了。启动完成之后我试了一下,效果非常好,不并发的情况下直接用能达到接近190Tps,可以说是相当快了,而且这个模型的水平也算是开源中的上游水平,应该算是又快又好吧……看来多来一张4090还是挺划算嘛。只不过这个东西基本上就我一个人用,所以也没什么能测一下并发的场景……虽然很快,但还是有点浪费性能吧。 + +# 最近DeepSeek 1M上下文的使用体验 + 前段时间DeepSeek又出了新的模型,最高可以支持1M长的上下文,而且听说模型规模变小了,所以速度也很快。可惜的是到目前为止还没有开放权重。当然就算开放权重了用2张4090估计也没有足够的显存分配给上下文,至于Mac Studio感觉在长上下文的情况下运行速度应该会很慢…… + 不过我对这个1M上下文还是挺感兴趣,因为好久之前我写过一篇[关于LLM能力上限](/2025/04/22/ai-limit.html)的文章,在那篇文章中其实我遇到的问题基本上也就是由上下文不足导致的。那既然现在DeepSeek支持了1M的上下文,那我就应该试试之前因为局限性而妥协的一些东西了。 + 这次我没有用摘要,而是直接把包含整个博客内容的[search.json](/search.json)文件上传到DeepSeek,然后向它问了问我的一些问题。试了一下效果非常不错,用摘要会省略的一些细节它基本上都可以展现出来,我试了试让它给我生成一份简历,它甚至在所有文章中找到了我的博客地址、GitHub和邮箱地址,之前用摘要显然是做不到这一点的,这个长上下文还是挺有用啊。 + 另外我还试了试让它根据文章内容分析十六型人格,并且我自己去答了一遍那个测试,结果也是相同的,说明它真的是在几秒内就读完了我的所有文章而且也完全理解了,真的是非常厉害。 + 只是拿AI分析我的文章也许只有我自己了😂,实际上根本没人对我感兴趣,也就只有我自己拿来给自己看……当然如果我的博客能比我活得长,不知道会不会有未来人会对我感兴趣呢……总之对于现在肯定是毫无意义了。 + 除了这些之外,我又试了一下让DeepSeek重构我的[Mabbs](https://github.com/Mabbs/Mabbs.Project),这次生成效果看起来很不错了,虽然代码我没细看,不确定能不能运行,但至少没有偷懒只写一点点,一口气写了80KiB多的代码,这也是长上下文带来的好处吧。总之目前这个长上下文的DeepSeek也算是突破了之前我认为的上限,看来LLM真的是前景无限啊。 + 另外我发现这次更新的DeepSeek居然了解我的博客,我问了一下它“你知道Mayx的博客是哪个博客吗?”,它居然知道,能说出域名,而且还知道我的博客是关于技术的😎,看来这次的训练样本中包含我的信息啊……所以我对这次的更新也挺有好感,毕竟我的知识如果能成为AI的一部分,也算是一种永恒吧。 + +# 在8GiB内存的MacBook运行的新模型 + 在3年前,我在[探索AI](/2023/04/05/ai.html)时,在我只有8GiB内存的[MacBook Pro](/2023/02/03/mbp.html)上运行了非常早期的LLM——Alpaca-7B,那时候7B的LLM虽然能回答一些问题,但答非所问的情况也非常多。不过最近我发现了一个有意思的LLM,叫做[LFM2.5-1.2B-Thinking](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Thinking),它只用了12亿的参数就有思维链,而且水平据说还挺强。这么长时间过去之后我倒也想看看我的MacBook能运行多聪明的模型,所以就试着跑了一下它。 + 运行它也很容易,一般用Ollama就可以,但是Ollama只有TUI,不能渲染Markdown,我也不太想在我的Mac上整WebUI之类的东西……那有什么好的选择吗?我去制作这个模型的公司官网看了一下,他们制作这个模型本就是为了在端侧运行,所以也专门制作了一个软件运行他们的模型,叫做[Apollo](https://www.liquid.ai/apollo),在手机和Mac上都可以用。我在我的Mac上安装试了一下,效果很好,首先速度非常快,8bit量化正常情况下可以达到60多Tps,即使是省电模式,也能达到20多Tps。另外加上思维链它的思考能力也还不错,虽然一些脑筋急转弯的题不算擅长,但是正常对话,回答问题之类的表现都很不错,相比于之前7B的模型表现好太多了。当然考虑到都已经过去3年了,能有这样的进步也很正常,不过12亿参数就能有这样的智能还是相当可以啊。 + 这个模型之所以有这样的能力似乎是因为他们并不完全是Transformer架构,而是使用的一种叫做LFM2的混合架构,按照大家对他们公司(Liquid AI)以及这个架构名字的理解,可能会觉得这个模型基于液态神经网络,不过我让AI看了一下他们的代码似乎并不是,他们用的是一种类似于Mamba的架构,这种架构似乎就很擅长在小参数的模型下比Transformer模型表现的更好,所以说这种变化也是算法进步带来的。 + 顺便一说这个Apollo除了运行他们自己的模型之外也能连接其他兼容OpenAI接口的模型,正好可以用来连接我的GPT-OSS,这样我就可以不需要下载一些浏览器套壳的重型应用来用我的模型了😝。 + +# 感想 + 自从ChatGPT之后,AI的发展真是越来越强了,而且能看出来目前甚至并不需要多新多好的硬件就能让一般人获得还不错的智能(当然训练也许还是要大量的硬件),这么看来AI软件的发展还是相当有潜力。目前来看既然优化软件就能做得越来越好,那也许在有限的硬件环境下可以期待无限的智能吧。 \ No newline at end of file