[2023 오픈소스 컨트리뷰션 아카데미] Masters 중간 점검

Pt J·2023년 9월 18일
0
post-thumbnail

자료 조사

Masters 기간이 시작되는 8월 중순부터 말까지는 각자의 일정으로 바쁜 팀원들이 있어 일정을 널널하게 잡았다. 사무국에서 #용어집 채널을 만들어준 8월 17일부터 9월 3일까지 약 3주 동안 각자 벤치마킹할 만한 용어집 사이트가 있는지, Streamlit 컴포넌트 중에는 써먹을 수 있을 법한 게 뭐가 있는지 찾아보는 시간을 가졌다.

그런데 진행하다보니 8월에 도저히 여건이 안 되는 경우가 있어 9월 14일 목요일에 중간 점검을 하기로 하고 그 때까지 약 한 달간 이것저것 조사해보기로 하였다.

타 용어집 사이트 벤치마킹

몇 가지 용어집 사이트를 훑어본 결과, 한 페이지에 모든 용어들을 다 담고 있는 사이트도 있고 알파벳 첫 글자를 기준으로 페이지를 나눠 놓은 사이트도 있고 게시판 형태로 페이지 당 몇 단어씩 모아서 순서대로 나열해 놓은 사이트도 있었다. 검색 기능의 유무는 각 사이트가 보유하고 있는 단어의 규모에 따라 달라졌으며, 일반적으로 용어의 번역뿐만 아니라 정의를 함께 보여주었다. 번역 옆에 정의를 바로 띄워주는 경우도 있고 단어를 클릭하면 정의 페이지로 연결되는 경우도 있었는데, 어찌 되었건 단어의 정의는 빠지지 않는 것 같다.

보통은 TTA정보통신용어사전과 같이 규모 있는 용어집 사이트가 아니라면 해당 분야의 사이트 내 하위 페이지로 들어가 있는데, 우리는 프롬프트 엔지니어링 가이드의 번역에 대한 권한만 있을 뿐, 페이지를 따로 추가하고자 하면 Dair AI 측과의 논의가 필요하기 때문에 규모가 크진 않지만 용어집 사이트를 따로 제작하기로 했다.

대략 논의해봐야 할 내용은 다음과 같다.

  • 단어의 정의 작성 여부 | 우리가 번역 작업을 하며 모아놓은 용어집에는 단어의 정의가 존재하지 않기 때문에 작업해야 할 양이 늘어나지만, 사용자 관점에서는 보다 유익한 용어집이 된다.
    ⇒ 정의를 작성하기로 할 경우 각 용어에 대한 정의 조사 및 작성 필요
  • 검색 기능 구현 여부 | 우리의 용어집 규모에서는 크게 필요하지 않을 수 있지만 검색 기능과 관련된 응용이 가능할 것 같다. 프롬프트로 검색하면 그 설명에 맞는 용어 찾아주는 서비스를 구현하기는 번거로우려나?
  • 분류 태그 구현 여부 | 다른 용어집에서 벤치마킹한 건 아니고, 우리가 가진 용어가 다양한 분야의 용어가 있다보니 일반적인 명사인지, LLM 분야의 용어인지, AI 분야의 용어인지, IT 전반에 걸쳐 쓰이는 용어인지... 그리고 LLM 분야의 용어 중에서도 이게 어떤 기법의 이름인지, 서비스 이름인지 등등 다중 선택 태그를 이용하여 용어를 분류하고 해당 태그가 붙은 단어만 모아서 볼 수 있는 기능이 있으면 좋을 것 같다.
    ⇒ 분류 태그를 사용하기로 할 경우 태그 종류 설정 및 각 용어에 태깅 작업 필요

그리고 5주차부터 진행할 설계 작업을 위해 다음과 같은 내용도 논의해야 한다.

  • 구성 방식 | 리스트? 표? 어떤 방식이 좋을까?

    • 리스트

      예시 (정의는 임의로 적은 것)

      • Large Language Model(LLM) | 대규모 언어 모델
        인공 지능 및 자연어 처리 분야에서 대량의 텍스트 데이터를 기반으로 학습하며, 인간과 유사한 언어 이해 및 생성 능력을 갖춘 시스템
      • prompt | 프롬프트
        사용자가 대규모 언어 모델과 소통하기 위해 작성하여 명령 정보를 담고 있는 글
    • 예시 (정의는 임의로 적은 것)

      영문한글정의
      Large Language Model(LLM)대규모 언어 모델인공 지능 및 자연어 처리 분야에서 대량의 텍스트 데이터를 기반으로 학습하며, 인간과 유사한 언어 이해 및 생성 능력을 갖춘 시스템
      prompt프롬프트사용자가 대규모 언어 모델과 소통하기 위해 작성하여 명령 정보를 담고 있는 글
    • 링크가 있는 목록 (단어의 정의 작성 여부작성한다 로 결정되었을 경우만 해당)

      예시 (정의는 임의로 적은 것)

      • Large Language Model(LLM) | 대규모 언어 모델
      • prompt | 프롬프트

      prompt | 프롬프트 클릭 시

      prompt | 프롬프트
      사용자가 대규모 언어 모델과 소통하기 위해 작성하여 명령 정보를 담고 있는 글

    • 그 외 다양한 방식
  • 사이트 구조 | 단일 페이지? 게시판 형식? 클릭 시 하위 페이지 이동 혹은 새 창 혹은 레이어 팝업?

    • 단일 페이지 방식은 말 그대로 한 페이지 내에 모든 내용을 다 작성하는 방식으로, IBM이나 쿠버네티스 용어집에서 확인할 수 있다. 경우에 따라서는 Apple 용어집처럼 첫 글자에 따른 앵커를 설정할 수도 있다.
    • 다중 페이지 방식은 단일 페이지 방식이 너무 길어질 경우 스크롤 압박이 발생할 수 있으니 첫 글자에 따라 페이지를 분리하는 방식이다. Apple 용어집처럼 나누되, 앵커로 처리하는 게 아니라 개별 페이지로 나누는 느낌? 우리 용어집은 규모가 크지 않기 때문에 굳이 이 방식을 쓰지 않아도 될 것 같긴 하다.
    • 게시판 형식은 한 페이지에 10개 정도씩 적은 양의 단어로 여러 페이지에 작성하는 방식으로, 한국해사협력센터 또는 국토지리정보원 용어집에서 이와 같은 방식을 확인할 수 있다.
    • 하위 페이지가 있는 경우의 예시는 F5가 있으며, 링크가 있는 목록으로 하여 단어를 클릭해야 단어의 정의 페이지로 이동하도록 할 수 있다. 앞서 언급된 국토지리정보원 또한 하위 페이지를 통해 단어의 정의를 확인할 수 있도록 하였다. 이 예시들은 하위 페이지로 이동하도록 구현되어 있는데, 레이어 팝업 등 다른 방식으로도 구현할 수 있을 것 같다.

이러한 부분들에 대해 생각하며 써먹을 만한 컴포넌트가 있는지, Streamlit 컴포넌트를 살펴보기로 한다.

Streamlit 컴포넌트

  • CSV 파일에 담긴 용어 정보를 웹에 표를 이용하여 나타낼 경우 EJ2-Streamlit-Grid를 이용할 수 있지 않을까.
  • 단일 페이지가 아닐 경우, 메뉴 탭이 필요하다면 On Hover Tabs를 이용할 수 있지 않을까.
  • 요약이 필요할 경우 Toggle button을 사용할 수 있겠지만, 이건 그렇게까지 쓸 일은 없을 것 같긴 하다.

논의

위와 같은 내용을 가지고 9월 14일 목요일 19시, Zoom으로 용어집 팀 회의를 진행하였다. 9월 15일 저녁에 전체 회의를 하기로 하였기에 그 전에 우리끼리 어느 정도 정리를 할 필요가 있다고 느껴 어떻게든 조율해낸(?) 시간이다.

일단 용어의 정의의 경우, 명확한 정의를 프롬프트 엔지니어링 가이드에서 찾아볼 수 있는 용어가 별로 없는데 우리가 전문가는 아니기에 부정확한 정보를 전달할 수 있을 것으로 보여 완성도 측면에서는 아쉽지만 포기하기로 했다. 대신 프롬프트 엔지니어링 가이드를 기반으로 하는 용어집인 만큼, 이 용어가 어느 맥락에서 등장했는지 쉽게 확인할 수 있도록 그 용어가 언급된 페이지들의 링크를 걸어두는 건 어떨까 하는 이야기가 나왔다.

용어별 주요 키워드를 가지고 태깅하는 것도 긍정적으로 검토되었다. Streamlit 컴포넌트 컴포넌트 중에 태그 및 필터링과 관련된 기능을 찾아보는 게 좋겠다.

용어집 구조는 Apple 용어집을 차용하기로 하였다. 알파벳 순으로 정렬하여 토글을 사용하는 방식이다. Apple 용어집의 경우 토글 내에 용어의 정의를 작성하였으나, 우리는 그곳에 키워드 및 언급된 페이지 링크를 넣을 예정이다. 용어가 길지 않으면 키워드는 토글 밖 용어 옆으로 빼는 것도 괜찮을 듯하다.

우리가 Notion에 모아둔 용어는 번역 작업 도중 번역이 애매한 것들 위주로 들어 있기에, 용어집에 굳이 들어갈 필요가 없는 용어도 있고, 용어집에 있으면 좋지만 번역이 명확해서 포함되지 못한 것도 있다. 그래서 기존에 모아둔 용어들 중 사용하지 않을 것을 걸러내고, 프롬프트 엔지니어링 가이드를 살펴보며 추가해야 할 용어를 탐색할 필요가 있다. 우리는 태깅 및 링크 추출 두 명, 새로운 용어 탐색 한 명으로 분할하되, 고정적인 역할이라기보다는 각자가 주도하는 방식으로, 여유가 된다면 다른 작업도 함께 수행하기로 하였다.

이제 본격적인 구현에 앞서 해야 할 일들이 있다.

  • 각 용어에 대한 키워드 태깅
  • 각 용어가 언급된 페이지 링크 추출 (한국 사용자를 위한 것이니 한국어 페이지로 한다)
  • 용어집에 넣을 용어 검토
  • Streamlit에서 필요한 기능 익히기

위 작업을 추석 직전 주말인 9월 23일 토요일까지 하고 Zoom으로 다시 모여 구현에 대한 논의를 하기로 했다.

전체 회의

9월 15일 20시 온오프라인 병행 전체 회의에서는 용어집 팀과 서비스 팀이 그 동안의 작업 진행 상황을 나누고 공통으로 신경써야 할 작업을 논의하는 시간을 가졌다. OpenUp 공간은 낮부터 길게 대관해놓았는데, 일찍 오신 서비스 팀 멘티 분들께서는 전체 회의 전에 모인 사람들끼리라도 그동안 못다한 논의를 진행하셨다. 용어집 팀은 @피터 혼자 오프라인으로 참여하여 앞서 작업하기로 한 키워드 태깅 및 링크 추출 작업을 조금이나마 하고 있었다.

올해는 작년까지와는 달리 클라우드, API 호출 비용 등을 사무국에서 지원해주지 않는 관계로 서비스 팀이 구현할 수 있는 서비스의 선택의 폭이 좁다고 한다. 이것저것 참고할 만한 자료들을 모아둔 것들을 소개해주셨는데 꽤나 흥미롭더라.

우리가 Challenges 기간에 번역한 프롬프트 엔지니어링 가이드에 대해서, 추후 다른 컨트리뷰터가 이를 수정하고자 할 때 우리의 번역 기준을 보지 못한다면 따를 수 없을텐데, 이를 어떻게 명시할 수 있을까 하는 이야기도 나왔다. 일단 독립적인 용어집을 구현하되 저장소 원저자에게 문의하여 답변에 따라 사이트 내부 용어집으로 만들든 컨트리뷰터를 위한 안내를 작성하든 혹은 누군가 한국어 번역 보완 이슈를 남기면 댓글로 언급만 해주든 어떻게 정해질 것 같다.

회의를 마친 후에는 소소한 근황 토크를 하며 식사를 하는 시간을 가졌다. 퇴근하고 오자마자 회의에 참여하시는 분들도 있고 하다보니 식사 시간이 뒤로 밀렸다. 아무튼 그러고 나서 다음날 게시물을 작성하려고 했는데 어찌저찌 하다보니 월요일까지 와버렸다는 건 여담 ㅋㅋ;;

profile
Peter J Online Space - since July 2020

0개의 댓글