Retrieval Augmented Generation (RAG) and Beyond: A ComprehensiveSurvey on How to Make your LLMs use External Data More Wisely

_5fa345fd048052006b2b74e9-Retrieval Augmented Generation (RAG) and Beyond_ A Comprehensive Survey on How to Make your LLMs use External Data More Wisely-031124-060947.pdf
1.15MB

1. Large Language Models(LLMs) on Tabular Data: Prediction, Generation, and Understanding - A Survey

더보기

[중요내용 정리]

 

TABULAR  특징 

  1. 데이터의 다양성 ( 이진,수치형,텍스트같은 다양한 유형포함) 
  2. 불균형한 레이블과 없는값들이 많을수도 
  3. 전처리 필요성 
  4. 컨텍스트기반의 상호연결(예를들어 나이,교육수준,음주는 연결된) 
  5. 순서 무관 
  6. 사전지식의 부재 - 종종 이미지나 오디오데이터는 사전지식이 필요하다 

 

전통적인 tabular data과 딥러닝 활용 

  • Gradient Boosted Decision Trees 
  • 부스팅앙상블 
    • 한계점1 : 범주형특징같은것에 민감할수있으며암묵적 학습 수행이 가능 
    • 한계점2 : 시계열 데이터의 경우 처리하기 적합하지않다 
    • 한계점3 : 전체 분포가 골고루지 않을경우 일반화하기 어려울수 있다 
  • CNN방법론은 여러가지로 발전 
    • 데이터변환 
    • 미분가능트리 
    • 어텐션기반(TABNET) 
    • 정규화 
  • 여러가지 시도가 있었음에도 XGBoostLightGBMCatBoost 등을 포함한 GBDT 알고리즘 들이 여전히 우수함 
    • 베이지안 네트워크같은 딥러닝 적급낭버보가 LLM같은 생성모델의 발전 
  • LLM의 가장 전통적인 건 QA 
    • QA : TAPAS (Herzig et al., 2020), TABERT (Yin et al., 2020b), TURL (Deng et al., 2022a), TUTA (Wang et al., 2021), TABBIE (Iida et al., 2021) 

 

LLM의 간단설명(여기선 대형 PLM이라고도 부름) 

  • 모델은 텍스트 말뭉치의 일반적인 문법 및 의미적 이해를 얻은 후, 과제별 목적에 맞추어 훈련됩니다 
  • 이전 연구에서는 표형식 데이터의 표현 학습을 위해 LM을 사용하였으나 이는 제한적이었습니다향후 연구에서는 표 데이터를 텍스트로 변환하여 PLM을 활용하여 의미 정보와 헤더 정보를 고려한 문맥적 표현을 학습하는 방법을 제안하였습니다이를 통해 크로스 테이블 학습과 특성 열의 순열 불변성을 지니는 모델을 구축하는 것이 가능해졌습니다. 

 

현재 LLM의 잠재력에 대해 계속 탐구하고 있음. 

  1. 딥 러닝 방법은 초기 훈련에서 사용되지 않은 데이터셋에서는 최적의 성능을 보이지 않는 경우가 많기 때문에사전 훈련과 세밀 조정 패러다임을 활용한 전이 학습이 매우 유망합니다. (= 파인튜닝) 
  2. 표 데이터를 LLM에서 읽을 수 있는 자연 언어로 변환함으로써고차원 범주형 데이터의 one-hot 인코딩에 따른 차원의 저주(curse of dimensionality)를 피할 수 있습니다. (테뷸러 데이터를 txt로 변환해서 고차원문제를 해결) 
  3. CoT를 통한 단계적인 추론과 같은 신생 능력은 LM을 언어 모델링에서 보다 일반적인 작업 해결 도구로 변형시켰습니다LLM의 신생 능력이 표 데이터 모델링에서 얼마나 작동하는지 테스트하기 위해 더 많은 연구가 필요합니다.(cot 단계적 구성성단계적 추론은 다양한 작업에 적용할수있게 해준다) 

 

Contribtion 

  1. LLM을 타블로 데이터 예측타블로 데이터 합성타블로 데이터 질문 답변테이블 이해와 같은 분야들을 세분화하여 분류 
  2. 타블로 데이터에 LLM을 적용한 방법을 평가하는 다양한 측정 항목에 대한 현황과 분류법을 조사 (한마디로 정확도 측정 방법을 조사) 
  3. 많이들 사용되는데이터셋에 대한 현황과 분류법을 조사 
  4. Table data + llm 의 현황과 분류법 
  5. 도전과제와 개요 

 

Key techniques for LLMs’ applications on tabular data 

  • 직렬화 
    • Tabular -> text (text/json/xml...) 
      • 표를 쉼표같은 구분기호로 변환도 가능 
      • 마크다운 형식으로 변환도 가능 
  • Embedding based (직렬화 한걸 벡터화) 
    • Bert를 기반으로 하는 다양한 테이블 인코더들이 있다. 
  • 그래프기반,트리기반 데이터구조로 변환 
    • 하지만 직렬화를 해줘야 한다고  
  • 데이터 형식이 정확도에 매우 민감 
    • 예를 들어DFLoader와 JSON 형식이 테이블 변환 작업에 더 적합하다는 연구 결과와 HTML 또는 XML 테이블 형식이 GPT 모델에서 더 잘 이해되는 것을 보여주는 연구 결과가 있습니다 
  • 추가정보 
    • 직렬화+임베딩을 한번에 하는 방법들도 있다고함 (표에대한설명을 문장으로생성) 
      • LMs (Fine-tuned BLOOM on ToTTo (Parikh et al., 2020b), T0++ (Sanh et al., 2022), GPT-3 (Ouyang et al., 2022)) 
    • Few-shot분류시 전통적인 리스트와 텍스트 템플릿이 llm 직렬화보다 성능이 더 좋았다고함 
    • 복잡하고 큰 LLM일수록 성능이좋다 

 

Table 조작(고려해야할 사항) 

  • LLM모델은 인풋시 텍스트 제한이 있다. 2048토큰까지 처리가능. Llama2는 4048토큰지원. 만약 테이블이 너무 크면부족할수가있다 
  • 길이는 문제 없어도 긴문장을 처리시에 비효율적이다. ' 
    • 1000토큰이상일경우 GPT3에서 성능저하를 확인 
  • 긴 프롬프트는 LLM 기반에서 너무 비싸다 

 

Prompt engineering 

  • 프롬프트 = llm에 입력되는 텍스트 
    • 가장간단한 형식은 문자열 
    • IN-CONTEXT LEARNING = 유사한예를 통합하여 LLM이 원하는 결과를 이해하는데 도움이 되는걸 의미 
      • In-Context Learning은 특정한 맥락(context) 내에서 필요한 정보를 바탕으로 학습하는 방식을 말합니다이는 기존의 대규모 데이터 세트를 통해 사전 학습(pre-training)하는 과정 없이제한된 정보 내에서 바로 학습하고 적용할 수 있는 방식을 의미합니다. 
      • 프롬프트 엔지니어링을 통해 이루어진다. 
      • 사용자가 프롬프트를 입력하면 gpt3는 텍스트를 분석해서 컨텍스트를 이해하고 관련출력을 생성하는것사용자가 오늘 기분이 슬퍼 라는 프롬프트를 입력하면 gpt3가 그것참 유감이군요 제가 도와드릴일이 있을까요 라는 출력을 생성하는걸 의미합니다. 
      • 한마디로 프롬프트의 내용만으로 하고자하는 task를 수행하는것을 말한다promt안의 맥락적의미(in context)를 이해하고 답변을 생성하는것프리트레이닝이나 파인튜닝같은 작업업이 별도의 학습과정이 존재하지않는다 
        • Zero shot 
          • Prompt: 빨간 사과가 영어로 뭐야? 
          • GPT: "Red Apple" 
        • One shot 
          • Prompt: 빨간 사과는 red 사과라고 할께노란 바나나는? 
          • GPT: 노란 바나나는 "yellow 바나나"입니다. 
        • Few shot 
          • Prompt: 빨간 사과는 red 사과라고 할께노란 바나나는 yellow 바나나야그럼 노란 사과는? 
          • GPT: 노란 사과는 "yellow 사과"입니다. 
      • 예시는 CoT, SC 임 
        • 전자는 단계별 사고로 분해해서 더 나은 추론을 만들어내는 전략 
        • 다양한 사고방식을 허용한다는 직관을 바탕으로함 

 

  • Retrieval-augmented generation(rag / 검색증강생성) 
    • Llm모델의 출력을 최적화 하여 응답을 생성하기 전에  데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스 
    • 이런 지식소스를 참조하여 다양한 환경에서 사용자 질문에 답변이 가능한 봇을 만드는것 
    • 1)검색모듈로 주어진 검색어나 질의에 따라 정보검색하고 문맥추출  
    • 2) 생성모듈로 앞서서 검색된정보들을 바탕으로 문장을 생성함 
  • ROLE-PLAY 
    •  예를 들어, Zhao 등 (2023a)은 프롬프트 "통계 분석 전문가로 가정해보세요."로 실험을 진행했다고함 

 

 

 

Preprocessing (테뷸러 데이터를 활용하여 데이터 직렬화 하는 방법) 

  • LIFT (Dinh et al., 2022)는 초기 노력 중 하나로, "열 이름은 값(Value)입니다"와 같은 자연어 문장 또는 "col1 = val1, col2 = val2, ..."와 같은 여러 방정식과 같은 직렬화 방법을 시도 
  • 동일한 결론은 TabLLM (Hegselmann et al., 2023)에서도 확인되었으며그들은 9가지 다른 직렬화 방법을 평가 
    • 텍스트로 구성된 모든 피처의 열거가 가장 우수한 성능을 발휘한다고 함(3번째 논문) 
  • TABLET논문방법을 사용하면 F1스코어가 매우 높게 오른다는걸 확인 
  • 스키마 기반의 프롬프트 엔지니어링 데이터셋의 배경 정보작업 설명요약 및 예시 데이터 포인트를 포함한다고 함 
  • Summary Boosting (Manikandan et al., 2023)은 데이터+메타데이터를 텍스트 프롬프트로 직렬화하여 요약을 생성 
  • Serilize-LM (Jaitly et al., 2023)는 도메인 특정 데이터셋에서 LLM 성능을 향상시키기 위해 3가지 혁신적인 직렬화 기술을 소개 
    • 차량 분류를 예로 들면제조사색상 및 차체 유형과 같은 속성이 이제 단일한 더 풍부한 문장으로 결합 
    • 또한, 가장 관련성이 높은 피처를 식별하기 위해 공분산을 활용하고, 해당 피처를 중요하다고 라벨링하거나 가장 중요한 피처를 설명하는 문장을 추가 (데이터의 경중을 판단한다는 뜻 같다) 
    • 마지막으로테이블 데이터를 LaTeX 코드 형식으로 변환 
  • UniPredict (Wang et al., 2023a)는 임의의 입력 M을 대상 설명과 피처의 의미론적 설명으로 통합하여 메타데이터를 형식화 
  • …. 

 

 

Time Series Forecasting (테이블 데이터 중에서도 시계열 예측 !!!!!!) 

  • ZeroTS (Gruver et al., 2023)은 GPT-3 (Brown et al., 2020)와 LLaMA-70B Touvron et al. (2023a)와 같은 LLM을 직접 시계열 예측에 사용 
    • 이 연구는 평균 절대 오차(MAE), 스케일 MAE 및 연속된 순위 확률 점수(CRPS)를 사용하여 모델을 평가하며LLM은 간단한 규칙 기반의 완성을 선호하고 반복 및 추세를 캡처하는 경향이 있다고 언급 
      • => llm은 시계열 예측에도 매우 효율적이다. 

 

  • Finetuning시 일반적으로현재 LLaMa가 가장 일반적으로 사용되는 모델이며, fine-tuning에는 soft prompt가 적합한 접근 방식이라고 함 
  • 메트릭으로는 MAE가 가장 일반적인 메트릭 

 

 

 

LLMs for tabular data generation (Tabular 데이터를 보완하는 새로운 방법론을 탐구-뉴데이터를 생성해서 활용) 

  • tabular데이터를 보완하는 새로운 방법론을 탐구 
  • Llm을 활용해서 새로운 tabular데이터를 생성하고 활용할 수 있는 방법들을 연구 
    • 한마디로 llm을 활용해서 데이터를 생성해서 활용한다 

 

  • Borisov et al. (2023b)은 원본 tabular 데이터의 특성을 가진 합성 샘플을 생성하기 위해 GReaT11 (Generation of Realistic Tabular data) 제안. GReaT 데이터 파이프라인은 문장 직렬화 방법을 사용하여 tabular 데이터를 의미 있는 텍스트로 변환하는 텍스트 인코딩 단계와 관련. 이후에는 GPT-2 또는 GPT-2 distill 모델을 미세 조정하는 과정이 이어짐.  
  • REaLTabFormer (Solatorio & Dupriez, 2023)은 GReaT를 확장하여 비관계형 및 관계형 타블러 데이터를 생성 
  • 등등.... 

++ figure4  참조

  • 이러한 합성 데이터의 평가방법 4가지 
    1. 저차원 통계열별 밀도와 열 간의 상관관계를 평가하여 개별 열의 분포와 열 간의 관계를 파악 (열별 데이터분포를 살펴봄으로써 다양성과 일관성을 평가한다예를들면 열값이 균일하게 분포되어있는지확인가능. 또 상관관계를 통해서 음의 상관관계이니지 직선적인 상관관계인지 등등 파악가능) 
    2. 고차원 측정합성 데이터의 전체적인 신뢰성과 다양성을 측정하는 지표를 사용합니다. (=다양한 관점에서데이터품질과 다양성을 측정예를들어 실제데이터와 얼마나 유사한가 같은 지표) 
    3. 개인 정보 보호원본 데이터의 개인 정보 보호 수준을 평가하기 위해 최근접 레코드와의 거리를 계산하는 지표를 사용합니다.(개인식별 가능성을 평가함원본데이터랑 유사도를 평가해서 유사할수록 개인정보 식별 가능서이 높아지고유사도가 낮을수록 개인정보수준이 높아진다)) 
    4. 하위 작업 성능합성 데이터를 사용하여 학습한 모델이 실제 데이터에서 얼마나 잘 작동하는지 평가합니다. 

 

 

 

LLMs for table understanding 

  • TABLE QA  
  • Table and Conversation QA = QA인데 테이블만 사용하는게 아니라 다른 형식의 정보들도 같이 사용하여 대화를 진행 
  • Table Classification = 테이블을 종류별로 분류하는것 
  • Text2SQL = sql 생성 
  • Table NLG = 원본 테이블에 대한 설명을 생성 
  • Table NLI = 테이블안의 관계에 대해 분석(2019에 많이 팔린 상품은 무엇) 
  • Domain Specific = 영역별로 특화항공업계는  AIT-QA (Katsis et al., 2022)를 사용하는 것을 권장금융 관련 테이블 질문 답변 작업에는 TAT-QA (Zhu et al., 2021a)를 사용하는 것을 추천대략적으로 업계별로 추천하는것이 다르다는것으로 이해 
  • Pretraining = 테이블+영어문맥설명으로 프리트레이닝하면 테이블 이해해 더 좋은 결과를 볼수 있다라고 함 

 

 

General ability of LLMs in QA 

 

  • Numerical QA = 수학 추론을 필요로 하는 질문(American Express의 평균 거래 별 결제량은 얼마입니까?) 
  • Text2SQL =  Liu et al. (2023c)은 세 가지 유형의 키워드를 식별하는 질문 매처를 설계: 1) 열 이름과 관련된 용어, 2) 제한과 관련된 구절(예: "상위 10개"), 3) 알고리즘 또는 모듈 키워드. 
  • Impact of model size on performance=WebTableQuestions에서 6.7B 대 175B GPT-3 모델을 비교할 때, 작은 모델은 더 큰 모델의 점수의 절반만 달성 
  • Finetuning or No finetuningLLMs(>70B 파라미터)를 파인튜닝하는 것에는 매우 제한적인 연구가 진행 

 

 

QA 관련 논문들 

  • Chain-of-command (CoC)-사용자입력을 중간명령작업의 순서열로 변환
  • Deng et al. (2022b)는 QA 작업을 세 가지 하위 작업으로 분할 
    • 불확실성을 명확히 하기 위해 질문을 할 것인지를 결정하는 Clarification Need Prediction (CNP)
    • 명확히 하기 위해 질문을 생성하는 Clarification Question Generation (CQG)
    • 질문에 대한 명확히가 필요하지 않은 경우 바로 답변을 생성하는 Conversational Question Answering (CQA)
  • 검색능력도 중요함. 검색능력은 아래와같이 두가지 유형으로 나뉨
    • 질문과 관련된 정보를 찾기 ( 예를들어 무슨열의 무슨행의 값을 구해줘(
    • 추가정보와 예제를 얻는것
  • 데이터 메인테이블 관련
    • Zhao et al. (2023d)는 최상위-n개의 가장 관련성이 높은 문서를 반환하는 검색 모듈 (retriever module)의 성능 향상이 수치적 QA에서 최종 정확도를 일관되게 향상시킨다는 것을 관찰
    • . Sui et al. (2023c)는 여러 개의 테이블 샘플링 방법 (행과 열)과 토큰 제한 매개변수를 기반으로 한 테이블 패킹을 탐구(질문과 가장 의미적으로 유사한 행을 검색)
    •  Dong et al. (2023)는 SC(Self-consistency, 또다른논문이다)를 사용하여 질문과 관련성에 따라 테이블을 순위 매김하기 위해 ChatGPT를 사용. 그 결과 10개세트의 검색결과를 생성한다음, 가장 자주보이는 세트를 선택. 이때도 SC방법이 사용되었다고함. 
    •  cTBLS Sundar & Heck (2023)는 검색된 테이블 정보에 기반한 대화 응답을 검색하고 생성하기 위한 세 단계 아키텍처를 설계함
      • RoBERTa (Liu et al., 2019)에서 유도된 양방향 인코더 기반의 Dense Table Retrieval (DTR) 모델을 사용해서 연관성이 가장높은 테이블을 식별(인코더만 사용한다)
      • 두 번째 단계에서 트리플릿 손실을 사용하여 행을 순위 매기기 위한 Coarse System State Tracking 시스템을 사용 (??)
      • 마지막으로, GPT-3.5는 그룹화된 지식 원본을 기준으로 한 쿼리와 관련성이 가장 높은 셀을 조건으로 하는 추가 질문에 대한 자연어 응답을 생성
      • INPUT = 질의 기록, 순위 매김된 지식 원본 및 답변해야 할 질문이 포함된 프롬프트가 입력으로 제공
    • . Zhao et al. (2023d)은 OpenAI의 Ada Embedding4과 Contriever (Izacard et al., 2022)를 검색기로 사용하고 BM25 (Robertson et al., 1995)를 희소 검색기로 사용. 여기서 말하는 검색기란 가장 관련성이 높은 텍스트랑 테이블을 추출하는데 도움을 주는것. 이 추출된 정보는 질문에 대한 입력 컨텍스트로 제공됩니다.
  • 예제선별관련
    • Gao et al. (2023)는 1) 무작위로 K개 선택 2) 질문의 유사성을 선택(유사성기준은 유클리드거리같은 사전에 정의된 기준을 사용) 3) 마스킹된 질문 유사성을 선택한다.(=질문과 예제간의 유사성을 평가해서 예제를 선택하는것) 4) 대상 SQL 쿼리 s∗와 유사한 k개의 예제를 선택.

 

Multi-turn tasks

LLM을 반복적으로 호출하는 파이프라인을 설계

3가지 카테고리로 분류된다

(1) 어려운 작업을 처리 가능한 하위 작업으로 분해하기 위해 (너무 복잡한 요청을 작은 여러개 작업으로 나눔)

  • Suiet al. (2023b)은 하류 테이블 추론을 개선하기 위해 두 단계의 self-augmented prompting approach를 제안. 첫 번째로 프롬프트를 사용하여 LLM에게 테이블에 대한 중간 출력을 생성하도록 요청한 다음, 응답을 두 번째 프롬프트로 통합하여 하류 작업의 최종 답변을 요청한다.
  • Ye et al.(2023b)은 또한 대량의 테이블을 작은 테이블로 분해하고 복잡한 질문을 텍스트 추론을 위해 단순한 하위 질문들로 변환하도록 LLM에게 안내
  •  Liu 등(2023e)의 경우, 상징적인 CoT 추론 경로를 촉진하기 위해, 모델이 명령을 실행하고 데이터를 처리하며 결과를 검토할 수 있는 Python 셸과 상호작용하도록 허용  

(2) 새로운 사용자 입력에 기반하여 모델 출력을 업데이트하기 위해

  •  SParC의 경우, Spider (Yu 등, 2018b)를 기반으로 연이어 따르는 질문을 설계

(3) 특정 제약 조건을 해결하거나 오류를 수정하기 위해

  • Zhao 등(2023a)은 테이블이 API 입력 제한을 초과하는 경우 다중 턴 프롬프트를 사용하여 이를 해결. 잘못된 부분이 생성되었을 경우 잘못된 경우를 LLM을 되돌려주는 반복적인 과정이 도움이 될수 있다고함.

 

 

아웃풋 평가 방식

  • F1이 일반적이긴함
  • ROUGE
  • BLEU
  • 시각화..

 

 

한계점과 미래방안

  • Bias and fairness llm의 내재적인 편향 완화
  • Hallucination 실제가 아닌값을 생성할 위험 (의료계쪽에서는 치명적)
  • Numerical representation 숫자는 임베딩이 꼭 필요
  • Categorical representation 컨텍스트 제한 초과시 데이터 일부가 날라가서 성능에 부정적이어짐. 이를 커버할수있는 인코딩방식이 필요
  • Standard benchmark 너무 다양하기 때문에 표준화된 벤치마크의 필요성
  • Model interpretability 데이터 이해능력의 탐구
  • Easy to use 대부분 데이터 직렬화가 필요해서 모델 엑세스가 쉽지않음. 다른사람들이 사용하기 쉬워야함.(자동전처리나 직렬화를 통합시킨다면 훨씬 쉬울것)
  • Fine-tuning strategy design llm모델의 적합한 모델과 학습전략
  • Model grafting 특화된 인코더를 사용해서 비문자 데이터를 매핑..한마디로 텍스트가 아닌 다른 유형의 데이터를 모델이 자체적으로 인코딩할수있다..

[중요내용 정리]

 

TABULAR  특징 

  1. 데이터의 다양성 ( 이진,수치형,텍스트같은 다양한 유형포함) 
  2. 불균형한 레이블과 없는값들이 많을수도 
  3. 전처리 필요성 
  4. 컨텍스트기반의 상호연결(예를들어 나이,교육수준,음주는 연결된) 
  5. 순서 무관 
  6. 사전지식의 부재 - 종종 이미지나 오디오데이터는 사전지식이 필요하다 

 

전통적인 tabular data과 딥러닝 활용 

  • Gradient Boosted Decision Trees 
  • 부스팅앙상블 
    • 한계점1 : 범주형특징같은것에 민감할수있으며암묵적 학습 수행이 가능 
    • 한계점2 : 시계열 데이터의 경우 처리하기 적합하지않다 
    • 한계점3 : 전체 분포가 골고루지 않을경우 일반화하기 어려울수 있다 
  • CNN방법론은 여러가지로 발전 
    • 데이터변환 
    • 미분가능트리 
    • 어텐션기반(TABNET) 
    • 정규화 
  • 여러가지 시도가 있었음에도 XGBoostLightGBMCatBoost 등을 포함한 GBDT 알고리즘 들이 여전히 우수함 
    • 베이지안 네트워크같은 딥러닝 적급낭버보가 LLM같은 생성모델의 발전 
  • LLM의 가장 전통적인 건 QA 
    • QA : TAPAS (Herzig et al., 2020), TABERT (Yin et al., 2020b), TURL (Deng et al., 2022a), TUTA (Wang et al., 2021), TABBIE (Iida et al., 2021) 

 

LLM의 간단설명(여기선 대형 PLM이라고도 부름) 

  • 모델은 텍스트 말뭉치의 일반적인 문법 및 의미적 이해를 얻은 후, 과제별 목적에 맞추어 훈련됩니다 
  • 이전 연구에서는 표형식 데이터의 표현 학습을 위해 LM을 사용하였으나 이는 제한적이었습니다향후 연구에서는 표 데이터를 텍스트로 변환하여 PLM을 활용하여 의미 정보와 헤더 정보를 고려한 문맥적 표현을 학습하는 방법을 제안하였습니다이를 통해 크로스 테이블 학습과 특성 열의 순열 불변성을 지니는 모델을 구축하는 것이 가능해졌습니다. 

 

현재 LLM의 잠재력에 대해 계속 탐구하고 있음. 

  1. 딥 러닝 방법은 초기 훈련에서 사용되지 않은 데이터셋에서는 최적의 성능을 보이지 않는 경우가 많기 때문에사전 훈련과 세밀 조정 패러다임을 활용한 전이 학습이 매우 유망합니다. (= 파인튜닝) 
  2. 표 데이터를 LLM에서 읽을 수 있는 자연 언어로 변환함으로써고차원 범주형 데이터의 one-hot 인코딩에 따른 차원의 저주(curse of dimensionality)를 피할 수 있습니다. (테뷸러 데이터를 txt로 변환해서 고차원문제를 해결) 
  3. CoT를 통한 단계적인 추론과 같은 신생 능력은 LM을 언어 모델링에서 보다 일반적인 작업 해결 도구로 변형시켰습니다LLM의 신생 능력이 표 데이터 모델링에서 얼마나 작동하는지 테스트하기 위해 더 많은 연구가 필요합니다.(cot 단계적 구성성단계적 추론은 다양한 작업에 적용할수있게 해준다) 

 

Contribtion 

  1. LLM을 타블로 데이터 예측타블로 데이터 합성타블로 데이터 질문 답변테이블 이해와 같은 분야들을 세분화하여 분류 
  2. 타블로 데이터에 LLM을 적용한 방법을 평가하는 다양한 측정 항목에 대한 현황과 분류법을 조사 (한마디로 정확도 측정 방법을 조사) 
  3. 많이들 사용되는데이터셋에 대한 현황과 분류법을 조사 
  4. Table data + llm 의 현황과 분류법 
  5. 도전과제와 개요 

 

Key techniques for LLMs’ applications on tabular data 

  • 직렬화 
    • Tabular -> text (text/json/xml...) 
      • 표를 쉼표같은 구분기호로 변환도 가능 
      • 마크다운 형식으로 변환도 가능 
  • Embedding based (직렬화 한걸 벡터화) 
    • Bert를 기반으로 하는 다양한 테이블 인코더들이 있다. 
  • 그래프기반,트리기반 데이터구조로 변환 
    • 하지만 직렬화를 해줘야 한다고  
  • 데이터 형식이 정확도에 매우 민감 
    • 예를 들어DFLoader와 JSON 형식이 테이블 변환 작업에 더 적합하다는 연구 결과와 HTML 또는 XML 테이블 형식이 GPT 모델에서 더 잘 이해되는 것을 보여주는 연구 결과가 있습니다 
  • 추가정보 
    • 직렬화+임베딩을 한번에 하는 방법들도 있다고함 (표에대한설명을 문장으로생성) 
      • LMs (Fine-tuned BLOOM on ToTTo (Parikh et al., 2020b), T0++ (Sanh et al., 2022), GPT-3 (Ouyang et al., 2022)) 
    • Few-shot분류시 전통적인 리스트와 텍스트 템플릿이 llm 직렬화보다 성능이 더 좋았다고함 
    • 복잡하고 큰 LLM일수록 성능이좋다 

 

Table 조작(고려해야할 사항) 

  • LLM모델은 인풋시 텍스트 제한이 있다. 2048토큰까지 처리가능. Llama2는 4048토큰지원. 만약 테이블이 너무 크면부족할수가있다 
  • 길이는 문제 없어도 긴문장을 처리시에 비효율적이다. ' 
    • 1000토큰이상일경우 GPT3에서 성능저하를 확인 
  • 긴 프롬프트는 LLM 기반에서 너무 비싸다 

 

Prompt engineering 

  • 프롬프트 = llm에 입력되는 텍스트 
    • 가장간단한 형식은 문자열 
    • IN-CONTEXT LEARNING = 유사한예를 통합하여 LLM이 원하는 결과를 이해하는데 도움이 되는걸 의미 
      • In-Context Learning은 특정한 맥락(context) 내에서 필요한 정보를 바탕으로 학습하는 방식을 말합니다이는 기존의 대규모 데이터 세트를 통해 사전 학습(pre-training)하는 과정 없이제한된 정보 내에서 바로 학습하고 적용할 수 있는 방식을 의미합니다. 
      • 프롬프트 엔지니어링을 통해 이루어진다. 
      • 사용자가 프롬프트를 입력하면 gpt3는 텍스트를 분석해서 컨텍스트를 이해하고 관련출력을 생성하는것사용자가 오늘 기분이 슬퍼 라는 프롬프트를 입력하면 gpt3가 그것참 유감이군요 제가 도와드릴일이 있을까요 라는 출력을 생성하는걸 의미합니다. 
      • 한마디로 프롬프트의 내용만으로 하고자하는 task를 수행하는것을 말한다promt안의 맥락적의미(in context)를 이해하고 답변을 생성하는것프리트레이닝이나 파인튜닝같은 작업업이 별도의 학습과정이 존재하지않는다 
        • Zero shot 
          • Prompt: 빨간 사과가 영어로 뭐야? 
          • GPT: "Red Apple" 
        • One shot 
          • Prompt: 빨간 사과는 red 사과라고 할께노란 바나나는? 
          • GPT: 노란 바나나는 "yellow 바나나"입니다. 
        • Few shot 
          • Prompt: 빨간 사과는 red 사과라고 할께노란 바나나는 yellow 바나나야그럼 노란 사과는? 
          • GPT: 노란 사과는 "yellow 사과"입니다. 
      • 예시는 CoT, SC 임 
        • 전자는 단계별 사고로 분해해서 더 나은 추론을 만들어내는 전략 
        • 다양한 사고방식을 허용한다는 직관을 바탕으로함 

 

  • Retrieval-augmented generation(rag / 검색증강생성) 
    • Llm모델의 출력을 최적화 하여 응답을 생성하기 전에  데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스 
    • 이런 지식소스를 참조하여 다양한 환경에서 사용자 질문에 답변이 가능한 봇을 만드는것 
    • 1)검색모듈로 주어진 검색어나 질의에 따라 정보검색하고 문맥추출  
    • 2) 생성모듈로 앞서서 검색된정보들을 바탕으로 문장을 생성함 
  • ROLE-PLAY 
    •  예를 들어, Zhao 등 (2023a)은 프롬프트 "통계 분석 전문가로 가정해보세요."로 실험을 진행했다고함 

 

 

 

Preprocessing (테뷸러 데이터를 활용하여 데이터 직렬화 하는 방법) 

  • LIFT (Dinh et al., 2022)는 초기 노력 중 하나로, "열 이름은 값(Value)입니다"와 같은 자연어 문장 또는 "col1 = val1, col2 = val2, ..."와 같은 여러 방정식과 같은 직렬화 방법을 시도 
  • 동일한 결론은 TabLLM (Hegselmann et al., 2023)에서도 확인되었으며그들은 9가지 다른 직렬화 방법을 평가 
    • 텍스트로 구성된 모든 피처의 열거가 가장 우수한 성능을 발휘한다고 함(3번째 논문) 
  • TABLET논문방법을 사용하면 F1스코어가 매우 높게 오른다는걸 확인 
  • 스키마 기반의 프롬프트 엔지니어링 데이터셋의 배경 정보작업 설명요약 및 예시 데이터 포인트를 포함한다고 함 
  • Summary Boosting (Manikandan et al., 2023)은 데이터+메타데이터를 텍스트 프롬프트로 직렬화하여 요약을 생성 
  • Serilize-LM (Jaitly et al., 2023)는 도메인 특정 데이터셋에서 LLM 성능을 향상시키기 위해 3가지 혁신적인 직렬화 기술을 소개 
    • 차량 분류를 예로 들면제조사색상 및 차체 유형과 같은 속성이 이제 단일한 더 풍부한 문장으로 결합 
    • 또한, 가장 관련성이 높은 피처를 식별하기 위해 공분산을 활용하고, 해당 피처를 중요하다고 라벨링하거나 가장 중요한 피처를 설명하는 문장을 추가 (데이터의 경중을 판단한다는 뜻 같다) 
    • 마지막으로테이블 데이터를 LaTeX 코드 형식으로 변환 
  • UniPredict (Wang et al., 2023a)는 임의의 입력 M을 대상 설명과 피처의 의미론적 설명으로 통합하여 메타데이터를 형식화 
  • …. 

 

 

Time Series Forecasting (테이블 데이터 중에서도 시계열 예측 !!!!!!) 

  • ZeroTS (Gruver et al., 2023)은 GPT-3 (Brown et al., 2020)와 LLaMA-70B Touvron et al. (2023a)와 같은 LLM을 직접 시계열 예측에 사용 
    • 이 연구는 평균 절대 오차(MAE), 스케일 MAE 및 연속된 순위 확률 점수(CRPS)를 사용하여 모델을 평가하며LLM은 간단한 규칙 기반의 완성을 선호하고 반복 및 추세를 캡처하는 경향이 있다고 언급 
      • => llm은 시계열 예측에도 매우 효율적이다. 

 

  • Finetuning시 일반적으로현재 LLaMa가 가장 일반적으로 사용되는 모델이며, fine-tuning에는 soft prompt가 적합한 접근 방식이라고 함 
  • 메트릭으로는 MAE가 가장 일반적인 메트릭 

 

 

 

LLMs for tabular data generation (Tabular 데이터를 보완하는 새로운 방법론을 탐구-뉴데이터를 생성해서 활용) 

  • tabular데이터를 보완하는 새로운 방법론을 탐구 
  • Llm을 활용해서 새로운 tabular데이터를 생성하고 활용할 수 있는 방법들을 연구 
    • 한마디로 llm을 활용해서 데이터를 생성해서 활용한다 

 

  • Borisov et al. (2023b)은 원본 tabular 데이터의 특성을 가진 합성 샘플을 생성하기 위해 GReaT11 (Generation of Realistic Tabular data) 제안. GReaT 데이터 파이프라인은 문장 직렬화 방법을 사용하여 tabular 데이터를 의미 있는 텍스트로 변환하는 텍스트 인코딩 단계와 관련. 이후에는 GPT-2 또는 GPT-2 distill 모델을 미세 조정하는 과정이 이어짐.  
  • REaLTabFormer (Solatorio & Dupriez, 2023)은 GReaT를 확장하여 비관계형 및 관계형 타블러 데이터를 생성 
  • 등등.... 

++ figure4  참조

  • 이러한 합성 데이터의 평가방법 4가지 
    1. 저차원 통계열별 밀도와 열 간의 상관관계를 평가하여 개별 열의 분포와 열 간의 관계를 파악 (열별 데이터분포를 살펴봄으로써 다양성과 일관성을 평가한다예를들면 열값이 균일하게 분포되어있는지확인가능. 또 상관관계를 통해서 음의 상관관계이니지 직선적인 상관관계인지 등등 파악가능) 
    2. 고차원 측정합성 데이터의 전체적인 신뢰성과 다양성을 측정하는 지표를 사용합니다. (=다양한 관점에서데이터품질과 다양성을 측정예를들어 실제데이터와 얼마나 유사한가 같은 지표) 
    3. 개인 정보 보호원본 데이터의 개인 정보 보호 수준을 평가하기 위해 최근접 레코드와의 거리를 계산하는 지표를 사용합니다.(개인식별 가능성을 평가함원본데이터랑 유사도를 평가해서 유사할수록 개인정보 식별 가능서이 높아지고유사도가 낮을수록 개인정보수준이 높아진다)) 
    4. 하위 작업 성능합성 데이터를 사용하여 학습한 모델이 실제 데이터에서 얼마나 잘 작동하는지 평가합니다. 

 

 

 

LLMs for table understanding 

  • TABLE QA  
  • Table and Conversation QA = QA인데 테이블만 사용하는게 아니라 다른 형식의 정보들도 같이 사용하여 대화를 진행 
  • Table Classification = 테이블을 종류별로 분류하는것 
  • Text2SQL = sql 생성 
  • Table NLG = 원본 테이블에 대한 설명을 생성 
  • Table NLI = 테이블안의 관계에 대해 분석(2019에 많이 팔린 상품은 무엇) 
  • Domain Specific = 영역별로 특화항공업계는  AIT-QA (Katsis et al., 2022)를 사용하는 것을 권장금융 관련 테이블 질문 답변 작업에는 TAT-QA (Zhu et al., 2021a)를 사용하는 것을 추천대략적으로 업계별로 추천하는것이 다르다는것으로 이해 
  • Pretraining = 테이블+영어문맥설명으로 프리트레이닝하면 테이블 이해해 더 좋은 결과를 볼수 있다라고 함 

 

 

General ability of LLMs in QA 

 

  • Numerical QA = 수학 추론을 필요로 하는 질문(American Express의 평균 거래 별 결제량은 얼마입니까?) 
  • Text2SQL =  Liu et al. (2023c)은 세 가지 유형의 키워드를 식별하는 질문 매처를 설계: 1) 열 이름과 관련된 용어, 2) 제한과 관련된 구절(예: "상위 10개"), 3) 알고리즘 또는 모듈 키워드. 
  • Impact of model size on performance=WebTableQuestions에서 6.7B 대 175B GPT-3 모델을 비교할 때, 작은 모델은 더 큰 모델의 점수의 절반만 달성 
  • Finetuning or No finetuningLLMs(>70B 파라미터)를 파인튜닝하는 것에는 매우 제한적인 연구가 진행 

 

 

QA 관련 논문들 

  • Chain-of-command (CoC)-사용자입력을 중간명령작업의 순서열로 변환
  • Deng et al. (2022b)는 QA 작업을 세 가지 하위 작업으로 분할 
    • 불확실성을 명확히 하기 위해 질문을 할 것인지를 결정하는 Clarification Need Prediction (CNP)
    • 명확히 하기 위해 질문을 생성하는 Clarification Question Generation (CQG)
    • 질문에 대한 명확히가 필요하지 않은 경우 바로 답변을 생성하는 Conversational Question Answering (CQA)
  • 검색능력도 중요함. 검색능력은 아래와같이 두가지 유형으로 나뉨
    • 질문과 관련된 정보를 찾기 ( 예를들어 무슨열의 무슨행의 값을 구해줘(
    • 추가정보와 예제를 얻는것
  • 데이터 메인테이블 관련
    • Zhao et al. (2023d)는 최상위-n개의 가장 관련성이 높은 문서를 반환하는 검색 모듈 (retriever module)의 성능 향상이 수치적 QA에서 최종 정확도를 일관되게 향상시킨다는 것을 관찰
    • . Sui et al. (2023c)는 여러 개의 테이블 샘플링 방법 (행과 열)과 토큰 제한 매개변수를 기반으로 한 테이블 패킹을 탐구(질문과 가장 의미적으로 유사한 행을 검색)
    •  Dong et al. (2023)는 SC(Self-consistency, 또다른논문이다)를 사용하여 질문과 관련성에 따라 테이블을 순위 매김하기 위해 ChatGPT를 사용. 그 결과 10개세트의 검색결과를 생성한다음, 가장 자주보이는 세트를 선택. 이때도 SC방법이 사용되었다고함. 
    •  cTBLS Sundar & Heck (2023)는 검색된 테이블 정보에 기반한 대화 응답을 검색하고 생성하기 위한 세 단계 아키텍처를 설계함
      • RoBERTa (Liu et al., 2019)에서 유도된 양방향 인코더 기반의 Dense Table Retrieval (DTR) 모델을 사용해서 연관성이 가장높은 테이블을 식별(인코더만 사용한다)
      • 두 번째 단계에서 트리플릿 손실을 사용하여 행을 순위 매기기 위한 Coarse System State Tracking 시스템을 사용 (??)
      • 마지막으로, GPT-3.5는 그룹화된 지식 원본을 기준으로 한 쿼리와 관련성이 가장 높은 셀을 조건으로 하는 추가 질문에 대한 자연어 응답을 생성
      • INPUT = 질의 기록, 순위 매김된 지식 원본 및 답변해야 할 질문이 포함된 프롬프트가 입력으로 제공
    • . Zhao et al. (2023d)은 OpenAI의 Ada Embedding4과 Contriever (Izacard et al., 2022)를 검색기로 사용하고 BM25 (Robertson et al., 1995)를 희소 검색기로 사용. 여기서 말하는 검색기란 가장 관련성이 높은 텍스트랑 테이블을 추출하는데 도움을 주는것. 이 추출된 정보는 질문에 대한 입력 컨텍스트로 제공됩니다.
  • 예제선별관련
    • Gao et al. (2023)는 1) 무작위로 K개 선택 2) 질문의 유사성을 선택(유사성기준은 유클리드거리같은 사전에 정의된 기준을 사용) 3) 마스킹된 질문 유사성을 선택한다.(=질문과 예제간의 유사성을 평가해서 예제를 선택하는것) 4) 대상 SQL 쿼리 s∗와 유사한 k개의 예제를 선택.

 

Multi-turn tasks

LLM을 반복적으로 호출하는 파이프라인을 설계

3가지 카테고리로 분류된다

(1) 어려운 작업을 처리 가능한 하위 작업으로 분해하기 위해 (너무 복잡한 요청을 작은 여러개 작업으로 나눔)

  • Suiet al. (2023b)은 하류 테이블 추론을 개선하기 위해 두 단계의 self-augmented prompting approach를 제안. 첫 번째로 프롬프트를 사용하여 LLM에게 테이블에 대한 중간 출력을 생성하도록 요청한 다음, 응답을 두 번째 프롬프트로 통합하여 하류 작업의 최종 답변을 요청한다.
  • Ye et al.(2023b)은 또한 대량의 테이블을 작은 테이블로 분해하고 복잡한 질문을 텍스트 추론을 위해 단순한 하위 질문들로 변환하도록 LLM에게 안내
  •  Liu 등(2023e)의 경우, 상징적인 CoT 추론 경로를 촉진하기 위해, 모델이 명령을 실행하고 데이터를 처리하며 결과를 검토할 수 있는 Python 셸과 상호작용하도록 허용  

(2) 새로운 사용자 입력에 기반하여 모델 출력을 업데이트하기 위해

  •  SParC의 경우, Spider (Yu 등, 2018b)를 기반으로 연이어 따르는 질문을 설계

(3) 특정 제약 조건을 해결하거나 오류를 수정하기 위해

  • Zhao 등(2023a)은 테이블이 API 입력 제한을 초과하는 경우 다중 턴 프롬프트를 사용하여 이를 해결. 잘못된 부분이 생성되었을 경우 잘못된 경우를 LLM을 되돌려주는 반복적인 과정이 도움이 될수 있다고함.

 

 

아웃풋 평가 방식

  • F1이 일반적이긴함
  • ROUGE
  • BLEU
  • 시각화..

 

 

한계점과 미래방안

  • Bias and fairness llm의 내재적인 편향 완화
  • Hallucination 실제가 아닌값을 생성할 위험 (의료계쪽에서는 치명적)
  • Numerical representation 숫자는 임베딩이 꼭 필요
  • Categorical representation 컨텍스트 제한 초과시 데이터 일부가 날라가서 성능에 부정적이어짐. 이를 커버할수있는 인코딩방식이 필요
  • Standard benchmark 너무 다양하기 때문에 표준화된 벤치마크의 필요성
  • Model interpretability 데이터 이해능력의 탐구
  • Easy to use 대부분 데이터 직렬화가 필요해서 모델 엑세스가 쉽지않음. 다른사람들이 사용하기 쉬워야함.(자동전처리나 직렬화를 통합시킨다면 훨씬 쉬울것)
  • Fine-tuning strategy design llm모델의 적합한 모델과 학습전략
  • Model grafting 특화된 인코더를 사용해서 비문자 데이터를 매핑..한마디로 텍스트가 아닌 다른 유형의 데이터를 모델이 자체적으로 인코딩할수있다..

[중요내용 정리]

 

TABULAR  특징 

  1. 데이터의 다양성 ( 이진,수치형,텍스트같은 다양한 유형포함) 
  2. 불균형한 레이블과 없는값들이 많을수도 
  3. 전처리 필요성 
  4. 컨텍스트기반의 상호연결(예를들어 나이,교육수준,음주는 연결된) 
  5. 순서 무관 
  6. 사전지식의 부재 - 종종 이미지나 오디오데이터는 사전지식이 필요하다 

 

전통적인 tabular data과 딥러닝 활용 

  • Gradient Boosted Decision Trees 
  • 부스팅앙상블 
    • 한계점1 : 범주형특징같은것에 민감할수있으며암묵적 학습 수행이 가능 
    • 한계점2 : 시계열 데이터의 경우 처리하기 적합하지않다 
    • 한계점3 : 전체 분포가 골고루지 않을경우 일반화하기 어려울수 있다 
  • CNN방법론은 여러가지로 발전 
    • 데이터변환 
    • 미분가능트리 
    • 어텐션기반(TABNET) 
    • 정규화 
  • 여러가지 시도가 있었음에도 XGBoostLightGBMCatBoost 등을 포함한 GBDT 알고리즘 들이 여전히 우수함 
    • 베이지안 네트워크같은 딥러닝 적급낭버보가 LLM같은 생성모델의 발전 
  • LLM의 가장 전통적인 건 QA 
    • QA : TAPAS (Herzig et al., 2020), TABERT (Yin et al., 2020b), TURL (Deng et al., 2022a), TUTA (Wang et al., 2021), TABBIE (Iida et al., 2021) 

 

LLM의 간단설명(여기선 대형 PLM이라고도 부름) 

  • 모델은 텍스트 말뭉치의 일반적인 문법 및 의미적 이해를 얻은 후, 과제별 목적에 맞추어 훈련됩니다 
  • 이전 연구에서는 표형식 데이터의 표현 학습을 위해 LM을 사용하였으나 이는 제한적이었습니다향후 연구에서는 표 데이터를 텍스트로 변환하여 PLM을 활용하여 의미 정보와 헤더 정보를 고려한 문맥적 표현을 학습하는 방법을 제안하였습니다이를 통해 크로스 테이블 학습과 특성 열의 순열 불변성을 지니는 모델을 구축하는 것이 가능해졌습니다. 

 

현재 LLM의 잠재력에 대해 계속 탐구하고 있음. 

  1. 딥 러닝 방법은 초기 훈련에서 사용되지 않은 데이터셋에서는 최적의 성능을 보이지 않는 경우가 많기 때문에사전 훈련과 세밀 조정 패러다임을 활용한 전이 학습이 매우 유망합니다. (= 파인튜닝) 
  2. 표 데이터를 LLM에서 읽을 수 있는 자연 언어로 변환함으로써고차원 범주형 데이터의 one-hot 인코딩에 따른 차원의 저주(curse of dimensionality)를 피할 수 있습니다. (테뷸러 데이터를 txt로 변환해서 고차원문제를 해결) 
  3. CoT를 통한 단계적인 추론과 같은 신생 능력은 LM을 언어 모델링에서 보다 일반적인 작업 해결 도구로 변형시켰습니다LLM의 신생 능력이 표 데이터 모델링에서 얼마나 작동하는지 테스트하기 위해 더 많은 연구가 필요합니다.(cot 단계적 구성성단계적 추론은 다양한 작업에 적용할수있게 해준다) 

 

Contribtion 

  1. LLM을 타블로 데이터 예측타블로 데이터 합성타블로 데이터 질문 답변테이블 이해와 같은 분야들을 세분화하여 분류 
  2. 타블로 데이터에 LLM을 적용한 방법을 평가하는 다양한 측정 항목에 대한 현황과 분류법을 조사 (한마디로 정확도 측정 방법을 조사) 
  3. 많이들 사용되는데이터셋에 대한 현황과 분류법을 조사 
  4. Table data + llm 의 현황과 분류법 
  5. 도전과제와 개요 

 

Key techniques for LLMs’ applications on tabular data 

  • 직렬화 
    • Tabular -> text (text/json/xml...) 
      • 표를 쉼표같은 구분기호로 변환도 가능 
      • 마크다운 형식으로 변환도 가능 
  • Embedding based (직렬화 한걸 벡터화) 
    • Bert를 기반으로 하는 다양한 테이블 인코더들이 있다. 
  • 그래프기반,트리기반 데이터구조로 변환 
    • 하지만 직렬화를 해줘야 한다고  
  • 데이터 형식이 정확도에 매우 민감 
    • 예를 들어DFLoader와 JSON 형식이 테이블 변환 작업에 더 적합하다는 연구 결과와 HTML 또는 XML 테이블 형식이 GPT 모델에서 더 잘 이해되는 것을 보여주는 연구 결과가 있습니다 
  • 추가정보 
    • 직렬화+임베딩을 한번에 하는 방법들도 있다고함 (표에대한설명을 문장으로생성) 
      • LMs (Fine-tuned BLOOM on ToTTo (Parikh et al., 2020b), T0++ (Sanh et al., 2022), GPT-3 (Ouyang et al., 2022)) 
    • Few-shot분류시 전통적인 리스트와 텍스트 템플릿이 llm 직렬화보다 성능이 더 좋았다고함 
    • 복잡하고 큰 LLM일수록 성능이좋다 

 

Table 조작(고려해야할 사항) 

  • LLM모델은 인풋시 텍스트 제한이 있다. 2048토큰까지 처리가능. Llama2는 4048토큰지원. 만약 테이블이 너무 크면부족할수가있다 
  • 길이는 문제 없어도 긴문장을 처리시에 비효율적이다. ' 
    • 1000토큰이상일경우 GPT3에서 성능저하를 확인 
  • 긴 프롬프트는 LLM 기반에서 너무 비싸다 

 

Prompt engineering 

  • 프롬프트 = llm에 입력되는 텍스트 
    • 가장간단한 형식은 문자열 
    • IN-CONTEXT LEARNING = 유사한예를 통합하여 LLM이 원하는 결과를 이해하는데 도움이 되는걸 의미 
      • In-Context Learning은 특정한 맥락(context) 내에서 필요한 정보를 바탕으로 학습하는 방식을 말합니다이는 기존의 대규모 데이터 세트를 통해 사전 학습(pre-training)하는 과정 없이제한된 정보 내에서 바로 학습하고 적용할 수 있는 방식을 의미합니다. 
      • 프롬프트 엔지니어링을 통해 이루어진다. 
      • 사용자가 프롬프트를 입력하면 gpt3는 텍스트를 분석해서 컨텍스트를 이해하고 관련출력을 생성하는것사용자가 오늘 기분이 슬퍼 라는 프롬프트를 입력하면 gpt3가 그것참 유감이군요 제가 도와드릴일이 있을까요 라는 출력을 생성하는걸 의미합니다. 
      • 한마디로 프롬프트의 내용만으로 하고자하는 task를 수행하는것을 말한다promt안의 맥락적의미(in context)를 이해하고 답변을 생성하는것프리트레이닝이나 파인튜닝같은 작업업이 별도의 학습과정이 존재하지않는다 
        • Zero shot 
          • Prompt: 빨간 사과가 영어로 뭐야? 
          • GPT: "Red Apple" 
        • One shot 
          • Prompt: 빨간 사과는 red 사과라고 할께노란 바나나는? 
          • GPT: 노란 바나나는 "yellow 바나나"입니다. 
        • Few shot 
          • Prompt: 빨간 사과는 red 사과라고 할께노란 바나나는 yellow 바나나야그럼 노란 사과는? 
          • GPT: 노란 사과는 "yellow 사과"입니다. 
      • 예시는 CoT, SC 임 
        • 전자는 단계별 사고로 분해해서 더 나은 추론을 만들어내는 전략 
        • 다양한 사고방식을 허용한다는 직관을 바탕으로함 

 

  • Retrieval-augmented generation(rag / 검색증강생성) 
    • Llm모델의 출력을 최적화 하여 응답을 생성하기 전에  데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스 
    • 이런 지식소스를 참조하여 다양한 환경에서 사용자 질문에 답변이 가능한 봇을 만드는것 
    • 1)검색모듈로 주어진 검색어나 질의에 따라 정보검색하고 문맥추출  
    • 2) 생성모듈로 앞서서 검색된정보들을 바탕으로 문장을 생성함 
  • ROLE-PLAY 
    •  예를 들어, Zhao 등 (2023a)은 프롬프트 "통계 분석 전문가로 가정해보세요."로 실험을 진행했다고함 

 

 

 

Preprocessing (테뷸러 데이터를 활용하여 데이터 직렬화 하는 방법) 

  • LIFT (Dinh et al., 2022)는 초기 노력 중 하나로, "열 이름은 값(Value)입니다"와 같은 자연어 문장 또는 "col1 = val1, col2 = val2, ..."와 같은 여러 방정식과 같은 직렬화 방법을 시도 
  • 동일한 결론은 TabLLM (Hegselmann et al., 2023)에서도 확인되었으며그들은 9가지 다른 직렬화 방법을 평가 
    • 텍스트로 구성된 모든 피처의 열거가 가장 우수한 성능을 발휘한다고 함(3번째 논문) 
  • TABLET논문방법을 사용하면 F1스코어가 매우 높게 오른다는걸 확인 
  • 스키마 기반의 프롬프트 엔지니어링 데이터셋의 배경 정보작업 설명요약 및 예시 데이터 포인트를 포함한다고 함 
  • Summary Boosting (Manikandan et al., 2023)은 데이터+메타데이터를 텍스트 프롬프트로 직렬화하여 요약을 생성 
  • Serilize-LM (Jaitly et al., 2023)는 도메인 특정 데이터셋에서 LLM 성능을 향상시키기 위해 3가지 혁신적인 직렬화 기술을 소개 
    • 차량 분류를 예로 들면제조사색상 및 차체 유형과 같은 속성이 이제 단일한 더 풍부한 문장으로 결합 
    • 또한, 가장 관련성이 높은 피처를 식별하기 위해 공분산을 활용하고, 해당 피처를 중요하다고 라벨링하거나 가장 중요한 피처를 설명하는 문장을 추가 (데이터의 경중을 판단한다는 뜻 같다) 
    • 마지막으로테이블 데이터를 LaTeX 코드 형식으로 변환 
  • UniPredict (Wang et al., 2023a)는 임의의 입력 M을 대상 설명과 피처의 의미론적 설명으로 통합하여 메타데이터를 형식화 
  • …. 

 

 

Time Series Forecasting (테이블 데이터 중에서도 시계열 예측 !!!!!!) 

  • ZeroTS (Gruver et al., 2023)은 GPT-3 (Brown et al., 2020)와 LLaMA-70B Touvron et al. (2023a)와 같은 LLM을 직접 시계열 예측에 사용 
    • 이 연구는 평균 절대 오차(MAE), 스케일 MAE 및 연속된 순위 확률 점수(CRPS)를 사용하여 모델을 평가하며LLM은 간단한 규칙 기반의 완성을 선호하고 반복 및 추세를 캡처하는 경향이 있다고 언급 
      • => llm은 시계열 예측에도 매우 효율적이다. 

 

  • Finetuning시 일반적으로현재 LLaMa가 가장 일반적으로 사용되는 모델이며, fine-tuning에는 soft prompt가 적합한 접근 방식이라고 함 
  • 메트릭으로는 MAE가 가장 일반적인 메트릭 

 

 

 

LLMs for tabular data generation (Tabular 데이터를 보완하는 새로운 방법론을 탐구-뉴데이터를 생성해서 활용) 

  • tabular데이터를 보완하는 새로운 방법론을 탐구 
  • Llm을 활용해서 새로운 tabular데이터를 생성하고 활용할 수 있는 방법들을 연구 
    • 한마디로 llm을 활용해서 데이터를 생성해서 활용한다 

 

  • Borisov et al. (2023b)은 원본 tabular 데이터의 특성을 가진 합성 샘플을 생성하기 위해 GReaT11 (Generation of Realistic Tabular data) 제안. GReaT 데이터 파이프라인은 문장 직렬화 방법을 사용하여 tabular 데이터를 의미 있는 텍스트로 변환하는 텍스트 인코딩 단계와 관련. 이후에는 GPT-2 또는 GPT-2 distill 모델을 미세 조정하는 과정이 이어짐.  
  • REaLTabFormer (Solatorio & Dupriez, 2023)은 GReaT를 확장하여 비관계형 및 관계형 타블러 데이터를 생성 
  • 등등.... 

++ figure4  참조

  • 이러한 합성 데이터의 평가방법 4가지 
    1. 저차원 통계열별 밀도와 열 간의 상관관계를 평가하여 개별 열의 분포와 열 간의 관계를 파악 (열별 데이터분포를 살펴봄으로써 다양성과 일관성을 평가한다예를들면 열값이 균일하게 분포되어있는지확인가능. 또 상관관계를 통해서 음의 상관관계이니지 직선적인 상관관계인지 등등 파악가능) 
    2. 고차원 측정합성 데이터의 전체적인 신뢰성과 다양성을 측정하는 지표를 사용합니다. (=다양한 관점에서데이터품질과 다양성을 측정예를들어 실제데이터와 얼마나 유사한가 같은 지표) 
    3. 개인 정보 보호원본 데이터의 개인 정보 보호 수준을 평가하기 위해 최근접 레코드와의 거리를 계산하는 지표를 사용합니다.(개인식별 가능성을 평가함원본데이터랑 유사도를 평가해서 유사할수록 개인정보 식별 가능서이 높아지고유사도가 낮을수록 개인정보수준이 높아진다)) 
    4. 하위 작업 성능합성 데이터를 사용하여 학습한 모델이 실제 데이터에서 얼마나 잘 작동하는지 평가합니다. 

 

 

 

LLMs for table understanding 

  • TABLE QA  
  • Table and Conversation QA = QA인데 테이블만 사용하는게 아니라 다른 형식의 정보들도 같이 사용하여 대화를 진행 
  • Table Classification = 테이블을 종류별로 분류하는것 
  • Text2SQL = sql 생성 
  • Table NLG = 원본 테이블에 대한 설명을 생성 
  • Table NLI = 테이블안의 관계에 대해 분석(2019에 많이 팔린 상품은 무엇) 
  • Domain Specific = 영역별로 특화항공업계는  AIT-QA (Katsis et al., 2022)를 사용하는 것을 권장금융 관련 테이블 질문 답변 작업에는 TAT-QA (Zhu et al., 2021a)를 사용하는 것을 추천대략적으로 업계별로 추천하는것이 다르다는것으로 이해 
  • Pretraining = 테이블+영어문맥설명으로 프리트레이닝하면 테이블 이해해 더 좋은 결과를 볼수 있다라고 함 

 

 

General ability of LLMs in QA 

 

  • Numerical QA = 수학 추론을 필요로 하는 질문(American Express의 평균 거래 별 결제량은 얼마입니까?) 
  • Text2SQL =  Liu et al. (2023c)은 세 가지 유형의 키워드를 식별하는 질문 매처를 설계: 1) 열 이름과 관련된 용어, 2) 제한과 관련된 구절(예: "상위 10개"), 3) 알고리즘 또는 모듈 키워드. 
  • Impact of model size on performance=WebTableQuestions에서 6.7B 대 175B GPT-3 모델을 비교할 때, 작은 모델은 더 큰 모델의 점수의 절반만 달성 
  • Finetuning or No finetuningLLMs(>70B 파라미터)를 파인튜닝하는 것에는 매우 제한적인 연구가 진행 

 

 

QA 관련 논문들 

  • Chain-of-command (CoC)-사용자입력을 중간명령작업의 순서열로 변환
  • Deng et al. (2022b)는 QA 작업을 세 가지 하위 작업으로 분할 
    • 불확실성을 명확히 하기 위해 질문을 할 것인지를 결정하는 Clarification Need Prediction (CNP)
    • 명확히 하기 위해 질문을 생성하는 Clarification Question Generation (CQG)
    • 질문에 대한 명확히가 필요하지 않은 경우 바로 답변을 생성하는 Conversational Question Answering (CQA)
  • 검색능력도 중요함. 검색능력은 아래와같이 두가지 유형으로 나뉨
    • 질문과 관련된 정보를 찾기 ( 예를들어 무슨열의 무슨행의 값을 구해줘(
    • 추가정보와 예제를 얻는것
  • 데이터 메인테이블 관련
    • Zhao et al. (2023d)는 최상위-n개의 가장 관련성이 높은 문서를 반환하는 검색 모듈 (retriever module)의 성능 향상이 수치적 QA에서 최종 정확도를 일관되게 향상시킨다는 것을 관찰
    • . Sui et al. (2023c)는 여러 개의 테이블 샘플링 방법 (행과 열)과 토큰 제한 매개변수를 기반으로 한 테이블 패킹을 탐구(질문과 가장 의미적으로 유사한 행을 검색)
    •  Dong et al. (2023)는 SC(Self-consistency, 또다른논문이다)를 사용하여 질문과 관련성에 따라 테이블을 순위 매김하기 위해 ChatGPT를 사용. 그 결과 10개세트의 검색결과를 생성한다음, 가장 자주보이는 세트를 선택. 이때도 SC방법이 사용되었다고함. 
    •  cTBLS Sundar & Heck (2023)는 검색된 테이블 정보에 기반한 대화 응답을 검색하고 생성하기 위한 세 단계 아키텍처를 설계함
      • RoBERTa (Liu et al., 2019)에서 유도된 양방향 인코더 기반의 Dense Table Retrieval (DTR) 모델을 사용해서 연관성이 가장높은 테이블을 식별(인코더만 사용한다)
      • 두 번째 단계에서 트리플릿 손실을 사용하여 행을 순위 매기기 위한 Coarse System State Tracking 시스템을 사용 (??)
      • 마지막으로, GPT-3.5는 그룹화된 지식 원본을 기준으로 한 쿼리와 관련성이 가장 높은 셀을 조건으로 하는 추가 질문에 대한 자연어 응답을 생성
      • INPUT = 질의 기록, 순위 매김된 지식 원본 및 답변해야 할 질문이 포함된 프롬프트가 입력으로 제공
    • . Zhao et al. (2023d)은 OpenAI의 Ada Embedding4과 Contriever (Izacard et al., 2022)를 검색기로 사용하고 BM25 (Robertson et al., 1995)를 희소 검색기로 사용. 여기서 말하는 검색기란 가장 관련성이 높은 텍스트랑 테이블을 추출하는데 도움을 주는것. 이 추출된 정보는 질문에 대한 입력 컨텍스트로 제공됩니다.
  • 예제선별관련
    • Gao et al. (2023)는 1) 무작위로 K개 선택 2) 질문의 유사성을 선택(유사성기준은 유클리드거리같은 사전에 정의된 기준을 사용) 3) 마스킹된 질문 유사성을 선택한다.(=질문과 예제간의 유사성을 평가해서 예제를 선택하는것) 4) 대상 SQL 쿼리 s∗와 유사한 k개의 예제를 선택.

 

Multi-turn tasks

LLM을 반복적으로 호출하는 파이프라인을 설계

3가지 카테고리로 분류된다

(1) 어려운 작업을 처리 가능한 하위 작업으로 분해하기 위해 (너무 복잡한 요청을 작은 여러개 작업으로 나눔)

  • Suiet al. (2023b)은 하류 테이블 추론을 개선하기 위해 두 단계의 self-augmented prompting approach를 제안. 첫 번째로 프롬프트를 사용하여 LLM에게 테이블에 대한 중간 출력을 생성하도록 요청한 다음, 응답을 두 번째 프롬프트로 통합하여 하류 작업의 최종 답변을 요청한다.
  • Ye et al.(2023b)은 또한 대량의 테이블을 작은 테이블로 분해하고 복잡한 질문을 텍스트 추론을 위해 단순한 하위 질문들로 변환하도록 LLM에게 안내
  •  Liu 등(2023e)의 경우, 상징적인 CoT 추론 경로를 촉진하기 위해, 모델이 명령을 실행하고 데이터를 처리하며 결과를 검토할 수 있는 Python 셸과 상호작용하도록 허용  

(2) 새로운 사용자 입력에 기반하여 모델 출력을 업데이트하기 위해

  •  SParC의 경우, Spider (Yu 등, 2018b)를 기반으로 연이어 따르는 질문을 설계

(3) 특정 제약 조건을 해결하거나 오류를 수정하기 위해

  • Zhao 등(2023a)은 테이블이 API 입력 제한을 초과하는 경우 다중 턴 프롬프트를 사용하여 이를 해결. 잘못된 부분이 생성되었을 경우 잘못된 경우를 LLM을 되돌려주는 반복적인 과정이 도움이 될수 있다고함.

 

 

아웃풋 평가 방식

  • F1이 일반적이긴함
  • ROUGE
  • BLEU
  • 시각화..

 

 

한계점과 미래방안

  • Bias and fairness llm의 내재적인 편향 완화
  • Hallucination 실제가 아닌값을 생성할 위험 (의료계쪽에서는 치명적)
  • Numerical representation 숫자는 임베딩이 꼭 필요
  • Categorical representation 컨텍스트 제한 초과시 데이터 일부가 날라가서 성능에 부정적이어짐. 이를 커버할수있는 인코딩방식이 필요
  • Standard benchmark 너무 다양하기 때문에 표준화된 벤치마크의 필요성
  • Model interpretability 데이터 이해능력의 탐구
  • Easy to use 대부분 데이터 직렬화가 필요해서 모델 엑세스가 쉽지않음. 다른사람들이 사용하기 쉬워야함.(자동전처리나 직렬화를 통합시킨다면 훨씬 쉬울것)
  • Fine-tuning strategy design llm모델의 적합한 모델과 학습전략
  • Model grafting 특화된 인코더를 사용해서 비문자 데이터를 매핑..한마디로 텍스트가 아닌 다른 유형의 데이터를 모델이 자체적으로 인코딩할수있다

 

2. Large Language Model for Table Processing: A Survey

Large Language Model for Table Processing_ A Survey의 사본 (1).pptx
5.03MB

 

3.TabLLM: Few-shot Classification of Tabular Data with Large Language Models 

4. Large Language Models Can Automatically Engineer Features for Few-Shot Tabular Learning

  • 모든 괄호앞에는 빈칸
  • , , , and
  • , 이거쓸때 공백 꼭!!!!
  • Abstract는 보통 마지막에씀
  • 학회별로 템플릿 꼭 확인할것 (https://www.ieee.org/conferences/publishing/templates.html)
  • 단락별로 필수내용을 쓰고 거기에 살을 붙이는 식으로 진행
  • 풀네임 (약어) ex) Amazon Web Service (AWS)
  • 갈호칠땐 꼭 공백 포함 ex) aws (블라블라)
  • 영어번역은 파파고 구글보다 chatgpt4.0이 가장 자연스럽고 매끄럽다
  • motivation 같은 직접적인 제목은 피하기
  • introduction에서 figure 참조는 하지않음

(피드백받은 부분)

  • 일반적인 이야기를 시작으로 구체적인 예제를 드는 방향으로 작성할것
  • 예측 모델, 입출력 데이터 등은 가능하면 수식등을 사용해서 정의하기 - https://github.com/soulmachine/machine-learning-cheat-sheet/
  • 실험결과 작성시 이미지 및 테이블의 위치가 텍스트와 최대한 매치 되도록 할것 (설명하는 페이지보다 두페이지 뒤에가있으면 리뷰어들이 얼탱이가 없을듯)
  • 테이블, 그림 작성시 복사-붙여넣기 하면 라벨 바꾼것 꼭꼭 확인!!!!!!!
  • 그림 설명 작성시에는 각 축에 있는 값을 설명하는것이 기본중의 기본. (x값은 뭐고 세로값은 뭐고 점찍은건 뭐고...)
  • 실험 결과 작성 시 단순히 그래프에 있는 숫자를 나열하는 것 보다는 그 이유에 대한 깊이 있는 분석이 추가 되어야 한다.(단순하게 표를 읽는건 완전 비추)

크게 두가지로 나뉘는데 맨처음 wave scaling 부분만 다루고자함.

1. Wave Scaling

2. MLP

 

STRATIX 10 NX 의 구조랑 성능비교 ....

 

1. Brainwave NPU overlay architecture

\

 

 

2. tensor block 구조

텐서 블록에는 3개의 내적 단위가 포함되어 있으며, 각 단위에는 10개의 8×8 승수와 3개의 선택적 누산기(ACC) 가 있음.

** DOT (곱셈) - 벡터끼리의 곱셈을 의미함

** 승수 : 승수란 어떤 수에 다른 수를 나누거나 어떤 식에 다른 식을 곱할 때, 그 나중의 수나 식을 말한다. 

** ACC (누산기) : 연산된 결과를 일시적으로 저장해주는 레지스터로 연산의 중심

 

** 레지스터 

레지스터는 비트 패턴을 저장하는 플립플롭 그룹입니다. FPGA의 레지스터에는 클럭, 입력 데이터, 출력 데이터 및 활성화 신호 포트가 있습니다. 클록 주기마다 입력 데이터가 래치되어 내부에 저장되고 출력 데이터가 내부에 저장된 데이터와 일치하도록 업데이트됩니다. 

 

그림 3은 이 모드에서 AI 텐서 블록의 동작을 보여줌

 각 주기에 내적 단위를 공급하는 레지스터 뱅크는 점선 상자로 표시됩니다. 3 클럭 사이클 후에 해당 피연산자의 모양과 색상을 사용하여 출력이 생성됩니다.

주황별 :역시 인풋벡터인데 무색 모양은 3개의 내적 단위로 브로드캐스트되는 텐서 블록의 데이터 포트에 대한 입력 벡터입니다.

유색원 : 레지스터 뱅크로 들어온 인풋벡터값

 

3. baseline 기반으로한 리얼구조 

 

아까 베이스라인 npu 구조 에서 더 발전시킨것이 Stratix 10 NX Npu

  • ** 타일이 왜 두개로 나뉨? (인풋레인이 2개라서)
  • 베이스라인 NPU에서 2개의 타일 및 DPE를 갖는 MVU에 대한 매트릭스-벡터 연산의 매핑을 예제로 들고있다.
  • DPE는 여러 주기에 걸쳐 입력 벡터의 블록과 행렬 행 블록 간의 내적을 수행
  • 그런 다음 다른 타일에서 해당 DPE의 출력을 줄여 행렬의 다음 행 블록으로 진행하기 전에 최종 결과를 생성

- 대신에 다음그림처럼 여러가지 결과를 저장하기위해 BRAM 기반 누산기(=MVU)를 구현. (BRAM = block ram)

- dual-port RAM. 듀얼 포트 램이므로 한 사이클에 2개의 주소로부터 값을 읽거나 쓰기가 가능

- BRAM 이 여기서 하는일은 기본적으로 스토리지의 역할을 하며 read/write 속도가 매우 빠르다고함/ On-Chip 메모리 ( 메모리가 칩위에 있다는 의미/ 메모리가 칩 위에 있기 때문에 버스(Bus)를 사용하지 않고 바로 메모리에 접근할 수 있다 / BRAM 은 기본적으로 FPGA안에 필요한 정보, data를 저장하는 공간이다 )

*BRAM ? Xilinx FPGA 내부의 SRAM 의 한 종류를 BRAM 이라 부릅니다. (Xilinx FPGA 에는 URAM 도 있습니다.)  Intel FPGA 은 BRAM 역할을, Embedded Memory 라고 부르구요.

  • 결과적으로 타일 간 감소를 수행하기 위해 각 타일에서 중앙 가산기 트리로 넓은 버스를 라우팅하면 상당한 라우팅 혼잡이 발생할 수 있습니다
  • 라우팅 혼잡을 완화하기 위해 그림 4c와 같이 각 타일이 이전 타일의 결과를 가져오고 로컬 이진 축소를 수행하고 결과를 다음 타일로 전달하는 데이지 체인 아키텍처를 갖도록 MVU를 재설계합니다. . 
  • 이 아키텍처는 각각의 두 개의 연속 타일 사이에 더 짧고 더 지역화된 라우팅을 사용하며 몇 사이클 더 높은 대기 시간을 희생하면서 더 효율적이고 라우팅 친화적인 것으로 밝혀졌다.

 

4. 성능비교

** ALM = 해당 제품군의 베이직 빌딩블록

** 빌딩블록 = 컴터를 구성하는 여러가지종류의 기본 회로들을 지칭함

** TOPS = 초당 1조 연산속도  (15TOPS = 1초에 15조번 연산)

**PEAK TOPS 는 MVU 에서만 국한지음

 

** GEMV = 일반 행렬곱

** GEOMEAN = 기하평균 ( n개 양수값을 모두 곱한다음 n제곱근을 구함)

** 1개의 배치로부터 loss를 계산한 후 Weight와 Bias를 1회 업데이트하는 것을 1 Step이라고 한다.

 

** 오프칩 : CPU와 주기억장치, I/O Port가 외부에 존재하는 것

** DIE size = 집적회로의 물리적인 크기 (길이,너비) https://en.wikichip.org/wiki/die_size

** TSMC 반도체 위탁제조회사

**12nm 제조공정에서 만들어진 프로세서 이름

** V100 p3 / T4 g4dn

그림 6은 T4 및 V100 GPU에서 fp32, fp16 및 int8 정밀도에 대한 GEMM 마이크로 벤치마킹 결과를 보여줍니다. 

빨간점선 :  2048 이하의 매트릭(행렬) 크기에서 최고 성능(빨간색 점선)

** GEMM = 행렬곱

** throughput 한마디로 단위시간당 처리할수 있는양이라고 보면됨. 

  • 결과는 텐서 코어가 비활성화된 경우(파란색 선)에 비해 텐서 코어가 GEMM(빨간색 선)에서 GPU의 성능을 크게 향상시킬 수 있음을 보여줌
  • T4 및 V100의 텐서 코어는 fp32 정밀도를 지원하지 않습니다. 대신 fp32 데이터는 텐서 코어에서 곱셈 연산을 실행하기 전에 fp16으로 변환됩니다[45]. 이 데이터 변환 오버헤드는 순수 fp16 GEMM에 비해 텐서 코어 성능을 감소시킵니다
  • 결과적으로 텐서 코어(마커가 없는 빨간색 선)에서 달성된 int8 성능은 매우 큰 8192 × 8192 행렬을 처리할 때도 최고 성능의 45% 미만
  • GEMM 워크로드에서 T4와 유사한 성능을 달성합니다. ++ FPGA의 재구성 가능성을 활용하여 NX 텐서 블록을 조금 변환하여 GEMM용 NPU 오버레이를 사용자 정의할 수 있습니다. 그런데 이건 이 논문의 주제랑 조금 벗어나다고 하여 거기까지는 하지않았음

** GRU ( lstm 이랑 비슷한데 다른모델임)

** GENV 일반행렬 벡터곱

**GEOMEAN 기하평균값

- Stratix 10 NX의 향상된 NPU 성능을 최고의 T4 및 V100 성능과 비교합니다. NPU 성능은 크기가 3과 6인 소규모 배치의 경우 두 GPU보다 항상 훨씬 높습니다.

=>  NPU는 배치 6(각각 배치 3에서 2개의 코어용으로 설계됨)에서 24.2배 및 11.7배 더 높은 성능을 보입니다.

=> 이러한 결과는 FPGA가 low- 배치를 사용한 실시간 추론에서 GPU보다 10배 더 나은 성능을 달성할 수 있다.

** TACC - 텍사스 대학교 컴퓨팅 센터

** BW = bandwidth

** virt linux = EC2 g4dn

다음을 보면 GPU개랑 NPU 에서 대역폭을 측정하고 있습니다. (좌 -  대역폭 / 우 : 대역폭 활용률)

측정된 대역폭은 먼저 데이터 크기가 증가할수록 늘어나는것을 볼수 있다.

T4 는 aws 가상화로 인해서 훨씬더 낮은 대역폭을 보인다. (가상 머신의 물리적 메모리에 고정된 메모리 공간에서 GPU 입력 데이터를 보낼 때)

(두번쨰그림) FPGA는 최대 90% 활용으로 100G 이더넷 인터페이스를 최대한 활용하는 반면, V100은 최대 128Gbps PCIe 대역폭의 최대 80%만 활용할 수 있습니다.

 

https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8924184 (논문pdf 링크)

노션 참조 

참조 :

http://www.nextobe.com/2020/05/14/딥러닝을위한-멀티-gpu-시스템-구축-및-사용-방법/

https://www.udna.kr/post/gpu-클러스터-관리의-어려움을-한-방에-해결하는-gpu-on-demand

https://www.samsungsds.com/kr/insights/TechToolkit_2021_GPU.html

 

 

ABSTRACT

클라우드의 다양한 구성 옵션에서 딥 러닝 모델을 훈련하기 위한 런타임 및 비용을 추정하는 클라우드 서비스인 AI 게이지를 제공한다.

INTRODUCTION

  • GPU 종류에 따라 10배까지도 실행속도 차이가 남
  • 여러가지 선택지들은 많지만 어떤 하드웨어를 사용할것인지는 아직도 사용자의 몫 (뭐가 좋을지 선택은 사용자가)
  • 런타임은 비용과 비례함
  1. 클라우드에서 기계 학습 작업의 런타임을 추정할것임 (온라인,오프라인 모두 성능 추정치를 제공하고, 비용예산및 성능 목표에 따라 선택할수있는 바람직한 옵션을 제공할것이라고함)
  1. 클라우드에서 딥 러닝 훈련 작업의 런타임 예측을 위한 비선형 회귀 모델을 개발 - 오프라인
  1. 학습 로그를 사용하여 클라우드에서 진행 중인 작업의 남은 런타임 추정을 위한 기술을 개발. 서비스는 작업을 실행하는 기본 DL 프레임워크와 독립적인 일반화된 형식으로 로그를 사용 - 온라인

II. CHALLENGES & USE CASES

A. Challenges in Building a Runtime Estimation Service

  1. 계속 DL 요소들과 GPU 갯수들 등등 많은 요소들에 의해 런타임 예측이 아주 복잡하다는걸 계속 반복해서 말하고 있다.
  1. 여러가지 프레임워크에도 적용되는 유연성을 제공할것이라고 한다.

B. AI Gauge Use Cases

  • 현재 딥러닝 실험을 위한 프레임워크 제공 경쟁이 치열하다 (= 한마디로 사용자가 지정가능한 옵션들이 매우 다양하다는 의미)
  • AI 게이지 서비스는 이런 서비스속에서 사용자가 어떤 GPU 유형을 선택해야할지,몇개를 선택할지(멀티지피유), 얼마나 오래 실행할것인지 , 얼마나 가성비좋은 선택인지등등 사용자의 질문에 답하는데 도움을 줄것
  • 한마디로 다양한 GPU 구성에 따른 작업 런타임 및 총 비용의 추정치를 제공할것

III. AI GAUGE SERVICE DESIGN

  • AI gauge 는 1)온라인 견적서비스 2)오프라인 견적서비스 이렇게 두가지를 제공

** 오프라인 : 미리 트레이닝해놓고 적용.

** 온라인 : 온라인 학습에서는 데이터를 순차적으로 미니배치별로 시스템을 훈련.온라인 학습은 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 시스템에 적합하다.

A. AI Gauge service overview

 

  • AI gauge 아키텍쳐에 대해 설명하고 있다.
  • API 를 사용하여 사용자와 서비스가 상호작용할수 있게 해준다
  • JOB Monitoring Service ⇒ 실행중인 잡의 진행상황을 모니터링하기 위해 개발.(It records the job progress as a time series with epoch/iteration numbers.)
  • online estimation service ⇒ retrieve the latest job progress from the database directly
  • 예측 결과등 시각화를 제공하기 위해 Grafana 대시보드를 사용해서 배포한다고 한다.
  • ** Grafana (개방형 분석및 모니터링 플랫폼)

    Grafana란, 시계열 매트릭 데이터를 시각화 하는데 가장 최적화된 대시보드를 제공해주는 오픈소스 툴킷이다. 다양한 DB를 연결하여 DB의 데이터를 가져와 시각화 할 수 있으며, 그래프를 그리는 방법도 간단히 마우스 클릭으로 완료할 수 있다.

    Grafana는 시계열 매트릭 데이터 수집에 강한 모습을 보이는 만큼, 활용하는 부분도 서버 리소스의 매트릭 정보나 로그 같은 데이터를 시각화는 데 많이 사용한다.

    시각화한 그래프에서 특정 수치 이상으로 값이 치솟을 때(예를 들어 CPU 사용량 80% 이상) 알림을 전달받을 수 있는 기능도 제공한다. 이러한 기능은 인프라 운영 관점에서 굉장히 중요한 기능이라고 할 수 있다.

    예시로 볼수있는 링크 : https://play.grafana.org/d/000000012/grafana-play-home?orgId=1

 

B. AI Gauge service request flows

  • AI Gauge 는 3가지 기능을 제공한다
    1. 실행중인 작업을 모니터링 ( Grafana 가 실시간 모니터링에 적합한 플랫폼인것같다 ex:kibana)ㄴ 작업 모니터링 서비스
    1. 실행중인 작업의 남은 런타임 및 비용추정ㄴ 온라인 견적서비스
    1. 작업의 총 실행시간과 비용을 추정ㄴ 오프라인 견적 서비스
    이 3가지는 완전히 본리되어있고 서로 상호호환하지않는다.

IV. ONLINE ESTIMATION (제공하는 두번째 서비스)

  • 온라인 예측 (2번째 서비스) 는 작업이 시작되고 나서야 사용가능하며, 남은 런타임을 에측한다.
  • 사용자는 AI 게이지를 사용하려면 Epoch/iteration 시간당 및 현재 완료된 Epoch/iteration 횟수에 관한 정보를 알아야한다.
  • 시계열 데이터를 기반으로 하기때문에 데이터의 시간적 속성을 연구해야한다.(= 시계열이 정상적이여야한다)
  • 그림4에서 1, 2, 4 GPU가 있는 작업은 단일 노드인 반면, 8 GPU 작업은 2노드에 분산된 작업이다.
  • 그림4에서 단일노드, 분산작업 모두다 iteration 별로 아주작은 변동은 존재하지만, 특별한 경향성이나 계절성같은것은 보이지않는다.
  • 그림4를 보면, Caffe jobs의 시간별 시계열 데이터를 보여주는데, 8개 gpu 작업에서 배치사이즈가 다른것보다 거의 2배인걸 확인할수있다.
  • ADF 테스트에서 실패한 작업들을 더 살펴보았다고한다, → 모든 작업의 총 에포크가 100개미만이고 테스트할 데이터 포인트가 너무 작아서 테스트가 실패했다는 이유를 발견함
  • 그다음으로 각 잡 타입에 따라 (모델과, gpu 를 달리해서) 잡 실행시간을 비교하기위해 coV를 계산.
  • ** IBM WML

    IBM 에서 제공하는 클라우드 서비스인가보다

    https://ibm-wml-api-pyclient.mybluemix.net/

    IBM 왓슨 기계 학습 서비스와 함께 작업 할 수 있습니다. 모델을 훈련, 저장 및 배포하고 API를 사용하여 점수를 매기고 마지막으로 애플리케이션 개발과 통합할 수 있습니다. ibm-watson-machine-learning라이브러리는 데이터 버전 3.5 이상에서 (나중에 IBM 클라우드라고 함) 서비스로 데이터를위한 IBM 클라우드 Pak® (2020 년 9 월 1 일 이후에 생성) V2 인스턴스 계획뿐만 아니라 IBM 클라우드 Pak® 작업 할 수 있습니다. 이전 버전의 IBM Cloud Pak® for Data의 경우 링크에 제공된 라이브러리의 베타 버전을 사용하십시오 .

  • ** ADF test ( Augmented Dicky-Fuller Test)
    • 시계열 데이터를 테스트하는 방법
    • 주로 시계열 데이터가 안정적인가? 여부를 확인하는데 이용되는 방법이다
    • 귀무가설 ( null hypothesis ) : 기각에 실패하면 시계열이 안정적이지 않음을 의미한다.
    • Alernative hypothesis 귀무가설이 기각되고 시계열이 안정적임을 의미한다.
    • 귀무가설을 기각하기 위해서는 p-value 가 0.05보다 낮게 나와야한다고 한다. 그 이상이면 시계열 데이터가 안정적이지않다는것을 의미한다.

V. OFFLINE ESTIMATION (제공하는 세번째 서비스)

 

  • 오프라인 견적 서비스는 클라우드에서 돌리기전에!!!! 실행해서 제공한다.
  • 이 제공된 추정치를가지고 사용자에게 가장 적합한 리소스구성을 제안한다. 즉 사용자가 잡관련 설명만 인풋으로 넣으면, 오프라인 견적 서비스는 아웃풋으로 비용 & 리소스 구성목록을 반환한다.
  • 피처로 플랫폼 하드웨어 특성뿐만 아니라, DL 클러스터와 관련된 피처들도 고려하기위해서 DL 클러스터의 작업로그를 분석했다.
  • 여기서 문제점 : 표1에 나오는 다양한 요소조합을 포함하는 공개 데이터를 찾을수 없었다. → 그래서 이것은 클러스터에서 실행되는 실제 사용자 작업에 대한 런타임 데이터로 보완이 되었다
  • 이것에 그치지않고 클러스터에서 더 많은 작업 추적이 수집될때, 예측모델을 점진적으로 조정하기 위해 오프라인 추정 구성요소는 확장가능한 설계를 가지고 있다. 재교육도 가능하다.
  • 기계 학습 모델에 사용되는 일반적인 성능 메트릭에는 평균 제곱 오류, 평균 절대 오류, 평균 제곱 로그 오류, 중간 절대 오류 및 R-제곱이 포함됩니다. 그러나 런타임 추정을 위한 예측 정확도는 초 단위의 절대 오차로 잘 설명되지 않습니다. 1분이라는 동일한 오류가 10시간 작업에는 작을 수 있지만 2분 작업에는 클 수 있습니다.
  • 현재 모델은 nonlinear regression and machine learning techniques like decision tree, random forest, and gradient boosting.
  • CART 알고리즘을 사용하여 결정트리를 구성함

 

VI. PERFORMANCE EVALUATION

A. Online Runtime Estimation

  • 그림6을 보면 4개의 장기 실행작업의 남은 실행시간을 살펴본다.ㄴ 예측한것과 실제 남은양이 거의같은걸 볼수있다.
  • 온라인 추정은 작업로그에서 읽은 반복시간에 이동평균을 사용하고 남은 런타임을 계산한다.
  • 그림7에서도 100K 반복에 대해 CIFAR10 데이터 세트[12]에서 실행된 Tensorflow ResNet 모델의 예상값과 실제값을 비교해서 보여준다.
  • 잔여 런타임을 구하기위해서 반복 런타임에 지수 가중이동평균을 적용해서 얻는다고한다 ( 10프로안짝의 오류로 싱글!!!!!!!!지피유!!!!!에 대한 우수한 에측을 제공한다고함

 

B. Offline Runtime Estimation

  • 이미지 분류를 위해 Pytorch 교육 작업을 사용하여 오프라인 런타임 추정을 평가합니다. 다양한 구성으로 옥스포드 꽃 데이터 세트에 대해 여러 이미지 분류기를 훈련하여 작업 추적을 수집했다.그리고나서 한 에포크당 평균시간을 측정
  • The configurations covered the feature space of network (Alexnet, ResNet18, ResNet50, VGG16); GPU-type (K80, P100, V100); number of learners (1,2,4); batch-size (16, 32, 64, 128, 256); and data-loading threads (0, 1, 2, 4, 8, 16, 32).
  • 여러가지 ML 모델개발 ( 5중교차검증사용, 521개의 데이터 포인트를 416개의 훈련 세트와 105개의 검증 세트로 무작위로 나눔)

 

  • y 가 예측한 에포크 레이턴시
  • I1, ..., I4는 One-Hot의 이진 변수
  • W는 작업자 수, B는 배치 크기, T는 스레드 수, F는 상대 네트워크 수
  • GPU 플롭의 경우 K80의 경우 1.87, P100의 경우 5.3, V100의 경우 7.8을 사용 (이는 K40에 대한 GPU 플롭의 비율)
  • 실험적으로 T와 F에 따라 런타임이 감소한다는 것을 관찰했고, 따라서 (2)에서 분모에 T와 F를 추가
  • 그림 8-a 는 선형 모델 2에 대한 테스트 데이터 세트에 대한 상대 오차(예: |y - y~|/y)의 CDF(누적 분포 함수)를 표시
  • (수정된) 선형 회귀 모델의 성능이 떨어지는 이유 중 하나는 종속 변수가 모델 매개변수의 기능에 대한 복잡한 비선형 종속성을 가질 수 있고 간단한 1차 비선형 항이 이를 포착할 수 없기 때문입니다. 예를 들어, 작업자 수 W는 그림 8b와 같이 Epoch 시간과 비선형 관계를 갖습니다. 이 비선형성을 포착하려면 일반 회귀 모델을 조사해야 합니다.

 

2) Nonlinear ML Models with One-Hot-Encoding:

  • 여기서는 런타임 추정을 위해 의사결정 트리, 랜덤 포레스트, 그래디언트 부스팅, 심층 신경망(DNN)의 네 가지 ML 모델을 제안!!!!!
  • 피처는 10개 사용 !!!! (OneHot-Encoding을 사용하여 3개의 숫자 변수와 7개의 이진 변수(네트워크 유형용 이진 변수 4개, GPU 유형용 이진 변수 3개)를 포함하여 10개의 독립 변수를 갖습니다)
  • 비선형 ML 모델 하이퍼파라미터 세트는 1. 트리최대깊이 2. 랜덤포레스트 부트스트랩사용여부 3. 그래디언트 부스팅 추정기수,학습률,최대특징수비율 4. DNN 레이어마다 노드개수
  • 표2 보면 바로확 이해갈것
  • 모든 ML 모델은 상대 예측 오류가 상당히 낮습니다(<15%) wow !

 

3) Nonlinear ML Models with Network Features:

훈련 데이터 세트의 알려진 네트워크에 네트워크 기능이 있는 예측 모델의 성능은 One-HotEncoding을 사용한 것과 거의 동일(표 II 참조).

 

 

VII. RELATED WORK

  • 딥러닝 프레임워크별 벤치마크

T. Ben-Nun, M. Besta, S. Huber, A. N. Ziogas, D. Peter, and T. Hoefler, “A modular benchmarking infrastructure for high-performance and reproducible deep learning,” CoRR, vol. abs/1901.10183, 2019. [Online]. Available: http://arxiv.org/abs/1901.10183

  • (클러스터내 DL 작업의 턴어라운드 시간을 개선하는 스케쥴러)

 

 

 

 

 

ABSTRACT

지리적으로 분산된 클라우드 지역에 저장된 데이터를 가장 저렴한 비용으로 처리하기위한 클라우드 네이티브 데이터 분석엔진을 제안,4개 지역 공용 클라우드 설정에 대한 의사 결정 지원 쿼리의 경우 비용이 15.1% 감소했다.

INTRODUCTION

  • 보통 지리적으로 가까운 region에서 더 빠르기 때문에 여러 기업에서는 region별로 서비스를 제공한다.
  • 예를들어서 아시아에 저장된 고객리스트, 미국에 저장된 고객 리스트등 흩어진 데이터들을 모아서 분석하기위해 , 다중 regions 에 포함된 데이터들에 대해 분석쿼리를 실행하는것은 비싸고 비효율적
  • 여기서 문제가 발생 : 여러 region에 걸친 데이터들을 모두모아 단일 지역에 복제하기위해 옮겨야하는데 추가적인 전송비용 + 데이터 저장비용이 발생, 또 시간적으로도 매우 많은 시간이 걸림 (ex: 케이프타운 region → 시드니리전으로 1gb 전송하는데 평균5분걸림)
  • 목표 : 비용 최적화
  • **대역폭과 대기시간을 고려한 네트워크를 통한 작업배치에 대한 연구 관련Suraj Pandey, Adam Barker, Kapil Kumar Gupta, and Rajkumar Buyya. 2010. Minimizing Execution Costs when Using Globally Distributed Cloud Services. In 2010 24th IEEE International Conference on Advanced Information Networking and Applications. 222–229. https://doi.org/10.1109/AINA.2010.30
  • Tarek Elgamal. 2018. Costless: Optimizing cost of serverless computing through function fusion and placement. In 2018 IEEE/ACM Symposium on Edge Computing (SEC). IEEE, 300–312.
  • **JCT 최적화 관련Raajay Viswanathan, Ganesh Ananthanarayanan, and Aditya Akella. 2016. CLARINET: WAN-Aware Optimization for Analytics Queries. In 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16). USENIX Association, Savannah, GA, 435–450. https://www.usenix.org/conference/osdi16/ technical-sessions/presentation/viswanathan
  • Qifan Pu, Ganesh Ananthanarayanan, Peter Bodik, Srikanth Kandula, Aditya Akella, Paramvir Bahl, and Ion Stoica. 2015. Low Latency Geo-Distributed Data Analytics. SIGCOMM Comput. Commun. Rev. 45, 4 (Aug. 2015), 421–434. https://doi.org/10.1145/2829988.2787505

이러한 문제를 해결하고 목표를 달성하기 위해 살펴보아야할 특징들과 발생가능한 문제점들

  • region 별로 다른 가격 ( EC2 m5.2xlarge 인스턴스 비용은 버지니아 북부 지역보다 상파울루 지역에서 약 59% 더 비싸다)
  • region 별로 다른 데이터 전송비용 (아프리카 및 남미와 같은 대륙에서 데이터를 전송하는 경우 AWS의 경우 북미에서 전송하는 비용보다 최대 13배 더 비싸다)
  • 데이터 전송 시간은 region 을 이동할때 10배 이상이며 항상 변동된다.
  • 분석 쿼리를 실행하는 데 몇 시간이 걸리는 것이 일반적이다.
  • 데이터 세트의 크기와 가용성은 언제든지 변경가능

2 SYSTEM ARCHITECTURE

  • 비용최적화라는 목표를 위해, region별로 비용과 성능에 영향을 미치는 모든 요소들을 지속적으로 모니터링하고 주어진 JCT 요구사항에 따라 최대한 비용 효율적인 실행계획을 도출하려고자함 ( = cross-region analytics job 을 가지고 가격 효율적인 plan 을 찾는다 )

Status retriever

  • 각 리전마다 job scheduling 에 대한 필수정보들을 수집하고 제어하는 status retriever가 있다.
  • 이것이하는일은b) 다른 region과 주기적으로 통신하여 네트워크 대역폭내역 수집 (대역폭이 중요한 이유:c) 해당 지역 데이터세트의 metadata 수집
  • we may want to set a limit on job completion time)
  • a) api를 통해 각 cloud vendor 로 부터 가격 책정

→ 가장 중요한 parameters 는 region 별 데이터 전송가격과 각 지역별로 컴퓨팅 리소스가격이다.

  • 모든 region의 status retriever 는 p2p 네트워크를 통해 데이터를 동기화해야할 각 지역의 작업 스케쥴러가 결정을 내릴 충분한 정보를 수집해준다.

Job scheduler

  • Spark SQL 에서 Catalyst optimizer 와 동일한 역할을 함(Spark SQL에서는 Catalyst Optimizer가 최적화를 대신해준다)
  • 소스데이터셋의 메타데이터와 데이터 쿼리를 입력으로 받아서 물리적 실행 계획을 생성
  • 또한 설계에서 계획을 선택할 때 비용과 네트워크 대역폭을 고려.대부분 작업 배치 및 중간 결과가 로컬 I/O 작업 대신 지배적인 요소가 됩니다. (?)

Job manager

  • Job manager 는 Job scheduler 에 의해 생성된 현재 실행계획과 각 Job에 대한 해당작업상태를 유지, 그리고 다른 region에 execution plan과 다른 job plan을 전파합니다.
  • 각 job manager는 execution plan 에 따라 하나이상의 하위작업을 실행한다
  • 이작업이 완료되면 작업 관리자는 작업 스케쥴러를 호출해서 재평가하고 작업상태와 잠재적인 계획변경을 브로드캐스트한다
  • 변경된 계획으로 인해 작업관리자가 하위작업실행을 중단할수 있다.

Task executor

  • computes resources로 이루어져있다.
  • It is built on top of existing cloud offerings to remove the resource constraints of some previous works [12]. Because there is no stable access pattern, and each job requires a different amount of resources, leveraging serverless functions (e.g., AWS Lambda[2]) as the main executor improves resource utilization [14]. Using spot VM instances to run the queries may save cost when incoming workloads can be well predicted.

Transient datastore

  • 하위 작업의 결과는 임시 데이터 저장소에 저장됩니다. 임시 데이터는 나중 단계에서 사용될 수 있으므로 다음 하위 작업으로 전달된 직후에 삭제되지 않습니다. 작업 관리자는 데이터 저장소를 정기적으로 스캔하여 일정 시간이 지나면 실행 계획에서 참조하지 않는 임시 데이터를 식별하고 불필요한 저장 비용을 피하기 위해 제거합니다.

3 PRELIMINARY RESULTS

  • 제안된 시스템의 효율성을 검증하기 위해 AWS에서 실험을 진행
  • 10GB의 TPC-DS[16] 데이터 세트를 생성. 데이터 세트 중 한 region의 Amazon S3 [1] 버킷에 4개의 비교적 작은 테이블을 놓고 4개 region 모두에 큰 테이블을 고르게 배포했습니다.
  • We simulated Query 7 of TPC-DS test suite in Python programs on EC2 c5d.2xlarge spot instances.
  • 4가지 전략
    1. Aggregation ) 모든 데이터를 비용적은 region으로 몰아넣고 모든 계산수행
    2. In-place ) 데이터이동 X , 각 region 에서 가능한 많은 계산을 수행한다음, 해당 영역 중 하나에서 중간결과를 집계 (지역별로 컴퓨팅 가격이 다르다는걸 고려하지 않음)
    3. Optimized In-place ) 각 region 마다 계산수행하기전에 작은 테이블을 모든 region 에 배포(최적화)(the WAN-usage optimal solution)
    4. Hybrid a+c ) 컴퓨팅및 데이터 전송가격으로 결정 (이게 가장좋은 결과를 도출) - 15프로나 좋아짐 가격만 따지면 가장좋은 방법이됨.
    • ** WAN  
      • WAN 최적화가 중요한 이유?다양한 비즈니스 프로세스가 느린 네트워크의 영향을 받습니다. 직원이 파일에 액세스하는 것과 같은 간단한 작업도 허용할 수 없을 정도로 느려질 수 있습니다. 네트워크가 끌리는 경우 비즈니스 전체 파일 관리자를 로드하는 데 시간이 걸리고 파일을 여는 데 더 오래 걸릴 수 있습니다. 2분의 작은 작업처럼 보이지만 이러한 문제는 빠르게 누적됩니다.
      • 한편 관리자는 비효율적이고 대기 시간이 긴 네트워크 인프라와 싸우는 경우 네트워크를 효과적으로 관리 및 모니터링하고 네트워크 보안을 보장하는 데 어려움을 겪을 수 있습니다. WAN 최적화는 잠재적으로 관리자( 및 해당 소프트웨어 도구) 가 모든 장치와 최종 사용자를 보다 효과적으로 보호 할 수 있도록 합니다 .
      • 기업은 클라우드 컴퓨팅, 애플리케이션 및 웹 포털과 같은 기타 네트워크 전체 기술의 사용 증가로 인해 WAN 설정에 대한 압박을 점점 더 많이 받고 있습니다. 이러한 복잡성과 볼륨을 사전에 관리하지 않으면 네트워크 속도 저하가 주요 문제가 될 수 있으므로 WAN 전반에 걸친 관련 트래픽 증가 는 WAN 최적화를 더욱 중요하게 만듭니다.
      • WAN 최적화에는 더 많은 대역폭을 수신하기 위해 네트워크의 특정 부분에 우선 순위를 지정하는 작업이 포함됩니다. 예를 들어 중요한 데이터 처리 작업과 관련된 네트워크 부분에 더 많은 처리량과 대역폭을 할당하여 작업이 빨리 완료되도록 할 수 있습니다. 네트워크에 대한 물리적 또는 논리적 변경을 통해 많은 WAN 개선을 달성할 수 있습니다.
      • https://ledgku.tistory.com/17

4 DISCUSSION(고찰)

Challenge#1 Design an efficient job scheduling algorithm.

  • Catalyst같은 기존 쿼리 옵티마이저는 최상의 실행계획을 검색하는데, 단점으로는 실행시간이 너무많이 걸리고 상당한 오버헤드발생가능성이 있다.
  • 또 실제비용과 네트워크대역폭을 고려하면 문제가 더 복잡해진다
  • 이렇듯 이런 단점을 해결할 빠르게 찾을수 있는 알고리즘이 필요함

Challenge#2 Estimate required resources for subtasks. Both

  • 스팟 vm과 서버리스 모두 일정수준의 프로비저닝이 필요한데 오버프로비저닝,언더프로비저닝 모두 피해야함.
  • 메모리를 적당히 사용하기위해 sub 잡작업에 필요한 최소메모리추정을 위해 프로그램 분석기술을 적용가능

Challenge#3 Manage job states between regions

  • 교차지역 데이터 분석 엔진은 내결함성이 있어야함.
  • 모든 작업상태는 작업관리자간에 공유됨
  • region의 작업관리자가 제대로 작동하지않으면 다른 region에서 알아채고 인계받아야함
  • 한마디로 문제가 생긴다면 기존작업을 다른지역으로 마이그레이션해야함

Challenge#4 Avoid unnecessary execution plan switchin

  • 런타임에 새로운 실행계획이 너무자주 발생하지않도록 함

먼저 간단히 논문의 개요를 살펴보자면, 요즘 머신러닝은 이기종 리소스를 보유한 전담 작업자가 아니라, 클러스터에서 더많이 훈련이 됩니다. 이떄, 다른워커보다 훨씬 느리게 실행되는 스트래글러는 부정적인 영향을 미칩니다. (오른쪽 그림, 빨간색 화살표) 여기서 스트래글러가 의미하는것은 적은수의 스레드가 주어진 반족을 실행하는데 다른 스레드보다 오래걸릴떄 발생하는 문제를 의미합니다. 모든 스레드는 동기화되어야해서 모든 스레드는 가장 느린 스레드(스트래글러)의 속도로 진행할수밖에 없기 때문입니다. 이 논문의 핵심은 이 샘플 배치의 크기를 적절하게 조정해서 작업자의 부하를 즉각적인 처리기능에 맞게 조정하는것입니다.

이 논문에서는 ML 워크로드의 스트래글러를 제거하기 위해 SEMI Dynamic Load balancing이라는 새로운 방법을 제안합니다. 그리고 이방법을 이용해서 LP_BSP를 구현합니다. 여기서 BSP란 병렬 소프트웨어와 하드웨어 개발의 기준이 되는 모델로 PRAM 모델의 일종입니다.

**Pram ⇒ 공유 메모리르를 사용해서 프로세스간에 병렬 통신을 지원하는 구조입니다.

이 체계에서 빠른 작업자는 각 iteraiton이 끝날때마다 느린 작업자(스트래글러)를 기다려야함으로 스트래글러는 모델의 학습 효율성을 저하시킵니다. 이 기존의 BSP모델의 단점을 보완한것이 LP-BSP 모델입니다.

들어가기 앞서서 이 논문에서 자주 쓰이는 개념들에 대해 간단히 짚고 넘어갑니다. 클러스터는 다음과 같이 두가지 종류로 나뉘는데, 전자의 경우, 전용 클러스터라고 불리며 후자의 경우 비전용 클러스터라고 합니다.

전자는 높은 효율성을 보이지만, 유지관리 비용이 많이 들고 널리 엑세스가 불가함으로 쉐어링이 되지 않는 문제를 가지고있습니다.

후자의 경우, 비전용 클러스터로 앞서 설명한 이기종 하드웨어로 구성되어있으며, cpu 와 gpu의 빠른 발전속도에 맞게 aws같은곳에서 이기종 하드웨어 세트로 모델을 학습시킬수 있습니다. 이 경우 dynamic하게 리소스들이 할당되며, 싸고 용량문제가 비교적 적게 발생합니다.

최근 비전용 클러스터(위에서 설명드린) 에서 주로 모델 훈련이 이루어지는 한편, 더 심각한 스트레글러 문제가 발생합니다. 스트래글러의 경우에도 크게 두가지로 나뉠수가 있는데 비결정론적 스트래글러, 결정론적 스트레글러로 나뉠수가 있습니다.

전자의 경우, os 지터같은 일시적인 장애로 인해 발생하며, 일시적이로 아주 미미합니다

** os jiter: e.g. 백그라운드 데몬 프로레서의 에약 / 비동기 이벤트 처리로 인해 발생하는 간섭

하지만 후자의 경우, 전자에 비해 훨씬 심각하고 오래 지속됩니다. 그리고 이는 앞서 설명드린 비전용 클러스터에서만 발생합니다.

간단히 말하면, 스트래글러는 적은 수의 스레드에서 주어진 반복을 실행해야하는데 다른 스레드보다 오래걸릴때 발생하는 문제입니다 모든 스레드가 동기화되어야해서 각 스레드는 iteraiton마다 가장 느린 스레드의 속도로 진행되어 문제가 발생하는것입니다.

이제 이런 스트래글러를 해결하기위해 과거에 행해졌던 여러가지 시도들에 대해 살펴봅니다.

ASP 방식은 다른 worker를 기다리지 않고 독립적으로 다음 반복을 수행합니다. 이렇게 하면 컴퓨팅 주기를 낭비하지않고 하드웨어적으로 효율이 높습니다. 그런데 가장큰 문제가 global하게 매개변수가 동기화가 제대로 되지않아 부실한 매개변수를 사용하게 될 확률이 높아집니다. 이는 앉은 품질의 업데이트를 만들어내기 때문에 더 많은 Iteraitondl 필요하게되고 결국엔 그렇게 효과적인 스트래글러 해결방법은 아닌듯합니다.

SSP 방식은 앞서 ASP 와 BSP를 섞어놓은 방법입니다. 매개변수 비활성이 특정한 임계값에 도달할때만 스트래글러를 기다려줍니다. 하지만, SSP는 주로 비결정적 스트레글러에만 초점을 맞춘 방법이기 때문에, 결정적 클러스터에 적용할경우 지연이 자주 발생할수 있습니다. ASP 와 BSP가 섞인 방법이기 떄문에 여전히 스트래글러가 발생시 기다려야하는 문제가 남아있고 해결되지 않았습니다.

Redundant execution이라는 방법은, 스트래글러 worker에 여러 복사본을 두어서 먼저 완료된 작업의 결과만 받아들이는 방법입니다. 그런데 이 방법은 차선책일뿐, 일부의 스트래글러만 완화해주지만 최악의 스트래글러의 경우 전혀 도움이 되지 않습니다. 복제본이 모두 느리다면 큰 효과가 없기 때문입니다. 또 복제본을 만들기 때문에 추가적인 리소스를 소비해야 한다는것이 단점입니다.

지금까지의 방법들은 전부 스트래글러가 발생할경우 이를 완화하는 방법들만을 다루었지 스트레글러의 근본원인에 대해 서는 다루지 않았습니다. 애초에 스트레글러가 발생하는것을 방지하면 더 근본적으로 문제를 해결할수 있습니다. 이를 위해서는 로드밸런싱 기술에 의존할 필요가 있습니다. 이 로드밸런싱(부하분산) 은 병렬처리에서의 고전적인 연구주제이며 두가지 (static , dynamic) 방식으로 나뉩니다.

전자는 정적 부하분산방법이고 후자는 동적 부하분산 방법입니다.

정적 부하분산은 라운드 로빈같이 정적인 양을 다루며, 동적 부하분산은 부하가 많은 작업자의 일을 런타임부하가 적은 작업자로 재분배해줍니다

아래 그림은 FLEXRR 이라고 최근의 Dynamic한 load balancing 방법입니다. 주어진 임계값에 대해서 다른 작업자보다 뒤처지면(slow) Fast한 작업자에게 일을 제공합니다

이 논문에서는 이 dynamic load balancing 개념을 사용해서 Sem-dynamic loac balancing이라는 전략을 제공합니다

앞서 말한방법들을 바탕으로 새로운 전략을 내놓았습니다. 각 iteraiton 안에서는 정적으로 부하를 유지하지만, 다른 iteraiton에서는 동적으로 유지합니다. 이게 무슨말이냐 하면, 각 iteraiton의 경계부분에서 각 worker들의 상태를 측정합니다. 요즘에는 iteration의 크기가 아주 작고 iteraiton안에서도 엄청나게 큰 변화가 일어나는것이 아니기 때문에 (위 그래프에서 보면 배치 사이즈별로 iteraion time이 몇초 혹은 0.몇초 대로 굉장히 작음을 알수있습니다) iteraiton 의 경계부분에서 측정해도 충분합니다.

한마디로 iteraiton 전부를 볼필요없이 경계부분만 살펴본다는것입ㄴ디ㅏ

두번쨰로, 각 경계에서 스태글러를 감지해냅니다.

세번쨰로, 각 iteraiton 별 경계에서 스트래글러를 감지해내고 배치크기를 조정해줍니다.

이러한 로드밸런싱 전략을 사용할것이라고 합니다.

이제 앞에서 load balancing 전략을 정해주었으니, 비전용 클러스터에서 효율적인 분산학습을 위해 LB-BSP라는 새로운 방법을 제시합니다. 먼저 모델학습 반복과정에서 iteration이 걸리는 총 시간은 t 이고, 이 t는 tm + tp로 이루어집니다 (위 피피티에 설명)

x 는 배치를 의미합니다. 그런데 정해놓고 보니, cpu와 gpu 클러스터에 각각 다른 문제가 발생합니다. cpu 클러스터에서는 ti와 xi가 선형적으로 증가하는데 ( 배치 사이즈가 커지면 프로세싱 시간인 t도 늘어난다) , Gpu는 비선형적입니다. 그래서 cpu와 gpu를 각각 따로따로 살펴보기로 합니다.

cpu는 gpu같은 가속기가 없기 때문에 다음과같은 상황에서 주로 쓰입니다 ( 피피티 위에 설명)

그리고 앞 피피티에서 말한것처럼 x,v 간에 선형관계를 이루고 있습니다. 그리고 t에서 tp가 99퍼를 차지하고 있기 떄문에 tm은 무시해도 별 영향이 없습니다.

Γ (x) 값이 선형적이기 떄문에 tp와 배치사이즈(x) 는 비례하게됩니다. 그래서 다음 반복에 대해 작업자 배치 크기를 결정하기 위해서는 현재 반복에서 샘플처리속도만 알면됩니다.

그런데 문제가, 샘플처리속도가 항상 일정한것이 아니라 동적으로 달라지기 때문에, NARX라는 방법을 사용합니다

NARX는 RNN의 일종으로 과거속도와 현재속도, cpu및 메모리 사용량같은 과거와 현재값을 모두 받아들이는 방법이라, 보다 좋은 성능을 보인다고 합니다.

위 알고리즘을 간단히 살펴보면, 이전 피피티에서 언급했던 샘플 처리 속도 (v)의 과거 값 / CPU 및 메모리 사용량 (c / m)의 두 구동 리소스의 현재 과거 값들을 받아옴을 확인할수 있습니다.

tp와 해당 함수의 식을 조합해서 v(속도)를 구하고 이 속도를 F (NARX 함수) 에 넣어서 계산해줍니다. 앞 피피티의 연산식을 활용하여 새로운 배치사이즈를 리턴해줍니다.

앞서 cpu 클러스터에 대해 살펴보았고 이번에는 gpu 클러스터에 대한 성능을 특성화 한다음 알고리즘을 제시해주었습니다. 우선 gpu의 성능으로는 앞서 cpu에서는 tm을 무시해주었지만 gpu에서는 무시해주면 안됩니다. gpu에서 계산은 cpu에서보다 훨씬 빠르고 이에따라 통신시간도 무시할수 없어졌습니다.

또 gpu를 수행하기 위한 일련의 준비작업(메모리간에 매개변수 교환, 처리커널 시작..)에도 상당한 오버헤드가 발생하기 떄문에 이 것들도 무시할수 없어졌습니다.

세번쨰로, tesla100 같은 최신의 고급 gpu의 경우 샘플배치가 너무 작아서 일정 크기이상으로 샘플 배치크기를 줄인다면 성능이 확 떨어지게 됩니다.

네번쨰, 각 반복동안 중간겨로가와 매개변수등을 모두 gpu 메모리에 저장해야함으로, 최대 배치크기를 제한해야합니다. (메모리부족을 예방하기위해)

앞 피피티에서 살펴본것들을 바탕으로 다음 알고리즘을 살펴보면

우선 각 iteration에서 가장 느린 작업자를 스트래글러로 지정해주고 가장 빠른 작업자를 리더로 지정해줍니다.

먼저 위 피피티에서 세번쨰문제를 해결하기위해 특정 배치크기 이하로 떨어지는것을 예방해줍니다.

두번쨰로 여전히 스트래글러의 크기가 리더보다 크다면, 리더의 배치크기를 조금 줄여주고, 스트래글러의 배치크기를 조금 늘려주는 방향으로 균형을 잡아갑니다

세번쨰로 반대가 된다면 파인튜닝을 통해 스위치 해줍니다.

*파인튜닝 : 기존에 학습되어져 있는 모델을 기반으로 아키텍쳐를 새로운 목적으로 변형하고 이미 학습된 모델 weights 로 부터 학습을 업데이트하는 방법을 의미합니다.

마지막으로 cpu,gpu별로 결과값을 살펴보면, 그래프 3개짜리에서 보면 (A) 그래디언트 업데이트당 시간의 평균 / worker의 수를 의미합니다. (B)는 통계적 효율성으로 목표하는 정확도에 도달하는데 필요한 업데이트수를 의미합니다. (한마디로 목표한 정확도에 이르기까지 반복하는 iteraion수를 의미합니다.) (c)는 목표정확도에 도달하는데 필요한 전체시간을 보여줍니다.(=목표한 정확도에 도달하는데 필요한 전체 시간)

세개 그래프 값에서 모두 LB-BSP 이 가장 적은 업데이트수와 시간을 가짐을 확인할수 있습니다.

아래그래프 2개를 보면, 마이크로 벤치마크를 실시한것으로 인스턴스 4개만 실시한것을 비교한것입니다. ( 인스턴스 4개를 합쳐준것을 cluster A라고 부릅니다) iteraion 횟수가 점점 늘어날수록 일정한값에 도달함을 알수 있습니다. 또 iteraion 횟수가 점점 늘어날수록 4개 인스턴스 값의 배치 처리시간이 거의 같아져서 straggler 문제가 해결됨을 확인할수 있습니다

cpu에서도 살펴봅니다. 여기선 table B 와 같이 인스턴스들을 합친 cluster-B를 만들어 살펴봅니다.

figure 9 는 cluaster B 에서 서로 다른방식으로 SVM 과 ResNet-32를 훈련할떄의 평균반복시간을 보여줍니다. LB-BSP가 가장 짧은 시간으로 최고의 효율성을 이끌어낼수있음을 확인할수 있습니다.

FIgure 10은 NARX 모델을 사용했을떄의 예측성능을 추가로 평가해준것입니다. 클러스터 B에서 m4.2xlarge 인스턴스 하나에 대한 resnet-32 훈련 프로세스에서 무작위로 iteration을 골라 살펴본것입니다. 이를 통해 NARX가 기존의 방법 뿐만아니라 프로세싱 속도 예측도 잘한다는 추가적인 기능도 확인할수 있습니다.

+)

  • NARX 그래프에 대한 내용에서 accuracy 라고 잘못 설명했던 부분을 정정합니다.

→ 그래프의 내용은 m4.2xlarge 스턴스 하나에 대한 ResNet-32 훈련 프로세스에서 iteration을 무작위로 선택한 구간으로, LP-BSP의 성능을 나타내기위한 지표라기보다 , NARX의 성능을 더 보여주기위해 추가적으로 진행해준 실험에 대한 표였습니다. (cluster-B 를 사용해서 prediction을 실시해준 결과를 나타낸준것 )

  • 19p Figure 4 그래퍼에서 xo 가 의미하는것은 최대 배치사이즈 제한값입니다. 메모리 부족문제를 방지하기위해서 배치사이즈크기의 최대값을 지정해준것을 의미합니다

POD

https://kubernetes.io/ko/docs/concepts/workloads/pods/ 참조

  • POD  쿠퍼네티스에서 생성하고 관리할  있는 배포가능한 가장 작은 컴퓨팅 단위. 하나 이상의 컨테이너의 그룹. 스토리지와 네트워크를 공유한다. POD 콘텐츠는 항상 같이 배치되고 같이 스케쥴되며 공유 콘텍스트에서 실행된다.
  • 생성할때, Pod spec 여러 조건들을 추가함으로써 원하는 노드에 할당할  있으며, 쿠버네티스에서는 쿠버 스케쥴러라는 이름의 컴포넌트가 pod 할당될 노드를 결정한다.

 

kubernetes

  • 클러스터에서 자동으로 여러 컨테이너를 관리하고 생성하도록 설계된 컨테이너 operation 플랫폼
  • POD 기본구성요소, 사용자는 yaml 쓰여진 구성파일을 기반으로 POD 생성과 관리를 요청가능
  • 여러 POD 퍼포먼스를 독립시키기 위해서 자원관리 기법을 제공.
  •  자원관리 기법을 통해 POD구성파일 (YAML)  CPU, memory, network bandwidth  같은 컴퓨팅 자원들의 양을 지정가능
  • 자원제어를 위해 리눅스 cgroup tc 사용'

 

POD 스케쥴링 : POD 컴퓨팅 지원정보를 기반, 배치될 실제서버인 노드를 결정. 이런 과정을 의미함

e.g) 사용자가 pod 지정할 하나의 cpu core주시오 -> 스케쥴러  pod cgroups API 이요해서 Cpu  core 지정해준다.

e.g2) 사용자가 pod 요청한 네트워크 대역폭을 요청 -> 스케줄러가 tc 사용해서 pod 네트워크 대역폭값을 예약

  • kubernets 에서 스케쥴러 역할을 담당하는 컴포넌트인 kube-scheduler에서 수행된다.
  • kube-scheduler 스케쥴링 방식은 사용자의 설정에 따라 달라질  있다.(방식에 따라 pod 성능과 전체적인 자원활용율에 영향) --->효율적인 컴퓨팅 자원활용을 위해서는 스케쥴링에 대한 이해가 필요함

그림 1 : kubernetes 1.18(버전) 에서 pod 생성을 위한 call chain 보여준다.

  • 사용자가 kubectl create 사용해서 description file 함께 pod생성을 요청할때, kubectl pod description file 정의된 pod specification API server 전송한다

****description file : user-defined string으로 파일이나 폴더에 적용가능하다. 윈도우에는 없는개념이라 생소하다. ASCII text file 파일에대한 description 가지고있다. description file 한개이상의 element 구성되어있다. elements 들은 여러가지 키워드로 구성되어있다.

  •  API server 전송된 pod specification node 비어있을때, kube-scheduler pod 할당하기 위한 node 스케쥴링한다. 그다음, node에서 실행되는 kubelet pod 속하는 하나이상의 컨테이너를 생성한다.

 

----------------------------------------------------------------------------------------------------------------------------------

 

 

<간단 정리 > : kubernetes는 클러스터에서 여러 컨테이너를 관리하고 생성하도록 설계된 컨테이너 operation플랫폼입니다. 그안에서 pod가 기본구성요소이며, yaml로 쓰여진 description 파일을 기반으로 pod의 생성과 관리를 요청할수있습니다. 이 파일안에 컴퓨팅자원들의 양을 지정해주어 자원관리를 수행합니다. Pod의 컴퓨팅자원 관리정보를 기반으로 pod가 배치될 node를 결정하는데 이러한 스케쥴링 방식에 따라 효율적인 컴퓨팅 자원활용이 결정됩니다.

스케쥴링 과정은 먼저 사용자가 kubetctl create를 명령하고나서 pod생성이 실행됩니다. kubecxtl에서 API server로부터 구조적정보+메타데이터 스키마를 전달받아 pod descripton file을 파싱하여 pod정보를 담은 podSpec을 생성하고 pod생성요청을 보냅니다. Kube-scheduler엣는 빈노드가 있는지 확인하는 역할을 합니다. 필터링과 스코어링을 통해 노트를 선택하는 과정을 거칩니다. Kubelet  podspec의 변화가 발생했을 겨웅 podSpec을 전달받아서 pod에 대한 컴퓨팅자원을 예약합니다. 그리고 node에서 컨테이너를 실행합니다 

+ Recent posts