Lindorm AI引擎支持導入預訓練AI模型,對數據庫內的數據進行分析和處理或對時序數據進行建模,執行時序分析類任務。
語法
CREATE MODEL model_name
FROM {table_name | (select_statement) | model_file_path | huggingface_repo | modelscope_repo}
[ TARGET column_name ]
TASK ( FEATURE_EXTRACTION | SEMANTIC_RETRIEVAL | TEXT_TO_IMAGE | ... )
ALGORITHM ( BGE_LARGE_ZH | CHATGLM2_6B | CHINESE_STABLE_DIFFUSION | ... )
[ PREPROCESSORS 'string' ]
SETTINGS (
text_splitter 'off',
...
)
參數說明
任務類型(TASK)不同,相關參數配置也不同。請根據任務類型(TASK),配置對應參數。
model_name:模型名稱。
FROM:用于指定導入的模型地址、數據庫中的表(檢索類任務)、訓練數據或一條查詢語句(時序類任務),支持以下選項:
選項
說明
table_name
當TASK為時序類任務(TIME_SERIES_FORECAST或TIME_SERIES_ANOMALY_DETECTION)時,用于指定訓練數據。指定的表或查詢語句的結果必須至少包含2列,且其中1列為時間列。
select_statement
當TASK為檢索類任務(SEMANTIC_RETRIEVAL或RETRIEVAL_QA)時,用于指定參與檢索的文檔表中的數據。
model_file_path
模型上傳至LDFS上的地址,格式為
ldfs://model_file_path
,例如ldfs://x.x.x.x/CLIP-ViT-B-32-IMAGE.zip
。huggingface_repo
模型平臺(HuggingFace)上的模型路徑,格式為
huggingface://repository_id
,例如huggingface://lllyasviel/ControlNet
。modelscope_repo
模型平臺(ModelScope)上的模型路徑,格式為
modelscope://repository_id
,例如modelscope://damo/multi-modal_chinese_stable_diffusion_v1.0
。TARGET column_name:用于指定模型分析和處理的目標列。當TASK為以下任務類型時,TARGET參數為必選 。
語義檢索(SEMANTIC_RETRIEVAL)
檢索問答(RETRIEVAL_QA)
時序預測(TIME_SERIES_FORECAST)
時序異常檢測(TIME_SERIES_ANOMALY_DETECTION)
TASK:指定模型的任務類型,支持以下任務類型:
任務類型
關鍵字
說明
特征提取
FEATURE_EXTRACTION
使用Embedding模型從數據(文本或圖像等)中提取特征向量。
文生圖
TEXT_TO_IMAGE
文本生成圖像類AIGC任務。
語義檢索
SEMANTIC_RETRIEVAL
在指定數據表中根據描述文本檢索語義相似的文本。
基礎問答
QUESTION_ANSWERING
使用大語言模型進行問答。
檢索問答
RETRIEVAL_QA
使用指定數據表中的知識庫結合大語言模型構建一個檢索增強生成(Retrieval Augmented Generation,RAG)應用。
時序預測
TIME_SERIES_FORECAST
時序預測類任務。
時序異常檢測
TIME_SERIES_ANOMALY_DETECTION
時序異常檢測類任務。
ALGORITHM:指定模型使用的算法。支持的算法如下表所示:
任務類型
算法
說明
特征提取、語義檢索
TEXT2VEC_BASE_CHINESE
中文文本轉向量Embedding模型。
對應的模型平臺上的路徑為
huggingface://shibing624/text2vec-base-chinese
。詳細信息,請參見Hugging Face模型。
BGE_LARGE_ZH
BAAI(智源)訓練的中文文本轉向量Embedding模型。
對應的模型平臺上的路徑為
huggingface://BAAI/bge-large-zh-v1.5
。詳細信息,請參見Hugging Face模型。
M3E_BASE
MoKaAI訓練的中文文本轉向量Embedding模型。
對應的模型平臺上的路徑為
huggingface://moka-ai/m3e-base
。詳細信息,請參見Hugging Face模型。
GTE_LARGE_ZH
達摩院訓練的中文文本轉向量Embedding模型。
對應的模型平臺上的路徑為
huggingface://thenlper/gte-large-zh
。詳細信息,請參見Hugging Face模型。
BGE_M3
BAAI(智源)訓練的支持多語言的文本轉向量Embedding模型。
對應的模型平臺上的路徑為
huggingface://BAAI/bge-m3
。詳細信息,請參見Hugging Face模型。
JINA_V2_BASE_ZH
Jina AI訓練的支持中英雙語的文本轉向量Embedding模型。
對應的模型平臺上的路徑為
modelscope://jinaai/jina-embeddings-v2-base-zh
。詳細信息,請參見Model Scope模型。
文生圖
CHINESE_STABLE_DIFFUSION
中文Stable Diffusion文生圖模型,根據描述文本返回符合文本描述的2D圖像。
對應的模型平臺上的路徑為
modelscope://damo/multi-modal_chinese_stable_diffusion_v1.0
。詳細信息,請參見Model Scope模型。
基礎問答、檢索問答
CHATGLM3_6B
支持中英雙語問答的對話語言模型ChatGLM-6B的第三代版本。
對應的模型平臺上的路徑為
huggingface://THUDM/chatglm3-6b
。詳細信息,請參見Hugging Face模型。
CHATGLM2_6B_INT4
支持中英雙語問答的對話語言模型ChatGLM-6B的第二代版本INT4量化版。
對應的模型平臺上的路徑為
huggingface://THUDM/chatglm2-6b-int4
。詳細信息,請參見Hugging Face模型。
CHATGLM2_6B
支持中英雙語問答的對話語言模型ChatGLM-6B的第二代版本 。
對應的模型平臺上的路徑為
huggingface://THUDM/chatglm2-6b
。詳細信息,請參見Hugging Face模型。
QWEN_7B_CHAT_INT4
阿里云研發的通義千問大模型系列的70億參數規模的模型INT4量化版 。
對應的模型平臺上的路徑為
modelscope://qwen/Qwen-7B-Chat-Int4
。詳細信息,請參見Model Scope模型。
QWEN_14B_CHAT_INT4
阿里云研發的通義千問大模型系列的140億參數規模的模型INT4量化版 。
對應的模型平臺上的路徑為
modelscope://qwen/Qwen-14B-Chat-Int4
。詳細信息,請參見Model Scope模型。
時序預測
DeepAR
DeepAR算法是基于RNN的深度神經網絡算法。詳細信息,請參見DeepAR論文。
TFT
TFT(Temporal Fusion Transformer)算法是基于Transformer機制的深度神經網絡算法,詳細信息,請參見TFT論文。
時序異常檢測
esd
達摩院自研算法,適用于尖刺型異常(例如監控曲線出現尖刺的現象),對于數據點中有少量顯著離群點的情況,檢測結果準確。詳細信息,請參見時序異常檢測。
nsigma
達摩院自研算法,原理簡單,便于分析異常原因。詳細信息,請參見時序異常檢測。
ttest
達摩院自研算法,適用于識別一個時間窗口內時序指標是否存在因均值變化而發生的異常。詳細信息,請參見時序異常檢測。
PREPROCESSORS 'string':可選參數。僅對時序類任務(TIME_SERIES_FORECAST或TIME_SERIES_ANOMALY_DETECTION)生效。用于指定某些列的預處理操作,通常使用JSON格式的字符串定義。
PREPROCESSORS參數包括要處理的列集合Columns和要進行的預處理操作列表Transformers。其中Transformers參數構成一個管道,會按照指定的順序執行。每一個Transformers都包含預處理操作名稱Name和參數Parameters。示例代碼如下:
PREPROCESSORS '[ { "Columns":[ "c1" ], "Transformers":[ { "Name": "Imputer", "Parameters": {"value": 0} }, { "Name": "StandardScaler" } ] }, { "Columns":[ "c2", "c3" ], "Transformers":[ { "Name": "OrdinalEncoder" } ] } ]'
說明其中,處理的列集合Columns參數和預處理操作包含的Parameters參數都為可選參數。
在模型訓練時指定的預處理操作會被自動應用到模型推理的過程中。目前Lindorm AI支持的預處理操作如下表所示:
預處理操作
參數
說明
OneHotEncoder
無
使用二進制對類別特征進行編碼,適用于沒有大小關系的類別特征。
OrdinalEncoder
無
將類別特征編碼從0開始的整數,適用于有大小關系的類別特征。
Imputer
method:字符串。取值為dummy、mean、median、most_frequent、roll7、last,默認為dummy。
value:整型。可選參數,默認為0。
對缺失值進行插值,可選多種策略。
StandardScaler
無
將數據轉換成標準正態分布(均值為0,標準差為1),也叫z-score標準化。
MinMaxScaler
min:整型。
max:整型。可選參數。
將數據范圍縮放至(min,max)區間,默認縮放至(0,1)。
LogTransformer
無
將數據轉換成log對數值。
SETTINGS:指定其他相關參數。不同的任務類型可以指定不同的參數,支持的參數如下:
語義檢索和檢索問答任務相關參數
參數名
參數類型
說明
是否必填
embedding_model
VARCHAR
此參數可用于兩個用途:
語義檢索任務指定使用BYOM功能導入的Embedding模型,取值為使用BYOM功能導入的Embedding模型名稱。
檢索問答任務更換Embedding模型,取值為:
使用BYOM功能導入的Embedding模型名。
特征提取任務支持的所有Embedding模型對應的模型平臺路徑,如
huggingface://BAAI/bge-large-zh-v1.5
等。
否
hybrid_retrieval
VARCHAR
是否打開向量+全文混合檢索功能(僅對語義檢索任務生效),打開后會使用RRF(Reciprocal rank fusion)算法對雙路召回結果進行排序。取值如下:
on:默認值,打開。
off:關閉。
否
text_splitter
VARCHAR
是否打開文檔切片功能。取值如下:
on:默認值,打開。
off:關閉。
否
incremental_train
VARCHAR
是否打開增量處理功能。取值如下:
on:打開。
off:默認值,關閉。
否
retrievel_algo
VARCHAR
向量檢索的索引算法。取值如下:
HNSW:默認值。采用HNSW圖結構構建整個向量索引,并通過該算法進行查詢,適合大規模的數據集。
FLAT:不單獨構建索引,采用暴力搜索的方式執行查詢,適合1萬條以下的小規模數據集。
否
retrieval_distance_method
VARCHAR
向量檢索的距離函數。取值如下:
IP:默認值。向量內積。
COSINE:余弦距離。
L2:平方歐式距離。
否
retrieval_ef_construct
INTEGER
使用HNSW向量檢索算法構建索引時,動態列表的長度。默認值為400,取值范圍為[1,1000],該值越大則ANN查詢精度越高,同時性能開銷越大。
否
retrieval_maximum_degree
INTEGER
使用HNSW向量檢索算法構建索引時,每一層的最大出邊數量。默認值為80,取值范圍為[1,100]。該值越大則ANN查詢精度越高,同時性能開銷越大。
否
retrieval_num_shards
INTEGER
向量索引使用的分片個數,向量數據和結構化數據進行融合檢索時,每個索引表分片會先根據向量的相似查詢獲取topK數據,再基于合并后的topK數據進行結構化數據過濾。默認值為4。
否
text_analyzer
VARCHAR
此配置項在混合檢索功能(hybrid_retrieval)打開時生效,用于指定全文檢索使用的分詞器。取值如下:
ik:默認值。
standard
english
whitespace
comma
否
時序預測任務相關參數
參數名
參數類型
說明
是否必填
epochs
INTEGER
訓練epochs的個數,只適用于時序預測。默認為80。
是
time_column
VARCHAR
時間列。
是
group_columns
VARCHAR
分組列。即決定時間線的TAG列。
是
freq
VARCHAR
時序數據的頻率。例如“1D”。
是
prediction_length
INTEGER
預測步長。
是
feat_static_columns
VARCHAR
靜態特征列(TAG)的集合,以英文逗號(,)分隔。
否
時序異常檢測相關參數
時序異常檢測支持的參數,請參見時序異常檢測中的訓練參數。
示例
示例一:文生圖
CREATE MODEL t2i_model
FROM 'modelscope://damo/multi-modal_chinese_stable_diffusion_v1.0'
TASK TEXT_TO_IMAGE
ALGORITHM CHINESE_STABLE_DIFFUSION;
示例二:特征提取
CREATE MODEL fe_model
FROM 'huggingface://BAAI/bge-large-zh-v1.5'
TASK FEATURE_EXTRACTION
ALGORITHM BGE_LARGE_ZH;
示例三:語義檢索
CREATE MODEL sr_model
FROM doc_table
TARGET doc_field
TASK SEMANTIC_RETRIEVAL
ALGORITHM BGE_LARGE_ZH;
示例四:基礎問答
CREATE MODEL qa_model
FROM 'huggingface://THUDM/chatglm2-6b-int4'
TASK QUESTION_ANSWERING
ALGORITHM CHATGLM2_6B_INT4;
示例五:檢索問答
CREATE MODEL rqa_model
FROM doc_table
TARGET doc_field
TASK RETRIEVAL_QA
ALGORITHM CHATGLM2_6B_INT4;
示例五:時序預測
CREATE MODEL tft_model
FROM (SELECT * FROM fresh_sales WHERE `time` > '2021-02-08T00:00:00+08:00')
TARGET sales
TASK time_series_forecast
ALGORITHM tft
SETTINGS
(
time_column 'time',
group_columns 'id_code',
feat_static_columns 'cate1_id,cate2_id,brand_id',
context_length '28',
prediction_length '6',
epochs '5',
freq '1D'
);