大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
1 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
1.1 背景
目前AI已经大行其道,chatGPT、DeepSeek等如雨后春笋般涌现出来,笔者做为一个守旧派和顽固派,一直认为AI只是雕虫小技,根本没有办法和人写的代码相提并论,在chatGPT已经大火几年之后仍然一直无动于衷,只是在最近才慢慢使用了豆包查点资料,然后再接触Kimi、DeepSeek等AI工具和模型。
使用AI的对话问答模式,相对原来的搜索引擎,得到的结果更精练, 不会像百度、必应之类的搜索引擎,搜索到结果后还要逐页去人工筛选,AI的回答就是干干净净你要的东西,这比搜索引擎效率高太多了!
提要求让AI生成些小的代码片段,如:“给我写一个vbs获取文件扩展名的函数”,生成的代码质量也非常不错,直接拿来就能用,连测试代码也一并写好!
总结一句话:大人,时代变了,现在投降是代价最小的时候!
问题来了:目前这些AI工具,都是基于通用模型, 如果用来做一些其他业务场景的事,效果就不会太好,此时就需要训练自己的本地模型了!
注意:在训练自己的本地模型前,请首先有一个概念,如果没有充足的硬件资源,请不要尝试在本地部署DeepSeek-R1模型,该模型至少需要60G的显存,GPU也是NVidia H100规格的,且是多卡分布式!
使用线上+线下协作的方式,可能是普通人训练自己业务场景的最优选择!
1.2 准备工作
注册硅基流动账号: 硅基流动注册

下载
CherryStudio:下载CherryStudio
注:目前常用的AI客户端只有CherryStudio工具的知识库支持训练本地素材
1.3 训练本地知识库
比如:作者偶尔会写点EverEdit的宏脚本(js语法),由于EverEdit有自己的API,所以AI必须先学习EverEdit的API。
1.3.1 在CherryStudio中配置密钥
配置密钥是为了能够让CherryStudio使用AI供应商(这里是硅基流动)的模型
步骤1:在
siliconflow网站登录后,拷贝自己的密钥,如下图所示:
步骤2:在
CherryStudio中配置密钥,如下图所示:
1.3.2 在CherryStudio中训练本地知识库
训练本地知识库的目的:将自有业务知识消化成知识库,结合在线AI(如:DeepSeek),以解答自有业务领域的问题,而避免投入大量硬件训练完整的专有本地模型。
比如:我偶尔要写EverEdit宏脚本,因此我要训练关于EverEdit的API的本地知识库。
在
CherryStudio中新建本地知识库,如下图所示:
将自有业务相关的文档丢到
知识库中进行消化(近似动作),如下图所示:
消化完成后,会出现绿色的“√”符号
1.3.3 在CherryStudio中使用本地知识库(自有业务)和DeepSeek在线模型生成自有业务相关代码或答案
- 打开知识库开关,并选择本地知识库,如下图所示:
在CherryStudio的导航栏选择“助手”按钮,切换到助手模式
在界面的底部聊天窗口中选择本地知识库
提出问题并解答,如下图所示:
- 用户提出问题让AI解答

- 出现问题,让AI修正

- 还有问题,继续让AI修正

注:后面还有很多让AI修正的步骤,这里不一一列举。 - 最终AI生成的代码
// 获取当前文档对象
var doc = App.ActiveDoc; // 获取文档内容
var text = doc.Text; // 获取用户输入的分隔符,默认使用“,”
var delimiter = App.ShowInputBox("请输入分隔符(默认按','分隔):", "分隔符输入");
if (!delimiter) {
delimiter = ",";
} // 获取制表符宽度
var tabWidth = doc.TabStop; // 按换行符拆分文档内容
var lines = text.split("\n");
var columns = [];
for (var i = 0; i < lines.length; i++) {
columns.push(lines[i].split(delimiter));
} // 计算字符串的显示宽度(中文字符占2,中文符号“和”占1,英文字符占1,Tab键按制表符宽度计算)
function getDisplayWidth(str) {
var width = 0;
for (var i = 0; i < str.length; i++) {
var char = str.charAt(i); // 使用 str.charAt(i) 获取字符
if (char === "\t") {
// 计算 Tab 宽度,对齐到下一个制表符位置 [^1]
width += tabWidth - (width % tabWidth);
} else if (char === "“" || char === "”") {
width += 1; // 中文符号“和”占1个宽度
} else {
var charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 127) {
width += 1; // 英文字符或半角字符
} else {
width += 2; // 中文字符或全角字符
}
}
}
return width;
} // 计算每列的最大显示宽度
var maxWidths = [];
for (var i = 0; i < columns.length; i++) {
for (var j = 0; j < columns[i].length; j++) {
var width = getDisplayWidth(columns[i][j]);
if (!maxWidths[j] || width > maxWidths[j]) {
maxWidths[j] = width;
}
}
} // 生成对齐后的文本(在分隔符后面多填充1个空格)
var alignedText = "";
for (var i = 0; i < columns.length; i++) {
for (var j = 0; j < columns[i].length; j++) {
var cell = columns[i][j];
// 添加单元格内容
alignedText += cell;
// 在分隔符后面填充空格(多填充1个空格)
if (j < columns[i].length - 1) {
var cellWidth = getDisplayWidth(cell);
var padding = "";
for (var k = 0; k < maxWidths[j] - cellWidth; k++) {
padding += " ";
}
alignedText += delimiter + " " + padding; // 分隔符后多填充1个空格
}
}
if (i < columns.length - 1) {
alignedText += "\n";
}
} // 将对齐后的内容写回文档
doc.Text = alignedText;- 脚本执行后的效果
对齐前:
脚本执行列对齐后:
哇!是不是很整齐!这都是AI自己写的脚本哦!
- 用户提出问题让AI解答
作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来源自豆包AI,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright 2022~2025 All rights reserved.
大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!的更多相关文章
- 15SpringMvc_在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型
之前第12篇文章中提到过在业务控制方法中写入普通变量收集参数的方式,也提到了这种凡方式的弊端(参数很多怎么办),所以这篇文章讲的是在业务控制方法中写入模型变量来收集参数.本文的案例实现的功能是,在注册 ...
- mvc_第一遍_业务逻辑层和模型
常用的动态网页对象: 之前我们提到了,使用request对象可以获得和用户请求相关的一系列信息.这一节,我们来看看另外两个常用对象的常规用途. response对象:用于向客户回应.最常用的用法类似于 ...
- 在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型
1) 在默认情况下,springmvc不能将String类型转成java.util.Date类型,所有我们只能在Action 中自定义类型转换器 <form action="${pa ...
- 从0到1搭建AI中台
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 转自 | 宜信技术学院 作者 | 井玉欣 导读:随着“数据中台”的提出和成功实践,各企业纷纷在“大中台 ...
- JuiceFS 在数据湖存储架构上的探索
大家好,我是来自 Juicedata 的高昌健,今天想跟大家分享的主题是<JuiceFS 在数据湖存储架构上的探索>,以下是今天分享的提纲: 首先我会简单的介绍一下大数据存储架构变迁以及它 ...
- 2.69分钟完成BERT训练!新发CANN 5.0加持
摘要:快,着实有点快. 现在,经典模型BERT只需2.69分钟.ResNet只需16秒. 啪的一下,就能完成训练! 本文分享自华为云社区<这就是华为速度:2.69分钟完成BERT训练!新发CAN ...
- 乾象投资:基于JuiceFS 构建云上量化投研平台
背景 乾象投资 Metabit Trading 成立于2018年,是一家以人工智能为核心的科技型量化投资公司.核心成员毕业于 Stanford.CMU.清北等高校.目前,管理规模已突破 30 亿元人民 ...
- 为什么 java 容器推荐使用 ExitOnOutOfMemoryError 而非 HeapDumpOnOutOfMemoryError ?
前言 好久没写文章了, 今天之所以突然心血来潮, 是因为昨天出现了这样一个情况: 我们公司的某个手机APP后端的用户(customer)微服务出现内存泄露, 导致OutOfMemoryError, 但 ...
- 云原生的弹性 AI 训练系列之一:基于 AllReduce 的弹性分布式训练实践
引言 随着模型规模和数据量的不断增大,分布式训练已经成为了工业界主流的 AI 模型训练方式.基于 Kubernetes 的 Kubeflow 项目,能够很好地承载分布式训练的工作负载,业已成为了云原生 ...
- 英特尔® 至强® 平台集成 AI 加速构建数据中心智慧网络
英特尔 至强 平台集成 AI 加速构建数据中心智慧网络 SNA 通过 AI 方法来实时感知网络状态,基于网络数据分析来实现自动化部署和风险预测,从而让企业网络能更智能.更高效地为最终用户业务提供支撑. ...
随机推荐
- 2023 CCPC 深圳
2023 CCPC 深圳 D. Bot Brothers 有一棵 \(n\) 个点的树,\(m\) 个叶子,编号为 \(1∼m\).两人在树上博弈,均从根出发,轮流行动,每次走向一个当前所在节点的子节 ...
- Newstar CTF 2023 week2 pwn
1.ret2libc 发现存在pop rdi 观察main函数,可以利用puts函数泄露libc from pwn import * from LibcSearcher import * contex ...
- Playfair密码
Playfair密码 Playfair cipher (普莱费尔密码)一种古典对称式密码,是首个双字母替换的加密法.尽管以现在的眼光来看这种加密是非常不安全的,但是它加密的过程还是蛮有意思的. 这种加 ...
- 【Amadeus原创】SQL Server数据库备份、差异备份、日志备份脚本
1,sp脚本 USE [master] GO /****** Object: StoredProcedure [dbo].[sp_BackupDatabase] Script Date: 2021/1 ...
- CoFile 企业云盘大焕新啦!
一.域名升级,更好记 俗话说的好,好记性不如字数少 cofile.net 指尖一敲,快乐来到 别拦着我,我就要用 CoFile 企业云盘 二.架构优化,不止更快 底层优化,加载提速,更快响应,加倍安全 ...
- LNMP Wordpress phpMyAdmin的部署记录
背景 CentOS 8.2服务器,使用的虚拟服务器.只开放22与80端口.设置默认页面是wordpress的入口,phpmyadmin使用虚拟目录的形式进行访问. 安装 总体思路按照此文章进行.我进行 ...
- mybatis-plus逻辑删除不生效的解决办法
我们在使用mybatis-plus时,一般设备逻辑删除是非常简单的,基本上在yaml等配置文件中做一下配置.然后在字段上注解@TableLogic就可以了.有不清楚的,可以参考https://www. ...
- Qt编写安防视频监控系统55-布局方案
一.前言 这是近期对视频监控系统做得最大的改动,采用了QMainWindow停靠窗体悬停窗体,极大的增强了拓展性,主界面中的各种小模块全部采用了悬停模块,最后不同的工作模式.不同的运行状态(全屏状态. ...
- [转]CMake与Make最简单直接的区别
写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe. 但如果源文件太多,一个一个编译时就会特别麻烦 ...
- 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.6版已发布
关于RainbowChat RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统.RainbowChat源于真实运营的产品,解决了大量的屏幕适配.细节优化. ...