โมเดลการสร้างต้นแบบในสมุดบันทึก AI Platform

1. ภาพรวม

ห้องทดลองนี้จะแนะนำเครื่องมือต่างๆ ใน AI Platform Notebooks สำหรับการสำรวจข้อมูลและการสร้างต้นแบบโมเดล ML

สิ่งที่ได้เรียนรู้

โดยคุณจะได้เรียนรู้วิธีต่อไปนี้

  • สร้างและปรับแต่งอินสแตนซ์ AI Platform Notebooks
  • ติดตามโค้ดสมุดบันทึกด้วย Git ที่ผสานรวมโดยตรงในสมุดบันทึกของ AI Platform
  • ใช้เครื่องมือ What-If ในสมุดบันทึก

ค่าใช้จ่ายรวมในการเรียกใช้ห้องทดลองนี้บน Google Cloud อยู่ที่ประมาณ $1 ดูรายละเอียดทั้งหมดเกี่ยวกับราคา AI Platform Notebooks ได้ที่นี่

2. สร้างอินสแตนซ์ AI Platform Notebooks

คุณจะต้องมีโปรเจ็กต์ Google Cloud Platform ที่เปิดใช้การเรียกเก็บเงินเพื่อเรียกใช้ Codelab นี้ หากต้องการสร้างโปรเจ็กต์ ให้ทำตามวิธีการที่นี่

ขั้นตอนที่ 2: เปิดใช้ Compute Engine API

ไปที่ Compute Engine แล้วเลือกเปิดใช้ หากยังไม่ได้เปิดใช้ ซึ่งคุณจะต้องใช้ในการสร้างอินสแตนซ์สมุดบันทึก

ขั้นตอนที่ 3: สร้างอินสแตนซ์สมุดบันทึก

ไปที่ส่วน AI Platform Notebooks ของ Cloud Console แล้วคลิกอินสแตนซ์ใหม่ จากนั้นเลือกประเภทอินสแตนซ์ TensorFlow 2 Enterprise ล่าสุดที่ไม่มี GPU ดังนี้

9f2bb4dec1ba4f4f.png

ตั้งชื่ออินสแตนซ์หรือใช้ค่าเริ่มต้น จากนั้นเราจะสำรวจตัวเลือกการปรับแต่ง คลิกปุ่มกำหนดค่า ดังนี้

63be602ba45ca7c9.png

สมุดบันทึก AI มีตัวเลือกการปรับแต่งต่างๆ มากมาย เช่น ภูมิภาคที่คุณติดตั้งใช้งานอินสแตนซ์ ประเภทอิมเมจ ขนาดเครื่อง จำนวน GPU และอื่นๆ เราจะใช้ค่าเริ่มต้นสำหรับภูมิภาคและสภาพแวดล้อม สำหรับการกำหนดค่าเครื่อง เราจะใช้เครื่อง n1-standard-8 ดังนี้

27101d232f765a17.png

เราจะไม่เพิ่ม GPU และจะใช้ค่าเริ่มต้นสำหรับดิสก์เปิดเครื่อง เครือข่าย และสิทธิ์ เลือกสร้างเพื่อสร้างอินสแตนซ์ ซึ่งอาจใช้เวลาดำเนินการสักครู่

เมื่อสร้างอินสแตนซ์แล้ว คุณจะเห็นเครื่องหมายถูกสีเขียวข้างอินสแตนซ์ดังกล่าวใน UI ของสมุดบันทึก เลือก Open JupyterLab เพื่อเปิดอินสแตนซ์และเริ่มการสร้างต้นแบบ

3598f414887ea9a8.png

เมื่อเปิดอินสแตนซ์ ให้สร้างไดเรกทอรีใหม่ชื่อ Codelab นี่คือไดเรกทอรีที่เราจะใช้ในห้องทดลองนี้

c16a821546acd92.png

คลิกเข้าไปในไดเรกทอรี codelab ที่สร้างขึ้นใหม่โดยดับเบิลคลิกที่สมุดบันทึก แล้วเลือกสมุดบันทึก Python 3 จาก Launcher ดังนี้

4390b1614ae8eae4.png

เปลี่ยนชื่อสมุดบันทึกเป็น demo.ipynb หรือชื่อใดก็ได้ที่ต้องการ

ขั้นตอนที่ 4: นำเข้าแพ็กเกจ Python

สร้างเซลล์ใหม่ในสมุดบันทึกและนำเข้าไลบรารีที่เราจะใช้ใน Codelab นี้

import pandas as pd
import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense

import numpy as np
import json

from sklearn.model_selection import train_test_split
from sklearn.utils import shuffle
from google.cloud import bigquery
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder

3. เชื่อมต่อข้อมูล BigQuery กับสมุดบันทึก

BigQuery ซึ่งเป็นคลังข้อมูลขนาดใหญ่ของ Google Cloud ได้ทำให้ชุดข้อมูลจำนวนมากพร้อมใช้งานแบบสาธารณะสำหรับการสำรวจ สมุดบันทึก AI Platform รองรับการผสานรวมกับ BigQuery โดยตรง โดยไม่ต้องมีการตรวจสอบสิทธิ์

เราจะใช้ชุดข้อมูลเกี่ยวกับการเกิดสำหรับห้องทดลองนี้ รายงานนี้มีข้อมูลเกี่ยวกับการคลอดบุตรเกือบทุกครั้งในสหรัฐอเมริกาในช่วง 40 ปี รวมถึงน้ำหนักแรกเกิดและข้อมูลประชากรของบิดามารดาของเด็กทารก เราจะใช้ฟีเจอร์บางส่วนเพื่อคาดการณ์น้ำหนักแรกเกิดของทารก

ขั้นตอนที่ 1: ดาวน์โหลดข้อมูล BigQuery ลงในสมุดบันทึก

เราจะใช้ไลบรารีของไคลเอ็นต์ Python สำหรับ BigQuery เพื่อดาวน์โหลดข้อมูลไปยัง Pandas DataFrame ชุดข้อมูลต้นฉบับมีขนาด 21 GB และมี 123 ล้านแถว เพื่อให้เข้าใจได้ง่าย เราจะใช้แถวเพียง 10,000 แถวจากชุดข้อมูล

สร้างการค้นหาและแสดงตัวอย่าง DataFrame ที่ได้ด้วยโค้ดต่อไปนี้ ในตัวอย่างนี้ เราพบ 4 จุดสนใจจากชุดข้อมูลเดิม พร้อมกับน้ำหนักเด็ก (สิ่งที่โมเดลของเราคาดการณ์) ชุดข้อมูลย้อนหลังไปหลายปี แต่สำหรับโมเดลนี้ เราจะใช้เฉพาะข้อมูลจากปี 2000 ดังต่อไปนี้

query="""
SELECT
  weight_pounds,
  is_male,
  mother_age,
  plurality,
  gestation_weeks
FROM
  publicdata.samples.natality
WHERE year > 2000
LIMIT 10000
"""
df = bigquery.Client().query(query).to_dataframe()
df.head()

หากต้องการรับสรุปคุณลักษณะที่เป็นตัวเลขในชุดข้อมูลของเรา ให้เรียกใช้คำสั่งต่อไปนี้

df.describe()

ซึ่งจะแสดงค่าเฉลี่ย ค่าเบี่ยงเบนมาตรฐาน ค่าต่ำสุด และเมตริกอื่นๆ สำหรับคอลัมน์ตัวเลขของเรา สุดท้าย มาดูข้อมูลในคอลัมน์บูลีนที่ระบุเพศของทารกกัน ซึ่งทําได้โดยใช้เมธอด value_counts ของ Pandas

df['is_male'].value_counts()

ดูเหมือนว่าชุดข้อมูลจะมีความสมดุลเกือบ 50/50 ตามเพศ

ขั้นตอนที่ 2: เตรียมชุดข้อมูลสำหรับการฝึก

เมื่อเราดาวน์โหลดชุดข้อมูลลงในสมุดบันทึกเป็น Pandas DataFrame แล้ว เราก็จะประมวลผลและแยกชุดข้อมูลเป็นชุดการฝึกและการทดสอบได้

ก่อนอื่นให้วางแถวที่มีค่าว่างจากชุดข้อมูลและสับเปลี่ยนข้อมูล

df = df.dropna()
df = shuffle(df, random_state=2)

จากนั้นให้แยกคอลัมน์ป้ายกำกับออกมาเป็นตัวแปรแยกต่างหาก แล้วสร้าง DataFrame ที่มีเฉพาะฟีเจอร์ของเรา เนื่องจาก is_male เป็นค่าบูลีน เราจึงจะแปลงค่าเป็นจำนวนเต็มเพื่อให้อินพุตทั้งหมดสำหรับโมเดลของเราเป็นตัวเลข

labels = df['weight_pounds']
data = df.drop(columns=['weight_pounds'])
data['is_male'] = data['is_male'].astype(int)

ตอนนี้ หากคุณดูตัวอย่างชุดข้อมูลของเราโดยการเรียกใช้ data.head() คุณจะเห็นฟีเจอร์ 4 รายการที่เราจะใช้สำหรับการฝึก

4. เริ่มต้น git

สมุดบันทึก AI Platform มีการผสานรวมกับ git โดยตรง คุณจึงควบคุมเวอร์ชันภายในสภาพแวดล้อมสมุดบันทึกได้โดยตรง การดำเนินการนี้รองรับการระบุโค้ดโดยตรงใน UI ของสมุดบันทึกหรือผ่านเทอร์มินัลที่มีอยู่ใน JupyterLab ในส่วนนี้เราจะเริ่มต้นที่เก็บ Git ในสมุดบันทึกและสร้างคอมมิตแรกผ่าน UI

ขั้นตอนที่ 1: เริ่มต้นที่เก็บ Git

จากไดเรกทอรี Codelab ให้เลือก Git แล้วเลือก Init จากแถบเมนูด้านบนใน JupyterLab ดังนี้

d9f1729358f18e58.png

เมื่อระบบถามว่าคุณต้องการทำให้ไดเรกทอรีนี้เป็นที่เก็บ Git หรือไม่ ให้เลือกใช่ จากนั้นเลือกไอคอน Git ในแถบด้านข้างทางซ้ายเพื่อดูสถานะของไฟล์และคอมมิต

1648d6828f11a6db.png

ขั้นตอนที่ 2: ทำการคอมมิตครั้งแรก

ใน UI นี้ คุณสามารถเพิ่มไฟล์ในคอมมิต ดูความแตกต่างของไฟล์ (เราจะกล่าวถึงในภายหลัง) และคอมมิตการเปลี่ยนแปลง เริ่มต้นด้วยการส่งไฟล์สมุดบันทึกที่เราเพิ่งเพิ่มไป

เลือกช่องข้างไฟล์สมุดบันทึก demo.ipynb เพื่อแสดงไฟล์ดังกล่าวสำหรับคอมมิต (หรือไม่ต้องสนใจไดเรกทอรี .ipynb_checkpoints/) ป้อนข้อความคอมมิตในช่องข้อความ แล้วคลิกเครื่องหมายถูกเพื่อยืนยันการเปลี่ยนแปลงของคุณ

fe7366522a3a268f.png

ป้อนชื่อและอีเมลของคุณเมื่อได้รับข้อความแจ้ง จากนั้นกลับไปที่แท็บประวัติเพื่อดูคอมมิตแรก

d03567c3592afb77.png

โปรดทราบว่าภาพหน้าจออาจไม่ตรงกับ UI ของคุณทุกประการ ซึ่งเกิดจากการอัปเดตนับตั้งแต่มีการเผยแพร่ Lab นี้

5. สร้างและฝึกโมเดล TensorFlow

เราจะใช้ชุดข้อมูลการเกิดของ BigQuery ซึ่งดาวน์โหลดลงในสมุดบันทึกเพื่อสร้างโมเดลคาดการณ์น้ำหนักทารก ในห้องทดลองนี้ เราจะเน้นไปที่การใช้เครื่องมือสมุดบันทึก ไม่ใช่ความแม่นยำของโมเดล

ขั้นตอนที่ 1: แยกข้อมูลออกเป็นชุดการฝึกและการทดสอบ

เราจะใช้ยูทิลิตี Scikit Learn train_test_split ในการแยกข้อมูลก่อนที่จะสร้างโมเดล ดังนี้

x,y = data,labels
x_train,x_test,y_train,y_test = train_test_split(x,y)

ตอนนี้เราพร้อมที่จะสร้างโมเดล TensorFlow แล้ว

ขั้นตอนที่ 2: สร้างและฝึกโมเดล TensorFlow

เราจะสร้างโมเดลนี้โดยใช้ API โมเดล tf.keras Sequential ซึ่งจะช่วยให้เรากำหนดโมเดลของเราเป็นชุดเลเยอร์ได้ โค้ดทั้งหมดที่จำเป็นต้องใช้ในการสร้างโมเดลของเราอยู่ที่นี่:

model = Sequential([
    Dense(64, activation='relu', input_shape=(len(x_train.iloc[0]),)),
    Dense(32, activation='relu'),
    Dense(1)]
)

จากนั้นเราจะรวบรวมโมเดลเพื่อให้ใช้ฝึกได้ ในส่วนนี้ เราจะเลือกเครื่องมือเพิ่มประสิทธิภาพของโมเดล ฟังก์ชันการสูญเสียข้อมูล และเมตริกที่เราต้องการให้โมเดลบันทึกระหว่างการฝึก เนื่องจากนี่เป็นโมเดลการถดถอย (คาดการณ์ค่าตัวเลข) เราจึงใช้ความคลาดเคลื่อนเฉลี่ยกำลังสองแทนความแม่นยำเป็นเมตริก

model.compile(optimizer=tf.keras.optimizers.RMSprop(),
              loss=tf.keras.losses.MeanSquaredError(),
              metrics=['mae', 'mse'])

คุณสามารถใช้ฟังก์ชัน model.summary() ที่มีประโยชน์ของ Keras เพื่อดูรูปร่างและจำนวนพารามิเตอร์ที่ฝึกได้ของโมเดลในแต่ละเลเยอร์

เราพร้อมแล้วที่จะฝึกโมเดล สิ่งที่เราต้องทำคือเรียกใช้เมธอด fit() โดยส่งต่อข้อมูลและป้ายกำกับการฝึกของเรา ในที่นี้เราจะใช้พารามิเตอร์ Valida_split แบบไม่บังคับ ซึ่งจะเก็บข้อมูลการฝึกส่วนหนึ่งของเราไว้เพื่อตรวจสอบโมเดลในแต่ละขั้นตอน โดยหลักการแล้ว คุณควรเห็นการลดลงของการฝึกและการตรวจสอบทั้ง แต่โปรดทราบว่าในตัวอย่างนี้ เราให้ความสำคัญกับเครื่องมือโมเดลและสมุดบันทึกมากกว่าคุณภาพของโมเดล

model.fit(x_train, y_train, epochs=10, validation_split=0.1)

ขั้นตอนที่ 3: สร้างการคาดการณ์ในตัวอย่างการทดสอบ

มาดูประสิทธิภาพของโมเดลกัน มาสร้างการคาดการณ์การทดสอบในตัวอย่าง 10 รายการแรกจากชุดข้อมูลทดสอบกัน

num_examples = 10
predictions = model.predict(x_test[:num_examples])

จากนั้นเราจะทำซ้ำการคาดการณ์ของโมเดลโดยเปรียบเทียบกับค่าจริง

for i in range(num_examples):
    print('Predicted val: ', predictions[i][0])
    print('Actual val: ',y_test.iloc[i])
    print()

ขั้นตอนที่ 4: ใช้ git diff และคอมมิตการเปลี่ยนแปลง

เมื่อคุณทำการเปลี่ยนแปลงบางอย่างในสมุดบันทึกแล้ว คุณสามารถลองใช้ฟีเจอร์ความแตกต่างของ git ที่มีอยู่ใน UI ของ Git สมุดบันทึกได้ ตอนนี้สมุดบันทึก demo.ipynb ควรอยู่ในส่วน "เปลี่ยนแปลงแล้ว" ใน UI วางเมาส์เหนือชื่อไฟล์แล้วคลิกไอคอนความแตกต่าง

a370facb3632fb32.png

คุณควรเห็นการเปลี่ยนแปลงที่แตกต่างกัน เช่น

461c502bd3ab910e.png

ครั้งนี้เราจะดำเนินการเปลี่ยนแปลงผ่านบรรทัดคำสั่งโดยใช้เทอร์มินัล จากเมนู Git ในแถบเมนูด้านบนของ JupyterLab ให้เลือก Git Command ในเทอร์มินัล ถ้าคุณเปิดแท็บ git ของแถบด้านข้างทางซ้ายในขณะที่คุณเรียกใช้คำสั่งด้านล่าง คุณจะเห็นการเปลี่ยนแปลงแสดงใน UI ของ Git

ในอินสแตนซ์เทอร์มินัลใหม่ ให้เรียกใช้คำสั่งต่อไปนี้เพื่อเตรียมไฟล์สมุดบันทึกสำหรับคอมมิต

git add demo.ipynb

จากนั้นเรียกใช้รายการต่อไปนี้เพื่อยืนยันการเปลี่ยนแปลงของคุณ (คุณสามารถใช้ข้อความคอมมิตใดก็ได้ที่คุณต้องการ)

git commit -m "Build and train TF model"

จากนั้นคุณจะเห็นคอมมิตล่าสุดในประวัติ

a4b44045e97cb7a7.png

6. ใช้เครื่องมือ What-If จากสมุดบันทึกโดยตรง

เครื่องมือ What-If เป็นอินเทอร์เฟซแบบอินเทอร์แอกทีฟที่ออกแบบมาเพื่อช่วยให้คุณแสดงภาพชุดข้อมูลและทำความเข้าใจเอาต์พุตของโมเดล ML ได้ดียิ่งขึ้น เป็นเครื่องมือโอเพนซอร์สที่สร้างโดยทีม PAIR ที่ Google แม้จะใช้งานได้กับโมเดลทุกประเภท แต่ก็มีฟีเจอร์บางอย่างที่สร้างขึ้นมาสำหรับ Cloud AI Platform โดยเฉพาะ

เครื่องมือ What-If จะติดตั้งมาล่วงหน้าในอินสแตนซ์ Cloud AI Platform Notebooks ที่มี TensorFlow เราจะใช้ข้อมูลนี้เพื่อดูประสิทธิภาพโดยรวมของโมเดลและตรวจสอบลักษณะการทำงานของจุดข้อมูลจากชุดทดสอบของเรา

ขั้นตอนที่ 1: เตรียมข้อมูลสําหรับเครื่องมือ What-If

ในการใช้ประโยชน์สูงสุดจากเครื่องมือ What-If เราจะส่งตัวอย่างจากชุดทดสอบของเราพร้อมกับป้ายกำกับข้อมูลจากการสังเกตการณ์โดยตรงสำหรับตัวอย่างเหล่านั้น (y_test) ด้วยวิธีนี้ เราจะเปรียบเทียบสิ่งที่โมเดลของเราคาดการณ์กับข้อมูลจากการสังเกตการณ์โดยตรง เรียกใช้บรรทัดโค้ดด้านล่างเพื่อสร้าง DataFrame ใหม่ที่มีตัวอย่างการทดสอบและป้ายกำกับของตัวอย่างการทดสอบ

wit_data = pd.concat([x_test, y_test], axis=1)

ในห้องทดลองนี้ เราจะเชื่อมต่อเครื่องมือ "ถ้าหาก" กับโมเดลที่เราเพิ่งฝึกในสมุดบันทึกของเรา ในการทำเช่นนั้น เราต้องเขียนฟังก์ชันที่เครื่องมือจะใช้เพื่อเรียกใช้จุดข้อมูลทดสอบเหล่านี้ไปยังโมเดลของเรา

def custom_predict(examples_to_infer):
    preds = model.predict(examples_to_infer)
    return preds

ขั้นตอนที่ 2: สร้างตัวอย่างเครื่องมือ What-If

เราจะสร้างอินสแตนซ์เครื่องมือ What-If โดยการส่งตัวอย่าง 500 ตัวอย่างจากชุดข้อมูลการทดสอบแบบเชื่อมต่อ + ป้ายกำกับข้อมูลจากการสังเกตการณ์โดยตรงที่เราเพิ่งสร้างขึ้น เราสร้างอินสแตนซ์ของ WitConfigBuilder เพื่อตั้งค่าเครื่องมือโดยส่งต่อข้อมูลของเรา ฟังก์ชันการคาดการณ์แบบกำหนดเองที่เรากำหนดข้างต้น พร้อมกับเป้าหมาย (สิ่งที่เรากำลังคาดการณ์) และประเภทโมเดล

config_builder = (WitConfigBuilder(wit_data[:500].values.tolist(), data.columns.tolist() + ['weight_pounds'])
  .set_custom_predict_fn(custom_predict)
  .set_target_feature('weight_pounds')
  .set_model_type('regression'))
WitWidget(config_builder, height=800)

คุณควรจะเห็นบางอย่างเช่นนี้เมื่อ What-If Tool โหลด

fcdc1cb7ed8e364e.png

บนแกน x คุณจะเห็นจุดข้อมูลทดสอบที่กระจายตามค่าน้ำหนักที่คาดการณ์ไว้ของโมเดล weight_pounds

ขั้นตอนที่ 3: สำรวจลักษณะการทำงานของโมเดลด้วยเครื่องมือ "ถ้าหาก"

คุณสามารถใช้เครื่องมือ "ถ้าหาก" ทำอะไรเจ๋งๆ ได้อีกมากมาย เดี๋ยวเราจะสำรวจบางวิธีที่นี่ ก่อนอื่น มาดูเครื่องมือแก้ไขจุดข้อมูล คุณเลือกจุดข้อมูลใดก็ได้เพื่อดูฟีเจอร์ต่างๆ และเปลี่ยนค่าของฟีเจอร์ เริ่มต้นด้วยการคลิกที่จุดข้อมูลใดๆ ต่อไปนี้

2ba944f16240ff4b.png

คุณจะเห็นค่าฟีเจอร์ของจุดข้อมูลที่เลือกไว้ทางด้านซ้าย คุณยังเปรียบเทียบป้ายกำกับข้อมูลที่ระบุว่าถูกต้องโดยเจ้าหน้าที่ของจุดข้อมูลนั้นกับค่าที่คาดการณ์โดยโมเดลได้ด้วย ในแถบด้านข้างทางซ้าย คุณยังสามารถเปลี่ยนค่าฟีเจอร์ และเรียกใช้การคาดการณ์โมเดลอีกครั้งเพื่อดูผลกระทบที่การเปลี่ยนแปลงนี้มีต่อโมเดลของคุณ ตัวอย่างเช่น เราเปลี่ยน gestation_weeks เป็น 30 สำหรับจุดข้อมูลนี้ได้โดยดับเบิลคลิกที่จุดดังกล่าวเพื่อให้ระบบเรียกใช้การคาดการณ์อีกครั้ง

aaa6a937c66758cf.png

คุณสามารถสร้างการแสดงภาพที่กำหนดเองได้ทุกประเภทด้วยการใช้เมนูแบบเลื่อนลงในส่วนพล็อตของเครื่องมือ "ถ้าหาก" ตัวอย่างเช่น นี่คือแผนภูมิที่มีโมเดลของ น้ำหนักที่คาดการณ์บนแกน x อายุของมารดาบนแกน Y และส่วนที่เป็นสีโดยความผิดพลาดจากการอนุมาน (สีเข้มกว่าหมายถึงค่าความแตกต่างที่คาดการณ์ไว้และน้ำหนักจริงมีค่าสูงกว่า) ดูเหมือนว่าน้ำหนักลดลง ข้อผิดพลาดของโมเดลจะเพิ่มขึ้นเล็กน้อย

cd2ce527a9044e7b.png

จากนั้นให้เลือกปุ่มแผนภูมิทรัพยากร Dependency บางส่วนทางด้านซ้าย คอลัมน์นี้จะแสดงอิทธิพลต่อการคาดการณ์ของโมเดลของแต่ละฟีเจอร์ ตัวอย่างเช่น เมื่อเวลาตั้งครรภ์เพิ่มขึ้น น้ำหนักทารกที่คาดการณ์ไว้ของโมเดลเราก็เพิ่มขึ้นตามไปด้วย:

1fec2a64fb03f432

หากต้องการดูแนวคิดการสำรวจเพิ่มเติมเกี่ยวกับเครื่องมือ What-If ให้ไปที่ลิงก์ต่างๆ ในตอนต้นของส่วนนี้

7. ไม่บังคับ: เชื่อมต่อที่เก็บ Git ในเครื่องกับ GitHub

สุดท้าย เราจะดูวิธีเชื่อมต่อที่เก็บ Git ในอินสแตนซ์สมุดบันทึกกับที่เก็บในบัญชี GitHub ของเรา หากต้องการทำขั้นตอนนี้ คุณจะต้องมีบัญชี GitHub

ขั้นตอนที่ 1: สร้างที่เก็บใหม่ใน GitHub

สร้างที่เก็บใหม่ในบัญชี GitHub ตั้งชื่อและใส่คำอธิบาย แล้วตัดสินใจว่าต้องการเผยแพร่ต่อสาธารณะหรือไม่ แล้วเลือกสร้างที่เก็บ (คุณไม่จำเป็นต้องเริ่มต้นด้วย README) ในหน้าถัดไป คุณจะต้องทำตามวิธีการพุชที่เก็บที่มีอยู่จากบรรทัดคำสั่ง

เปิดหน้าต่างเทอร์มินัล แล้วเพิ่มที่เก็บใหม่เป็นรีโมต แทนที่ username ใน URL ที่เก็บด้านล่างด้วยชื่อผู้ใช้ GitHub และ your-repo ด้วยชื่อของรายการที่คุณเพิ่งสร้าง

git remote add origin git@github.com:username/your-repo.git

ขั้นตอนที่ 2: ตรวจสอบสิทธิ์ไปยัง GitHub ในอินสแตนซ์สมุดบันทึก

ถัดไป คุณจะต้องตรวจสอบสิทธิ์กับ GitHub จากภายในอินสแตนซ์สมุดบันทึก กระบวนการนี้จะแตกต่างกันไปโดยขึ้นอยู่กับว่าคุณเปิดใช้การตรวจสอบสิทธิ์แบบ 2 ปัจจัยบน GitHub หรือไม่

หากไม่แน่ใจว่าต้องเริ่มต้นที่ใด ให้ทำตามขั้นตอนในเอกสารประกอบของ GitHub เพื่อสร้างคีย์ SSH จากนั้นเพิ่มคีย์ใหม่ลงใน GitHub

ขั้นตอนที่ 3: ตรวจสอบว่าคุณได้ลิงก์ที่เก็บ GitHub อย่างถูกต้องแล้ว

หากต้องการตรวจสอบว่าคุณตั้งค่าอย่างถูกต้อง ให้เรียกใช้ git remote -v ในเทอร์มินัล คุณควรจะเห็นที่เก็บใหม่แสดงเป็นรีโมต เมื่อเห็น URL ของที่เก็บ GitHub และได้ตรวจสอบสิทธิ์จากสมุดบันทึกไปยัง GitHub แล้ว คุณก็พร้อมที่จะพุชจากอินสแตนซ์สมุดบันทึกไปยัง GitHub ได้โดยตรง

หากต้องการซิงค์ที่เก็บ Git สำหรับสมุดบันทึกในเครื่องกับที่เก็บ GitHub ที่สร้างขึ้นใหม่ ให้คลิกปุ่มอัปโหลดในระบบคลาวด์ที่ด้านบนของแถบด้านข้าง Git ต่อไปนี้

eec001587bb9cfb1.png

รีเฟรชที่เก็บ GitHub แล้วคุณจะเห็นโค้ดสมุดบันทึกที่มีคอมมิตก่อนหน้า หากผู้อื่นมีสิทธิ์เข้าถึงที่เก็บ GitHub ของคุณและคุณต้องการดึงการเปลี่ยนแปลงล่าสุดในสมุดบันทึกลง ให้คลิกไอคอนดาวน์โหลดในระบบคลาวด์เพื่อซิงค์การเปลี่ยนแปลงเหล่านั้น

ในแท็บ "ประวัติ" ของ Git UI สมุดบันทึก คุณจะดูได้ว่าคอมมิตในเครื่องซิงค์กับ GitHub หรือไม่ ในตัวอย่างนี้ origin/master สอดคล้องกับที่เก็บของเราใน GitHub

2c3d1eb7cf95c24e.png

ทุกครั้งที่คุณสร้างคอมมิตใหม่ เพียงคลิกปุ่มอัปโหลดไปยังระบบคลาวด์อีกครั้งเพื่อพุชการเปลี่ยนแปลงเหล่านั้นไปยังที่เก็บ GitHub ของคุณ

8. ยินดีด้วย

คุณได้ทำอะไรหลายอย่างในห้องทดลองนี้ 👏👏👏

กล่าวโดยสรุป คุณได้เรียนรู้วิธีต่อไปนี้

  • สร้างอินสแตนซ์ AI Platform Notebook ที่กำหนดเอง
  • เริ่มต้นที่เก็บ Git ในเครื่องในอินสแตนซ์นั้น เพิ่มคอมมิตผ่าน UI ของ Git หรือบรรทัดคำสั่ง ดูความแตกต่างของ Git ใน UI ของ Git ของสมุดบันทึก
  • สร้างและฝึกโมเดล TensorFlow 2 แบบง่าย
  • ใช้เครื่องมือ "สิ่งที่จะเกิดขึ้น" ในอินสแตนซ์สมุดบันทึก
  • เชื่อมต่อที่เก็บ Git สำหรับสมุดบันทึกกับที่เก็บภายนอกบน GitHub

9. ล้างข้อมูล

หากต้องการใช้สมุดบันทึกนี้ต่อไป ขอแนะนำให้ปิดสมุดบันทึกเมื่อไม่ได้ใช้งาน จาก UI ของสมุดบันทึกใน Cloud Console ให้เลือกสมุดบันทึก แล้วเลือกหยุด

ba727f9a0aefbc30.png

หากต้องการลบทรัพยากรทั้งหมดที่คุณสร้างไว้ในห้องทดลองนี้ เพียงลบอินสแตนซ์สมุดบันทึกแทนที่จะหยุด

ใช้เมนูการนำทางใน Cloud Console เพื่อเรียกดูพื้นที่เก็บข้อมูล แล้วลบที่เก็บข้อมูลทั้ง 2 รายการที่คุณสร้างขึ้นเพื่อจัดเก็บเนื้อหาโมเดล