Leo Yeh's Blog

SAS Viya (138)

教學目標

初步了解如何透過 sasctl 函式庫建立模型之基本概念。

重點概念

首先我們能夠透過 sasctl 函式庫以撰寫 Python 程式碼的方式建立模型專案,以利模型開發者無需登入至 SAS Model Manager 網站就能夠以最熟悉的操作方式建立模型專案,特別當不同專案有多個模型時,此操作方式將能夠讓模型管理更佳有效且方便存取,更進一步能夠整合企業現有的工作流程自動化產生模型對應至適當的專案,並且進行模型的管理。

建立專案

1
2
3
4
5
6
7
8
9
10
from sasctl import Session
from sasctl.services import model_repository
server_url = '<SAS Viya URL>'
username = '<SAS Viya Username>'
password = '<SAS Viya Password>'
project_name = '<Project Name>'
repository_name = '<Repository Name>'
with Session(server_url, username, password, verify_ssl=False):
repository = model_repository.get_repository(repository_name)
project = model_repository.create_project(project_name,repository)

建立模型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from sasctl import Session
from sasctl.services import model_repository
server_url = '<SAS Viya URL>'
username = '<SAS Viya Username>'
password = '<SAS Viya Password>'
project_name = '<Project Name>'
model_name = '<Model Name>'
modeler = '<Model Modeler>'
algorithm = '<Model Algorithm>'
with Session(server_url, username, password, verify_ssl=False):
model = model_repository.create_model(model_name, project_name,
modeler=modeler,
algorithm=algorithm
)

上傳模型檔案

1
2
3
4
5
6
7
8
9
10
11
12
from sasctl import Session
from sasctl.services import model_repository
server_url = '<SAS Viya URL>'
username = '<SAS Viya Username>'
password = '<SAS Viya Password>'
project_name = '<Project Name>'
model_name = '<Model Name>'
pyfile_name = '<Python File Name>'
pyfile_path = '<Python File Path>'
with Session(server_url, username, password, verify_ssl=False):
model = model_repository.get_model(model_name)
model_repository.add_model_content(model.id,open(pyfile_path + pyfile_name, "rb").read() ,pyfile_name)

接著當我們需要建立專案時,則主要給予專案名稱和儲存庫名稱,預設儲存庫名稱為「Public」,並且當建立專案之後,我們將能夠在該專案下建立多個模型,則主要給予模型名稱、專案名稱、建模者和演算法,以及將本機檔案上傳至模型中。此外當我們建立專案、建立模型和上傳模型檔案之後,此時更能夠在 SAS Model Manager 網站中以直覺化的方式瀏覽和管理模型相關資訊。

更新模型屬性

1
2
3
4
5
6
7
8
9
10
11
12
from sasctl import Session
from sasctl.services import model_repository
server_url = '<SAS Viya URL>'
username = '<SAS Viya Username>'
password = '<SAS Viya Password>'
model_name = '<Model Name>'
udp_name = '<User-Defined Properties Name>'
udp_value = '<User-Defined Properties Value>'
with Session(server_url, username, password, verify_ssl=False):
model = model_repository.get_model(model_name)
model['properties'].append({'name': udp_name, 'value': udp_value, 'type': 'string'})
model_repository.update_model(model)

再來我們能夠根據模型更新不同的使用者定義屬性,像是模型專屬的關鍵資訊和模型評估的指標資訊。此外當我們更新模型屬性之後,此時更能夠在 SAS Model Manager 網站中以直覺化的方式瀏覽和管理模型相關屬性資訊,並且選取將要比較的模型,再按下「比較」鈕,以利比較同一專案中不同模型的使用者定義屬性之差異資訊。

建立模型版本

1
2
3
4
5
6
7
8
9
from sasctl import Session
from sasctl.services import model_repository
server_url = '<SAS Viya URL>'
username = '<SAS Viya Username>'
password = '<SAS Viya Password>'
model_name = '<Model Name>'
with Session(server_url, username, password, verify_ssl=False):
model = model_repository.get_model(model_name)
model_repository.create_model_version(model, minor=True)

最後我們能夠建立新的模型版本,版本主要分為主要版本和次要版本,預設 minor=False 代表建立主要版本,也就是 1.0 建立為 2.0 新的版本,但若 minor=True 代表建立次要版本,也就是 1.0 建立為 1.1 新的版本。此外僅有目前的版本能夠進行編輯,至於之前的版本將會被鎖定無法進行修改,但是能夠在 SAS Model Manager 網站中進行模型資訊和相關檔案的稽核,將有助於企業針對模型進行更有效的管理。

相關資源

⬅️ Go back