paint-brush
AI ກໍາລັງສ້າງແຜນທີ່ການເຊື່ອມຕໍ່ທີ່ເຊື່ອງໄວ້ - ແລະມັນພຽງແຕ່ເລີ່ມຕົ້ນໂດຍ@andrei9735
ປະຫວັດສາດໃຫມ່

AI ກໍາລັງສ້າງແຜນທີ່ການເຊື່ອມຕໍ່ທີ່ເຊື່ອງໄວ້ - ແລະມັນພຽງແຕ່ເລີ່ມຕົ້ນ

ໂດຍ Andrei4m2025/02/14
Read on Terminal Reader

ຍາວເກີນໄປ; ອ່ານ

ຈາກເຄື່ອງຈັກແນະນໍາໄປສູ່ການເພີ່ມປະສິດທິພາບເຄືອຂ່າຍ, ການຄາດຄະເນການເຊື່ອມໂຍງແມ່ນເຄື່ອງມືທີ່ຫລາກຫລາຍທີ່ນໍາເອົາມູນຄ່າ.
featured image - AI ກໍາລັງສ້າງແຜນທີ່ການເຊື່ອມຕໍ່ທີ່ເຊື່ອງໄວ້ - ແລະມັນພຽງແຕ່ເລີ່ມຕົ້ນ
Andrei HackerNoon profile picture
0-item

ໃນບົດທີຫ້າແລະສຸດທ້າຍຂອງຊຸດຂອງພວກເຮົາກ່ຽວກັບການຄາດຄະເນການເຊື່ອມຕໍ່ໂດຍໃຊ້ Neptune ML, ພວກເຮົາກໍາລັງເຂົ້າໄປໃນຂະບວນການ inference: ການຕັ້ງຄ່າຈຸດສິ້ນສຸດເພື່ອນໍາໃຊ້ຕົວແບບ GNN ຂອງພວກເຮົາທີ່ໄດ້ຮັບການຝຶກອົບຮົມສໍາລັບການຄາດຄະເນການເຊື່ອມຕໍ່. ເພື່ອສ້າງຈຸດສິ້ນສຸດ, ພວກເຮົາຈະໃຊ້ API ຂອງກຸ່ມ Neptune ແລະສິ່ງປະດິດຕົວແບບທີ່ເກັບໄວ້ໃນ S3. ກັບຈຸດສິ້ນສຸດສົດ, ພວກເຮົາຈະສອບຖາມມັນສໍາລັບການຄາດຄະເນການເຊື່ອມໂຍງ, ໂດຍໃຊ້ຄໍາຖາມ Gremlin ເພື່ອກໍານົດການເຊື່ອມຕໍ່ທີ່ມີທ່າແຮງທີ່ມີຄວາມຫມັ້ນໃຈສູງໃນກາຟຂອງພວກເຮົາ.


ໃນປັດຈຸບັນ, ພວກເຮົາໄດ້ໂຫລດຂໍ້ມູນເຄືອຂ່າຍສັງຄົມ Twitch ເຂົ້າໄປໃນກຸ່ມ Neptune ແລ້ວ (ຕາມທີ່ອະທິບາຍໄວ້ໃນພາກທີ 1 ຂອງຊຸດນີ້), ສົ່ງອອກຂໍ້ມູນໂດຍໃຊ້ໂປໄຟ ML (ກວດເບິ່ງສ່ວນ 2 ສໍາລັບລາຍລະອຽດ), ດໍາເນີນການຂໍ້ມູນກ່ອນ (ຕາມທີ່ອະທິບາຍໃນພາກທີ 3), ການຝຶກອົບຮົມແບບຈໍາລອງ (ເບິ່ງພາກທີ 4), ແລະໃນປັດຈຸບັນພວກເຮົາພ້ອມທີ່ຈະໃຊ້ຕົວແບບທີ່ໄດ້ຮັບການຝຶກອົບຮົມເພື່ອສ້າງການຄາດຄະເນ.


ອ່ານພາກ 1 ທີ່ນີ້ ; ສ່ວນ 2 ນີ້ ; ສ່ວນທີ 3 ນີ້; ແລະສ່ວນທີ 4 ຢູ່ທີ່ນີ້ .

ການສ້າງຈຸດຈົບ

ໃຫ້ພວກເຮົາສ້າງຈຸດສິ້ນສຸດຂອງ inference ໂດຍໃຊ້ API ຂອງກຸ່ມແລະສິ່ງປະດິດຕົວແບບທີ່ພວກເຮົາມີຢູ່ໃນ S3. ຕາມປົກກະຕິ, ພວກເຮົາຕ້ອງການບົດບາດ IAM ທີ່ມີການເຂົ້າເຖິງ S3 ແລະ SageMaker ກ່ອນ. ພາລະບົດບາດຍັງຕ້ອງມີນະໂຍບາຍຄວາມໄວ້ວາງໃຈທີ່ອະນຸຍາດໃຫ້ພວກເຮົາເພີ່ມມັນເຂົ້າໄປໃນກຸ່ມ Neptune (ນະໂຍບາຍຄວາມໄວ້ວາງໃຈສາມາດພົບໄດ້ຢູ່ໃນພາກທີ 3 ຂອງຄໍາແນະນໍານີ້). ພວກເຮົາຍັງຕ້ອງການໃຫ້ການເຂົ້າເຖິງ SageMaker ແລະ CloudWatch API ຈາກພາຍໃນ VPC, ດັ່ງນັ້ນພວກເຮົາຕ້ອງການຈຸດສິ້ນສຸດຂອງ VPC ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນສ່ວນ 1 ຂອງຊຸດນີ້.


ໃຫ້ໃຊ້ API ຂອງກຸ່ມເພື່ອສ້າງຈຸດສິ້ນສຸດຂອງ inference ດ້ວຍຄໍາສັ່ງ curl ນີ້:

 curl -XPOST https://(YOUR_NEPTUNE_ENDPOINT):8182/ml/endpoints \ -H 'Content-Type: application/json' \ -d '{ "mlModelTrainingJobId": YOUR_MODEL_TRAINING_JOB_ID, "neptuneIamRoleArn": "arn:aws:iam::123456789012:role/NeptuneMLNeptuneRole" }'

ພວກເຮົາສາມາດໃຊ້ຕົວກໍານົດການ ' instanceType ' ແລະ ' instanceCount ' ເພື່ອເລືອກປະເພດຂອງ instance EC2 ທີ່ຈະໃຊ້ສໍາລັບການຄາດເດົາການເຊື່ອມຕໍ່, ແລະນໍາໃຊ້ຫຼາຍກວ່າຫນຶ່ງຕົວຢ່າງ. ບັນຊີລາຍຊື່ເຕັມຂອງຕົວກໍານົດການສາມາດພົບໄດ້ ທີ່ນີ້ . ພວກເຮົາຈະໃຊ້ຕົວຢ່າງ ' ml.m5(d.xlarge ' default ' ຍ້ອນວ່າມັນມີ CPU ແລະ RAM ພຽງພໍສໍາລັບກາຟຂະຫນາດນ້ອຍຂອງພວກເຮົາ, ແລະຕົວຢ່າງນີ້ໄດ້ຖືກແນະນໍາໃນ infer_instance_recommendation.json ທີ່ສ້າງຂຶ້ນຫຼັງຈາກການຝຶກອົບຮົມແບບຈໍາລອງໃນຂັ້ນຕອນທີ່ຜ່ານມາຂອງພວກເຮົາ:

 { "disk_size": 12023356, "instance": "ml.m5d.xlarge", "mem_size": 13847612 }

API ຕອບສະໜອງດ້ວຍ ID ຈຸດສິ້ນສຸດ inference:

 {"id":"b217165b-7780-4e73-9d8a-5b6f7cfef9f6"}

ຫຼັງຈາກນັ້ນ, ພວກເຮົາສາມາດກວດເບິ່ງສະຖານະຂອງຈຸດສິ້ນສຸດ inference ດ້ວຍຄໍາສັ່ງນີ້:

 curl https://YOUR_NEPTUNE_ENDPOINT:8182/ml/endpoints/INFERENCE_ENDPOINT_ID?neptuneIamRole='arn:aws:iam::123456789012:role/NeptuneMLNeptuneRole'

ແລະເມື່ອມັນຕອບກັບດ້ວຍ ' ສະຖານະ: InService ' ແບບນີ້,

 { "endpoint": { "name": "YOUR_INFERENCE_ENDPOINT_NAME-endpoint", "arn": "...", "status": "InService" }, "endpointConfig": {...}, "id": "YOUR_INFERENCE_ENDPOINT_ID", "status": "InService" }

ມັນຫມາຍຄວາມວ່າພວກເຮົາພ້ອມທີ່ຈະເລີ່ມໃຊ້ມັນດ້ວຍການສອບຖາມຖານຂໍ້ມູນ.

ຈຸດສິ້ນສຸດຍັງສາມາດເບິ່ງແລະຈັດການຈາກ AWS console, ພາຍໃຕ້ SageMaker -> Inference -> Endpoints.

ກຳລັງສອບຖາມຈຸດຈົບ

ໃຫ້ໃຊ້ຈຸດສິ້ນສຸດເພື່ອຄາດຄະເນການເຊື່ອມຕໍ່ 'ຕິດຕາມ' ໃຫມ່ໃນກາຟ. ເພື່ອເຮັດສິ່ງນັ້ນ, ພວກເຮົາຈໍາເປັນຕ້ອງເລືອກ vertex ແຫຼ່ງຂອງການເຊື່ອມຕໍ່ໃຫມ່ທີ່ເປັນໄປໄດ້.

ມັນຊ່ວຍຖ້າ vertex ແຫຼ່ງມີການເຊື່ອມຕໍ່ແລ້ວ, ດັ່ງນັ້ນພວກເຮົາຈະໃຊ້ການສອບຖາມນີ້ເພື່ອໃຫ້ໄດ້ vertex ທີ່ມີຈໍານວນສູງສຸດຂອງການເຊື່ອມຕໍ່ທີ່ມີຢູ່ (ການເຊື່ອມຕໍ່ outE ແລະ inE):

 gV() .group() .by() .by(bothE().count()) .order(local) .by(values, Order.desc) .limit(local, 1) .next()

ຜົນໄດ້ຮັບແມ່ນ

 {v[1773]: 1440}

ຊຶ່ງຫມາຍຄວາມວ່າ vertex ກັບ ID = 1773 ມີ 1440 ເຊື່ອມຕໍ່ (720 inE ແລະ 720 outE).

ເພື່ອໃຫ້ໄດ້ຮັບຈໍານວນຂອງຂອບທີ່ເລີ່ມຕົ້ນທີ່ node 1773 ແລະຈໍານວນຂອງຂອບທີ່ສິ້ນສຸດໃນ node ທີ່ພວກເຮົາສາມາດນໍາໃຊ້ການສອບຖາມເຫຼົ່ານີ້:

 gV('1773').outE().count() gV('1773').inE().count()

ຈໍານວນດຽວກັນຂອງການເຊື່ອມຕໍ່ inE ແລະ outE ແມ່ນຄາດວ່າຈະຍ້ອນວ່າຊຸດຂໍ້ມູນເບື້ອງຕົ້ນປະກອບດ້ວຍມິດຕະພາບເຊິ່ງກັນແລະກັນ, ແລະພວກເຮົາໄດ້ເພີ່ມຂໍ້ມູນທີ່ມີຂອບດ້ານປີ້ນກັບກັນເພື່ອເຮັດໃຫ້ມັນເຮັດວຽກກັບ Neptune directed graph.


ຕອນນີ້ໃຫ້ພວກເຮົາໄດ້ຮັບການເຊື່ອມຕໍ່ທີ່ຄາດຄະເນ. ເພື່ອເຮັດສິ່ງນີ້, ພວກເຮົາຈະດໍາເນີນການສອບຖາມ Gremlin ກັບ Neptune ML predicates . ພວກເຮົາຈະນໍາໃຊ້ຈຸດສິ້ນສຸດຂອງ inference ແລະບົດບາດຂອງ SageMaker ທີ່ຖືກເພີ່ມເຂົ້າໃນກຸ່ມ DB ເພື່ອເຮັດໃຫ້ຜູ້ໃຊ້ 1773 ອາດຈະປະຕິບັດຕາມຄວາມຫນ້າເຊື່ອຖື (ຄວາມເປັນໄປໄດ້ຕ່ໍາສຸດຂອງການເຊື່ອມຕໍ່ຕາມແບບຈໍາລອງ) ຢ່າງຫນ້ອຍ 0.1 (10%) , ໃນຂະນະທີ່ບໍ່ລວມຜູ້ໃຊ້ທີ່ຜູ້ໃຊ້ 1773 ຕິດຕາມຢູ່ແລ້ວ:

 %%gremlin g.with('Neptune#ml.endpoint', 'YOUR_INFERENCE_ENDPOINT_NAME') .with('Neptune#ml.iamRoleArn', 'arn:aws:iam::123456789012:role/NeptuneMLSagemakerRole') .with('Neptune#ml.limit', 10000) .with('Neptune#ml.threshold', 0.1D) .V('1773') .out('follows') .with('Neptune#ml.prediction') .hasLabel('user') .not( __.in('follows').hasId('1773') )


ຜົນໄດ້ຮັບ 4 ອັນ:

 "Result" "v[755]" "v[6086]" "v[6382]" "v[7005]"


ອີງຕາມຮູບແບບຂອງພວກເຮົາ, ມີໂອກາດຢ່າງຫນ້ອຍ 10% ທີ່ຜູ້ໃຊ້ 1773 ຈະປະຕິບັດຕາມແຕ່ລະຜູ້ໃຊ້ 4 ເຫຼົ່ານີ້. ບາງທີພວກເຮົາສາມາດປັບປຸງແບບຈໍາລອງໄດ້ໂດຍການເພີ່ມຈໍານວນວຽກການຝຶກອົບຮົມຢ່າງຫນ້ອຍເປັນ 10 ຕາມຄໍາແນະນໍາຂອງ AWS, ແລະຫຼັງຈາກນັ້ນປຽບທຽບການປະຕິບັດຂອງຮູບແບບຜົນໄດ້ຮັບແລະການເຊື່ອມໂຍງທີ່ຄາດຄະເນ. ໃນຄໍາຮ້ອງສະຫມັກທີ່ແທ້ຈິງ, ການເພີ່ມໂປຣໄຟລ໌ຜູ້ໃຊ້ແລະຂໍ້ມູນກິດຈະກໍາກັບກາຟຍັງປັບປຸງຄວາມຖືກຕ້ອງຂອງການຄາດຄະເນ.


ການເຊື່ອມຕໍ່ທີ່ຄາດຄະເນໄວ້ໃນຊຸດຂໍ້ມູນເຄືອຂ່າຍສັງຄົມສາມາດຖືກນໍາໃຊ້ເພື່ອສະຫນອງຄໍາແນະນໍາສ່ວນບຸກຄົນເຊັ່ນ: ຄໍາແນະນໍາຂອງຫມູ່ເພື່ອນແລະເນື້ອຫາ, ເສີມຂະຫຍາຍການມີສ່ວນຮ່ວມຂອງຜູ້ໃຊ້ແລະການຂະຫຍາຍຕົວຂອງຊຸມຊົນ, ຫຼຸດຜ່ອນການປັ່ນປ່ວນ, ແລະສະຫນອງຂໍ້ມູນເພີ່ມເຕີມສໍາລັບການໂຄສະນາເປົ້າຫມາຍ.


ເຖິງແມ່ນວ່າພວກເຮົານໍາໃຊ້ການຄາດຄະເນການເຊື່ອມຕໍ່ກັບຊຸດຂໍ້ມູນເຄືອຂ່າຍສັງຄົມ, ມັນເປັນພຽງແຕ່ຫນຶ່ງໃນຫຼາຍຄໍາຮ້ອງສະຫມັກທີ່ເປັນໄປໄດ້ຂອງເຕັກໂນໂລຊີນີ້. ຈາກເຄື່ອງຈັກແນະນໍາໄປສູ່ການເພີ່ມປະສິດທິພາບເຄືອຂ່າຍ, ການຄາດຄະເນການເຊື່ອມໂຍງແມ່ນເຄື່ອງມືທີ່ຫລາກຫລາຍທີ່ນໍາເອົາມູນຄ່າໂດຍການເປີດເຜີຍຄວາມສໍາພັນທີ່ເຊື່ອງໄວ້ພາຍໃນຂໍ້ມູນ. ໃນຂະນະທີ່ຄໍາຮ້ອງສະຫມັກທີ່ອີງໃສ່ກາຟຍັງສືບຕໍ່ຂະຫຍາຍ, ທ່າແຮງຂອງການຄາດຄະເນການເຊື່ອມໂຍງໃນທົ່ວອຸດສາຫະກໍາສັນຍາຄວາມເຂົ້າໃຈໃຫມ່, ປະສິດທິພາບແລະປະສົບການຂອງຜູ້ໃຊ້ທີ່ປັບປຸງ.