在 CSDN 的时候,我就一直想要有自己的 AI 工作环境。我们组只有一台高配的办公服务器,用于训练模型,分析数据。通常来说这台机器都很忙。如果想要
做一些研究工作或试验,资源就有点紧张了。而我自己的工作机,虽然是一台买了只有四五年的高配 MacBook Pro,但是做 AI 已经不太够用。即使训练一个非常
朴素的文本分类器,也要花费太多时间。那几年我偏好用传统的算法而非 AI 工具解决问题,其实也有这个原因。并非我不能驾驭 AI 技术,只是因地制宜而已。
何况团队里的年轻人们对 AI 相关工作做的非常好,我更关注那些更需要有人站出来解决的东西。
说起来还是要感谢 CSDN,我正是用离职时的补偿,买了这台满配的 MacBook Pro 。128 内存,
16 core cpu + 40 core gpu + 16 core npu 的 M3 MAX。足够我运行常规的 AI 算法,一些规模不太大的 LLM 模型也完全可以运行。
对于 AI 系统,我的目标是:
经过一段时间的尝试,我初步的达到了这些目的。
最初,我尝试过直接用 torch 或 tensorflow 这样的框架运行模型,后来很快发现即使这台满配的机器,运行 30B 的 LLM 也有些吃力,毕竟现在的 AI
产业已经普遍使用价格高昂的超级显卡。而我,只是一个希望一次投资可以尽可能多用的穷人。
很快,我开始尝试用同好们推荐的 llama.cpp 和 ollama 来运行模型。尽管看起来这两个工具有些重叠,它们都可以基于 cpp 构建的运行时运行模型,
都提供了 server ,部署客户端也很方便。但是经过实践,llama.cpp 有更好的泛用性,有些模型 ollama 不能识别,但是 llama.cpp 可以加载并处理
为 gguf 格式。而经过 llama.cpp 处理后的模型,ollama 是可以加载的。另一方面,在我的机器上,llama.cpp 运行 70b 的模型,慢到无法使用,
而 ollama 可以。至少在 M3 硬件环境中,ollama 表现出了更好的性能。
再接下来,就是我在 oliva 项目中发布的词法分析器工具,它可以把几个我常用的编程语言,C、Java、
Python、Scala 等等处理为 alpaca lora 格式。用于微调模型,目前我正在尝试基于 llamacode 的几个小规模版本,训练出一个适合我自己的版本。
因为从我自己的体验看,codellama 对c语言和 scala 的支持并不强,高版本的 java 应该也还没有引入,而这些是我需要的。甚至可以说我搭建这套
私有 AI 系统,一个重要的目标就是辅助我写一些 c 代码。目前的实验来看,llama factory
项目能够完成这个工作。
我完全没想到的是,整个工具链上,我最不满意的居然是客户端,是的,我试用了 ollama 官网上推荐的好几个客户端应用,都不符合我的期待,有些有配
置问题,有些对中文支持的非常差,有些使用起来很繁琐。于是我用 Python 写了一个命令行工具
Blue Shell。用于日常工作。这个工具支持行编辑,能够可靠的支持中文,可以支持 codellama 的
markdown 输出,可以方便的连接指定的 ollama 。也许将来,我还会再开发一些 GUI 客户端或者开发工具的插件。但是目前,这个工具体系已经初步的
运行起来了。我已经开始用 AI 为 Jaskell 项目生成单元测试代码——嗯其实我也希望它能做一些更智能的编程工作,但是目前看,真正需要创造力的部分,
还是不能指望这些概率模型的。