Loading...

체크포인트

3 Contents
최신순

EOST2021 전원 불안정 감내 자율적 에너지기반 컴퓨팅 시스템SW 원천기술

기존의 컴퓨팅 환경은 전원이 안정적으로 공급되거나 배터리를 통해 지속적인 전력이 보장되는 상황을 가정하여 설계되었습니다. 하지만 최근 사물인터넷(IoT) 기술의 확산과 함께 전력망이 닿지 않는 곳에서도 스스로 에너지를 생산하여 동작하는 에너지 독립적 컴퓨팅에 대한 수요가 급증하고 있습니다. 이러한 흐름에 맞춰 등장한 '에너지 드리븐 컴퓨팅'은 전력 공급이 불안정한 극한 환경에서도 중단 없이 연산을 지속할 수 있도록 돕는 차세대 기술입니다. 이는 에너지 하베스팅 기술과 비휘발성 메모리(NVM)의 발전을 기반으로 하여, 전원이 끊기더라도 실행 데이터를 안전하게 보관하고 다시 복구할 수 있는 혁신적인 토대를 마련하고 있습니다. 이 기술이 가장 절실하게 요구되는 분야는 사람의 손길이 닿기 어려운 오지나 거대 규모의 네트워크 환경입니다. 수많은 기기가 연결되는 '매시브 IoT' 환경에서는 기기마다 배터리를 일일이 교체하는 것이 사실상 불가능하기에 자율적으로 에너지를 관리하는 시스템이 필수적입니다. 또한, 운영 실패율이 높고 예측하기 어려운 에너지 소모가 발생하는 초소형 큐브 위성 분야에서도 에너지 드리븐 기술은 미션 성패를 가르는 핵심적인 역할을 수행합니다. 더불어 온디바이스 AI 환경에서는 희소 자원을 효율적으로 관리하여 통신 의존도를 낮추고 프라이버시 문제를 해결하며 기기 자체적으로 안정적인 학습과 추론을 수행할 수 있게 합니다. 에너지 드리븐 컴퓨팅의 중추적인 소프트웨어 기술은 '인터미턴트 컴퓨팅(Intermittent Computing)'이라 불리는 간헐적 연산 제어 기술입니다. 이 기술은 전원이 끊겼을 때 연산이 처음으로 되돌아가 무한히 반복되는 초기화 현상인 '스태그네이션'을 방지하는 진행 보장성을 목표로 합니다. 또한, 비휘발성 메모리를 메인 메모리로 사용할 때 발생하는 데이터 불일치 문제를 해결하여 메모리 일관성을 유지하며, 특정 미션을 정해진 시간 내에 처리해야 하는 수행 적시성을 확보합니다. 이를 통해 시스템은 가용 에너지가 축적될 때마다 작업을 이어가며 전력 환경이 열악한 상황에서도 소프트웨어의 신뢰성과 완결성을 보장하게 됩니다. 안정적인 시스템 구축을 위해 하드웨어와 소프트웨어를 유기적으로 결합한 통합 플랫폼 연구가 활발히 진행되고 있습니다. 전원 상태를 실시간으로 인지하고 에너지를 최적화하여 관리하는 초소형 운영체제(OS)와 이를 지원하는 전용 컴파일러가 전체적인 시스템 소프트웨어의 골격을 형성합니다. 여기에 더해 물리적인 하드웨어가 준비되지 않은 상황에서도 응용 소프트웨어의 기능을 검증할 수 있는 시뮬레이션 도구와 에너지 소모량을 정밀하게 예측하는 에너지 프로파일러, 그리고 실행 오류를 검출하는 런타임 디버깅 도구가 패키지로 구성됩니다. 이러한 환경은 개발자가 다양한 전력 변화 시나리오를 미리 시험하고 대비할 수 있도록 돕는 중요한 역할을 합니다. 한국전자통신연구원(ETRI)은 국내외 연구진 및 전문 기업들과 협력하여 이 핵심 기술들을 오픈소스로 공개하는 전략을 추진하고 있습니다. 하드웨어와 소프트웨어 설계도를 투명하게 공개하여 전 세계 개발자들이 참여하는 자생적인 기술 생태계를 구축하고, 이를 통해 기술의 완성도를 상용 수준으로 끌어올리는 것이 최종 목표입니다. 연구 초기에는 내부 협업을 통해 품질을 검증하고, 이후 실제 적용 사례와 통합 프레임워크를 순차적으로 공개하여 극한 환경에서의 컴퓨팅 난제를 해결해 나갈 것입니다. 이러한 노력은 미래 산업의 기술적 주도권을 확보하고 다양한 도메인에서 에너지 제약을 극복하는 혁신적인 계기가 될 전망입니다.

EOST2021 전원 불안정 감내 자율적 에너지기반 컴퓨팅 시스템SW 원천기술
한국전자통신연구원오픈소스 테크데이
  • 융합
  • 공학·기술

BeeAI 공모전 교육 영상(08) - 딥러닝 모델 학습(108~121p)

PySpark ML에 이어 TensorFlow를 이용한 딥러닝 모델 학습 과정으로 논의를 확장합니다. BeeAI 플랫폼은 TensorFlow 학습 코드를 외부 엔진과 연동하여 효율적인 모델 생성을 지원하는 강력한 기능을 제공합니다. 사용자는 분류나 회귀와 같은 기존 모델을 활용하거나 직접 작성한 학습 코드를 실행하여 최적의 정확도를 가진 모델을 도출할 수 있습니다. 이를 위해서는 먼저 전용 사이트에 접속하여 회원 가입을 진행하고, 클라우드 저장소와 연동할 수 있는 계정 정보를 확보하여 멤버 권한을 부여받는 과정이 선행되어야 원활한 실습과 개발이 가능합니다. BeeAI 플랫폼과 TensorFlow 학습 코드를 성공적으로 연동하기 위해서는 약속된 변수와 가이드라인을 엄격히 준수해야 합니다. 플랫폼은 학습 코드로 데이터셋 경로, 체크포인트 저장 위치, 모델 버전, 그리고 최종 서빙 모델이 저장될 디렉터리 정보를 플래그 형태로 전달하기 때문입니다. 학습 코드는 단순히 체크포인트를 생성하는 것에 그치지 않고, 시스템이 즉시 활용할 수 있는 서빙용 익스포트 상태까지 구현되어야 완벽한 연동으로 간주합니다. 이러한 파라미터 전달 체계는 모델 학습의 자동화와 관리 효율성을 극대화하는 핵심 요소가 됩니다. 실무적인 학습을 위해서는 External Engine 환경에서 TensorFlow Training Controller와 TensorFlow Runner를 조합하여 사용합니다. Runner는 실제 Python 학습 코드가 위치한 경로를 지정하며, Controller는 학습 전반의 오퍼레이션을 제어하는 역할을 수행합니다. 사용자는 웹 UI를 통해 에포크나 배치 사이즈 같은 하이퍼파라미터를 자유롭게 설정할 수 있으며, 이 값들은 실행 시점에 학습 코드로 실시간 전달됩니다. 학습 코드는 로컬 환경에서 미리 검증한 뒤 플랫폼에 탑재하여 대규모 데이터 처리에 활용하는 방식이 권장됩니다. 학습 과정에서 생성되는 체크포인트 파일은 모델의 상태를 보존하고 연속적인 학습을 가능하게 하는 중요한 자산입니다. 여기에는 모델의 최신 상태를 담은 프로토콜 버퍼 파일부터 그래프 구조를 재구성하기 위한 메타 정보, 그리고 가중치와 바이어스 값이 저장되는 데이터 파일 등이 포함됩니다. 학습 코드 내에 기존 체크포인트가 존재할 경우 이를 복구하는 로직을 포함하면, 처음부터 다시 학습하지 않고 이전 상태에서 이어서 모델을 고도화할 수 있습니다. 이는 연산 자원을 절약하고 모델의 성능을 지속적으로 개선하는 데 필수적인 절차입니다. 학습이 완료된 모델을 실제 서비스에 투입하기 위해서는 TensorFlow Serving 기반의 'SavedModel' 형태로 변환하는 익스포트 과정이 필요합니다. SavedModel은 추론을 위한 모델의 스냅샷으로, 입력과 출력 텐서를 정의하는 시그니처 정보를 포함하고 있습니다. 이 시그니처 정의를 바탕으로 추후 REST API URL이 생성되며, 이를 통해 외부 시스템이 모델에 예측 질의를 보낼 수 있게 됩니다. 따라서 익스포트 함수를 통해 그래프 정의와 파라미터 변수들을 체계적으로 저장하는 것은 안정적인 서빙 인프라를 구축하기 위한 가장 핵심적인 단계라고 할 수 있습니다. 대규모 딥러닝 모델의 효율적인 연산을 위해 GPU 디바이스를 지정하는 설정 또한 간과할 수 없습니다. 학습 코드 내에서 특정 GPU 번호를 지정하고 이를 세션 설정에 반영함으로써, 시스템 하드웨어 자원을 최적으로 활용할 수 있습니다. 여러 대의 GPU가 있는 서버 환경에서는 가용 자원을 적절히 배분하여 병렬 학습을 수행하거나 특정 작업에 전용 장치를 할당하는 것이 가능합니다. BeeAI 환경에서는 이러한 하드웨어 가속 설정을 통해 CPU 대비 월등히 빠른 속도로 복잡한 연산을 처리하고, 딥러닝 모델의 수렴 속도를 획기적으로 높일 수 있습니다. BeeAI의 차별화된 강점은 주기적인 반복 학습 설정을 통해 모델을 최신 데이터 트렌드에 맞춰 실시간으로 업데이트할 수 있다는 점입니다. 워크플로우 속성에서 실행 주기를 분이나 시간 단위로 설정하면 새로운 데이터가 유입될 때마다 모델 파라미터가 자동으로 갱신됩니다. 예를 들어 교통 속도 예측 모델의 경우, 유입되는 최신 데이터를 반영해 지속적으로 재학습함으로써 변화하는 도로 상황에 기민하게 대응하게 됩니다. 이렇게 생성된 최신 모델은 서빙 오퍼레이터에 의해 즉시 로딩되어 사용자에게 항상 높은 수준의 예측 정확도를 보장하게 됩니다.

BeeAI 공모전 교육 영상(08) - 딥러닝 모델 학습(108~121p)
한국전자통신연구원
  • 융합
  • 공학·기술

BeeAI 활용 교육 영상(04) - [2단계] 스트림 데이터 처리하기(이론)

현대 데이터 처리 환경에서 실시간성은 서비스의 가치를 결정짓는 핵심 요소로 자리 잡았습니다. 아파치 스파크(Apache Spark)는 이러한 요구에 부응하기 위해 스파크 스트리밍(Spark Streaming)에 이어 구조적 스트리밍(Structured Streaming)을 선보였습니다. 기존의 방식이 데이터를 마이크로 배치(Micro-batch) 단위로 쪼개어 처리하는 데 집중했다면, 구조적 스트리밍은 센서 데이터와 같은 실시간 정보를 보다 안정적으로 다루기 위해 설계되었습니다. 이는 단순히 속도의 문제를 넘어 운영 단계에서 데이터의 신뢰성을 확보하고 복합적인 연산을 효율적으로 수행하기 위한 기술적 진보라고 할 수 있습니다. 과거의 데이터 처리 방식은 보안 장비나 센서에서 발생한 로그 데이터를 파일이나 데이터베이스에 먼저 저장한 뒤, 이를 다시 불러와 통계를 내는 과정을 거쳤습니다. 하지만 수십 기가바이트에 달하는 방대한 데이터를 데이터베이스(DB)에서 쿼리로 호출하는 방식은 물리적인 시간 소요가 커 실시간 서비스를 구현하는 데 한계가 있었습니다. 이를 극복하기 위해 등장한 스트리밍 처리는 데이터를 디스크에 쓰기 전 메모리 상에서 즉각적으로 연산하는 것을 핵심으로 합니다. 이러한 메모리 기반의 접근 방식은 정제 시간을 획기적으로 단축하여 데이터가 발생하는 즉시 가치를 창출하게 합니다. 구조적 스트리밍의 주요 특징 중 하나는 윈도우(Window)와 워터마크(Watermark)를 통한 데이터 관리입니다. 윈도우 기능은 설정된 시간 동안의 데이터를 메모리에 유지하며 통계 연산을 수행하게 해주며, 워터마크는 네트워크 지연 등으로 늦게 도착하는 센서 데이터를 일정 시간 동안 기다려 주는 역할을 합니다. 이를 통해 데이터 누락이나 순서 뒤섞임 현상을 방지하고 통계의 정확도를 높일 수 있습니다. 또한 체크포인트(Checkpoint) 기능을 활용하면 장비 장애가 발생하더라도 메타데이터를 기반으로 작업을 복구할 수 있어 빅데이터 환경에서의 안정적인 운영을 보장합니다. 구조적 스트리밍은 서비스 시작 전 데이터의 형태인 스키마(Schema)를 엄격하게 정의하는 방식을 취합니다. 스파크 스트리밍이 스키마가 없는 데이터까지 유연하게 받아들여 매번 처리를 시도하는 것과 달리, 구조적 스트리밍은 정의된 포맷에 맞는 데이터만을 선별적으로 수용합니다. 이러한 스키마 중심의 설계는 데이터가 들어올 때마다 발생하는 불필요한 스키마 체크 과정을 생략하게 하여 처리 속도를 비약적으로 향상시킵니다. 결과적으로 로그 파일의 이벤트 발생 시간과 측정값을 구조화된 데이터프레임(DataFrame) 형식으로 즉시 변환하여 후속 분석에 곧바로 활용할 수 있게 됩니다. 스트리밍 처리의 결과물은 비즈니스 목적에 따라 컴플리트(Complete), 어펜드(Append), 업데이트(Update) 세 가지 모드로 출력됩니다. 전체 통계를 매번 갱신해야 하는 작업에는 컴플리트 모드가 적합하며, 데이터 변경이 감지될 때마다 출력하는 업데이트 모드는 실시간 모니터링에 유용합니다. 반면 어펜드 모드는 데이터가 더 이상 변경되지 않는 시점까지 기다렸다가 확정된 결과만을 내보냅니다. 이때 이벤트 시간(Event Time)과 실제 처리 시간의 차이를 정확히 계산하지 않으면 출력 지연이 발생할 수 있으므로, 서비스의 특성에 맞는 적절한 출력 전략과 트리거(Trigger) 설정이 필수적으로 요구됩니다. 체크포인트는 데이터의 정확한 처리를 보장하는 강력한 도구이지만, 실제 테스트 환경에서는 세심한 주의가 필요합니다. 메타데이터가 누적된 상태에서 작업을 재시작하면 번호가 꼬여 데이터 유실이나 중복이 발생할 수 있기 때문입니다. 또한 구조적 스트리밍은 고정된 스키마를 사용하기 때문에 데이터의 행을 열로 바꾸는 피벗(Pivot) 연산이나 복합적인 정규화 과정에서 유연성이 떨어질 수 있습니다. 따라서 전체 데이터를 자유롭게 다루어야 하는 복합 연산의 경우, RDD 방식의 접근이 유리한 기존 스파크 스트리밍이나 다른 분석 도구를 전략적으로 혼합하여 사용하는 지혜가 필요합니다. 결론적으로 스파크 스트리밍과 구조적 스트리밍은 각각의 장단점이 뚜렷한 기술입니다. 구조적 스트리밍은 데이터 수집과 정제 단계에서 높은 안정성과 빠른 속도를 제공하며, 스파크 스트리밍은 로우 레벨의 세밀한 제어와 분석의 유연성을 보장합니다. 실제 에너지 예측 서비스와 같은 프로젝트에서는 앞단에서 데이터를 안정적으로 수용하기 위해 구조적 스트리밍을 사용하고, 뒷단의 정교한 분석 모델링에는 스파크의 다른 기능들을 결합하는 워크플로우를 구성합니다. 기술의 특성을 정확히 이해하고 상황에 맞는 도구를 선택할 때 비로소 진정한 실시간 빅데이터 서비스 구현이 가능해집니다.

BeeAI 활용 교육 영상(04) - [2단계] 스트림 데이터 처리하기(이론)
한국전자통신연구원
  • 공학·기술