Konfigurasi log debug
Setelah layanan dipublikasikan, Anda dapat mengumpulkan berbagai informasi untuk menganalisis kinerjanya secara online. Meskipun pencetakan log untuk debugging offline memungkinkan, metode ini kurang fleksibel untuk layanan online.
Konfigurasi ini mengumpulkan informasi debug online. Anda dapat mengaktifkannya untuk mencetak informasi ke console, mengirimkannya ke DataHub guna analisis mendetail—misalnya, menganalisis efek setiap recall—atau menuliskannya ke file lokal untuk keperluan lain. Saat ini, konfigurasi ini mengumpulkan data item setelah tahap recall, filtering, dan coarse-ranking.
Konfigurasi debug ini sesuai dengan DebugConfs dalam ikhtisar konfigurasi. DebugConfs merupakan struktur Map[string]object di mana kunci merepresentasikan skenario, sehingga memungkinkan Anda membuat konfigurasi terisolasi untuk skenario yang berbeda.
{
"DebugConfs": {
"${scene_name}": {
"OutputType": "datahub",
"Rate": 0,
"DebugUsers": [
"1001"
],
"DatahubName": "dh_debug_log",
"KafkaName": "pairec_debug_log",
"FilePath": "/Users/username/pairec/debug_log/",
"MaxFileNum": 20
}
}
}
|
Field |
Type |
Required |
Description |
|
OutputType |
string |
Yes |
Metode output untuk log debug. Nilai yang valid:
|
|
Rate |
int |
Yes |
Rasio sampling log. Nilainya berkisar antara 0 hingga 100. Sesuaikan nilai ini berdasarkan queries per second (QPS) layanan online Anda. Note: Jika nilainya 0, tidak ada informasi debug yang dikeluarkan. |
|
DebugUsers |
[]string |
No |
Hanya mencatat log untuk UID tertentu. Misalnya, `"DebugUsers": [ "1001"]` berarti log hanya dicatat untuk pengguna 1001. |
|
DatahubName |
string |
No |
Diperlukan ketika `OutputType` diatur ke `datahub`. Nama ini merupakan nama kustom dari `DatahubConfs` dalam konfigurasi sumber data. |
|
KafkaName |
string |
No |
Diperlukan ketika `OutputType` diatur ke `kafka`. Nama ini merupakan nama instans dari `KafkaConfs` dalam konfigurasi sumber data. |
|
FilePath |
string |
No |
Diperlukan ketika `OutputType` diatur ke `file`. Log debug dikeluarkan ke path ini. Path akan dibuat secara otomatis jika belum ada. |
|
MaxFileNum |
int |
No |
Bersifat opsional ketika `OutputType` diatur ke `file`. Mengatur jumlah maksimum file log yang dapat disimpan di direktori `FilePath`. Nilai default-nya adalah 20. Setiap file log dibatasi hingga 1 G. Jika ukuran file melebihi batas ini, terjadi rotasi file. Jika jumlah file melebihi `MaxFileNum`, file log tertua akan dihapus. |
Informasi output mencakup bidang-bidang berikut:
-
request_id: ID unik untuk setiap permintaan rekomendasi.
-
module: Modul yang menghasilkan log. Modul saat ini meliputi recall, filter, dan general_rank.
-
scene_id: ID skenario.
-
exp_id: ID eksperimen.
-
request_time: Stempel waktu UNIX permintaan dalam satuan detik.
-
uid: ID pengguna.
-
retrieveid: ID recall.
-
items: Daftar item. Formatnya adalah "item1:score1:{'dbmtl_prob_click':'0.03'},item2:score2:{'dbmtl_prob_click':'0.04'}". Jika module bernilai recall atau filter, score adalah skor recall.
Jika module bernilai general_rank, rank, atau sort, formatnya adalah "item1:score1:{'dbmtl_prob_click':'0.03'},item2:score2:{'dbmtl_prob_click':'0.03'}". Dalam kasus ini, score adalah skor dari layanan model selama tahap general rank atau rank. dbmtl_prob_click adalah salah satu skor target model. Jika layanan model memiliki beberapa target, kurung kurawal berisi semua skor target tersebut. Nama aktual target bergantung pada layanan model, dan dbmtl_prob_click hanyalah contoh.
Saat ini, dalam satu modul, item dikeluarkan secara terpisah untuk setiap retrieveid. Misalnya, jika terdapat lima sumber recall, lima catatan dihasilkan ketika module bernilai recall, dengan setiap catatan sesuai dengan satu sumber recall. Modul filter dan general_rank mengikuti logika pencatatan yang sama.
Konfigurasi DataHub
Untuk konfigurasi DataHub, Anda tidak perlu membuat topik secara manual. Mesin akan membuatnya secara otomatis jika Anda menentukan topik dan skema.
{
"DatahubConfs": {
"dh_debug_log": {
"Endpoint": "http://dh-cn-beijing-int-vpc.aliyuncs.com",
"ProjectName": "project_test",
"TopicName": "pairec_debug_log",
"Schemas": [
{
"Field": "request_id",
"Type": "string"
},
{
"Field": "module",
"Type": "string"
},
{
"Field": "scene_id",
"Type": "string"
},
{
"Field": "request_time",
"Type": "integer"
},
{
"Field": "exp_id",
"Type": "string"
},
{
"Field": "items",
"Type": "string"
},
{
"Field": "retrieveid",
"Type": "string"
},
{
"Field": "uid",
"Type": "string"
}
]
}
}
}
Saat layanan berjalan, mesin secara otomatis membuat topik pairec_debug_log dan menerapkan skema yang ditentukan. Setelah Anda melihat output log di Konsol DataHub, Anda dapat membuat hubungan langganan antara MaxCompute dan DataHub untuk menyimpan data DataHub ke tabel MaxCompute.
|
Field name |
Type |
Required |
Description |
|
Endpoint |
string |
Yes |
Endpoint adalah nama domain dari Daftar Nama Domain DataHub. Jika proyek DataHub dan PAI-Rec berada di Wilayah yang sama, gunakan alamat VPC. Jika tidak, gunakan alamat publik. |
|
ProjectName |
string |
Yes |
Nama proyek DataHub. |
|
TopicName |
string |
Yes |
Nama topik DataHub. |
|
Schemas |
[]map |
Yes |
Detail skema DataHub. |
Konfigurasi Kafka
Untuk konfigurasi Kafka, tentukan nama instans (yang sesuai dengan KafkaName dalam DebugConfs), endpoint ingest BootstrapServers, dan nama topik yang telah ada sebelumnya.
{
"KafkaConfs": {
"pairec_debug_log": {
"BootstrapServers": "alikafka-post-cn-xxxxx-1.alikafka.aliyuncs.com:9093,alikafka-post-cn-xxxxx-2.alikafka.aliyuncs.com:9093,alikafka-post-cn-xxxxx-3.alikafka.aliyuncs.com:9093",
"Topic": "debug_log"
}
}
}
Jika Anda menggunakan Konsol PAI-Rec untuk konfigurasi, saat layanan dideploy ke EAS, virtual private cloud (VPC) dan vSwitch dalam konfigurasi jaringan harus sama dengan instans Kafka yang digunakan.
Konfigurasi log fitur
Konfigurasi ini digunakan untuk mengumpulkan fitur sisi pengguna dan sisi item secara online, yang kemudian dikirim ke DataHub untuk analisis mendetail.
Konfigurasi log fitur didefinisikan dalam FeatureLogConfs dalam ikhtisar konfigurasi. FeatureLogConfs merupakan struktur Map[string]object dengan kunci yang merepresentasikan skenario, sehingga memungkinkan isolasi konfigurasi untuk setiap skenario.
{
"FeatureLogConfs": {
"${scene_name}": {
"OutputType": "datahub",
"Rate": 10,
"DatahubName": "",
"UserFeatures": "",
"ItemFeatures": ""
}
}
}
|
Field |
Type |
Required |
Description |
|
OutputType |
string |
Yes |
Metode output untuk log debug. Saat ini, hanya `DataHub` yang didukung. |
|
DatahubName |
string |
Yes |
Diperlukan ketika `OutputType` diatur ke `datahub`. Nama ini merupakan nama kustom dari `DatahubConfs` dalam konfigurasi sumber data. |
|
Rate |
int |
No |
Rasio sampling data. Nilainya berkisar antara 0 hingga 100. Sesuaikan nilai ini berdasarkan QPS layanan online Anda. Penting
Untuk memastikan kompatibilitas dengan versi lama, jika Anda tidak menentukan parameter ini atau mengatur `Rate` ke 0, semua data akan disampling, yang setara dengan mengatur `Rate` ke 100. |
|
UserFeatures |
string |
No |
Satu pengguna dapat memiliki banyak fitur. Di sini, Anda dapat memilih subset fitur sisi pengguna. Pisahkan beberapa fitur dengan koma. Gunakan tanda bintang (`*`) untuk mencatat semua fitur sisi pengguna. Jika parameter ini kosong atau tidak diberikan, tidak ada fitur sisi pengguna yang dicatat. |
|
ItemFeatures |
string |
No |
Seperti di atas, Anda dapat memilih subset fitur sisi item. Gunakan tanda bintang (`*`) untuk mencatat semua fitur sisi item di mesin. Jika parameter ini kosong, ID recall dan fitur skoring model akan dicatat. |
|
SplitUserItemLogs |
bool |
No |
Menentukan apakah log fitur pengguna dan item dipisahkan. Secara default, setiap catatan log untuk satu permintaan berisi seluruh fitur pengguna ditambah fitur untuk satu item. Hal ini menyebabkan redundansi data fitur pengguna. Jika Anda mengaktifkan parameter ini, satu catatan log hanya berisi fitur pengguna, dan catatan berikutnya untuk permintaan yang sama hanya berisi fitur item. Ini menghilangkan redundansi data. |
Konfigurasi DataHub
Anda tidak perlu membuat topik secara manual dalam konfigurasi DataHub. Mesin akan membuat topik secara otomatis jika Anda menentukan topik dan skema.
{
"DatahubConfs": {
"dh_feature_log": {
"Endpoint": "http://dh-cn-beijing-int-vpc.aliyuncs.com",
"ProjectName": "",
"TopicName": "pairec_feature_log",
"Schemas": [
{
"Field": "request_id",
"Type": "string"
},
{
"Field": "scene_id",
"Type": "string"
},
{
"Field": "exp_id",
"Type": "string"
},
{
"Field": "request_time",
"Type": "integer"
},
{
"Field": "user_id",
"Type": "string"
},
{
"Field": "user_features",
"Type": "string"
},
{
"Field": "item_id",
"Type": "string"
},
{
"Field": "position",
"Type": "string"
},
{
"Field": "item_features",
"Type": "string"
}
]
}
}
}
Saat layanan berjalan, mesin secara otomatis membuat topik pairec_feature_log dan menerapkan skema yang ditentukan.
|
Field Name |
Type |
Required |
Description |
|
Endpoint |
string |
Yes |
Endpoint DataHub dari daftar nama domain DataHub. Jika proyek DataHub dan PAI-Rec berada di Wilayah yang sama, biasanya digunakan alamat VPC. Jika tidak, biasanya digunakan alamat jaringan publik. |
|
ProjectName |
string |
Yes |
Nama proyek DataHub. |
|
TopicName |
string |
Yes |
Nama topik DataHub. |
|
Schemas |
[]map |
Yes |
Detail skema DataHub. |