Cách Imperva đẩy nhanh quá trình cộng tác và phát triển ML thông qua sổ ghi chép Amazon SageMaker

Nút nguồn: 1133741

Đây là một bài đăng của khách của Imperva, một nhà cung cấp giải pháp cho an ninh mạng. 

Imperva là một nhà lãnh đạo an ninh mạng, có trụ sở chính tại California, Hoa Kỳ, có nhiệm vụ bảo vệ dữ liệu và tất cả các đường dẫn đến dữ liệu đó. Trong vài năm gần đây, chúng tôi đã nỗ lực tích hợp công nghệ máy học (ML) vào các sản phẩm của mình. Điều này bao gồm phát hiện các hoạt động độc hại trong cơ sở dữ liệu, tự động định cấu hình chính sách bảo mật và nhóm các sự kiện bảo mật thành các câu chuyện có ý nghĩa.

Khi chúng tôi đang cố gắng nâng cao khả năng phát hiện của mình, chúng tôi đang đầu tư vào các mô hình ML cho các giải pháp của mình. Ví dụ: Imperva cung cấp dịch vụ Bảo mật API. Dịch vụ này nhằm mục đích bảo vệ tất cả các API khỏi các cuộc tấn công khác nhau, bao gồm các cuộc tấn công mà WAF truyền thống không thể dễ dàng ngăn chặn, chẳng hạn như các cuộc tấn công được mô tả trong Top 10 của OWASP. Đây là một lĩnh vực đầu tư quan trọng đối với chúng tôi, vì vậy chúng tôi đã thực hiện các bước để đẩy nhanh quá trình phát triển ML của mình nhằm bao quát thêm cơ sở, nghiên cứu hiệu quả các cuộc tấn công API và đẩy nhanh khả năng cung cấp giá trị cho khách hàng của chúng tôi.

Trong bài đăng này, chúng tôi chia sẻ cách chúng tôi đẩy nhanh quá trình cộng tác và phát triển ML thông qua Amazon SageMaker vở

Jupyter Notebooks: Nền tảng nghiên cứu chung

Các quy trình nghiên cứu khoa học dữ liệu đã thu hút sự chú ý của các công ty công nghệ lớn và cộng đồng phát triển lên một tầm cao mới. Giờ đây, việc khởi động một dự án dựa trên dữ liệu bằng cách sử dụng các dịch vụ ML được quản lý trở nên dễ dàng hơn bao giờ hết. Một ví dụ tuyệt vời cho điều này là sự gia tăng của các nhà khoa học dữ liệu công dân, theo Gartner là “'những người dùng thành thạo có thể thực hiện cả các nhiệm vụ phân tích đơn giản và phức tạp vừa phải mà trước đây đòi hỏi chuyên môn cao hơn.”

Với sự tăng trưởng dự kiến ​​của người dùng ML, việc chia sẻ thử nghiệm giữa các nhóm trở thành một thông số quan trọng trong tốc độ phát triển. Trong số nhiều bước phổ biến, một trong những bước quan trọng nhất đối với các nhà khoa học dữ liệu bắt đầu một dự án là mở một sổ ghi chép Jupyter mới và lao vào thử thách phía trước.

Sổ ghi chép Jupyter là sự giao thoa giữa IDE và tài liệu. Nó cung cấp cho nhà nghiên cứu một cách dễ dàng và tương tác để kiểm tra các phương pháp tiếp cận khác nhau, vẽ sơ đồ kết quả, trình bày và xuất chúng, trong khi sử dụng ngôn ngữ và giao diện do họ lựa chọn, chẳng hạn như Python, R, Spark, Bash hoặc các ngôn ngữ khác.

Amazon SageMaker là một dịch vụ được quản lý hoàn toàn, cung cấp cho mọi nhà phát triển và nhà khoa học dữ liệu khả năng xây dựng, đào tạo và triển khai ML. SageMaker bao gồm khả năng chính xác này và hơn thế nữa như một phần của tính năng sổ ghi chép SageMaker.

Bất kỳ ai đã từng thử sử dụng Jupyter Notebooks trong nhóm đều có thể đã đạt đến mức cố gắng sử dụng sổ ghi chép của người khác, chỉ để phát hiện ra rằng nó không hề dễ dàng như người ta tưởng. Thông thường, bạn không có quyền truy cập vào sổ ghi chép được yêu cầu. Trong những trường hợp khác, sổ ghi chép được sử dụng cục bộ để nghiên cứu và do đó, mã thường nằm rải rác với các đường dẫn được mã hóa cứng và không được cam kết với bất kỳ kho lưu trữ nào. Ngay cả khi mã được cam kết với một số loại kho lưu trữ, (hy vọng) dữ liệu mà nó yêu cầu không được cam kết. Tóm lại, không dễ để cộng tác với Jupyter Notebooks.

Trong bài đăng này, chúng tôi cho bạn thấy cách chúng tôi chia sẻ mã nghiên cứu khoa học dữ liệu tại Imperva và cách chúng tôi sử dụng sổ ghi chép SageMaker với các tính năng bổ sung mà chúng tôi đã thêm để hỗ trợ các yêu cầu tùy chỉnh của mình và tăng cường cộng tác. Chúng tôi cũng chia sẻ tất cả những nỗ lực này đã giúp giảm đáng kể chi phí và thời gian cho công việc dọn phòng như thế nào. Mặc dù kiến ​​trúc này phù hợp với chúng tôi, nhưng bạn có thể chọn các cấu hình khác nhau, chẳng hạn như cách ly hoàn toàn tài nguyên với một hệ thống tệp riêng biệt cho từng người dùng.

Cách chúng tôi đẩy nhanh quá trình phát triển ML của mình

Quy trình làm việc của chúng tôi khá chuẩn, chúng tôi lấy một tập hợp con dữ liệu, tải nó vào sổ ghi chép Jupyter và bắt đầu khám phá dữ liệu. Sau khi chúng tôi hiểu rõ về dữ liệu, chúng tôi bắt đầu thử nghiệm và kết hợp các thuật toán khác nhau cho đến khi chúng tôi đưa ra giải pháp ban đầu phù hợp. Khi chúng tôi có bằng chứng về khái niệm (POC) đủ tốt, chúng tôi tiến hành xác thực kết quả theo thời gian, thử nghiệm và điều chỉnh thuật toán trong quá trình thực hiện. Cuối cùng, khi chúng ta đạt đến mức độ tự tin cao, chúng tôi cung cấp các mô hình và tiếp tục xác nhận kết quả.

Lúc đầu, quá trình này có ý nghĩa hoàn hảo. Chúng tôi có những dự án nhỏ không yêu cầu nhiều sức mạnh tính toán và chúng tôi có đủ thời gian để thực hiện chúng một mình cho đến khi đạt được POC. Các dự án đủ đơn giản để chúng tôi tự triển khai, phục vụ và giám sát mô hình hoặc trong các trường hợp khác, phân phối mô hình dưới dạng bộ chứa Docker. Khi hiệu suất và quy mô là quan trọng, chúng tôi sẽ chuyển quyền sở hữu mô hình cho nhóm nhà phát triển bằng cách sử dụng tài liệu đặc tả có mã giả. Nhưng thời thế đang thay đổi, và khi nhóm cũng như các dự án lớn mạnh và phát triển, chúng tôi cần một cách tốt hơn để thực hiện mọi việc. Chúng tôi phải mở rộng quy mô các dự án của mình khi yêu cầu tài nguyên máy tính lớn và tìm ra cách tốt hơn để chuyển quyền sở hữu mà không cần sử dụng các tài liệu đặc tả rộng rãi và nhàm chán.

Hơn nữa, khi mọi người đang sử dụng một số máy ảo từ xa hoặc Đám mây điện toán đàn hồi Amazon (Amazon EC2) để chạy sổ ghi chép Jupyter của họ, các dự án của họ có xu hướng thiếu tài liệu và trở nên lộn xộn.

sổ ghi chép SageMaker

Có sổ ghi chép SageMaker: một nền tảng Sổ ghi chép Jupyter được quản lý lưu trữ trên AWS, nơi bạn có thể dễ dàng tạo một phiên bản sổ ghi chép—một phiên bản EC2 (máy tính ảo) chạy máy chủ Sổ ghi chép Jupyter. Bên cạnh việc sổ ghi chép hiện đang ở trên đám mây và có thể truy cập từ mọi nơi, bạn có thể dễ dàng định cỡ lại phiên bản sổ ghi chép, cung cấp cho nó nhiều tài nguyên điện toán như bạn yêu cầu.

Có tài nguyên máy tính không giới hạn là điều tuyệt vời, nhưng đó không phải là lý do tại sao chúng tôi quyết định bắt đầu sử dụng sổ ghi chép SageMaker. Chúng tôi có thể tóm tắt các mục tiêu mà chúng tôi muốn đạt được thành ba điểm chính:

  • Làm cho nghiên cứu dễ dàng hơn – Tạo môi trường làm việc dễ dàng, thân thiện với người dùng, có thể truy cập và chia sẻ nhanh chóng trong nhóm nghiên cứu.
  • Tổ chức dữ liệu và mã – Loại bỏ sự lộn xộn bằng cách giúp truy cập dữ liệu dễ dàng hơn và tạo một cách có cấu trúc để giữ mã.
  • giao dự án – Tạo ra một cách tốt hơn để tách sân chơi nghiên cứu và sản xuất, đồng thời tìm ra cách tốt hơn để chia sẻ ý tưởng của chúng tôi với các nhóm phát triển mà không cần sử dụng nhiều tài liệu nhàm chán.

Nghiên cứu dễ dàng hơn

Sổ ghi chép SageMaker nằm trong đám mây, khiến nó có thể truy cập được từ hầu hết mọi nơi. Bắt đầu một sổ ghi chép Jupyter chỉ mất vài phút và tất cả đầu ra của bạn từ lần chạy trước được lưu lại, khiến việc quay lại ngay vào sổ ghi chép trở nên rất đơn giản. Tuy nhiên, các yêu cầu nghiên cứu của chúng tôi bao gồm một số khía cạnh bổ sung cần giải pháp:

  • lượt xem nhanh – Luôn có sẵn sổ ghi chép để xem lại kết quả của các lần chạy trước. Nếu trường hợp bạn giữ mã của mình bị hỏng, bạn phải khởi động nó chỉ để xem đầu ra. Điều này có thể gây khó chịu, đặc biệt nếu bạn đang sử dụng một phiên bản đắt tiền và bạn chỉ muốn xem kết quả của mình. Điều này giúp giảm thời gian mỗi thành viên trong nhóm phải chờ phiên bản bắt đầu từ 5–15 phút xuống 0.
  • Chế độ xem được chia sẻ – Có khả năng khám phá sổ ghi chép phiên bản chéo. Theo mặc định, các phiên bản sổ ghi chép SageMaker được cung cấp bộ nhớ chuyên dụng. Chúng tôi muốn phá vỡ bức tường này và cho phép nhóm làm việc cùng nhau.
  • thư viện liên tục – Thư viện được lưu trữ tạm thời trong các phiên bản sổ ghi chép SageMaker. Chúng tôi muốn thay đổi điều đó để giảm thời gian cài đặt đầy đủ tất cả các thư viện cần thiết và rút ngắn 100%, từ khoảng 5 phút xuống 0.
  • Dịch vụ hiệu quả về chi phí – Tối ưu hóa chi phí trong khi giảm thiểu sự tham gia của các nhà nghiên cứu. Theo mặc định, bật và tắt phiên bản được thực hiện thủ công. Điều này có thể dẫn đến các khoản phí không cần thiết do lỗi của con người.

Để thu hẹp khoảng cách giữa cấu hình SageMaker mặc định và những gì chúng tôi đang tìm kiếm, chúng tôi chỉ sử dụng hai thành phần chính: Hệ thống tệp đàn hồi Amazon (Amazon EFS) và cấu hình vòng đời trong SageMaker. Cái đầu tiên, đúng như tên gọi, là một hệ thống tệp và cái thứ hai về cơ bản là một đoạn mã chạy khi sổ ghi chép được khởi động hoặc tạo lần đầu.

Lượt xem được chia sẻ và nhanh chóng

Chúng tôi đã kết nối hệ thống tệp này với tất cả các phiên bản sổ ghi chép của mình để tất cả chúng đều có một hệ thống tệp dùng chung. Bằng cách này, chúng tôi có thể lưu mã của mình trong Amazon EFS, thay vì sử dụng hệ thống tệp của phiên bản sổ ghi chép và truy cập mã từ bất kỳ phiên bản sổ ghi chép nào.

Điều này giúp mọi việc trở nên dễ dàng hơn vì giờ đây chúng ta có thể tạo một phiên bản sổ ghi chép nhỏ, siêu rẻ, chỉ đọc (đối với bài đăng này, hãy gọi nó là phiên bản trình xem) luôn hoạt động và sử dụng nó để dễ dàng truy cập mã và kết quả mà không cần phải bắt đầu phiên bản sổ ghi chép đã chạy mã. Hơn nữa, giờ đây chúng ta có thể dễ dàng chia sẻ mã với nhau vì mã được lưu trữ ở một vị trí dùng chung thay vì được lưu giữ trong nhiều phiên bản sổ ghi chép khác nhau.

Vì vậy, làm cách nào để bạn thực sự kết nối một hệ thống tệp với một phiên bản sổ ghi chép?

Chúng tôi đã tạo cấu hình vòng đời kết nối EFS với phiên bản sổ ghi chép và đính kèm cấu hình này với mọi phiên bản sổ ghi chép mà chúng tôi muốn trở thành một phần của môi trường dùng chung.

Trong phần này, chúng tôi sẽ hướng dẫn bạn qua tập lệnh cấu hình vòng đời mà chúng tôi đã viết, hay nói chính xác hơn là đã ăn cắp một cách trắng trợn từ các ví dụ do AWS cung cấp và trộn chúng lại với nhau.

Tiền tố tập lệnh sau đây là bản soạn sẵn tiêu chuẩn:

#!/bin/bash
set -e

Bây giờ, chúng tôi kết nối sổ ghi chép với EFS để đảm bảo rằng bạn biết tên của phiên bản EFS:

EFS_NAME=EFS_INSTANCE_NAME.efs.REGION.amazonaws.com
mkdir -p /home/ec2-user/SageMaker/efs
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport $EFS_NAME:/ /home/ec2-user/SageMaker/efs
sudo chmod go+rw /home/ec2-user/SageMaker/efs

Dịch vụ bền bỉ và tiết kiệm chi phí

Sau khi chúng tôi kết nối hệ thống tệp, chúng tôi bắt đầu nghĩ đến việc làm việc với sổ ghi chép. Vì AWS tính phí cho mỗi giờ mà phiên bản chạy, nên chúng tôi quyết định rằng sẽ là một phương pháp hay để tự động tắt sổ ghi chép SageMaker nếu nó không hoạt động trong một thời gian. Chúng tôi đã bắt đầu với giá trị mặc định là 1 giờ, nhưng bằng cách sử dụng các thẻ của phiên bản, người dùng có thể đặt bất kỳ giá trị nào phù hợp với họ từ GUI SageMaker. Áp dụng cấu hình 1 giờ mặc định có thể được định nghĩa là cấu hình vòng đời toàn cầuvà ghi đè nó có thể được định nghĩa là cấu hình vòng đời cục bộ. Chính sách này đã ngăn chặn hiệu quả việc các nhà nghiên cứu vô tình rời khỏi các phiên bản không sử dụng, giúp giảm 25% chi phí cho các phiên bản SageMaker.

# get instance tags location
NOTEBOOK_ARN=$(jq '.ResourceArn' /opt/ml/metadata/resource-metadata.json --raw-output) # extract idle time parameter value from tags list
IDLE_TIME=$(aws sagemaker list-tags --resource-arn $NOTEBOOK_ARN | jq '.Tags[] | select(.Key=="idle") | .Value') # in case idle time not specified set to one hour (3600 sec) [[ -z "$IDLE_TIME" ]] && IDLE_TIME=3600 # fetch the auto stop script from AWS samples repo
wget https://raw.githubusercontent.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/master/scripts/auto-stop-idle/autostop.py # starting the SageMaker autostop script in cron
(crontab -l 2>/dev/null; echo "*/5 * * * * /usr/bin/python $PWD/autostop.py --time $IDLE_TIME --ignore-connections") | crontab - sudo -u ec2-user -i <<'EOF'
unset SUDO_UID

Vì vậy, bây giờ sổ ghi chép được kết nối với Amazon EFS và tự động tắt khi không hoạt động. Nhưng điều này lại gây ra một vấn đề khác—theo mặc định, các thư viện Python trong các phiên bản sổ ghi chép SageMaker được cài đặt trong bộ lưu trữ tạm thời, nghĩa là chúng sẽ bị xóa khi phiên bản bị dừng và phải được cài đặt lại vào lần khởi động phiên bản tiếp theo. Điều này có nghĩa là chúng tôi phải cài đặt lại thư viện ít nhất một lần mỗi ngày, đây không phải là trải nghiệm tốt nhất và có thể mất từ ​​vài giây đến vài phút cho mỗi gói. Chúng tôi đã quyết định thêm một tập lệnh thay đổi hành vi này và khiến tất cả cài đặt thư viện được duy trì liên tục bằng cách thay đổi đường dẫn cài đặt thư viện Python thành bộ lưu trữ của phiên bản sổ ghi chép (Cửa hàng đàn hồi Amazon), loại bỏ hiệu quả thời gian lãng phí khi cài đặt lại các gói.

Tập lệnh này chạy mỗi khi phiên bản sổ ghi chép khởi động, cài đặt miniconda và một số thư viện Python cơ bản trong bộ lưu trữ liên tục và kích hoạt miniconda:

# use an address within the notebook instance’s file system
WORKING_DIR=/home/ec2-user/SageMaker/custom-miniconda
# if this is the first time the lifecycle config is running - install miniconda
if [ ! -d "$WORKING_DIR" ]; then mkdir -p "$WORKING_DIR" # download miniconda wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$WORKING_DIR/miniconda.sh" # install miniconda bash "$WORKING_DIR/miniconda.sh" -b -u -p "$WORKING_DIR/miniconda" # delete miniconda installer rm -rf "$WORKING_DIR/miniconda.sh" # create a custom conda environment source "$WORKING_DIR/miniconda/bin/activate" KERNEL_NAME="custom_python" PYTHON="3.9" conda create --yes --name "$KERNEL_NAME" python="$PYTHON" conda activate "$KERNEL_NAME" pip install --quiet ipykernel conda install --yes numpy pip install --quiet boto3 pandas matplotlib sklearn dill EOF
fi
# activate miniconda
source "$WORKING_DIR/miniconda/bin/activate"
for env in $WORKING_DIR/miniconda/envs/*; do BASENAME=$(basename "$env") source activate "$BASENAME" python -m ipykernel install --user --name "$BASENAME" --display-name "Custom ($BASENAME)"
Done # disable SageMaker-provided Conda functionality, leaving in only what we've installed
echo "c.EnvironmentKernelSpecManager.use_conda_directly = False" >> /home/ec2-user/.jupyter/jupyter_notebook_config.py
rm /home/ec2-user/.condarc
EOF

Khởi động lại nhanh và chúng tôi đã hoàn tất!

# restart the Jupyter server
restart jupyter-server

Tổ chức dữ liệu và mã

Bạn có nhớ EFS mà chúng ta vừa nói không? Nó ở đây để biết thêm.

Sau khi lưu trữ tất cả mã của chúng tôi ở cùng một vị trí, chúng tôi nghĩ có thể tốt hơn nếu sắp xếp nó một chút.

Chúng tôi đã quyết định rằng mỗi thành viên trong nhóm nên tạo phiên bản sổ ghi chép của riêng họ mà chỉ họ sử dụng. Tuy nhiên, thay vì sử dụng hệ thống tệp của phiên bản, chúng tôi sử dụng Amazon EFS và triển khai cấu trúc phân cấp sau:

---Thành viên của đội

------Dự án

--------mã số

-----------tài nguyên

Bằng cách này, tất cả chúng ta có thể dễ dàng truy cập mã của nhau, nhưng chúng ta vẫn biết mã nào thuộc về ai.

Nhưng còn những dự án đã hoàn thành thì sao? Chúng tôi đã quyết định thêm một nhánh bổ sung cho các dự án đã được lập và chuyển giao đầy đủ tài liệu:

---Thành viên của đội

------Dự án

--------mã số

-----------tài nguyên

---Dự án đã hoàn thành

------Dự án

--------mã số

-----------tài nguyên

Vì vậy, bây giờ mã của chúng tôi được tổ chức gọn gàng, làm thế nào để chúng tôi truy cập dữ liệu của mình?

Chúng tôi giữ dữ liệu của chúng tôi trong Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và truy cập nó qua amazon Athena. Điều này giúp dễ dàng thiết lập vai trò cho các phiên bản máy tính xách tay của chúng tôi với quyền truy cập Athena và Amazon S3. Bằng cách này, chỉ bằng cách sử dụng một vài dòng mã và không phải loay hoay với thông tin xác thực, chúng ta có thể dễ dàng truy vấn Athena và lấy dữ liệu để làm việc.

Trên hết, chúng tôi đã tạo một mạng chuyên dụng bằng cách sử dụng Đám mây riêng ảo Amazon (Amazon VPC), đã cấp cho các phiên bản sổ ghi chép quyền truy cập vào kho lưu trữ Git nội bộ và kho lưu trữ PyPI riêng của chúng tôi. Điều này giúp dễ dàng truy cập các gói và mã nội bộ hữu ích. Sơ đồ sau đây cho thấy mọi thứ trông như thế nào trong nền tảng sổ ghi chép của chúng tôi.

Giao hàng tận nơi

Cuối cùng, làm cách nào để chúng tôi sử dụng những sổ ghi chép này để dễ dàng thực hiện các dự án?

Một trong những điều tuyệt vời về sổ ghi chép Jupyter là ngoài việc viết mã và hiển thị đầu ra, bạn có thể dễ dàng thêm văn bản và tiêu đề, từ đó tạo ra một tài liệu tương tác.

Trong một vài dòng tiếp theo, chúng tôi mô tả các quy trình phân phối của mình khi chúng tôi bàn giao mô hình cho nhóm nhà phát triển và khi chúng tôi tự triển khai mô hình.

Đối với các dự án mà quy mô, hiệu suất và độ tin cậy là ưu tiên hàng đầu, chúng tôi bàn giao mô hình để nhóm nhà phát triển viết lại. Sau khi đạt được POC trưởng thành, chúng tôi chia sẻ sổ ghi chép với các nhà phát triển được chỉ định cho dự án bằng cách sử dụng phiên bản sổ ghi chép chỉ đọc đã đề cập trước đó.

Giờ đây, các nhà phát triển có thể đọc tài liệu, xem đầu vào và đầu ra cho từng khối mã, đồng thời hiểu rõ hơn về cách thức hoạt động và lý do tại sao, điều này giúp họ triển khai dễ dàng hơn. Trước đây, chúng tôi phải viết một tài liệu đặc tả cho các loại trường hợp này, về cơ bản có nghĩa là viết lại mã dưới dạng mã giả với rất nhiều nhận xét và giải thích. Giờ đây, chúng tôi có thể chỉ cần tích hợp các nhận xét và giải thích của mình vào sổ ghi chép SageMaker, giúp tiết kiệm nhiều ngày làm việc cho mỗi dự án.

Đối với các dự án không yêu cầu nhóm nhà phát triển viết lại mã, chúng tôi sắp xếp lại mã bên trong bộ chứa Docker và triển khai mã đó trong cụm Kubernetes. Mặc dù việc chuyển đổi mã từ sổ ghi chép thành một dự án Python tiêu chuẩn được Dockerized có vẻ phức tạp, nhưng quá trình này có những lợi ích riêng:

  • Khả năng giải thích và khả năng hiển thị – Thay vì giải thích thuật toán của bạn làm gì bằng cách tìm hiểu kỹ dự án lộn xộn của mình, bạn chỉ cần sử dụng sổ ghi chép mà bạn đã thực hiện trong giai đoạn nghiên cứu.
  • Mục đích tách – Mã nghiên cứu nằm trong sổ ghi chép và mã sản xuất nằm trong dự án Python. Bạn có thể tiếp tục nghiên cứu mà không cần chạm vào mã sản xuất và chỉ cập nhật nó khi bạn có bước đột phá.
  • khả năng gỡ lỗi – Nếu mô hình của bạn gặp sự cố, bạn có thể dễ dàng gỡ lỗi trong sổ ghi chép.

Cái gì tiếp theo

Máy tính xách tay Jupyter cung cấp một sân chơi tuyệt vời cho các nhà khoa học dữ liệu. Ở quy mô nhỏ hơn, nó rất thuận tiện để sử dụng trên máy cục bộ của bạn. Tuy nhiên, khi bạn bắt đầu làm việc với các dự án lớn hơn trong các nhóm lớn hơn, sẽ có nhiều lợi thế khi chuyển sang máy chủ Jupyter Notebooks được quản lý. Điều tuyệt vời về sổ ghi chép SageMaker là bạn có thể tùy chỉnh các phiên bản sổ ghi chép của mình, chẳng hạn như kích thước phiên bản, chia sẻ mã và tập lệnh tự động hóa, lựa chọn nhân, v.v., giúp bạn tiết kiệm rất nhiều thời gian và tiền bạc

Nói một cách đơn giản, chúng tôi đã tạo ra một quy trình đẩy nhanh quá trình cộng tác và phát triển ML đồng thời giảm ít nhất 25% chi phí cho sổ ghi chép SageMaker và giảm thời gian chung mà các nhà nghiên cứu dành cho việc cài đặt và chờ đợi các phiên bản sẵn sàng hoạt động.

Môi trường sổ ghi chép SageMaker hiện tại của chúng tôi bao gồm:

  • Phiên bản sổ ghi chép Jupyter được quản lý
  • Các phiên bản điện toán riêng biệt, có thể tùy chỉnh cho từng người dùng
  • Hệ thống tệp dùng chung được sử dụng để tổ chức các dự án và dễ dàng chia sẻ mã với các đồng nghiệp
  • Cấu hình vòng đời giúp giảm chi phí và giúp bắt đầu làm việc dễ dàng hơn
  • Kết nối với nguồn dữ liệu, kho lưu trữ mã và chỉ mục gói

Chúng tôi dự định làm cho môi trường này trở nên tốt hơn nữa bằng cách thêm một vài tính năng bổ sung:

  • giám sát chi phí – Để theo dõi ngân sách của chúng tôi, chúng tôi sẽ thêm một thẻ đặc biệt vào mỗi phiên bản để theo dõi chi phí của chúng.
  • Tự động lưu trạng thái – Chúng tôi sẽ tạo cấu hình vòng đời tự động lưu trạng thái của sổ ghi chép, cho phép người dùng dễ dàng khôi phục trạng thái của sổ ghi chép ngay cả sau khi đã tắt.
  • Hệ thống quyền hạn chế – Chúng tôi muốn cho phép người dùng từ các nhóm khác nhau tham gia vào nghiên cứu và khám phá dữ liệu của chúng tôi bằng cách cho phép họ tạo phiên bản sổ ghi chép và truy cập dữ liệu của chúng tôi, nhưng theo các giới hạn được xác định trước. Ví dụ: họ sẽ chỉ có thể tạo các phiên bản sổ ghi chép nhỏ, rẻ tiền và chỉ truy cập một phần dữ liệu.

Bước tiếp theo, chúng tôi khuyến khích bạn thử sổ ghi chép SageMaker. Để biết thêm ví dụ, hãy xem Ví dụ về SageMaker GitHub repo.


Về các tác giả

sư tử matan là trưởng nhóm Khoa học dữ liệu tại Nhóm nghiên cứu mối đe dọa của Imperva. Nhóm của anh ấy chịu trách nhiệm cung cấp các giải pháp dựa trên dữ liệu và đổi mới an ninh mạng trong danh mục sản phẩm của công ty, bao gồm tuyến đầu về bảo mật ứng dụng và dữ liệu, tận dụng dữ liệu lớn và máy học

Johnathan Azaria là Nhà khoa học dữ liệu và là thành viên của Imperva Research Labs, một tổ chức nghiên cứu hàng đầu về phân tích bảo mật, khám phá lỗ hổng và chuyên môn về tuân thủ. Trước khi đảm nhận vai trò khoa học dữ liệu, Johnathan là nhà nghiên cứu bảo mật chuyên về các cuộc tấn công dựa trên mạng và ứng dụng. Johnathan giữ một Cử nhân khoa học và một ThS trong Tin sinh học từ Đại học Bar Ilan.

Yaniv Vaknin là Chuyên gia Máy học tại Amazon Web Services. Trước AWS, Yaniv đã giữ các vị trí lãnh đạo với các công ty khởi nghiệp về AI và Doanh nghiệp, bao gồm cả người đồng sáng lập và Giám đốc điều hành của Dipsee.ai. Yaniv làm việc với khách hàng AWS để khai thác sức mạnh của Machine Learning nhằm giải quyết các nhiệm vụ trong thế giới thực và thu được giá trị. Khi rảnh rỗi, Yaniv thích chơi bóng đá với các cậu con trai của mình.

Nguồn: https://aws.amazon.com/blogs/machine-learning/how-imperva-expedites-ml-development-and-collaboration-via-amazon-sagemaker-notebooks/

Dấu thời gian:

Thêm từ Blog Học máy AWS