个人版 AI 辅助系统的尝试

2023-12-17 10:44

本文主要是介绍个人版 AI 辅助系统的尝试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在 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 系统,我的目标是:

  1. 虽然现在互联网上有越来越多的 AI 服务,免费的也不在少数,但是我仍然希望可以建立一套可以脱离外部服务的私人工具系统
  2. 这套 AI 系统首先应该对我有实用价值,能够完成一些常规的软件应用不容易做到的事情。比如一些智能化的文档生成、翻译和代码生成工作
  3. 我可以通过调整和训练,使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 项目生成单元测试代码——嗯其实我也希望它能做一些更智能的编程工作,但是目前看,真正需要创造力的部分,
还是不能指望这些概率模型的。

这篇关于个人版 AI 辅助系统的尝试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/504075

相关文章

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬