大家好,今天和大家分享AntSK 知识库/智能体项目的最新进展。
AntSK 是一个基于.Net 8、Blazor及SemanticKernel开发的 AI 项目,旨在为开发者提供一个强大的 AI 知识库与智能体平台。最新版本的项目可以在 GitHub 上找到:
https://github.com/AIDotNet/AntSK
在 AntSK 之前的版本中,我们已经成功地整合了使用LLamaSharp加载本地模型的 gguf 类型,但我们并没有就此止步。为了进一步支持更多类型的本地模型,并便于测试不同模型的表现,我们更新了项目,加入了llamafactory的集成,并且着手准备接下来的模型微调功能。
下面是我们对llamafactory集成工作的一个概述:
我们知道,.Net 平台在运行 AI 模型推理和训练方面的组件库并不如Python那样丰富(虽然博主也是主技能.Net)。因此,我们这次选择了一个工程上的简化方案:直接将llamafactory的核心文件集成到 AntSK 项目中,并通过使用llamafactory的 API 来完成集成,而非直接使用python.net。这样做的主要目的是降低使用门槛,即便是对 Python 不够熟悉的开发者也能够轻松上手。
首先,我们将llamafactory核心文件整合到了项目中,见下图:
我们原先考虑通过python.net来完成集成,但后来发现那样会增加很多工作量。因此转而采用了一个间接的方法:自动通过AntSK安装依赖并启动llamafactory。
代码实例 1:安装python环境以及安装llamafactory所需的依赖包
public async Task PipInstall() { var cmdTask = Task.Factory.StartNew(() => { var isProcessComplete = false; process = new Process { StartInfo = new ProcessStartInfo { FileName = "pip", Arguments = "install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple", UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory, } }; process.OutputDataReceived += (sender, eventArgs) => { Console.WriteLine($"{eventArgs.Data}"); OnLogMessageReceived(eventArgs.Data); }; process.ErrorDataReceived += (sender, eventArgs) => { Console.WriteLine($"{eventArgs.Data}"); OnLogMessageReceived(eventArgs.Data); }; process.Start(); process.BeginOutputReadLine(); process.BeginErrorReadLine(); process.WaitForExit(); }, TaskCreationOptions.LongRunning); }
代码实例 2:启动llamafactory并指定模型及模板
public async Task StartLLamaFactory(string modelName, string templateName) { var cmdTask = Task.Factory.StartNew(() => { var isProcessComplete = false; process = new Process { StartInfo = new ProcessStartInfo { FileName = "python", Arguments = "api_demo.py --model_name_or_path " + modelName + " --template " + templateName + " ", UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError=true, WorkingDirectory = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "llamafactory"), } }; process.StartInfo.Environment["CUDA_VISIBLE_DEVICES"] = "0"; process.StartInfo.Environment["API_PORT"] = "8000"; process.StartInfo.EnvironmentVariables["USE_MODELSCOPE_HUB"] = "1"; process.OutputDataReceived += (sender, eventArgs) => { Console.WriteLine($"{eventArgs.Data}"); OnLogMessageReceived(eventArgs.Data); }; process.ErrorDataReceived += (sender, eventArgs) => { Console.WriteLine($"{eventArgs.Data}"); OnLogMessageReceived(eventArgs.Data); }; process.Start(); process.BeginOutputReadLine(); process.BeginErrorReadLine(); process.WaitForExit(); }, TaskCreationOptions.LongRunning); }
随后,我们将模型的 API 地址设置为了llamafactory的代理地址。这个简化的流程使得我们能够迅速使用llamafactory。
效果展示:
在创建模型时,选择LLamaFactory,然后我们就可以选择很多魔塔的本地模型
选择好后我们点击启动。
为了更容易看到安装依赖和运行llamafactory的日志,我们加入了类似控制台的显示组件:
等待模型下载结束后,我们在请求地址中设置llamafactory的服务地址(这里默认配置的是8000端口)
然后我们就可以开始聊天了!!
通过AntSK可以非常容易集成各种本地模型进行使用。
我们下一步将会集成bge的embedding模型,以及如何在AntSK中实现rerank。
更进一步,我们的下一步计划是集成模型微调功能,为此,我们已经在布局相关工作。希望大家继续关注我的公众号,持续跟进我们的最新动态!未来,让我们共同见证 AntSK 如何使 AI 集成更加简单化、智能化服务器托管网。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fw服务器托管网qtg.net
相关推荐: 成为AI产品经理——TPR、FPR、ROC、AUC
目录 一、PR图、BEP 1.PR图 2.BEP 二、灵敏度、特异度 1.灵敏度 2.特异度 三、真正率、假正率 1.真正率 2.假正率 三、ROC、AUC 1服务器托管网.ROC 2.AUC 四、KS值 一、PR图、BEP 1.PR图 二分类问题模型通常输出…