맨위로가기

SHRDLU

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

SHRDLU는 사용자가 영어 명령어를 통해 블록, 원뿔, 구 등 다양한 객체가 있는 가상 환경에서 상호 작용할 수 있도록 설계된 초기 자연어 처리 프로그램이다. 50개 정도의 단어로 단순화된 세계를 구축하여 문맥을 이해하고, 객체 간의 관계를 추론하며, 객체에 이름을 부여하는 기능을 갖추었다. SHRDLU는 인공지능 연구에 영향을 미쳤지만, 현실 세계의 복잡성을 제대로 다루지 못한다는 한계가 지적되었으며, 인터랙티브 픽션의 초기 형태로 간주되기도 한다.

더 읽어볼만한 페이지

  • 인공지능의 역사 - AI 겨울
    AI 겨울은 인공지능 연구에 대한 자금 지원과 관심이 크게 감소했던 시기를 가리키며, 기계 번역의 어려움, 신경망의 한계, 전문가 시스템 문제, 5세대 컴퓨터 실패 등의 요인으로 여러 차례 침체기를 겪었으나, 2000년대 이후 음성 및 이미지 인식 분야에서 성과를 거두며 부흥했고, 2022년 이후 대규모 언어 모델 등장으로 관심과 투자가 폭발적으로 증가했다.
  • 인공지능의 역사 - 튜링 테스트
    튜링 테스트는 앨런 튜링이 제안한 기준으로, 기계가 인간과 구별할 수 없을 정도로 행동하는지 판별하며, 뢰브너 상 등을 통해 실현 가능성과 한계에 대한 논쟁이 지속되고 있고, 유진 구스트만, LaMDA, ChatGPT 등이 테스트 통과 또는 자의식 논란을 일으키고 있다.
  • 자연어 처리 소프트웨어 - 구글 어시스턴트
    구글 어시스턴트는 2016년 구글에서 개발한 인공지능 음성 비서 서비스로, 양방향 대화 지원, 다양한 기기 및 플랫폼 확장성, 인터넷 검색, 일정 관리, 홈 오토메이션 제어 등의 기능을 제공하지만 개인정보 보호 문제에 대한 비판도 존재한다.
  • 자연어 처리 소프트웨어 - 마이크로소프트 번역기
    마이크로소프트 번역기는 클라우드 기반 기계 번역 서비스로, 신경망 기계 번역을 기반으로 100개 이상의 언어 간 실시간 번역, 텍스트/음성 번역, 사용자 지정 번역 시스템 구축, 실시간 대화 번역 기능 및 다양한 마이크로소프트 제품과의 통합을 제공하며, 사용자 피드백 기반 협업 번역과 Microsoft Translator Hub를 통해 번역 품질 개선 및 소멸 위기 언어 보존에 기여한다.
SHRDLU - [IT 관련 정보]에 관한 문서
기본 정보
SHRDLU 데모 스크린샷
SHRDLU 데모 스크린샷
종류자연어 이해 컴퓨터 프로그램
개발자테리 위노그라드
발표 연도1968년
중단 여부
프로그래밍 언어마이크로 플래너, 리스프
운영 체제PDP-6
플랫폼DEC
장르자연어 이해

2. 기능

SHRDLU는 사용자가 영어로 상호작용할 수 있게 해주는 언어 파서(parser)를 주로 사용했다. 사용자는 SHRDLU에게 블록, 원뿔, 공과 같은 다양한 기본 객체가 포함된 "블록 세계"에서 다양한 물체를 움직이도록 지시할 수 있었다. SHRDLU를 독특하게 만든 것은 "이해"의 시뮬레이션을 훨씬 더 설득력 있게 만드는 네 가지 간단한 아이디어를 결합했다는 점이다.[2]

SHRDLU는 기본적인 메모리가 있어, 사용자가 이전에 했던 지시나 질문을 기억하고, 이를 바탕으로 다음에 어떤 행동을 해야 할지 추론했다. 예를 들어, "녹색 원뿔을 빨간 블록 위에 놓으세요"라고 한 다음, "원뿔을 가져가세요"라고 하면, SHRDLU는 이전에 언급된 녹색 원뿔을 가리키는 것으로 이해했다.[2] 또한, 과거의 행동에 대한 질문에도 답할 수 있었다. "원뿔을 집어 들기 전에 무언가를 집어 들었나요?"와 같은 질문에 대해, SHRDLU는 과거 상호작용 기록을 바탕으로 답변했다.[2]

이러한 기능들을 바탕으로 SHRDLU는 블록 세계 내에서 가능한 것과 불가능한 것을 스스로 추론할 수 있었다. 예를 들어, 블록을 쌓을 수 있다는 것은 경험을 통해 알 수 있지만, 삼각 기둥은 쌓을 수 없다는 것은 직접 시도해 본 후에야 파악했다.[2]

다음은 SHRDLU의 시연 예시이다.[2]

> :사용자: 크고 빨간 블록을 집어 드세요.

> :컴퓨터: 확인.

> :사용자: 피라미드를 잡으세요.

> :컴퓨터: 어떤 피라미드를 말씀하시는지 모르겠습니다.

> :사용자 (마음을 바꾸며): 당신이 들고 있는 것보다 더 큰 블록을 찾아서 상자에 넣으세요.

> :컴퓨터: "그것"은 제가 들고 있는 것보다 더 큰 블록을 의미하는 것으로 봅니다.

> :컴퓨터: 확인.

> :사용자: 상자에는 무엇이 들어 있나요?

> :컴퓨터: 파란색 피라미드와 파란색 블록입니다.

> :사용자: 피라미드는 무엇에 의해 지지되나요?

> :컴퓨터: 상자입니다.

> :사용자: 상자에 없는 블록은 몇 개입니까?

> :컴퓨터: 4개입니다.

> :사용자: 그 중 하나라도 제가 당신에게 집어 달라고 한 것보다 좁나요?

> :컴퓨터: 네, 빨간 큐브입니다.

> :사용자: 지지되나요?

> :컴퓨터: 네, 테이블에 의해 지지됩니다.

> :사용자: 테이블이 블록을 집어 올릴 수 있나요?

> :컴퓨터: 아니요.

> :사용자: 피라미드가 블록에 의해 지지될 수 있나요?

> :컴퓨터: 네.

> :사용자: 피라미드가 피라미드를 지지할 수 있나요?

> :컴퓨터: 모르겠습니다.

> :사용자: 피라미드 2개를 쌓으세요.

> :컴퓨터: 할 수 없습니다.

> :사용자: 빨간색 블록 2개와 녹색 큐브나 피라미드를 쌓아주시겠어요?

> :컴퓨터: 확인.

> :사용자: 어떤 큐브가 테이블 위에 있나요?

> :컴퓨터: 빨간색 피라미드를 지지하는 큰 녹색 큐브입니다.

> :사용자: 피라미드 뒤에 큰 블록이 있나요?

> :컴퓨터: 네, 세 개가 있습니다: 큰 빨간색 블록, 큰 녹색 큐브, 파란색 블록입니다.

> :사용자: 작은 것을 피라미드를 지지하는 녹색 큐브 위에 올려 놓으세요.

> :컴퓨터: 확인.

> :사용자: 가장 작은 피라미드를 그 위에 올려 놓으세요.

> :컴퓨터: 확인.

> :사용자: 가장 키가 큰 피라미드의 지지대가 지지하는 가장 짧은 물건이 녹색을 지지하나요?

> :컴퓨터: 네, 녹색 피라미드입니다.

> :사용자: 무슨 색인가요?

> :컴퓨터: "그것"은 가장 키가 큰 피라미드의 지지대가 지지하는 가장 짧은 물건을 의미한다고 생각합니다.

> :컴퓨터: 빨간색

> :사용자: 녹색 큐브 위에 있는 것은 몇 개입니까?

> :컴퓨터: "녹색 큐브 위"라는 구문에서 "위에"가 무슨 뜻인지 잘 모르겠습니다.

> 뜻은 다음과 같습니다.

> :

> :1 - 표면 바로 위

> :2 - 어디든 위에?

> :

> :사용자: 2

> :컴퓨터: 세 개입니다.

> :사용자: 녹색 큐브를 작은 큐브 위에 올려 놓기 전에 피라미드에 손을 댄 적이 있나요?

> :컴퓨터: 네, 녹색 피라미드입니다.

> :사용자: 언제 집어 들었나요?

> :컴퓨터: 빨간색 큐브, 큰 빨간색 블록, 큰 녹색 큐브를 쌓는 동안입니다.

> :사용자: 왜요?

> :컴퓨터: 그것을 없애기 위해서입니다.

> :사용자: 왜 그랬나요?

> :컴퓨터: 빨간색 큐브를 치우기 위해서입니다.

> :사용자: 왜 그 큐브를 치웠나요?

> :컴퓨터: 큰 녹색 큐브 위에 놓기 위해서입니다.

> :사용자: 왜 그랬나요?

> :컴퓨터: 빨간색 큐브, 큰 빨간색 블록, 큰 녹색 큐브를 쌓기 위해서입니다.

> :사용자: 왜 그랬나요?

> :컴퓨터: 당신이 그렇게 해달라고 부탁했기 때문입니다.

> :사용자: 어떻게 했나요?

> :컴퓨터: 큰 빨간색 블록을 테이블 위에 올려놓은 다음, 놓아두고, 그 위에 큰 녹색 큐브를 올려놓은 다음, 그 큐브를 놓아두고, 그 큐브 위에 빨간색 큐브를 올려놓은 다음, 그 큐브를 놓아두는 방식으로 말입니다.

> :사용자: 그렇게 하는 동안 몇 개의 물건에 손을 댔나요?

> :컴퓨터: 4개입니다.

> :사용자: 빨간색 큐브를 치우기 전에 무엇을 지지했나요?

> :컴퓨터: 녹색 피라미드입니다.

> :사용자: 그 당시에는 상자 왼쪽에 블록이 5개 있었습니다.

> :컴퓨터: 아니요, 4개뿐입니다: 빨간색 큐브, 큰 녹색 큐브 2개, 큰 빨간색 블록입니다.

> :사용자: 파란색 피라미드를 상자 안의 블록 위에 올려 놓으세요.

> :컴퓨터: 확인.

> :사용자: 모든 피라미드보다 크지만 그것을 지지하는 것만큼 넓지 않은 것이 있나요?

> :컴퓨터: 네, 파란색 블록입니다.

> :사용자: 첨탑이 있나요?

> :컴퓨터 (중단하며): 죄송합니다. "첨탑"이라는 단어를 모릅니다.

> :사용자: "첨탑"은 녹색 큐브 2개와 피라미드가 포함된 스택입니다.

> :컴퓨터: 알겠습니다.

> :사용자: 지금 첨탑이 있나요?

> :컴퓨터: 아니요.

> :사용자: 하나 만드세요.

> :컴퓨터: 확인.

> :사용자: 가장 큰 블록을 "슈퍼블록"이라고 부르세요.

> :컴퓨터: 확인.

> :사용자: 시작한 이후 슈퍼블록을 집어 들었나요?

> :컴퓨터: 네.

> :사용자: 왜 떨어뜨렸나요?

> :컴퓨터: "그것"은 슈퍼블록을 의미한다고 생각합니다.

> 존재하지 않는 사건을 설명할 수 없습니다.

> :사용자: 빨간색 피라미드 오른쪽에 있는 것이 있나요?

> :컴퓨터: 네, 네 가지가 있습니다: 상자, 빨간색 큐브, 파란색 피라미드, 슈퍼블록이라는 블록입니다.

> :사용자: 감사합니다.

> :컴퓨터: 천만에요!

>

2. 1. 단순한 세계

SHRDLU의 세계는 매우 단순해서, "블록", "원뿔"과 같은 명사, "놓다", "이동하다"와 같은 동사, "크다", "파란색"과 같은 형용사 등 약 50개의 단어만으로도 모든 객체와 위치를 설명할 수 있다. 이러한 기본 단어들의 조합은 매우 단순하여, 프로그램이 사용자의 의도를 파악하는 데 상당히 능숙하다.[2]

SHRDLU는 기본적인 메모리를 가지고 있어 문맥을 파악한다. 예를 들어, 사용자가 "녹색 원뿔을 빨간 블록 위에 놓으세요"라고 한 다음 "원뿔을 가져가세요"라고 하면, "원뿔"은 방금 언급된 녹색 원뿔을 의미하는 것으로 이해된다. 추가적인 형용사가 주어지면, SHRDLU는 상호작용을 거슬러 올라가 적절한 문맥을 찾을 수 있다. 또한, "원뿔을 집어 들기 전에 무언가를 집어 들었나요?"와 같이 과거에 대한 질문도 가능하다.[2]

이러한 메모리와 SHRDLU에 주어진 규칙 덕분에, 프로그램은 세계에서 가능한 일과 불가능한 일에 대한 질문에 답할 수 있다. 예를 들어, SHRDLU는 블록을 쌓을 수 있다는 것을 추론할 수 있지만, 삼각 기둥은 쌓을 수 없다는 것을 시도해 보고 나서야 깨닫는다. SHRDLU의 "세계"에는 언어 파서와는 별개로 블록이 넘어지게 만드는 기본적인 물리가 포함되어 있다.[2]

마지막으로, SHRDLU는 객체나 객체 배열에 주어진 이름을 기억할 수 있다. 예를 들어, "첨탑은 키가 큰 직사각형 위에 있는 작은 삼각 기둥"이라고 정의하면, SHRDLU는 블록 세계의 첨탑에 대한 질문에 답하고 새로운 첨탑을 만들 수 있다.[2]

2. 2. 문맥 기억

SHRDLU는 사용자가 영어로 명령을 내릴 수 있도록 하는 언어 파서를 갖추고 있었다. 사용자는 SHRDLU에게 블록, 원뿔, 공과 같은 다양한 물체가 있는 "블록 세계"에서 물체를 움직이도록 지시할 수 있었다. SHRDLU가 특별한 이유는 "이해"를 시뮬레이션하여 설득력을 높이는 네 가지 아이디어를 결합했기 때문이다.

SHRDLU의 세계는 매우 단순해서 명사(예: "블록", "원뿔"), 동사(예: "놓다", "이동하다"), 형용사(예: "크다", "파란색") 등 약 50개의 단어로 전체 객체와 위치를 설명할 수 있었다. 이러한 기본 단어들의 조합은 매우 단순했고, 프로그램은 사용자의 의도를 파악하는 데 능숙했다.

SHRDLU는 문맥을 위한 기본적인 메모리를 포함했다. 사용자는 "녹색 원뿔을 빨간 블록 위에 놓으세요"라고 요청한 다음 "원뿔을 가져가세요"라고 말할 수 있었다. 그러면 "원뿔"은 방금 언급된 녹색 원뿔을 의미하는 것으로 간주되었다. SHRDLU는 추가 형용사가 주어지면 상호 작용을 통해 적절한 문맥을 찾을 수 있었다. 또한 "원뿔을 집어 들기 전에 무언가를 집어 들었나요?"와 같이 과거에 대한 질문도 가능했다.

이 메모리의 부작용과 SHRDLU에 제공된 규칙은 프로그램이 세계에서 가능한 일과 불가능한 일에 대한 질문에 답할 수 있게 했다. 예를 들어 SHRDLU는 블록을 쌓을 수 있다고 추론할 수 있지만, 삼각 기둥은 쌓을 수 없다는 것을 시도 후에 깨달을 수 있었다. "세계"에는 언어 파서와 별개로 블록이 넘어지는 기본적인 물리가 포함되어 있었다.

마지막으로, SHRDLU는 객체나 객체 배열에 주어진 이름을 기억할 수 있었다. 예를 들어 "첨탑은 키가 큰 직사각형 위에 있는 작은 삼각 기둥"이라고 정의하면, SHRDLU는 블록 세계의 첨탑에 대한 질문에 답하고 새로운 첨탑을 만들 수 있었다.[2]

2. 3. 추론 능력

SHRDLU는 메모리 기능을 통해 사용자의 이전 지시나 질문을 기억하고, 이를 바탕으로 추론을 수행한다. 예를 들어, 사용자가 "녹색 원뿔을 빨간 블록 위에 놓으세요"라고 말한 후, "원뿔을 가져가세요"라고 말하면, SHRDLU는 이전에 언급된 녹색 원뿔을 가리키는 것으로 이해한다.[2] 또한, 과거의 행동에 대한 질문에도 답할 수 있는데, "원뿔을 집어 들기 전에 무언가를 집어 들었나요?"와 같은 질문에 대해 SHRDLU는 과거 상호작용 기록을 바탕으로 답변한다.[2]

SHRDLU는 블록 세계 내에서 가능한 것과 불가능한 것을 추론할 수 있다. 예를 들어, 블록을 쌓을 수 있다는 것은 경험을 통해 알 수 있지만, 삼각 기둥은 쌓을 수 없다는 것은 직접 시도해 본 후에야 파악한다.[2] 이는 SHRDLU가 단순한 명령어 처리뿐만 아니라, 제한적인 수준의 물리 법칙을 이해하고 적용할 수 있음을 보여준다.

SHRDLU는 사용자가 정의한 새로운 단어나 개념을 기억하고, 이를 추론에 활용할 수 있다. 예를 들어, 사용자가 "첨탑은 키가 큰 직사각형 위에 있는 작은 삼각 기둥"이라고 정의하면, SHRDLU는 이후 "첨탑"에 대한 질문에 답하거나 새로운 첨탑을 만들 수 있다.[2]

2. 4. 이름 기억

SHRDLU는 객체나 객체 배열에 주어진 이름을 기억할 수 있었다. 예를 들어 사용자가 "첨탑은 키가 큰 직사각형 위에 있는 작은 삼각 기둥"이라고 정의하면, SHRDLU는 블록 세계에서 첨탑에 대한 질문에 답하고 새로운 첨탑을 만들 수 있었다.[2]

3. 결과 및 영향

SHRDLU는 인공 지능(AI)의 훌륭한 성공 사례로 여겨졌다. 이는 다른 AI 연구자들에게 과도한 낙관주의를 불러일으켰지만, 이후 현실 세계의 모호함과 복잡성을 다루는 시스템 개발이 시도되면서 이러한 낙관론은 곧 사라졌다.[3]

SHRDLU 이후의 노력들은 주로 프로그램에 더 많은 정보를 제공하여 결론을 도출할 수 있도록 하는 데 초점을 맞추었으며, Cyc와 같은 프로젝트로 이어졌다.

테리 위노그래드는 1991년 인터뷰에서 SHRDLU 시연이 신중하게 처리되었으며, 실제 사용 가능한 수준은 아니었다고 말했다. 그는 AI 연구에서 "데모 아니면 죽음"이라는 압력이 "포템킨 마을"과 같은 현상을 초래했다고 지적했다.[3]

3. 1. 인터랙티브 픽션

SHRDLU는 의도적으로 개발된 것은 아니지만, 사용자가 가상 환경에서 객체를 이동하기 위해 간단한 명령과 상호 작용한다는 점에서 최초의 알려진 공식적인 인터랙티브 픽션의 예로 여겨진다. 다만, 인터랙티브 픽션 장르에서 일반적으로 나타나는 뚜렷한 스토리텔링은 부족하다. 1976-1977년 게임 ''콜로설 케이브 어드벤처''는 광범위하게 최초의 진정한 인터랙티브 픽션 작품으로 간주된다.[4]

4. 한계 및 비판

SHRDLU는 AI의 훌륭한 성공 사례였지만, 다른 AI 연구자들에게 과도한 낙관주의를 불러일으켰다. 그러나 이후 개발된 시스템이 현실 세계의 모호함과 복잡성을 갖춘 보다 현실적인 상황을 다루려고 했을 때, 이러한 낙관주의는 곧 무너졌다.[1]

원래 SHRDLU의 흐름에서는, 주로 결론을 도출할 수 있는 정보를 프로그램에 제공하는 데 초점을 맞춘 노력이 지속되었으며, Cyc와 같은 노력으로 이어졌다.[1]

4. 1. 제한된 영역

SHRDLU는 AI의 훌륭한 성공 사례였지만, 다른 AI 연구자들에게 과도한 낙관주의를 불러일으켰다. 이후 개발된 시스템이 현실 세계의 모호함과 복잡성을 갖춘 보다 현실적인 상황을 다루려고 했을 때, 이러한 낙관주의는 곧 무너졌다.[1]

원래 SHRDLU의 흐름에서는, 주로, 그것으로부터 결론을 이끌어낼 수 있는 정보를 프로그램에 제공하는 데 초점을 맞춘 노력이 지속되었으며, Cyc와 같은 노력으로 이어지고 있다.[1]

4. 2. 확장성 문제

SHRDLU는 AI의 훌륭한 성공 사례였지만, 다른 AI 연구자들에게 과도한 낙관주의를 불러일으켰다. 그러나 이후 개발된 시스템이 현실 세계의 모호함과 복잡성을 갖춘 보다 현실적인 상황을 다루려고 했을 때, 이러한 낙관주의는 곧 무너졌다.[1]

원래 SHRDLU의 흐름에서는 주로 결론을 도출할 수 있는 정보를 프로그램에 제공하는 데 초점을 맞춘 노력이 지속되었으며, 이는 Cyc와 같은 노력으로 이어졌다.[1]

참조

[1] 논문 Procedures as a Representation for Data in a Computer Program for Understanding Natural Language https://dspace.mit.e[...] 1971-01-01
[2] 웹사이트 SHRDLU http://hci.stanford.[...]
[3] 웹사이트 Oral history interview with Terry Allen Winograd https://conservancy.[...] Charles Babbage Institute 1991-12-11
[4] 서적 Twisty Little Passages: An Approach To Interactive Fiction https://books.google[...] Cambridge: The MIT Press
[5] 논문 Procedures as a Representation for Data in a Computer Program for Understanding Natural Language https://dspace.mit.e[...] 1971-01-01



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com