클라우드서 GPT-3.5 쓴다, ‘애저 오픈AI(Azure OpenAI)’ 시작하기

마이크로소프트 애저(Azure)에서 호스팅되는 오픈AI(OpenAI) 언어 모델이 이제 GA 버전으로 제공된다.

사전 학습한 모델에 API 기반 액세스를 제공하는 애저의 코그니티브 서비스(Cognitive Services) 등을 통해 머신러닝 및 AI 연구가 실험실에서 IDE로 빠르게 이동하고 있다. AI 서비스를 제공하는 데는 다양한 접근 방식이 있는데, 언어 작업을 위해 가장 유망한 방법은 대량의 텍스트를 처리하는 ‘GPT’ 기술이다.

오픈AI 그리고 마이크로소프트

오픈AI가 지난 2018년 GPT에 관한 최초의 논문을 발표하면서 이 기술을 개척했다. 그리고 인간을 모방하기 위해 태그가 지정되지 않은 데이터를 사용하는, 비지도 기반의 GPT-2를 시작으로 여러 차례 수정이 이뤄졌다. 40GB의 공공 인터넷 컨텐츠를 바탕으로 구축된 GPT-2는 15억 개의 매개변수를 학습했다. 그 뒤를 이은 GPT-3는 매개변수가 1,750억 개에 달한다. 마이크로소프트가 독점으로 라이선스를 보유한 GPT-3는 깃허브 코파일럿(GitHub Copilot)의 코덱스(Codex) 그리고 달리(DALL-E) 등의 기반으로 사용됐다.

GPT-3와 같은 모델은 대략 일일 수천 페타플롭스에 달하는 상당한 양의 컴퓨팅과 메모리를 필요로 한다. 따라서 전문화된 슈퍼컴퓨터 하드웨어에서 클라우드 기반의 고성능 컴퓨팅이 필요하다. 마이크로소프트가 애저에서 슈퍼컴퓨팅용으로 자체 엔비디아 기반 서버를 구축하면서 (마이크로소프트의) 클라우드 인스턴스는 상위 500대 슈퍼컴퓨팅 목록에 올랐다. 애저의 AI 서버는 엔비디아 암페어 A12000 텐서 코어 GPU를 중심으로 구축돼 있으며, 고속 인피니밴드 네트워크를 통해 상호 연결돼 있다.

애저에 오픈AI 추가

오픈AI의 생성 AI 도구는 애저 서버에서 구축되고 학습됐다. 오픈AI와 마이크로소프트의 파트너십에 따라 오픈AI의 도구는 애저 전용 API 및 애저 과금 서비스와 통합돼 애저의 일부로 제공되고 있다. 그리고 비공개 프리뷰를 거친 끝에 ‘애저 오픈AI’ API가 일반에 공개됐다. GPT-3 텍스트 생성과 코덱스 코드 모델이 지원된다. 마이크로소프트는 향후 업데이트에서 달리(DALL-E) 이미지 생성을 추가할 예정이라고 밝혔다. 

그렇다고 누구나 GPT-3를 사용하는 앱을 구축할 수 있는 건 아니다. 마이크로소프트는 프로젝트가 윤리적 AI 사용 정책을 준수하고, 특정 사용 사례에 한정되도록 여전히 액세스를 통제하고 있다. 아울러 마이크로소프트 고객이어야 애저 오픈AI에 접근할 수 있다. 사칭이나 프라이버시 침해 가능성이 있는 마이크로소프트 제한접근인지서비스(LACS)에도 유사한 프로세스가 적용되고 있다.

이러한 정책은 엄격하게 유지될 가능성이 높다. 의료 서비스 등의 일부 영역은 규제 요건을 충족하기 위해 추가 보호 장치가 필요할 수 있다. 마이크로소프트는 AI 언어 모델과 관련해 다시는 반복하고 싶지 않은 교훈을 얻은 바 있다(편집자 주: 인공지능 챗봇 ‘테이(Tay)’). 추가 보호 장치로는 입출력 필터가 있으며, 마이크로소프트와 개발자 모두에게 경고가 간다.

오픈AI 스튜디오(Azure OpenAI Studio) 살펴보기

애저 오픈AI 사용 승인을 받았다면 [애저 오픈AI의] API 엔드포인트를 쓰는 코드를 빌드할 수 있다. 적절한 애저 리소스는 포털, 애저 CLI 또는 암(Arm) 템플릿에서 생성할 수 있다. 애저 포털을 사용 중이라면 앱과 관련된 모든 애저 서비스 및 인프라에 활용하고자 하는 리소스 그룹 그리고 계정에 할당된 리소스를 생성한다. 그다음 리소스 이름을 지정하고, 요금제를 선택한다. 현재는 요금제 옵션이 하나뿐이지만 앞으로 마이크로소프트가 새로운 서비스 계층을 출시하면 달라질 가능성이 있다.

리소스가 준비됐다면 이제 ‘애저 오픈AI 스튜디오’를 활용해 모델을 배포할 수 있다. 여기서 오픈API 작업의 대부분을 하게 된다. 코드 기반 코덱스를 포함하여 GPT-3 제품군을 선택할 수 있다. 추가 모델은 검색에 최적화된 임베딩을 사용한다.

각 제품군에는 다양한 모델이 있다. GPT-3를 쓴다고 할 때 ‘에이다(Ada)’가 가장 저렴하고 기능도 적으며, ‘다빈치(Davinci)’가 가장 비싸고 기능도 많다. 각 모델은 이전 모델의 상위 집합이다. 따라서 작업이 복잡해지면 코드를 변경할 필요 없이 다른 모델을 선택하면 된다. 흥미롭게도 마이크로소프트는 오픈AI 기반의 애플리케이션을 설계할 때 가장 좋은 모델부터 시작하라고 권장한다. 그래야 프로덕션에 진입할 때 기본 모델을 가격과 성능에 맞게 조정할 수 있다.

모델 사용자 정의

GPT-3의 텍스트 완성 기능은 입소문이 났지만 실제로는 애플리케이션의 구체적인 사용 사례에 집중해야 한다. GPT-3가 무의미한 조언을 제공하는 지원 서비스에 GPT-3를 사용하길 원치 않을 것이다. 

입력 내용과 원하는 출력 내용을 갖춘 학습 예제를 활용해 사용자 정의 모델을 구축해야 한다. 이때 애저 오픈AI에서는 원하는 출력 내용을 ‘컴플리션(completions)’이라고 부른다. 대량의 학습 데이터세트를 갖추는 게 중요한데, 마이크로소프트는 수백 개의 예제를 사용하라고 권장하고 있다. 학습 데이터 관리를 간소화하려면 모든 프롬프트와 컴플리션을 하나의 JSON 파일에 포함시키면 된다.

사용자 정의 모델이 갖춰지면 애저 오픈AI 스튜디오를 활용하여 시나리오에서 GPT-3가 어떻게 작동하는지 테스트할 수 있다. 기본 플레이그라운드를 통해 이 모델이 어떻게 특정 프롬프트에 응답하는지 확인할 수 있다. 기본 콘솔 앱으로 프롬프트를 입력하면 오픈AI 컴플리션이 반환된다. 

마이크로소프트는 좋은 프롬프트 구축을 ‘말하지 말고 보여주기(show, don’t tell)’라고 설명하면서, 프롬프트가 최대한 구체적이어야 최적의 출력물을 얻을 수 있다고 전했다. 플레이그라운드는 모델 학습도 지원한다. 가령 분류기(classifier)를 구축 중이라면 입력 및 응답을 끌어 낼 트리거를 제공하기 앞서 텍스트와 예상 출력물 목록을 확인할 수 있다.

아울러 플레이그라운드의 유용한 기능은 의도와 예상 동작을 초기에 설정할 수 있다는 점이다. 예를 들어 오픈AI를 헬프 데스크의 우선순위 분류 도구에 활용 중이라면 [분노한 사용자를 흉내 내지 않고] 정중하고 차분한 출력을 예상한다고 설정할 수 있다. 코덱스 모델에도 동일한 도구를 쓸 수 있다. 따라서 이 모델이 코드 완성을 위한 도구로써 또는 역동적인 비서로서 어떻게 작동하는지 확인할 수 있다.

애저 오픈AI와 연계되는 코드 작성

코딩을 시작할 준비가 됐다면 배포의 REST 엔드포인트를 직접 또는 오픈AI 파이썬 라이브러리와 함께 사용할 수 있다. 후자가 아마도 실시간 코드로 가는 가장 빠른 경로일 것이다. 엔드포인트 URL, 인증키, 배포판 이름이 필요하다. 이러한 변수가 있으면 코드에 적합한 환경 변수를 설정한다. 항상 그렇듯이 프로덕션 환경에서는 키를 하드코딩하지 않고 애저 키 보관소(Azure Key Vault) 등의 도구로 관리하는 게 좋다. 

엔드포인트 호출은 매우 쉽다. openai.Completion.create 메소드를 사용해 응답을 받고, 프롬프트와 해당 응답을 포함하는 데 필요한 최대 토큰 수를 설정하면 된다. API가 반환한 응답 개체에는 모델에서 생성한 텍스트가 포함돼 있으며, 이를 추출하여 서식을 지정한 다음 나머지 코드에서 쓸 수 있다. 기본 호출은 간단하며, 응답을 관리하는 데 사용할 수 있는 추가 매개변수가 있다. 이러한 추가 매개변수는 모델의 창의성과 결과를 샘플링하는 방법을 제어하기 때문에 응답이 간단하고 정확한지 확인할 수 있다.

또 다른 언어를 사용한다면 [해당 언어의] REST 및 JSON 구문 분석 도구를 활용해야 한다. 애저 오픈AI 문서에서 API 레퍼런스를 찾아보거나애저의 깃허브 기반 스웨거 사양을 활용해 API 호출을 생성하고, 반환된 데이터로 작업할 수 있다. 이 방식은 비주얼 스튜디오 등의 IDE에서도 원활하게 작동한다.

애저 오픈AI 비용

오픈AI 모델의 한 가지 핵심 요소는 바로 ‘토큰 기반 가격 모델’이다. 애저 오픈AI의 토큰은 익숙한 인증 토큰이 아니다. 내부 통계 모델을 사용하여 생성된 문자열의 토큰화된 섹션이다. 오픈AI는 쿼리가 어떻게 청구되는지 이해하는 데 도움이 되도록 문자열이 토큰화되는 방식을 보여주는 도구를 사이트에서 제공하고 있다. 토큰 하나에 예상되는 텍스트는 약 4자의 문자인데, 그 이하일 수도 있고 그 이하일 수도 있다. 75 단어라면 약 100개의 토큰이 필요할 수 있다.

모델이 복잡할수록 토큰 가격이 높아진다. 기본 모델 ‘에이다’는 토큰 1,000개당 약 0.0004달러이며, 다빈치는 0.02달러다. 자체 튜닝을 적용하면 스토리지 비용이 발생하고, 임베딩을 사용하면 늘어난 컴퓨팅 요건 때문에 비용이 훨씬 더 커질 수 있다. 모델 세부 조정과 관련해 컴퓨팅 시간당 20달러부터 시작하는 추가 비용도 있다. 애저 웹사이트에 견본 가격이 있지만 실제 요금은 달라질 수 있다고 회사 측은 전했다.

애저 오픈 AI의 가장 놀라운 점은 간단하다는 점이다. 사전 구축된 모델을 사용하기 때문에(물론 세부 조정 선택도 가능하다) 기본적인 사전 학습을 적용하고, 프롬프트가 출력물을 생성하는 방식을 이해하며, 도구를 코드에 연결하여 텍스트 내용이나 코드를 [필요할 때] 생성하기만 하면 된다.

출처 : https://www.itworld.co.kr/t/69500/AI%E3%86%8DML/276259

위 포스팅이 문제될 시 삭제하겠습니다.

cnfcj

댓글 없음:

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.

Powered by Blogger.