MLOps는 ML(기계 학습) 모델을 생산하는 경로를 감독하는 핵심 분야입니다. 교육 및 배포하려는 단일 모델에 집중하는 것은 자연스러운 일입니다. 그러나 실제로는 수십 또는 수백 개의 모델로 작업할 가능성이 높으며 프로세스에는 여러 복잡한 단계가 포함될 수 있습니다. 따라서 다양한 규모의 복잡성이 있는 모델을 추적, 교육, 배포 및 모니터링할 수 있는 인프라를 갖추는 것이 중요합니다. 여기에서 MLOps 도구가 필요합니다. MLOps 도구는 이러한 프로세스를 ML에 맞게 조정된 워크플로로 반복적이고 안정적으로 빌드하고 단순화하는 데 도움이 됩니다.
Amazon SageMaker 파이프 라인, 의 기능 아마존 세이지 메이커는 엔드투엔드 ML 워크플로를 대규모로 자동화하는 데 도움이 되는 ML용으로 특별히 제작된 워크플로 오케스트레이션 서비스입니다. 데이터 준비, 모델 교육, 조정 및 검증과 같은 작업을 조율하는 중앙 집중식 플랫폼을 제공하여 ML 모델의 개발 및 유지 관리를 단순화합니다. SageMaker Pipelines는 워크플로 관리를 간소화하고 실험을 가속화하며 모델을 더 쉽게 재교육하는 데 도움이 될 수 있습니다.
이 게시물에서는 SageMaker Pipelines의 흥미로운 새 기능인 선택적 실행. 이 새로운 기능을 사용하면 ML 워크플로의 특정 부분을 선택적으로 실행할 수 있으므로 범위 내에서 실행을 파이프라인 단계로 제한하고 범위를 벗어난 단계를 실행할 필요가 없으므로 상당한 시간과 컴퓨팅 리소스를 절약할 수 있습니다. 또한 Selective Execution 활용의 이점이 분명해지는 다양한 사용 사례를 탐색하여 그 가치 제안을 더욱 공고히 합니다.
솔루션 개요
SageMaker Pipelines는 선택적 실행. ML 빌더는 이제 파이프라인 내에서 실행할 특정 단계를 선택할 수 있으므로 전체 파이프라인을 다시 실행할 필요가 없습니다. 이 기능을 사용하면 선택한 단계와 연결된 런타임 매개변수를 수정하면서 파이프라인의 특정 섹션을 다시 실행할 수 있습니다.
선택한 단계는 선택하지 않은 단계의 결과에 따라 달라질 수 있다는 점에 유의해야 합니다. 이러한 경우 선택되지 않은 이러한 단계의 출력은 현재 파이프라인 버전의 참조 실행에서 재사용됩니다. 이는 참조 실행이 이미 완료되었음을 의미합니다. 기본 참조 실행은 현재 파이프라인 버전의 최신 실행이지만 현재 파이프라인 버전의 다른 실행을 참조로 사용하도록 선택할 수도 있습니다.
참조 실행의 전체 상태는 다음과 같아야 합니다. 성공한, 실패한 or 중단. 그럴 수 없다 달리는 선택적 실행이 출력을 사용하려고 할 때. 선택적 실행을 사용할 때 파이프라인의 연속 부분을 형성하는 한 실행할 단계를 원하는 만큼 선택할 수 있습니다.
다음 다이어그램은 전체 실행의 파이프라인 동작을 보여줍니다.
다음 다이어그램은 선택적 실행을 사용하는 파이프라인 동작을 보여줍니다.
다음 섹션에서는 파이프라인 DAG(직접 비순환 그래프)의 복잡한 워크플로를 포함하여 다양한 시나리오에 선택적 실행을 사용하는 방법을 보여줍니다.
사전 조건
선택적 실행 실험을 시작하려면 먼저 SageMaker 환경의 다음 구성 요소를 설정해야 합니다.
- SageMaker Python SDK – 업데이트가 있는지 확인하십시오. SageMaker Python SDK Python 환경에 설치됩니다. 노트북 또는 터미널에서 다음 명령을 실행하여 SageMaker Python SDK 버전을 설치하거나 업그레이드할 수 있습니다. 2.162.0 또는 더 높게:
python3 -m pip install sagemaker>=2.162.0
orpip3 install sagemaker>=2.162.0
. - SageMaker Studio에 대한 액세스(선택 사항) - 아마존 세이지 메이커 스튜디오 파이프라인 실행을 시각화하고 기존 파이프라인 ARN과 시각적으로 상호 작용하는 데 도움이 될 수 있습니다. SageMaker Studio에 대한 액세스 권한이 없거나 주문형 노트북 또는 기타 IDE를 사용하는 경우에도 이 게시물을 팔로우하고 Python SDK를 사용하여 파이프라인 ARN과 상호 작용할 수 있습니다.
전체 종단 간 연습을 위한 샘플 코드는 다음에서 사용할 수 있습니다. GitHub 레포.
설정
와 더불어 sagemaker>=1.162.0
파이썬 SDK, 우리는 SelectiveExecutionConfig
의 일부로 클래스 sagemaker.workflow.selective_execution_config
기준 치수. 선택적 실행 기능은 이전에 다음과 같이 표시된 파이프라인 ARN에 의존합니다. 성공, 실패한 or 중단. 다음 코드 스니펫은 SelectiveExecutionConfig
클래스, 참조 파이프라인 ARN 검색, 연결된 파이프라인 단계 및 파이프라인 실행을 관리하는 런타임 매개변수 수집:
import boto3
from sagemaker.workflow.pipeline import Pipeline
from sagemaker.workflow.selective_execution_config import SelectiveExecutionConfig sm_client = boto3.client('sagemaker')
# reference the name of your sample pipeline pipeline_name = "AbalonePipeline"
# filter for previous success pipeline execution arns
pipeline_executions = [_exec for _exec in Pipeline(name=pipeline_name).list_executions()['PipelineExecutionSummaries'] if _exec['PipelineExecutionStatus'] == "Succeeded"
]
# get the last successful execution
latest_pipeline_arn = pipeline_executions[0]['PipelineExecutionArn']
print(latest_pipeline_arn)
>>> arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/x62pbar3gs6h # list all steps of your sample pipeline
execution_steps = sm_client.list_pipeline_execution_steps( PipelineExecutionArn=latest_pipeline_arn
)['PipelineExecutionSteps']
print(execution_steps)
>>> [{'StepName': 'Abalone-Preprocess', 'StartTime': datetime.datetime(2023, 6, 27, 4, 41, 30, 519000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2023, 6, 27, 4, 41, 30, 986000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'AttemptCount': 0, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-1:123123123123:processing-job/pipelines-fvsmu7m7ki3q-Abalone-Preprocess-d68CecvHLU'}}, 'SelectiveExecutionResult': {'SourcePipelineExecutionArn': 'arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/ksm2mjwut6oz'}}, {'StepName': 'Abalone-Train', 'StartTime': datetime.datetime(2023, 6, 27, 4, 41, 31, 320000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2023, 6, 27, 4, 43, 58, 224000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'AttemptCount': 0, 'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-1:123123123123:training-job/pipelines-x62pbar3gs6h-Abalone-Train-PKhAc1Q6lx'}}}, {'StepName': 'Abalone-Evaluate', 'StartTime': datetime.datetime(2023, 6, 27, 4, 43, 59, 40000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2023, 6, 27, 4, 57, 43, 76000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'AttemptCount': 0, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-1:123123123123:processing-job/pipelines-x62pbar3gs6h-Abalone-Evaluate-vmkZDKDwhk'}}}, {'StepName': 'Abalone-MSECheck', 'StartTime': datetime.datetime(2023, 6, 27, 4, 57, 43, 821000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2023, 6, 27, 4, 57, 44, 124000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'AttemptCount': 0, 'Metadata': {'Condition': {'Outcome': 'True'}}}] # list all configureable pipeline parameters # params can be altered during selective execution
parameters = sm_client.list_pipeline_parameters_for_execution( PipelineExecutionArn=latest_pipeline_arn
)['PipelineParameters']
print(parameters)
>>> [{'Name': 'XGBNumRounds', 'Value': '120'}, {'Name': 'XGBSubSample', 'Value': '0.9'}, {'Name': 'XGBGamma', 'Value': '2'}, {'Name': 'TrainingInstanceCount', 'Value': '1'}, {'Name': 'XGBMinChildWeight', 'Value': '4'}, {'Name': 'XGBETA', 'Value': '0.25'}, {'Name': 'ApprovalStatus', 'Value': 'PendingManualApproval'}, {'Name': 'ProcessingInstanceCount', 'Value': '1'}, {'Name': 'ProcessingInstanceType', 'Value': 'ml.t3.medium'}, {'Name': 'MseThreshold', 'Value': '6'}, {'Name': 'ModelPath', 'Value': 's3://sagemaker-us-east-1-123123123123/Abalone/models/'}, {'Name': 'XGBMaxDepth', 'Value': '12'}, {'Name': 'TrainingInstanceType', 'Value': 'ml.c5.xlarge'}, {'Name': 'InputData', 'Value': 's3://sagemaker-us-east-1-123123123123/sample-dataset/abalone/abalone.csv'}]
사용 사례
이 섹션에서는 선택적 실행이 잠재적으로 시간과 리소스를 절약할 수 있는 몇 가지 시나리오를 제시합니다. Selective Execution의 이점을 설명하기 위해 데이터 추출, 교육, 평가, 모델 등록 및 배포와 같은 단계를 포함하는 일반적인 파이프라인 흐름을 참조로 사용합니다.
SageMaker Pipelines를 사용하면 파이프라인 매개변수를 사용하여 파이프라인 실행에 대한 런타임 매개변수를 정의할 수 있습니다. 새 실행이 트리거되면 일반적으로 처음부터 끝까지 전체 파이프라인을 실행합니다. 그러나 만약 단계 캐싱 활성화되면 SageMaker Pipelines는 속성 값이 동일한 현재 파이프라인 단계의 이전 실행을 찾으려고 시도합니다. 일치 항목이 발견되면 SageMaker Pipelines는 단계를 다시 계산하는 대신 이전 실행의 출력을 사용합니다. 단계 캐싱이 활성화된 경우에도 SageMaker Pipelines는 기본적으로 끝까지 전체 워크플로를 계속 실행합니다.
선택적 실행 기능이 출시되면서 이제 전체 파이프라인 워크플로를 다시 실행하거나 이전 파이프라인 ARN을 사용하여 단계의 하위 집합을 선택적으로 실행할 수 있습니다. 이는 단계 캐싱을 활성화하지 않은 상태에서도 수행할 수 있습니다. 다음 사용 사례는 선택적 실행을 사용할 수 있는 다양한 방법을 보여줍니다.
사용 사례 1: 단일 단계 실행
데이터 과학자는 종종 MLOps 파이프라인의 교육 단계에 집중하고 사전 처리 또는 배포 단계에 대해 걱정하고 싶지 않습니다. 선택적 실행을 통해 데이터 과학자는 훈련 단계에만 집중하고 즉시 훈련 매개변수 또는 하이퍼 매개변수를 수정하여 모델을 개선할 수 있습니다. 이렇게 하면 컴퓨팅 리소스가 사용자가 선택한 파이프라인 단계를 실행하는 데만 활용되기 때문에 시간과 비용을 절약할 수 있습니다. 다음 코드를 참조하십시오.
# select a reference pipeline arn and subset step to execute
selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/9e3ljoql7s0n", selected_steps=["Abalone-Train"]
) # start execution of pipeline subset
select_execution = pipeline.start( selective_execution_config=selective_execution_config, parameters={ "XGBNumRounds": 120, "XGBSubSample": 0.9, "XGBGamma": 2, "XGBMinChildWeight": 4, "XGBETA": 0.25, "XGBMaxDepth": 12 }
)
다음 그림은 한 단계가 진행된 후 완료된 파이프라인을 보여줍니다.
사용 사례 2: 여러 연속 파이프라인 단계 실행
이전 사용 사례에서 데이터 과학자는 새 모델을 교육하고 골든 테스트 데이터 세트에 대한 성능을 평가하려고 합니다. 이 평가는 모델이 UAT(사용자 승인 테스트) 또는 프로덕션 배포에 대한 엄격한 지침을 충족하는지 확인하는 데 중요합니다. 그러나 데이터 과학자는 전체 파이프라인 워크플로를 실행하거나 모델을 배포하는 것을 원하지 않습니다. 선택적 실행을 사용하여 교육 및 평가 단계에만 집중하여 시간과 리소스를 절약하는 동시에 필요한 검증 결과를 얻을 수 있습니다.
# select a reference pipeline arn and subset step to execute
selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/9e3ljoql7s0n", selected_steps=["Abalone-Train", "Abalone-Evaluate"]
) # start execution of pipeline subset
select_execution = pipeline.start( selective_execution_config=selective_execution_config, parameters={ "ProcessingInstanceType": "ml.t3.medium", "XGBNumRounds": 120, "XGBSubSample": 0.9, "XGBGamma": 2, "XGBMinChildWeight": 4, "XGBETA": 0.25, "XGBMaxDepth": 12 }
)
사용 사례 3: 실패한 파이프라인 단계 업데이트 및 재실행
선택적 실행을 사용하여 파이프라인 내에서 실패한 단계를 다시 실행하거나 실패한 단계부터 파이프라인 실행을 재개할 수 있습니다. 이는 개발자가 해결해야 하는 특정 문제에 집중할 수 있도록 하므로 실패한 단계의 문제 해결 및 디버깅에 유용할 수 있습니다. 이것은 보다 효율적인 문제 해결과 더 빠른 반복 시간으로 이어질 수 있습니다. 다음 예제에서는 파이프라인의 실패한 단계만 다시 실행하도록 선택할 수 있는 방법을 보여줍니다.
# select a previously failed pipeline arn
selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/fvsmu7m7ki3q", selected_steps=["Abalone-Evaluate"]
) # start execution of failed pipeline subset
select_execution = pipeline.start( selective_execution_config=selective_execution_config
)
또는 데이터 과학자는 실패한 단계와 그 이후의 모든 단계를 SelectiveExecutionConfig
.
사용 사례 4: 파이프라인 범위
일부 파이프라인에서 특정 분기는 다른 분기보다 덜 자주 실행됩니다. 예를 들어 특정 조건이 실패할 때만 실행되는 분기가 있을 수 있습니다. 오류가 발생할 때 예상대로 작동하는지 확인하려면 이러한 분기를 철저하게 테스트하는 것이 중요합니다. 자주 실행되지 않는 이러한 분기를 테스트하여 개발자는 파이프라인이 견고하고 오류 처리 메커니즘이 원하는 워크플로를 효과적으로 유지하고 신뢰할 수 있는 결과를 생성하는지 확인할 수 있습니다.
selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-east-1:123123123123:pipeline/AbalonePipeline/execution/9e3ljoql7s0n", selected_steps=["Abalone-Train", "Abalone-Evaluate", "Abalone-MSECheck", "Abalone-FailNotify"]
)
결론
이 게시물에서는 ML 워크플로의 특정 단계를 선택적으로 실행할 수 있는 SageMaker Pipelines의 선택적 실행 기능에 대해 논의했습니다. 이 기능은 상당한 시간과 컴퓨팅 자원 절약으로 이어집니다. 우리는 몇 가지 샘플 코드를 GitHub 레포 선택적 실행을 사용하는 방법을 보여주고 사용자에게 유리할 수 있는 다양한 시나리오를 제시했습니다. 선택적 실행에 대해 자세히 알아보려면 다음을 참조하십시오. 개발자 가이드 및 API 참조 가이드.
SageMaker Pipelines 워크플로 내에서 사용 가능한 단계를 자세히 알아보려면 다음을 참조하십시오. Amazon SageMaker 모델 구축 파이프라인 및 SageMaker 워크플로. 또한 다음에서 SageMaker 파이프라인을 사용하여 다양한 사용 사례 및 구현 접근 방식을 보여주는 더 많은 예를 찾을 수 있습니다. AWS SageMaker 예제 GitHub 저장소. 이러한 리소스는 이해도를 더욱 높이고 현재 및 향후 ML 프로젝트에서 SageMaker 파이프라인 및 선택적 실행의 모든 잠재력을 활용하는 데 도움이 될 수 있습니다.
저자에 관하여
프라나브 머티 AWS의 AI/ML 전문 솔루션 아키텍트입니다. 그는 고객이 기계 학습(ML) 워크로드를 구축, 교육, 배포 및 SageMaker로 마이그레이션하도록 돕는 데 중점을 두고 있습니다. 이전에는 반도체 공정을 개선하기 위해 대형 컴퓨터 비전(CV) 및 자연어 처리(NLP) 모델을 개발하는 반도체 업계에서 일했습니다. 여가 시간에는 체스와 여행을 즐깁니다.
아킬 누마르수 팀이 클라우드에서 효율적인 도구와 서비스를 통해 ML 결과를 가속화하도록 돕는 데 중점을 둔 수석 제품 관리자-기술입니다. 그는 탁구를 즐기고 스포츠 팬입니다.
니샨트 크리슈나무티 Amazon Stores의 수석 소프트웨어 개발 엔지니어입니다. 그는 컴퓨터 과학 석사 학위를 보유하고 있으며 현재 SageMaker에서 ML 솔루션을 구축하고 운영함으로써 Amazon 내의 여러 조직에서 ML 채택을 가속화하는 데 주력하고 있습니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 자동차 / EV, 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 차트프라임. ChartPrime으로 트레이딩 게임을 향상시키십시오. 여기에서 액세스하십시오.
- BlockOffsets. 환경 오프셋 소유권 현대화. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/unlocking-efficiency-harnessing-the-power-of-selective-execution-in-amazon-sagemaker-pipelines/
- :있다
- :이다
- :어디
- $UP
- 1
- 100
- 12
- 2023
- 25
- 27
- 30
- 31
- 7
- 9
- a
- 능력
- 소개
- 가속
- 가속하는
- 수락
- ACCESS
- 비 환식
- 또한
- 양자
- 이점
- 유리한
- 장점
- 반대
- AI / ML
- All
- 수
- 이미
- 또한
- 변경
- 아마존
- 아마존 세이지 메이커
- Amazon SageMaker 파이프 라인
- Amazon Web Services
- an
- 및
- 어떤
- 구혼
- 있군요
- AS
- 관련
- At
- 시도
- 자동화
- 가능
- AWS
- BE
- 때문에
- 가
- 된
- 행동
- 지사
- 가지
- 빌드
- 빌더
- 건물
- 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
- by
- CAN
- 능력
- 케이스
- 가지 경우
- 중앙
- 어떤
- 체스
- 왼쪽 메뉴에서
- 수업
- 클라우드
- 암호
- 제공
- 완전한
- 진행완료
- 복잡한
- 복잡성
- 구성 요소들
- 계산
- 컴퓨터
- 컴퓨터 과학
- 컴퓨터 비전
- 조건
- 계속
- 비용
- 결정적인
- Current
- 현재
- 고객
- 데이터
- 데이터 준비
- 데이터 과학자
- 날짜 시간
- 태만
- 밝히다
- 도
- 보여
- 보여줍니다
- 배포
- 전개
- 원하는
- 세부 묘사
- 개발자
- 개발자
- 개발
- 개발
- 다른
- 곧장
- 논의 된
- 하지
- 하지 않습니다
- 한
- 말라
- 수십
- ...동안
- 용이하게
- 효과적으로
- 효율성
- 효율적인
- 제거
- 힘을 실어
- 사용 가능
- 수
- end
- 끝으로 종료
- 기사
- 강화
- 확인
- 전체의
- 환경
- 평가
- 평가
- 조차
- 분명한
- 예
- 예
- 흥미 진진한
- 실행
- 실행
- 기대하는
- 경험
- 탐험
- 추출
- 실패한
- 실패
- 고장
- 부채
- 빠른
- 특색
- 를
- 도
- 필터링
- Find
- 마무리
- 먼저,
- 흐름
- 초점
- 집중
- 집중
- 따라
- 수행원
- 럭셔리
- 형태
- 발견
- 무료
- 자주
- 에
- 가득 찬
- 추가
- 게다가
- 미래
- 수집
- 얻을
- 점점
- GitHub의
- 골든
- 통치
- 그래프
- 가이드 라인
- 마구
- 있다
- he
- 도움
- 도움이
- 도움이
- 도움이
- 더 높은
- 그의
- 보유
- 방법
- How To
- 그러나
- HTML
- HTTPS
- 수백
- if
- 설명하다
- 이행
- import
- 중대한
- 개선
- in
- 포함
- 포함
- 산업
- 인프라
- 받아 들여 쓰다
- 설치
- 설치
- 를 받아야 하는 미국 여행자
- 상호 작용하는
- 상호 작용
- 으로
- 소개
- 감다
- 문제
- IT
- 되풀이
- 그
- JPG
- 다만
- 키
- 알려진
- 언어
- 넓은
- 성
- 최근
- 리드
- 오퍼
- 배우다
- 배우기
- 적게
- 처럼
- 아마도
- 제한
- 명부
- 긴
- 기계
- 기계 학습
- 유지하다
- 유지
- 구축
- 두드러진
- 경기
- XNUMX월..
- 방법
- 메커니즘
- 매질
- 만족
- 메타 데이터
- 수도
- 이전
- ML
- MLOps
- 모델
- 모델
- 수정
- 모듈
- 모니터
- 배우기
- 보다 효율적으로
- 여러
- 절대로 필요한 것
- name
- 자연의
- 자연 언어 처리
- 필요
- 신제품
- nlp
- 수첩
- 지금
- 번호
- of
- 자주
- on
- 온디맨드
- ONE
- 만
- or
- 오케스트레이션
- 기타
- 기타
- 우리의
- 아웃
- 결과
- 결과
- 전체
- 매개 변수
- 부품
- 통로
- 성능
- 관로
- 장소
- 플랫폼
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 연주
- 일부
- 게시하다
- 가능성
- 잠재적으로
- 힘
- 준비
- 제시
- 제시
- 너무 이른
- 이전에
- 이전에
- 문제 해결
- 방법
- 프로세스
- 처리
- 생산
- 프로덕트
- 생산
- 프로젝트
- 제안
- 제공
- 제공
- Python
- 현실
- 감소
- 등록
- 공개
- 신뢰할 수있는
- 의지하다
- 저장소
- 의지
- 제품 자료
- 결과
- 결과
- 이력서
- 엄밀한
- 강력한
- 달리기
- 달리는
- 실행
- 현자
- SageMaker 파이프 라인
- 같은
- 찜하기
- 절약
- 저금
- 규모
- 시나리오
- 과학
- 과학자
- 과학자
- 범위
- SDK
- 섹션
- 섹션
- 참조
- 선택된
- 선택적
- 반도체
- 서비스
- 서비스
- 세트
- 표시
- 선보이는
- 상당한
- 단순화
- 단일
- 단편
- 소프트웨어
- 소프트웨어 개발
- 혼자서
- 응고
- 솔루션
- 일부
- 전문가
- 구체적인
- 스포츠
- 스포트라이트
- 단계
- 스타트
- 주 정부
- 단계
- 단계
- 아직도
- 상점
- 유선
- 스튜디오
- 성공
- 성공한
- 이러한
- 테이블
- 맞춤형
- 받아
- 작업
- 팀
- 단말기
- test
- 지원
- 보다
- 그
- XNUMXD덴탈의
- 그들의
- 그때
- 그곳에.
- 따라서
- Bowman의
- 그들
- 이
- 완전히
- 을 통하여
- 시간
- 시대
- 에
- 검색을
- 선로
- Train
- 트레이닝
- 여행
- 방아쇠를 당긴
- 참된
- 전형적인
- 일반적으로
- 이해
- 잠금 해제
- 업데이트
- 업데이트
- 업그레이드
- 사용
- 유스 케이스
- 사용자
- 사용자
- 사용
- 사용
- 활용
- 확인
- 가치
- 마케팅은:
- 여러
- 확인
- 버전
- 시력
- 연습
- 필요
- 원
- 방법
- we
- 웹
- 웹 서비스
- 언제
- 어느
- 동안
- 의지
- 과
- 이내
- 없이
- 작업
- 일
- 워크플로우
- 워크 플로우
- 걱정
- 겠지
- 자신의
- 너의
- 제퍼 넷