AI/LLM

AI와 IoT의 만남: LLM 기반의 복잡한 작업 수행 사례

growdai1y 2025. 1. 18. 01:46

AI(인공지능)와 IoT(Internet of Things: 사물인터넷)는 현대 기술 환경에서 필수적인 두 축입니다. 하지만 이들의 통합은 여러 도전 과제를 동반합니다. "Orchestrating AI and IoT with LLM for Complex Task Execution[각주:1]" 논문은 이러한 도전 과제를 해결하기 위해 대규모 언어 모델(LLM)을 활용하는 방안을 제안하며, 이를 통해 복잡한 작업을 자동화하고 IoT 기기 간의 협력을 효과적으로 조율하는 방법을 제시합니다.
 

LLM으로 IoT 기기 제어
LLM으로 IoT 기기 제어

 

스마트 홈 관리 사례: IoT 디바이스 간의 협력

논문에서는 스마트 홈 관리 시스템을 주요 사례로 제시합니다. 예를 들어, 아래와 같은 상황을 가정합니다:
 
문제 상황:

  • 사용자가 자연어로 다음과 같은 명령을 입력합니다: "저녁 7시에 스마트 조명을 켜고, 온도를 22도로 설정하며, TV에서 뉴스를 틀어줘."

기존 문제:

  • 스마트 조명, 온도 조절기, TV와 같은 IoT 기기는 각각 다른 프로토콜과 데이터 형식을 사용.
  • 사용자의 복합적인 요구를 해석하고 각 기기에 명령을 전달하는 중앙 조율 시스템이 부재.

LLM 기반 솔루션: 자연어를 통한 조율

LLM은 다음과 같은 과정을 통해 문제를 해결합니다:
 
프롬프트 설계:

  • 사용자의 명령을 입력으로 받아들여 IoT 디바이스 간의 상호작용을 설계합니다.
  • 입력 프롬프트에는 FSM 정보가 포함됩니다. FSM은 작업 흐름과 상태 전환 규칙을 정의하여 명령 처리의 순서와 조건을 명확히 합니다.

입력 프롬프트 예시:

User command: "At 7 PM, turn on the smart lights, set the temperature to 22 degrees, and play the news on TV."
Device status: {"lights": "off", "temperature setting": "24 degrees", "TV status": "off"}
FSM definition: {
    "states": ["Initial", "Lights On", "Thermostat Set", "TV Playing"],
    "transitions": [
        {"from": "Initial", "to": "Lights On", "condition": "lights turned on"},
        {"from": "Lights On", "to": "Thermostat Set", "condition": "thermostat set to 22 degrees"},
        {"from": "Thermostat Set", "to": "TV Playing", "condition": "TV playing news channel"}
    ]
}
Generate a set of executable commands based on the above FSM.


 FSM 설계 및 활용:
FSM은 작업의 각 단계를 상태(state)로 정의하고, 작업 간 전환(transition)을 명확히 규정하여 모든 작업이 논리적이고 순차적으로 수행되도록 설계됩니다. FSM 정보는 LLM이 명령을 생성하는 데 중요한 입력으로 사용됩니다.

  • State 정의:
    • Initial State: 모든 IoT 기기가 비활성화된 상태.
    • State 1: 조명이 켜진 상태.
    • State 2: 온도 설정이 완료된 상태.
    • Final State: TV에서 뉴스가 재생 중인 상태.
  • Transition 규정:
    • Transition 1: 조명을 켜는 작업이 성공적으로 완료되면 State 1로 전환.
    • Transition 2: 온도 설정 작업이 완료되면 State 2로 전환.
    • Transition 3: TV 재생 작업이 완료되면 Final State로 전환.

FSM과 LLM의 협력:

  • LLM은 FSM 정의와 현재 상태를 바탕으로 명령 세트를 생성합니다.
  • FSM은 명령 실행 후 상태 전환을 관리하며, 각 상태의 조건이 충족되었는지 평가합니다.

예시 출력:

[ 
  {"device": "lights", "action": "turn on", "time": "19:00", "state": "State 1"},
  {"device": "thermostat", "action": "set to 22 degrees", "time": "19:00", "state": "State 2"},
  {"device": "TV", "action": "play news channel", "time": "19:00", "state": "Final State"}
]

 
IoT 디바이스로의 전달:

  • FSM은 각 상태에서 명령 실행 결과를 평가하며, 성공 시 다음 상태로 전환하고 실패 시 적절한 오류 처리를 수행합니다.

성과 및 평가

이 접근 방식은 다음과 같은 장점을 제공합니다:

  • 효율성: FSM은 작업의 상태를 추적하여 실패 시 재시도 메커니즘을 제공.
  • 확장성: 새로운 IoT 기기가 추가되더라도 기존 FSM 구조를 확장하여 통합 가능.
  • 신뢰성: 상태 기반 접근으로 인해 복잡한 작업의 실패 가능성을 줄임.


한계 및 미래 연구 방향

물론 이 기술에는 몇 가지 한계가 존재합니다:

  • LLM의 프롬프트 의존성: 부정확하거나 모호한 명령 처리.
  • FSM 설계 복잡성: 작업 복잡도가 증가하면 FSM 설계가 점점 더 어려워질 수 있음
  • (FSM를 어떻게 만들어 내는지 논문을 보고 정확하게 이해하기 어려움)

단순한 기능을 가진 기기의 경우 FSM을 생략하고, API Vector DB를 통해 사용자의 프롬프트와 적합한 API를 연결하는 방식을 고려할 수 있습니다. 이 과정에서 LLM은 검색된 API 정보를 활용하여 실시간으로 코드(일반적으로 Python 스크립트)를 생성합니다. 이를 통해 사용자의 요청을 신속히 처리하고, 기기를 효과적으로 제어할 수 있습니다. 이러한 접근은 논문에서 제안한 방법과 비교해 구현이 더 간단하며, 특히 작은 규모의 IoT 환경에 적합할 수 있습니다. 
 

매일 성장하기

 

  1. Orchestrating AI and IoT with LLM for Complex Task Execution: https://arxiv.org/pdf/2312.09007 [본문으로]
반응형