• 회원가입
  • |
  • 로그인
  • |
  • 장바구니
  • News
    뉴스 신제품 신간 Culture & Life
  • 강좌/특집
    특집 강좌 자료창고 갤러리
  • 리뷰
    리뷰
  • 매거진
    목차 및 부록보기 잡지 세션별 성격 뉴스레터 정기구독안내 정기구독하기 단행본 및 기타 구입
  • 행사/이벤트
    행사 전체보기 캐드앤그래픽스 행사
  • CNG TV
    방송리스트 방송 다시보기 공지사항
  • 커뮤니티
    업체홍보 공지사항 설문조사 자유게시판 Q&A게시판 구인구직/학원소식
  • 디렉토리
    디렉토리 전체보기 소프트웨어 공급업체 하드웨어 공급업체 기계관련 서비스 건축관련 업체 및 서비스 교육기관/학원 관련DB 추천 사이트
  • 회사소개
    회사소개 회사연혁 출판사업부 광고안내 제휴 및 협력제안 회사조직 및 연락처 오시는길
  • 고객지원센터
    고객지원 Q&A 이메일 문의 기사제보 및 기고 개인정보 취급방침 기타 결제 업체등록결제
  • 쇼핑몰
통합검색 "역설계"에 대한 통합 검색 내용이 327개 있습니다
원하시는 검색 결과가 잘 나타나지 않을 때는 홈페이지의 해당 게시판 하단의 검색을 이용하시거나 구글 사이트 맞춤 검색 을 이용해 보시기 바랍니다.
CNG TV 방송 내용은 검색 속도 관계로 캐드앤그래픽스 전체 검색에서는 지원되지 않으므로 해당 게시판에서 직접 검색하시기 바랍니다
랭체인 아키텍처 및 동작 메커니즘 분석
BIM 칼럼니스트 강태욱의 이슈 & 토크   이번 호에서는 랭체인(LangChain) 아키텍처와 동작 방법을 분석한다. 현재 챗GPT(ChatGPT)와 비슷한 인공지능 챗봇 서비스 개발 등에 대중적으로 사용되는 랭체인은 LLM(Large Language Model : 대규모 언어 모델) 통합과 PDF 등 다양한 데이터 소스를 지원하여 LLM 모델 활용성을 극대화한다. 이 글을 통해 LLM 서비스 개발에 필요한 랭체인의 아키텍처와 동작 원리를 이해할 수 있을 것이다.   ■ 강태욱 건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 이와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다. 페이스북 | www.facebook.com/laputa999 홈페이지 | https://dxbim.blogspot.com 팟캐스트 | http://www.facebook.com/groups/digestpodcast   그림 1   랭체인은 LLM에 원하는 결과를 얻을 수 있도록 다양한 프롬프트 입력 및 구조화된 출력, RAG, 튜닝과 같은 기능을 제공하는 라이브러리다. 랭체인 설치는 다음과 같이 진행할 수 있다.  pip install langchain   랭체인의 기본 사용법 랭체인은 모델 입출력, 데이터 검색, 에이전트 지원, 체인, 컨텍스트 메모리 기능을 제공하며, LCEL(LangChain Expression Language)을 이용해 각 구성요소를 유기적으로 연결시킬 수 있다. LCEL은 유닉스 파이프라인 개념을 차용했다. 다음은 LCEL의 예시를 보여준다.  from langchain.chat_models import ChatOpenAI from langchain.prompts import ChatPromptTemplate from langchain.schema import BaseOutputParser # LCEL 예시 chain = ChatPromptTemplate() | ChatOpenAI() | CustomOutputParser() 이와 더불어 목적에 맞는 다양한 프롬프트 템플릿, 구조화된 출력을 제공한다. from langchain.output_parsers.json import SimpleJsonOutputParser json_prompt = PromptTemplate.from_template(     "Return a JSON object with `birthdate` and `birthplace` key that answers the following question: {question}" ) json_parser = SimpleJsonOutputParser() # JSON 파서 # 프롬프트, 모델, 파서 체인 생성 json_chain = json_prompt | model | json_parser  # 유닉스 파이프라인 개념 차용함. result_list = list(json_chain.stream({"question": "When and where was Elon Musk born?"})) print(result_list)   그림 2   랭체인 구조 분석 패키지 구조 랭체인 구조를 분석하기 위해, 깃허브(GitHub)의 랭체인 소스코드를 다운로드한 후 UML로 모델링해 본다. 주요 패키지는 <그림 3>과 같다.  랭체인 소스코드 : https://github.com/langchain-ai/langchain   그림 3   cli는 랭체인의 커맨드 라인 인터페이스(command line interface), core는 랭체인의 핵심 구현 코드가 정의된다. 이 부분은 <그림 4>와 같은 패키지로 구성된다.    그림 4   참고로, 이 패키지들은 <그림 5>의 일부이다.   그림 5. 랭체인 v.0.2.0 패키지   LCEL 언어 동작 구조 이 중에 핵심적인 것만 분석해 본다. 우선, LCEL의 동작 방식을 위해 어떤 디자인 패턴을 구현하였는지 확인한다. 이 부분은 runnables 패키지가 담당한다. 이 언어는 유닉스의 파이프라인 처리를 다음과 같이 흉내낸다.  z = a | b | c z.stream('abc') 이를 위해 파이썬(Python) 문법을 적극 사용하고 있다. 우선 ‘|’ 연산자를 오버로딩(overloading)하기 위해, 파이썬 Runnable 클래스를 정의해 ‘__or__’ 연산자를 구현한다. 이 연산자는 self object와 right object 두 객체를 입력받아 리스트를 만든 후 리턴하는 역할을 한다. 앞의 예시에서 보면, ‘a | b’를 실행 가능한 객체 리스트로 만들어 리턴한다. 결론적으로 a, b, c 객체를 리스트로 만들고 이 리스트를 z에 할당한다.     ■ 자세한 기사 내용은 PDF로 제공됩니다.
작성일 : 2024-07-04
오픈소스 LLaVA 기반 멀티모달 생성형 AI 서비스 만들기
BIM 칼럼니스트 강태욱의 이슈 & 토크   이번 호에서는 챗GPT 4.0(ChatGPT 4.0)과 같은 LMM(Large langauge Multi-modal Model : 멀티모달 대규모 언어 모델)인 LLaVA(Large Language and Vision Assistant : 라바) 기반 멀티모달 생성형 AI 서비스 개발 방법을 설명한다.   ■ 강태욱 건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 이와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다. 페이스북 | www.facebook.com/laputa999 홈페이지 | https://dxbim.blogspot.com 팟캐스트 | http://www.facebook.com/groups/digestpodcast   라바는 이미지 투 텍스트(Image To Text)와 같은 언어-이미지 시각 어시스턴스(Language-Image Visual Assistant)를 지원하기 위해 ViT(Visual Instruction Tuning : 시각적 지시 조정)을 기반으로 개발된 멀티모달 모델 오픈소스이다. 예를 들어, 이미지를 단순히 분류해 주는 것이 아닌, 이미지 내 특정 객체들을 인식하고 관계를 설명할 수 있는 기술을 지원한다.   그림 1. 단독 로컬 서버 PC에서 라바 서비스 모습   참고로, ViT는 이미지의 특정 위치에 대한 객체 정보를 인식할 수 있도록 학습하는 기술이다. 예를 들어, GPT-4는 특정 부분의 시각적 특징을 인코딩하기 위해 YOLO 모델과 같이 경계 상자를 사용하고, CLIP 모델과 같이 해당 부분에 대한 텍스트 임베딩을 입력하여 학습한다. Visual Instruction Tuning : https://arxiv.org/abs/2304.08485   그림 2. ViT의 개념   라바의 NeXT 버전은 구글 제미나이 프로의 성능을 능가했다고 밝혔으며, 이전 버전인 라바 1.5에 비해 이미지 해상도, OCR 기능 등이 개선되었다고 한다.    그림 3. 라바 아키텍처   이번 호에서는 Ollama를 이용해 라바 NeXT를 로컬 PC에서 실행하는 방법을 따라해 본다.    라바의 개요 라바는 대형 멀티모달 모델로, GPT-4.0과 유사한 LMM을 개발하고자 마이크로소프트 연구팀에서 오픈소스로 개발되었다. MS는 라바의 논문, 깃허브(GitHub) 코드, 데모 사이트 등을 공개하였다.  LLaVA Demo : https://llava.hliu.cc LLaVA paper(Visual Instruction Tuning - Microsoft Research) : https://www.microsoft.com/en-us/research/publication/visual-instruction-tuning 라바 LMM은 비전 인코더, LLM 모델을 기반으로 개발되었으며, 이미지 투 텍스트에서 인상적인 성능을 보여준다. 라바는 비전 인코더로 오픈AI(OpenAI)에서 공개한 CLIP 모델을 사용했으며, 메타(페이스북)에서 공개한 LLaMA 기반 Vicuna LLM 모델을 사용했다. 학습은 A100 GPU×8×1 Day 와 60만개 데이터셋을 사용했다. 라바를 설치하고 실행해 보기 위해서는 다음의 개발 환경이 컴퓨터에 미리 설치되어 있다고 가정한다.(우분투, 엔비디아, 쿠다 등의 설치 방법은 지난 연재를 참고하기 바란다.) NVIDIA driver, CUDA, Python, anaconda, Ubuntu 22.04 Tensorflow, PyTorch Ollama(https://ollama.com/download)     ■ 자세한 기사 내용은 PDF로 제공됩니다.
작성일 : 2024-06-03
오픈AI CLIP 모델의 이해/코드 분석/개발/사용
BIM 칼럼니스트 강태욱의 이슈 & 토크   이번 호에서는 생성형 AI의 멀티모달 딥러닝 기술 확산의 계기가 된 오픈AI(OpenAI)의 CLIP(Contrastive Language-Image Pre-Training, 2021) 코드 개발 과정을 분석하고, 사용하는 방법을 정리한다.    ■ 강태욱 건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 이와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다. 이메일 | laputa99999@gmail.com 페이스북 | www.facebook.com/laputa999 홈페이지 | https://dxbim.blogspot.com 팟캐스트 | http://www.facebook.com/groups/digestpodcast CLIP은 구글이 개발한 자연어 번역 목적의 트랜스포머 모델, 비전 데이터 변환에 사용되는 VAE(Variational Autoencoder) 개념을 사용하여 멀티모달 학습 방식을 구현하였다. 이번 호에서는 그 과정을 설명하고 파이토치로 직접 구현하는 과정을 보여준다. CLIP을 이용하면 유튜브, 넷플릭스와 같은 영상에서 자연어로 질의해 해당 장면을 효과적으로 검색할 수 있다. 참고로, CLIP에서는 트랜스포머가 핵심 컴포넌트로 사용되었다. CLIP과 같이 트랜스포머가 자연어 번역 이외에 멀티모달의 핵심 기술이 된 이유는 비정형 데이터를 연산 가능한 차원으로 수치화할 수 있는 임베딩 기술의 발전과 트랜스포머의 Key, Query, Value 입력을 통한 여러 학습 데이터 조합이 가능한 특징이 크게 작용했다.    그림 1. 멀티모달 시작을 알린 오픈AI의 CLIP 모델(Learning Transferable Visual Models From Natural Language Supervision, 2021)   트랜스포머와 VAE를 이용한 멀티모달 CLIP 네트워크를 좀 더 깊게 파헤쳐 보도록 한다. 앞서 설명된 트랜스포머, 임베딩과 관련된 개념에 익숙하다면, CLIP을 이해하고 구현하는 것이 그리 어렵지는 않을 것이다.    CLIP에 대한 이해 오픈AI에서 개발한 CLIP 모델은 공유 임베딩 공간 내에서 이미지 및 텍스트 형식을 통합하는 것을 목표로 했다. 이 개념은 기술과 함께 이미지와 텍스트를 넘어 다른 양식을 수용한다.(멀티모달) 예를 들어, 유튜브 등 비디오 애플리케이션 내에서 텍스트 검색 성능을 개선하기 위해 공통 임베딩 공간에서 비디오 및 텍스트 형식을 결합하여 모델을 학습시켰다. 사실, 임베딩 텐서를 잠재 공간(Latent Space)으로 이기종 데이터를 변환, 계산, 역변환할 수 있다는 아이디어는 VAE 기술, 구글의 트랜스포머 논문(2017)을 통해 개발자들 사이에 암시되어 있었다. 이를 실제로 시도해본 연구가 CLIP이다.  참고로, CLAP(Contrastive Language-Audio Pretraining)은 동일한 임베딩 공간 내에서 텍스트와 오디오 형식을 통합하는 또 다른 모델로, 오디오 애플리케이션 내에서 검색 기능을 개선하는 데 유용하다. CLIP은 다음과 같은 응용에 유용하다. 이미지 분류 및 검색 : CLIP은 이미지를 자연어 설명과 연결하여 이미지 분류 작업에 사용할 수 있다. 사용자가 텍스트 쿼리를 사용하여 이미지를 검색할 수 있는 보다 다양하고 유연한 이미지 검색 시스템을 허용한다. 콘텐츠 조정 : CLIP은 부적절하거나 유해한 콘텐츠를 식별하고 필터링하기 위해 이미지와 함께 제공되는 텍스트를 분석하여, 온라인 플랫폼의 콘텐츠를 조정하는 데 사용할 수 있다. 참고로, 메타 AI(Meta AI)는 최근 이미지, 텍스트, 오디오, 깊이, 열, IMU 데이터 등 6가지 양식에 걸쳐 공동 임베딩을 학습하는 이미지바인드(ImageBind)를 출시했다. 두 가지 모달리티를 수용하는 최초의 대규모 AI 모델인 CLIP은 이미지바인드 및 기타 다중 모달리티 AI 시스템을 이해하기 위한 전제 조건이다. CLIP은 배치 내에서 어떤 N×N(이미지, 텍스트) 쌍이 실제 일치하는지 예측하도록 설계되었다. CLIP은 이미지 인코더와 텍스트 인코더의 공동 학습을 통해 멀티모달 임베딩 공간을 만든다. CLIP 손실은 트랜스포머의 어텐션 모델을 사용하여, 학습 데이터 배치에서 N개 쌍에 대한 이미지와 텍스트 임베딩 간의 코사인 유사성을 최대화하는 것을 목표로 한다.  다음은 이를 설명하는 의사코드이다. 1. img_en = image_encoder(I)   # [n, d_i] 이미지 임베딩 인코딩을 통한 특징 추출  2. txtxt_emdn = textxt_emdncoder(T)    # [n, d_t] 텍스트 임베딩 인코딩을 통한 특징 추출 3. img_emd = l2_normalize(np.dot(img_en, W_i), axis=1)    # I×W 결합(조인트) 멀티모달 임베딩 텐서 계산 4. txt_emd = l2_normalize(np.dot(txtxt_emdn, W_t), axis=1)  # T×W 결합(조인트) 멀티모달 임베딩 텐서 계산 5. logits = np.dot(img_emd, txt_emd.T) * np.exp(t)   # I×T * E^t 함수를 이용한 [n, n]코사인 유사도 계산 6. labels = np.arange(n) 7. loss_i = cross_entropy_loss(logits, labels, axis=0)  # 이미지 참값 logits과 예측된 label간 손실 8. loss_t = cross_entropy_loss(logits, labels, axis=1)  # 텍스트 참값 logits과 예측된 label간 손실 9. loss = (loss_i + loss_t)/2   # 이미지, 텍스트 손실 평균값   실제 오픈AI 논문에는 <그림 2>와 같이 기술되어 있다.(동일하다.)   그림 2     ■ 자세한 기사 내용은 PDF로 제공됩니다.
작성일 : 2024-05-02
로컬 호스트 LLM 오픈소스 기반 BIM 전문가 챗봇 서비스 만들어보기
BIM 칼럼니스트 강태욱의 이슈 & 토크   요즘 LLM 모델을 사용하는 방법이 점차 간편해지고 있어 자체적으로 LLM을 구축해 챗봇, 전문가 시스템 등을 자신의 서버에서 제공하는 경우가 많아지고 있다. 이번 호에서는 GPU가 있는 PC에서 직접 실행해 볼 수 있도록, 로컬 호스트 LLM(대규모 언어 모델) 오픈소스 기반의 BIM 전문가 챗봇 서비스를 간단히 개발해 본다.   ■ 강태욱 건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 이와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다. 이메일 | laputa99999@gmail.com 페이스북 | www.facebook.com/laputa999 홈페이지 | https://dxbim.blogspot.com 팟캐스트 | http://www.facebook.com/groups/digestpodcast   이번 호에서는 기존의 BIM PDF 파일을 검색해 학습하고, LLM에 RAG(Retrieval-augmented generation) 증강 학습한 후, 이를 간단한 UI로 웹 서비스하는 과정을 간략히 따라해 본다. 이번 호의 내용은 로컬 LLM의 편한 개발을 지원하는 올라마(Ollama), LLM 프롬프트 엔지니어링 프레임워크인 랭체인(LangChain), 텍스트 임베딩 벡터 데이터베이스 크로마(Chroma), 손쉬운 웹 앱 개발 지원 도구인 스트림릿(Streamlit)을 사용한다. 이를 이용해 간단하게 BIM 전문 지식을 PDF로 학습한 챗봇을 개발한다.   그림 1. 로컬 호스트 LLM 챗봇 아키텍처   그림 2. 구현된 BIM 지식 챗봇 서비스   LLM에 관련된 깊은 내용은 다음의 링크를 참고한다. 이 글은 여러 참고 자료를 이용해 작성된 것이다. 상세 내용은 레퍼런스를 참고하기 바란다. Facebook LLAMA-2 paper : https://daddynkidsmakers.blogspot.com/2024/02/llama-2.html Facebook LLAMA-2 installation : https://daddynkidsmakers.blogspot.com/2023/09/llama2.html LLM은 빅테크 업체 간 경쟁이 심한 분야이다. 이와 관련해서 젬마(Gemma), MPT-7B과 같은 LLM 모델이 오픈소스로 공개되고 있어 선택지가 많아지고 있다. 이와 관련해서는 다음을 참고한다.  Google Gemma : https://github.com/google/gemma_pytorch Blooom : https://huggingface.co/bigscience/bloom   설치 설치를 위해서는 엔비디아 드라이버, CUDA, 텐서플로(TensorFlow), 파이토치(PyTorch) 등 기본 딥러닝 개발 환경이 설치되어 있어야 한다.(최소 구동을 위한 GPU RAM은 6GB이다.) TensorFlow 설치 : https://www.tensorflow.org/install/pip?hl=ko#windows-native_1 Start Locally | PyTorch 설치 : https://pytorch.org/get-started/locally/ 설치 순서는 다음과 같다.  1. 기본 패키지를 설치한다. LLM 모델 기반 서비스 개발 지원 라이브러리 랭체인, 웹 앱 UI 개발을 지원하는 스트림릿, 텍스트 임베딩 벡터 데이터베이스 크로마 DB 등을 설치한다. pip install langchain streamlit streamlit_chat pypdf fastembed chardet pip install chromadb==0.4.15   그림 3. 다양한 LLM 모델을 이용한 서비스 개발을 지원하는 랭체인 패키지   그림 4. 간단한 코드로 웹 앱 개발을 지원하는 UI 라이브러리 패키지 streamlit.io   혹은 pip와 유사한 패키지 설치 관리자인 poetry를 설치한 후, 다음 사용 패키지들을 pyproject.toml 이름으로 저장하고 설치한다.     ■ 자세한 기사 내용은 PDF로 제공됩니다.
작성일 : 2024-04-01
[무료다운로드] 생성형 AI 데이터 학습에 사용되는 딥러닝 강화학습의 개념과 구조
BIM 칼럼니스트 강태욱의 이슈 & 토크   이번 호에서는 생성형 AI 모델 학습과 같이 현재도 다양한 곳에서 필수로 사용되는 강화학습 딥러닝 기술의 기본 개념, 이론적 배경, 내부 작동 메커니즘을 확인한다.   ■ 강태욱 건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 이와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다. 이메일 | laputa99999@gmail.com 페이스북 | www.facebook.com/laputa999 홈페이지 | https://dxbim.blogspot.com 팟캐스트 | http://www.facebook.com/groups/digestpodcast   강화학습은 바둑, 로봇 제어와 같은 제한된 환경에서 최대 효과를 얻는 응용분야에 많이 사용된다. 강화학습 코딩 전에 사전에 강화학습의 개념을 미리 이해하고 있어야 제대로 된 개발이 가능하다. 강화학습에 대해 설명한 인터넷의 많은 글은 핵심 개념에 대해 다루기보다는 실행 코드만 나열한 경우가 많아, 실행 메커니즘을 이해하기 어렵다. 메커니즘을 이해할 수 없으면 응용 기술을 개발하기 어렵다. 그래서 이번 호에서는 강화학습 메커니즘과 개념 발전의 역사를 먼저 살펴보고자 한다. 강화학습 개발 시 오픈AI(OpenAI)가 개발한 Gym(www.gymlibrary.dev/index.html)을 사용해 기본적인 강화학습 실행 방법을 확인한다. 참고로, 깃허브 등에 공유된 강화학습 예시는 대부분 게임이나 로보틱스 분야에 치중되어 있는 것을 확인할 수 있다. 여기서는 CartPole 예제로 기본적인 라이브러리 사용법을 확인하고, 게임 이외에 주식 트레이딩, 가상화폐, ESG 탄소 트레이딩, 에너지 활용 설비 운영과 같은 실용적인 문제를 풀기 위한 방법을 알아본다.   그림 1. 강화학습의 개념(출처 : Google)   강화학습의 동작 메커니즘 강화학습을 개발하기 전에 동작 메커니즘을 간략히 정리하고 지나가자.   강화학습 에이전트, 환경, 정책, 보상 강화학습의 목적은 주어진 환경(environment) 내에서 에이전트(agent)가 액션(action)을 취할 때, 보상 정책(policy)에 따라 관련된 변수 상태 s와 보상이 수정된다. 이를 반복하여 총 보상 r을 최대화하는 방식으로 모델을 학습한다. 정책은 보상 방식을 알고리즘화한 것이다. <그림 2>는 이를 보여준다. 이는 우리가 게임을 하며 학습하는 것과 매우 유사한 방식이다.   그림 2. 강화학습 에이전트, 환경, 액션, 보상 개념(출처 : towardsdatascience)   강화학습 설계자는 처음부터 시간에 따른 보상 개념을 고려했다. 모든 시간 경과에 따른 보상치를 동시에 계산하는 것은 무리가 있으므로, 이를 해결하기 위해 DQN(Deep Q-Network)과 같은 알고리즘이 개발되었다. 모든 강화학습 라이브러리는 이런 개념을 일반화한 클래스, 함수를 제공한다. 다음은 강화학습 라이브러리를 사용한 일반적인 개발 코드 패턴을 보여준다.   train_data, test_data = load_dataset()  # 학습, 테스트용 데이터셋 로딩 class custom_env(gym):  # 환경 정책 클래스 정의    def __init__(self, data):       # 환경 변수 초기화    def reset():       # 학습 초기 상태로 리셋    def step(action):       # 학습에 필요한 관찰 데이터 변수 획득       # 액션을 취하면, 그때 관찰 데이터, 보상값을 리턴함 env = custom_env(train_data)  # 학습환경 생성. 관찰 데이터에 따른 보상을 계산함 model = AgentModel(env)      # 에이전트 학습 모델 정의. 보상을 극대화하도록 설계 model.learn()                       # 보상이 극대화되도록 학습 model.save('trained_model')    # 학습된 파일 저장 # 학습된 강화학습 모델 기반 시뮬레이션 및 성능 비교 env = custom_env(test_data)  # 테스트환경 생성 observed_state = env.reset() while not done:    action = model.predict(observed_state) # 테스트 관찰 데이터에 따른 극대화된 보상 액션    observed_state, reward, done, info = env.step(action)    # al1_reward = env.step(al1_action) # 다른 알고리즘에 의한 액션 보상값과 성능비교    # human_reward = env.step(human_action) # 인간의 액션 보상값과 성능비교   ■ 상세한 기사 내용은 PDF로 제공됩니다.
작성일 : 2024-03-05
[무료다운로드] 딥러닝 수치해석 데이터의 병렬처리를 지원하는 파이썬 넘바 라이브러리
BIM 칼럼니스트 강태욱의 이슈 & 토크   이번 호에서는 GPU CUDA(쿠다) 병렬처리를 지원하는 넘바(Numba) 라이브러리를 간략히 소개한다. CUDA는 현재 딥러닝 기술의 기반처럼 사용되며, 사실상 산업 표준이다. 딥러닝은 모든 연산이 텐서 행렬 계산이므로, 엔비디아 GPU에 내장된 수많은 계산 유닛(실수 계산에 특화된 CPU)들을 사용한다. CUDA의 강력한 수치해석 데이터 병렬처리 기능은 딥러닝뿐 아니라 디지털 트윈의 핵심인 시뮬레이션, 모델 해석 등에 필수적인 수치계산 엔진으로 사용된다.   ■ 강태욱 건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 이와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다. 페이스북 | www.facebook.com/laputa999 홈페이지 | https://dxbim.blogspot.com 팟캐스트 | http://www.facebook.com/groups/digestpodcast   CUDA는 내장된 수많은 계산 유닛에 입력 데이터를 할당하고, 행렬연산을 하여 출력된 데이터를 CPU 메모리가 접근할 수 있도록 데이터 고속 전송/교환하는 역할을 한다. 그러므로, 딥러닝 모델 학습 성능은 GPU CUDA 성능에 직접적 영향을 받는다. 이벙 호에서는 파이썬(Python)에서 CUDA를 이용해 수치해석 등 계산 성능을 극대화할 수 있는 방법과 간단한 예제를 살펴본다.   그림 1. CUDA 아키텍처(출처 : Multi-Process Service : GPU Deployment and Management Documentation)   GPU CUDA 소개 CUDA는 게임 화면에 렌더링되는 3차원 이미지를 2차원 픽셀에 매핑하기 위한 수많은 행렬을 실시간 처리할 수 있도록 개발되어 왔다. 이런 이유로, 행렬 고속 연산이 필요한 딥러닝 학습에 적극 사용된 것이다.   그림 2. CUDA 기반 실시간 텐서 행렬 연산 결과   CUDA는 오랫동안 개발자의 요구사항을 반영해 발전되어, 개발 플랫폼으로서 탄탄한 생태계를 구축했다.   그림 3. 엔비디아 개발자 사이트   그림 4. CUDA 기반 레이트레이싱 렌더링 결과(출처 : Ray Tracey's blog : GPU path tracing tutorial 3 : GPU)   사실, 많은 스타트업이 이런 기능을 지원하는 딥러닝용 AI 칩을 FPGA 기법 등을 이용해 개발, 홍보하고 있으나, 이런 개발자 지원도구와 플랫폼 생태계 없다면 산업계에서는 의미가 없다고 볼 수 있다.   넘바 소개 넘바는 파이썬 기반 CUDA GPU 프로그래밍을 지원한다. 넘바는 컴파일 기술을 지원하여 CPU와 GPU 모드에서 코딩되는 데이터 구조, 함수 호출을 추상화한다. 넘바는 엔비디아의 CUDA 함수와 설정을 래핑한 고수준의 함수 API를 제공한다. 이를 통해 개발자가 CUDA의 세부 설정에 신경쓸 필요 없이, 데이터 병렬 처리 개발에만 집중할 수 있다.   개발 환경 넘바의 개발 환경은 다음과 같다. NVIDIA Compute Capability 5.0 이상 CUDA 지원 GPU 장착 PC(2023년 12월 시점) NVIDIA CUDA 11.2 이상 NVIDIA TX1, TX2, 자비에, 젯슨 나노 GTX 9, 10, 16 시리즈. RTX 20, 30, 40 시리즈. H100 시리즈 CONDA 환경의 경우, 다음과 같이 터미널을 이용해 CUDA 툴킷을 자동 설치할 수 있다. conda install cudatoolkit 넘바는 cuda python을 이용해 엔비디아 GPU CUDA와 바인딩한다. conda install nvidia::cuda-python 설치 방법은 다음과 같다. conda install numba   ■ 상세한 기사 내용은 PDF로 제공됩니다.
작성일 : 2024-02-02
프론트 라이트 스캔 데이터의 역설계 작업 과정
포인트셰이프 디자인을 사용한 역설계 사례   포인트셰이프 디자인(PointShape Design)은 드림티엔에스에서 자체 개발한 3D CAD 기반의 역설계 소프트웨어로 CGM(CATIA) 커널이 적용되었으며, 사용자에게 친숙한 디자인 프로세스 및 사용자 인터페이스를 제공한다. 이번 호에서는 포인트셰이프 디자인을 활용해 프론트 라이트 부품의 3D CAD 모델을 쉽게 생성하는 방법에 대해 소개한다.   ■ 자료 제공 : 드림티엔에스, www.pointshape.com   이번 호에서 소개할 역설계 프로세스는 다음과 같다. 스캔 데이터 불러오기 및 정렬 스캔 데이터 단면 추출 및 스케치 모델링 툴과 편집 툴을 사용하여 3D 모델 작업  Analyzing 기능을 통한 설계 데이터 편차 확인  최종 설계 데이터 완성    스캔 데이터 불러오기 및 정렬(Import & Alignment) 3D 스캐너를 통해 취득한 스캔 데이터를 <그림 1>과 같이 프로그램에서 불러온다.  스캔 데이터의 좌표 정렬 상태는 스캔 당시 스캐너의 좌표를 기준으로 정렬되어 있는 상대좌표 상태이기 때문에, 스캔 데이터를 절대 좌표에 정렬한 후 역설계를 진행한다. 3-2-1 Alignment 기능을 사용하여 좌표 정렬할 스캔 데이터를 선택하고 평면, 벡터, 점을 순서대로 선택하여 스캔 데이터를 절대 좌표에 정렬한다.   그림 1   그림 2   스캔 데이터 단면 추출 및 스케치(Plane(Offset) - 2D Sketch) Ref. Plane의 오프셋(Offset) 기능을 사용하여 해당 위치에 2개의 평면을 생성한 후, 해당 평면을 스케치 평면으로 사용하여 단면 폴리라인(Polyline)을 각각 추출하고 추출된 단면 폴리라인을 따라 스케치한다. 스케치를 한 후 트림(Trim)을 하고 필렛(Fillet) 기능을 이용하여 라인을 다듬는다.    그림 3   그림 4   모델링 툴을 사용하여 3D 모델 작업 해당 부분을 스케치한 후 <그림 5~6>과 같이 익스트루드(Extrude) 기능을 사용하여 형상을 만든다.    그림 5   그림 6   스케치를 통해 해당 평면을 생성하고 폴리라인을 따라 스케치를 한 후, 트림 기능을 사용하여 라인을 다듬고 익스트루드 기능을 사용하여 형상을 만든다.      ■ 자세한 기사 내용은 PDF로 제공됩니다.
작성일 : 2024-01-04
[무료다운로드] 생성형 AI 코딩으로 프로그램 만들어보기
BIM 칼럼니스트 강태욱의 이슈 & 토크    이번 호에서는 트랜스포머(transformer) 기반 생성형 AI 모델로 다국어 번역기, 문장 분류, 이미지 설명 텍스트 생성 프로그램의 개발 방법을 간략히 살펴본다. 트랜스포머는 텍스트, 이미지 등 데이터를 숫자로 표현한 토큰으로 인코딩한 후, 목표 라벨 데이터 결과와 차이가 적은 방향으로 가중치인 어텐션(attension) 벡터를 갱신하여 학습 모델을 만드는 기술이다.   ■ 강태욱 건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 이와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다. 이메일 | laputa99999@gmail.com 페이스북 | www.facebook.com/laputa999 홈페이지 | https://dxbim.blogspot.com 팟캐스트 | http://www.facebook.com/groups/digestpodcast   트랜스포머는 현재 문장 성격 및 특징 분류, 다국어 번역, 비전 이미지 설명 및 생성, 음성인식, Voice to Text, 음악 작곡, 글 분류, 글 자동 요약 등 다양한 영역에서 사용된다. 이번 호에서는 관련 기능을 트랜스포머로 간단히 구현해 본다.    그림 1. 트랜스포머 개념 및 아키텍처   트랜스포머의 이론적 개념 등은 다음의 링크를 참고한다. 머신러닝 딥러닝 신경망 개념, 종류 및 개발 : https://daddynkidsmakers.blogspot.com/2017/02/blog-post_24.html 어텐션 기반 트랜스포머 딥러닝 모델 이해, 활용 사례 및 파이토치(Pytorch)를 통한 간단한 사용방법 소개 : https://daddynkidsmakers.blogspot.com/2021/10/blog-post.html 간단한 트랜스포머 동작 원리와 파이토치 기반 비전 트랜스포머 ViT 소개 : https://daddynkidsmakers.blogspot.com/2023/02/pytorch-vit.html 오디오, 영상, 텍스트, 센서, 3D깊이맵 멀티모달 딥러닝 모델 페이스북 이미지바인드(imagebind) 설치 및 사용기 : https://daddynkidsmakers.blogspot.com/2023/05/imagebind.html   개발 준비 파이썬(Python), 쿠다(CUDA) 등이 설치되어 있다는 가정 하에, 다음 명령어를 이용해 관련 패키지를 설치한다. pip install transfomers sentencepiece   간단한 텍스트 생성형 AI 개발 다음과 같이 트랜스포머 모델에서 사전학습된 distilgpt2를 사용해 간단한 텍스트 생성형 AI 코드를 개발해 본다. from transformers import AutoTokenizer, AutoModelWithLMHead tokenizer = AutoTokenizer.from_pretrained("distilgpt2") model = AutoModelWithLMHead.from_pretrained("distilgpt2") input_ids = tokenizer.encode("I like gpt because it's", return_tensors='pt') greedy_output = model.generate(input_ids, max_length=12) print(tokenizer.decode(greedy_output[0], skip_special_tokens=True)) 실행 결과 <그림 2>와 같이 ‘I like gpt because it's’ 이후 문장을 자연스럽게 생성한다.   그림 2   텍스트의 빈칸 단어 예측 다음은 MLM(Mask Language Model) 방식으로 학습된 모델을 이용해, [MASK] 토큰으로 정의된 단어를 문장 맥락을 고려해 예측하는 코드이다.  from transformers import pipeline unmasker = pipeline('fill-mask', model='albert-base-v2') unmasker("mlm and nsp is the [MASK] task of bert.") 결과는 <그림 3>과 같다. 빈칸의 단어가 잘 예측된 것을 확인할 수 있다.   그림 3   이미지 설명 텍스트 생성 이제 주어진 이미지를 설명하는 텍스트를 생성해 본다. 목표는 입력 이미지에 대해 두 마리의 고양이가 누워있음을 표현하는 텍스트를 얻는 것이다.   그림 4     ■ 자세한 기사 내용은 PDF로 제공됩니다.
작성일 : 2024-01-04
CAD&Graphics 2024년 1월호 목차
  17 THEME. 디지털 전환을 위한 CAE와 시뮬레이션 물리 지식 기반 인공지능 차수 축소 모델 / 이승철 LS일렉트릭의 DX 클라우드 전략과 AI 시뮬레이션 적용 / 유성열 메시프리 기술을 통한 설계 단계 CAE 활용 방안 / 김종성 시뮬레이션 기반 디지털 트윈 구축 솔루션 및 적용 사례 / 페이스   Infoworld   Focus 30 오토데스크, “퓨전 360 10주년 맞아 국내 사용자 확대 본격화” 32 멘딕스, 디지털 트윈/생성형 AI와 결합한 로코드 개발 사례 및 비전 소개 34 빌드스마트 콘퍼런스 2023, 생성형 Al 시대의 스마트 빌드 소개   People&Company 37 산업 디지털 트윈/메타버스 플랫폼 기업, 녹원정보기술 실시간 3D 관제 위해 유니티로 디지털 트윈 구현   New Products 40 더욱 빠르고 스마트한 제품 개발 협업 경험 제공 솔리드웍스 2024 42 AI 기반으로 건축/인테리어 3D 그래픽 생성 아키캐드 AI 비주얼라이저 56 이달의 신제품   Case Study 44 디지털 트윈으로 구축하는 스마트 시티 실시간 3D 경험을 통해 도시의 미래를 준비하다 47 메타휴먼 애니메이터로 제작한 단편 영화 ‘Blue Dot’ 고품질의 페이셜 애니메이션을 빠르게 생성해 영화 제작 프로세스 개선   Column 50 디지털 지식전문가 조형식의 지식마당 / 조형식 2024년을 향하여 52 트렌드에서 얻은 것 No.19 / 류용효  마이크로소프트 코파일럿의 모든 것   On Air 62 캐드앤그래픽스 CNG TV 지식방송 지상중계 엔지니어링 업계 트렌드와 2024년 전망 63 캐드앤그래픽스 CNG TV 지식방송 지상중계 스마트 건설 기술 개발 성과와 현황은? 64 캐드앤그래픽스 CNG TV 지식방송 지상중계  BIM 기반 MEP 자동설계 방법의 AR 적용 기술 전망 65 캐드앤그래픽스 CNG TV 지식방송 지상중계  디지털 리얼리티 플랫폼을 통한 제조 산업의 미래 66 캐드앤그래픽스 CNG TV 지식방송 지상중계 효율적인 플랜트 설계를 위한 캐드웍스 소개   58 New Books 60 News   Directory 123 국내 주요 CAD/CAM/CAE/PDM 소프트웨어 공급업체 디렉토리   CADPIA   AEC 67 오토데스크 한국어 커뮤니티의 시작 / 양승규 국내 전문가와 사용자의 정보 교류 및 네트워크 위한 공간 72 BIM 칼럼니스트 강태욱의 이슈 & 토크 / 강태욱 생성형 AI 코딩으로 프로그램 만들어보기 78 새로워진 캐디안 2024 살펴보기 (1) / 최영석 캐디안 2024의 새로운 기능 82 데스크톱/모바일/클라우드를 지원하는 아레스 캐드 2024 (9) / 천벼리 사용자 정의 팔레트 Ⅰ   Reverse Engineering 85 문화유산 분야의 이미지 데이터베이스와 활용 사례 (1) / 유우식 이미지 데이터와 데이터베이스의 중요성 92 포인트셰이프 디자인을 사용한 역설계 사례 / 드림티엔에스 프론트 라이트 스캔 데이터의 역설계 작업 과정   Visualization 97 산업 경쟁력을 높여주는 XR 기술의 확대 / 조항래 전문가의 작업 노하우를 쉽고 빠르게 전수하는 방법   Mechanical 100 제품 개발 혁신을 가속화하는 크레오 파라메트릭 10.0 (8) / 김주현 크레오 파라메트릭의 GD&T 기능 106 제조업 DX, 3D 데이터의 목표는? (1) / 아이지피넷 제조업 DX의 출발은 3D 데이터의 흐름 관리   Analysis 109 시뮬레이션에서는 딥러닝을 어떻게 쓰고 있을까? / 안지수 물리 법칙을 학습하는 인공지능으로 시뮬레이션을 개선 114 MBD의 이해와 기업 가치 향상을 위한 전략 (1) / 오재응 MBD의 발전 배경과 정의 120 성공적인 유동 해석을 위한 케이던스의 CFD 기술 (5) / 나인플러스IT 보로노이 다이어그램을 이용한 고충실도 CFD 격자 생성     캐드앤그래픽스 2024년 1월호 목차 from 캐드앤그래픽스     캐드앤그래픽스 당월호 책자 구입하기   캐드앤그래픽스 당월호 PDF 구입하기
작성일 : 2024-01-02