Komponen Skrip PyAlink memungkinkan Anda memanggil semua algoritma Alink melalui penulisan kode. Sebagai contoh, Anda dapat menggunakan komponen ini untuk memanggil algoritma klasifikasi, regresi, atau rekomendasi dari Alink sesuai kebutuhan. Komponen ini juga dapat digunakan bersama dengan komponen algoritma lainnya dari Machine Learning Designer untuk membuat pipeline dan memverifikasi efeknya. Topik ini menjelaskan cara menggunakan komponen Skrip PyAlink.
Informasi latar belakang
Anda dapat menggunakan komponen Skrip PyAlink secara mandiri atau menggabungkannya dengan komponen algoritma lainnya. Skrip PyAlink mendukung ratusan komponen Alink serta membaca dan menulis berbagai jenis data melalui penulisan kode. Untuk informasi lebih lanjut, lihat Metode 1: Gunakan komponen Skrip PyAlink secara mandiri, Metode 2: Gunakan komponen Skrip PyAlink bersama dengan komponen algoritma lainnya dari Machine Learning Designer, dan Metode di mana komponen Skrip PyAlink membaca dan menulis berbagai jenis data. PipelineModel yang dihasilkan oleh komponen Skrip PyAlink dapat diterapkan sebagai layanan di Elastic Algorithm Service (EAS). Untuk detail lebih lanjut, lihat Contoh: Terapkan model yang dihasilkan oleh komponen Skrip PyAlink sebagai layanan di EAS.
Konsep
Sebelum menggunakan komponen Skrip PyAlink, pahami konsep-konsep yang dijelaskan dalam tabel berikut.
Istilah | Deskripsi |
Operator | Di Alink, operator adalah komponen algoritma. Operator dapat berupa operator batch atau stream. Sebagai contoh, operator berikut yang terkait dengan regresi logistik dapat berupa tipe batch atau stream.
Anda dapat menggunakan sintaks Link atau LinkFrom untuk menghubungkan operator. Contoh: Setiap operator dilengkapi dengan serangkaian parameter. Sebagai contoh, operator regresi logistik dilengkapi dengan parameter berikut:
Gunakan set bersama dengan nama parameter untuk menetapkan parameter. Contoh: Operator sumber dan sink adalah operator khusus yang harus didefinisikan terlebih dahulu. Kemudian, Anda dapat menggunakan sintaks Link atau LinkForm untuk menghubungkannya dengan komponen algoritma lainnya. Gambar berikut menunjukkan proses penggunaan operator ini: Komponen Alink menyediakan sumber data stream dan batch yang umum digunakan. Contoh: |
Pipeline | Pipeline adalah metode lain untuk menggunakan algoritma Alink. Anda dapat mengintegrasikan pemrosesan data, pembuatan fitur, dan pelatihan model ke dalam satu pipeline untuk menyediakan layanan pelatihan dan prediksi online. Kode berikut memberikan contoh penggunaan pipeline: |
Vektor | VECTOR adalah tipe data kustom di Alink. Tipe VECTOR berikut tersedia:
Catatan Di Alink, jika suatu kolom bertipe VECTOR, parameter vectorColName sering digunakan untuk menentukan nama kolom. |
Komponen Alink yang didukung oleh Skrip PyAlink
Skrip PyAlink menyediakan ratusan komponen Alink yang mencakup bidang-bidang seperti pemrosesan data, rekayasa fitur, dan pelatihan model.
Skrip PyAlink mendukung komponen pipeline dan batch tetapi tidak mendukung komponen stream.
Metode 1: Gunakan komponen Skrip PyAlink secara mandiri
Bagian ini menjelaskan cara menggunakan komponen Skrip PyAlink di Machine Learning Designer berdasarkan sumber daya Alibaba Cloud. Dalam contoh ini, model collaborative filtering berbasis item (ItemCF) digunakan untuk memberi skor dataset MovieLens. Ikuti langkah-langkah berikut:
Buka halaman Pemodelan Visual (Designer) dan buat pipeline kosong. Untuk informasi lebih lanjut, lihat Prosedur.
Di tab Pipelines, temukan dan klik pipeline yang telah dibuat. Lalu, klik Open.
Di kotak pencarian di atas daftar komponen di sebelah kiri, cari PyAlink Script. Lalu, seret PyAlink Script ke kanvas di sebelah kanan. Node pipeline bernama PyAlink Script-1 akan otomatis dibuat di kanvas.

Di kanvas, klik node PyAlink Script-1. Di panel sebelah kanan, konfigurasikan parameter pada tab Parameters Setting dan Tuning.
Tulis kode berikut di tab Parameters Settings.
from pyalink.alink import * def main(sources, sinks, parameter): PATH = "http://alink-test.oss-cn-beijing.aliyuncs.com/yuhe/movielens/" RATING_FILE = "ratings.csv" PREDICT_FILE = "predict.csv" RATING_SCHEMA_STRING = "user_id long, item_id long, rating int, ts long" ratingsData = CsvSourceBatchOp() \ .setFilePath(PATH + RATING_FILE) \ .setFieldDelimiter("\t") \ .setSchemaStr(RATING_SCHEMA_STRING) predictData = CsvSourceBatchOp() \ .setFilePath(PATH + PREDICT_FILE) \ .setFieldDelimiter("\t") \ .setSchemaStr(RATING_SCHEMA_STRING) itemCFModel = ItemCfTrainBatchOp() \ .setUserCol("user_id").setItemCol("item_id") \ .setRateCol("rating").linkFrom(ratingsData); itemCF = ItemCfRateRecommender() \ .setModelData(itemCFModel) \ .setItemCol("item_id") \ .setUserCol("user_id") \ .setReservedCols(["user_id", "item_id"]) \ .setRecommCol("prediction_score") result = itemCF.transform(predictData) result.link(sinks[0]) BatchOperator.execute()Komponen Skrip PyAlink mendukung maksimal empat port keluaran. Dalam skrip,
result.link(sinks[0])digunakan untuk menulis data keluaran ke port keluaran pertama dari komponen Skrip PyAlink. Node hilir dapat terhubung ke port keluaran pertama untuk membaca data keluaran. Untuk informasi lebih lanjut tentang cara komponen Skrip PyAlink membaca dan menulis berbagai jenis data, lihat Metode di mana komponen Skrip PyAlink membaca dan menulis berbagai jenis data.Di tab Tuning, konfigurasikan parameter yang terkait dengan model running dan spesifikasi node. Tabel berikut menjelaskan parameter tersebut.
Parameter
Deskripsi
Choose Running Mode
Nilai yang valid:
DLC (Multi-Threads): We recommend that you select this value if you run a task that involves a small amount of data in the debugging phase.
MaxCompute (Distributed): Kami merekomendasikan nilai ini jika Anda menjalankan tugas dengan jumlah data besar atau tugas produksi.
Flink (Distributed): Nilai ini menunjukkan bahwa sumber daya kluster Flink yang terkait dengan ruang kerja saat ini berjalan dalam mode terdistribusi.
The number of workers
Parameter ini hanya tersedia jika Anda menetapkan Choose Running Mode ke MaxCompute (Distributed) atau Flink (Distributed). Parameter ini menentukan jumlah pekerja. Secara default, parameter ini dibiarkan kosong, dan sistem secara otomatis menentukan nilainya berdasarkan data tugas.
The memory of each worker, in MB
Parameter ini hanya tersedia jika Anda menetapkan Choose Running Mode ke MaxCompute (Distributed) atau Flink (Distributed). Parameter ini menentukan ukuran memori setiap pekerja. Unit: MB. Nilainya harus bilangan bulat positif. Nilai default: 8192.
The cpu cores of each worker
Parameter ini hanya tersedia jika Anda menetapkan Choose Running Mode ke MaxCompute (Distributed) atau Flink (Distributed). Parameter ini menentukan jumlah core CPU untuk setiap pekerja. Nilainya harus bilangan bulat positif. Secara default, parameter ini dibiarkan kosong.
Choose Node Specification to Run script
Parameter ini menentukan spesifikasi node Deep Learning Containers (DLC). Nilai default: 2vCPU+8GB Mem-ecs.g6.large.
Klik Save di atas kanvas dan klik tombol
untuk menjalankan Skrip PyAlink.Setelah eksekusi tugas selesai, klik kanan PyAlink Script -1 di kanvas dan pilih untuk melihat hasilnya.
Nama kolom
Deskripsi
user_id
ID pengguna.
item_id
ID film.
prediction_score
Menunjukkan seberapa besar pengguna menyukai film. Nilai ini digunakan sebagai referensi untuk rekomendasi film.
Metode 2: Gunakan komponen Skrip PyAlink bersama dengan komponen algoritma lainnya dari Machine Learning Designer
Port masukan dan keluaran komponen Skrip PyAlink sama dengan komponen algoritma lainnya di Machine Learning Designer. Anda dapat menghubungkan komponen Skrip PyAlink ke komponen algoritma lainnya untuk menggunakannya bersama-sama. Gambar berikut memberikan contoh cara menggunakan komponen Skrip PyAlink bersama dengan komponen algoritma lainnya dari Machine Learning Designer.
Metode di mana komponen Skrip PyAlink membaca dan menulis berbagai jenis data
Membaca Data
Membaca data dari tabel MaxCompute: Komponen Skrip PyAlink membaca data dari node hulu menggunakan port masukannya. Contoh kode berikut memberikan ilustrasi:
train_data = sources[0] test_data = sources[1]Dalam kode, sources[0] menunjukkan tabel MaxCompute yang sesuai dengan port masukan pertama, sources[1] menunjukkan tabel MaxCompute yang sesuai dengan port masukan kedua, dan seterusnya. Komponen Skrip PyAlink mendukung maksimal empat port masukan.
Membaca data dari sistem file jaringan: Komponen Skrip PyAlink membaca data menggunakan komponen sumber CsvSourceBatchOp dan AkSourceBatchOP dari Alink dalam kode. Komponen ini dapat membaca data dari jenis file berikut:
File bersama jaringan dalam format HTTP. Contoh kode berikut memberikan ilustrasi:
ratingsData = CsvSourceBatchOp() \ .setFilePath(PATH + RATING_FILE) \ .setFieldDelimiter("\t") \ .setSchemaStr(RATING_SCHEMA_STRING)File yang disimpan di Object Storage Service (OSS). Tentukan jalur OSS dari mana Anda ingin membaca data berdasarkan instruksi yang ditunjukkan pada gambar berikut.
Contoh kode berikut memberikan ilustrasi:model_data = AkSourceBatchOp().setFilePath("oss://xxxxxxxx/model_20220323.ak")
Menulis Data
Menulis data ke tabel MaxCompute: Komponen Skrip PyAlink menulis data ke node hilir menggunakan port keluaran. Contoh kode berikut memberikan ilustrasi:
result0.link(sinks[0]) result1.link(sinks[1]) BatchOperator.execute()Dalam kode, result0.link(sinks[0]) menunjukkan bahwa data ditulis ke tabel hasil yang sesuai dengan port keluaran pertama. Data yang ditulis dapat diakses menggunakan port keluaran pertama. Komponen Skrip PyAlink dapat menulis data ke maksimal empat tabel hasil.
Menulis data ke objek OSS: Tentukan jalur OSS ke mana Anda ingin menulis data berdasarkan instruksi yang ditunjukkan pada gambar berikut.
Contoh kode berikut memberikan ilustrasi:result.link(AkSinkBatchOp() \ .setFilePath("oss://xxxxxxxx/model_20220323.ak") \ .setOverwriteSink(True)) BatchOperator.execute()
Contoh: Terapkan model yang dihasilkan oleh komponen Skrip PyAlink sebagai layanan di EAS
Hasilkan model yang akan diterapkan.
Hanya PipelineModel yang dihasilkan oleh komponen Skrip PyAlink yang dapat diterapkan sebagai layanan di EAS. Jalankan kode contoh berikut untuk menghasilkan file PipelineModel. Untuk informasi lebih lanjut, lihat Metode 1: Gunakan komponen Skrip PyAlink secara mandiri.
from pyalink.alink import * def main(sources, sinks, parameter): PATH = "http://alink-test.oss-cn-beijing.aliyuncs.com/yuhe/movielens/" RATING_FILE = "ratings.csv" PREDICT_FILE = "predict.csv" RATING_SCHEMA_STRING = "user_id long, item_id long, rating int, ts long" ratingsData = CsvSourceBatchOp() \ .setFilePath(PATH + RATING_FILE) \ .setFieldDelimiter("\t") \ .setSchemaStr(RATING_SCHEMA_STRING) predictData = CsvSourceBatchOp() \ .setFilePath(PATH + PREDICT_FILE) \ .setFieldDelimiter("\t") \ .setSchemaStr(RATING_SCHEMA_STRING) itemCFModel = ItemCfTrainBatchOp() \ .setUserCol("user_id").setItemCol("item_id") \ .setRateCol("rating").linkFrom(ratingsData); itemCF = ItemCfRateRecommender() \ .setModelData(itemCFModel) \ .setItemCol("item_id") \ .setUserCol("user_id") \ .setReservedCols(["user_id", "item_id"]) \ .setRecommCol("prediction_score") model = PipelineModel(itemCF) model.save().link(AkSinkBatchOp() \ .setFilePath("oss://<your_bucket_name>/model.ak") \ .setOverwriteSink(True)) BatchOperator.execute()Ganti
<your_bucket_name>dalam kode dengan nama Bucket OSS.PentingPastikan Anda dapat membaca data dari jalur dataset yang ditentukan oleh parameter PATH. Jika tidak, komponen ini tidak dapat dijalankan.
Hasilkan file konfigurasi EAS.
Jalankan kode berikut untuk menulis data keluaran ke file config.json:
# Hasilkan file konfigurasi EAS. import json # Hasilkan konfigurasi model EAS. model_config = {} # Tentukan skema data input di EAS. model_config['inputDataSchema'] = "id long, movieid long" model_config['modelVersion'] = "v0.2" eas_config = { "name": "recomm_demo", "model_path": "http://xxxxxxxx/model.ak", "processor": "alink_outer_processor", "metadata": { "instance": 1, "memory": 2048, "region":"cn-beijing" }, "model_config": model_config } print(json.dumps(eas_config, indent=4))Parameter penting dalam file config.json:
name: Nama model yang akan diterapkan.
model_path: Jalur OSS tempat file PipelineModel disimpan. Ganti nilai parameter model_path dalam kode dengan jalur OSS yang sebenarnya.
Untuk informasi lebih lanjut tentang parameter lainnya dalam file config.json, lihat Jalankan perintah untuk menggunakan klien EASCMD.
Terapkan model sebagai layanan di EAS.
Anda dapat masuk dan menggunakan klien EASCMD untuk menerapkan model. Untuk informasi lebih lanjut tentang cara masuk ke klien EASCMD, lihat Unduh klien EASCMD dan lengkapi autentikasi pengguna. Sebagai contoh, jika Anda menggunakan klien EASCMD di Windows 64-bit, jalankan perintah berikut untuk menerapkan model sebagai layanan di EAS:
eascmdwin64.exe create config.json