இந்த இடுகையில், ட்விட்ச் தரவுத்தொகுப்புடன் இணைப்பு கணிப்பைத் தொடர்ந்து பார்ப்போம்.
நெப்டியூன்-ஏற்றுமதி பயன்பாடு மற்றும் 'neptune_ml' சுயவிவரத்தைப் பயன்படுத்தி நெப்டியூனிலிருந்து ஏற்றுமதி செய்யப்பட்ட வரைபடத் தரவு ஏற்கனவே எங்களிடம் உள்ளது. முந்தைய படிகள் இந்த வழிகாட்டியின் பகுதி 2 மற்றும் 1 இல் விவரிக்கப்பட்டுள்ளன.
பகுதி 1 ஐ இங்கேயும் பகுதி 2 ஐ இங்கேயும் படியுங்கள்.
தரவு தற்போது S3 இல் சேமிக்கப்பட்டுள்ளது மற்றும் இது போல் தெரிகிறது:
CSV முனைகள் (முனைகள்/user.consolidated.csv):
~id,~label,days,mature,views,partner "6980","user",771,true,2935,false "547","user",2602,true,18099,false "2173","user",1973,false,3939,false ...
விளிம்புகள் CSV (edges/user-follows-user.consolidated.csv):
~id,~label,~from,~to,~fromLabels,~toLabels "3","follows","6194","2507","user","user" "19","follows","3","3739","user","user" "35","follows","6","2126","user","user" ...
ஏற்றுமதி பயன்பாடு இந்த கட்டமைப்பு கோப்பையும் நமக்காக உருவாக்கியது:
பயிற்சி-தரவு-கட்டமைப்பு.json:
{ "version" : "v2.0", "query_engine" : "gremlin", "graph" : { "nodes" : [ { "file_name" : "nodes/user.consolidated.csv", "separator" : ",", "node" : [ "~id", "user" ], "features" : [ { "feature" : [ "days", "days", "numerical" ], "norm" : "min-max", "imputer" : "median" }, { "feature" : [ "mature", "mature", "auto" ] }, { "feature" : [ "views", "views", "numerical" ], "norm" : "min-max", "imputer" : "median" }, { "feature" : [ "partner", "partner", "auto" ] } ] } ], "edges" : [ { "file_name" : "edges/%28user%29-follows-%28user%29.consolidated.csv", "separator" : ",", "source" : [ "~from", "user" ], "relation" : [ "", "follows" ], "dest" : [ "~to", "user" ], "features" : [ ] } ] }, "warnings" : [ ] }
எங்கள் தற்போதைய குறிக்கோள் தரவு செயலாக்கத்தை மேற்கொள்வதாகும், அதாவது, நம்மிடம் உள்ள தரவை மாதிரி பயிற்சிக்கு டீப் கிராஃப் லைப்ரரி கட்டமைப்பு பயன்படுத்தக்கூடிய வடிவமாக மாற்றுவதாகும். (DGL உடன் இணைப்பு முன்கணிப்பு பற்றிய கண்ணோட்டத்திற்கு, இந்த இடுகையைப் பார்க்கவும்). இதில் எண் அம்சங்களை இயல்பாக்குதல், வகைப்படுத்தப்பட்ட அம்சங்களை குறியாக்கம் செய்தல், எங்கள் இணைப்பு முன்கணிப்பு பணிக்காக மேற்பார்வையிடப்பட்ட கற்றலை செயல்படுத்த ஏற்கனவே உள்ள மற்றும் இல்லாத இணைப்புகளுடன் முனை ஜோடிகளின் பட்டியல்களை உருவாக்குதல் மற்றும் தரவை பயிற்சி, சரிபார்ப்பு மற்றும் சோதனைத் தொகுப்புகளாகப் பிரித்தல் ஆகியவை அடங்கும்.
training-data-configuration.json கோப்பில் நீங்கள் காணக்கூடியது போல, 'நாட்கள்' (கணக்கு வயது) மற்றும் 'பார்வைகள்' என்ற முனை அம்சங்கள் எண்ணியல் ரீதியாக அங்கீகரிக்கப்பட்டன, மேலும் குறைந்தபட்ச-அதிகபட்ச இயல்பாக்கம் பரிந்துரைக்கப்பட்டது. குறைந்தபட்ச-அதிகபட்ச இயல்பாக்கம் தன்னிச்சையான மதிப்புகளை [0; 1] வரம்பிற்கு அளவிடுகிறது: x_normalized = (x - x_min) / (x_max - x_min). மேலும் imputer = median என்பது விடுபட்ட மதிப்புகள் சராசரி மதிப்புடன் நிரப்பப்படும் என்பதைக் குறிக்கிறது.
'முதிர்ந்த' மற்றும் 'கூட்டாளர்' ஆகிய முனை அம்சங்கள் 'தானியங்கி' என்று பெயரிடப்பட்டுள்ளன, மேலும் அந்த நெடுவரிசைகள் பூலியன் மதிப்புகளை மட்டுமே கொண்டிருப்பதால், அவை வகைப்படுத்தப்பட்ட அம்சங்களாக அங்கீகரிக்கப்பட்டு தரவு செயலாக்க கட்டத்தில் குறியாக்கம் செய்யப்படும் என்று நாங்கள் எதிர்பார்க்கிறோம். இந்த தானாக உருவாக்கப்பட்ட கோப்பில் ரயில்-சரிபார்ப்பு-சோதனை பிளவு சேர்க்கப்படவில்லை, மேலும் இணைப்பு முன்கணிப்பு பணிக்கான இயல்புநிலை பிளவு 0.9, 0.05, 0.05 ஆகும்.
நீங்கள் இயல்பாக்கம் மற்றும் குறியீட்டு அமைப்புகளை சரிசெய்யலாம், மேலும் தனிப்பயன் ரயில்-சரிபார்ப்பு-சோதனை பிரிவை நீங்கள் தேர்வு செய்யலாம். நீங்கள் அவ்வாறு செய்யத் தேர்வுசெய்தால், S3 இல் உள்ள அசல் பயிற்சி-data-configuration.json கோப்பை புதுப்பிக்கப்பட்ட பதிப்பால் மாற்றவும். அந்த JSON இல் ஆதரிக்கப்படும் புலங்களின் முழு பட்டியல் இங்கே கிடைக்கிறது. இந்த இடுகையில், இந்த கோப்பை மாற்றாமல் விட்டுவிடுவோம்.
தரவு ஏற்றுதல் கட்டத்தில் (இந்த டுடோரியலின் பகுதி 1 இல் விவரிக்கப்பட்டுள்ளது) இருப்பது போல, நாம் பயன்படுத்தும் சேவைகளை அணுக அனுமதிக்கும் IAM பாத்திரங்களை உருவாக்க வேண்டும், மேலும் அந்த பாத்திரங்களை நமது நெப்டியூன் கிளஸ்டரில் சேர்க்க வேண்டும். தரவு செயலாக்க நிலைக்கு நமக்கு இரண்டு பாத்திரங்கள் தேவை. முதலாவது நெப்டியூன் பாத்திரமாகும், இது SageMaker மற்றும் S3 க்கு நெப்டியூன் அணுகலை வழங்குகிறது. இரண்டாவது SageMaker செயல்படுத்தல் பாத்திரமாகும், இது SageMaker தரவு செயலாக்க பணியை இயக்கும் போது பயன்படுத்தப்படுகிறது மற்றும் S3 ஐ அணுக அனுமதிக்கிறது.
இந்தப் பாத்திரங்கள் நெப்டியூன் மற்றும் சேஜ்மேக்கர் சேவைகளை ஏற்றுக்கொள்ள அனுமதிக்கும் நம்பிக்கைக் கொள்கைகளைக் கொண்டிருக்க வேண்டும்:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
பாத்திரங்களை உருவாக்கி, அவர்களின் நம்பிக்கைக் கொள்கைகளைப் புதுப்பித்த பிறகு, நாங்கள் அவர்களை நெப்டியூன் கிளஸ்டரில் சேர்ப்போம் (நெப்டியூன் -> தரவுத்தளங்கள் -> YOUR_NEPTUNE_CLUSTER_ID -> இணைப்பு & பாதுகாப்பு -> IAM பாத்திரங்கள் -> பங்கைச் சேர்).
இப்போது நாம் training-data-configuration.json கோப்பைப் புதுப்பித்து, நெப்டியூன் கிளஸ்டரில் IAM பாத்திரங்களைச் சேர்த்துள்ளோம், தரவு செயலாக்க வேலையைத் தொடங்கத் தயாராக உள்ளோம். அதைச் செய்ய, கிளஸ்டர் அமைந்துள்ள VPC-க்குள் இருந்து நெப்டியூன் கிளஸ்டரின் HTTP API-க்கு ஒரு கோரிக்கையை அனுப்ப வேண்டும். அதைச் செய்ய, EC2 நிகழ்வைப் பயன்படுத்துவோம்.
தரவு செயலாக்க வேலையைத் தொடங்க நாம் curl ஐப் பயன்படுத்துவோம்:
curl -XPOST https://(YOUR_NEPTUNE_ENDPOINT):8182/ml/dataprocessing \ -H 'Content-Type: application/json' \ -d '{ "inputDataS3Location" : "s3://SOURCE_BUCKET/neptune-export/...", "processedDataS3Location" : "s3://OUTPUT_BUCKET/neptune-export-processed/...", "neptuneIamRoleArn": "arn:aws:iam::123456789012:role/NeptuneMLDataProcessingNeptuneRole", "sagemakerIamRoleArn": "arn:aws:iam::123456789012:role/NeptuneMLDataProcessingSagemakerRole" }'
இந்த 4 அளவுருக்கள் மட்டுமே தேவை: உள்ளீட்டு தரவு S3 இடம், செயலாக்கப்பட்ட தரவு S3 இடம், நெப்டியூன் பங்கு, சேஜ்மேக்கர் பங்கு. பல விருப்ப அளவுருக்கள் உள்ளன: எடுத்துக்காட்டாக, processingInstanceType
உடன் நமது தரவு செயலாக்க பணிக்காக உருவாக்கப்படும் EC2 நிகழ்வு வகையை கைமுறையாகத் தேர்ந்தெடுத்து, அதன் சேமிப்பக அளவு அளவை processingInstanceVolumeSizeInGB
உடன் அமைக்கலாம். அளவுருக்களின் முழு பட்டியலையும் இங்கே காணலாம்.
நாம் உருவாக்கிய தரவு செயலாக்க வேலையின் ஐடியைக் கொண்ட JSON உடன் கிளஸ்டர் பதிலளிக்கிறது:
{"id":"d584f5bc-d90e-4957-be01-523e07a7562e"}
இந்தக் கட்டளையைப் பயன்படுத்தி வேலையின் நிலையைப் பெறலாம் (முந்தைய கோரிக்கையில் இருந்த அதே neptuneIamRoleArn ஐப் பயன்படுத்தவும்):
curl https://YOUR_NEPTUNE_CLUSTER_ENDPOINT:8182/ml/dataprocessing/YOUR_JOB_ID?neptuneIamRoleArn='arn:aws:iam::123456789012:role/NeptuneMLDataProcessingNeptuneRole'
இது போன்ற ஏதாவது ஒன்றை அது பதிலளித்தவுடன்,
{ "processingJob": {...}, "id":"d584f5bc-d90e-4957-be01-523e07a7562e", "status":"Completed" }
நாம் வெளியீட்டைச் சரிபார்க்கலாம். இந்தக் கோப்புகள் இலக்கு S3 பக்கெட்டில் உருவாக்கப்பட்டன:
graph.* கோப்புகள் செயலாக்கப்பட்ட graph தரவைக் கொண்டுள்ளன.
features.json கோப்பில் முனை மற்றும் விளிம்பு அம்சங்களின் பட்டியல்கள் உள்ளன:
{ "nodeProperties": { "user": [ "days", "mature", "views", "partner" ] }, "edgeProperties": {} }
தரவு எவ்வாறு செயலாக்கப்பட்டது மற்றும் அம்சங்கள் எவ்வாறு குறியாக்கம் செய்யப்பட்டன என்பது பற்றிய விவரங்களை updated_training_config.json கோப்பில் காணலாம்:
{ "graph": { "nodes": [ { "file_name": "nodes/user.consolidated.csv", "separator": ",", "node": [ "~id", "user" ], "features": [ { "feature": [ "days", "days", "numerical" ], "norm": "min-max", "imputer": "median" }, { "feature": [ "mature", "mature", "category" ] }, { "feature": [ "views", "views", "numerical" ], "norm": "min-max", "imputer": "median" }, { "feature": [ "partner", "partner", "category" ] } ] } ], "edges": [ { "file_name": "edges/%28user%29-follows-%28user%29.consolidated.csv", "separator": ",", "source": [ "~from", "user" ], "relation": [ "", "follows" ], "dest": [ "~to", "user" ] } ] } }
training-data-configuration.json கோப்பில் ஆரம்பத்தில் 'auto' என்று பெயரிடப்பட்ட பூலியன் மதிப்புகளைக் கொண்ட 'mature' மற்றும் 'partner' நெடுவரிசைகள் வகை அம்சங்களாக குறியாக்கம் செய்யப்பட்டிருப்பதைக் காணலாம்.
'train_instance_recommendation.json' கோப்பில் மாதிரி பயிற்சிக்கு பரிந்துரைக்கப்பட்ட SageMaker நிகழ்வு வகை மற்றும் சேமிப்பக அளவு உள்ளது:
{ "instance": "ml.g4dn.2xlarge", "cpu_instance": "ml.m5.2xlarge", "disk_size": 14126462, "mem_size": 4349122131.111111 }
model-hpo-configuration.json கோப்பில் மாதிரியின் வகை, அதன் மதிப்பீட்டிற்குப் பயன்படுத்தப்படும் அளவீடுகள், மதிப்பீட்டின் அதிர்வெண் மற்றும் ஹைப்பர் அளவுருக்கள் உள்ளன.
இத்துடன் இந்த செயல்முறையின் தரவு செயலாக்க நிலை முடிகிறது, ஏனெனில் இப்போது நாம் ML மாதிரியைப் பயிற்றுவிக்கத் தயாராக உள்ளோம். இந்த வழிகாட்டியின் அடுத்த பகுதியில் இது பற்றி விவாதிக்கப்படும்.