AWS와 기계 학습/AI를 배우기 위한 여정에서 저는 Streamlit, 자연어 처리 또는 NLP를 사용하여 모의 학습을 통해 간단하면서도 강력한 AWS 학습 경로 추천자를 만들기로 결정했습니다. S3 환경. 이 애플리케이션은 사용자 입력을 기반으로 AWS 학습 경로를 제안할 수 있습니다.
자, 그럼 들어가 보겠습니다!
전제조건
시작하기 전에 Python이 설치되어 있는지 확인하고 새 프로젝트 폴더를 생성하세요. 그런 다음 아래 라이브러리를 설치하세요.
pip install streamlit boto3 moto scikit-learn
1단계: Mock S3 설정
먼저 Moto를 사용하여 모의 S3를 생성하는 함수를 정의합니다. 이는 AWS에 연결하지 않고 AWS S3를 시뮬레이션하는 데 사용됩니다.
import boto3 from moto import mock_s3 import json def setup_mock_s3(): s3 = boto3.resource("s3", region_name="us-east-1") bucket_name = "mock-learning-paths" s3.create_bucket(Bucket=bucket_name) data = { "resources": [ {"title": "Introduction to AWS", "tags": "AWS, Cloud Computing, Basics"}, {"title": "Deep Learning on AWS", "tags": "AWS, Deep Learning, AI"}, {"title": "NLP with SageMaker", "tags": "AWS, NLP, Machine Learning"}, {"title": "Serverless with AWS Lambda", "tags": "AWS, Serverless, Lambda"}, ] } s3.Bucket(bucket_name).put_object(Key="mock_resources.json", Body=json.dumps(data)) return bucket_name
2단계: 추천 기능
다음으로 사용자 입력에 따라 일부 NLP를 활용하여 학습 경로를 제안하는 함수를 정의하겠습니다.
from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity def recommend_learning_path(user_input, bucket_name): s3 = boto3.client("s3", region_name="us-east-1") obj = s3.get_object(Bucket=bucket_name, Key="mock_resources.json") data = json.loads(obj['Body'].read().decode('utf-8')) resources = data["resources"] titles = [resource["title"] for resource in resources] tags = [resource["tags"] for resource in resources] corpus = tags + [user_input] vectorizer = TfidfVectorizer() tfidf_matrix = vectorizer.fit_transform(corpus) similarity = cosine_similarity(tfidf_matrix[-1], tfidf_matrix[:-1]) scores = similarity.flatten() ranked_indices = scores.argsort()[::-1] recommendations = [titles[i] for i in ranked_indices[:3]] return recommendations
3단계: 간소화된 인터페이스
이제 Streamlit을 사용하여 애플리케이션의 인터페이스를 디자인해 보겠습니다.
import streamlit as st st.title("AWS Learning Path Recommender") user_input = st.text_input("What do you want to learn about AWS?", "I want to learn about AWS and AI") if st.button("Get Recommendations"): with mock_s3(): bucket_name = setup_mock_s3() recommendations = recommend_learning_path(user_input, bucket_name) st.subheader("Recommended Learning Path:") for i, rec in enumerate(recommendations, 1): st.write(f"{i}. {rec}")
4단계: 종합하기
모든 코드 조각을 'app.py'라는 단일 Python 파일로 결합합니다.
import streamlit as st import boto3 from moto import mock_s3 import json from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # [Insert setup_mock_s3 function here] # [Insert recommend_learning_path function here] st.title("AWS Learning Path Recommender") user_input = st.text_input("What do you want to learn about AWS?", "I want to learn about AWS and AI") if st.button("Get Recommendations"): with mock_s3(): bucket_name = setup_mock_s3() recommendations = recommend_learning_path(user_input, bucket_name) st.subheader("Recommended Learning Path:") for i, rec in enumerate(recommendations, 1): st.write(f"{i}. {rec}")
5단계: 앱 실행
Streamlit 앱을 시작하려면 터미널을 열고 디렉터리를 프로젝트 폴더로 변경한 후 다음을 실행하세요.
streamlit run app.py
이렇게 하면 Streamlit 서버가 부팅되고 기본 웹 브라우저에서 앱이 열립니다.
작동 방식
앱은 몇 가지 AWS 학습 리소스 예시로 채워진 모의 S3 버킷을 생성합니다.
이 애플리케이션은 학습에 대한 사용자의 관심분야를 입력하고 "추천 받기"를 클릭하여 코사인 유사성 외에 TF-IDF를 사용하여 가장 관련성이 높은 리소스를 추천합니다. 상위 3개 추천이 사용자에게 표시됩니다.
결론.
이 간단한 애플리케이션은 Streamlit을 사용하여 NLP 기술을 AWS 서비스와 결합하여 대화형 학습 경로 추천자를 생성합니다. 실제 AWS 서비스를 통합하거나 더 많은 리소스를 추가하거나 더 정교한 추천 알고리즘을 사용하여 이 예를 확장할 수 있습니다.
이것은 매우 간단한 예이며 제작을 위해 많이 개선될 수 있습니다. 실제 세계에 맞는 애플리케이션을 개발하는 동안 보안, 확장성 및 사용자 경험이 주요 관심사라는 점을 기억하십시오.
이 글을 읽어주셔서 정말 감사합니다!
위 내용은 Streamlit을 사용하여 나만의 맞춤형 AWS 학습 경험 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!