? ? ? ? 大家好,今天和大家分享?AntSK 知識庫/智能體項(xiàng)目的最新進(jìn)展。
??????? AntSK 是一個基于?.Net 8、Blazor?及?SemanticKernel?開發(fā)的 AI 項(xiàng)目,旨在為開發(fā)者提供一個強(qiáng)大的 AI 知識庫與智能體平臺。最新版本的項(xiàng)目可以在 GitHub 上找到:
https://github.com/AIDotNet/AntSK
? ? ? ? 在 AntSK 之前的版本中,我們已經(jīng)成功地整合了使用?LLamaSharp?加載本地模型的 gguf 類型,但我們并沒有就此止步。為了進(jìn)一步支持更多類型的本地模型,并便于測試不同模型的表現(xiàn),我們更新了項(xiàng)目,加入了?llamafactory?的集成,并且著手準(zhǔn)備接下來的模型微調(diào)功能。
????????下面是我們對?llamafactory?集成工作的一個概述:
????????我們知道,.Net 平臺在運(yùn)行 AI 模型推理和訓(xùn)練方面的組件庫并不如?Python?那樣豐富(雖然博主也是主技能.Net?)。因此,我們這次選擇了一個工程上的簡化方案:直接將?llamafactory?的核心文件集成到 AntSK 項(xiàng)目中,并通過使用?llamafactory?的 API 來完成集成,而非直接使用?python.net。這樣做的主要目的是降低使用門檻,即便是對 Python 不夠熟悉的開發(fā)者也能夠輕松上手。
????????首先,我們將?llamafactory?核心文件整合到了項(xiàng)目中,見下圖:?
? ? ? ? 我們原先考慮通過?python.net?來完成集成,但后來發(fā)現(xiàn)那樣會增加很多工作量。因此轉(zhuǎn)而采用了一個間接的方法:自動通過?AntSK?安裝依賴并啟動?llamafactory。
????????代碼實(shí)例 1:安裝python環(huán)境以及安裝?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); }
代碼實(shí)例 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 地址設(shè)置為了?llamafactory?的代理地址。這個簡化的流程使得我們能夠迅速使用?llamafactory。
????????效果展示:?
在創(chuàng)建模型時,選擇LLamaFactory,然后我們就可以選擇很多魔塔的本地模型
?文章來源地址http://www.zghlxwxcb.cn/news/detail-842832.html
? ? ? ? 選擇好后我們點(diǎn)擊啟動。
????????為了更容易看到安裝依賴和運(yùn)行llamafactory的日志,我們加入了類似控制臺的顯示組件:
?等待模型下載結(jié)束后,我們在請求地址中設(shè)置llamafactory的服務(wù)地址(這里默認(rèn)配置的是8000端口)
?
? ? ? ? 然后我們就可以開始聊天了?。?/p>
????????通過AntSK可以非常容易集成各種本地模型進(jìn)行使用。
????????我們下一步將會集成bge的embedding模型,以及如何在AntSK中實(shí)現(xiàn)rerank。
????????更進(jìn)一步,我們的下一步計(jì)劃是集成模型微調(diào)功能,為此,我們已經(jīng)在布局相關(guān)工作。希望大家繼續(xù)關(guān)注我的公眾號,持續(xù)跟進(jìn)我們的最新動態(tài)!未來,讓我們共同見證 AntSK 如何使 AI 集成更加簡單化、智能化。
文章來源:http://www.zghlxwxcb.cn/news/detail-842832.html
?
到了這里,關(guān)于AntSK 0.2.3 版本更新:輕松集成 AI 本地離線模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!