빌드한 engine 모델을 사용하기 위해 trtexec 엔진을 사용해야 할 일이 생겼는데 설치 하려고 하니 환경이 섞이는게 싫어서 도커 이미지를 사용해서 설치하는 방법을 찾아보게 되었다.원하는 버전의 도커 이미지를 사용해서 컨테이너를 생성하면 해당 버전의 tensorrt를 사용할 수 있다. https://docs.nvidia.com/deeplearning/frameworks/container-release-notes/ TensorRT Release Notes - NVIDIA DocsThe TensorRT container is an easy to use container for TensorRT development. The container allows you to build, modify, and e..
ChatGPT를 비롯한 LLM(대형 언어 모델)의 등장은 개발 패러다임 자체를 바꿔 놓았다.이제는 코드를 작성하거나 문서를 요약하는 일을 넘어서 서비스 운영, 정보 검색, 의사 결정 보조까지 모델이 참여할 수 있다. 하지만 현실적인 문제는 많다.“모델이 사내 문서를 검색하게 하고 싶다.”“LLM이 계산·데이터베이스·외부 API를 이용하도록 하고 싶다.”“문서를 유사도 기반으로 검색한 뒤 답변하게 하고 싶다.”“대화형 서비스니까 사용자의 이전 맥락을 기억해야 한다.”이런 기능은 GPT API만으로는 만들기 어렵기 때문에 LangChain이 등장하게 되었다.LangChain은 LLM을 기반으로 실질적인 애플리케이션을 만들 수 있게 해주는 프레임워크이다. 단순히 챗봇을 넘어서 “지능형 도구”를 만들기 위한 표..
Large Language Model(LLM)은 뛰어난 생성 능력을 가졌지만 근거가 없는 내용을 “그럴듯하게” 만들어내는 Hallucination(환각) 문제가 존재한다.이 문제를 해결하고 기업 문서, PDF, 내부 지식 기반의 정확한 답변을 만들기 위한 기술이 있는데, 바로 RAG(Retrieval-Augmented Generation)이다. 1️⃣ RAG란?말 그대로 Retrieval(검색) + Generation(생성) 의 조합으로 LLM이 “모르는 내용”을 추측해 말하는 대신 외부 지식베이스(문서, Database, PDF, 소스코드 등)에서 관련 정보를 검색하여 그 실제 내용을 LLM 입력(prompt)에 추가해 답변을 생성하는 구조이다.LLM이 답변을 생성할 때,관련 정보를 외부 지식 베이스에..
Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference, Benoit Jacob et al., 2017 을 읽고 요약, 정리한 내용입니다. ◼️ Abstract모바일·엣지 기기에서 모델을 정수 연산만으로 추론하도록 만드는 8비트 양자화 스킴과, 그에 맞춘 양자화-인지 학습(시뮬레이티드/페이크 양자화) 절차를 제안한다.정확도를 최대한 유지하면서도 지연 시간과 전력/메모리를 크게 줄이는 것이 목표이다.MobileNet 계열에서도 정확도–지연시간 균형이 개선됨을 ImageNet/COCO에서 보여준다.모든 연산을 float 대신 int8(+ 일부 int32 누적)로 바꿔도 정확도를 거의 잃지 않게, 학..
코드를 동작시키는데 c++ 버전이 낮아서 실행이 되지 않느다는 오류를 마주했었다.이를 해결하기 위해 c++ 버전을 업그레이드 하는 방법을 찾다가 간단하게 할 수 있는 방법을 알게 되었다. set(CMAKE_CXX_STANDARD 20) # 또는 17set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_CXX_EXTENSIONS OFF)if (MSVC) add_compile_options(/Zc:__cplusplus)endif()cmake_minimum_required(VERSION 3.20)# include pathinclude_directories(${CMAKE_SOURCE_DIR}/include) CMAKE_CXX_STANDARD 20 : C++20 표준 ..
https://github.com/microsoft/onnxruntime/releases Releases · microsoft/onnxruntimeONNX Runtime: cross-platform, high performance ML inferencing and training accelerator - microsoft/onnxruntimegithub.com→ 위 페이지에서 onnxruntime-win-x64-gpu-1.22.1.zip 해당 파일을 다운 받은 후 압축을 해제 해 준다.window 환경이면서 gpu를 사용하기 위해 onnxruntime-win-x64-gpu로 다운c++ 컴파일러 버전이 19.44.35216이고 cuda가 12.1라서 1.22.1 다운→ 압축 해제 한 경로를 빌드 시 설정 ..
https://opencv.org/ HomeOpenCV provides a real-time optimized Computer Vision library, tools, and hardware. It also supports model execution for Machine Learning (ML) and Artificial Intelligence (AI).opencv.org위 공식 사이트에서 Library-Releases에서 원하는 버전으로 다운로드를 해 준다. 다운로드 받은 설치 파일을 실행 하면 설치가 진행이 되는데 설치가 안료되면 opencv 폴더가 생성되어 있으며 이 폴더를 cpp project 폴더 내 CMakeLists.txt 파일 내에 추가해서 연동 해 주면 cpp project 내에서 사용..
vscode에서 f5 버튼을 눌러서 c++을 디버깅 하려면 몇가지 설정을 해 줘야 한다. 왼쪽 상단의 Run에서 Add Configuration을 클릭 해 c++(windows)를 선택하면 launch.json 파일이 생성될텐데 해당 파일에 아래 내용을 추가 해 주면 된다.기존에 python 디버깅을 하면서 launch.json 파일이 이미 있는 경우 configurations에 아래 내용을 추가 해 주면 된다.{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.mi..
https://iambeginnerdeveloper.tistory.com/330 C++ | Window cpp VScode 설치, Window C++(MinGW+VScode)설치윈도우에서 vscode를 쓰고 있던 중이라 visual studio가 아닌 vscode에서 c++을 설치하고 사용할 수 있도록 환경 셋팅을 해 보았다. 1. 컴파일러 설치c++을 사용하기 위해 여러 컴파일러를 설치할 수 있지iambeginnerdeveloper.tistory.com윈도우에서 cpp로 onnx runtime을 사용하려고 지난번에 MinGW를 컴파일러로 설치했는데 이 컴파일러는 onnx runtime 사용이 안된다고 한다..! ORT 공식 바이너리는 MSVC ABI 기준이라 MinGW와 직접 호환이 불안정하기 때문이다..