本說明書實(shí)施例屬于人工智能,尤其涉及一種文件訪問方法、裝置。
背景技術(shù):
1、隨著llm(large?language?model,大語言模型)的快速發(fā)展,不僅與llm模型相關(guān)的數(shù)據(jù)量在急劇得膨脹,而且對于這些數(shù)據(jù)的存儲以及讀寫的需求,也在不斷的發(fā)生變化。例如,llm模型通常包含數(shù)十億甚至數(shù)百億個參數(shù)組成,因此除了存儲推理所需的數(shù)據(jù)以外,還需要大量的存儲資源來存儲這些模型參數(shù)。除此之外,llm模型在運(yùn)行時,通常需要高速的進(jìn)行數(shù)據(jù)讀取和寫入,以便在推理階段能夠快速的處理數(shù)據(jù)。這就需要對現(xiàn)有的存儲系統(tǒng)進(jìn)行優(yōu)化,以確保llm模型可以快速訪問所需的數(shù)據(jù)。
2、在此基礎(chǔ)上,數(shù)據(jù)的存儲以及讀寫的需求的變化,勢必會對現(xiàn)有的存儲系統(tǒng)的io性能提出新的挑戰(zhàn)。
技術(shù)實(shí)現(xiàn)思路
1、本說明書提出一種文件訪問方法,應(yīng)用于執(zhí)行計算任務(wù)的計算節(jié)點(diǎn),所述計算節(jié)點(diǎn)的系統(tǒng)內(nèi)核上掛載了在用戶態(tài)上運(yùn)行的用戶態(tài)文件系統(tǒng);所述用戶態(tài)文件系統(tǒng)用于存儲與所述計算任務(wù)相關(guān)的文件;與所述計算任務(wù)對應(yīng)的第一用戶態(tài)進(jìn)程中實(shí)現(xiàn)了第一進(jìn)程適配程序;與所述用戶態(tài)文件系統(tǒng)對應(yīng)的第二用戶態(tài)進(jìn)程中實(shí)現(xiàn)了第二進(jìn)程適配程序;所述方法包括:
2、所述第一進(jìn)程適配程序攔截所述第一用戶態(tài)進(jìn)程在運(yùn)行過程中觸發(fā)的針對所述用戶態(tài)文件系統(tǒng)的訪問請求;
3、響應(yīng)于攔截到的所述訪問請求,所述第一進(jìn)程適配程序?qū)⑺鲈L問請求在用戶態(tài)傳輸至所述第二進(jìn)程適配程序,由所述第二進(jìn)程適配程序進(jìn)一步將所述訪問請求提交給所述第二用戶態(tài)進(jìn)程,以使所述第二用戶態(tài)進(jìn)程執(zhí)行所述訪問請求對所述用戶態(tài)文件系統(tǒng)進(jìn)行訪問處理;
4、所述第二進(jìn)程適配程序攔截所述第二用戶態(tài)進(jìn)程針對所述用戶態(tài)文件系統(tǒng)進(jìn)行訪問處理產(chǎn)生的訪問結(jié)果,并將所述訪問結(jié)果在用戶態(tài)傳輸至所述第一進(jìn)程適配程序,由所述第一進(jìn)程適配程序進(jìn)一步將所述訪問結(jié)果提交給所述第一用戶態(tài)程序,以使所述第一用戶態(tài)程序基于所述訪問結(jié)果完成所述計算任務(wù)。
5、可選的,所述第一用戶態(tài)進(jìn)程運(yùn)行的執(zhí)行代碼中包含用于發(fā)起針對所述系統(tǒng)內(nèi)核的系統(tǒng)調(diào)用,以訪問所述用戶態(tài)文件系統(tǒng)的第一函數(shù);相應(yīng)的,所述第一進(jìn)程適配程序中包含用于在用戶態(tài)訪問所述用戶態(tài)文件系統(tǒng)的第二函數(shù);
6、所述第一進(jìn)程適配程序攔截所述第一用戶態(tài)進(jìn)程在運(yùn)行過程中觸發(fā)的針對所述用戶態(tài)文件系統(tǒng)的訪問請求,包括:
7、響應(yīng)于所述第一用戶態(tài)進(jìn)程在運(yùn)行過程中針對所述第一函數(shù)的調(diào)用,將所述第一函數(shù)替換為所述第二函數(shù),以使所述第一用戶態(tài)進(jìn)程進(jìn)一步發(fā)起針對所述第二函數(shù)的調(diào)用,將在運(yùn)行過程中觸發(fā)的針對所述用戶態(tài)文件系統(tǒng)的訪問請求作為調(diào)用參數(shù)提交給所述第一進(jìn)程適配程序;
8、所述第一進(jìn)程適配程序?qū)⑺鲈L問請求在用戶態(tài)傳輸至所述第二進(jìn)程適配程序,包括:
9、所述第一進(jìn)程適配程序執(zhí)行所述第二函數(shù),將所述訪問請求在用戶態(tài)傳輸至所述第二進(jìn)程適配程序。
10、可選的,所述第二用戶態(tài)進(jìn)程運(yùn)行的執(zhí)行代碼中包含用于發(fā)起針對所述系統(tǒng)內(nèi)核的系統(tǒng)調(diào)用,以將針對所述用戶態(tài)文件系統(tǒng)的訪問結(jié)果返回給所述第一用戶態(tài)進(jìn)程的第三函數(shù);相應(yīng)的,所述第二進(jìn)程適配程序中包含用于在用戶態(tài)將針對所述用戶態(tài)文件系統(tǒng)的訪問結(jié)果返回給所述第一用戶態(tài)進(jìn)程的第四函數(shù);
11、所述第二進(jìn)程適配程序攔截所述第二用戶態(tài)進(jìn)程針對所述用戶態(tài)文件系統(tǒng)進(jìn)行訪問處理產(chǎn)生的訪問結(jié)果,包括:
12、響應(yīng)于所述第二用戶態(tài)進(jìn)程在運(yùn)行過程中調(diào)用了所述第三函數(shù),將所述第二用戶態(tài)進(jìn)程調(diào)用的所述第三函數(shù)替換為所述第四函數(shù),以使所述第二用戶態(tài)進(jìn)程進(jìn)一步發(fā)起針對所述第四函數(shù)的調(diào)用,將針對所述用戶態(tài)文件系統(tǒng)進(jìn)行訪問處理產(chǎn)生的訪問結(jié)果作為調(diào)用參數(shù)提交給所述第二進(jìn)程適配程序;
13、所述第二進(jìn)程適配程序?qū)⑺鲈L問結(jié)果在用戶態(tài)傳輸至所述第一進(jìn)程適配程序,包括:
14、所述第二進(jìn)程適配程序執(zhí)行所述第四函數(shù),將所述訪問結(jié)果在用戶態(tài)傳輸至所述第一進(jìn)程適配程序。
15、可選的,所述第一進(jìn)程適配程序?qū)⑺鲈L問請求在用戶態(tài)傳輸至所述第二進(jìn)程適配程序,包括:
16、所述第一進(jìn)程適配程序?qū)⑺鲈L問請求在用戶態(tài)以內(nèi)存共享的方式傳輸至所述第二進(jìn)程適配程序;
17、所述第二進(jìn)程適配程序?qū)⑺鲈L問結(jié)果在用戶態(tài)傳輸至所述第一進(jìn)程適配程序,包括:
18、所述第二進(jìn)程適配程序?qū)⑺鲈L問結(jié)果在用戶態(tài)以內(nèi)存共享的方式傳輸至所述第一進(jìn)程適配程序。
19、可選的,所述訪問請求包括針對所述用戶態(tài)文件系統(tǒng)中存儲的目標(biāo)文件的讀取請求;相應(yīng)的,所述訪問結(jié)果包括從所述用戶態(tài)文件系統(tǒng)中讀取到的目標(biāo)文件;或者,
20、所述訪問請求包括向所述用戶態(tài)文件系統(tǒng)中寫入目標(biāo)文件的寫入請求;相應(yīng)的,所述訪問結(jié)果包括向所述用戶態(tài)文件系統(tǒng)寫入所述目標(biāo)文件的寫入結(jié)果。
21、可選的,所述用戶態(tài)文件系統(tǒng)中存儲的文件,為由若干個文件構(gòu)成的文件塊。
22、可選的,所述用戶態(tài)文件系統(tǒng)對接了用于存儲與所述計算任務(wù)相關(guān)的文件的存儲系統(tǒng);其中,所述用戶態(tài)文件系統(tǒng)與所述存儲系統(tǒng)之間建立了rdma連接;
23、所述方法還包括:
24、在所述計算節(jié)點(diǎn)執(zhí)行所述計算任務(wù)之前,基于所述rdma連接將與所述計算任務(wù)相關(guān)的文件,從所述存儲系統(tǒng)中同步至所述用戶態(tài)文件系統(tǒng)進(jìn)行存儲。
25、可選的,所述計算節(jié)點(diǎn)采用的操作系統(tǒng)為linux系統(tǒng);所述進(jìn)程適配程序?yàn)榛趌inux系統(tǒng)支持的ld_preload機(jī)制在用戶態(tài)進(jìn)程中實(shí)現(xiàn)的adaptor適配器。
26、可選的,所述用戶態(tài)文件系統(tǒng)為基于linux系統(tǒng)提供過的libfuse庫創(chuàng)建的用戶態(tài)文件系統(tǒng);所述用戶態(tài)文件系統(tǒng)通過linux系統(tǒng)的fuse內(nèi)核模塊掛載至所述linux系統(tǒng)。
27、可選的,所述計算任務(wù)為針對llm模型進(jìn)行訓(xùn)練的訓(xùn)練任務(wù);或者,基于llm模型進(jìn)行邏輯推理的推理任務(wù)。
28、可選的,所述用戶態(tài)文件系統(tǒng)為基于所述計算節(jié)點(diǎn)搭載的快閃存儲設(shè)備實(shí)現(xiàn)的文件系統(tǒng)。
29、可選的,所述用戶態(tài)文件系統(tǒng)為基于共同執(zhí)行所述計算任務(wù)的計算節(jié)點(diǎn)集群中的各個計算節(jié)點(diǎn)搭載的快閃存儲設(shè)備實(shí)現(xiàn)的分布式的文件系統(tǒng)。
30、本說明書還提出一種文件訪問裝置,應(yīng)用于執(zhí)行計算任務(wù)的計算節(jié)點(diǎn),所述計算節(jié)點(diǎn)的系統(tǒng)內(nèi)核上掛載了在用戶態(tài)上運(yùn)行的用戶態(tài)文件系統(tǒng);所述用戶態(tài)文件系統(tǒng)用于存儲與所述計算任務(wù)相關(guān)的文件;與所述計算任務(wù)對應(yīng)的第一用戶態(tài)進(jìn)程中實(shí)現(xiàn)了第一進(jìn)程適配程序;與所述用戶態(tài)文件系統(tǒng)對應(yīng)的第二用戶態(tài)進(jìn)程中實(shí)現(xiàn)了第二進(jìn)程適配程序;所述裝置包括:
31、第一攔截模塊,所述第一進(jìn)程適配程序攔截所述第一用戶態(tài)進(jìn)程在運(yùn)行過程中觸發(fā)的針對所述用戶態(tài)文件系統(tǒng)的訪問請求;
32、第一傳輸模塊,響應(yīng)于攔截到的所述訪問請求,所述第一進(jìn)程適配程序?qū)⑺鲈L問請求在用戶態(tài)傳輸至所述第二進(jìn)程適配程序,由所述第二進(jìn)程適配程序進(jìn)一步將所述訪問請求提交給所述第二用戶態(tài)進(jìn)程,以使所述第二用戶態(tài)進(jìn)程執(zhí)行所述訪問請求對所述用戶態(tài)文件系統(tǒng)進(jìn)行訪問處理;
33、第二攔截模塊,所述第二進(jìn)程適配程序攔截所述第二用戶態(tài)進(jìn)程針對所述用戶態(tài)文件系統(tǒng)進(jìn)行訪問處理產(chǎn)生的訪問結(jié)果;
34、第二傳輸模塊,所述第二進(jìn)程適配程序?qū)⑺鲈L問結(jié)果在用戶態(tài)傳輸至所述第一進(jìn)程適配程序,由所述第一進(jìn)程適配程序進(jìn)一步將所述訪問結(jié)果提交給所述第一用戶態(tài)程序,以使所述第一用戶態(tài)程序基于所述訪問結(jié)果完成所述計算任務(wù)。
35、上述實(shí)施例中,通過在與計算任務(wù)對應(yīng)的用戶態(tài)進(jìn)程和與掛載在系統(tǒng)內(nèi)核上的用戶態(tài)文件系統(tǒng)對應(yīng)的用戶態(tài)進(jìn)程上分別實(shí)現(xiàn)進(jìn)程適配程序,使得與計算任務(wù)對應(yīng)的用戶態(tài)進(jìn)程在訪問用戶態(tài)文件系統(tǒng)時,通過實(shí)現(xiàn)的進(jìn)程適配程序在用戶態(tài)就可以完成針對用戶態(tài)文件系統(tǒng)的訪問交互,而不再需要針對系統(tǒng)內(nèi)核發(fā)起調(diào)用,從而可以優(yōu)化針對用戶態(tài)文件系統(tǒng)的訪問鏈路,顯著的減少針對系統(tǒng)內(nèi)核的調(diào)用次數(shù),降低系統(tǒng)開銷,進(jìn)而可以提升對用戶態(tài)文件系統(tǒng)進(jìn)行訪問時的訪問性能。