세미나 후기

[NCUC] 두번째 판교 소모임 후기

graph-dev 2024. 4. 27. 18:12
728x90

NCUC 판교 소모임

 

 

네이버클라우드 사용자 그룹(커뮤니티)의 두번째 판교 소모임 후기를 남깁니다.

 

두번째 NCUC 판교 소모임

판교에서는 두번째 소모임입니다. 가벼운 네트워킹을 기대하고 들어왔는데, 항상 시간이 모자라다는 생각을 하게 됩니다.

7시에 시작하고, 벌써 많은 분들이 오셔서 준비된 맛있는 샌드위치로 저녁을 먹을 수 있었습니다. 또한 멋진 기념품도 제공받았는데요, 여행용 가방에 부착하거나 장착하면 좋겠다고 생각했습니다.

 

자기소개: 나는 이런 사람입니다!

1분 자기소개 시간

모임의 시작은 서로에 대해 알아가는 시간이었습니다. 작년에도 그렇고, 많은 분들이 와주셔서 간단하게 자기소개를 했습니다. 들어보니 주로 파트너사 분들이 많이 오셨고, 그 외에 AI 연구원, 개발자, 마케터도 오셨습니다. 의외로, 현재 무직상태이거나 Gap year를 가지며 다양한 활동을 하고 계신 사용자들도 많이 있었습니다. 이제는 클라우드가 기업만의 것이 아니라 일반 개인에게도 좀 더 친숙하게 다가가고 있다는 신호로 보여 좋게 생각하고 있습니다.

 

네이버클라우드에 대한 호기심 과 각자 사용하는 서비스 등에 대해 열정적으로 소개해주셨습니다.

가벼운 소개를 마치고, 본격적인 강의 시간을 가졌습니다.

 

 

Keycloak으로 세팅해보는 1계정 3쿠버

이수진님의 발표로 첫 강의를 시작했습니다.

 

 

이수진님은 네이버클라우드 콘텐츠 마스터로 활동중입니다. MSP 사에 근무하시면서도, 쿠버네티스에 관한 큰 열정을 갖고 활동하고 있죠. 개인 블로그도 운영중으로, 한번 시간될때 둘러보심 좋겠습니다.

 

https://lifeoncloud.kr

 

Life On Cloud

클라우드 엔지니어의 기술 블로그입니다. 긍정적인 결과를 위해 노력합니다.

lifeoncloud.kr

 

사실 쿠버네티스는 중소 규모에서는 잘 사용하지 않는 편입니다. 그럼에도 배우는 이유는, 점차 규모가 커지면서 너도나도 뛰어드는 분야이기도 하거든요. 보안 상으로 유리하고, 컨테이너를 많이 다룬다면 효과적인 도구라고 들었기에 공감만 했습니다.

물론, 더 넓은 세상으로 가서 멀티 클라우드 엔지니어로 활약하려면 아마 필수적인 도구가 아닐까 생각합니다. 그런 생각으로 가볍게 들어보았습니다.

 

Keycloak: 표준 보안 프로토콜을 준수하는 오픈소스

 

키클락이라고 하는 이 도구는, 일단 오픈소스입니다. 무료로 사용이 가능합니다. 표준을 지킨다는 것은, 다른 의미로 여러 업체의 클라우드에 공통적으로 적용하기 좋다는 것입니다. OpenID, SAML 이런 이야기를 보면, 어떤 로그인에 도움을 줄 것이라 추측할 수 있습니다.

 

 

키클락 로고

 

 

 

키클락의 기능

  1. SSO(Single Sign-On)
  2. Ldav(엘다브), LVE

이 엘다브와 연동해서 다양한 CSP사에서 유저 관리를 위해 지원해주고 있습니다.

이 콘텐츠를 가져온 이유는, 일단 오픈소스로 무료입니다. 또, 그 유명한 구글 워크스페이스도 키클락과 연동하기 위해 엘다브와 연동해야합니다. 사용자가 당사자인지 확인할 때, 이 키클락 이메일 세팅을 하면 쉽게 적용 가능하여 아주 편리합니다.

  • CNCF에서 졸업 수준 인큐베이팅 된 프로젝트입니다. 어느정도 인정된 완성도를 보여줍니다.
  • ID 관련 오픈소스와 다양한 기업과 싱글사인온 기능과 함께 지원하고 있습니다.

 

키클락

 

 

인증(Authentication) vs 인가(Authorization)

인증과 인가의 차이를 아십니까?

  • 인증: 누구세요? 누구인지 인증 → 판교소모임 행사 온 ***입니다. 이제 이 곳의 컴퓨터들은 모두 제겁니다.
  • 인가: 그래서 당신 그것을 할 수 있나요? 권한 → 이제 이 곳의 컴퓨터들은 모두 제겁니다.

인증은 누군인지 밝히고, 확인하는 것입니다. 인가는 그 역할과 권한을 폭넓게 검증하는 것입니다. 키클락 발표의 1/3이 인증과 인가 이야기입니다. 이 개념을 알고 들어보면 좋겠네요.

 

 

 

이제 본격적인 1쿠버 3쿠버 스토리로, 대략 아래와 같은 순서로 발표해주셨습니다.

 

1계정 3쿠버 순서

 

1계정 1쿠버 : GKE

대부분의 CSP 사에서 OIDC 인증을 지원하는 쿠버네티스 서비스를 제공합니다. 구글 클라우드 쿠버네티스를 가져온 이유는, 전체적인 키클락의 흐름을 보기 위함입니다. 그래서 GKE를 활용하여, OIDC 로그인으로 진행했습니다.

 

키클락 설정값, 클라이언트 값, 시크릿까지 넣으면, 로그인 창이 뜹니다. 로그인해서 GKE 들어가서 구글 로그인을 가능하게 합니다. 이메일을 확인해보라는 창으로 변경되고, 실제 이메일이 옵니다. 이메일 내 링크를 통해 로그인하면 GKE 리소스 관리가 가능합니다.

 

CLI를 통해, 구글 로그인 → 인증해서 로컬 → GKE를 배포하면 됩니다. GKE 콘솔에서도 이 배포된 것을 확인할 수 있습니다.

 

1계정 2쿠버 : NKS

네이버클라우드 쿠버네티스(Ncloud Kunernetes Service, NKS)에서도 OIDC 인증을 공식 문서에서 매우 자세하게 소개하고 있습니다. OIDC 인증, SSO를 보여줍니다.

 

NKS 클릭 시 OIDC 인증 설정을 할 수 있습니다. 키클락 화면과 네이버클라우드 화면을 한번에 보여주셨습니다. 두 화면에서 서로 상호작용하는 모습을 보여주기에 좋아보였습니다. 키클락에서 관련된 클라이언트 설정해주고, 키클락이라는 네이버가 아닌 제 3자의 정체불명의 누군가에 대해 설명해주는 설정을 했습니다.

 

키클락 설정을 다운로드 받고 → 관련 설정(클라이언트) 임포트 → 조금 전 다운로드 받은 다운로드 데이터 → 메타데이터 임포트하고 키클락 네이버클라우드 관련 설정 → 네이버클라우드 콘솔에서 설정 (client-mapper)

 

다른 클라이언트와 권한 설정할 때 포멀하고 많이 쓰이는 사전 정의된 role을 지원하고 있습니다.

 

2쿠버 NKS

 

키클락 설정 파고들기

유저 프로퍼티 → 관련 메타데이터와 로그인 URL 복사 → 로그인

 

  • NKS 프로파일 브라우저 전용 : NKS가 제공하는 브라우저에서 로그인 URL 입니다. 그룹에 NKS 사용자를 넣고, 그룹에는 NKS 관련 권한을 매핑합니다. 그러면, 권한 가진 그룹 속 사용자는 NKS 권한을 상속 받습니다.

구글 로그인처럼 들어가지만 → SSO 역할 전환 (콘솔과 API 중 선택지 제공) → NKS 관련 권한을 그룹에 넣고 적용하면, 서비스 목록에 나타납니다.

 

녹색의 NKS 유저

 

1계정 3쿠버: EKS

 

그룹 권한 상속까지 부드럽게 이어지며, 다른 CSP사의 쿠버네티스와 다르게 CLI 상에서 YAML 파일로 정의할 수 있어 편리합니다.

그룹 사용자 없을 때는 사용자가 접근해도 권한이 없습니다. 다시 권한을 가진 그룹에 속하면, 접근할 수 있게 됩니다.

순서는 그룹에 할당하고 나서 → 토큰 받기 → OIDC 사용자에 devops 그룹 할당 → EKS 클러스터 및 리소스 접근 이렇게 진행됩니다.

 

EKS CLI 설정

 

발표 요약

Keycloak으로 세팅해보는 1계정 3쿠버에 대한 발표를 진행했습니다. 그 외에도 중국, 프랑스 클라우드 등에서는 키클락보다 개별적으로 OIDC 인증을 지원합니다. 멀티 쿠버네티스 클러스터를 관리하고 싶다면 OIDC 인증으로 통합 인증으로 관리할 수 있습니다.

 

TMI: 1계정 n쿠버?

TMI로, 중국클라우드(알리바바 클라우드)도 가능은 한데, 여권 사본을 요구하여 그만두었다고 합니다. 기업은 사업자 인증, 개인은 여권 사본이 필요한게 중국의 정책이라고 합니다.

 

 

재미있는 쿠버네티스 이야기로 첫 강의를 마무리했습니다. 다음은, 서현석님의 하이퍼클로바 X 활용기입니다.

 

HyperCLOVA X in Application

HCX 응용기

 

 

AI Software Engineer 서현석님의 하이퍼클로바 활용기를 들어보았습니다. 외계공룡이라는 이름으로 블로그도 운영 중이니 놀러오세요!

 

외계공룡 개발블로그

개발을 통해 얻은 지식과 경험을 공유하고 소통하고 싶습니다.

chucoding.tistory.com

 

 

간략하게 LLM(대규모 언어모델), 네이버의 LLM, HCX부터 클로바 스튜디오와 챗봇 비교 이야기로 시작했습니다.

 

용어정리

 

  1. LLM : Large Language Model
    1. Chat GPT의 LLM: GPT 3 / GPT4
    2. 네이버의 LLM : 하이퍼클로바 X (HCX)
  2. Prompt
    1. 프롬프트 : 리눅스 커널에서 OS에 입력하는 명령어?
      ▶ LLM의 프롬프트 : AI 모델에게 특정 답변을 유도하는 질문
  3. CLOVA X vs CLOVA Studio : 둘다 하이퍼클로바 X(HCX) 기반 SaaS 서비스
    1. CLOVA X : 네이버 제공 B2C 서비스, 특정 질문으로 정보성 답변을 요구하고 얻는 AI 에이전트
    2. CLOVA Studio : 네이버클라우드가 관리하는 B2B 서비스, CLOVA X에 비해 모델 튜닝 많이 하는 기업용 솔루션 성격이 더 강하다.
  4. CLOVA Studio vs CLOVA Chatbot : 네이버 클로바 서비스
    1. CLOVA Studio :  학습 기반 답변을 요하는 챗봇, 포용성 있고   생산성 높은  챗봇
    2. CLOVA Chatbot : 규칙 기반, 룰베이스 성격, FAQ 등 정확한 답변이 필요한 챗봇

 

 

CLOVA Studio 기본 화면 소개

HCX 기본 화면

 

CLOVA Studio 메뉴는 상단에 플레이 그라운드, 튜닝, 익스플로러, 스킬 트레이너, 포럼으로 구성하고 있습니다. 하단에도 플레이 그라운드 튜닝 그리고 이쪽은 스킬 트레이너 등 바로 가기 메뉴들이 있는 컴포넌트를 눌러서 동일하게 이용 가능합니다.

 

1. 플레이그라운드

플레이 그라운드는 모델 엔진을 선택하여 사용합니다. 이게 모델이고, 원하는 모델을 선택을 해서 사용자의 메시지를 입력하고 실행하면 답변을 확인 수가 있습니다. 그 외에 여러 가지 이제 옵션이 있습니다. 시스템 지시문 등이 있으며, 테스트 환경을 보여줍니다.

 

2. 튜닝

다음으로 튜닝은 모델을 직접 학습할  있는 화면입니다. 만약에 예를 들어 도메인 특화된 모델을 만들고 싶을 때 사용합니다. 예를 들면, 의료나 이커머스 같은 특정 분야에서 그에 관한 답변을 해주는 모델을 제작한다면, 튜닝 API를 통해 기본 LLM 모델을 해당 분야에 맞게 학습(튜닝)을 거쳐 한번 더 가공할 수 있습니다.  외에도 감정 분석, 문장 생성, 문장 요약  다양한 태스크에 맞는 모델을 생성을  수가 있습니다.

 

튜닝 화면

 

튜닝에서 다양한 도구를 제시하는데, 그 중 튜닝 API를 보면, HyperCLOVA X라는 태그가 있습니다. 기존 모델보다 강력한 모델을 사용한다는 것입니다. 특히,

하이퍼 클로바 X로 튜닝을 하려면, 이 태그가 붙은 도구를 활용할 수 있습니다. 위의 그림이라면, 튜닝 API가 해당하겠습니다.  이 튜닝 API로 튜닝을 하려면,  인스트럭션 데이터셋는 '학습 데이터셋'을 구성해야 합니다.


그 다음, 학습 생성 API로   데이터셋을 학습시킬 수가 있습니다.  이후 추론 API를 가지고 결과값을  확인하는 구조를 가집니다. API로도 확인이 가능하고, 스키마를 통해 호출할 수도 있습니다.


 API를 이제 호출을   필요한 데이터셋은 텍스트 컴플리션 형식이 있어서, 질문-답변 형식으로 구성합니다. 데이터셋 확장자는 .csv

 혹은 .jsonl 만 지원하며, UTF-8 인코딩을 따릅니다. 이후 데이터셋을 바탕으로, 학습 생성 API 호출하여 학습합니다.

 

 

3. 익스플로러

익스플로러도 튜닝과 비슷해보이지만, 튜닝은 모델을 학습하는 공간이고, 익스플로러는 모델을 더 다양하게 활용할 수 있도록 돕는 플러그인, SDK 등에 가깝습니다.

 

먼저 도구가 있습니다. 예를 들면, 토큰 계산기는 토큰 수를 계산하는 도구로, 토큰 수에 따른 요금에 대비하기 좋습니다. 그 외에도 문단 나누기, 요약 등이 있고, 임베딩 API는 벡터 데이터베이스 앱을 별도로 사용할 때 편리합니다.

 

다음으로 샘플이 있습니다. 샘플은 미리 만든 데이터셋으로, 바로 테스트하기 좋습니다. 대화 데이터 하나를 사용해보겠습니다. 플레이그라운드에서 열기를 누르면, 챗봇과 비슷한 화면으로, 테스트할 때 활용할 수 있습니다.

 

예를 들어 게임 캐릭터 생성 챗봇을 만든다면, 샘플에서 같은 이름인 게임 캐릭터 생성 샘플을 누릅니다.

 

게임 캐릭터 생성 샘플

 

상세 내용에서 실제 엔진 및 파라미터 값들을 확인하고, 시스템 지시문 등 구성을 한눈에 확인합니다. 테스트를 해본다면, "플레이그라운드에서 열기"를 눌러서, 직접 실행하고 답변을 보면서 확인해볼 수 있습니다.

 

4. 스킬 트레이너

다음은 스킬 트레이너입니다. 스킬 트레이너는 외부 API를 연동해서 모델의 답변으로 사용할  있습니다. 생성형 AI의 가장  단점은 할루시네이션 현상으로, 진실이 아닌 결과를 진짜처럼 답변하는 현상입니다. 이를 해결하고자, 스킬 트레이너를 제공하고 있습니다.

 

그 외에도, 스킬 트레이너는 과거 데이터로 학습한 이 모델의 한계를 극복하는데 도움을 줄 수 있습니다.  예를 들어, 어제 영화 순위가 궁금하거나 아니면 기상청에 날씨 내일 날씨, 오늘 날씨를 묻고 싶을 때 외부 API를 연동해야 합니다. 스킬 트레이너는 사용자의 질문을 분석해서  질문이 외부 API를 호출해야 되는 질문인지 판별합니다. 판별 후,  API에 맞게 연동하고, 필요한 정보를 가져와서 답변을 생성 후 내보내 기능을 가집니다.

 

5. 포럼

마지막으로, 포럼인데요. 포럼은 네이버클라우드 클로바 스튜디오에 관한 최신 버전에 관한 공지나 활용 방법, 이용 문의 등을 한눈에 확인할 수 있는 메뉴입니다.

 

 

실전: 페르소나 봇 만들어보기

 플레이 그라운드에 관한 설명을 해주시고, 맥시멈 토큰에 관해 유의사항을 알려주셨습니다. 맥시멈 토큰은 결과 문장의 길이를 제한하는 파라미터입니다. HCX는 토큰 수 기반으로 과금이 되므로, 이러한 맥시멈 토큰을 잘 조절하면 저렴하게 활용할 수 있습니다. 

 

이번에는 HCX 모델로, 플레이그라운드에서

조선시대의 왕으로 페르소나를 설정하여 봇을 만들고, 질문을 해서 그 결과를 확인해보겠습니다.

 

1. 사용자 프롬프트로 "전하 통촉하여 주시옵소서" 입력

 

어시스턴트 답변을 보면, 아쉽게도 우리가 원하는 페르소나 봇의 답변이 나오지 않습니다. 페르소나를 설정하기 위해 시스템에 조선시대 왕으로 설정해달라고 입력해봅니다.

 

2. 추가로 시스템 지시문에 "당신은 조선의 왕입니다" 입력

 

어시스턴트의 답변이 확실히 달라졌습니다. 시스템 지시문을 통해, "조선의 왕"이란 역할을 부여했기 때문입니다. 이것이 페르소나 봇에 가깝다고 할 수 있겠죠?

 

 

 

챗봇을 만드려면, 테스트 앱을 만들어야 합니다. 작업을 먼저 저장하고, 그 다음 테스트 앱 만들기 버튼을 누릅니다. API 키와 URL, 코드 타입을 파이썬으로 지정하면 됩니다. Request Body에 들어가는 내용을 보면, 메시지 내 시스템은 시스템 지시문이 되고, 유저는 사용자의 메시지(프롬프트)가 될 것입니다. 그 외의 파라미터도 그대로 사용할 수 있습니다. 앱을 만들 때, 이 파라미터 값을 바꿔서 설정할 수 있습니다. 다만 사용자가 입력해야하는 값은 가변 변수로 제작하면 됩니다.

 

 

사례: 크리스마스 카드 만들기

작년 포텐데이에 만든 앱을 보여주셨습니다. 아래와 같이 도우미(페르소나)를 설정하고, 입력하면 나온다고 합니다.

https://xmas.swygbro.com

크리스마스 카드

 

 

 

 

자상하고 다정한 할아버지로 설정해서 만들었습니다.

 

감동적인 답변

 

정말 할아버지가 작성한 느낌을 받네요. 적절하게 활용하면 좋겠습니다.

 

페르소나

시스템 지시문을 간단히 살펴보면 다음과 같습니다.

  1. 내용은 그대로 유지하고 말투만 바꾼다.
  2. 상황에 따라 여자 또는 남자가 될 수 있지만, 답변에는 오빠, 형, 누나 이렇게 나오지 않게 하라. 
  3. 내용은 100자 이상, 130자 이하로 늘여쓴다. 적당히 끊어주게 한다. (끊기지 않게 처리)

2번의 경우, 할아버지가 어린 나이의 사람에게 "오빠"란 표현을 쓰는 것은 적절하지 않겠죠? 이럴 때, 필요하다면 튜닝 메뉴에서 데이터셋을 구축하여 튜닝 후 결과를 보며 개선해나가는 것도 좋습니다. 또한, 적당히 끊어주는 것은 반복해서 무한정 답변하는 경우를 방지하기 위함입니다. 혹은 슬라이딩 윈도우라는 도구를 활용해봐도 좋겠습니다.

 

 

HCX with Cloud Function

 

CLOVA Studio X Cloud Function

 

 

하이퍼 클로바를 클라우드 펑션에서 하이퍼콜로바 X를 호출해볼 수 있습니다. API pipeline은 아래와 같습니다.

 

클라이언트 → Cloud Functions  HyperCLOVA X

 

 

1. 클라이언트
 번째로 클라이언트는 NextJs, Nginx 등으로 프록시 서버를 구축하고 Cloud Functions를 먼저 호출합니다.

 

2. Cloud Functions 

이 Functions의 웹 액션으로 API GW 연동하고 웹 서버 라이브러리로 HCX APi 호출합니다.

 

3. HCXHCX API를 통해 추론 결과를 확인합니다.

 

API pipilines

 

 

이러한 활용의 장점은 효율적인 과금, 빠른 생산성, 프롬프트 로깅이 있습니다.

 

클로바와 클라우드 펑션을 함께 활용시 장점

 

 

다양한 장점이 있지만, 가장 좋아보인 점은 프롬프트 로깅입니다. 현석님도 가장 좋게 보는 장점이라 생각했다고 합니다. Cloud Functions는 연동된 CLA라는 서비스가 있습니다. Cloud Log Analytics 서비스입니다. 이를 통해 쉽고 간편하게  모니터링이 가능합니다.

 

먼저, 기존 네이버클라우드 내부 CLOVA Studio 콘솔도 모니터링을 위한 대시보드를 제공합니다.

 모델 및 태스크별로 사용량을 보여주고,

 일별 사용량도 확인할 수 있습니다. 다만, 프롬프트의 결과가 어떻게 나왔는지, 보내는 값 등은 확인할 수 없습니다. 또한, 월별 사용량, 시간별 트래픽 등을 확인하는 것도 제한이 있습니다.

 

반면, 이 Cloud Functions를 활용한 모니터링으로는, 로그 기록을 통해 특정 시간에 호출 시행 횟수, 실행 시간 등을 상세히 보여주고, 이를 커스텀해서 다양한 대시보드로 만들어 활용할 수 있습니다. 생산성도 높아지고, 빠르게 테스트해서 앱을 만드는데 도움을 줄 수 있습니다.


CLOVA 답변 API를 클라우드 펑션을 통해서 호출하면 답변 결과들을 볼 수 있습니다. 이를 프롬프트 결과를 보면, 어떻게 로깅해서 답변이 나왔는지 한 번에 확인할 수 있어 편리합니다. 다만 한달까지만 기록이 되므로, 더 확인하려면 별도로 구축할 필요가 있습니다.

 

요약하면 다음과 같습니다.

  • Clova studio: 월별 사용량, 시간별 트래픽 추적에 제한이 있음,
  • Cloud function : API 호출 실행 수 등 다양한 대시보드 값들을 제공함.
    • 제일 중요한 부분.
    • 로깅과 답변 등을 한번에 확인가능
    • 단점 : CLA는 한달까지만 지원됨. 더 보려면, 별도로 구축해야함.

 

 

 

참고할 만한 사이트

 

이와 관련하여 다양한 참고 사이트를 주셨습니다. 외계공룡님의 블로그 자료만 봐도 공부가 많이 될 것 같습니다.

 

 

네트워킹: 짧지만 인상깊은 만남

 

네트워킹 시간에는 자유롭게 이야기를 했습니다. 같은 MSP 사 분들의 고충을 듣기도 하고, 앞으로의 커리어 이야기도 나눌 수 있었습니다. 네이버클라우드에서는 이러한 자체적인 개발자, 엔지니어, 마케터 등 사용자들의 커뮤니티와 생태계를 구축하는 걸 원한다고 합니다. 앞으로 많은 네이버클라우드 소모임과 커뮤니티가 더 활성화되면 좋겠습니다.

 

앞으로를 기대하며 글을 마무리합니다. 감사합니다.