Generative AI

ChatGPT 플러그인

해피해커 2023. 3. 24. 14:30

ChatGPT 플러그인 (March 23, 2023)

저희는 ChatGPT에서 플러그인에 대한 초기 지원을 구현했습니다. 플러그인은 안전을 핵심 원칙으로 하는 언어 모델용으로 특별히 설계된 도구로, ChatGPT가 최신 정보에 액세스하고 계산을 실행하거나 타사 서비스를 사용할 수 있도록 도와줍니다.

반복적인 배포 철학에 따라, 저희는 실제 사용, 영향, 안전 및 조정 문제 등을 연구할 수 있도록 ChatGPT에 플러그인을 점진적으로 배포하고 있으며, 이 모든 것이 저희의 사명을 달성하기 위해 반드시 해결해야 할 과제입니다.



플러그인을 통해 다양한 사용 사례를 만들 수 있기 때문에, ChatGPT 출시 이후 사용자들의 플러그인 요청이 끊이지 않았고, 많은 개발자들이 비슷한 아이디어를 실험하고 있습니다. 저희는 소수의 사용자로 시작하여 더 많은 것을 알아가면서 점진적으로 더 큰 규모의 액세스를 출시할 계획입니다(플러그인 개발자, ChatGPT 사용자, 알파 기간 이후에는 플러그인을 제품에 통합하고자 하는 API 사용자). 인간과 인공지능의 상호작용 패러다임의 미래를 만들어가는 커뮤니티를 구축하게 되어 기대가 큽니다.

대기자 명단에서 초대를 받은 플러그인 개발자는 언어 모델에 표시되는 프롬프트에 활성화된 플러그인을 나열하고 각 플러그인의 사용 방법을 설명하는 문서를 사용하여 ChatGPT용 플러그인을 빌드할 수 있습니다. 첫 번째 플러그인은 Expedia, FiscalNote, Instacart, KAYAK, Klarna, Milo, OpenTable, Shopify, Slack, Speak, Wolfram 및 Zapier에서 만들었습니다.


  • Expedia: 여행 계획에 활기를 불어넣어 현지에 도착하고, 현지에 머물며, 볼거리와 즐길 거리를 찾아보세요.
  • FiscalNote: 법률, 정치, 규제 데이터 및 정보에 대해 시장을 선도하는 엄선된 실시간 데이터 세트를 제공하고 이에 액세스할 수 있도록 지원합니다.
  • InstaCart: 즐겨 찾는 지역 식료품점에서 주문하세요.
  • KAYAK: 항공편, 숙박, 렌터카를 검색하세요. 예산 범위 내에서 갈 수 있는 모든 여행지를 추천받으세요.
  • Klana Shopping: 수천 개의 온라인 상점의 가격을 검색하고 비교하세요.
  • Milo Family AI: 매일 20분씩 부모에게 조증을 마법으로 바꿀 수 있는 초능력을 부여하세요. 물어보세요: 마일로, 오늘은 마법이 뭐니?
  • OpenTable: 예약으로 바로 연결되는 링크와 함께 레스토랑 추천을 제공합니다.
  • Shop: 세계 최고의 브랜드에서 제공하는 수백만 개의 제품을 검색하세요.
  • Speak: AI 기반 언어 튜터인 Speak로 다른 언어로 말하는 방법을 배워보세요.
  • Wolfram: Wolfram|Alpha 및 Wolfram 언어를 통해 계산, 수학, 엄선된 지식 및 실시간 데이터에 액세스합니다.
  • Zapier: Google 스프레드시트, Trello, Gmail, HubSpot, Salesforce 등과 같은 5,000개 이상의 앱과 상호 작용하세요.

 

또한 웹 브라우저와 코드 인터프리터라는 두 가지 플러그인을 직접 호스팅하고 있습니다. 또한 지식창고 검색 플러그인의 코드를 오픈소스화하여 ChatGPT를 보강하고자 하는 모든 개발자가 자체 호스팅할 수 있도록 했습니다.

오늘부터 대기자 명단에 있는 사용자와 개발자를 대상으로 플러그인 알파 액세스를 확대할 예정입니다. 처음에는 소수의 개발자와 ChatGPT 플러스 사용자에게 우선순위를 두겠지만, 시간이 지남에 따라 더 큰 규모의 액세스를 출시할 계획입니다.


개요

오늘날의 언어 모델은 다양한 작업에 유용하지만 여전히 한계가 있습니다. 언어 모델에서 학습할 수 있는 유일한 정보는 학습 데이터뿐입니다. 이 정보는 오래되었을 수 있으며 모든 애플리케이션에 획일적으로 적용될 수 있습니다. 게다가 언어 모델이 기본적으로 할 수 있는 유일한 작업은 텍스트를 출력하는 것뿐입니다. 이 텍스트에는 유용한 지침이 포함될 수 있지만 실제로 이러한 지침을 따르려면 다른 프로세스가 필요합니다.

완벽한 비유는 아니지만 플러그인은 언어 모델의 '눈과 귀'가 되어 학습 데이터에 포함하기에는 너무 최근의 정보, 너무 개인적인 정보 또는 너무 구체적인 정보에 액세스할 수 있도록 해줍니다. 또한 플러그인은 사용자의 명시적인 요청에 따라 언어 모델이 사용자를 대신하여 안전하고 제한된 작업을 수행하도록 하여 시스템 전반의 유용성을 높일 수 있습니다.
- LLM(Brain) + 플러그인(Body)

애플리케이션이 AI 인터페이스를 노출하는 방식을 통합할 수 있는 개방형 표준이 등장할 것으로 예상합니다. 저희는 이러한 표준이 어떤 모습일지에 대한 초기 시도를 진행 중이며, 함께 구축하는 데 관심이 있는 개발자들의 피드백을 기다리고 있습니다.

현재 저희는 초기 협력자들의 기존 플러그인을 ChatGPT 플러스 가입자를 시작으로 점차적으로 ChatGPT 사용자들을 위해 사용할 수 있도록 하고 있습니다. 또한 개발자가 직접 ChatGPT용 플러그인을 만들 수 있는 기능도 출시하기 시작했습니다.

앞으로 몇 달 동안 배포를 통해 학습하고 안전 시스템을 지속적으로 개선해 나가면서 이 프로토콜을 반복적으로 개선해 나갈 것이며, OpenAI 모델을 사용하는 개발자가 ChatGPT를 넘어 자체 애플리케이션에 플러그인을 통합할 수 있도록 할 계획입니다.

 

안전 및 광범위한 의미
언어 모델을 외부 도구에 연결하면 새로운 기회와 함께 상당한 새로운 위험이 발생합니다.

플러그인은 '환각', 최신 이벤트 따라잡기, 독점 정보 소스 액세스(허가 필요) 등 대규모 언어 모델과 관련된 다양한 문제를 해결할 수 있는 잠재력을 제공합니다. 온라인 최신 정보, 코드 기반 계산 또는 사용자 지정 플러그인 검색 정보와 같은 외부 데이터에 대한 명시적 액세스를 통합함으로써 언어 모델은 증거 기반 참조를 통해 대응을 강화할 수 있습니다.

이러한 참조는 모델의 유용성을 향상시킬 뿐만 아니라 사용자가 모델 출력의 신뢰성을 평가하고 정확성을 재확인할 수 있도록 하여 최근 GPT-4 시스템 카드에서 논의한 바와 같이 과도한 의존과 관련된 위험을 잠재적으로 완화할 수 있습니다. 마지막으로, 플러그인의 가치는 제품 카탈로그 검색부터 항공편 예약, 음식 주문에 이르기까지 다양한 새로운 사용 사례를 통해 기존의 한계를 해결하는 것 이상의 가치를 제공할 수 있습니다.

동시에 플러그인이 유해하거나 의도하지 않은 동작을 수행하여 다른 사람을 속이거나 오도하거나 악용하는 악의적 행위자의 역량을 강화함으로써 안전 문제를 증가시킬 수 있는 위험도 있습니다. 플러그인은 적용 가능한 범위를 넓힘으로써 새로운 도메인에서 모델이 실수하거나 잘못 조정된 동작을 수행하여 부정적인 결과를 초래할 위험을 높일 수 있습니다. 이러한 요소를 고려하여 처음부터 플러그인 플랫폼을 개발했으며, 몇 가지 안전장치를 구현했습니다.

처음부터 이러한 요소들을 고려하여 플러그인 플랫폼을 개발했으며, 몇 가지 안전장치를 구현했습니다.

 

저희는 내부 및 외부 협력자와 함께 레드팀 연습을 수행하여 여러 가지 우려스러운 시나리오를 발견했습니다. 예를 들어, 레드팀원들은 플러그인이 안전장치 없이 출시될 경우 정교한 프롬프트 인젝션을 수행하거나, 사기성 및 스팸 이메일을 보내거나, 안전 제한을 우회하거나, 플러그인으로 전송된 정보를 오용할 수 있는 방법을 발견했습니다. 이러한 조사 결과를 바탕으로 위험한 플러그인 동작을 제한하고 사용자 경험의 일부로 작동하는 방식과 시기의 투명성을 개선하는 안전 설계 완화 조치를 발표하고 있습니다. 또한 이러한 조사 결과를 바탕으로 플러그인에 대한 접근 권한을 점진적으로 배포하기로 한 결정을 내리는 데도 활용하고 있습니다.

- 프롬프트 인젝션 공격

이 분야의 안전 위험이나 완화책을 연구하는 데 관심이 있는 연구자라면 연구자 액세스 프로그램을 활용해 보시기 바랍니다. 또한 최근 오픈소스화된 평가 프레임워크의 일환으로 개발자와 연구자가 플러그인 관련 안전 및 기능 평가를 제출할 수 있도록 초대합니다.

플러그인은 사회적으로 광범위한 영향을 미칠 가능성이 높습니다. 예를 들어, 도구에 액세스할 수 있는 언어 모델이 그렇지 않은 언어 모델보다 훨씬 더 큰 경제적 영향을 미칠 가능성이 높다는 연구 논문을 최근에 발표했으며, 다른 연구자들의 연구 결과와 마찬가지로 현재 AI 기술의 물결이 일자리 변화, 대체, 창출 속도에 큰 영향을 미칠 것으로 예상하고 있습니다. 저희는 이러한 영향을 연구하기 위해 외부 연구자 및 고객과 협력하고자 합니다.

 

 

브라우징 (Alpha)
인터넷 검색 시기와 방법을 파악하는 실험적 모델


과거 작업(자체 WebGPT를 비롯해 GopherCite, BlenderBot2, LaMDA2 등)을 통해 언어 모델이 인터넷에서 정보를 읽을 수 있게 되면 학습 코퍼스를 넘어 현재의 최신 정보까지 논의할 수 있는 콘텐츠의 양이 엄격하게 확장됩니다.

다음은 이전에는 모델이 학습 데이터에 충분한 정보가 포함되어 있지 않다고 정중하게 지적해야 했던 검색이 ChatGPT 사용자에게 어떤 종류의 경험을 제공하는지 보여주는 예입니다. 최신 오스카 시상식에 대한 최신 정보를 검색한 다음 이제는 익숙한 ChatGPT 시를 구사하는 이 예는 검색이 부가적인 경험이 될 수 있는 한 가지 방법을 보여줍니다.

최종 사용자에게 분명한 유용성을 제공할 뿐만 아니라 언어 및 채팅 모델이 철저하고 해석 가능한 연구를 수행할 수 있도록 지원하는 것은 확장 가능한 조정에 대한 흥미로운 전망을 가지고 있다고 생각합니다.

이 부문에서 오스카상을 수상한 인물/영화를 알려주실 수 있나요?

- 남우주연상
- 최우수 사운드트랙
- 최우수 작품상
- 남우조연상
그리고 이들을 연결하는 시를 지어보세요.

 

 

안전 고려 사항
언어 모델에 웹 브라우저에 대한 액세스 권한을 부여하는 웹 브라우징 플러그인을 만들었으며, 안전과 웹의 선량한 시민으로서의 운영을 모두 우선시하여 설계했습니다. 플러그인의 텍스트 기반 웹 브라우저는 GET 요청으로 제한되므로 특정 종류의 안전 위험을 줄이기는 하지만 제거하지는 못합니다. 따라서 검색 플러그인은 정보를 검색하는 데 유용하지만 보안 및 안전 문제가 발생할 여지가 많은 양식 제출과 같은 '트랜잭션' 작업은 제외됩니다.

>> 웹 브라우징 플러그인

>> GET 요청으로 제한됨

>> 양식 제출 트랜잭션 작업은 제한됨

브라우징은 Bing 검색 API를 사용하여 웹에서 콘텐츠를 검색합니다. 따라서 (1) 정보의 출처 신뢰성 및 진실성, (2) 문제가 있는 콘텐츠의 검색을 방지하는 '안전 모드'에 대한 Microsoft의 상당한 작업을 이어받습니다. 플러그인은 격리된 서비스 내에서 작동하므로 ChatGPT의 검색 활동은 나머지 인프라로부터 분리되어 있습니다.

콘텐츠 제작자를 존중하고 웹의 규범을 준수하기 위해, 저희 브라우저 플러그인의 사용자 에이전트 토큰은 ChatGPT-User이며 웹사이트의 robots.txt 파일을 존중하도록 구성되어 있습니다. 이로 인해 때때로 '클릭 실패' 메시지가 표시될 수 있으며, 이는 플러그인이 웹사이트의 크롤링을 피하라는 지침을 따르고 있음을 나타냅니다. 이 사용자 에이전트는 ChatGPT 사용자를 대신하여 직접 작업을 수행하는 데만 사용되며 자동 방식으로 웹을 크롤링하는 데는 사용되지 않습니다. 또한 저희는 IP 송신 범위도 공개했습니다. 또한 웹사이트에 과도한 트래픽을 보내지 않도록 속도 제한 조치를 구현했습니다.

 

 

저희의 브라우징 플러그인은 방문한 웹사이트를 표시하고 ChatGPT의 응답에 그 출처를 인용합니다. 이렇게 추가된 투명성 계층은 사용자가 모델 응답의 정확성을 확인하는 데 도움이 되며, 콘텐츠 제작자에게도 크레딧을 돌려줍니다. 웹과 상호 작용하는 새로운 방법이라는 점에 감사드리며, 소스로 트래픽을 다시 유도하고 생태계의 전반적인 건전성을 높일 수 있는 추가적인 방법에 대한 피드백을 환영합니다.

 

코드 인터프리터 (Alpha)
Python을 사용하고 업로드 및 다운로드를 처리할 수 있는 실험적인 ChatGPT 모델입니다.

 

저희는 샌드박스가 적용된 방화벽 실행 환경에서 작동하는 Python 인터프리터를 모델에 임시 디스크 공간과 함께 제공합니다. 인터프리터 플러그인으로 실행되는 코드는 채팅 대화가 진행되는 동안(상한 시간 제한이 있는) 지속되는 영구 세션에서 평가되며, 후속 호출은 서로를 기반으로 구축될 수 있습니다. 현재 대화 작업 영역에 파일을 업로드하고 작업 결과를 다운로드하는 기능을 지원합니다.

코드 인터프리터
챗 GPT가 대화중에 필요한 경우, 파이썬으로 프로그래밍하고 실행해서 결과를 보여준다. 

 

저희는 모델들이 프로그래밍 기술을 활용해 컴퓨터의 가장 기본적인 기능에 훨씬 더 자연스러운 인터페이스를 제공할 수 있기를 바랍니다. 열성적인 주니어 프로그래머가 손끝의 속도로 작업할 수 있다면 완전히 새로운 워크플로우를 쉽고 효율적으로 만들 수 있을 뿐만 아니라 새로운 사용자층에게 프로그래밍의 이점을 제공할 수 있습니다.

 

초기 사용자 연구를 통해 코드 인터프리터를 사용하는 것이 특히 유용한 사용 사례를 확인했습니다:

  • 양적 및 질적 수학적 문제 해결
  • 데이터 분석 및 시각화 수행
  • 형식 간 파일 변환

코드 인터프리터 통합 기능을 사용해 보시고 다른 유용한 작업도 찾아보시기 바랍니다.

 

>> 마치, 주피터 노트북 같이 동작한다.

>> 다른점은, 파이썬 코드로 입력하는 대신, 자연어로 입력한다는 점이다. 자연어를 이해하고 스스로 프로그래밍을 해서 그 결과를 보여준다. OMG!

 

 

- CSV 파일을 업로드 하고, 자연어로 데이터 분석을 한다. 진정한 No Code!

 

- 이미지를 업로드 하고, opencv로 변환하고, 결과를 다운로드 받는다.

- 이 과정에서 코딩은 없다. 자연어로 모든 과정을 처리한다.

 

안전 고려 사항
모델을 프로그래밍 언어 인터프리터에 연결할 때 가장 먼저 고려해야 할 사항은 AI가 생성한 코드가 현실 세계에서 의도하지 않은 부작용을 일으키지 않도록 실행을 적절히 샌드박싱하는 것입니다. 유니티는 보안 환경에서 코드를 실행하고 엄격한 네트워크 제어를 통해 실행된 코드에서 외부 인터넷 액세스를 차단합니다. 또한 각 세션에 리소스 제한을 설정했습니다. 인터넷 액세스를 비활성화하면 코드 샌드박스의 기능이 제한되지만, 초기에는 적절한 절충안이라고 생각합니다. 타사 플러그인은 안전을 최우선으로 고려하여 모델을 외부 세계에 연결하는 방법으로 설계되었습니다.

 

 

검색
오픈 소스 검색 플러그인을 통해 ChatGPT는 개인 또는 조직의 정보 소스에 액세스할 수 있습니다(권한이 있는 경우). 이를 통해 사용자는 자연어로 질문하거나 요구 사항을 표현하여 파일, 메모, 이메일 또는 공개 문서와 같은 데이터 소스에서 가장 관련성이 높은 문서 스니펫을 얻을 수 있습니다.

오픈 소스 및 자체 호스팅 솔루션으로 개발자는 자체 버전의 플러그인을 배포하고 ChatGPT에 등록할 수 있습니다. 이 플러그인은 OpenAI 임베딩을 활용하며, 개발자는 문서 색인 및 검색을 위해 벡터 데이터베이스(Milvus, Pinecone, Qdrant, Redis, Weaviate 또는 Zilliz)를 선택할 수 있습니다. 웹후크를 사용해 정보 소스를 데이터베이스와 동기화할 수 있습니다.

시작하려면 검색 플러그인 리포지토리를 방문하세요.

 

보안 고려 사항
검색 플러그인을 통해 ChatGPT는 콘텐츠의 벡터 데이터베이스를 검색하여 최상의 결과를 ChatGPT 세션에 추가할 수 있습니다. 즉, 외부에 영향을 미치지 않으며, 주요 위험은 데이터 인증 및 개인정보 보호입니다. 개발자는 검색 플러그인에 사용 권한이 있고 사용자의 ChatGPT 세션에서 공유할 수 있는 콘텐츠만 추가해야 합니다.

 

타사 플러그인 (Alpha)
플러그인 사용 시기와 방법을 알고 있는 실험적 모델

 

 

타사 플러그인은 매니페스트 파일로 설명되며, 여기에는 플러그인의 기능에 대한 기계 판독 가능한 설명과 플러그인을 호출하는 방법, 사용자 대상 문서가 포함되어 있습니다.

 

플러그인을 만드는 단계는 다음과 같습니다:

 

1. 언어 모델에서 호출하고자 하는 엔드포인트가 있는 API를 빌드합니다(새 API, 기존 API 또는 LLM용으로 특별히 설계된 기존 API의 래퍼일 수 있음).

2. API를 문서화하는 OpenAPI 사양과 OpenAPI 사양에 연결되고 플러그인 관련 메타데이터를 포함하는 매니페스트 파일을 만듭니다.

 

chat.openai.com에서 대화를 시작할 때 사용자는 사용 설정할 타사 플러그인을 선택할 수 있습니다. 

활성화된 플러그인에 대한 설명서가 대화 컨텍스트의 일부로 언어 모델에 표시되어 언어 모델이 사용자의 의도를 충족하기 위해 필요에 따라 적절한 플러그인 API를 호출할 수 있습니다. 현재 플러그인은 백엔드 API를 호출하도록 설계되어 있지만 클라이언트 측 API도 호출할 수 있는 플러그인을 검토하고 있습니다.

 

** 플러그인 개발 데모 ** // 이 내요은 다른 글에서 구체적으로 다룰 예정입니다.

 

앞으로의 계획
저희는 플러그인을 개발하여 더 많은 사람들에게 제공하기 위해 노력하고 있습니다. 아직 배울 것이 많으며, 여러분의 도움으로 유용하면서도 안전한 플러그인을 개발할 수 있기를 바랍니다.