[2023 오픈소스 컨트리뷰션 아카데미] Masters 활동 마무리

Pt J·2023년 10월 7일
0
post-thumbnail

탐색 및 구현

우리는 번역 작업을 하며 Notion에 정리해놓은 용어들을 기반으로 용어집에 넣을 것들을 추리고, 그곳에는 없지만 용어집에는 있으면 좋을 것 같은 용어들도 찾아 구글 스프레드 시트에 정리하였다.
구글 스프레드 시트 정리 작업은 @아름 님께서 주도적으로 진행해주셨다.
그곳에 용어의 원어와 번역, 키워드 태그, 그리고 프롬프트 엔지니어링 가이드 상의 예문과 그 URL을 정리하였다.

Streamlit 문서을 좀 더 훑어본 결과 다음과 같이 써먹을 만한 것들이 더 보였다.

이에 적당히 이들을 조합하여 코드를 작성해보고, 그 샘플 코드를 노션에 공유하였다.
다음은 그 샘플 코드 전문이다.

streamlit_app.py

import streamlit as st
from streamlit.logger import get_logger
import pandas as pd
from annotated_text import annotated_text

LOGGER = get_logger(__name__)

def load_data(url):
    csv_url = url.replace("/edit#gid=", "/export?format=csv&gid=")
    return pd.read_csv(csv_url)

def generate_expander(ph, df):
    ph = st.empty()
    with ph.container():
        for row in df.itertuples():
            with st.expander(f"**{row.Target}** :gray[| {row.Source}]"):
                annotated_text((f"{row.Tag}", ""))
                if str(row.Example1) != "nan":
                    st.info(f"**예문 |** {row.Example1} [(원문 보기)]({row.URL1})")
                if str(row.Example2) != "nan":
                    st.info(f"**예문 |** {row.Example2} [(원문 보기)]({row.URL2})")

def run():
    st.set_page_config(
        page_title="프롬프트 엔지니어링 용어집",
        page_icon="📜",
        menu_items={
            "Report a bug": "https://github.com/11mLLM/Koreabulary-LLM/issues"
        },
    )
    st.header("프롬프트 엔지니어링 용어집", divider="gray")

    placeholder = st.empty()

    # add `sheets_url = "https://docs.google.com/spreadsheets/d/xxxxxxx/edit#gid=0"` to `.streamlit/secrets.toml`
    term = load_data(st.secrets["sheets_url"]).sort_values('Target')

    with st.sidebar:
        options = st.multiselect(
            "키워드로 찾기",
            ["기술 용어", "알고리즘", "언어모델", "언어모델 튜닝 용어", "위험", "인공지능", "인공지능 방법론", "일반 용어", "프롬프트 엔지니어링"],
            placeholder="키워드 선택",
        )
    if options == []:
        generate_expander(placeholder, terms)
    else:
        generate_expander(placeholder, terms.query(f"Tag in {options}"))

if __name__ == "__main__":
    run()

벤치마킹용 사이트를 조사하고 써먹을 만한 라이브러리를 찾는 등 @피터는 주로 자료 조사를 하였고,
본격적인 웹사이트 구현 및 디자인 작업은 @혜리 님께서 맡아서 해주셨다.

최종적으로 우리가 구현한 용어집 사이트는 다음과 같다.

기본적으로 사전순으로 용어가 나열되어 있으며, 클릭 시 키워드 태그와 예제가 출력된다.

좌측 사이드바를 통해 특정 키워드의 용어만 따로 모아 볼 수도 있다.

지속적인 기여

프롬프트 엔지니어링 가이드의 주요 용어 중 일부는 용어집에 들어가야 하지만 누락되어 있을 수 있고, LLM 분야가 발전함에 따라 웹사이트의 내용이 추가되며 자연스레 새로운 용어가 추가될 수 있다.
우리는 그러한 필요를 추적하여 구글 스프레드 시트에 내용을 추가함으로써 용어집을 관리해 나갈 것이다.

또한, 프롬프트 엔지니어링 가이드의 한국어 번역 기여자를 위한 안내서로서 우리의 웹사이트가 역할을 수행할 수 있도록 원 저장소에서 안내할 수 있도록 원 저자 분과 논의 중에 있다.

성과 공유회

10월 7일 토요일, 2023 오픈소스 컨트리뷰션 아카데미 활동을 마무리하는 성과 공유회가 개최되었다.
발대식과 같은 장소에서 오전 11시부터 진행되었는데, 대략적인 진행 순서는 다음과 같다.

행사에 대한 추가 정보는 Notion 페이지에서 확인할 수 있다.

진행 순서에서 알 수 있듯이 우리는 10번째로 발표하였으며, 팀별로 1~2명의 대표 멘티가 발표를 진행하는데 @피터 또한 리드멘티 중 한 사람으로서 최종 발표에 참여하게 되었다.

우리는 "LLM을 여행하는 프롬프트 엔지니어를 위한 안내서", 약칭 "LLM Journey"라는 프로젝트 이름을 따라 "여행" 혹은 "여정"이라는 주제로 발표 자료를 만들기로 하였는데, 처음에는 여행 일지 같은 느낌으로 구상을 하다가 목차의 각각 파트를 지하철 역처럼 표현하는 건 어떨까 하는 아이디어가 나와 최종적으로는 그렇게 만들었다.

발표의 목차는 다음과 같다.

소개부터 과정, (Challenges) 번역, (Masters) 용어집까지의 내용은 @피터가 발표하였고,
(Masters) 서비스, 회고의 내용은 @정원 님께서 발표해주셨다.

각 섹션의 시작에는 다음과 같이 노선도 상의 위치를 토끼로 표현하고, 지하철 역과 같은 형태로 꾸몄다.

발표 자료는 운영사무국이 비공개 처리를 하지 않는 한, 이곳에서 확인할 수 있다.

7분이라는 짧은 시간에 모든 내용을 다 담으려고 하다보니 자세한 내용은 생략한 부분이 많다.
각자의 관심 분야에 따라 번역할 문서를 나누었고 등등의 이야기를 할 여유는 없었다.
발표 스크립트의 초안은 @피터 5분 30초 + @정원 님 4분 30초 = 약 10분 정도의 시간이 나왔으나,
부차적인 설명을 덜어내고 본 발표에서는 6분 30초 정도의 적당한 시간의 발표를 할 수 있었다.

성과 공유회 행사장 로비에는 기념 사진을 찍을 수 있는 부스도 있었는데, 팀원들의 초상권은 무시한다(?).

올해도 역시 레고 굿즈를 획득하였고,

PyMyRepl 팀에서 나눔하신 키링도 하나 받고,

우리 팀 굿즈도 하나... 받을 줄 알았는데 2개 들어 있는 거 2상자나 받았다.

그리고 어찌저찌 발표도 잘 마무리된 것 같다.

여담으로, 후기를 작성하다 레고 굿즈를 조립해봤다.

이렇게 따로 세워놓을 수 있는 판도 있더라.

아무튼 우리의 레고 군은 오픈소스 소프트웨어를 배달하러(?) 떠나간다고 한다. 아디오스.

profile
Peter J Online Space - since July 2020

0개의 댓글