1. 시험 환경

Ubuntu: 24.04 LTS

Java: 17.0.11 설치하기

 

2. 설치

1) sudo 권한으로 apt 업데이트하고 openjdk v17을 설치

$ sudo apt update
$ sudo apt install openjdk-17-jdk

 

2)  설치한 java 버전을 확인

$ java -version

 

3) 설치된 java 경로를 확인

    - default : /usr/lib/jvm/java-17-openjdk-amd64/bin/java

 

4) environment 파일에서 JAVA_HOME 환경변수를 설정

$ sudo vi /etc/environment
 
1
2
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

 

5)  source 명령어를 실행하고, 변경값이 적용되었는지 확인

$ source /etc/environment
$ echo $JAVA_HOME
1
/usr/lib/jvm/java-17-openjdk-amd64

 

- 설치 취소할 경우: "apt remove" 명령어를 사용

 $ sudo apt remove openjdk-17-jdk

 

 

 

 

참고: https://languagestory.tistory.com/154

허깅페이스

: 트랜스포머 기반의 다양한 모델들과 학습 스크립트를 구현해놓은 일종의 모듈

  -> 자연어 처리, 이미지 생성모델, 컴퓨터 비전모델등 다양한 도구와 라이브러리를 제공함.

  -> 즉, 인공지능에 대한 어떤 배경지식이 많이 없더라도 간단한 파이썬 지식이 있다면 학습 모델들을 쉽게 사용해 볼 수 있는 곳임!

- 구글 코랩 사용

-  기계 학습 모델을 구축, 배포 및 교육하기 위한 도구와 리소스를 개발하는 프랑스계 미국 스타트업 회사이자 오픈 소스 플랫폼

 

 

장점

  • 편리한 사용성: Hugging Face는 다양한 언어 처리 모델과 데이터셋을 제공하고 있습니다. 이들은 PyTorch, Tensor Flow 등의 딥러닝 프레임워크에서 사용할 수 있습니다.
  • 최신 모델 제공: Hugging Face에서는 최신 언어 처리 모델을 빠르게 제공합니다. 대표적으로 BERT, GPT, RoBERTa 등이 있습니다.
  • 커뮤니티: Hugging Face는 커뮤니티를 중요시하며, 다양한 사용자들의 요구에 맞추어 모델을 지속적으로 업데이트하고 있습니다.

 

사용법

Hugging Face를 사용하기 위해서는 transformers 라이브러리를 설치해야 합니다. pip를 이용해서 아래와 같이 설치할 수 있습니다.

pip install transformers


설치가 완료되면, 아래와 같이 간단한 코드를 통해 모델을 사용할 수 있습니다.

from transformers import pipeline

classifier = pipeline('text-classification', model='distilbert-base-uncased-finetuned-sst-2-english')
result = classifier('I love using Hugging Face!')
print(result)

 

 

허깅페이스 홈페이지 사용법

1) 모델 검색하기

- 다양한 언어 처리 모델 제공

- 홈페이지의 Models 메뉴에서 원하는 모델 검색 가능

- 검색 기능을 활용하여 원하는 모델 쉽게 찾기 가능

 

2) 모델 사용하기

- 모델을 선택하면 모델 정보, 사용방법, 예시 코드 확인 가능

- 예시 코드는 python으로 작성되어 있음

 

3) 데이터셋 검색하기 

- 다양한 자연어 처리 데이터셋 제공

 

4) 데이터셋 사용하기

- 데이터셋을 선택하면 데이터셋의 정보와 사용방법, 예시 코드 확인 가능

UI path

  • C#과 .NET Framework 기반으로 개발
  • Windows OS에서만 개발 및 실행 가능
  • 에디터 부분이 windows Workflow Foundation으로 개발되었기 때문에, 코드 타이핑을 통한 개발이 아닌 마우스 드래그 앤 드랍으로 개발
    • 워크플로우를 레코딩하면 됨
    • 사전 구현된 자동화 액티비티를 활용해 보다 쉽게 자동화 구현
    • 협업 툴과 간편한타사 컴포넌트 통합을 통해 모든 부서 및 워크플로우 지원
    • 공유 및 재활용 가능한 컴포넌트를 통해 협업과 생산성 향상
  • 라이브러리, 액티비티, 프로젝트, 오픈 워크플로우를 검색할 수 있는 명령 팔레트
  • 2005년에 설립 
  • 국내 도입: LG, 하나금융 등 RPA 표준 플랫폼
  • 포레스터 2018년 2분기 자료에 따르면 가장 널리 보급된 RPA 플랫폼이고 업계 1위
  • 현재 1800곳이 넘는 비즈니스 및 정부기관 고객이 UiPath의 엔터프라이즈 RPA 플랫폼을 채택하여 반복적 프로세스를 모방학 실행하는 소프트웨어 로봇을 전개
  • 많이 사용하고 있고 관련 교육 강의가 많음
  • Trial: 현재 MDS가 한국총판으로 무료 사용 6개월 및 컨설팅 제공

Brity RPA

  • 삼성SDS에서 개발/ 2019년도에 플랫폼 도입
  • 국내도입: 삼성 그룹 계열사, 공공 기관인 한국남부발전
  • 한글라이브러리 제공 -> 국내 IT 환경에 맞는 솔루션 제공
  • 인공지능을 적용해 기능을 개선한 자체 RPA 브랜드임
  • 딥러닝 기반 이미지 인식(Nexfinance AICR)과 텍스트 분석 등 인공지능 기술을 적용해 판단, 심사 등 복합 업무영역까지 자동화
  • 동시에 여러 개의 자동화 프로세스가 실행 가능/ 업무 처리속도와 효율을 개선
  • PC에서 업무 수행 화면을 녹화해 프로세스를 자동 생성하는 등 비전문가도 쉽고 빠르게 RPA를 만들 수 있는 지능형 업무 자동화(IPA) 솔루션 제공
  • 초개인화, 초자동화(하이퍼오토메이션), 생태계 플랫폼으로 확장하고 있음.
    • 초개인화: 특정 사용자, 특정 태스크 차원의 자동화를 손쉽게 맞춤형으로 구현
  • UI path에서 좀 더 편의성을 갖추고 있다는 평이 있음.
  • Trial: 홈페이지를 통해 30일 이용 가능

 

참고:

https://uipathcombackup.z6.web.core.windows.net/ko/product/studio.html

https://ddochea.tistory.com/34

https://www.inflearn.com/course/lecture?courseSlug=rpa-uipath-%EA%B0%9C%EB%B0%9C-%EC%B4%88%EA%B8%89&unitId=164798&tab=script

  •  Meta AI의 Foundation Model인 LLaMA
  • 2024년 봄, 메타(Meta)에서 차기작 ‘라마 3 (8B, 70B)’를 공개
  • 현재 훈련 중인 400B 이상의 모델도 이어 공개될 것이라 예고됐고, 오픈AI의 차세대 LLM 모델인 GPT-5도 올여름 중 출시될 것이라는 소문이 있음
  • 라마 3는 라마 2보다 성능이 크게 향상된 것은 물론, 구글의 제미나이(Gemini)나 앤트로픽의 클로드(Claude) 등 주요 LLMs(Large Language Model, 대형 언어 모델)와 비교해도 비슷한 크기의 모델 중에서 가장 높은 성능을 보여줌

✔️ Llama 3 주요 특징 (개선 사항)

  라마 3 라마 2
학습 데이터셋 크기 15T (15조 개) 토큰

✅7배 이상 증가, 대규모 사전학습 확장
✅라마 3 pre-training 데이터셋 중 5% 이상을 30개 이상의 고품질 비영어권(non-English) 데이터셋으로 구성함, 단 성능이 영어와 같은 수준은 아님
2T (2조 개) 토큰
컨텍스트 길이 8K (8192)

✅2배 증가, 하지만 GPT-4의 128K에 비하면 상당히 작은 수준
4K (4096)
모델 종류 Llama-3-8B, 70B

✅400B⁺ 출시 예정
✅멀티모달(Multimodal) 데이터를 이해하는 능력 및 다양한 언어를 지원하는 모델도 출시될 예정
Llama-2-7B, 13B, 70B
아키텍처 GQA

✅추론 효율성 개선
• 7B, 13B 버전: MHA(Multi-Head Attention)

• 34B, 70B 버전: GQA(Grouped Query Attention)
토크나이저 128K 토큰을 보유한 새로운 토크나이저

✅언어를 더 효율적으로 인코딩해 성능 향상 (향상된 토큰 효율성)
BPE SentencePiece (32K 토큰 보유)
  • 2023년 7월, 메타에서 오픈 소스 LLM ‘라마 2’를 공개
    • 가장 인기 있는 오픈 소스 LLM
    • 상업적으로도 연구용으로도 무료로 사용
    • 라마2는 기존 버전보다 40% 더 많은 2조 개의 토큰으로 학습됨, 컨텍스트 길이도 두 배 증가한 4096
    • 파라미터 수에 따라 라마-2-7B, 13B, 70B 세가지 모델 제공
  • 라마 3 사용법
    1. 허깅페이스에서 라마3 사용하기
    2. 메타 AI 서비스로 라마3 활용하기
    3. Ollama로 내 PC에서 Llama3 실행하기
    4. 클라우드 환경에서 실행하기

 

참고:

https://modulabs.co.kr/blog/llama-3-intro/

 

 

LLM의 단점

LLM(Large Language Model)은 많은 장점에도 불구하고 다음과 같은 단점과 한계점을 가지고 있습니다:

  1. 편향성 문제
    • 학습 데이터에 내재된 편향성을 그대로 반영할 수 있음
    • 성별, 인종, 종교 등에 대한 고정관념이나 차별적 표현을 생성할 위험 존재
  2. 사실 관계 오류 가능성
    • 방대한 데이터를 학습하지만, 항상 정확한 정보를 제공하지는 않음
    • 잘못된 정보나 허위 정보를 진실로 간주하고 전파할 수 있음
  3. 맥락 이해의 한계
    • 문장 단위의 이해는 가능하지만, 장문의 글이나 복잡한 맥락 파악은 어려울 수 있음
    • 세계 지식과 상식 추론 능력이 부족하여 심층적인 이해에 한계 존재
  4. 일관성 문제
    • 동일한 입력에 대해 일관된 답변을 생성하지 않을 수 있음
    • 모델의 확률적 특성상 생성 결과가 매번 달라질 수 있어 신뢰성 저하
  5. 윤리적 문제
    • 악용 가능성이 존재하며, 책임 소재 파악이 어려울 수 있음
    • 모델의 출력 결과에 대한 통제와 검증 체계 마련 필요
    •  

RAG는 LLM의 단점 중 무엇을 개선하는가?

RAG(Retrieval-Augmented Generation)는 LLM의 단점 중 ‘사실 관계 오류 가능성’과 ‘맥락 이해의 한계’를 개선하는 데 초점을 맞춘 방법입니다. RAG는 LLM에 외부 지식 베이스를 연결하여 모델의 생성 능력과 사실 관계 파악 능력을 향상시키는 기술입니다.

구체적으로 RAG는 다음과 같은 방식으로 LLM의 한계를 보완합니다:

  1. 외부 지식 활용
    • 대규모의 구조화된 지식 베이스(예: 위키피디아)를 모델에 연결
    • 주어진 질의에 대한 관련 정보를 지식 베이스에서 검색 및 추출
  2. 증거 기반 생성
    • 검색된 지식 정보를 증거로 활용하여 보다 사실에 기반한 답변 생성
    • 생성된 답변의 출처를 명시함으로써 신뢰성 향상
  3. 맥락 이해력 향상
    • 외부 지식을 통해 질의에 대한 배경 지식과 맥락 정보를 파악
    • 단순한 패턴 매칭이 아닌 추론 능력을 바탕으로 한 답변 생성

RAG는 기존 LLM의 생성 능력과 외부 지식 베이스의 정보를 결합함으로써, 보다 정확하고 사실에 기반한 답변을 제공할 수 있습니다. 또한 모델의 출력 결과에 대한 증거를 제시할 수 있어 설명 가능성과 신뢰성을 높일 수 있습니다.

RAG 기술은 질의응답, 정보 검색, 팩트 체킹 등의 태스크에서 활발히 연구되고 있으며, 구글의 LaMDA, OpenAI의 WebGPT 등 최신 LLM에도 적용되고 있습니다. 다만 RAG 모델의 성능은 연결된 지식 베이스의 품질과 커버리지에 크게 의존하므로, 고품질의 지식 베이스 구축이 중요한 과제로 남아 있습니다.

 

RAG의 기본 개념

RAG(Retrieval-Augmented Generation)는 대규모 언어 모델(LLM)의 한계를 극복하기 위해 제안된 새로운 자연어 처리 기술입니다. LLM은 방대한 양의 텍스트 데이터를 사전 학습하여 강력한 언어 이해 및 생성 능력을 갖추고 있지만, 학습 데이터에 없는 최신 정보나 특정 도메인 지식은 제공하기 어렵다는 단점이 있습니다.

RAG는 이러한 LLM의 한계를 극복하기 위해 ‘지식 검색’과 ‘언어 생성’을 결합한 프레임워크입니다. RAG의 기본 아이디어는 질문에 답하기 위해 필요한 지식을 외부 데이터베이스에서 검색하여 활용하는 것입니다.

RAG의 주요 구성 요소

  1. 질의 인코더(Query Encoder): 사용자의 질문을 이해하기 위한 언어 모델입니다. 주어진 질문을 벡터 형태로 인코딩합니다.
  2. 지식 검색기(Knowledge Retriever): 인코딩된 질문을 바탕으로 외부 지식 베이스에서 관련 정보를 검색합니다. 예를 들어 Wikipedia, 뉴스 기사, 전문 서적 등 방대한 문서 집합에서 질문과 연관된 문단이나 구절을 찾아냅니다.
  3. 지식 증강 생성기(Knowledge-Augmented Generator): 검색된 지식을 활용하여 질문에 대한 답변을 생성하는 언어 모델입니다. 기존의 LLM과 유사하지만, 검색된 지식을 추가 입력으로 받아 보다 정확하고 풍부한 답변을 생성할 수 있습니다.

RAG의 동작 과정 요약

  1. 사용자의 질문이 주어지면 질의 인코더가 이를 이해하기 쉬운 형태로 변환합니다.
  2. 지식 검색기가 인코딩된 질문을 바탕으로 외부 지식 베이스에서 관련 정보를 검색합니다.
  3. 검색된 지식은 지식 증강 생성기의 입력으로 전달됩니다.
  4. 지식 증강 생성기는 검색된 지식을 활용하여 사용자 질문에 대한 답변을 생성합니다.

RAG는 LLM의 강력한 언어 이해 및 생성 능력과 외부 지식 활용을 결합함으로써, 보다 정확하고 풍부한 정보를 제공할 수 있습니다. 특히 최신 정보나 특정 도메인 지식이 필요한 질문에 효과적으로 대응할 수 있다는 장점이 있습니다.

RAG의 등장 배경과 필요성

RAG는 자연어 처리와 인공지능 기술의 발전, 그리고 증가하는 사용자의 요구에 따라 등장하게 되었습니다. RAG의 등장 배경과 필요성을 다음과 같이 정리할 수 있습니다.

  1. 지식 기반 질의응답 시스템의 한계
    • 초기의 질의응답 시스템은 주로 제한된 도메인의 구조화된 데이터를 기반으로 동작했습니다. 이는 시스템이 다룰 수 있는 주제와 질문의 유형이 한정적이라는 문제가 있었습니다.
    • 사용자의 다양한 정보 요구를 충족시키기 위해서는 보다 광범위한 지식을 활용할 수 있는 시스템이 필요하게 되었습니다.
  2. 비정형 텍스트 데이터의 폭발적 증가
    • 인터넷의 발달과 디지털 기기의 보급으로 웹페이지, 뉴스 기사, 소셜 미디어 게시물 등 비정형 텍스트 데이터가 기하급수적으로 증가하고 있습니다.
    • 이러한 대규모 텍스트 데이터는 방대한 지식을 포함하고 있어, 질의응답 시스템의 지식 베이스로 활용할 수 있는 잠재력이 높습니다.
    • 그러나 비정형 데이터를 효과적으로 처리하고 활용하기 위해서는 기존과는 다른 접근 방식이 필요했습니다.
  3. 사전 학습된 언어 모델의 발전
    • BERT, GPT 등 사전 학습된 대규모 언어 모델의 등장은 자연어 처리 분야에 큰 변화를 가져왔습니다.
    • 이러한 언어 모델은 방대한 텍스트 데이터로부터 언어의 구조와 의미를 학습하여, 다양한 언어 이해 및 생성 태스크에서 뛰어난 성능을 보여주었습니다.
    • 사전 학습된 언어 모델을 질의응답 시스템에 활용함으로써, 보다 자연스럽고 문맥을 고려한 답변 생성이 가능해졌습니다.
  4. 실시간 정보 제공에 대한 사용자의 요구 증대
    • 인터넷과 모바일 기기의 발달로 사용자들은 언제 어디서나 필요한 정보를 즉시 얻고자 하는 요구가 커지고 있습니다.
    • 단순히 정보를 검색하는 것을 넘어, 대화형 인터페이스를 통해 원하는 정보를 직관적으로 얻고자 하는 사용자가 늘어났습니다.
    • 이에 따라 사용자의 질문을 이해하고 적절한 답변을 실시간으로 제공할 수 있는 지능형 질의응답 시스템의 필요성이 대두되었습니다.
  5. 지식 검색과 답변 생성의 통합 필요성
    • 기존의 질의응답 시스템은 지식 검색과 답변 생성을 별도의 단계로 처리하는 경우가 많았습니다. 이로 인해 검색된 정보와 생성된 답변 사이의 정합성이 떨어지는 문제가 발생했습니다.
    • 지식 검색과 답변 생성을 통합적으로 수행할 수 있는 프레임워크의 필요성이 제기되었고, 이는 RAG 아키텍처의 등장으로 이어졌습니다.

이러한 배경과 필요성 속에서 RAG는 대규모 비정형 텍스트 데이터를 활용하고, 사전 학습된 언어 모델과 통합 프레임워크를 통해 보다 진보된 형태의 질의응답 시스템을 구현하고자 합니다. RAG는 사용자의 다양한 정보 요구를 만족시키고, 인간과 자연스럽게 상호작용할 수 있는 지능형 대화 시스템의 발전에 기여할 것으로 기대됩니다.

RAG 기술을 적용한 상용 서비스 사례

RAG 기술을 적용한 상용 서비스는 아직 많지 않지만, 몇몇 대표적인 사례들이 있습니다.

  1. Microsoft Bing Search
    • 2023년 2월, Microsoft는 Bing 검색 엔진에 RAG 기술을 적용한 대화형 AI 기능을 추가했습니다.
    • 사용자의 검색 질의에 대해 웹 페이지의 정보를 활용하여 자연어로 응답을 생성합니다.
    • 제공된 응답의 근거가 되는 웹 페이지 링크를 함께 제시합니다.
  2. Anthropic’s Constitutional AI (CAI)
    • Anthropic사는 RAG 기술을 활용한 대화형 AI 모델인 CAI를 개발했습니다.
    • CAI는 대화 과정에서 외부 지식을 활용하여 사용자의 질문에 답변을 생성합니다.
    • 생성된 응답의 근거가 되는 출처를 명시하여 신뢰성을 높였습니다.
  3. Perplexity AI
    • Perplexity AI는 RAG 기반의 질의응답 서비스를 제공하는 스타트업입니다.
    • 사용자의 질문에 대해 웹 검색을 통해 관련 정보를 수집하고, 이를 바탕으로 응답을 생성합니다.
    • 제공된 응답의 출처와 검색 과정을 사용자에게 투명하게 공개합니다.
  4. OpenAI’s WebGPT (in development)
    • OpenAI는 GPT 모델에 RAG 기술을 적용한 WebGPT를 개발 중입니다.
    • WebGPT는 웹 검색을 통해 획득한 지식을 활용하여 사용자의 질의에 대한 응답을 생성할 것으로 예상됩니다.
    • 아직 공개된 서비스는 아니지만, 향후 RAG 기술의 발전 방향을 보여주는 사례로 주목받고 있습니다.

위의 사례들은 RAG 기술의 초기 적용 단계라고 볼 수 있습니다. RAG의 잠재력이 입증됨에 따라 앞으로 더 많은 분야에서 RAG 기반의 서비스들이 등장할 것으로 예상됩니다. 특히 검색 엔진, 가상 어시스턴트, 고객 서비스 등의 분야에서 RAG 기술이 활발히 도입될 것으로 보입니다.

다만 RAG 기술의 상용화를 위해서는 지식 베이스의 품질 관리, 프라이버시 보호, 책임 소재 등의 이슈들이 선결되어야 할 것입니다. 기술적 진보와 함께 사회적, 윤리적 문제에 대한 고민이 병행되어야 RAG가 실생활에 안전하게 적용될 수 있을 것입니다.

 

 

참고: 

https://modulabs.co.kr/blog/retrieval-augmented-generation/

 

RAG(검색 증강 생성)란? - LLM 단점을 보완하는 기술

LLM(Large Language Model)의 많은 장점에도 불구하고 단점을 보완하기 위한 RAG(검색 증강 생성)이 많은 관심을 받고 있습니다. RAG의 기본 개념, 등장 배경, 원리, 적용 사례 등을 알아보겠습니다.

modulabs.co.kr

 

Video Analysis 개요

Computer Vision(CV)의 핵심은 이미지를 이해하는 것입니다.

현재, "이미지를 이해"하는 것에서 "비디오를 이해"하는 것으로 점점 발전하고 있습니다.

 

비디오(영상) 분석은 

   1. 비디오란 - "일련의 이미지들"이라고 할 수 있으며, 단일 이미지보다 더 많은 상황정보를 제공합니다.

   2. 사물을 트랙킹(Object Tracking)을 통해서, 다음 움직임(Next Move)이 무엇인지 예측할 수 있습니다.

       - 예를 들어, 사람의 움직임을 예측하는 Human Pose 분야도 포함됩니다.

 

비디오(영상) 분석의 핵심 요소 :

   1. Object Detection 

   2. Object Tracking

   3. Action Classification

이라고 할 수 있습니다.

 

Object Detection은 이미지 분석에서도 충분히 다루므로,

Object Tracking부터 설명드리고자 합니다.

 

① Object Tracking

비디오(영상) 분석의 핵심 요소 중 Object Tracking에 대해서 설명하고자 합니다.

 

이미지와 비디오와 차이는 'Motion'이며, 이를 위한 Tracking이 필요합니다.

Object Tracking의 카테고리 :

   1. Video Stream : Live Image Feed - 실시간 이미지 스트리밍

      - 현재 이미지와 이전 이미지를 고려

   2. Video Sequence : Fixed-Length Video - Full 영상

      - 첫 이미지부터 마지막 이미지까지, 전체를 다룸

 

1) Optical Flow(광학 흐름)

   - Optical Flow란 : 영상에서 모션(Motion) 벡터를 찾는 방법으로써, 두 프레임(Frame) 사이의 Pixel Shift를 계산

                          en.wikipedia.org/wiki/Optical_flow

 

   - Optical Flow의 출력 값(Output) : Frame1  Frame2 사이의 흐름(Movement)에 대한 벡터 값(Vector)

Optical Flow 예시

 

Optical Flow(광학 흐름) 대표 딥러닝 논문

 

    FlowNet : 6-depth(2 RGB)를 Input을 활용하여, Optical Flow를 색으로 표시

FlowNet 구조

네트워크의 입력은 두 개의 RGB 이미지 세트입니다. 따라서 깊이는 6입니다.
광학 흐름은 종종 색상으로 표현됩니다.

 

2) Visual Object Tracking(VOT)

Optical Flow가 Pixel단위의 흐름을 추적한다면, Visual Object Tracking(VOT)는 객체(Object) 단위를 트랙킹 한다.

 

Visual Object Tracking 특징 :

   1. Object Detection은 필요하지 않음 - 무엇을 Tracking 하는지 알 필요 없음

   2. 초기 경계 박스(Starter Bounding Box)가 주어짐

   3. 주어진 객체를 추적함

       - 프레임 0과 1의 유사성을 계산

       - 경계박스 내 물체 확인 및 다음 프레임에서 검색

       - 경계 박스를 이동하여, Object를 추적

 

   ※ ※ 번외 : 딥러닝을 사용하지 않는 VOT 

  • 색상 같은 기능을 사용해 개체를 추적할 수도 있음(CV만 사용 가능)
  1. Bounding box를 활용하여, 초기 추적할 object를 입력 받음
  2. 객체의 색상 히스토그램 계산
  3. (객체 근처) 배경색 계산
  4. 전체 이미지에서 객체의 색을 제거



Visual Object Tracking 대표 딥러닝 논문

 

    MDNet(Multi-Domain Net) : Object와 Background를 구별하는 딥러닝을 학습

       - Domain-specific Layer가 존재

       - VGG 모델처럼 보이지만, 도메인별 레이어(객체 대 배경 분류자)가 있음

MDNet 구조

 

    GOTURN(Generic Object Tracking Using Regression Networks) 

       : 두 CNN 모델(Previous Frame 및 Currenet Frame 용)을 활용하여, 검색할 영역(Region)을 특정시킴

       - 100 FPS에서 작동 가능하며, 좋은 성능을 보임

GOTURN 구조

 

3) Multiple Object Tracking(MOT)

 

Multiple Object Tracking 특징 :

   1. 여러 객체를 트랙킹함

   2. VOT보다 더 Long-Term 한 영상을 다룸

 

Multiple Object Tracking 종류 :

   1. Detection-Based Tracking - (YOLO - Deep SORT)

   2. Detection-Free Tracking

 

Detection-Based Tracking세부 Task :

   1. Object Dectection

   2. Object Association

       - Time t의 탐지(Detection) 결과와 Time t+1 탐지 간의 연계

       - Detection 성능에 상당히 의존적임

       - Good Tracker는 약간의 Frame은 Detection 없이 처리해야 함

    * 관련된 내용은 Deep SORT를 다루면서

      nanonets.com/blog/object-tracking-deepsort/

      haandol.github.io/2020/02/27/deep-sort-with-mxnet-yolo3.html

 

② Action Classification

비디오(영상) 분석의 핵심 요소 중 마지막 Action Classification에 대해서 설명하고자 합니다.

 

예를 들어, Action Classification은 매장 내 사람들의 행동을 분석할 때 사용한다.

 

Action Classification의 특징 :

   1. Bounding Box내에서의 Action을 알기 위해선,Object Detection과 Tracking이 우선 되어야 함

      - 주어진 상황이나 장면을 우전적으로 이해해야 되기 때문에

   2. 가장 좋은 카메라 각도(앵글)를 선택

   3. Action 분류( 쉬운 : 걷기, 달리기 ~ 어려운 : 샌드위치 만들기 - 여러 작업(빵 짜르기, 토마토 씻기 등)이 복합됨)

 

Action Classification 대표 딥러닝 논문

   ○ Optical Flow 활용 

Optical Flow를 활용한, Action Classification

       - Optical Flow를 Input으로 받음

       - Action Classifier(Softmax) Layer를 추가

 

   ○ End-to-End 학습 방법

 

    - Action Classification을 위한, End-to-End 학습 예시 : 

Two-scale Model

       - 이미지와 다르게, 다중 Frame을 처리해야 함 → Space-time Volume이라고 함

       - Spatial Stream : Single Image에 적용

       - Temporal Stream : Optical Flow 이미지들을 입력 받음

 

  ※ 번외 : 그 이외에 Action Classification - Pose Estimation

   1. Detecting Keypoint - Keypoint란 왼쪽 그림의 점들

   2. Tracking Detecting Keypoint 

   3. Keypoint의 움직임을 분석 

 


마치며

       - 이미지와 영상분석의 차이에 대해서 다루었습니다.

       - 영상분석의 주요 개념(Tracking, Action classification)에 대해서 다루었습니다.

       - 다음번에는 대표적인 Tracking방법인, Deep SORT를 다루어볼 예정입니다.

 

 

 

참고: https://kmhana.tistory.com/20

 

영상 분석(Video Analysis) 이란? - 기본

*크롬으로 보시는 걸 추천드립니다* 이미지 분석(Image Analysis)을 연구하거나, 산업에 적용하다 보면 영상 분석(Video Analysis)에 대해서 종종 접하게 됩니다. 영상 분석을 접할 기회가 적은 편이고, '

kmhana.tistory.com

https://fritz.ai/computer-vision-from-image-to-video-analysis/

 

Computer Vision and Deep Learning: From Image to Video Analysis - Fritz ai

Computer vision, at its core, is about understanding images. The field has seen rapid growth over the last few years, especially due to deep learning and the ability to detect obstacles, segment images, or extract relevant context from a given… Continue

fritz.ai

 

LLM이란?

  • Large Language Model의 약자로 대규모 언어 모델을 뜻함
  • 인간과 유사한 텍스트를 처리, 이해 및 생성하도록 설계된 고급 인공 지능(AI) 시스템
  • 딥러닝 기술 기반이며 웹 사이트, 책, 기사와 같은 다양한 소스에서 수십억 개의 단어를 포함하는 대규모 데이터 세트에서 훈련됨
  • 언어, 문법, 문맥 및 일반 지식의 뉘앙스를 파악할 수 있음
    • 응답 질문 
    • 텍스트 요약
    • 언어 번역
    • 콘텐츠 생성
    • 사용자와의 양방향 대화(챗봇)

 

LLM 데이터 코퍼스 구축의 필수 요소

  • 데이터 코퍼스: 말뭉치/ 자연어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 집합

    1. 수량보다 데이터 품질 우선시

       -  광범위하지만 체계적이지 않은 데이터에 대해 훈련된 모델은 부정확한 결과를 낳을 수 있음.

       - 더 작고 세심하게 선별된 데이터 세트는 종종 우수한 성능을 보임.

     2. 적절한 데이터 소스 선택

          -  대화 생성 모델에서 대화 및 인터뷰 소스 활용하기

          - 코드 생성 초점 모델은 잘 문서화된 코드 저장소의 이점 활용 등 

     3. 합성 데이터 생성 사용

          - 합성 데이터로 데이텟을 강화하면, 훈련 데이터셋의 다양성을 확대하여 모델의 탄력성을 향상시키고 편향을 줄일 수 있음

     4. 자동화된 데이터 수집 구현

 

2024년에 주목해야할 LLM 오픈소스 모델

 

1. Llama 2

  • Meta AI에서 개발한 오픈소스 LLM
  • 가장 인기있는 오픈소스이고 2023년 7월 18일에 상용됨
  • 7B에서 70B까지 네 가지 크기를 제공
  • llama 1보다 더 큰 2조 개의 토큰으로 구성되어 있음
  • 표준 트랜스포머 아키텍처 활용 -> RMSNorm(Root Mean Square layer normalization), RoPE(Rotary Positional Embedding)과 같은 새로운 기능 적용
  • Supervised fine-tuning(미세조정)으로 시작하여 RLHF(휴먼 피드백을 통한 강화학습)를 통해 개선됨
  • tokenizer: Byte Pair Encoding(BPE) 알고리즘과 SentencePiece 사용

인간 피드백을 통한 강화학습(RLHF)과 보상 모델링을 통해 양방향 대화에 최적화한 LLaMA 21-Chat(출처: Meta AI)

 

2. Mistral

  • Mistral AI가 출시한 모델로 맞춤형 학습과 튜닝 및 데이터 처리 방법을 기반으로 생성됨
  • Apache 2.0 라이선스로 제공되는 오픈 소스 모델
  • 실제 애플리케이션에 적용할 수 있게 설계되어 효율적이며 높은 성능 제공
  • 수학, 코드 생성 및 추론을 포함한 다양한 벤치마크에서 뛰어난 성능 발휘
  • Mistral-7B: tiny 모델로 복잡한 계산이 없는 대용량 batch 처리 작업에 적합, 애플리케이션에 가장 비용 효율적

다양한 벤치마크에서 Mistral 7B와 Llama 모델의 성능 비교

3. Solar

  • 업스테이지에서 출시한 소형 언어모델
  • 107억 개의 매게변수로 이루어짐
  • 필수적인 NLP(자연어 처리) 작업에서 더 나은 성능을 발휘하면서도 효율성을 유지하는 최신이자 오픈소스 LLM
  • 2023년 12월 세계 최댛 머신러닝 플랫폼인 허깅페이스가 운영하는 '오픈 LLM 리더보드'에서 1위 달성
  • sLLM의 기준이라고 할 수 있는 300억 매개변수(30B) 이하 사이즈로 글로벌 최고 성능 모델에 오름
  • 자체적으로 구축한 데이터 적용 및 자체 스케일링 기법(Depth Up-Scaling) 활용
    • 사전 학습 및 파인튜닝 단계에서 리더보드 벤치마킹 데이터셋을 활용하지 않음 자체적으로 구축한 데이터 적용

4. Yi

  • 8개월만에 10억 달러 이상의 가치를 인정받으며 유니콘 기업으로 성장한 중국 스타트업 01.AI가 개발
  • 다국어 모델을 목표로 모델 학습에 고품질의 3T 다국어 코퍼스 활용
  • 이해력, 상식 추론, 독해력 등에서 주목할만한 성능을 보임
  • LLaMA와 동일한 모델 아키텍처 활용
  • 6B 및 34B 크기의 모델 제공/ 추론 시간 동안 32K 확장 가능
    • 6B: 개인용 및 학술용으로 적합
    • 34B: 상업용 및 개인용, 학술용으로 적합

 

5. Falcon

  • 아랍에미리트(UAE)의 기술혁신연구소에서 출시한 생성형 대규모 언어 모델
  • 180B, 40B, 7.5B, 1.3B 파라미터의 AI 모델 제공
    • 40B:
      • 연구자와 상업 사용자 모두에게 로열티 없이 제공되고 있음
      • 11개의 언어로 작동 가능/ 특정 요구사항에 맞게 파인튜닝 가능
      • GPT-3 보다 적은 훈련 컴퓨팅리소스를 사용하며 품질 높은 훈련 데이터에 초점을 맞춤
    • 180B:
      • 1800억 개의 파라미터 보유/ 3.5조 개의 토큰을 훈련하여 탁월한 성능을 발휘

LLM의 장점

  1. 광범위한 지식 활용
    • - 방대한 양의 텍스트 데이터를 학습하여 다양한 분야의 지식을 습득
    • - 학습한 지식을 바탕으로 사용자의 질문에 폭넓고 심도 있는 답변 가능
  2. 뛰어난 언어 이해 및 생성 능력
    • - 단어 간의 관계와 문맥을 고려하여 자연스러운 언어 이해 가능
    • - 문법적으로 정확하고 의미 있는 문장 생성 능력
  3. 다양한 태스크 수행 가능
    • - 텍스트 분류, 질의응답, 요약, 번역, 문장 생성 등 다양한 NLP 태스크 처리 가능
    • - 하나의 모델로 여러 태스크를 수행할 수 있어 범용성이 높음
  4. 사용자 친화적인 인터페이스
    • - 자연어로 된 사용자 입력을 이해하고 응답할 수 있어 접근성이 좋음
    • - 챗봇, 가상 어시스턴트 등으로 활용되어 사용자 경험 향상
  5. 다양한 분야에서의 활용
    • - 고객 서비스, 콘텐츠 제작, 교육, 의료 등 다양한 산업 분야에서 활용 가능
    • - 사람과 기계 간의 상호작용을 향상시키고 업무 효율성 증대에 기여

LLM의 단점

  1. 편향성 문제
    • 학습 데이터에 내재된 편향성을 그대로 반영할 수 있음
    • 성별, 인종, 종교 등에 대한 고정관념이나 차별적 표현을 생성할 위험 존재
  2. 사실 관계 오류 가능성
    • 방대한 데이터를 학습하지만, 항상 정확한 정보를 제공하지는 않음
    • 잘못된 정보나 허위 정보를 진실로 간주하고 전파할 수 있음
  3. 맥락 이해의 한계
    • 문장 단위의 이해는 가능하지만, 장문의 글이나 복잡한 맥락 파악은 어려울 수 있음
    • 세계 지식과 상식 추론 능력이 부족하여 심층적인 이해에 한계 존재
  4. 일관성 문제
    • 동일한 입력에 대해 일관된 답변을 생성하지 않을 수 있음
    • 모델의 확률적 특성상 생성 결과가 매번 달라질 수 있어 신뢰성 저하
  5. 윤리적 문제
    • 악용 가능성이 존재하며, 책임 소재 파악이 어려울 수 있음
    • 모델의 출력 결과에 대한 통제와 검증 체계 마련 필요

LLM의 단점 중 ‘사실 관계 오류 가능성’과 ‘맥락 이해의 한계’를 개선하는 데 초점을 맞춘 것이 바로 RAG(Retrieval-Augmented Generation)입니다. RAG를 자세히 알고 싶다면 아래 내용을 참고해주세요:)

 

https://aristudy.tistory.com/126

 

RAG(Retrieval-Augmented Generation)란?

LLM의 단점LLM(Large Language Model)은 많은 장점에도 불구하고 다음과 같은 단점과 한계점을 가지고 있습니다:편향성 문제학습 데이터에 내재된 편향성을 그대로 반영할 수 있음성별, 인종, 종교 등에

aristudy.tistory.com

 

참고:

오픈소스 LLM Top 5 (2024) — Upstage

LLM(Large Language Models)이란 무엇입니까? - 주요 사용 사례, 데이터 세트, 미래 (shaip.com)

1. 텍스트 데이터의 구성

  • 말뭉치 (corpus, 코퍼스) = 일반적인 원시텍스트와 이 텍스트에 연관된 메타데이터를 포함한 것
  • 원시텍스트 = 문자(바이트)시퀀스이지만 일반적으로 문자를 토큰이라는 연속된 단위로 묶여 있음 - ASCII, UTF-8 형태
  • 토큰 = 공백문자나 구두점으로 구분되는 단어 혹은 숫자
  • 메타데이터 = 식별자, 레이블, 타임스템프 등 텍스트와 연관된 어떤 부가정보
  • 샘플(Sample) or 데이터포인트 = 메타데이터가 붙어있는 텍스트 
  • 말뭉치 = 샘플들의 모음 = 데이터셋

2. 토큰화

  • 어진 말뭉치(코퍼스)를 토큰으로 나누는 과정을 토큰화 라고 함
"Maria frapis la verda sorcistino"
  •  6개의 토큰 존재(공백문자와 구두점으로 구분)
  •  참고로 토큰은 문장, 줄바꿈, 공백 등 다양한 사용자 기준에 따라 나눌 수 있음
  •  예시의 터키어는 한국어와 같이 교착어라고 부름
  •  교착어: 실질적인 단어 또는 어간에 문법적인 요소가 차례대로 결합함으로써 문장 속에서 문법적인 역할이나 관계의 차이를 나타내는 언어

 3. 타입

  • 타입 = 말뭉치에 등장하는 고유한 토큰
  • 말뭉치에 있는 모든 타입의 집함 = 어휘사전 or 어휘
  • 단어 = 내용어 / 불용어로 구분
    • 불용어 = 관사와 전치사 같은 대부분 내용어를 보충하는 문법적인 용도로 사용

4. n-gram 

참고: [NLP] 텍스트 데이터의 기초 / 말뭉치, 토큰화, n-gram (tistory.com)

 

 

 

 

 

생성형 AI란?

  • 학습된 데이터를 기반으로 고품질 텍스트, 이미지 및 기타 콘텐츠를 생성할 수 있는 인공지능

생성형 AI의 구성 요소

  • 파운데이션 모델: 다양한 LLM 모델을 더 넓은 개념으로 확장할 수 있도록 하는 것 / 완성된 모델 중 하나가 생성형 AI 모델임

 

wsl2를 통해 ubuntu를 설치해서 사용하다보면 다음과 같은 오류가 발생하는 경우가 있다.

이럴때는 wsl2에서 systemd를 활성화해주면 된다.

System has not been booted with systemd as init system (PID 1). Can't operate. 
Failed to connect to bus: Host is down

 

1. 파워쉘에서 wsl 버전 확인

 

2. ubuntu에서 wsl.conf 파일을 아래와 같이 수정

sudo nano /etc/wsl.conf

 

 

3. pstree 확인: systemd 활성화 전에는 ubuntu 시스템이 init으로 관리하고 있음.

즉, 저 화면이 나오면 systemd가 작동이 안되고 있다는 뜻!

 

4. ubuntu에서 exit로 종료하고 파워쉘에서 ubuntu 종료된 것 확인하기


   

- 만약에 종료가 20초가 지나도 안된다면 아래 명령어로 종료시키기

 

5. ubuntu 재실행 후 pstree 확인

 

6. 잘 실행되는지 확인해보기

 

 

 

참고: https://m.blog.naver.com/xell00/223158675748

+ Recent posts