생각의 뼈대(Skeleton-of-Thought): 새로운 프롬프트 엔지니어링 기법 탐색

Prompt Engineering Embraces New Technique Called Skeleton-Of-Thought As Bonus On Chain-Of-Thought Reasoning For Generative AI

Skeleton-of-Thought: Improving Efficiency and Answer Quality in Large Language Models

“때로는 적게 하는 것이 더 많은 효과를 가져올 때가 있다”라는 말이 있습니다.

또한, “때로는 펌프를 사전에 작동시켜야 한다”는 속담도 자주 들어볼 수 있습니다.

우리는 이러한 중요한 조언들을 사용할 예정이니 꼭 기억해두시길 바랍니다.

오늘의 칼럼에서는 프롬프트 엔지니어링의 최신 동향에 대한 연재를 계속 이어가고자 합니다. 이번 주제는 단순하면서도 놀라운 효과를 가진 ‘스켈레톤-오브-쓰로트(SoT, skeleton-of-thought)’에 관한 것입니다. 이것은 대단히 인기 있는 ‘체인-오브-쓰로트(CoT,chain-of-thought)’ 프롬프팅 기법을 기반으로 한 창조적인 변형입니다. 이 방법이 무엇인지 그리고 왜 프롬프트 엔지니어링 전략에 중요한 방법인지 설명해 드리겠습니다.

SoT 사용은 생성 AI 결과를 크게 향상시킬 수 있습니다. 그러나 이것은 전문적인 기술이므로 언제, 어디서 사용해야 할지를 정확히 알고 있어야 합니다.

간단한 배경을 설명하자면, SoT는 생성 AI가 질문에 답하거나 문제를 해결할 때 자체적으로 추정하는 논리를 단계별로 보여주기 위해 자주 사용되는 매우 인기 있는 CoT 방식을 기반으로 합니다. 생성 AI에게 단계별로 무엇을 하고 있는지 설명하도록 지시하기만 하면 됩니다. 이는 간단하게 요청할 수 있습니다. 왜 이렇게 해야 하는지요? 놀랍게도, 연구 결과에 따르면 이는 단순히 여러분이 AI의 상세한 설명을 볼 수 있는 것뿐만 아니라 생성 AI가 더욱 신뢰성 있는 정확한 답변을 제공하는 경향이 있다고 합니다.


Chain-of-thought (CoT)“는 일반적으로 문제 해결, 추론, 논리 흐름을 추적하거나 설명하는 데 사용되는 접근법을 설명하는 용어입니다. “체인-오브-쓰로트”는 여러 단계나 과정을 거쳐 결론에 도달하는 방식을 가리킵니다.

생성형 AI나 다른 복잡한 시스템에서 CoT 접근법을 사용하면, 해당 시스템은 단순히 결과만을 제공하는 것이 아니라 해당 결과에 도달하기 위해 거쳤던 논리적 단계나 고려 사항들을 순차적으로 설명하게 됩니다.

예를 들어, AI가 어떤 문제에 대한 답변을 제공할 때, CoT 접근법을 사용하면 AI는 그 답변에 도달하기 위한 논리 흐름이나 고려된 정보들을 단계별로 사용자에게 제공하게 됩니다. 이렇게 하면 사용자는 AI의 결정 과정을 더 잘 이해하고 신뢰할 수 있게 됩니다.

이 접근법은 특히 AI의 의사 결정 과정을 투명하게 만들고자 할 때 유용합니다. 사용자는 AI가 특정 결론에 도달한 이유를 명확히 알 수 있으므로, 이러한 접근법은 AI의 결정에 대한 신뢰도를 높이는 데 도움을 줄 수 있습니다.


프롬프트 엔지니어링은 생성형 AI의 기초입니다.

간단한 배경 설명을 하자면, 프롬프트 엔지니어링 또는 프롬프트 디자인이라고도 불리는 이 분야는 빠르게 발전하고 있으며 생성형 AI를 효과적이고 효율적으로 사용하는 데에 필수적입니다. OpenAI가 제작한 널리 알려져 있고 대단히 인기 있는 ChatGPT나 GPT-4 (OpenAI), Bard (Google), Claude 2 (Anthropic) 같은 AI를 사용하는 사람들은 실용적이고 현실적인 프롬프트를 만들기 위한 최신 혁신에 주의를 기울여야 합니다.

프롬프트 엔지니어링 또는 프롬프트 디자인에 관심 있는 분들을 위해, 이 확장되고 발전하는 분야의 최신 동향에 대한 깊이 있는 연구를 연재로 진행하고 있습니다, 이 중에서도 다음의 내용을 포함하고 있습니다:

  • (1) Practical use of imperfect prompts toward devising superb prompts (see the link here).
  • (2) Use of persistent context or custom instructions for prompt priming (see the link here).
  • (3) Leveraging multi-personas in generative AI via shrewd prompting (see the link here).
  • (4) Advent of using prompts to invoke chain-of-thought reasoning (see the link here).
  • (5) Use of prompt engineering for domain savviness via in-model learning and vector databases (see the link here).
  • (6) Augmenting the use of chain-of-thought by leveraging factored decomposition (see the link here).
  • (7) Additional coverage including the use of macros and the astute use of end-goal planning when using generative AI (see the link here).

When Outlines Rule The World

스켈레톤-오브-쓰로트 방법론은 주어진 주제나 현재 해결되지 않은 문제에 대한 개요를 작성하라는 권유와 동일한 전제에 기반하고 있습니다. 이 경우의 ‘스켈레톤’은 단순히 개요를 의미하는 또 다른 표현입니다. 스켈레톤이나 개요는 실질적인 안내서나 지도입니다. 이것은 나무를 보기 위한 명백한 숲입니다.

우리는 일상생활의 모든 면에서 개요나 스켈레톤을 풍부하게 사용합니다.

상상해보십시오. 직장에서 최근의 활동과 성과에 대한 메모를 준비하라는 요청을 받았다고 가정합니다. 빈 종이 (또는 더 그럴 듯하게 빈 온라인 문서)에서 시작합니다. 당신이 해온 멋진 일들을 모두 자세히 설명하는 단어들을 적기 위해 성급하게 시작하시겠습니까? 그렇게 할 수도 있지만, 반면에 때로는 개요나 스켈레톤을 먼저 만드는 것이 더 나은 방법일 수 있습니다.

왜 개요나 스켈레톤을 사용해야 할까요?

개요나 스켈레톤을 먼저 작성하는 데의 장점은 바로 당신이 말하고자 하는 핵심적인 내용을 스케치해볼 수 있다는 것입니다. 이를 통해 흩어져 있는 생각들을 일관된 구조로 정리할 수 있게 될 것입니다. 만약 당신이 성급하게 막연한 말을 시작하거나 무작정 머리에서 떠오르는 대로 적기 시작한다면, 에세이나 이야기가 어설프게, 혼란스럽게, 불분명하게 될 확률이 높습니다.

그렇다면, 완벽하게 긴 에세이를 마치 맑고 투명한 물이 흐르듯이 길게 써내려가는 사람들이 실제로 있다고 상상해 볼 수 있습니다. 그런 사람들에게는 축하의 말을 전합니다. 또한, 에세이나 이야기가 상대적으로 짧고 간결하다면, 머릿속에서 즉흥적으로 쓰는 방식도 적합할 수 있습니다. 어쨌든, 제가 말하고자 하는 것은 개요나 스켈레톤이 일을 수행하는 유용한 방법이며, 이것이 만병통치약은 아니지만 때로는 (많은 경우에, 저는 대담하게 주장합니다) 큰 이점을 가져다 줄 수 있다는 것입니다.

유명한 미스터리와 범죄 작가 제프리 디버는 개요에 대해 이렇게 말했습니다: “나는 프로즈의 단 한 마디도 쓰기 전에 8개월 동안 소설의 개요를 만들고 연구합니다.”

개요나 스켈레톤을 그릴 때 필요한 철저한 결단력을 상상해보십시오. 어떤 의미에서는 당신은 앞에 있는 작업을 지연시키고 있습니다. 즉시 쓰기를 시작하는 유혹은 엄청납니다. 개요나 스켈레톤에 투자하는 모든 순간은, 고안되고 있는 에세이나 이야기를 완전히 써내려가는 행위에서 빼앗긴 순간처럼 보입니다.

하지만 우리는 무모하게 글쓰기 행위에 뛰어들면 엄청나게 뒤틀릴 수 있다는 것도 알아야 합니다. 많은 단어들을 쓴 후 그것들이 현재 문제와 관련이 없다는 것을 깨닫게 됩니다. 아야, 당신은 그 단어들을 지우고 그것들을 작성하는 데 소중한 시간을 낭비했습니다. 아니면 많은 것을 쓰고 그것이 조직되지 않고 맴돌게 됩니다. 그런 다음 당신은 일을 제대로 정돈하기 위해 지나치게 많은 시간을 보내게 됩니다.

요점은 개요나 스켈레톤을 먼저 만드는 것이 매우 유익하다는 것입니다. 스케치를 구성하는 데 드는 시간과 노력이 가치 있을 것이라는 내기를 하는 것입니다. 이는 단순히 몸을 던져보는 것의 잠재적인 문제점과 단점을 극복하게 될 것이라는 내기입니다. 때로는 이것이 진짜로 현명한 내기일 수 있습니다. 특정 상황에서 개요나 스켈레톤이 보상이 될지 결정해야 합니다.

또한 개요의 본질적인 이점이 에세이나 이야기를 쓰는 것 외에도 많은 상황에 적용된다는 것에 동의합시다. 예를 들어 캠핑을 간다고 가정해보십시오. 필요한 것을 미리 식별하지 않고 캠핑을 간다면, 캠핑지에 도착했을 때 무장해제 상태가 되거나 어려움을 겪을 가능성이 있습니다. 따라서 현명한 방법은 가져가야 할 것들의 목록을 만드는 것입니다. 목록은 처음에 개요나 스켈레톤으로 시작될 수 있습니다. 목록이 작성된 후에는 그 아이템을 소유하고 있는지, 구매해야 하는지, 각 아이템이 캠핑에 적합한 상태인지 등의 세부 사항을 추가합니다.

개요에 대해 몇 가지 다른 중요한 고려 사항도 떠오릅니다.

초기의 고수준 관점을 기반으로 개요나 스켈레톤을 작성하게 될 것입니다. 개요를 고민하고 검토하면, 아이템을 이동하거나 다시 쓸 가능성이 큽니다. 그 의미에서, 구조를 반복하고, 변화시키며, 발전시킬 가능성이 높습니다. 그렇게 하는 것이 잘못된 것은 아니며, 몇몇 사람들은 처음에 개요가 완벽하지 않으면 기분이 나빠지는 것 같아 이를 언급합니다. 편안하게 마음을 가지고 과정을 진행하십시오, 더 나은 결과를 얻을 수 있을 것입니다(항상 그런 것은 아니지만 충분한 시간 동안).

때로는 개요나 스켈레톤을 만들고 그것으로 끝낼 수 있습니다. 그것에 더 이상 아무 것도 할 필요가 없습니다. 완료된 것으로 표시하십시오. 그러나 더 가능성이 높은 것은 개요를 확장하는 다음 여정을 취할 것입니다. 스켈레톤을 사용하여 페이지에 당신의 지혜의 말을 쏟아냅니다. 따라서 개요나 스켈레톤의 명백하고 가능성 있는 확장은 이 과정의 일부입니다.

개요를 엄격하게 고수하는 일은 거의 없습니다. 글쓰기에 몰두할 때 유연하게 대처해야 한다는 것을 깨달아야 합니다. 개요를 확장하는 과정에서는 스켈레톤을 다시 생각하고 조정하게 될 수 있습니다. 고집스럽게 조정하지 않으면, 실제로 개요의 진정한 취지를 훼손할 가능성이 있습니다. 일반적으로 개요는 안내자료이며, 변경할 수 없는 콘크리트 벽처럼 보는 것이 아닙니다.

해리 포터 시리즈의 저명한 저자 J. K. 롤링은 개요에 대해 다음과 같이 언급했습니다: “나는 항상 기본적인 줄거리 개요를 갖고 있지만, 쓰면서 결정할 일들을 남겨두고 싶습니다.”

개요를 작성하기 위한 노력은 거의 항상 기본적인 근거나 목적을 가지고 있습니다. 흔히 그런 작업물을 아무 생각 없이 만들기는 힘듭니다. 핵심은 스켈레톤이 포함하려는 기본적인 목표나 열망을 가지고 있다는 것입니다. 이것들은 그저 무작위적인 단어나 목록의 무작위 작성이 아닙니다. 모든 것은 특정 목적을 염두에 두고 수행됩니다.

요약하자면, 개요와 스켈레톤에 대한 다음 원칙들을 주장할 수 있습니다:

  1. 논문이나 계획이 무엇으로 구성될 가능성이 있는지에 대한 가이드나 지도 역할을 합니다.
  2. 보통 순차적으로 수행되며, 발전하는 동안 변경될 수 있습니다.
  3. 아주 상세한 수준에서 또는 더 자세한 수준에서 작성될 수 있습니다.
  4. 전통적으로 일관성을 보여야 하며 논리적으로 타당해야 합니다.
  5. 주요한 측면이나 질문을 기반으로 합니다.
  6. 더 깊은 수준의 세부 사항과 특정성으로 확장됩니다.
  7. 중요한 사업이 될 수 있으며, 명백한 주의를 기울여야 합니다.

Skeleton-Of-Thought Brings Smart Outlining To Generative AI

생성형 AI를 사용하는 사람들은 대게 AI가 답변이나 에세이를 통째로 뱉어내도록 하려고 합니다. 또한 AI 앱에 chain-of-thought 추론 방식을 사용하라고 지시하여 생성형 AI가 답변이나 에세이를 단계별로 혹은 한 단계씩 표현하도록 유도할 수 있습니다. 결국, 한 번에 모든 것을 완료하려는 것입니다. 이것은 생성형 AI를 사용할 때의 대담한 태도입니다.

때로는 덜한 것이 더 많은 것일 수 있습니다. 즉, 우리는 생성형 AI가 에세이나 답변이 무엇으로 구성될 것인지에 대한 아웃라인이나 스켈레톤을 먼저 생성하도록 할 수 있습니다(이 토론의 시작 부분에서 ‘덜한 것이 더 많은 것’이라는 문장이 기억에 남을 만하다고 언급했었죠).

생성형 AI에서 개요나 뼈대를 만드는 것은 몇 가지 중요한 이점이 있습니다.

첫째, 생성형 AI가 어떤 질문이나 지시를 충분히 이해할지 미리 알 수 없습니다. 은행에 관한 논문을 요청했는데, 금융 기관과 은행이 아닌 강이나 시냇가의 둑에 관한 천 단어를 생성하는 AI 앱에 놀라게 될 수 있습니다. 생성형 AI는 초콜릿 상자와 같습니다. 어떻게 반응할지 정확히 모릅니다.

원하는 것과는 다른 논문이나 서술을 받는 것은 짜증나는 일입니다. 또한 생성형 AI를 사용하는 데 대한 비용이 발생할 경우 비용을 낭비하게 됩니다. 무용하고 관련 없는 결과에 돈을 쓴 것입니다. AI 제작자가 환불을 해줄 것이라고 기대하기는 어렵습니다.

이 초콜릿 상자의 딜레마에 대해 우리는 어떻게 대응할 수 있을까요?

안전 벨트를 조여주시고 큰 반전을 기대해주세요(사실 이미 제가 어디로 가고 있는지 짐작하실 것 같습니다).

다음과 같은 방법을 사용할 수 있습니다:

  • 생성형 AI에게 먼저 어떤 주제나 질문에 대한 개요나 뼈대를 만들도록 지시하십시오. 이를 위해 skeleton-of-thought 방법을 사용하면 됩니다.


자, 그럼 생성형 AI가 귀하의 관심사를 정확히 파악했는지 확인할 수 있습니다. 생성형 AI가 목표를 제대로 파악했다면 개요를 확장하도록 지시하여 나머지 부분을 얻을 수 있습니다. 생성형 AI가 목표를 제대로 파악하지 못했다면 다른 방향으로 변경하도록 지시하거나, 정말 문제가 크다면 처음부터 다시 시작하도록 지시할 수 있습니다.

이 뼈대 생성의 또 다른 이점은 생성형 AI가 실수로 만들 수 있는 잘못된 주제의 에세이나 서술을 상당히 피할 수 있다는 것입니다. 문제를 발생하기 전에 제거할 수 있을 것입니다. 그럼에도 불구하고 인정해야 할 점은 개요 생성의 비용과 확장을 위한 두 번째 비용이 있겠지만, 이것은 처음부터 전체 에세이를 요청했을 때와 대체로 동일할 것이라는 확률이 높습니다. 절약은 의도하지 않은 내용의 생성을 피함으로써 발생합니다.

skeleton-of-thought 접근법을 사용하는 데 숨겨진 잠재적인 추가 이점이 있을 수 있습니다. 앞서 chain-of-thought 기법이 AI 생성 결과를 향상시키는 것처럼 보인다고 언급했습니다. skeleton-of-thought 기법에 대해서도 마찬가지로 그럴 것으로 보입니다. 지금까지의 연구는 개요나 뼈대의 제작이 생성형 AI에 대한 프라이밍(pump priming)을 할 것으로 예상되게 하는 것처럼 보입니다(이것이 처음의 이야기에서 언급한 맛있는 힌트인 ‘펌프를 프라이밍하다’ 속담을 사용한 것에 주목했기를 바랍니다). 생성형 AI가 뼈대를 생성하면 이제 생성된 뼈대에 어울리는 답변이나 에세이의 나머지 부분을 생성할 가능성이 더 높아 보입니다.

SoT가 항상 뛰어날 것이라고 주장하는 것은 아닙니다. CoT의 사용과 마찬가지로 말이죠. 둘 다 대체로 매우 유용하다고 보입니다. 이것이 항상 그런 경우인지는 분명히 논란의 여지가 있습니다. CoT와 SoT 사용에 대한 자신의 노력을 기반으로 판단해야 할 것입니다.

한 가지 기억해야 할 사항은 개요나 뼈대 자체가 여러분에게 큰 가치를 가질 수 있다는 것입니다.

예를 들어 상사에게 기업 시스템 네트워크를 개편하기 위한 계획을 작성하라는 지시를 받았다고 가정해봅시다 (여러분의 회사가 업무 목적으로 생성형 AI 사용을 승인한다고 가정합시다; 일부는 그렇지 않으므로 업무 맥락에서 생성형 AI를 사용할 때 주의해야 합니다). 여러분은 계획의 핵심 단계를 고수준에서 제시해야 합니다. 이것은 상사에 의해 검토될 것입니다. 계획이 실행되기 훨씬 전에 모든 시간, 예산 및 기타 사항을 정해야 합니다.

여러분은 생성형 AI에게 이 목적을 위한 계획을 생성하도록 요청하고, AI에게 뼈대 형태로 그렇게 하도록 지시합니다. 이 상황에서 생성된 개요만이 여러분이 필요로 하는 것입니다. 여러분은 그것을 확장할 계획이 없습니다, 적어도 현재로서는. skeleton-of-thought 기법을 사용하여 확장을 요청하지 않고 오직 뼈대나 개요만 생성할 수 있다는 것을 알아두세요. 때때로 확장을 원할 수도 있고, 원하지 않을 수도 있습니다.

생성형 AI를 사용할 때 skeleton-of-thought (SoT) 방법을 활용하려면 다음의 10단계를 따르는 것이 좋습니다:

(1) 스켈레톤 모드를 시작하는 프롬프트를 구성하고 입력하세요.
(2) 스켈레톤이나 개요를 어떻게 의미하는지 명시하세요. AI가 크게 잘못 해석할 수 있기 때문입니다.
(3) 그런 다음, 특정 관심사에 대해 생성형 AI가 스켈레톤이나 개요를 생성하도록 프롬프트를 입력하거나 질문하세요.
(4) AI가 생성한 스켈레톤을 검사하고 원하는 결과를 얻었는지 확인하세요.
(5) 필요한 경우 추가 설명이나 세분화를 통해 스켈레톤 또는 개요 요청을 반복하세요.
(6) 스켈레톤의 세부 사항에 들어가려는 경우 확장을 위한 프롬프트를 입력하세요.
(7) 한 번에 한 단계씩 확장하거나 한 번에 여러 확장 또는 모든 확장을 요청할 수 있습니다 (아래에 언급된 병렬성을 염두에 두세요).
(8) 확장 결과를 검사하세요.
(9) AI로부터 얻는 결과에 따라 더 깊은 확장을 반복적으로 수행해야 할 수 있습니다.
(10) 마지막으로 개인적으로 배운 교훈을 반성하여 SoT 능력을 정제하고 향상시키세요.

주의 깊게 그 추천된 단계들을 따르세요.

다음 이유로 말입니다. skeleton-of-thought (SoT) 방법을 허술하게 사용하는 사람들은 허술한 결과를 얻을 것입니다. 체계적으로 접근하는 것이 최선의 방법입니다. 이 새로운 기술을 신중하게 사용하며, 너무 뜨겁지도, 너무 차갑지도 않은 클래식한 골디락스 마인드셋으로 접근하세요.

제 소매 안에는 skeleton-of-thought가 유리한 이유에 대한 또 다른 비법이 있습니다. 그것은 생성형 AI 앱에 요청을 실행할 때 기반이 되는 처리 속도와 관련이 있습니다. 전형적인 생성형 AI 앱은 직렬 방식으로 요청을 처리하도록 설계되어 있으며, 한 가지 작업을 수행한 다음 다음 작업을 수행하는 방식으로 결과를 생성합니다.

AI 제작자와 AI 연구자들은 생성형 AI가 내부에서 어떻게 작동하는지 속도를 높이려고 합니다. 가능하다면 병렬처리를 활용하는 것이 좋겠습니다. 이 아이디어는 요청이 여러 컴퓨터 프로세서에 분할되어 동시 또는 병렬 방식으로 처리될 수 있다는 것입니다.

생성형 AI가 전통적으로 결과를 생성하는 긴 파이프라인을 조금씩 따라 컴퓨터 프로세서를 사용하는 것이다. 이 생성 활동이 동시에 이루어질 수 있다면, 결과 생성 속도를 엄청나게 높일 수 있다. 우리 중 대부분은 생성형 AI로 기본적인 작업을 수행할 때 이 빠른 응답 시간을 눈치채지 못할 것이다. 그럼에도 불구하고, 이 병렬 처리는 생성형 AI의 더 큰 사용에 중요할 수 있다. 수천 또는 수백만의 사용자들이 생성형 AI 앱을 사용하려고 할 때 보드 전체에서 더 효율적일 수 있다는 점도 고려해야 한다.

이를 언급하는 이유는 생성형 AI가 식별된 요소 각각을 병렬로 확장하여 생성된 개요나 구조를 확장하는 똑똑한 방법을 사용할 수 있기 때문입니다. AI에 의해 생성된 개요가 있고 그 개요에는 8개의 주요 요소가 있다고 상상해 보십시오. 나는 AI에게 8개의 요소를 확장하도록 요청한다. 일반적인 내부 메커니즘은 첫 번째 항목이 확장되고, 두 번째 항목, 세 번째 항목 등이 확장될 것이다. 병렬성 능력을 가진 생성형 AI는 모든 8개를 동시에 확장할 수 있을 것입니다. 확장은 대개 뒷 배경에서 이루어질 것이며 화면에 확장된 버전이 표시되는 것 외에는 아무 일도 발생하지 않을 것입니다. 그것이 연속적인 기준으로 이루어졌는지 아니면 병렬적인 기준으로 이루어졌는지 여부를 알 수 없습니다(생성형 AI 앱에서 이를 알려줄 경우 제외).

이 병렬성의 문제점은 스켈레톤의 요소들이 서로 의존적이거나 상호 의존적일 경우 실현 가능하지 않을 수 있다는 것입니다. 상황에 따라, 연속적인 내부 처리만이 유일한 적절한 해결책일 수 있습니다.

AI 연구는 댄싱 스켈레톤을 탐구합니다.

이제 SoT의 기본 사항을 여러분에게 소개했으므로, 스켈레톤-오브-소트 프롬프트의 성격에 대한 더 깊은 연구를 할 수 있으며, 생성형 AI를 위한 이 새로운 기술의 중요한 뉘앙스에 대한 최근의 연구 논문을 탐구할 수 있습니다.

연구 논문의 제목은 “Skeleton-of-Thought: Large Language Models Can Do Parallel Decoding“으로, Xuefei Ning, Zinan Lin, Zixuan Zhou, Huazhong Yang, 및 Yu Wang에 의해 작성되었으며, 2023년 7월 28일에 온라인에 게시되었습니다. 나는 이 연구에서 여러 발췌문을 인용할 것입니다. 최신 AI 연구의 모든 복잡한 부분을 얻기 위해 전체 논문을 읽어 보는 것을 고려해 보십시오.

이 연구는 큰 언어 모델(LLM)의 종단 간 생성 지연 시간을 줄이는 것을 목표로 합니다. 높은 생성 지연 시간의 주요 원인 중 하나는 거의 모든 최신 기술 LLM에서 채택한 순차적 디코딩 접근법입니다. 이 연구에서는 사람들의 생각하고 쓰는 과정에 영감을 받아 “Skeleton-of-Thought”(SoT)를 제안하며, 이는 LLM에게 먼저 답의 골격을 생성하도록 안내하고, 그 다음 각 골격 점의 내용을 병렬로 완료하기 위해 병렬 API 호출 또는 일괄 디코딩을 수행합니다. SoT는 상당한 속도 향상(11개의 다른 LLM에서 최대 2.39배)을 제공할 뿐만 아니라, 다양성과 관련성 측면에서 여러 질문 카테고리에 대한 답변 품질을 향상시킬 수 있습니다. SoT는 효율성을 위한 데이터 중심 최적화의 초기 시도이며, 답변 품질을 위해 LLM이 사람처럼 더 많이 생각하게 하는 잠재력을 보여줍니다.

그들은 연구에서 다음과 같은 것을 탐구하기로 결정했습니다:

  • “인간은 항상 질문을 생각하고 답변을 연속적으로 적지는 않습니다. 대신 많은 유형의 질문에 대해 우리는 먼저 일부 규약과 전략에 따라 골격을 도출하고, 그 다음에 증거와 세부 사항을 추가하여 각 점을 세밀하게 설명합니다. 이는 특히 컨설팅 제공, 시험 응시, 논문 작성 등의 공식적인 경우에 해당됩니다.”
  • “이를 위해, 우리는 Skeleton-of-Thought (SoT)를 제안합니다. 구체적으로는, 우리는 먼저 LLM이 자체적으로 골격을 도출하도록 지도합니다. 골격을 기반으로, LLM은 각 점을 병렬로 완료하여 속도를 높일 수 있습니다. SoT는 배치 디코딩이 있는 오픈 소스 모델과 병렬 API 호출이 있는 폐쇄 소스 모델을 모두 가속화하는 데 사용될 수 있습니다.”

이 발췌문에서 그들이 이 기술을 사용함으로써 얻을 수 있는 주요 이점을 파악하기 위한 탐구 중임을 알 수 있을 것입니다. 특히 병렬처리를 활용한 처리 속도 향상이 그것입니다.

요약하자면, 그들의 전반적인 결과는 다음과 같습니다:

  • “우리는 최근 출시된 11개의 LLM에서 SoT를 테스트합니다. SoT는 처리 속도를 상당히 향상시키는 것만 아니라(최대 2.39배까지), 다양성과 관련성 측면에서 여러 질문 카테고리에 대한 답변의 품질도 향상시킬 수 있습니다.”
  • “현재 SoT는 수학 문제에 잘 대답할 수 없습니다. 이것은 현재의 SoT 솔루션이 어느 정도 CoT와 상충되기 때문입니다: CoT는 각 단계의 확장된 세부 사항에 의존하여 계속해서 추론을 하고, SoT는 전략적으로 사전에 골격을 나열하기를 희망합니다.”

속도 향상은 가능하지만 질문의 유형이 병렬로 쉽게 답변될 수 없는 경우에는 속도 향상이 이루어지지 않을 수 있습니다.

연구자들은 실험의 일환으로 사용한 다양한 프롬프트를 제공했는데, 이를 통해 골격 사고 모드로 생성 AI를 어떻게 만드는지도 친절하게 보여주었습니다.

예를 들어, 다음 프롬프트를 고려해보십시오:

  • “당신은 질문에 답하는 것에 대한 전체 내용이 아닌 골격만을 제공하는 주최자입니다. 질문에 답하기 위해 목록의 포인트(1., 2., 3. 등으로 번호 지정)로 골격을 제공하십시오. 전체 문장을 작성하는 대신 각 골격 포인트는 3~5 단어로 매우 짧아야 합니다. 일반적으로 골격은 3~10 개의 포인트를 가져야 합니다.”

프롬프트는 생성 AI에게 어떻게 골격 응답을 구성할지 지침을 제공하려고 시도합니다. 이것은 중요하며, 그렇지 않으면 생성 AI는 예상치 못한 방향으로 갈 수 있습니다. 또 다른 점은 SoT 프롬프트를 프라이머나 설립자로 사용할 수 있으며, 이를 통해 각 대화 시작시에 이를 말하고 나중에 대화 중 키워드나 유명한 문구를 통해 이를 호출할 수 있다는 것입니다, 여기에서 제 커버리지를 참조하세요.

생성된 골격의 확장을 원할 때 그들이 어떻게 그렇게 했는지의 예는 다음과 같습니다:

  • “포인트 {포인트 인덱스}의 글쓰기를 계속하고 단지 계속하십시오. 1~2 문장으로 매우 짧게 작성하고 다른 포인트로 계속하지 마십시오!”

다양한 스타일로 프롬프트 작성에 대한 접근 방식에 맞게 확장에 대한 동일한 뉘앙스를 표현할 수 있습니다. 연구는 AI 산업에서 확립된 몇 가지 프롬프트도 사용했습니다.

예를 들어, 확장에서 일관성을 선호한다는 프롬프트가 있습니다:

  • “응답은 일관성 있게 흐르고 주요한 간극이나 모순 없이 쉽게 읽고 이해할 수 있도록 다음 포인트로 논리적으로 흘러야 합니다.”

다양성을 포함하도록 선호를 나타내는 프롬프트가 있습니다:

  • “응답은 포괄적이어야 하며 단일 관점으로 제한되지 않는 다양한 정보를 제공해야 합니다. 관점이 더 많을수록 좋습니다.”

응답의 관련성을 보장하기 위한 또 다른 프롬프트도 있습니다:

  • “응답은 질문과 밀접하게 관련되어 있어야 하며 반복이나 중복 없이 충분한 세부 정보로 질문에 정확하게 답해야 합니다. 관련성이 높을수록 좋습니다.”

이러한 프롬프트로 놀아볼 수 있으며 상황에 적합할 때 사용하십시오.

원하는 스켈레톤이 확장 중에 그대로 반복되어야 하는지, 아니면 생성 AI가 확장을 변경할 수 있게 하려는지에 대해 고민해야 할 문제가 있습니다. 보통 생성 AI는 개요를 그대로 반복합니다. 이는 원래의 구조가 어떻게 되었는지 정확히 볼 수 있기 때문에 적합해 보입니다. 그리고 확장이 원래의 구조를 따르고 있는 것처럼 보입니다. 원래의 구조를 변경하는 것은 귀찮을 수 있으며 생성 AI가 방향을 잃었을지도 모른다는 의심을 가져올 수 있습니다. 반대로 생성 AI가 원래의 구조를 다양하게 할 수 있게 된다면 확장을 수행함으로써 가치를 더한다고 가정하면 유용할 수도 있습니다.

이것을 잘 생각해보고 당신에게 어떤 것이 잘 맞는지 경우에 따라 결정하십시오.

An Example Of Skeleton-Of-Thought To Showcase How It Works

이 연구는 SoT가 어떻게 작동하는지 평가하기 위한 여러 실험을 포함하고 있습니다. 생성 AI 앱에 입력된 프롬프트와 질문은 대체로 상대적으로 짧고 간단했습니다. 결론에서, 그들은 SoT가 다양한 보충 설정에서 어떻게 작동하는지 보기 위해 AI 연구자들이 추가적인 방향으로 나아가길 촉구하고 있습니다.

나는 다소 복잡한 문제를 사용하여 유사한 실험 일련을 수행하기로 결정했습니다. 이전 칼럼에서, 나는 기업 임원의 신탁 의무와 관련된 법적 시나리오를 통해 프롬프트 엔지니어링 기법을 살펴봤습니다, 여기 링크를 참조하십시오. 구체적으로, 나는 회사의 충성 의무와 회사의 관리 의무와 관련된 법적 문제를 조사했습니다.

그러한 노력을 SoT를 사용하여 반복했습니다. 여기에 있는 공간 제한으로 인해 자세한 내용을 포함할 수 없지만, 제가 SoT 접근법이 올바른 상황에서 그리고 올바른 방식으로 사용될 때 가치와 유용성을 파악했다는 것을 알아두십시오.

연구 논문에서 생성 AI의 사용이 어떻게 되었는지 예제를 살펴보겠습니다. 이미 여러분께 SoT 프롬프트를 보여 드렸으므로 여기에서는 그것을 반복하지 않겠습니다. 생성 AI가 현재 SoT 모드에 참여하고 있다고 가정합니다. 발췌한 예제는 어떻게 누군가가 진실하게 행동하는지 아니면 단순히 예의를 갖춰서 행동하는지를 판단하는 방법에 관한 질문입니다.

생성 AI에 입력된 프롬프트 질문은 다음과 같습니다:

“대화에 진심으로 관심이 있는지 아니면 단순히 예의를 갖추고 있는지 어떻게 알 수 있을까요?”
생성 AI는 다음과 같은 뼈대나 개요로 답변을 생성했습니다:

  • “1. 몸짓 언어에 주의하십시오.”
  • “2. 참여하는 반응을 들어보십시오.”
  • “3. 눈맞춤을 관찰하십시오.”
  • “4. 후속 질문을 찾아보십시오.”
  • “5. 목소리의 어조에 주의하십시오.”


그 후 생성 AI는 답변의 확장을 생성하도록 요청받았습니다:

  • “1. 몸짓 언어에 주의하십시오. 그들의 자세가 열려 있거나 닫혀 있는지, 당신을 향하고 있거나 아닌지, 들뜬지 아니면 편안한지 주의 깊게 관찰하십시오. 이 모든 것은 대화에 대한 그들의 관심 수준을 나타낼 수 있습니다.”
  • “2. 참여하는 반응을 들어보십시오. 사람이 대화에 진심으로 관심이 있다면 짧고 일반적인 반응 대신 사려 깊고 관련성 있는 댓글이나 질문으로 응답할 것입니다.”
  • “3. 눈맞춤을 관찰하십시오. 사람이 지속적으로 눈맞춤을 유지하고 시선이 당신에게 집중되어 있다면, 그들은 대화에 진심으로 관심이 있다고 볼 수 있습니다. 반면, 자주 눈을 돌리거나 산만해 보인다면 그저 예의를 갖추고 있을 수 있습니다.”
  • “4. 후속 질문을 찾아보십시오. 사람이 후속 질문을 하고 당신이 말하는 것에 진심으로 관심이 있다면, 그들은 대화에 관심이 있고 단순히 예의를 갖추고 있지 않다고 볼 수 있습니다.”
  • “5. 목소리의 어조에 주의하십시오. 대화에 진심으로 관심이 있는 사람은 대체로 단조롭고 짧은 반응을 하는 예의를 갖춘 사람과 비교하여 더 열정적이고 활발한 어조의 목소리를 가질 것입니다.”

다음은 생성 AI를 사용하여 SoT가 아닌 논문 응답을 생성할 때의 전통적인 사용 예입니다:

  • “AI 어시스턴트로서, 나는 사람의 진정한 의도나 감정을 파악할 수 없습니다. 그러나 대화에 진심으로 관심이 있는지 여부를 나타내는 몇 가지 사회적 단서가 있습니다. 예를 들어, 그들이 눈맞춤을 유지하고, 몸을 기울이고, 머리를 끄덕이며 후속 질문을 한다면 대화에 몰두하고 있다는 신호일 수 있습니다. 반면, 눈맞춤을 피하거나, 짧거나 모호한 응답을 하거나, 산만해 보인다면 그들이 그렇게 관심이 없다는 것을 나타낼 수 있습니다. 궁극적으로, 모든 사람이 다른 의사소통 스타일을 가지고 있으므로 그들에게 직접 묻지 않고는 누군가의 의도를 정확하게 해석하는 것이 어려울 수 있음을 기억하는 것이 중요합니다.”

위의 예시는 유도된 스켈레톤과 그 스켈레톤의 확장을 보여주며, 생성된 일반적인 에세이 답변과의 비교도 제공합니다. 이러한 변형 각각은 모두 장점이 있습니다. 하나가 다른 것보다 본질적으로 더 나은 것은 아닙니다. 당신의 현 상황은 어떤 방법이 생성적 AI 사용에 적합한지를 알려주어야 합니다.

위에서 설명한 내용을 요약하면, 각 접근 방식의 유용성은 특정 상황과 요구 사항에 따라 다릅니다. 여기 몇 가지 고려 사항을 제시합니다:

  1. 질문의 복잡성: 주제의 각 부분을 체계적으로 다루는 것이 중요한 경우 Skeleton-of-Thought (SoT)가 더 적합할 수 있습니다. SoT는 주제를 분해하는 구조화된 방법을 제공하며 어떤 부분도 놓치지 않습니다.
  2. 읽기 용이성 및 사용자 선호: 일부 사용자는 핵심 아이디어만 빠르게 파악하려는 경우 SoT 접근 방식이 더 이해하기 쉽다고 느낄 수 있습니다. 반면, 완전한 에세이는 보다 포괄적이고 유동적인 이해를 제공할 수 있습니다.
  3. 확장 제어: 생성 AI가 개별 포인트를 어떻게 확장하는지 제어하거나 영향을 주고 싶은 경우 SoT 방법이 더 세밀한 제어를 제공합니다.
  4. 시간 및 자원: SoT를 사용하는 것이 특정 경우에는 더 빠를 수 있습니다. 특히 병렬 처리 기능을 활용하는 경우에 그렇습니다. 그러나 이러한 장점을 활용할 인프라가 없다면 속도 측면에서의 이점은 최소화될 수 있습니다.
  5. 응답의 유연성: 전통적인 접근 방식은 더 유동적이고 전체적인 답변을 제공하지만, 그만큼 구조화되어 있지 않을 수 있습니다. 이는 덜 공식적인 설정이나 서술 스타일이 더 적절한 경우에 유용할 수 있습니다.

결국, 원하는 결과에 따라 선택이 달라집니다. 빠르고 구조화된 개요를 얻고자 하는 경우 SoT가 더 유용할 수 있습니다. 더 깊고 뉘앙스 있는 이해가 필요한 경우, 전통적인 방법이 더 좋은 선택일 수 있습니다. 그리고 생성 AI 기법이 발전하고 개선되면서 더 정교하고 다양한 방법이 등장할 것으로 기대됩니다.

결론

이 새로운 기법에 대한 이러한 토론이 여러분들에게 가끔씩 그리고 관련되어 있을 때 이것을 사용하는 것을 고려하게 만들기를 바랍니다. 전통적인 에세이를 선호하려는 경우, SoT는 아마도 직접적인 방법이 아닐 것입니다. 개요가 필요하고, 개요의 확장이 필요한 경우, SoT가 권장되는 행동 수칙이 될 것입니다.

몇 가지 마지막 논평을 드리겠습니다.

개요는 훌륭합니다. 유용한 목적을 제공합니다. 대부분의 사람들은 그것을 자주 사용합니다. 항상 개요나 스켈레톤을 사용하는 것은 아닙니다. 내게는 당신이 망치만 가지고 있다면, 세상의 모든 것은 못처럼 취급된다는 유명한 말이 생각납니다. 망치질이 필요하지 않은 것들을 계속해서 망치질합니다. 더 나쁜 경우에는 다른 도구를 통해 유용한 목적을 섬기고 그것이 가진 목표를 달성할 수 있었을 것을 망치질하게 됩니다.

생각의 뼈대(Skeleton-of-thought)는 프롬프트 엔지니어링을 위한 흥미롭고 유용한 도구입니다. 잘 사용하십시오. 지혜롭게 사용하십시오. 프롬프트 엔지니어링 기법과 방법의 도구 상자에 SoT를 넣어두는 것이 좋습니다. SoT를 적절하게 활용하십시오.

때로는 덜한 것이 더 많은 것이고, 펌프를 사전에 준비하는 것이 대단히 유익합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다