(508,1,'2025-10-22 21:25:52','2025-10-22 12:25:52','<!-- wp:paragraph -->\n<p>Ubuntu 24.04 및 Nvidia A100 환경에서 NVIDIA 드라이버, CUDA 12.9 및 AI 환경 설정 종합 가이드</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Nvidia A100 그래픽 카드가 장착된 Ubuntu 24.04 워크스테이션에 NVIDIA 드라이버 및 CUDA Toolkit 12.9를 설치하는 체계적인 가이드를 제공합니다. 또한 GPU 가속 워크로드를 위한 Docker 구성 방법을 자세히 설명하고 NVIDIA Inference Microservices (NIM)를 소개합니다. 이 설정은 고급 AI 코딩 및 개발의 기초가 됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">I. 도입</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>인공 지능(AI) 및 머신 러닝(ML) 개발 환경은 강력한 하드웨어와 세심하게 구성된 소프트웨어 스택을 필요로 합니다. NVIDIA Nvidia A100 그래픽 카드는 48GB GDDR6 ECC 메모리와 18,176개의 CUDA 코어를 통해 AI, 렌더링 및 고성능 컴퓨팅 작업에 탁월한 성능을 제공합니다. Ubuntu 24.04 LTS는 이러한 까다로운 워크로드를 위한 안정적이고 널리 채택된 플랫폼 역할을 합니다. 이 가이드는 NVIDIA 드라이버, CUDA Toolkit 버전 12.9 및 필요한 cuDNN 라이브러리를 올바르게 설치하여 안정적인 AI 개발 환경을 구축하는 데 중점을 둡니다. 또한 Docker 컨테이너 내에서 GPU 가속을 활용하는 일반적인 요구 사항을 해결하고 NVIDIA NIM을 사용하여 모델을 배포하는 초기 단계를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>여기에 설명된 절차는 호환성을 보장하고 최신 안정 소프트웨어 버전에 대한 액세스를 위해 공식 NVIDIA 리포지토리를 사용하는 것을 우선시합니다. 각 주요 설치 단계에는 각 구성 요소의 성공적인 설정을 확인하기 위한 검증 절차가 함께 제공됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">II. 시스템 요구 사항 및 초기 점검</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설치 프로세스를 시작하기 전에 시스템이 필요한 하드웨어 및 소프트웨어 요구 사항을 충족하고 기존 환경이 준비되었는지 확인하는 것이 중요합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. 하드웨어 요구 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. 소프트웨어 요구 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>운영 체제:</strong> Ubuntu 24.04 LTS (Noble Numbat) x86_64. Nvidia A100 는 Ubuntu 24.04 LTS에서 테스트되었습니다. CUDA 12.9도 Ubuntu 24.04를 지원합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커널 헤더:</strong> 드라이버 설치에 필요합니다. 현재 실행 중인 커널과 일치해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>gcc 컴파일러:</strong> CUDA 샘플 및 애플리케이션 컴파일에 필요합니다. Ubuntu 24.04에는 일반적으로 호환되는 버전이 포함되어 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot:</strong> 시스템의 UEFI/BIOS에서 Secure Boot가 활성화된 경우 드라이버 설치 중에 추가 단계(MOK 등록)가 필요합니다. 설치 프로세스를 위해 Secure Boot를 일시적으로 비활성화하는 것이 더 간단한 경우가 많지만, 일부 가이드에서는 키 등록 방법을 제안합니다. 이 가이드는 Secure Boot가 활성화되어 있을 수 있다고 가정하며 MOK 등록이 요청될 수 있는 시점을 명시합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. 설치 전 시스템 점검 및 업데이트</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>GPU 감지 확인:</strong> 시스템이 Nvidia A100 를 인식하는지 확인합니다<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>lspci | grep -i nvidia</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>출력에 NVIDIA 그래픽 카드가 표시되어야 합니다. 그렇지 않은 경우 물리적 설치 및 BIOS 설정을 확인하십시오. Nvidia A100의 장치 ID가 출력에 나타날 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 패키지 업데이트:</strong> 최신 상태의 시스템으로 시작하는 것이 좋습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt update sudo apt upgrade -y</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커널 헤더 및 개발 도구 설치:</strong> 이는 드라이버 설치 중 커널 모듈 빌드에 필수적입니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt install linux-headers-$(uname -r) build-essential</code> <code>build-essential</code> </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>패키지에는 <code>gcc</code>, <code>g++</code>, <code>make</code> 및 기타 필요한 도구가 포함되어 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>충돌하는 드라이버 처리 (Nouveau):</strong> 오픈 소스 Nouveau 드라이버는 NVIDIA의 독점 드라이버와 충돌할 수 있습니다. 블랙리스트에 추가하는 것이 종종 권장됩니다. 최신 NVIDIA 설치 프로그램이 이를 처리하지만 명시적인 블랙리스트 추가는 문제를 예방할 수 있습니다. <code>/etc/modprobe.d/blacklist-nouveau.conf</code> 파일을 만듭니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo nano /etc/modprobe.d/blacklist-nouveau.conf</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다음 줄을 추가합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>blacklist nouveau options nouveau modeset=0</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>파일을 저장한 다음 initramfs를 업데이트하고 재부팅합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo update-initramfs -u </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>sudo reboot</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>재부팅 후 드라이버 설치를 진행합니다. 이 단계는 NVIDIA 독점 드라이버를 위한 더 깨끗한 환경을 보장하여 설치 실패 또는 불안정한 그래픽 환경으로 이어질 수 있는 잠재적인 충돌을 최소화하는 데 도움이 됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">III. Ubuntu 24.04에서 Nvidia A100 용 NVIDIA 드라이버 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>올바른 NVIDIA 드라이버를 설치하는 것은 AI 워크로드를 위해 Nvidia A100 을 활용하기 위한 기본 단계입니다. 권장되는 방법은 공식 NVIDIA CUDA 네트워크 리포지토리를 사용하는 것입니다. 이는 드라이버와 CUDA Toolkit 간의 최적의 호환성을 보장하기 때문입니다. 이 접근 방식은 NVIDIA가 소프트웨어 스택을 위해 이러한 리포지토리를 관리하므로 일반적인 Ubuntu 드라이버나 타사 PPA를 사용하는 것보다 전문 AI/ML 개발에 일반적으로 더 강력합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. NVIDIA CUDA 네트워크 리포지토리 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA CUDA 리포지토리는 드라이버, CUDA Toolkit 및 기타 관련 소프트웨어에 대한 액세스를 제공합니다. Ubuntu 24.04의 경우 리포지토리를 다음과 같이 구성해야 합니다. 이 명령은 네트워크 리포지토리 설정에 대한 NVIDIA 문서에 제공된 구조를 기반으로 하며 Ubuntu 24.04에 맞게 조정되었으며, 전용 패키지 목록이 있는 것으로 확인되었습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA CUDA 리포지토리 키 및 리포지토리 소스 추가:</strong><code>cuda-keyring</code> 패키지는 NVIDIA 패키지 서명에 사용되는 GPG 키를 설치하여 패키지의 신뢰성을 보장합니다. Bash 이 시퀀스는 먼저 키링 패키지를 다운로드하고 <code>dpkg</code>를 사용하여 설치한 다음(NVIDIA GPG 키 등록) 새로 추가된 NVIDIA 리포지토리의 패키지를 포함하도록 로컬 <code>apt</code> 패키지 목록을 업데이트합니다. `# cuda-keyring 패키지 다운로드 및 설치 참고: 정확한 URL은 변경될 수 있습니다. 항상 Ubuntu 24.04용 최신 NVIDIA CUDA 다운로드 페이지를 참조하십시오. 다음 구조가 일반적입니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>wget <a href=\"https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb\">https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb</a> sudo dpkg -i cuda-keyring_1.1-1_all.deb </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>sudo apt-get update </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다운로드한 deb 파일 정리 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>rm cuda-keyring_1.1-1_all.deb`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NVIDIA 드라이버 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>리포지토리가 구성되면 NVIDIA 드라이버를 설치할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>cuda-drivers</code> 메타 패키지 설치:</strong> 이 메타 패키지는 리포지토리에서 사용 가능한 CUDA 브랜치와 호환되는 최신 적절한 드라이버 시리즈를 설치하도록 설계되었습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get install cuda-drivers</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>NVIDIA NIM 문서는 최적의 성능을 위해 드라이버 버전 550 이상을 권장합니다. CUDA 12.x 리포지토리 브랜치의 <code>cuda-drivers</code> 패키지는 적합한 버전을 제공해야 합니다. NVIDIA의 오픈 커널 모듈을 사용하는 드라이버 버전 560.35.03으로 RTX 6000 Ada를 사용하여 Ubuntu 24.04에서 테스트한 내용이 언급되었습니다. <code>cuda-drivers</code> 패키지는 종종 설치 중에 옵션을 제공하거나 감지된 하드웨어에 대해 독점 또는 오픈 커널 모듈을 모두 사용할 수 있는 경우 둘 중 하나를 사용하도록 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 재부팅:</strong> 새 커널 모듈이 로드되고 드라이버가 활성화되려면 재부팅이 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo reboot</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot 참고:</strong> Secure Boot가 활성화된 경우 시스템은 재부팅 프로세스 중에 MOK(Machine Owner Key) 등록을 요청할 가능성이 높습니다. 화면의 지시에 따라 NVIDIA 드라이버용 키를 등록하십시오. 여기에는 일반적으로 \"Enroll MOK\"를 선택하고 확인한 다음 드라이버 사전 설치 단계(DKMS에서 요청한 경우)에서 설정한 암호를 입력하는 과정이 포함됩니다. MOK를 등록하지 않으면 NVIDIA 드라이버가 로드되지 않습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. 드라이버 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>시스템이 재부팅된 후 NVIDIA 드라이버가 올바르게 설치되었고 RTX 6000 Ada가 인식되는지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>nvidia-smi</code> 실행:</strong> 이 명령줄 유틸리티는 설치된 NVIDIA 드라이버 및 GPU에 대한 정보를 제공합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>nvidia-smi</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>성공적인 출력은 다음을 표시합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>드라이버 버전:</strong> 설치된 NVIDIA 드라이버의 버전입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA 버전:</strong> 설치된 드라이버에서 지원하는 <em>최대 CUDA 버전</em>을 나타냅니다. 이는 아직 시스템에 설치된 CUDA Toolkit의 버전이 아니라 드라이버의 호환성 수준이라는 점을 이해하는 것이 중요합니다. 실제 CUDA Toolkit은 별도의 설치입니다. 사용자가 이 값을 활성 툴킷 버전으로 잘못 해석하는 경우가 많으므로 이 구분이 중요합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 이름:</strong> \"NVIDIA RTX 6000 Ada Generation\"이 표시되어야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 메모리:</strong> 총 메모리, 할당된 메모리 및 사용 가능한 메모리 (예: RTX 6000 Ada의 경우 총 48GB).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>GPU 사용률, 온도 및 실행 중인 프로세스(있는 경우)와 같은 기타 세부 정보.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 드라이버 설치 명령을 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>예상 결과/참고</th></tr></thead><tbody><tr><td>1. NVIDIA 리포지토리 키 및 소스 추가</td><td><code>wget &lt;https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb</code>&gt; &lt;br&gt; <code>sudo dpkg -i cuda-keyring_1.1-1_all.deb</code> &lt;br&gt; <code>sudo apt-get update</code> &lt;br&gt; <code>rm cuda-keyring_1.1-1_all.deb</code></td><td><code>apt</code> 소스가 NVIDIA 리포지토리로 업데이트되었습니다.</td></tr><tr><td>2. NVIDIA 드라이버 설치</td><td><code>sudo apt-get install cuda-drivers</code></td><td>리포지토리에서 최신 호환 NVIDIA 드라이버가 설치되었습니다.</td></tr><tr><td>3. 시스템 재부팅</td><td><code>sudo reboot</code></td><td>시스템이 재부팅됩니다. Secure Boot가 활성화된 경우 MOK 등록이 필요할 수 있습니다.</td></tr><tr><td>4. 드라이버 설치 확인</td><td><code>nvidia-smi</code></td><td>드라이버 버전, CUDA 호환성 버전 및 RTX 6000 Ada GPU 세부 정보를 표시합니다. 드라이버가 로드되어 작동하는지 확인합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-smi</code>가 실패하거나 GPU를 표시하지 않으면 문제 해결 섹션을 참조하십시오.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">IV. Ubuntu 24.04에 CUDA Toolkit 12.9 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA 드라이버가 올바르게 설치되고 확인되면 다음 단계는 CUDA Toolkit 버전 12.9를 설치하는 것입니다. CUDA Toolkit은 컴파일러, 라이브러리 및 도구를 포함하여 GPU 가속 애플리케이션을 만들기 위한 개발 환경을 제공합니다. 이전 섹션에서 구성한 NVIDIA 네트워크 리포지토리가 이 설치에 사용되며, Ubuntu 24.04 및 CUDA 12.9용 패키지를 특별히 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. CUDA Toolkit 12.9 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>CUDA Toolkit 패키지 설치:</strong> 개발 환경의 예측 가능성을 보장하기 위해 특정 버전의 CUDA Toolkit을 설치하는 것이 좋습니다. <code>cuda-toolkit-12-9</code> 패키지(또는 <code>cuda-12-9</code>와 유사한 이름의 메타 패키지)는 12.9 버전을 대상으로 합니다. 명시적인 버전을 사용하는 것이 일반적인 <code>sudo apt-get install cuda</code>보다 선호됩니다. 후자는 리포지토리 기본값이 변경될 경우 다른 버전을 설치할 수 있기 때문입니다. Bash 이 명령은 컴파일러(<code>nvcc</code>), 라이브러리 및 헤더를 포함한 CUDA Toolkit 12.9를 다운로드하고 설치합니다. Ubuntu 24.04 x86_64용 NVIDIA 리포지토리에는 CUDA 12.9용 특정 패키지가 나열되어 있어 이 방법을 통해 사용 가능함을 확인합니다. Ubuntu 24.04 기반 컨테이너에 NVIDIA CUDA 12.9.0이 존재한다는 점도 간접적인 지원을 나타냅니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get install cuda-toolkit-12-9</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. 환경 변수 설정 (설치 후 필수)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>시스템 및 개발 도구가 CUDA Toolkit 바이너리 및 라이브러리를 찾을 수 있도록 <code>PATH</code> 및 <code>LD_LIBRARY_PATH</code> 환경 변수를 업데이트해야 합니다. 이러한 변경 사항은 일반적으로 지속성을 위해 사용자의 <code>~/.bashrc</code> 파일에 추가됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>~/.bashrc</code>에 CUDA 경로 추가</strong>: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo \'export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}}\' &gt;&gt; ~/.bashrc echo \'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\' &gt;&gt; ~/.bashrc</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>현재 셸 세션에 변경 사항 적용: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>source ~/.bashrc</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>환경 변수 확인:</strong> 경로가 올바르게 추가되었는지 확인합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>출력에는 <code>PATH</code>에 <code>/usr/local/cuda-12.9/bin</code>이, <code>LD_LIBRARY_PATH</code>에 <code>/usr/local/cuda-12.9/lib64</code>가 표시되어야 합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo $PATH echo $LD_LIBRARY_PATH</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. CUDA Toolkit 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>철저한 확인을 통해 툴킷이 올바르게 설치되었고 GPU와 통신할 수 있는지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>nvcc</code> 버전 확인:</strong> NVIDIA CUDA 컴파일러(<code>nvcc</code>)는 툴킷의 핵심 구성 요소입니다. 해당 버전은 설치된 툴킷과 일치해야 합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>nvcc --version</code> 출력에는 \"Cuda compilation tools, release 12.9\"를 포함한 <code>nvcc</code>에 대한 정보가 표시되어야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA 샘플 컴파일 및 실행: &lt;이 부분은 실패&gt;</strong> NVIDIA는 툴킷의 기능을 테스트하기 위한 CUDA 샘플을 제공합니다. 이러한 샘플은 이제 GitHub에서 호스팅되며 일반적으로 툴킷 패키지와 함께 기본적으로 설치되지 않습니다.<ul><li>CUDA 샘플 리포지토리 복제:</li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>git</code>이 설치되어 있지 않으면 <code>sudo apt install git</code> 으로 설치합니다. </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>git clone &lt;https://github.com/NVIDIA/cuda-samples.git&gt; </code></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>cd cuda-samples</code><strong><code>deviceQuery</code> </strong></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><strong>빌드 및 실행:</strong><code>deviceQuery</code> 샘플은 CUDA 지원 장치와 해당 속성을 열거합니다.  </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>cd Samples/1_Utilities/deviceQuery </code></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>make</code></li></ul>./deviceQuery <code>성공적으로 실행되면 NVIDIA RTX 6000 Ada에 대한 자세한 정보가 표시되고 `Result = PASS`로 끝납니다. 이는 CUDA 런타임이 GPU를 올바르게 식별하고 상호 작용할 수 있음을 확인합니다. 샘플이 GitHub로 마이그레이션됨에 따라 개발자는 이제 이러한 예제를 적극적으로 가져와야 하며, 이는 샘플이 종종 로컬 설치 경로에 포함되었던 이전 CUDA Toolkit 배포판과 달라진 점입니다.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 CUDA Toolkit 12.9 설치 및 확인 단계를 간략하게 설명합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>목적/예상 결과</th></tr></thead><tbody><tr><td>1. CUDA Toolkit 12.9 설치</td><td><code>sudo apt-get install cuda-toolkit-12-9</code></td><td>CUDA Toolkit 12.9 (컴파일러, 라이브러리, 헤더) 설치됨.</td></tr><tr><td>2. 환경 변수 설정</td><td><code>echo \'export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}}\' &gt;&gt; ~/.bashrc</code> &lt;br&gt; <code>echo \'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\' &gt;&gt; ~/.bashrc</code> &lt;br&gt; <code>source ~/.bashrc</code></td><td><code>PATH</code> 및 <code>LD_LIBRARY_PATH</code>가 CUDA 12.9 디렉터리를 포함하도록 업데이트됨.</td></tr><tr><td>3. <code>nvcc</code> 버전 확인</td><td><code>nvcc --version</code></td><td>CUDA Toolkit 버전 표시, 12.9인지 확인.</td></tr><tr><td>4. <code>deviceQuery</code> 샘플 컴파일 및 실행</td><td><code>git clone &lt;https://github.com/NVIDIA/cuda-samples.git</code>&gt;</td><td></td></tr><tr><td><code>cd cuda-samples/Samples/1_Utilities/deviceQuery</code> &lt;br&gt;</td><td></td><td></td></tr><tr><td><code>make</code> &lt;br&gt; <code>./deviceQuery</code></td><td><code>deviceQuery</code>가 성공적으로 컴파일 및 실행되어 RTX 6000 Ada 세부 정보와 <code>Result = PASS</code>를 표시함. 툴킷 기능 및 GPU 통신 확인.</td><td></td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">V. CUDA 12.9용 cuDNN 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA CUDA Deep Neural Network 라이브러리(cuDNN)는 심층 신경망을 위한 GPU 가속 기본 요소 라이브러리입니다. 딥 러닝 프레임워크에서 고성능을 달성하는 데 필수적입니다. Ubuntu 24.04의 CUDA 12.9용 cuDNN은 드라이버 및 CUDA Toolkit에 사용된 것과 동일한 NVIDIA 네트워크 리포지토리에서 설치해야 합니다. 이 방법은 호환성을 보장하고 수동 tarball 방법에 비해 설치를 단순화합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. cuDNN 라이브러리 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Ubuntu 24.04 x86_64용 NVIDIA 리포지토리에는 CUDA 12.9용 특정 빌드를 포함하여 CUDA 12.x와 호환되는 cuDNN 9 패키지가 포함되어 있습니다. 설치에는 런타임 및 개발자 패키지를 가져오는 과정이 포함됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>cuDNN 런타임 및 개발자 라이브러리 설치:</strong> cuDNN의 패키지 이름은 특정할 수 있습니다. 의 목록(예: <code>cudnn9-cuda-12-9_9.10.1.4-1_amd64.deb</code>, <code>libcudnn9-cuda-12_9.10.1.4-1_amd64.deb</code>, <code>libcudnn9-dev-cuda-12_9.10.1.4-1_amd64.deb</code>) 및 일반적인 cuDNN 설치 패턴을 기반으로 다음 명령은 CUDA 12.x용 cuDNN 9를 대상으로 합니다. 설치된 CUDA 버전에 해당하는 메타 패키지를 사용하는 것이 가장 좋습니다. CUDA 12.x의 경우 일반적으로 <code>sudo apt-get -y install cudnn9-cuda-12</code> 명령이 제안됩니다. CUDA 12.9가 설치되어 있으므로 <code>apt</code>는 올바른 종속성을 해결해야 합니다. <code>cudnn9-cuda-12-9</code>와 같은 더 구체적인 메타 패키지를 사용할 수 있고 NVIDIA에서 이 목적을 위해 명확하게 문서화한 경우 더욱 정확할 것입니다.  </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>cuDNN 설치에 <code>apt</code>를 사용하는 것은 수동 방법보다 강력하게 권장됩니다. <code>apt</code>는 파일 배치, 권한 및 종속성을 올바르게 처리하여 더 강력하고 유지 관리 가능한 시스템을 만들기 때문입니다. 사용자가 CUDA 12.8용 cuDNN을 설치하려고 할 때 종속성으로 인해 12.9 패키지가 선호되었던 에서 암시된 버전 불일치와 같은 잠재적인 문제는 설치된 CUDA 12.9에 대한 올바른 메타 패키지를 대상으로 하여 완화됩니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>`# 최신 cuDNN 버전을 볼 수 있도록 패키지 목록 업데이트 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get update </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDA 12.x용 cuDNN 9 런타임 라이브러리 설치 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get install libcudnn9-cuda-12 </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDA 12.x용 cuDNN 9 개발자 라이브러리 설치 (헤더 포함) <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get install libcudnn9-dev-cuda-12`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. cuDNN 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>확인을 통해 cuDNN 라이브러리가 올바르게 설치되고 액세스 가능한지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>설치된 패키지 및 라이브러리/헤더 파일 확인:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>설치된 cuDNN 패키지 나열: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>libcudnn9</code> 및 <code>libcudnn9-dev</code>와 같은 패키지가 표시되어야 합니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>dpkg -l | grep libcudnn</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>헤더 파일 존재 및 버전 확인 (경로는 패키지 세부 정보에 따라 약간 다를 수 있지만 일반적으로 표준 포함 디렉터리에 있음): 기본 헤더 <code>cudnn_version.h</code>에는 버전 매크로가 포함되어 있습니다. <code>apt</code> 설치 후 일반적인 위치는 <code>/usr/include/x86_64-linux-gnu/</code> 내입니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이는 cuDNN 애플리케이션 컴파일에 필요한 헤더 파일이 있는지 확인하고 설치된 cuDNN 버전을 검사할 수 있도록 합니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>`# 버전 헤더 확인 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>ls -l /usr/include/x86_64-linux-gnu/cudnn_version.h </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDNN_MAJOR, CUDNN_MINOR, CUDNN_PATCHLEVEL 정의를 보려면 내용 표시 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>cat /usr/include/x86_64-linux-gnu/cudnn_version.h`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cuDNN 샘플 컴파일 및 실행 (mnistCUDNN):&lt;이 부분 실패&gt;</strong> NVIDIA는 리포지토리의 패키지를 통해 설치할 수 있는 cuDNN 샘플을 제공합니다.<ul><li><strong>cuDNN 샘플 설치:</strong><code>libcudnn9-samples</code> 패키지를 사용할 수 있습니다. </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>sudo apt-get install libcudnn9-samples</code><strong><code>mnistCUDNN</code> </strong></li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><strong>컴파일 및 실행:</strong> 샘플은 일반적으로 <code>/usr/src/cudnn_samples_v9/</code> 또는 유사한 위치에 설치됩니다. 이전 가이드에서는 때때로 <code>$HOME/cudnn_samples_v9/</code>를 참조합니다. 패키지 버전의 위치를 사용해야 합니다. </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>`# mnistCUDNN 샘플 디렉터리로 이동 정확한 경로는 패키지 버전에 따라 다를 수 있으므로 /usr/src/ 확인 </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>cd /usr/src/cudnn_samples_v9/mnistCUDNN </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>샘플 컴파일 </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>sudo make clean &amp;&amp; sudo make </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>(빌드 아티팩트에 대해 /usr/src가 사용자 쓰기 가능하지 않은 경우 sudo가 필요할 수 있음) 또는 샘플 디렉터리를 사용자 쓰기 가능한 위치로 먼저 복사: </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>cp -r /usr/src/cudnn_samples_v9 ~/my_cudnn_samples </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>cd ~/my_cudnn_samples/mnistCUDNN </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>make clean &amp;&amp; make </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>샘플 실행`</li></ul>./mnistCUDNN </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>성공적으로 실행되면 일반적으로 `Test passed!`가 인쇄됩니다. 이는 cuDNN이 설치된 CUDA Toolkit 및 GPU와 올바르게 작동하는지 종합적으로 확인합니다.</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 네트워크 리포지토리를 사용한 cuDNN 설치를 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>목적</th></tr></thead><tbody><tr><td>1. 패키지 목록 업데이트</td><td><code>sudo apt-get update</code></td><td>로컬 패키지 인덱스 새로 고침.</td></tr><tr><td>2. cuDNN 런타임 설치</td><td><code>sudo apt-get install libcudnn9-cuda-12</code></td><td>CUDA 12.x와 호환되는 cuDNN 9 런타임 라이브러리를 설치합니다.</td></tr><tr><td>3. cuDNN 개발자 패키지 설치</td><td><code>sudo apt-get install libcudnn9-dev-cuda-12</code></td><td>CUDA 12.x용 cuDNN 9 헤더 파일 및 개발 라이브러리를 설치합니다.</td></tr><tr><td>4. (선택 사항) cuDNN 샘플 설치</td><td><code>sudo apt-get install libcudnn9-samples</code></td><td>cuDNN 샘플 코드를 설치합니다.</td></tr><tr><td>5. 설치 확인</td><td>`dpkg -l \\</td><td>grep libcudnn<code>&lt;br&gt;</code>cat /usr/include/x86_64-linux-gnu/cudnn_version.h<code>&lt;br&gt; (샘플이 설치된 경우)</code>cd /usr/src/cudnn_samples_v9/mnistCUDNN &amp;&amp; make &amp;&amp;./mnistCUDNN`</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VI. GPU 가속을 위한 Docker 설정</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 컨테이너는 휴대 가능하고 재현 가능한 환경을 만들기 위해 AI 개발에 널리 사용됩니다. Docker 컨테이너가 NVIDIA RTX 6000 Ada GPU에 액세스할 수 있도록 하려면 NVIDIA Container Toolkit을 설치하고 Docker를 올바르게 구성해야 합니다. 이 툴킷은 이전의 <code>nvidia-docker2</code>를 대체하고 보다 모듈화된 접근 방식을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. Docker Engine 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker가 아직 설치되어 있지 않으면 공식 Docker 설명서를 따르십시오. Ubuntu에서의 일반적인 설치는 다음과 같습니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Docker의 <code>apt</code> 리포지토리 설정 (공식 Docker CE에 대해 아직 수행하지 않은 경우):</strong> 가장 최신 명령은 <a href=\"https://docs.docker.com/engine/install/ubuntu/%EB%A5%BC\">https://docs.docker.com/engine/install/ubuntu/를</a> 참조하십시오. 여기에는 일반적으로 Docker의 GPG 키와 리포지토리를 추가하는 과정이 포함됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker Engine 설치</strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**루트가 아닌 사용자로 Docker 관리 (권장):**Bash 그런 다음 로그아웃했다가 다시 로그인하거나 현재 터미널 세션에서 <code>newgrp docker</code>를 실행하여 그룹 변경 사항을 적용합니다. 이렇게 하면 <code>sudo</code> 없이 <code>docker</code> 명령을 실행할 수 있습니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo groupadd docker </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code># 그룹이 아직 존재하지 않는 경우 </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>sudo usermod -aG docker $USER</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NVIDIA Container Toolkit 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Container Toolkit은 Docker가 NVIDIA GPU와 상호 작용하는 데 필요한 구성 요소를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>NVIDIA Container Toolkit 리포지토리 구성:</strong> 다음 명령은 NVIDIA Container Toolkit용 GPG 키와 리포지토리를 추가합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \\\n    sed \'s#deb https://#deb &#91;signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g\' | \\\n    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>툴킷 패키지 설치</strong>:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo apt-get update </code>\n<code>sudo apt-get install -y nvidia-container-toolkit</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. NVIDIA 런타임을 사용하도록 Docker 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 데몬은 NVIDIA 런타임을 인식하도록 구성해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong><code>nvidia-ctk</code>를 사용하여 Docker 구성:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-ctk</code>(NVIDIA Container Toolkit CLI) 유틸리티는 Docker의 <code>daemon.json</code> 파일을 수정합니다. </p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo nvidia-ctk runtime configure --runtime=docker</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p><strong>Docker 데몬 다시 시작:</strong> Docker 서비스를 다시 시작하여 구성 변경 사항을 적용합니다. </p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo systemctl restart docker</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">D. Docker에서 GPU 액세스 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 컨테이너가 GPU에 액세스할 수 있는지 확인하려면 <code>nvidia-smi</code>를 실행하는 테스트 컨테이너를 실행합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>CUDA 기본 컨테이너 실행:</strong> 공식 NVIDIA CUDA 이미지를 사용합니다. CUDA 12.9 설정을 확인하려면 CUDA 12.9가 포함된 이미지가 이상적입니다. NVIDIA는 Docker Hub에 <code>nvidia/cuda</code> 이미지를 제공하고 보다 전문화된 컨테이너를 위해 <code>nvcr.io</code>를 제공합니다. 에서는 CUDA 12.9.0이 포함된 Ubuntu 24.04 기반 컨테이너를 언급하지만 Docker Hub에서 간단한 기본 이미지로 공개적으로 사용할 수 있는지 여부는 다를 수 있습니다. 일반적인 대체 방법은 Ubuntu 22.04와 같은 최신 Ubuntu LTS를 기반으로 하는 CUDA 12.9 이미지입니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>-gpus all</code> 플래그는 Docker에 사용 가능한 모든 GPU를 컨테이너에 액세스할 수 있도록 지시합니다. 설정이 올바르면 이 명령은 지정된 이미지를 가져오고(아직 없는 경우) 컨테이너 내에서 <code>nvidia-smi</code>를 실행합니다. 출력은 호스트의 <code>nvidia-smi</code> 출력과 유사해야 하며 RTX 6000 Ada 및 드라이버 세부 정보를 표시합니다. 이는 NVIDIA Container Toolkit이 올바르게 작동하고 GPU 리소스가 Docker 환경으로 전달되고 있음을 확인합니다. CUDA 12.9 라이브러리가 포함된 컨테이너를 사용하면 이 CUDA 버전에 맞게 빌드된 Docker 내 애플리케이션이 예상대로 작동할 수 있도록 더욱 보장됩니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>`# 사용 가능하고 알려진 경우 Ubuntu 24.04 기반 이미지로 시도 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo docker run --rm --gpus all <a href=\"http://nvcr.io/nvidia/cuda:12.9.0-base-ubuntu24.04\">nvcr.io/nvidia/cuda:12.9.0-base-ubuntu24.04</a> <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>nvidia-smi </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>그렇지 않으면 쉽게 사용할 수 있는 CUDA 12.9 이미지 사용: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>nvidia-smi`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 NVIDIA Container Toolkit 설치를 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>하위 단계</th><th>명령</th><th>참고</th></tr></thead><tbody><tr><td>1. Docker Engine 설치</td><td>1a. Docker 리포지토리 설정</td><td>(공식 Docker 문서 참조)</td><td>공식 Docker CE가 설치되었는지 확인합니다.</td></tr><tr><td></td><td>1b. Docker 패키지 설치</td><td><code>sudo apt-get update</code> <br><br><code>sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></td><td>Docker 구성 요소를 설치합니다.</td></tr><tr><td></td><td>1c. 사용자를 <code>docker</code> 그룹에 추가</td><td><code>sudo usermod -aG docker $USER</code> <br><code>newgrp docker</code> (또는 로그아웃/로그인)</td><td><code>sudo</code> 없이 Docker를 실행할 수 있도록 합니다.</td></tr><tr><td>2. NVIDIA Container Toolkit 설치</td><td>2a. 툴킷 리포지토리 구성</td><td>`curl -fsSL...</td><td>sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list` (전체 명령은 텍스트 참조)</td></tr><tr><td></td><td>2b. 툴킷 패키지 설치</td><td><code>sudo apt-get update</code> <br><br><code>sudo apt-get install -y nvidia-container-toolkit</code></td><td>툴킷을 설치합니다.</td></tr><tr><td>3. Docker 런타임 구성</td><td>3a. <code>nvidia-ctk</code>로 Docker 구성</td><td><code>sudo nvidia-ctk runtime configure --runtime=docker</code></td><td>NVIDIA 런타임을 사용하도록 Docker의 <code>daemon.json</code>을 업데이트합니다.</td></tr><tr><td></td><td>3b. Docker 서비스 다시 시작</td><td><code>sudo systemctl restart docker</code></td><td>런타임 구성 변경 사항을 적용합니다.</td></tr><tr><td>4. GPU 액세스 확인</td><td>4a. 테스트 컨테이너 실행</td><td><code>sudo docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 nvidia-smi</code></td><td>Docker 컨테이너 내에서 GPU에 액세스할 수 있는지 확인합니다. 출력에 RTX 6000 Ada가 표시되어야 합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VII. Nvidia NIM (NVIDIA Inference Microservices) 소개</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Inference Microservices (NIM)는 AI 모델 배포를 단순화하여 확장 가능하고 프로덕션 준비가 된 마이크로서비스로 전환하도록 설계된 사전 빌드되고 최적화된 컨테이너입니다. NIM은 배포 복잡성 감소, 모델별 최적화를 통한 성능 향상, 손쉬운 통합을 위한 표준화된 API와 같은 이점을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. Nvidia NIM의 전제 조건</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NIM을 배포하기 전에 다음 전제 조건이 충족되었는지 확인하십시오:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA GPU:</strong> 충분한 메모리가 있는 NVIDIA GPU가 필요합니다. RTX 6000 Ada는 많은 NIM에 적합합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>운영 체제:</strong> 지원되는 Linux 배포판. <code>glibc &gt;= 2.35</code>가 포함된 Ubuntu 24.04는 호환됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA 드라이버:</strong> 섹션 III에서 완료한 대로 최신 NVIDIA 드라이버를 설치해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker 및 NVIDIA Container Toolkit:</strong> 섹션 VI에 자세히 설명된 대로 설치하고 구성해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA AI Enterprise 라이선스:</strong> LLM 및 기타 모델용 NVIDIA NIM을 자체 호스팅하려면 일반적으로 NVIDIA AI Enterprise 라이선스가 필요합니다. 사용자는 라이선스 조건을 확인하고 사용 가능한 경우 평가판 옵션을 살펴보아야 합니다. 이는 기술적 설정 외에 중요한 고려 사항입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC 계정 및 API 키:</strong> NIM 컨테이너 이미지를 가져오려면 NVIDIA의 NGC 카탈로그에 액세스해야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NIM 설정 단계</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NGC API 키 생성:</strong> NGC 컨테이너 레지스트리로 인증하려면 API 키가 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>NGC 웹사이트(일반적으로 <code>https://org.ngc.nvidia.com/setup/api-keys</code> 또는 <code>https://org.ngc.nvidia.com/setup/personal-keys</code>)로 이동합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>새 API 키를 생성합니다. 키 권한에 대해 \"NGC Catalog\" 서비스(또는 이를 포함하는 더 넓은 범위)가 선택되었는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>생성된 API 키를 복사하여 안전하게 보관합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 키를 환경 변수로 내보내기:</strong> NIM 컨테이너는 이 환경 변수를 사용하여 모델 자산 다운로드를 위해 NGC로 인증합니다.Bash <code>export NGC_API_KEY=\"YOUR_API_KEY_HERE\"</code> <code>\"YOUR_API_KEY_HERE\"</code>를 실제 키로 바꿉니다. 프로덕션 환경의 보안을 위해 이 키를 관리하는 더 안전한 방법(예: Docker 시크릿 또는 버전 제어에 커밋되지 않은 환경 파일)을 고려하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC Docker 레지스트리에 로그인:</strong> API 키를 사용하여 NVIDIA의 컨테이너 레지스트리인 <code>nvcr.io</code>에 로그인합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo \"$NGC_API_KEY\" | sudo docker login nvcr.io --username \'$oauthtoken\' --password-stdin</code> </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용자 이름 <code>$oauthtoken</code>은 API 키가 인증에 사용되고 있음을 나타내는 특수 문자열입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. Nvidia NIM 실행</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설정이 완료되면 NIM 컨테이너를 시작할 수 있습니다. 특정 모델 및 이미지 태그는 다를 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>실행할 NIM 식별 (선택 사항이지만 유익함):</strong> 사용 가능한 NIM은 NVIDIA API 카탈로그(<code>https://build.nvidia.com</code>)를 탐색하거나 NGC CLI 도구(설치된 경우)를 <code>ngc registry image list --format_type csv nvcr.io/nim/*</code>와 같은 명령으로 사용하여 찾을 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시: Llama 3 NIM 시작:</strong> 다음은 예시입니다. <code>MODEL_NIM_PATH</code> 및 <code>NIM_IMAGE_TAG</code>를 NGC 카탈로그에서 원하는 모델의 실제 경로 및 태그로 바꾸십시오.Bash `# 예시: NGC의 실제 모델 경로 및 태그로 바꾸십시오. export MODEL_NIM_PATH=\"meta/llama3-8b-instruct\" export NIM_IMAGE_TAG=\"1.0.0\" # 예시 태그, 최신 버전은 NGC 확인 export NIM_IMAGE_NAME=\"<a href=\"http://nvcr.io/nim/$%7BMODEL_NIM_PATH%7D:$%7BNIM_IMAGE_TAG%7D\">nvcr.io/nim/${MODEL_NIM_PATH}:${NIM_IMAGE_TAG}</a>\" export LOCAL_NIM_CACHE=\"$HOME/.cache/nim\" # 모델 아티팩트용 로컬 캐시 mkdir -p \"$LOCAL_NIM_CACHE\" export CONTAINER_NAME=\"nim_llama3_8b_instruct\" sudo docker run -it --rm --name ${CONTAINER_NAME} \\ --gpus all \\ --runtime=nvidia \\ -e NGC_API_KEY \\ -v \"${LOCAL_NIM_CACHE}:/opt/nim/.cache\" \\ -u $(id -u):$(id -g) \\ -p 8000:8000 \\ \"${NIM_IMAGE_NAME}\"` 주요 Docker 실행 매개변수 설명 :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>-gpus all</code>: 사용 가능한 모든 GPU를 컨테이너에 노출합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>-runtime=nvidia</code>: NVIDIA 컨테이너 런타임을 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>e NGC_API_KEY</code>: 모델 다운로드를 위해 NGC API 키를 컨테이너에 전달합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>v \"${LOCAL_NIM_CACHE}:/opt/nim/.cache\"</code>: 다운로드한 모델 가중치 및 아티팩트용 캐시로 로컬 디렉터리를 마운트하여 후속 실행 시 재다운로드를 방지합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>u $(id -u):$(id -g)</code>: 마운트된 캐시와의 권한 문제를 방지하기 위해 현재 사용자의 ID 및 그룹 ID로 컨테이너를 실행합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>p 8000:8000</code>: 호스트의 포트 8000을 NIM 서비스가 일반적으로 수신 대기하는 컨테이너의 포트 8000에 매핑합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>${NIM_IMAGE_NAME}</code>: <code>nvcr.io</code>의 NIM 컨테이너 이미지 전체 이름 및 태그입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">D. NIM과 상호 작용</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NIM 컨테이너가 실행되면 모델을 다운로드하고(아직 캐시되지 않은 경우) 추론 서버를 시작합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>서버 준비 대기:</strong> 컨테이너 로그(<code>sudo docker logs -f ${CONTAINER_NAME}</code>)에서 서버가 준비되었음을 나타내는 메시지(예: \"NIM server is ready\" 또는 유사 메시지)를 모니터링합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**상태 엔드포인트 확인:**Bash 성공적인 응답(예: 상태 \"ready\"인 HTTP 200)은 서버가 작동 중임을 나타냅니다. <code>curl &lt;http://localhost:8000/v1/health/ready</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**NIM에서 제공하는 모델 나열:**Bash 그러면 이 특정 NIM 인스턴스에서 제공하는 모델이 표시됩니다. <code>curl &lt;http://localhost:8000/v1/models</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>추론 요청 보내기:</strong> LLM NIM의 경우 API는 종종 OpenAI와 호환됩니다. 채팅 완료 모델 예시 : Bash 많은 LLM에 OpenAI 호환 API를 사용하면 개발자가 기존 클라이언트 라이브러리를 종종 활용할 수 있으므로 통합이 단순화됩니다. <code>curl -X POST &lt;http://localhost:8000/v1/chat/completions&gt; \\\\ -H \"Content-Type: application/json\" \\\\ -H \"Authorization: Bearer YOUR_NGC_API_KEY\" \\\\ -d \'{ \"model\": \"meta/llama3-8b-instruct\", // v1/models 출력의 모델 이름 사용 \"messages\":, \"temperature\": 0.7, \"max_tokens\": 100 }\'</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">E. NIM 컨테이너 중지</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>sudo docker stop ${CONTAINER_NAME}</code></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 NVIDIA NIM의 주요 Docker 실행 매개변수를 강조 표시합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>매개변수</th><th>예시 값</th><th>목적</th></tr></thead><tbody><tr><td><code>--gpus all</code></td><td><code>all</code></td><td>모든 호스트 GPU를 컨테이너에서 사용할 수 있도록 합니다.</td></tr><tr><td><code>--runtime=nvidia</code></td><td><code>nvidia</code></td><td>GPU 액세스를 위한 NVIDIA 컨테이너 런타임을 지정합니다.</td></tr><tr><td><code>-e NGC_API_KEY</code></td><td>(환경 변수 값)</td><td>NGC에서 모델/자산 다운로드 인증을 위해 NGC API 키를 컨테이너에 전달합니다.</td></tr><tr><td><code>-v LOCAL_NIM_CACHE:/opt/nim/.cache</code></td><td><code>\"$HOME/.cache/nim:/opt/nim/.cache\"</code></td><td>다운로드한 모델을 유지하고 재다운로드를 방지하기 위해 컨테이너 내 캐시로 호스트 디렉터리를 마운트합니다.</td></tr><tr><td><code>-p HOST_PORT:CONTAINER_PORT</code></td><td><code>8000:8000</code></td><td>호스트의 포트를 NIM 서비스가 수신 대기하는 컨테이너 내부의 포트에 매핑합니다.</td></tr><tr><td><code>NIM_IMAGE_NAME</code></td><td><code>nvcr.io/nim/meta/llama3-8b-instruct:1.0.0</code></td><td>실행할 특정 NIM의 전체 Docker 이미지 이름 및 태그입니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VIII. (선택 사항) CUDA 12.9를 지원하는 AI 프레임워크 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>드라이버, CUDA Toolkit, cuDNN 및 Docker를 설정한 후 개발자는 일반적으로 PyTorch 또는 TensorFlow와 같은 AI 프레임워크를 설치합니다. 이는 종속성을 효과적으로 관리하기 위해 일반적으로 Python 가상 환경 내에서 <code>pip</code>를 사용하여 설치됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>시스템의 NVIDIA 드라이버는 CUDA 12.9와 호환되고 CUDA Toolkit 12.9가 설치되어 있지만, AI 프레임워크용 사전 컴파일된 <code>pip</code> 패키지는 약간 이전 CUDA 버전(예: CUDA 12.1, 12.3 또는 12.8)에 대해 빌드될 수 있다는 점에 유의해야 합니다. 이러한 패키지는 일반적으로 순방향 호환되며 드라이버의 호환성으로 인해 올바르게 실행되지만 프레임워크 자체는 핵심 작업을 위해 컴파일된 CUDA 버전을 활용합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. PyTorch</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>PyTorch는 종종 최신 CUDA 버전과 호환되는 <code>pip</code> 휠을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>**Python 가상 환경 생성 및 활성화:**Bash <code>python3 -m venv ~/pytorch_env source ~/pytorch_env/bin/activate</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>PyTorch 설치:</strong> 최신 명령은 공식 PyTorch 웹사이트(<a href=\"https://pytorch.org/get-started/locally/\">https://pytorch.org/get-started/locally/</a>)를 참조하십시오. CUDA 12.x의 경우 다음과 유사한 명령이 일반적입니다. 최근 정보에 따르면 Linux용 <code>cu128</code>(CUDA 12.8) 휠이 포함된 PyTorch 2.7을 사용할 수 있으며 CUDA 12.9 환경과 호환되어야 합니다. 특정 <code>cu129</code> 휠을 사용할 수 있게 되면 해당 휠이 선호됩니다. 그렇지 않으면 <code>cu121</code> 또는 <code>cu128</code>이 일반적인 선택입니다. Bash*(설치 시점에 PyTorch에서 CUDA 12.9에 대해 더 직접적이거나 최신 호환 휠(예: <code>cu129</code> 또는 <code>cu121</code>)을 권장하는 경우 <code>cu128</code>을 조정하십시오).* <code>pip3 install torch torchvision torchaudio --index-url &lt;https://download.pytorch.org/whl/cu128</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**PyTorch 설치 확인:**Python Python 파일(예: <code>verify_pytorch.py</code>)로 저장하고 <code>python verify_pytorch.py</code>를 실행합니다. <code>torch.cuda.is_available()</code>는 <code>True</code>를 반환해야 합니다. <code>import torch print(f\"PyTorch Version: {torch.__version__}\") print(f\"CUDA Available: {torch.cuda.is_available()}\") if torch.cuda.is_available(): print(f\"CUDA Version (PyTorch built with): {torch.version.cuda}\") print(f\"GPU Name: {torch.cuda.get_device_name(0)}\")</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. TensorFlow</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>TensorFlow는 Python 환경 내에 호환되는 CUDA 및 cuDNN 라이브러리를 번들로 제공하여 GPU 설정을 단순화하려는 <code>tensorflow[and-cuda]</code> pip 패키지를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Python 가상 환경 생성 및 활성화: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>python3 -m venv ~/tensorflow_env source ~/tensorflow_env/bin/activate</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 지원 TensorFlow 설치:</strong><code>tensorflow[and-cuda]</code> 패키지는 특정 버전의 CUDA 및 cuDNN을 번들로 제공합니다. 예를 들어, 최신 TensorFlow 버전은 CUDA 12.3 및 cuDNN 8.9.7을 번들로 제공할 수 있습니다. 이는 TensorFlow가 시스템에 설치된 CUDA 12.9 및 해당 cuDNN을 직접 사용하지 않고 이러한 번들 라이브러리를 작업에 사용하지만 CUDA 12.9 호환 드라이버에서 실행된다는 의미입니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>pip install -U pip # pip 업그레이드 pip install tensorflow[and-cuda]</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**TensorFlow 설치 확인:**Python <code>import tensorflow as tf print(f\"TensorFlow Version: {tf.__version__}\") gpus = tf.config.list_physical_devices(\'GPU\') if gpus: print(f\"Num GPUs Available: {len(gpus)}\") for gpu in gpus: print(f\"GPU Name: {gpu.name}\") else: print(\"No GPU detected by TensorFlow\")</code> Python 파일(예: <code>verify_tensorflow.py</code>)로 저장하고 <code>python verify_tensorflow.py</code>를 실행합니다. 출력에 RTX 6000 Ada가 나열되어야 합니다. TensorFlow에 대해 시스템 CUDA 12.9와의 정확한 정렬이 엄격하게 필요한 경우 구성 프로세스 중에 CUDA 12.9 및 호환되는 cuDNN 버전을 지정하여 소스에서 TensorFlow를 빌드해야 합니다. 이는 고급 절차이며 TensorFlow 자체에서 해당 특정 CUDA 버전에 연결된 특정 기능이나 최적화가 필요한 경우가 아니면 일반적으로 필요하지 않습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 AI 프레임워크 설치에 대한 빠른 참조를 제공합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>프레임워크</th><th>권장 설치 명령 (CUDA 12.x 호환성용)</th><th>확인 명령 (Python)</th><th>CUDA 12.9 참고 사항</th></tr></thead><tbody><tr><td>PyTorch</td><td><code>pip3 install torch torchvision torchaudio --index-url &lt;https://download.pytorch.org/whl/cu128</code>&gt;</td><td><code>import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda if torch.cuda.is_available() else \"\")</code></td><td>사전 빌드된 휠(예: <code>cu128</code> 또는 <code>cu121</code>)은 일반적으로 CUDA 12.9 드라이버/툴킷과 순방향 호환됩니다. 인쇄된 <code>torch.version.cuda</code>는 PyTorch가 빌드된 CUDA 버전을 보여줍니다.</td></tr><tr><td>TensorFlow</td><td><code>pip install tensorflow[and-cuda]</code></td><td><code>import tensorflow as tf; print(tf.__version__); print(tf.config.list_physical_devices(\'GPU\'))</code></td><td><code>tensorflow[and-cuda]</code> 패키지는 자체 CUDA/cuDNN(예: 최신 TF의 경우 CUDA 12.3/cuDNN 8.9.7)을 번들로 제공합니다. 시스템의 CUDA 12.9를 직접 사용하지 않고 이를 사용하지만 12.9 호환 드라이버에서 실행됩니다. 정확한 12.9 연결을 위해서는 소스에서 빌드하십시오.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">IX. 일반적인 문제 해결</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>신중하게 설치하더라도 문제가 발생할 수 있습니다. 이 섹션에서는 일반적인 문제와 기본 문제 해결 단계를 다룹니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA 드라이버 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>nvidia-smi</code> 명령 실패, GPU가 표시되지 않거나 시스템이 저해상도 디스플레이로 부팅됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Nouveau 충돌:</strong> Nouveau가 블랙리스트에 있는지 확인합니다 (섹션 II.C.4).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot MOK:</strong> Secure Boot가 활성화된 경우 NVIDIA 드라이버의 MOK가 올바르게 등록되지 않았을 수 있습니다. 재부팅하고 MOK 관리 옵션을 찾거나 Secure Boot를 일시적으로 비활성화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>설치 오류:</strong> 드라이버 설치 중 오류에 대해 <code>apt</code> 로그(<code>/var/log/apt/term.log</code>) 및 커널 메시지(<code>dmesg | grep -i nvidia</code>)를 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>드라이버 재설치:</strong> 완전히 새로 설치해야 할 수 있습니다. 재설치하기 전에 기존 NVIDIA 패키지를 제거합니다 (<code>sudo apt purge \'*nvidia*\' &amp;&amp; sudo apt autoremove</code>).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>\"GPU has fallen off the bus\":</strong> 이는 하드웨어 문제(GPU 장착, 전원 공급 장치, PCIe 슬롯), 과열 또는 심각한 드라이버/커널 비호환성을 나타낼 수 있는 심각한 오류입니다. 먼저 물리적 연결을 확인하십시오. 소프트웨어 비호환성인 경우 다른 드라이버 버전(이전 또는 최신 안정 버전)을 시도하면 도움이 될 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA Toolkit 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>nvcc: command not found</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>환경 변수:</strong> <code>PATH</code> 및 <code>LD_LIBRARY_PATH</code>가 올바르게 설정되지 않았거나 현재 터미널 세션에서 <code>~/.bashrc</code> 변경 사항이 적용되지 않았습니다 (섹션 IV.B). <code>echo $PATH</code> 및 <code>echo $LD_LIBRARY_PATH</code>로 확인합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증상:</strong> CUDA 샘플(예: <code>deviceQuery</code>)이 컴파일 또는 실행되지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>드라이버-툴킷 불일치:</strong> 리포지토리 설치는 이를 최소화하지만 드라이버가 CUDA 툴킷 버전을 지원하는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>누락된 종속성:</strong> <code>build-essential</code> 또는 기타 개발 도구가 누락되었을 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>잘못된 툴킷 버전:</strong> <code>nvcc --version</code>이 예상과 다른 버전을 표시합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cuDNN 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> AI 프레임워크 또는 애플리케이션에서 누락된 cuDNN 라이브러리(예: <code>libcudnn.so.9: cannot open shared object file</code>)를 보고합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>설치 미완료:</strong> cuDNN 런타임(<code>libcudnn9-cuda-12</code>) 또는 개발자 패키지(<code>libcudnn9-dev-cuda-12</code>)가 올바르게 설치되지 않았을 수 있습니다. <code>dpkg -l | grep libcudnn</code>으로 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>라이브러리 경로:</strong> <code>LD_LIBRARY_PATH</code>에 cuDNN 라이브러리가 설치된 디렉터리가 포함되어 있지 않을 수 있습니다 (<code>apt</code>는 일반적으로 시스템 라이브러리 경로를 통해 이를 처리하지만). <code>sudo ldconfig -p | grep libcudnn</code>은 동적 링커가 라이브러리를 찾는지 보여줄 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker GPU 액세스 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>docker run --gpus all...</code>이 NVIDIA 런타임 또는 GPU 액세스와 관련된 오류로 실패합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA Container Toolkit:</strong> 설치되지 않았거나 <code>nvidia-ctk runtime configure --runtime=docker</code>가 실행되지 않았거나 구성 후 Docker 데몬이 다시 시작되지 않았습니다 (섹션 VI.C).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker 데몬:</strong> Docker 서비스가 실행 중이고 구성 변경 후 다시 시작되었는지 확인합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증상:</strong> 호스트에서는 <code>nvidia-smi</code>가 작동하지만 GPU 지원 컨테이너 내부에서는 작동하지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Docker의 <code>daemon.json</code>에 있는 NVIDIA 런타임 구성 문제.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>잘못된 <code>-gpus</code> 플래그 사용 또는 호환되지 않는 기본 이미지.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>일반적인 문제 해결 팁:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>시스템 로그 확인:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>dmesg</code>: 커널 링 버퍼, 하드웨어 및 모듈 로드 문제에 유용합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>journalctl -xe</code>: 자세한 시스템 로그, 종종 서비스 오류를 표시합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>/var/log/syslog</code>: 일반 시스템 메시지.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>/var/log/nvidia-installer.log</code>: NVIDIA의 <code>.run</code> 파일을 사용하여 드라이버를 설치한 경우 (여기서는 권장하지 않음).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>재부팅:</strong> 중요한 드라이버 또는 커널 모듈 변경 후에는 종종 재부팅이 필수적입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA 개발자 포럼:</strong> 특정 문제에 대한 도움을 받을 수 있는 귀중한 리소스입니다. 시스템, 설치된 소프트웨어 버전 및 오류 메시지에 대한 자세한 정보를 제공하십시오.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-smi</code>로 드라이버를 확인하고, <code>nvcc</code> 및 샘플로 CUDA를 확인하고, cuDNN을 확인하고, 마지막으로 Docker를 확인하는 체계적인 접근 방식은 문제가 있을 수 있는 부분을 격리하는 데 도움이 됩니다. 특히 CUDA 및 cuDNN의 많은 문제는 잘못된 환경 변수 설정이나 조정된 리포지토리에서 신중하게 설치하지 않은 경우 구성 요소 버전 간의 불일치로 인해 발생합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">X. 결론 및 모범 사례</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이 보고서는 NVIDIA RTX 6000 Ada 그래픽 카드를 갖춘 Ubuntu 24.04 워크스테이션에서 강력한 AI 개발 환경을 구축하는 과정을 자세히 설명했습니다. 공식 NVIDIA 리포지토리를 사용하여 NVIDIA 드라이버, CUDA Toolkit 12.9 및 해당 cuDNN 라이브러리를 체계적으로 설치함으로써 개발자는 안정적이고 고성능의 기반을 확보할 수 있습니다. 또한 NVIDIA Container Toolkit을 사용한 Docker 구성은 휴대 가능하고 재현 가능한 GPU 가속 워크플로를 가능하게 하며, NVIDIA NIM 소개는 간소화된 AI 모델 배포 경로를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>건강한 AI 개발 환경 유지를 위한 주요 모범 사례:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>공식 리포지토리 활용:</strong> 가능하면 NVIDIA의 공식 <code>apt</code> 리포지토리에서 NVIDIA 드라이버, CUDA Toolkit 및 cuDNN을 설치하십시오. 이 방법은 일반적으로 구성 요소 호환성을 보장하고 업데이트를 단순화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>버전 고정 (고려 사항):</strong> 프로덕션 또는 중요한 연구 환경의 경우 <code>apt</code> 기본 설정을 사용하여 드라이버 및 CUDA 구성 요소의 버전을 고정하여 기존 워크플로와 비호환성을 유발할 수 있는 의도하지 않은 업그레이드를 방지하는 것을 고려하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Python 가상 환경:</strong> AI 프로젝트에는 항상 Python 가상 환경(예: <code>venv</code>, <code>conda</code>)을 사용하십시오. 이렇게 하면 종속성을 격리하여 PyTorch 또는 TensorFlow와 같은 라이브러리의 다른 버전이 필요한 프로젝트 간의 충돌을 방지합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>정기적인 문서 참조:</strong> AI 및 GPU 컴퓨팅 환경은 빠르게 발전합니다. 최신 호환성 정보, 기능 및 모범 사례를 위해 CUDA, cuDNN, 드라이버 및 AI 프레임워크에 대한 공식 NVIDIA 문서를 정기적으로 확인하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 사용률 모니터링:</strong> 개발 및 배포 중에 <code>nvidia-smi</code> 또는 NVIDIA Nsight와 같은 도구를 사용하여 GPU 사용률, 메모리 사용량 및 성능을 모니터링하십시오. 이는 병목 현상을 식별하고 GPU 리소스가 효율적으로 사용되고 있는지 확인하는 데 도움이 됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC API 키 보안:</strong> NVIDIA NIM 또는 기타 NGC 리소스를 사용할 때 NGC API 키를 기밀로 유지하고 안전하게 관리하십시오. 스크립트에 키를 하드코딩하거나 버전 제어에 커밋하지 마십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>체계적인 업데이트:</strong> 중요한 워크스테이션에 적용하기 전에 가능하면 스테이징 환경에서 테스트하여 드라이버 및 CUDA 구성 요소 업데이트를 신중하게 계획하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커뮤니티 및 지원:</strong> 문제 해결 및 커뮤니티 지원을 위해 NVIDIA 개발자 포럼과 같은 리소스를 활용하십시오.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>이러한 지침과 제공된 자세한 설치 단계를 따르면 사용자는 Ubuntu 24.04에서 최첨단 AI 코딩 및 연구를 위해 NVIDIA RTX 6000 Ada 워크스테이션의 잠재력을 극대화할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_local\">https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_local</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>CUDA Toolkit Installer</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Installation Instructions:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin\nsudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/12.9.0/local_installers/cuda-repo-ubuntu2404-12-9-local_12.9.0-575.51.03-1_amd64.deb\nsudo dpkg -i cuda-repo-ubuntu2404-12-9-local_12.9.0-575.51.03-1_amd64.deb\nsudo cp /var/cuda-repo-ubuntu2404-12-9-local/cuda-*-keyring.gpg /usr/share/keyrings/\nsudo apt-get update\nsudo apt-get -y install cuda-toolkit-12-9\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>Additional installation options are detailed here.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Driver Installer</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Driver Instructions (choose one option)</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To install the open kernel module flavor:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo apt-get install -y nvidia-open\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>To install the proprietary kernel module flavor:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo apt-get install -y cuda-drivers\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>To switch between NVIDIA Driver kernel module flavors see here.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The CUDA Toolkit contains Open-Source Software. The source code can be found here. The checksums for the installer and patches can be found in Installer Checksums. For further information, see the Installation Guide for Linux and the CUDA Quick Start Guide.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Ubuntu 20.04/22.04/24.04, Debian 12</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To switch from proprietary to open:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># apt install --autoremove --purge nvidia-open\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>￼ To switch from open to proprietary:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># apt install --autoremove --purge cuda-drivers\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">참고자료</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://velog.io/@scuderia/리눅스-24.04-cuda-cudnn-설치\">https://velog.io/@scuderia/리눅스-24.04-cuda-cudnn-설치</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_network\">https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_network</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>nividia driver 설치</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>sudo apt install nvidia-cuda-toolkit</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>llama-cpp-python version available for CUDA 11.7.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>cuda</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.cherryservers.com/blog/install-cuda-ubuntu\">https://www.cherryservers.com/blog/install-cuda-ubuntu</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=22.04&amp;target_type=deb_local\">https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=22.04&amp;target_type=deb_local</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Nvidia NIM</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html\">https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-22-04\">https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-22-04</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>nvidia GPU on Docker</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.howtogeek.com/devops/how-to-use-an-nvidia-gpu-with-docker-containers\">https://www.howtogeek.com/devops/how-to-use-an-nvidia-gpu-with-docker-containers</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.cyberciti.biz/faq/how-to-install-nvidia-driver-on-centos-7-linux\">https://www.cyberciti.biz/faq/how-to-install-nvidia-driver-on-centos-7-linux</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7\">https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->','NVIDIA- GPU 세팅 종합가이드','','inherit','closed','closed','','10-revision-v1','','','2025-10-22 21:25:52','2025-10-22 12:25:52','',10,'https://rndpolicy.org/aidev/?p=508',0,'revision','',0),
(510,1,'2025-10-22 21:27:33','2025-10-22 12:27:33','<!-- wp:paragraph -->\n<p>Ubuntu 24.04 및 Nvidia A100 환경에서 NVIDIA 드라이버, CUDA 12.9 및 AI 환경 설정 종합 가이드</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Nvidia A100 그래픽 카드가 장착된 Ubuntu 24.04 워크스테이션에 NVIDIA 드라이버 및 CUDA Toolkit 12.9를 설치하는 체계적인 가이드를 제공합니다. 또한 GPU 가속 워크로드를 위한 Docker 구성 방법을 자세히 설명하고 NVIDIA Inference Microservices (NIM)를 소개합니다. 이 설정은 고급 AI 코딩 및 개발의 기초가 됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">I. 도입</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>인공 지능(AI) 및 머신 러닝(ML) 개발 환경은 강력한 하드웨어와 세심하게 구성된 소프트웨어 스택을 필요로 합니다. NVIDIA Nvidia A100 그래픽 카드는 48GB GDDR6 ECC 메모리와 18,176개의 CUDA 코어를 통해 AI, 렌더링 및 고성능 컴퓨팅 작업에 탁월한 성능을 제공합니다. Ubuntu 24.04 LTS는 이러한 까다로운 워크로드를 위한 안정적이고 널리 채택된 플랫폼 역할을 합니다. 이 가이드는 NVIDIA 드라이버, CUDA Toolkit 버전 12.9 및 필요한 cuDNN 라이브러리를 올바르게 설치하여 안정적인 AI 개발 환경을 구축하는 데 중점을 둡니다. 또한 Docker 컨테이너 내에서 GPU 가속을 활용하는 일반적인 요구 사항을 해결하고 NVIDIA NIM을 사용하여 모델을 배포하는 초기 단계를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>여기에 설명된 절차는 호환성을 보장하고 최신 안정 소프트웨어 버전에 대한 액세스를 위해 공식 NVIDIA 리포지토리를 사용하는 것을 우선시합니다. 각 주요 설치 단계에는 각 구성 요소의 성공적인 설정을 확인하기 위한 검증 절차가 함께 제공됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">II. 시스템 요구 사항 및 초기 점검</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설치 프로세스를 시작하기 전에 시스템이 필요한 하드웨어 및 소프트웨어 요구 사항을 충족하고 기존 환경이 준비되었는지 확인하는 것이 중요합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. 하드웨어 요구 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. 소프트웨어 요구 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>운영 체제:</strong> Ubuntu 24.04 LTS (Noble Numbat) x86_64. Nvidia A100 는 Ubuntu 24.04 LTS에서 테스트되었습니다. CUDA 12.9도 Ubuntu 24.04를 지원합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커널 헤더:</strong> 드라이버 설치에 필요합니다. 현재 실행 중인 커널과 일치해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>gcc 컴파일러:</strong> CUDA 샘플 및 애플리케이션 컴파일에 필요합니다. Ubuntu 24.04에는 일반적으로 호환되는 버전이 포함되어 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot:</strong> 시스템의 UEFI/BIOS에서 Secure Boot가 활성화된 경우 드라이버 설치 중에 추가 단계(MOK 등록)가 필요합니다. 설치 프로세스를 위해 Secure Boot를 일시적으로 비활성화하는 것이 더 간단한 경우가 많지만, 일부 가이드에서는 키 등록 방법을 제안합니다. 이 가이드는 Secure Boot가 활성화되어 있을 수 있다고 가정하며 MOK 등록이 요청될 수 있는 시점을 명시합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. 설치 전 시스템 점검 및 업데이트</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>GPU 감지 확인:</strong> 시스템이 Nvidia A100 를 인식하는지 확인합니다<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>lspci | grep -i nvidia</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>출력에 NVIDIA 그래픽 카드가 표시되어야 합니다. 그렇지 않은 경우 물리적 설치 및 BIOS 설정을 확인하십시오. Nvidia A100의 장치 ID가 출력에 나타날 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 패키지 업데이트:</strong> 최신 상태의 시스템으로 시작하는 것이 좋습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt update sudo apt upgrade -y</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커널 헤더 및 개발 도구 설치:</strong> 이는 드라이버 설치 중 커널 모듈 빌드에 필수적입니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt install linux-headers-$(uname -r) build-essential</code> <code>build-essential</code> </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>패키지에는 <code>gcc</code>, <code>g++</code>, <code>make</code> 및 기타 필요한 도구가 포함되어 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>충돌하는 드라이버 처리 (Nouveau):</strong> 오픈 소스 Nouveau 드라이버는 NVIDIA의 독점 드라이버와 충돌할 수 있습니다. 블랙리스트에 추가하는 것이 종종 권장됩니다. 최신 NVIDIA 설치 프로그램이 이를 처리하지만 명시적인 블랙리스트 추가는 문제를 예방할 수 있습니다. <code>/etc/modprobe.d/blacklist-nouveau.conf</code> 파일을 만듭니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo nano /etc/modprobe.d/blacklist-nouveau.conf</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다음 줄을 추가합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>blacklist nouveau options nouveau modeset=0</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>파일을 저장한 다음 initramfs를 업데이트하고 재부팅합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo update-initramfs -u </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>sudo reboot</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>재부팅 후 드라이버 설치를 진행합니다. 이 단계는 NVIDIA 독점 드라이버를 위한 더 깨끗한 환경을 보장하여 설치 실패 또는 불안정한 그래픽 환경으로 이어질 수 있는 잠재적인 충돌을 최소화하는 데 도움이 됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">III. Ubuntu 24.04에서 Nvidia A100 용 NVIDIA 드라이버 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>올바른 NVIDIA 드라이버를 설치하는 것은 AI 워크로드를 위해 Nvidia A100 을 활용하기 위한 기본 단계입니다. 권장되는 방법은 공식 NVIDIA CUDA 네트워크 리포지토리를 사용하는 것입니다. 이는 드라이버와 CUDA Toolkit 간의 최적의 호환성을 보장하기 때문입니다. 이 접근 방식은 NVIDIA가 소프트웨어 스택을 위해 이러한 리포지토리를 관리하므로 일반적인 Ubuntu 드라이버나 타사 PPA를 사용하는 것보다 전문 AI/ML 개발에 일반적으로 더 강력합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. NVIDIA CUDA 네트워크 리포지토리 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA CUDA 리포지토리는 드라이버, CUDA Toolkit 및 기타 관련 소프트웨어에 대한 액세스를 제공합니다. Ubuntu 24.04의 경우 리포지토리를 다음과 같이 구성해야 합니다. 이 명령은 네트워크 리포지토리 설정에 대한 NVIDIA 문서에 제공된 구조를 기반으로 하며 Ubuntu 24.04에 맞게 조정되었으며, 전용 패키지 목록이 있는 것으로 확인되었습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA CUDA 리포지토리 키 및 리포지토리 소스 추가:</strong><code>cuda-keyring</code> 패키지는 NVIDIA 패키지 서명에 사용되는 GPG 키를 설치하여 패키지의 신뢰성을 보장합니다. Bash 이 시퀀스는 먼저 키링 패키지를 다운로드하고 <code>dpkg</code>를 사용하여 설치한 다음(NVIDIA GPG 키 등록) 새로 추가된 NVIDIA 리포지토리의 패키지를 포함하도록 로컬 <code>apt</code> 패키지 목록을 업데이트합니다. `# cuda-keyring 패키지 다운로드 및 설치 참고: 정확한 URL은 변경될 수 있습니다. 항상 Ubuntu 24.04용 최신 NVIDIA CUDA 다운로드 페이지를 참조하십시오. 다음 구조가 일반적입니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>wget <a href=\"https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb\">https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb</a> sudo dpkg -i cuda-keyring_1.1-1_all.deb </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>sudo apt-get update </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다운로드한 deb 파일 정리 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>rm cuda-keyring_1.1-1_all.deb`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NVIDIA 드라이버 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>리포지토리가 구성되면 NVIDIA 드라이버를 설치할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>cuda-drivers</code> 메타 패키지 설치:</strong> 이 메타 패키지는 리포지토리에서 사용 가능한 CUDA 브랜치와 호환되는 최신 적절한 드라이버 시리즈를 설치하도록 설계되었습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get install cuda-drivers</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>NVIDIA NIM 문서는 최적의 성능을 위해 드라이버 버전 550 이상을 권장합니다. CUDA 12.x 리포지토리 브랜치의 <code>cuda-drivers</code> 패키지는 적합한 버전을 제공해야 합니다. NVIDIA의 오픈 커널 모듈을 사용하는 드라이버 버전 560.35.03으로 RTX 6000 Ada를 사용하여 Ubuntu 24.04에서 테스트한 내용이 언급되었습니다. <code>cuda-drivers</code> 패키지는 종종 설치 중에 옵션을 제공하거나 감지된 하드웨어에 대해 독점 또는 오픈 커널 모듈을 모두 사용할 수 있는 경우 둘 중 하나를 사용하도록 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 재부팅:</strong> 새 커널 모듈이 로드되고 드라이버가 활성화되려면 재부팅이 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo reboot</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot 참고:</strong> Secure Boot가 활성화된 경우 시스템은 재부팅 프로세스 중에 MOK(Machine Owner Key) 등록을 요청할 가능성이 높습니다. 화면의 지시에 따라 NVIDIA 드라이버용 키를 등록하십시오. 여기에는 일반적으로 \"Enroll MOK\"를 선택하고 확인한 다음 드라이버 사전 설치 단계(DKMS에서 요청한 경우)에서 설정한 암호를 입력하는 과정이 포함됩니다. MOK를 등록하지 않으면 NVIDIA 드라이버가 로드되지 않습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. 드라이버 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>시스템이 재부팅된 후 NVIDIA 드라이버가 올바르게 설치되었고 Nvidia A100 이 인식되는지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>nvidia-smi</code> 실행:</strong> 이 명령줄 유틸리티는 설치된 NVIDIA 드라이버 및 GPU에 대한 정보를 제공합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>nvidia-smi</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>성공적인 출력은 다음을 표시합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>드라이버 버전:</strong> 설치된 NVIDIA 드라이버의 버전입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA 버전:</strong> 설치된 드라이버에서 지원하는 <em>최대 CUDA 버전</em>을 나타냅니다. 이는 아직 시스템에 설치된 CUDA Toolkit의 버전이 아니라 드라이버의 호환성 수준이라는 점을 이해하는 것이 중요합니다. 실제 CUDA Toolkit은 별도의 설치입니다. 사용자가 이 값을 활성 툴킷 버전으로 잘못 해석하는 경우가 많으므로 이 구분이 중요합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 이름:</strong> \"NVIDIA RTX 6000 Ada Generation\"이 표시되어야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 메모리:</strong> 총 메모리, 할당된 메모리 및 사용 가능한 메모리 (예: RTX 6000 Ada의 경우 총 48GB).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>GPU 사용률, 온도 및 실행 중인 프로세스(있는 경우)와 같은 기타 세부 정보.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 드라이버 설치 명령을 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>예상 결과/참고</th></tr></thead><tbody><tr><td>1. NVIDIA 리포지토리 키 및 소스 추가</td><td><code>wget &lt;https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb</code>&gt; &lt;br&gt; <code>sudo dpkg -i cuda-keyring_1.1-1_all.deb</code> &lt;br&gt; <code>sudo apt-get update</code> &lt;br&gt; <code>rm cuda-keyring_1.1-1_all.deb</code></td><td><code>apt</code> 소스가 NVIDIA 리포지토리로 업데이트되었습니다.</td></tr><tr><td>2. NVIDIA 드라이버 설치</td><td><code>sudo apt-get install cuda-drivers</code></td><td>리포지토리에서 최신 호환 NVIDIA 드라이버가 설치되었습니다.</td></tr><tr><td>3. 시스템 재부팅</td><td><code>sudo reboot</code></td><td>시스템이 재부팅됩니다. Secure Boot가 활성화된 경우 MOK 등록이 필요할 수 있습니다.</td></tr><tr><td>4. 드라이버 설치 확인</td><td><code>nvidia-smi</code></td><td>드라이버 버전, CUDA 호환성 버전 및 RTX 6000 Ada GPU 세부 정보를 표시합니다. 드라이버가 로드되어 작동하는지 확인합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-smi</code>가 실패하거나 GPU를 표시하지 않으면 문제 해결 섹션을 참조하십시오.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">IV. Ubuntu 24.04에 CUDA Toolkit 12.9 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA 드라이버가 올바르게 설치되고 확인되면 다음 단계는 CUDA Toolkit 버전 12.9를 설치하는 것입니다. CUDA Toolkit은 컴파일러, 라이브러리 및 도구를 포함하여 GPU 가속 애플리케이션을 만들기 위한 개발 환경을 제공합니다. 이전 섹션에서 구성한 NVIDIA 네트워크 리포지토리가 이 설치에 사용되며, Ubuntu 24.04 및 CUDA 12.9용 패키지를 특별히 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. CUDA Toolkit 12.9 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>CUDA Toolkit 패키지 설치:</strong> 개발 환경의 예측 가능성을 보장하기 위해 특정 버전의 CUDA Toolkit을 설치하는 것이 좋습니다. <code>cuda-toolkit-12-9</code> 패키지(또는 <code>cuda-12-9</code>와 유사한 이름의 메타 패키지)는 12.9 버전을 대상으로 합니다. 명시적인 버전을 사용하는 것이 일반적인 <code>sudo apt-get install cuda</code>보다 선호됩니다. 후자는 리포지토리 기본값이 변경될 경우 다른 버전을 설치할 수 있기 때문입니다. Bash 이 명령은 컴파일러(<code>nvcc</code>), 라이브러리 및 헤더를 포함한 CUDA Toolkit 12.9를 다운로드하고 설치합니다. Ubuntu 24.04 x86_64용 NVIDIA 리포지토리에는 CUDA 12.9용 특정 패키지가 나열되어 있어 이 방법을 통해 사용 가능함을 확인합니다. Ubuntu 24.04 기반 컨테이너에 NVIDIA CUDA 12.9.0이 존재한다는 점도 간접적인 지원을 나타냅니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get install cuda-toolkit-12-9</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. 환경 변수 설정 (설치 후 필수)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>시스템 및 개발 도구가 CUDA Toolkit 바이너리 및 라이브러리를 찾을 수 있도록 <code>PATH</code> 및 <code>LD_LIBRARY_PATH</code> 환경 변수를 업데이트해야 합니다. 이러한 변경 사항은 일반적으로 지속성을 위해 사용자의 <code>~/.bashrc</code> 파일에 추가됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>~/.bashrc</code>에 CUDA 경로 추가</strong>: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo \'export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}}\' &gt;&gt; ~/.bashrc echo \'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\' &gt;&gt; ~/.bashrc</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>현재 셸 세션에 변경 사항 적용: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>source ~/.bashrc</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>환경 변수 확인:</strong> 경로가 올바르게 추가되었는지 확인합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>출력에는 <code>PATH</code>에 <code>/usr/local/cuda-12.9/bin</code>이, <code>LD_LIBRARY_PATH</code>에 <code>/usr/local/cuda-12.9/lib64</code>가 표시되어야 합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo $PATH echo $LD_LIBRARY_PATH</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. CUDA Toolkit 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>철저한 확인을 통해 툴킷이 올바르게 설치되었고 GPU와 통신할 수 있는지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>nvcc</code> 버전 확인:</strong> NVIDIA CUDA 컴파일러(<code>nvcc</code>)는 툴킷의 핵심 구성 요소입니다. 해당 버전은 설치된 툴킷과 일치해야 합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>nvcc --version</code> 출력에는 \"Cuda compilation tools, release 12.9\"를 포함한 <code>nvcc</code>에 대한 정보가 표시되어야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA 샘플 컴파일 및 실행: &lt;이 부분은 실패&gt;</strong> NVIDIA는 툴킷의 기능을 테스트하기 위한 CUDA 샘플을 제공합니다. 이러한 샘플은 이제 GitHub에서 호스팅되며 일반적으로 툴킷 패키지와 함께 기본적으로 설치되지 않습니다.<ul><li>CUDA 샘플 리포지토리 복제:</li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>git</code>이 설치되어 있지 않으면 <code>sudo apt install git</code> 으로 설치합니다. </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>git clone &lt;https://github.com/NVIDIA/cuda-samples.git&gt; </code></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>cd cuda-samples</code><strong><code>deviceQuery</code> </strong></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><strong>빌드 및 실행:</strong><code>deviceQuery</code> 샘플은 CUDA 지원 장치와 해당 속성을 열거합니다.  </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>cd Samples/1_Utilities/deviceQuery </code></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>make</code></li></ul>./deviceQuery <code>성공적으로 실행되면 NVIDIA RTX 6000 Ada에 대한 자세한 정보가 표시되고 `Result = PASS`로 끝납니다. 이는 CUDA 런타임이 GPU를 올바르게 식별하고 상호 작용할 수 있음을 확인합니다. 샘플이 GitHub로 마이그레이션됨에 따라 개발자는 이제 이러한 예제를 적극적으로 가져와야 하며, 이는 샘플이 종종 로컬 설치 경로에 포함되었던 이전 CUDA Toolkit 배포판과 달라진 점입니다.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 CUDA Toolkit 12.9 설치 및 확인 단계를 간략하게 설명합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>목적/예상 결과</th></tr></thead><tbody><tr><td>1. CUDA Toolkit 12.9 설치</td><td><code>sudo apt-get install cuda-toolkit-12-9</code></td><td>CUDA Toolkit 12.9 (컴파일러, 라이브러리, 헤더) 설치됨.</td></tr><tr><td>2. 환경 변수 설정</td><td><code>echo \'export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}}\' &gt;&gt; ~/.bashrc</code> &lt;br&gt; <code>echo \'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\' &gt;&gt; ~/.bashrc</code> &lt;br&gt; <code>source ~/.bashrc</code></td><td><code>PATH</code> 및 <code>LD_LIBRARY_PATH</code>가 CUDA 12.9 디렉터리를 포함하도록 업데이트됨.</td></tr><tr><td>3. <code>nvcc</code> 버전 확인</td><td><code>nvcc --version</code></td><td>CUDA Toolkit 버전 표시, 12.9인지 확인.</td></tr><tr><td>4. <code>deviceQuery</code> 샘플 컴파일 및 실행</td><td><code>git clone &lt;https://github.com/NVIDIA/cuda-samples.git</code>&gt;</td><td></td></tr><tr><td><code>cd cuda-samples/Samples/1_Utilities/deviceQuery</code> &lt;br&gt;</td><td></td><td></td></tr><tr><td><code>make</code> &lt;br&gt; <code>./deviceQuery</code></td><td><code>deviceQuery</code>가 성공적으로 컴파일 및 실행되어 RTX 6000 Ada 세부 정보와 <code>Result = PASS</code>를 표시함. 툴킷 기능 및 GPU 통신 확인.</td><td></td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">V. CUDA 12.9용 cuDNN 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA CUDA Deep Neural Network 라이브러리(cuDNN)는 심층 신경망을 위한 GPU 가속 기본 요소 라이브러리입니다. 딥 러닝 프레임워크에서 고성능을 달성하는 데 필수적입니다. Ubuntu 24.04의 CUDA 12.9용 cuDNN은 드라이버 및 CUDA Toolkit에 사용된 것과 동일한 NVIDIA 네트워크 리포지토리에서 설치해야 합니다. 이 방법은 호환성을 보장하고 수동 tarball 방법에 비해 설치를 단순화합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. cuDNN 라이브러리 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Ubuntu 24.04 x86_64용 NVIDIA 리포지토리에는 CUDA 12.9용 특정 빌드를 포함하여 CUDA 12.x와 호환되는 cuDNN 9 패키지가 포함되어 있습니다. 설치에는 런타임 및 개발자 패키지를 가져오는 과정이 포함됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>cuDNN 런타임 및 개발자 라이브러리 설치:</strong> cuDNN의 패키지 이름은 특정할 수 있습니다. 의 목록(예: <code>cudnn9-cuda-12-9_9.10.1.4-1_amd64.deb</code>, <code>libcudnn9-cuda-12_9.10.1.4-1_amd64.deb</code>, <code>libcudnn9-dev-cuda-12_9.10.1.4-1_amd64.deb</code>) 및 일반적인 cuDNN 설치 패턴을 기반으로 다음 명령은 CUDA 12.x용 cuDNN 9를 대상으로 합니다. 설치된 CUDA 버전에 해당하는 메타 패키지를 사용하는 것이 가장 좋습니다. CUDA 12.x의 경우 일반적으로 <code>sudo apt-get -y install cudnn9-cuda-12</code> 명령이 제안됩니다. CUDA 12.9가 설치되어 있으므로 <code>apt</code>는 올바른 종속성을 해결해야 합니다. <code>cudnn9-cuda-12-9</code>와 같은 더 구체적인 메타 패키지를 사용할 수 있고 NVIDIA에서 이 목적을 위해 명확하게 문서화한 경우 더욱 정확할 것입니다.  </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>cuDNN 설치에 <code>apt</code>를 사용하는 것은 수동 방법보다 강력하게 권장됩니다. <code>apt</code>는 파일 배치, 권한 및 종속성을 올바르게 처리하여 더 강력하고 유지 관리 가능한 시스템을 만들기 때문입니다. 사용자가 CUDA 12.8용 cuDNN을 설치하려고 할 때 종속성으로 인해 12.9 패키지가 선호되었던 에서 암시된 버전 불일치와 같은 잠재적인 문제는 설치된 CUDA 12.9에 대한 올바른 메타 패키지를 대상으로 하여 완화됩니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>`# 최신 cuDNN 버전을 볼 수 있도록 패키지 목록 업데이트 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get update </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDA 12.x용 cuDNN 9 런타임 라이브러리 설치 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get install libcudnn9-cuda-12 </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDA 12.x용 cuDNN 9 개발자 라이브러리 설치 (헤더 포함) <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get install libcudnn9-dev-cuda-12`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. cuDNN 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>확인을 통해 cuDNN 라이브러리가 올바르게 설치되고 액세스 가능한지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>설치된 패키지 및 라이브러리/헤더 파일 확인:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>설치된 cuDNN 패키지 나열: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>libcudnn9</code> 및 <code>libcudnn9-dev</code>와 같은 패키지가 표시되어야 합니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>dpkg -l | grep libcudnn</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>헤더 파일 존재 및 버전 확인 (경로는 패키지 세부 정보에 따라 약간 다를 수 있지만 일반적으로 표준 포함 디렉터리에 있음): 기본 헤더 <code>cudnn_version.h</code>에는 버전 매크로가 포함되어 있습니다. <code>apt</code> 설치 후 일반적인 위치는 <code>/usr/include/x86_64-linux-gnu/</code> 내입니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이는 cuDNN 애플리케이션 컴파일에 필요한 헤더 파일이 있는지 확인하고 설치된 cuDNN 버전을 검사할 수 있도록 합니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>`# 버전 헤더 확인 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>ls -l /usr/include/x86_64-linux-gnu/cudnn_version.h </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDNN_MAJOR, CUDNN_MINOR, CUDNN_PATCHLEVEL 정의를 보려면 내용 표시 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>cat /usr/include/x86_64-linux-gnu/cudnn_version.h`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cuDNN 샘플 컴파일 및 실행 (mnistCUDNN):&lt;이 부분 실패&gt;</strong> NVIDIA는 리포지토리의 패키지를 통해 설치할 수 있는 cuDNN 샘플을 제공합니다.<ul><li><strong>cuDNN 샘플 설치:</strong><code>libcudnn9-samples</code> 패키지를 사용할 수 있습니다. </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>sudo apt-get install libcudnn9-samples</code><strong><code>mnistCUDNN</code> </strong></li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><strong>컴파일 및 실행:</strong> 샘플은 일반적으로 <code>/usr/src/cudnn_samples_v9/</code> 또는 유사한 위치에 설치됩니다. 이전 가이드에서는 때때로 <code>$HOME/cudnn_samples_v9/</code>를 참조합니다. 패키지 버전의 위치를 사용해야 합니다. </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>`# mnistCUDNN 샘플 디렉터리로 이동 정확한 경로는 패키지 버전에 따라 다를 수 있으므로 /usr/src/ 확인 </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>cd /usr/src/cudnn_samples_v9/mnistCUDNN </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>샘플 컴파일 </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>sudo make clean &amp;&amp; sudo make </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>(빌드 아티팩트에 대해 /usr/src가 사용자 쓰기 가능하지 않은 경우 sudo가 필요할 수 있음) 또는 샘플 디렉터리를 사용자 쓰기 가능한 위치로 먼저 복사: </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>cp -r /usr/src/cudnn_samples_v9 ~/my_cudnn_samples </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>cd ~/my_cudnn_samples/mnistCUDNN </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>make clean &amp;&amp; make </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>샘플 실행`</li></ul>./mnistCUDNN </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>성공적으로 실행되면 일반적으로 `Test passed!`가 인쇄됩니다. 이는 cuDNN이 설치된 CUDA Toolkit 및 GPU와 올바르게 작동하는지 종합적으로 확인합니다.</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 네트워크 리포지토리를 사용한 cuDNN 설치를 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>목적</th></tr></thead><tbody><tr><td>1. 패키지 목록 업데이트</td><td><code>sudo apt-get update</code></td><td>로컬 패키지 인덱스 새로 고침.</td></tr><tr><td>2. cuDNN 런타임 설치</td><td><code>sudo apt-get install libcudnn9-cuda-12</code></td><td>CUDA 12.x와 호환되는 cuDNN 9 런타임 라이브러리를 설치합니다.</td></tr><tr><td>3. cuDNN 개발자 패키지 설치</td><td><code>sudo apt-get install libcudnn9-dev-cuda-12</code></td><td>CUDA 12.x용 cuDNN 9 헤더 파일 및 개발 라이브러리를 설치합니다.</td></tr><tr><td>4. (선택 사항) cuDNN 샘플 설치</td><td><code>sudo apt-get install libcudnn9-samples</code></td><td>cuDNN 샘플 코드를 설치합니다.</td></tr><tr><td>5. 설치 확인</td><td>`dpkg -l \\</td><td>grep libcudnn<code>&lt;br&gt;</code>cat /usr/include/x86_64-linux-gnu/cudnn_version.h<code>&lt;br&gt; (샘플이 설치된 경우)</code>cd /usr/src/cudnn_samples_v9/mnistCUDNN &amp;&amp; make &amp;&amp;./mnistCUDNN`</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VI. GPU 가속을 위한 Docker 설정</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 컨테이너는 휴대 가능하고 재현 가능한 환경을 만들기 위해 AI 개발에 널리 사용됩니다. Docker 컨테이너가 Nvidia A100 GPU에 액세스할 수 있도록 하려면 NVIDIA Container Toolkit을 설치하고 Docker를 올바르게 구성해야 합니다. 이 툴킷은 이전의 <code>nvidia-docker2</code>를 대체하고 보다 모듈화된 접근 방식을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. Docker Engine 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker가 아직 설치되어 있지 않으면 공식 Docker 설명서를 따르십시오. Ubuntu에서의 일반적인 설치는 다음과 같습니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Docker의 <code>apt</code> 리포지토리 설정 (공식 Docker CE에 대해 아직 수행하지 않은 경우):</strong> 가장 최신 명령은 <a href=\"https://docs.docker.com/engine/install/ubuntu/%EB%A5%BC\">https://docs.docker.com/engine/install/ubuntu/를</a> 참조하십시오. 여기에는 일반적으로 Docker의 GPG 키와 리포지토리를 추가하는 과정이 포함됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker Engine 설치</strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**루트가 아닌 사용자로 Docker 관리 (권장):**Bash 그런 다음 로그아웃했다가 다시 로그인하거나 현재 터미널 세션에서 <code>newgrp docker</code>를 실행하여 그룹 변경 사항을 적용합니다. 이렇게 하면 <code>sudo</code> 없이 <code>docker</code> 명령을 실행할 수 있습니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo groupadd docker </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code># 그룹이 아직 존재하지 않는 경우 </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>sudo usermod -aG docker $USER</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NVIDIA Container Toolkit 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Container Toolkit은 Docker가 NVIDIA GPU와 상호 작용하는 데 필요한 구성 요소를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>NVIDIA Container Toolkit 리포지토리 구성:</strong> 다음 명령은 NVIDIA Container Toolkit용 GPG 키와 리포지토리를 추가합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \\\n    sed \'s#deb https://#deb &#91;signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g\' | \\\n    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>툴킷 패키지 설치</strong>:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo apt-get update </code>\n<code>sudo apt-get install -y nvidia-container-toolkit</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. NVIDIA 런타임을 사용하도록 Docker 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 데몬은 NVIDIA 런타임을 인식하도록 구성해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong><code>nvidia-ctk</code>를 사용하여 Docker 구성:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-ctk</code>(NVIDIA Container Toolkit CLI) 유틸리티는 Docker의 <code>daemon.json</code> 파일을 수정합니다. </p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo nvidia-ctk runtime configure --runtime=docker</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p><strong>Docker 데몬 다시 시작:</strong> Docker 서비스를 다시 시작하여 구성 변경 사항을 적용합니다. </p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo systemctl restart docker</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">D. Docker에서 GPU 액세스 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 컨테이너가 GPU에 액세스할 수 있는지 확인하려면 <code>nvidia-smi</code>를 실행하는 테스트 컨테이너를 실행합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>CUDA 기본 컨테이너 실행:</strong> 공식 NVIDIA CUDA 이미지를 사용합니다. CUDA 12.9 설정을 확인하려면 CUDA 12.9가 포함된 이미지가 이상적입니다. NVIDIA는 Docker Hub에 <code>nvidia/cuda</code> 이미지를 제공하고 보다 전문화된 컨테이너를 위해 <code>nvcr.io</code>를 제공합니다. 에서는 CUDA 12.9.0이 포함된 Ubuntu 24.04 기반 컨테이너를 언급하지만 Docker Hub에서 간단한 기본 이미지로 공개적으로 사용할 수 있는지 여부는 다를 수 있습니다. 일반적인 대체 방법은 Ubuntu 22.04와 같은 최신 Ubuntu LTS를 기반으로 하는 CUDA 12.9 이미지입니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>-gpus all</code> 플래그는 Docker에 사용 가능한 모든 GPU를 컨테이너에 액세스할 수 있도록 지시합니다. 설정이 올바르면 이 명령은 지정된 이미지를 가져오고(아직 없는 경우) 컨테이너 내에서 <code>nvidia-smi</code>를 실행합니다. 출력은 호스트의 <code>nvidia-smi</code> 출력과 유사해야 하며 RTX 6000 Ada 및 드라이버 세부 정보를 표시합니다. 이는 NVIDIA Container Toolkit이 올바르게 작동하고 GPU 리소스가 Docker 환경으로 전달되고 있음을 확인합니다. CUDA 12.9 라이브러리가 포함된 컨테이너를 사용하면 이 CUDA 버전에 맞게 빌드된 Docker 내 애플리케이션이 예상대로 작동할 수 있도록 더욱 보장됩니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>`# 사용 가능하고 알려진 경우 Ubuntu 24.04 기반 이미지로 시도 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo docker run --rm --gpus all <a href=\"http://nvcr.io/nvidia/cuda:12.9.0-base-ubuntu24.04\">nvcr.io/nvidia/cuda:12.9.0-base-ubuntu24.04</a> <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>nvidia-smi </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>그렇지 않으면 쉽게 사용할 수 있는 CUDA 12.9 이미지 사용: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>nvidia-smi`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 NVIDIA Container Toolkit 설치를 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>하위 단계</th><th>명령</th><th>참고</th></tr></thead><tbody><tr><td>1. Docker Engine 설치</td><td>1a. Docker 리포지토리 설정</td><td>(공식 Docker 문서 참조)</td><td>공식 Docker CE가 설치되었는지 확인합니다.</td></tr><tr><td></td><td>1b. Docker 패키지 설치</td><td><code>sudo apt-get update</code> <br><br><code>sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></td><td>Docker 구성 요소를 설치합니다.</td></tr><tr><td></td><td>1c. 사용자를 <code>docker</code> 그룹에 추가</td><td><code>sudo usermod -aG docker $USER</code> <br><code>newgrp docker</code> (또는 로그아웃/로그인)</td><td><code>sudo</code> 없이 Docker를 실행할 수 있도록 합니다.</td></tr><tr><td>2. NVIDIA Container Toolkit 설치</td><td>2a. 툴킷 리포지토리 구성</td><td>`curl -fsSL...</td><td>sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list` (전체 명령은 텍스트 참조)</td></tr><tr><td></td><td>2b. 툴킷 패키지 설치</td><td><code>sudo apt-get update</code> <br><br><code>sudo apt-get install -y nvidia-container-toolkit</code></td><td>툴킷을 설치합니다.</td></tr><tr><td>3. Docker 런타임 구성</td><td>3a. <code>nvidia-ctk</code>로 Docker 구성</td><td><code>sudo nvidia-ctk runtime configure --runtime=docker</code></td><td>NVIDIA 런타임을 사용하도록 Docker의 <code>daemon.json</code>을 업데이트합니다.</td></tr><tr><td></td><td>3b. Docker 서비스 다시 시작</td><td><code>sudo systemctl restart docker</code></td><td>런타임 구성 변경 사항을 적용합니다.</td></tr><tr><td>4. GPU 액세스 확인</td><td>4a. 테스트 컨테이너 실행</td><td><code>sudo docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 nvidia-smi</code></td><td>Docker 컨테이너 내에서 GPU에 액세스할 수 있는지 확인합니다. 출력에 RTX 6000 Ada가 표시되어야 합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VII. Nvidia NIM (NVIDIA Inference Microservices) 소개</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Inference Microservices (NIM)는 AI 모델 배포를 단순화하여 확장 가능하고 프로덕션 준비가 된 마이크로서비스로 전환하도록 설계된 사전 빌드되고 최적화된 컨테이너입니다. NIM은 배포 복잡성 감소, 모델별 최적화를 통한 성능 향상, 손쉬운 통합을 위한 표준화된 API와 같은 이점을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. Nvidia NIM의 전제 조건</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NIM을 배포하기 전에 다음 전제 조건이 충족되었는지 확인하십시오:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA GPU:</strong> 충분한 메모리가 있는 NVIDIA GPU가 필요합니다. Nvidia A100는 많은 NIM에 적합합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>운영 체제:</strong> 지원되는 Linux 배포판. <code>glibc &gt;= 2.35</code>가 포함된 Ubuntu 24.04는 호환됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA 드라이버:</strong> 섹션 III에서 완료한 대로 최신 NVIDIA 드라이버를 설치해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker 및 NVIDIA Container Toolkit:</strong> 섹션 VI에 자세히 설명된 대로 설치하고 구성해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA AI Enterprise 라이선스:</strong> LLM 및 기타 모델용 NVIDIA NIM을 자체 호스팅하려면 일반적으로 NVIDIA AI Enterprise 라이선스가 필요합니다. 사용자는 라이선스 조건을 확인하고 사용 가능한 경우 평가판 옵션을 살펴보아야 합니다. 이는 기술적 설정 외에 중요한 고려 사항입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC 계정 및 API 키:</strong> NIM 컨테이너 이미지를 가져오려면 NVIDIA의 NGC 카탈로그에 액세스해야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NIM 설정 단계</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NGC API 키 생성:</strong> NGC 컨테이너 레지스트리로 인증하려면 API 키가 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>NGC 웹사이트(일반적으로 <code>https://org.ngc.nvidia.com/setup/api-keys</code> 또는 <code>https://org.ngc.nvidia.com/setup/personal-keys</code>)로 이동합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>새 API 키를 생성합니다. 키 권한에 대해 \"NGC Catalog\" 서비스(또는 이를 포함하는 더 넓은 범위)가 선택되었는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>생성된 API 키를 복사하여 안전하게 보관합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 키를 환경 변수로 내보내기:</strong> NIM 컨테이너는 이 환경 변수를 사용하여 모델 자산 다운로드를 위해 NGC로 인증합니다.Bash <code>export NGC_API_KEY=\"YOUR_API_KEY_HERE\"</code> <code>\"YOUR_API_KEY_HERE\"</code>를 실제 키로 바꿉니다. 프로덕션 환경의 보안을 위해 이 키를 관리하는 더 안전한 방법(예: Docker 시크릿 또는 버전 제어에 커밋되지 않은 환경 파일)을 고려하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC Docker 레지스트리에 로그인:</strong> API 키를 사용하여 NVIDIA의 컨테이너 레지스트리인 <code>nvcr.io</code>에 로그인합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo \"$NGC_API_KEY\" | sudo docker login nvcr.io --username \'$oauthtoken\' --password-stdin</code> </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용자 이름 <code>$oauthtoken</code>은 API 키가 인증에 사용되고 있음을 나타내는 특수 문자열입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. Nvidia NIM 실행</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설정이 완료되면 NIM 컨테이너를 시작할 수 있습니다. 특정 모델 및 이미지 태그는 다를 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>실행할 NIM 식별 (선택 사항이지만 유익함):</strong> 사용 가능한 NIM은 NVIDIA API 카탈로그(<code>https://build.nvidia.com</code>)를 탐색하거나 NGC CLI 도구(설치된 경우)를 <code>ngc registry image list --format_type csv nvcr.io/nim/*</code>와 같은 명령으로 사용하여 찾을 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시: Llama 3 NIM 시작:</strong> 다음은 예시입니다. <code>MODEL_NIM_PATH</code> 및 <code>NIM_IMAGE_TAG</code>를 NGC 카탈로그에서 원하는 모델의 실제 경로 및 태그로 바꾸십시오.Bash `# 예시: NGC의 실제 모델 경로 및 태그로 바꾸십시오. export MODEL_NIM_PATH=\"meta/llama3-8b-instruct\" export NIM_IMAGE_TAG=\"1.0.0\" # 예시 태그, 최신 버전은 NGC 확인 export NIM_IMAGE_NAME=\"<a href=\"http://nvcr.io/nim/$%7BMODEL_NIM_PATH%7D:$%7BNIM_IMAGE_TAG%7D\">nvcr.io/nim/${MODEL_NIM_PATH}:${NIM_IMAGE_TAG}</a>\" export LOCAL_NIM_CACHE=\"$HOME/.cache/nim\" # 모델 아티팩트용 로컬 캐시 mkdir -p \"$LOCAL_NIM_CACHE\" export CONTAINER_NAME=\"nim_llama3_8b_instruct\" sudo docker run -it --rm --name ${CONTAINER_NAME} \\ --gpus all \\ --runtime=nvidia \\ -e NGC_API_KEY \\ -v \"${LOCAL_NIM_CACHE}:/opt/nim/.cache\" \\ -u $(id -u):$(id -g) \\ -p 8000:8000 \\ \"${NIM_IMAGE_NAME}\"` 주요 Docker 실행 매개변수 설명 :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>-gpus all</code>: 사용 가능한 모든 GPU를 컨테이너에 노출합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>-runtime=nvidia</code>: NVIDIA 컨테이너 런타임을 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>e NGC_API_KEY</code>: 모델 다운로드를 위해 NGC API 키를 컨테이너에 전달합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>v \"${LOCAL_NIM_CACHE}:/opt/nim/.cache\"</code>: 다운로드한 모델 가중치 및 아티팩트용 캐시로 로컬 디렉터리를 마운트하여 후속 실행 시 재다운로드를 방지합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>u $(id -u):$(id -g)</code>: 마운트된 캐시와의 권한 문제를 방지하기 위해 현재 사용자의 ID 및 그룹 ID로 컨테이너를 실행합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>p 8000:8000</code>: 호스트의 포트 8000을 NIM 서비스가 일반적으로 수신 대기하는 컨테이너의 포트 8000에 매핑합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>${NIM_IMAGE_NAME}</code>: <code>nvcr.io</code>의 NIM 컨테이너 이미지 전체 이름 및 태그입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">D. NIM과 상호 작용</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NIM 컨테이너가 실행되면 모델을 다운로드하고(아직 캐시되지 않은 경우) 추론 서버를 시작합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>서버 준비 대기:</strong> 컨테이너 로그(<code>sudo docker logs -f ${CONTAINER_NAME}</code>)에서 서버가 준비되었음을 나타내는 메시지(예: \"NIM server is ready\" 또는 유사 메시지)를 모니터링합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**상태 엔드포인트 확인:**Bash 성공적인 응답(예: 상태 \"ready\"인 HTTP 200)은 서버가 작동 중임을 나타냅니다. <code>curl &lt;http://localhost:8000/v1/health/ready</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**NIM에서 제공하는 모델 나열:**Bash 그러면 이 특정 NIM 인스턴스에서 제공하는 모델이 표시됩니다. <code>curl &lt;http://localhost:8000/v1/models</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>추론 요청 보내기:</strong> LLM NIM의 경우 API는 종종 OpenAI와 호환됩니다. 채팅 완료 모델 예시 : Bash 많은 LLM에 OpenAI 호환 API를 사용하면 개발자가 기존 클라이언트 라이브러리를 종종 활용할 수 있으므로 통합이 단순화됩니다. <code>curl -X POST &lt;http://localhost:8000/v1/chat/completions&gt; \\\\ -H \"Content-Type: application/json\" \\\\ -H \"Authorization: Bearer YOUR_NGC_API_KEY\" \\\\ -d \'{ \"model\": \"meta/llama3-8b-instruct\", // v1/models 출력의 모델 이름 사용 \"messages\":, \"temperature\": 0.7, \"max_tokens\": 100 }\'</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">E. NIM 컨테이너 중지</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>sudo docker stop ${CONTAINER_NAME}</code></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 NVIDIA NIM의 주요 Docker 실행 매개변수를 강조 표시합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>매개변수</th><th>예시 값</th><th>목적</th></tr></thead><tbody><tr><td><code>--gpus all</code></td><td><code>all</code></td><td>모든 호스트 GPU를 컨테이너에서 사용할 수 있도록 합니다.</td></tr><tr><td><code>--runtime=nvidia</code></td><td><code>nvidia</code></td><td>GPU 액세스를 위한 NVIDIA 컨테이너 런타임을 지정합니다.</td></tr><tr><td><code>-e NGC_API_KEY</code></td><td>(환경 변수 값)</td><td>NGC에서 모델/자산 다운로드 인증을 위해 NGC API 키를 컨테이너에 전달합니다.</td></tr><tr><td><code>-v LOCAL_NIM_CACHE:/opt/nim/.cache</code></td><td><code>\"$HOME/.cache/nim:/opt/nim/.cache\"</code></td><td>다운로드한 모델을 유지하고 재다운로드를 방지하기 위해 컨테이너 내 캐시로 호스트 디렉터리를 마운트합니다.</td></tr><tr><td><code>-p HOST_PORT:CONTAINER_PORT</code></td><td><code>8000:8000</code></td><td>호스트의 포트를 NIM 서비스가 수신 대기하는 컨테이너 내부의 포트에 매핑합니다.</td></tr><tr><td><code>NIM_IMAGE_NAME</code></td><td><code>nvcr.io/nim/meta/llama3-8b-instruct:1.0.0</code></td><td>실행할 특정 NIM의 전체 Docker 이미지 이름 및 태그입니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VIII. (선택 사항) CUDA 12.9를 지원하는 AI 프레임워크 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>드라이버, CUDA Toolkit, cuDNN 및 Docker를 설정한 후 개발자는 일반적으로 PyTorch 또는 TensorFlow와 같은 AI 프레임워크를 설치합니다. 이는 종속성을 효과적으로 관리하기 위해 일반적으로 Python 가상 환경 내에서 <code>pip</code>를 사용하여 설치됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>시스템의 NVIDIA 드라이버는 CUDA 12.9와 호환되고 CUDA Toolkit 12.9가 설치되어 있지만, AI 프레임워크용 사전 컴파일된 <code>pip</code> 패키지는 약간 이전 CUDA 버전(예: CUDA 12.1, 12.3 또는 12.8)에 대해 빌드될 수 있다는 점에 유의해야 합니다. 이러한 패키지는 일반적으로 순방향 호환되며 드라이버의 호환성으로 인해 올바르게 실행되지만 프레임워크 자체는 핵심 작업을 위해 컴파일된 CUDA 버전을 활용합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. PyTorch</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>PyTorch는 종종 최신 CUDA 버전과 호환되는 <code>pip</code> 휠을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>**Python 가상 환경 생성 및 활성화:**Bash <code>python3 -m venv ~/pytorch_env source ~/pytorch_env/bin/activate</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>PyTorch 설치:</strong> 최신 명령은 공식 PyTorch 웹사이트(<a href=\"https://pytorch.org/get-started/locally/\">https://pytorch.org/get-started/locally/</a>)를 참조하십시오. CUDA 12.x의 경우 다음과 유사한 명령이 일반적입니다. 최근 정보에 따르면 Linux용 <code>cu128</code>(CUDA 12.8) 휠이 포함된 PyTorch 2.7을 사용할 수 있으며 CUDA 12.9 환경과 호환되어야 합니다. 특정 <code>cu129</code> 휠을 사용할 수 있게 되면 해당 휠이 선호됩니다. 그렇지 않으면 <code>cu121</code> 또는 <code>cu128</code>이 일반적인 선택입니다. Bash*(설치 시점에 PyTorch에서 CUDA 12.9에 대해 더 직접적이거나 최신 호환 휠(예: <code>cu129</code> 또는 <code>cu121</code>)을 권장하는 경우 <code>cu128</code>을 조정하십시오).* <code>pip3 install torch torchvision torchaudio --index-url &lt;https://download.pytorch.org/whl/cu128</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**PyTorch 설치 확인:**Python Python 파일(예: <code>verify_pytorch.py</code>)로 저장하고 <code>python verify_pytorch.py</code>를 실행합니다. <code>torch.cuda.is_available()</code>는 <code>True</code>를 반환해야 합니다. <code>import torch print(f\"PyTorch Version: {torch.__version__}\") print(f\"CUDA Available: {torch.cuda.is_available()}\") if torch.cuda.is_available(): print(f\"CUDA Version (PyTorch built with): {torch.version.cuda}\") print(f\"GPU Name: {torch.cuda.get_device_name(0)}\")</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. TensorFlow</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>TensorFlow는 Python 환경 내에 호환되는 CUDA 및 cuDNN 라이브러리를 번들로 제공하여 GPU 설정을 단순화하려는 <code>tensorflow[and-cuda]</code> pip 패키지를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Python 가상 환경 생성 및 활성화: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>python3 -m venv ~/tensorflow_env source ~/tensorflow_env/bin/activate</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 지원 TensorFlow 설치:</strong><code>tensorflow[and-cuda]</code> 패키지는 특정 버전의 CUDA 및 cuDNN을 번들로 제공합니다. 예를 들어, 최신 TensorFlow 버전은 CUDA 12.3 및 cuDNN 8.9.7을 번들로 제공할 수 있습니다. 이는 TensorFlow가 시스템에 설치된 CUDA 12.9 및 해당 cuDNN을 직접 사용하지 않고 이러한 번들 라이브러리를 작업에 사용하지만 CUDA 12.9 호환 드라이버에서 실행된다는 의미입니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>pip install -U pip # pip 업그레이드 pip install tensorflow[and-cuda]</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**TensorFlow 설치 확인:**Python <code>import tensorflow as tf print(f\"TensorFlow Version: {tf.__version__}\") gpus = tf.config.list_physical_devices(\'GPU\') if gpus: print(f\"Num GPUs Available: {len(gpus)}\") for gpu in gpus: print(f\"GPU Name: {gpu.name}\") else: print(\"No GPU detected by TensorFlow\")</code> Python 파일(예: <code>verify_tensorflow.py</code>)로 저장하고 <code>python verify_tensorflow.py</code>를 실행합니다. 출력에 RTX 6000 Ada가 나열되어야 합니다. TensorFlow에 대해 시스템 CUDA 12.9와의 정확한 정렬이 엄격하게 필요한 경우 구성 프로세스 중에 CUDA 12.9 및 호환되는 cuDNN 버전을 지정하여 소스에서 TensorFlow를 빌드해야 합니다. 이는 고급 절차이며 TensorFlow 자체에서 해당 특정 CUDA 버전에 연결된 특정 기능이나 최적화가 필요한 경우가 아니면 일반적으로 필요하지 않습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 AI 프레임워크 설치에 대한 빠른 참조를 제공합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>프레임워크</th><th>권장 설치 명령 (CUDA 12.x 호환성용)</th><th>확인 명령 (Python)</th><th>CUDA 12.9 참고 사항</th></tr></thead><tbody><tr><td>PyTorch</td><td><code>pip3 install torch torchvision torchaudio --index-url &lt;https://download.pytorch.org/whl/cu128</code>&gt;</td><td><code>import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda if torch.cuda.is_available() else \"\")</code></td><td>사전 빌드된 휠(예: <code>cu128</code> 또는 <code>cu121</code>)은 일반적으로 CUDA 12.9 드라이버/툴킷과 순방향 호환됩니다. 인쇄된 <code>torch.version.cuda</code>는 PyTorch가 빌드된 CUDA 버전을 보여줍니다.</td></tr><tr><td>TensorFlow</td><td><code>pip install tensorflow[and-cuda]</code></td><td><code>import tensorflow as tf; print(tf.__version__); print(tf.config.list_physical_devices(\'GPU\'))</code></td><td><code>tensorflow[and-cuda]</code> 패키지는 자체 CUDA/cuDNN(예: 최신 TF의 경우 CUDA 12.3/cuDNN 8.9.7)을 번들로 제공합니다. 시스템의 CUDA 12.9를 직접 사용하지 않고 이를 사용하지만 12.9 호환 드라이버에서 실행됩니다. 정확한 12.9 연결을 위해서는 소스에서 빌드하십시오.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">IX. 일반적인 문제 해결</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>신중하게 설치하더라도 문제가 발생할 수 있습니다. 이 섹션에서는 일반적인 문제와 기본 문제 해결 단계를 다룹니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA 드라이버 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>nvidia-smi</code> 명령 실패, GPU가 표시되지 않거나 시스템이 저해상도 디스플레이로 부팅됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Nouveau 충돌:</strong> Nouveau가 블랙리스트에 있는지 확인합니다 (섹션 II.C.4).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot MOK:</strong> Secure Boot가 활성화된 경우 NVIDIA 드라이버의 MOK가 올바르게 등록되지 않았을 수 있습니다. 재부팅하고 MOK 관리 옵션을 찾거나 Secure Boot를 일시적으로 비활성화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>설치 오류:</strong> 드라이버 설치 중 오류에 대해 <code>apt</code> 로그(<code>/var/log/apt/term.log</code>) 및 커널 메시지(<code>dmesg | grep -i nvidia</code>)를 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>드라이버 재설치:</strong> 완전히 새로 설치해야 할 수 있습니다. 재설치하기 전에 기존 NVIDIA 패키지를 제거합니다 (<code>sudo apt purge \'*nvidia*\' &amp;&amp; sudo apt autoremove</code>).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>\"GPU has fallen off the bus\":</strong> 이는 하드웨어 문제(GPU 장착, 전원 공급 장치, PCIe 슬롯), 과열 또는 심각한 드라이버/커널 비호환성을 나타낼 수 있는 심각한 오류입니다. 먼저 물리적 연결을 확인하십시오. 소프트웨어 비호환성인 경우 다른 드라이버 버전(이전 또는 최신 안정 버전)을 시도하면 도움이 될 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA Toolkit 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>nvcc: command not found</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>환경 변수:</strong> <code>PATH</code> 및 <code>LD_LIBRARY_PATH</code>가 올바르게 설정되지 않았거나 현재 터미널 세션에서 <code>~/.bashrc</code> 변경 사항이 적용되지 않았습니다 (섹션 IV.B). <code>echo $PATH</code> 및 <code>echo $LD_LIBRARY_PATH</code>로 확인합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증상:</strong> CUDA 샘플(예: <code>deviceQuery</code>)이 컴파일 또는 실행되지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>드라이버-툴킷 불일치:</strong> 리포지토리 설치는 이를 최소화하지만 드라이버가 CUDA 툴킷 버전을 지원하는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>누락된 종속성:</strong> <code>build-essential</code> 또는 기타 개발 도구가 누락되었을 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>잘못된 툴킷 버전:</strong> <code>nvcc --version</code>이 예상과 다른 버전을 표시합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cuDNN 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> AI 프레임워크 또는 애플리케이션에서 누락된 cuDNN 라이브러리(예: <code>libcudnn.so.9: cannot open shared object file</code>)를 보고합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>설치 미완료:</strong> cuDNN 런타임(<code>libcudnn9-cuda-12</code>) 또는 개발자 패키지(<code>libcudnn9-dev-cuda-12</code>)가 올바르게 설치되지 않았을 수 있습니다. <code>dpkg -l | grep libcudnn</code>으로 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>라이브러리 경로:</strong> <code>LD_LIBRARY_PATH</code>에 cuDNN 라이브러리가 설치된 디렉터리가 포함되어 있지 않을 수 있습니다 (<code>apt</code>는 일반적으로 시스템 라이브러리 경로를 통해 이를 처리하지만). <code>sudo ldconfig -p | grep libcudnn</code>은 동적 링커가 라이브러리를 찾는지 보여줄 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker GPU 액세스 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>docker run --gpus all...</code>이 NVIDIA 런타임 또는 GPU 액세스와 관련된 오류로 실패합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA Container Toolkit:</strong> 설치되지 않았거나 <code>nvidia-ctk runtime configure --runtime=docker</code>가 실행되지 않았거나 구성 후 Docker 데몬이 다시 시작되지 않았습니다 (섹션 VI.C).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker 데몬:</strong> Docker 서비스가 실행 중이고 구성 변경 후 다시 시작되었는지 확인합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증상:</strong> 호스트에서는 <code>nvidia-smi</code>가 작동하지만 GPU 지원 컨테이너 내부에서는 작동하지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Docker의 <code>daemon.json</code>에 있는 NVIDIA 런타임 구성 문제.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>잘못된 <code>-gpus</code> 플래그 사용 또는 호환되지 않는 기본 이미지.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>일반적인 문제 해결 팁:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>시스템 로그 확인:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>dmesg</code>: 커널 링 버퍼, 하드웨어 및 모듈 로드 문제에 유용합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>journalctl -xe</code>: 자세한 시스템 로그, 종종 서비스 오류를 표시합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>/var/log/syslog</code>: 일반 시스템 메시지.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>/var/log/nvidia-installer.log</code>: NVIDIA의 <code>.run</code> 파일을 사용하여 드라이버를 설치한 경우 (여기서는 권장하지 않음).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>재부팅:</strong> 중요한 드라이버 또는 커널 모듈 변경 후에는 종종 재부팅이 필수적입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA 개발자 포럼:</strong> 특정 문제에 대한 도움을 받을 수 있는 귀중한 리소스입니다. 시스템, 설치된 소프트웨어 버전 및 오류 메시지에 대한 자세한 정보를 제공하십시오.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-smi</code>로 드라이버를 확인하고, <code>nvcc</code> 및 샘플로 CUDA를 확인하고, cuDNN을 확인하고, 마지막으로 Docker를 확인하는 체계적인 접근 방식은 문제가 있을 수 있는 부분을 격리하는 데 도움이 됩니다. 특히 CUDA 및 cuDNN의 많은 문제는 잘못된 환경 변수 설정이나 조정된 리포지토리에서 신중하게 설치하지 않은 경우 구성 요소 버전 간의 불일치로 인해 발생합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">X. 결론 및 모범 사례</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이 보고서는 NVIDIA RTX 6000 Ada 그래픽 카드를 갖춘 Ubuntu 24.04 워크스테이션에서 강력한 AI 개발 환경을 구축하는 과정을 자세히 설명했습니다. 공식 NVIDIA 리포지토리를 사용하여 NVIDIA 드라이버, CUDA Toolkit 12.9 및 해당 cuDNN 라이브러리를 체계적으로 설치함으로써 개발자는 안정적이고 고성능의 기반을 확보할 수 있습니다. 또한 NVIDIA Container Toolkit을 사용한 Docker 구성은 휴대 가능하고 재현 가능한 GPU 가속 워크플로를 가능하게 하며, NVIDIA NIM 소개는 간소화된 AI 모델 배포 경로를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>건강한 AI 개발 환경 유지를 위한 주요 모범 사례:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>공식 리포지토리 활용:</strong> 가능하면 NVIDIA의 공식 <code>apt</code> 리포지토리에서 NVIDIA 드라이버, CUDA Toolkit 및 cuDNN을 설치하십시오. 이 방법은 일반적으로 구성 요소 호환성을 보장하고 업데이트를 단순화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>버전 고정 (고려 사항):</strong> 프로덕션 또는 중요한 연구 환경의 경우 <code>apt</code> 기본 설정을 사용하여 드라이버 및 CUDA 구성 요소의 버전을 고정하여 기존 워크플로와 비호환성을 유발할 수 있는 의도하지 않은 업그레이드를 방지하는 것을 고려하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Python 가상 환경:</strong> AI 프로젝트에는 항상 Python 가상 환경(예: <code>venv</code>, <code>conda</code>)을 사용하십시오. 이렇게 하면 종속성을 격리하여 PyTorch 또는 TensorFlow와 같은 라이브러리의 다른 버전이 필요한 프로젝트 간의 충돌을 방지합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>정기적인 문서 참조:</strong> AI 및 GPU 컴퓨팅 환경은 빠르게 발전합니다. 최신 호환성 정보, 기능 및 모범 사례를 위해 CUDA, cuDNN, 드라이버 및 AI 프레임워크에 대한 공식 NVIDIA 문서를 정기적으로 확인하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 사용률 모니터링:</strong> 개발 및 배포 중에 <code>nvidia-smi</code> 또는 NVIDIA Nsight와 같은 도구를 사용하여 GPU 사용률, 메모리 사용량 및 성능을 모니터링하십시오. 이는 병목 현상을 식별하고 GPU 리소스가 효율적으로 사용되고 있는지 확인하는 데 도움이 됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC API 키 보안:</strong> NVIDIA NIM 또는 기타 NGC 리소스를 사용할 때 NGC API 키를 기밀로 유지하고 안전하게 관리하십시오. 스크립트에 키를 하드코딩하거나 버전 제어에 커밋하지 마십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>체계적인 업데이트:</strong> 중요한 워크스테이션에 적용하기 전에 가능하면 스테이징 환경에서 테스트하여 드라이버 및 CUDA 구성 요소 업데이트를 신중하게 계획하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커뮤니티 및 지원:</strong> 문제 해결 및 커뮤니티 지원을 위해 NVIDIA 개발자 포럼과 같은 리소스를 활용하십시오.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>이러한 지침과 제공된 자세한 설치 단계를 따르면 사용자는 Ubuntu 24.04에서 최첨단 AI 코딩 및 연구를 위해 NVIDIA RTX 6000 Ada 워크스테이션의 잠재력을 극대화할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_local\">https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_local</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>CUDA Toolkit Installer</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Installation Instructions:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin\nsudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/12.9.0/local_installers/cuda-repo-ubuntu2404-12-9-local_12.9.0-575.51.03-1_amd64.deb\nsudo dpkg -i cuda-repo-ubuntu2404-12-9-local_12.9.0-575.51.03-1_amd64.deb\nsudo cp /var/cuda-repo-ubuntu2404-12-9-local/cuda-*-keyring.gpg /usr/share/keyrings/\nsudo apt-get update\nsudo apt-get -y install cuda-toolkit-12-9\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>Additional installation options are detailed here.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Driver Installer</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Driver Instructions (choose one option)</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To install the open kernel module flavor:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo apt-get install -y nvidia-open\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>To install the proprietary kernel module flavor:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo apt-get install -y cuda-drivers\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>To switch between NVIDIA Driver kernel module flavors see here.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The CUDA Toolkit contains Open-Source Software. The source code can be found here. The checksums for the installer and patches can be found in Installer Checksums. For further information, see the Installation Guide for Linux and the CUDA Quick Start Guide.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Ubuntu 20.04/22.04/24.04, Debian 12</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To switch from proprietary to open:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># apt install --autoremove --purge nvidia-open\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>￼ To switch from open to proprietary:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># apt install --autoremove --purge cuda-drivers\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">참고자료</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://velog.io/@scuderia/리눅스-24.04-cuda-cudnn-설치\">https://velog.io/@scuderia/리눅스-24.04-cuda-cudnn-설치</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_network\">https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_network</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>nividia driver 설치</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>sudo apt install nvidia-cuda-toolkit</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>llama-cpp-python version available for CUDA 11.7.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>cuda</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.cherryservers.com/blog/install-cuda-ubuntu\">https://www.cherryservers.com/blog/install-cuda-ubuntu</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=22.04&amp;target_type=deb_local\">https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=22.04&amp;target_type=deb_local</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Nvidia NIM</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html\">https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-22-04\">https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-22-04</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>nvidia GPU on Docker</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.howtogeek.com/devops/how-to-use-an-nvidia-gpu-with-docker-containers\">https://www.howtogeek.com/devops/how-to-use-an-nvidia-gpu-with-docker-containers</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.cyberciti.biz/faq/how-to-install-nvidia-driver-on-centos-7-linux\">https://www.cyberciti.biz/faq/how-to-install-nvidia-driver-on-centos-7-linux</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7\">https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->','NVIDIA- GPU 세팅 종합가이드','','inherit','closed','closed','','10-revision-v1','','','2025-10-22 21:27:33','2025-10-22 12:27:33','',10,'https://rndpolicy.org/aidev/?p=510',0,'revision','',0),
(512,1,'2025-10-22 21:31:59','2025-10-22 12:31:59','<!-- wp:paragraph -->\n<p>Ubuntu 24.04 및 Nvidia A100 환경에서 NVIDIA 드라이버, CUDA 12.9 및 AI 환경 설정 종합 가이드</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Nvidia A100 그래픽 카드가 장착된 Ubuntu 24.04 워크스테이션에 NVIDIA 드라이버 및 CUDA Toolkit 12.9를 설치하는 체계적인 가이드를 제공합니다. 또한 GPU 가속 워크로드를 위한 Docker 구성 방법을 자세히 설명하고 NVIDIA Inference Microservices (NIM)를 소개합니다. 이 설정은 고급 AI 코딩 및 개발의 기초가 됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">I. 도입</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>인공 지능(AI) 및 머신 러닝(ML) 개발 환경은 강력한 하드웨어와 세심하게 구성된 소프트웨어 스택을 필요로 합니다. NVIDIA Nvidia A100 그래픽 카드는 48GB GDDR6 ECC 메모리와 18,176개의 CUDA 코어를 통해 AI, 렌더링 및 고성능 컴퓨팅 작업에 탁월한 성능을 제공합니다. Ubuntu 24.04 LTS는 이러한 까다로운 워크로드를 위한 안정적이고 널리 채택된 플랫폼 역할을 합니다. 이 가이드는 NVIDIA 드라이버, CUDA Toolkit 버전 12.9 및 필요한 cuDNN 라이브러리를 올바르게 설치하여 안정적인 AI 개발 환경을 구축하는 데 중점을 둡니다. 또한 Docker 컨테이너 내에서 GPU 가속을 활용하는 일반적인 요구 사항을 해결하고 NVIDIA NIM을 사용하여 모델을 배포하는 초기 단계를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>여기에 설명된 절차는 호환성을 보장하고 최신 안정 소프트웨어 버전에 대한 액세스를 위해 공식 NVIDIA 리포지토리를 사용하는 것을 우선시합니다. 각 주요 설치 단계에는 각 구성 요소의 성공적인 설정을 확인하기 위한 검증 절차가 함께 제공됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">II. 시스템 요구 사항 및 초기 점검</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설치 프로세스를 시작하기 전에 시스템이 필요한 하드웨어 및 소프트웨어 요구 사항을 충족하고 기존 환경이 준비되었는지 확인하는 것이 중요합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. 하드웨어 요구 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. 소프트웨어 요구 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>운영 체제:</strong> Ubuntu 24.04 LTS (Noble Numbat) x86_64. Nvidia A100 는 Ubuntu 24.04 LTS에서 테스트되었습니다. CUDA 12.9도 Ubuntu 24.04를 지원합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커널 헤더:</strong> 드라이버 설치에 필요합니다. 현재 실행 중인 커널과 일치해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>gcc 컴파일러:</strong> CUDA 샘플 및 애플리케이션 컴파일에 필요합니다. Ubuntu 24.04에는 일반적으로 호환되는 버전이 포함되어 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot:</strong> 시스템의 UEFI/BIOS에서 Secure Boot가 활성화된 경우 드라이버 설치 중에 추가 단계(MOK 등록)가 필요합니다. 설치 프로세스를 위해 Secure Boot를 일시적으로 비활성화하는 것이 더 간단한 경우가 많지만, 일부 가이드에서는 키 등록 방법을 제안합니다. 이 가이드는 Secure Boot가 활성화되어 있을 수 있다고 가정하며 MOK 등록이 요청될 수 있는 시점을 명시합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. 설치 전 시스템 점검 및 업데이트</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>GPU 감지 확인:</strong> 시스템이 Nvidia A100 를 인식하는지 확인합니다<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>lspci | grep -i nvidia</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>출력에 NVIDIA 그래픽 카드가 표시되어야 합니다. 그렇지 않은 경우 물리적 설치 및 BIOS 설정을 확인하십시오. Nvidia A100의 장치 ID가 출력에 나타날 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 패키지 업데이트:</strong> 최신 상태의 시스템으로 시작하는 것이 좋습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt update sudo apt upgrade -y</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커널 헤더 및 개발 도구 설치:</strong> 이는 드라이버 설치 중 커널 모듈 빌드에 필수적입니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt install linux-headers-$(uname -r) build-essential</code> <code>build-essential</code> </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>패키지에는 <code>gcc</code>, <code>g++</code>, <code>make</code> 및 기타 필요한 도구가 포함되어 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>충돌하는 드라이버 처리 (Nouveau):</strong> 오픈 소스 Nouveau 드라이버는 NVIDIA의 독점 드라이버와 충돌할 수 있습니다. 블랙리스트에 추가하는 것이 종종 권장됩니다. 최신 NVIDIA 설치 프로그램이 이를 처리하지만 명시적인 블랙리스트 추가는 문제를 예방할 수 있습니다. <code>/etc/modprobe.d/blacklist-nouveau.conf</code> 파일을 만듭니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo nano /etc/modprobe.d/blacklist-nouveau.conf</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다음 줄을 추가합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>blacklist nouveau options nouveau modeset=0</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>파일을 저장한 다음 initramfs를 업데이트하고 재부팅합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo update-initramfs -u </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>sudo reboot</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>재부팅 후 드라이버 설치를 진행합니다. 이 단계는 NVIDIA 독점 드라이버를 위한 더 깨끗한 환경을 보장하여 설치 실패 또는 불안정한 그래픽 환경으로 이어질 수 있는 잠재적인 충돌을 최소화하는 데 도움이 됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">III. Ubuntu 24.04에서 Nvidia A100 용 NVIDIA 드라이버 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>올바른 NVIDIA 드라이버를 설치하는 것은 AI 워크로드를 위해 Nvidia A100 을 활용하기 위한 기본 단계입니다. 권장되는 방법은 공식 NVIDIA CUDA 네트워크 리포지토리를 사용하는 것입니다. 이는 드라이버와 CUDA Toolkit 간의 최적의 호환성을 보장하기 때문입니다. 이 접근 방식은 NVIDIA가 소프트웨어 스택을 위해 이러한 리포지토리를 관리하므로 일반적인 Ubuntu 드라이버나 타사 PPA를 사용하는 것보다 전문 AI/ML 개발에 일반적으로 더 강력합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. NVIDIA CUDA 네트워크 리포지토리 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA CUDA 리포지토리는 드라이버, CUDA Toolkit 및 기타 관련 소프트웨어에 대한 액세스를 제공합니다. Ubuntu 24.04의 경우 리포지토리를 다음과 같이 구성해야 합니다. 이 명령은 네트워크 리포지토리 설정에 대한 NVIDIA 문서에 제공된 구조를 기반으로 하며 Ubuntu 24.04에 맞게 조정되었으며, 전용 패키지 목록이 있는 것으로 확인되었습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA CUDA 리포지토리 키 및 리포지토리 소스 추가:</strong><code>cuda-keyring</code> 패키지는 NVIDIA 패키지 서명에 사용되는 GPG 키를 설치하여 패키지의 신뢰성을 보장합니다. Bash 이 시퀀스는 먼저 키링 패키지를 다운로드하고 <code>dpkg</code>를 사용하여 설치한 다음(NVIDIA GPG 키 등록) 새로 추가된 NVIDIA 리포지토리의 패키지를 포함하도록 로컬 <code>apt</code> 패키지 목록을 업데이트합니다. `# cuda-keyring 패키지 다운로드 및 설치 참고: 정확한 URL은 변경될 수 있습니다. 항상 Ubuntu 24.04용 최신 NVIDIA CUDA 다운로드 페이지를 참조하십시오. 다음 구조가 일반적입니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>wget <a href=\"https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb\">https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb</a> sudo dpkg -i cuda-keyring_1.1-1_all.deb </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>sudo apt-get update </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다운로드한 deb 파일 정리 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>rm cuda-keyring_1.1-1_all.deb`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NVIDIA 드라이버 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>리포지토리가 구성되면 NVIDIA 드라이버를 설치할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>cuda-drivers</code> 메타 패키지 설치:</strong> 이 메타 패키지는 리포지토리에서 사용 가능한 CUDA 브랜치와 호환되는 최신 적절한 드라이버 시리즈를 설치하도록 설계되었습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get install cuda-drivers</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>NVIDIA NIM 문서는 최적의 성능을 위해 드라이버 버전 550 이상을 권장합니다. CUDA 12.x 리포지토리 브랜치의 <code>cuda-drivers</code> 패키지는 적합한 버전을 제공해야 합니다. NVIDIA의 오픈 커널 모듈을 사용하는 드라이버 버전 560.35.03으로 Nvidia A100를 사용하여 Ubuntu 24.04에서 테스트한 내용이 언급되었습니다. <code>cuda-drivers</code> 패키지는 종종 설치 중에 옵션을 제공하거나 감지된 하드웨어에 대해 독점 또는 오픈 커널 모듈을 모두 사용할 수 있는 경우 둘 중 하나를 사용하도록 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 재부팅:</strong> 새 커널 모듈이 로드되고 드라이버가 활성화되려면 재부팅이 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo reboot</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot 참고:</strong> Secure Boot가 활성화된 경우 시스템은 재부팅 프로세스 중에 MOK(Machine Owner Key) 등록을 요청할 가능성이 높습니다. 화면의 지시에 따라 NVIDIA 드라이버용 키를 등록하십시오. 여기에는 일반적으로 \"Enroll MOK\"를 선택하고 확인한 다음 드라이버 사전 설치 단계(DKMS에서 요청한 경우)에서 설정한 암호를 입력하는 과정이 포함됩니다. MOK를 등록하지 않으면 NVIDIA 드라이버가 로드되지 않습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. 드라이버 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>시스템이 재부팅된 후 NVIDIA 드라이버가 올바르게 설치되었고 Nvidia A100 이 인식되는지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>nvidia-smi</code> 실행:</strong> 이 명령줄 유틸리티는 설치된 NVIDIA 드라이버 및 GPU에 대한 정보를 제공합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>nvidia-smi</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>성공적인 출력은 다음을 표시합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>드라이버 버전:</strong> 설치된 NVIDIA 드라이버의 버전입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA 버전:</strong> 설치된 드라이버에서 지원하는 <em>최대 CUDA 버전</em>을 나타냅니다. 이는 아직 시스템에 설치된 CUDA Toolkit의 버전이 아니라 드라이버의 호환성 수준이라는 점을 이해하는 것이 중요합니다. 실제 CUDA Toolkit은 별도의 설치입니다. 사용자가 이 값을 활성 툴킷 버전으로 잘못 해석하는 경우가 많으므로 이 구분이 중요합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 이름:</strong> \"Nvidia A100\"이 표시되어야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 메모리:</strong> 총 메모리, 할당된 메모리 및 사용 가능한 메모리 (예: Nvidia A100의 경우 총 48GB).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>GPU 사용률, 온도 및 실행 중인 프로세스(있는 경우)와 같은 기타 세부 정보.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 드라이버 설치 명령을 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>예상 결과/참고</th></tr></thead><tbody><tr><td>1. NVIDIA 리포지토리 키 및 소스 추가</td><td><code>wget &lt;https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb</code>&gt; &lt;br&gt; <code>sudo dpkg -i cuda-keyring_1.1-1_all.deb</code> &lt;br&gt; <code>sudo apt-get update</code> &lt;br&gt; <code>rm cuda-keyring_1.1-1_all.deb</code></td><td><code>apt</code> 소스가 NVIDIA 리포지토리로 업데이트되었습니다.</td></tr><tr><td>2. NVIDIA 드라이버 설치</td><td><code>sudo apt-get install cuda-drivers</code></td><td>리포지토리에서 최신 호환 NVIDIA 드라이버가 설치되었습니다.</td></tr><tr><td>3. 시스템 재부팅</td><td><code>sudo reboot</code></td><td>시스템이 재부팅됩니다. Secure Boot가 활성화된 경우 MOK 등록이 필요할 수 있습니다.</td></tr><tr><td>4. 드라이버 설치 확인</td><td><code>nvidia-smi</code></td><td>드라이버 버전, CUDA 호환성 버전 및 RTX 6000 Ada GPU 세부 정보를 표시합니다. 드라이버가 로드되어 작동하는지 확인합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-smi</code>가 실패하거나 GPU를 표시하지 않으면 문제 해결 섹션을 참조하십시오.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">IV. Ubuntu 24.04에 CUDA Toolkit 12.9 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA 드라이버가 올바르게 설치되고 확인되면 다음 단계는 CUDA Toolkit 버전 12.9를 설치하는 것입니다. CUDA Toolkit은 컴파일러, 라이브러리 및 도구를 포함하여 GPU 가속 애플리케이션을 만들기 위한 개발 환경을 제공합니다. 이전 섹션에서 구성한 NVIDIA 네트워크 리포지토리가 이 설치에 사용되며, Ubuntu 24.04 및 CUDA 12.9용 패키지를 특별히 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. CUDA Toolkit 12.9 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>CUDA Toolkit 패키지 설치:</strong> 개발 환경의 예측 가능성을 보장하기 위해 특정 버전의 CUDA Toolkit을 설치하는 것이 좋습니다. <code>cuda-toolkit-12-9</code> 패키지(또는 <code>cuda-12-9</code>와 유사한 이름의 메타 패키지)는 12.9 버전을 대상으로 합니다. 명시적인 버전을 사용하는 것이 일반적인 <code>sudo apt-get install cuda</code>보다 선호됩니다. 후자는 리포지토리 기본값이 변경될 경우 다른 버전을 설치할 수 있기 때문입니다. Bash 이 명령은 컴파일러(<code>nvcc</code>), 라이브러리 및 헤더를 포함한 CUDA Toolkit 12.9를 다운로드하고 설치합니다. Ubuntu 24.04 x86_64용 NVIDIA 리포지토리에는 CUDA 12.9용 특정 패키지가 나열되어 있어 이 방법을 통해 사용 가능함을 확인합니다. Ubuntu 24.04 기반 컨테이너에 NVIDIA CUDA 12.9.0이 존재한다는 점도 간접적인 지원을 나타냅니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get install cuda-toolkit-12-9</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. 환경 변수 설정 (설치 후 필수)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>시스템 및 개발 도구가 CUDA Toolkit 바이너리 및 라이브러리를 찾을 수 있도록 <code>PATH</code> 및 <code>LD_LIBRARY_PATH</code> 환경 변수를 업데이트해야 합니다. 이러한 변경 사항은 일반적으로 지속성을 위해 사용자의 <code>~/.bashrc</code> 파일에 추가됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>~/.bashrc</code>에 CUDA 경로 추가</strong>: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo \'export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}}\' &gt;&gt; ~/.bashrc echo \'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\' &gt;&gt; ~/.bashrc</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>현재 셸 세션에 변경 사항 적용: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>source ~/.bashrc</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>환경 변수 확인:</strong> 경로가 올바르게 추가되었는지 확인합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>출력에는 <code>PATH</code>에 <code>/usr/local/cuda-12.9/bin</code>이, <code>LD_LIBRARY_PATH</code>에 <code>/usr/local/cuda-12.9/lib64</code>가 표시되어야 합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo $PATH echo $LD_LIBRARY_PATH</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. CUDA Toolkit 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>철저한 확인을 통해 툴킷이 올바르게 설치되었고 GPU와 통신할 수 있는지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>nvcc</code> 버전 확인:</strong> NVIDIA CUDA 컴파일러(<code>nvcc</code>)는 툴킷의 핵심 구성 요소입니다. 해당 버전은 설치된 툴킷과 일치해야 합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>nvcc --version</code> 출력에는 \"Cuda compilation tools, release 12.9\"를 포함한 <code>nvcc</code>에 대한 정보가 표시되어야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA 샘플 컴파일 및 실행: &lt;이 부분은 실패&gt;</strong> NVIDIA는 툴킷의 기능을 테스트하기 위한 CUDA 샘플을 제공합니다. 이러한 샘플은 이제 GitHub에서 호스팅되며 일반적으로 툴킷 패키지와 함께 기본적으로 설치되지 않습니다.<ul><li>CUDA 샘플 리포지토리 복제:</li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>git</code>이 설치되어 있지 않으면 <code>sudo apt install git</code> 으로 설치합니다. </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>git clone &lt;https://github.com/NVIDIA/cuda-samples.git&gt; </code></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>cd cuda-samples</code><strong><code>deviceQuery</code> </strong></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><strong>빌드 및 실행:</strong><code>deviceQuery</code> 샘플은 CUDA 지원 장치와 해당 속성을 열거합니다.  </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>cd Samples/1_Utilities/deviceQuery </code></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>make</code></li></ul>./deviceQuery <code>성공적으로 실행되면 Nvidia A100에 대한 자세한 정보가 표시되고 `Result = PASS`로 끝납니다. 이는 CUDA 런타임이 GPU를 올바르게 식별하고 상호 작용할 수 있음을 확인합니다. 샘플이 GitHub로 마이그레이션됨에 따라 개발자는 이제 이러한 예제를 적극적으로 가져와야 하며, 이는 샘플이 종종 로컬 설치 경로에 포함되었던 이전 CUDA Toolkit 배포판과 달라진 점입니다.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 CUDA Toolkit 12.9 설치 및 확인 단계를 간략하게 설명합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>목적/예상 결과</th></tr></thead><tbody><tr><td>1. CUDA Toolkit 12.9 설치</td><td><code>sudo apt-get install cuda-toolkit-12-9</code></td><td>CUDA Toolkit 12.9 (컴파일러, 라이브러리, 헤더) 설치됨.</td></tr><tr><td>2. 환경 변수 설정</td><td><code>echo \'export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}}\' &gt;&gt; ~/.bashrc</code> &lt;br&gt; <code>echo \'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\' &gt;&gt; ~/.bashrc</code> &lt;br&gt; <code>source ~/.bashrc</code></td><td><code>PATH</code> 및 <code>LD_LIBRARY_PATH</code>가 CUDA 12.9 디렉터리를 포함하도록 업데이트됨.</td></tr><tr><td>3. <code>nvcc</code> 버전 확인</td><td><code>nvcc --version</code></td><td>CUDA Toolkit 버전 표시, 12.9인지 확인.</td></tr><tr><td>4. <code>deviceQuery</code> 샘플 컴파일 및 실행</td><td><code>git clone &lt;https://github.com/NVIDIA/cuda-samples.git</code>&gt;</td><td></td></tr><tr><td><code>cd cuda-samples/Samples/1_Utilities/deviceQuery</code> &lt;br&gt;</td><td></td><td></td></tr><tr><td><code>make</code> &lt;br&gt; <code>./deviceQuery</code></td><td><code>deviceQuery</code>가 성공적으로 컴파일 및 실행되어 Nvidia A100 세부 정보와 <code>Result = PASS</code>를 표시함. 툴킷 기능 및 GPU 통신 확인.</td><td></td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">V. CUDA 12.9용 cuDNN 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA CUDA Deep Neural Network 라이브러리(cuDNN)는 심층 신경망을 위한 GPU 가속 기본 요소 라이브러리입니다. 딥 러닝 프레임워크에서 고성능을 달성하는 데 필수적입니다. Ubuntu 24.04의 CUDA 12.9용 cuDNN은 드라이버 및 CUDA Toolkit에 사용된 것과 동일한 NVIDIA 네트워크 리포지토리에서 설치해야 합니다. 이 방법은 호환성을 보장하고 수동 tarball 방법에 비해 설치를 단순화합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. cuDNN 라이브러리 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Ubuntu 24.04 x86_64용 NVIDIA 리포지토리에는 CUDA 12.9용 특정 빌드를 포함하여 CUDA 12.x와 호환되는 cuDNN 9 패키지가 포함되어 있습니다. 설치에는 런타임 및 개발자 패키지를 가져오는 과정이 포함됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>cuDNN 런타임 및 개발자 라이브러리 설치:</strong> cuDNN의 패키지 이름은 특정할 수 있습니다. 의 목록(예: <code>cudnn9-cuda-12-9_9.10.1.4-1_amd64.deb</code>, <code>libcudnn9-cuda-12_9.10.1.4-1_amd64.deb</code>, <code>libcudnn9-dev-cuda-12_9.10.1.4-1_amd64.deb</code>) 및 일반적인 cuDNN 설치 패턴을 기반으로 다음 명령은 CUDA 12.x용 cuDNN 9를 대상으로 합니다. 설치된 CUDA 버전에 해당하는 메타 패키지를 사용하는 것이 가장 좋습니다. CUDA 12.x의 경우 일반적으로 <code>sudo apt-get -y install cudnn9-cuda-12</code> 명령이 제안됩니다. CUDA 12.9가 설치되어 있으므로 <code>apt</code>는 올바른 종속성을 해결해야 합니다. <code>cudnn9-cuda-12-9</code>와 같은 더 구체적인 메타 패키지를 사용할 수 있고 NVIDIA에서 이 목적을 위해 명확하게 문서화한 경우 더욱 정확할 것입니다.  </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>cuDNN 설치에 <code>apt</code>를 사용하는 것은 수동 방법보다 강력하게 권장됩니다. <code>apt</code>는 파일 배치, 권한 및 종속성을 올바르게 처리하여 더 강력하고 유지 관리 가능한 시스템을 만들기 때문입니다. 사용자가 CUDA 12.8용 cuDNN을 설치하려고 할 때 종속성으로 인해 12.9 패키지가 선호되었던 에서 암시된 버전 불일치와 같은 잠재적인 문제는 설치된 CUDA 12.9에 대한 올바른 메타 패키지를 대상으로 하여 완화됩니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>`# 최신 cuDNN 버전을 볼 수 있도록 패키지 목록 업데이트 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get update </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDA 12.x용 cuDNN 9 런타임 라이브러리 설치 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get install libcudnn9-cuda-12 </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDA 12.x용 cuDNN 9 개발자 라이브러리 설치 (헤더 포함) <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get install libcudnn9-dev-cuda-12`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. cuDNN 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>확인을 통해 cuDNN 라이브러리가 올바르게 설치되고 액세스 가능한지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>설치된 패키지 및 라이브러리/헤더 파일 확인:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>설치된 cuDNN 패키지 나열: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>libcudnn9</code> 및 <code>libcudnn9-dev</code>와 같은 패키지가 표시되어야 합니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>dpkg -l | grep libcudnn</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>헤더 파일 존재 및 버전 확인 (경로는 패키지 세부 정보에 따라 약간 다를 수 있지만 일반적으로 표준 포함 디렉터리에 있음): 기본 헤더 <code>cudnn_version.h</code>에는 버전 매크로가 포함되어 있습니다. <code>apt</code> 설치 후 일반적인 위치는 <code>/usr/include/x86_64-linux-gnu/</code> 내입니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이는 cuDNN 애플리케이션 컴파일에 필요한 헤더 파일이 있는지 확인하고 설치된 cuDNN 버전을 검사할 수 있도록 합니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>`# 버전 헤더 확인 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>ls -l /usr/include/x86_64-linux-gnu/cudnn_version.h </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDNN_MAJOR, CUDNN_MINOR, CUDNN_PATCHLEVEL 정의를 보려면 내용 표시 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>cat /usr/include/x86_64-linux-gnu/cudnn_version.h`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cuDNN 샘플 컴파일 및 실행 (mnistCUDNN):&lt;이 부분 실패&gt;</strong> NVIDIA는 리포지토리의 패키지를 통해 설치할 수 있는 cuDNN 샘플을 제공합니다.<ul><li><strong>cuDNN 샘플 설치:</strong><code>libcudnn9-samples</code> 패키지를 사용할 수 있습니다. </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>sudo apt-get install libcudnn9-samples</code><strong><code>mnistCUDNN</code> </strong></li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><strong>컴파일 및 실행:</strong> 샘플은 일반적으로 <code>/usr/src/cudnn_samples_v9/</code> 또는 유사한 위치에 설치됩니다. 이전 가이드에서는 때때로 <code>$HOME/cudnn_samples_v9/</code>를 참조합니다. 패키지 버전의 위치를 사용해야 합니다. </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>`# mnistCUDNN 샘플 디렉터리로 이동 정확한 경로는 패키지 버전에 따라 다를 수 있으므로 /usr/src/ 확인 </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>cd /usr/src/cudnn_samples_v9/mnistCUDNN </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>샘플 컴파일 </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>sudo make clean &amp;&amp; sudo make </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>(빌드 아티팩트에 대해 /usr/src가 사용자 쓰기 가능하지 않은 경우 sudo가 필요할 수 있음) 또는 샘플 디렉터리를 사용자 쓰기 가능한 위치로 먼저 복사: </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>cp -r /usr/src/cudnn_samples_v9 ~/my_cudnn_samples </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>cd ~/my_cudnn_samples/mnistCUDNN </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>make clean &amp;&amp; make </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>샘플 실행`</li></ul>./mnistCUDNN </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>성공적으로 실행되면 일반적으로 `Test passed!`가 인쇄됩니다. 이는 cuDNN이 설치된 CUDA Toolkit 및 GPU와 올바르게 작동하는지 종합적으로 확인합니다.</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 네트워크 리포지토리를 사용한 cuDNN 설치를 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>목적</th></tr></thead><tbody><tr><td>1. 패키지 목록 업데이트</td><td><code>sudo apt-get update</code></td><td>로컬 패키지 인덱스 새로 고침.</td></tr><tr><td>2. cuDNN 런타임 설치</td><td><code>sudo apt-get install libcudnn9-cuda-12</code></td><td>CUDA 12.x와 호환되는 cuDNN 9 런타임 라이브러리를 설치합니다.</td></tr><tr><td>3. cuDNN 개발자 패키지 설치</td><td><code>sudo apt-get install libcudnn9-dev-cuda-12</code></td><td>CUDA 12.x용 cuDNN 9 헤더 파일 및 개발 라이브러리를 설치합니다.</td></tr><tr><td>4. (선택 사항) cuDNN 샘플 설치</td><td><code>sudo apt-get install libcudnn9-samples</code></td><td>cuDNN 샘플 코드를 설치합니다.</td></tr><tr><td>5. 설치 확인</td><td>`dpkg -l \\</td><td>grep libcudnn<code>&lt;br&gt;</code>cat /usr/include/x86_64-linux-gnu/cudnn_version.h<code>&lt;br&gt; (샘플이 설치된 경우)</code>cd /usr/src/cudnn_samples_v9/mnistCUDNN &amp;&amp; make &amp;&amp;./mnistCUDNN`</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VI. GPU 가속을 위한 Docker 설정</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 컨테이너는 휴대 가능하고 재현 가능한 환경을 만들기 위해 AI 개발에 널리 사용됩니다. Docker 컨테이너가 Nvidia A100 GPU에 액세스할 수 있도록 하려면 NVIDIA Container Toolkit을 설치하고 Docker를 올바르게 구성해야 합니다. 이 툴킷은 이전의 <code>nvidia-docker2</code>를 대체하고 보다 모듈화된 접근 방식을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. Docker Engine 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker가 아직 설치되어 있지 않으면 공식 Docker 설명서를 따르십시오. Ubuntu에서의 일반적인 설치는 다음과 같습니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Docker의 <code>apt</code> 리포지토리 설정 (공식 Docker CE에 대해 아직 수행하지 않은 경우):</strong> 가장 최신 명령은 <a href=\"https://docs.docker.com/engine/install/ubuntu/%EB%A5%BC\">https://docs.docker.com/engine/install/ubuntu/를</a> 참조하십시오. 여기에는 일반적으로 Docker의 GPG 키와 리포지토리를 추가하는 과정이 포함됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker Engine 설치</strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**루트가 아닌 사용자로 Docker 관리 (권장):**Bash 그런 다음 로그아웃했다가 다시 로그인하거나 현재 터미널 세션에서 <code>newgrp docker</code>를 실행하여 그룹 변경 사항을 적용합니다. 이렇게 하면 <code>sudo</code> 없이 <code>docker</code> 명령을 실행할 수 있습니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo groupadd docker </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code># 그룹이 아직 존재하지 않는 경우 </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>sudo usermod -aG docker $USER</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NVIDIA Container Toolkit 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Container Toolkit은 Docker가 NVIDIA GPU와 상호 작용하는 데 필요한 구성 요소를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>NVIDIA Container Toolkit 리포지토리 구성:</strong> 다음 명령은 NVIDIA Container Toolkit용 GPG 키와 리포지토리를 추가합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \\\n    sed \'s#deb https://#deb &#91;signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g\' | \\\n    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>툴킷 패키지 설치</strong>:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo apt-get update </code>\n<code>sudo apt-get install -y nvidia-container-toolkit</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. NVIDIA 런타임을 사용하도록 Docker 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 데몬은 NVIDIA 런타임을 인식하도록 구성해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong><code>nvidia-ctk</code>를 사용하여 Docker 구성:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-ctk</code>(NVIDIA Container Toolkit CLI) 유틸리티는 Docker의 <code>daemon.json</code> 파일을 수정합니다. </p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo nvidia-ctk runtime configure --runtime=docker</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p><strong>Docker 데몬 다시 시작:</strong> Docker 서비스를 다시 시작하여 구성 변경 사항을 적용합니다. </p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo systemctl restart docker</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">D. Docker에서 GPU 액세스 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 컨테이너가 GPU에 액세스할 수 있는지 확인하려면 <code>nvidia-smi</code>를 실행하는 테스트 컨테이너를 실행합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>CUDA 기본 컨테이너 실행:</strong> 공식 NVIDIA CUDA 이미지를 사용합니다. CUDA 12.9 설정을 확인하려면 CUDA 12.9가 포함된 이미지가 이상적입니다. NVIDIA는 Docker Hub에 <code>nvidia/cuda</code> 이미지를 제공하고 보다 전문화된 컨테이너를 위해 <code>nvcr.io</code>를 제공합니다. 에서는 CUDA 12.9.0이 포함된 Ubuntu 24.04 기반 컨테이너를 언급하지만 Docker Hub에서 간단한 기본 이미지로 공개적으로 사용할 수 있는지 여부는 다를 수 있습니다. 일반적인 대체 방법은 Ubuntu 22.04와 같은 최신 Ubuntu LTS를 기반으로 하는 CUDA 12.9 이미지입니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>-gpus all</code> 플래그는 Docker에 사용 가능한 모든 GPU를 컨테이너에 액세스할 수 있도록 지시합니다. 설정이 올바르면 이 명령은 지정된 이미지를 가져오고(아직 없는 경우) 컨테이너 내에서 <code>nvidia-smi</code>를 실행합니다. 출력은 호스트의 <code>nvidia-smi</code> 출력과 유사해야 하며 Nvidia A100 및 드라이버 세부 정보를 표시합니다. 이는 NVIDIA Container Toolkit이 올바르게 작동하고 GPU 리소스가 Docker 환경으로 전달되고 있음을 확인합니다. CUDA 12.9 라이브러리가 포함된 컨테이너를 사용하면 이 CUDA 버전에 맞게 빌드된 Docker 내 애플리케이션이 예상대로 작동할 수 있도록 더욱 보장됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>`# 사용 가능하고 알려진 경우 Ubuntu 24.04 기반 이미지로 시도 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo docker run --rm --gpus all <a href=\"http://nvcr.io/nvidia/cuda:12.9.0-base-ubuntu24.04\">nvcr.io/nvidia/cuda:12.9.0-base-ubuntu24.04</a> <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>nvidia-smi </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>그렇지 않으면 쉽게 사용할 수 있는 CUDA 12.9 이미지 사용: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>nvidia-smi`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 NVIDIA Container Toolkit 설치를 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>하위 단계</th><th>명령</th><th>참고</th></tr></thead><tbody><tr><td>1. Docker Engine 설치</td><td>1a. Docker 리포지토리 설정</td><td>(공식 Docker 문서 참조)</td><td>공식 Docker CE가 설치되었는지 확인합니다.</td></tr><tr><td></td><td>1b. Docker 패키지 설치</td><td><code>sudo apt-get update</code> <br><br><code>sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></td><td>Docker 구성 요소를 설치합니다.</td></tr><tr><td></td><td>1c. 사용자를 <code>docker</code> 그룹에 추가</td><td><code>sudo usermod -aG docker $USER</code> <br><code>newgrp docker</code> (또는 로그아웃/로그인)</td><td><code>sudo</code> 없이 Docker를 실행할 수 있도록 합니다.</td></tr><tr><td>2. NVIDIA Container Toolkit 설치</td><td>2a. 툴킷 리포지토리 구성</td><td>`curl -fsSL...</td><td>sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list` (전체 명령은 텍스트 참조)</td></tr><tr><td></td><td>2b. 툴킷 패키지 설치</td><td><code>sudo apt-get update</code> <br><br><code>sudo apt-get install -y nvidia-container-toolkit</code></td><td>툴킷을 설치합니다.</td></tr><tr><td>3. Docker 런타임 구성</td><td>3a. <code>nvidia-ctk</code>로 Docker 구성</td><td><code>sudo nvidia-ctk runtime configure --runtime=docker</code></td><td>NVIDIA 런타임을 사용하도록 Docker의 <code>daemon.json</code>을 업데이트합니다.</td></tr><tr><td></td><td>3b. Docker 서비스 다시 시작</td><td><code>sudo systemctl restart docker</code></td><td>런타임 구성 변경 사항을 적용합니다.</td></tr><tr><td>4. GPU 액세스 확인</td><td>4a. 테스트 컨테이너 실행</td><td><code>sudo docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 nvidia-smi</code></td><td>Docker 컨테이너 내에서 GPU에 액세스할 수 있는지 확인합니다. 출력에 Nvidia A100가 표시되어야 합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VII. Nvidia NIM (NVIDIA Inference Microservices) 소개</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Inference Microservices (NIM)는 AI 모델 배포를 단순화하여 확장 가능하고 프로덕션 준비가 된 마이크로서비스로 전환하도록 설계된 사전 빌드되고 최적화된 컨테이너입니다. NIM은 배포 복잡성 감소, 모델별 최적화를 통한 성능 향상, 손쉬운 통합을 위한 표준화된 API와 같은 이점을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. Nvidia NIM의 전제 조건</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NIM을 배포하기 전에 다음 전제 조건이 충족되었는지 확인하십시오:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA GPU:</strong> 충분한 메모리가 있는 NVIDIA GPU가 필요합니다. Nvidia A100는 많은 NIM에 적합합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>운영 체제:</strong> 지원되는 Linux 배포판. <code>glibc &gt;= 2.35</code>가 포함된 Ubuntu 24.04는 호환됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA 드라이버:</strong> 섹션 III에서 완료한 대로 최신 NVIDIA 드라이버를 설치해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker 및 NVIDIA Container Toolkit:</strong> 섹션 VI에 자세히 설명된 대로 설치하고 구성해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA AI Enterprise 라이선스:</strong> LLM 및 기타 모델용 NVIDIA NIM을 자체 호스팅하려면 일반적으로 NVIDIA AI Enterprise 라이선스가 필요합니다. 사용자는 라이선스 조건을 확인하고 사용 가능한 경우 평가판 옵션을 살펴보아야 합니다. 이는 기술적 설정 외에 중요한 고려 사항입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC 계정 및 API 키:</strong> NIM 컨테이너 이미지를 가져오려면 NVIDIA의 NGC 카탈로그에 액세스해야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NIM 설정 단계</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NGC API 키 생성:</strong> NGC 컨테이너 레지스트리로 인증하려면 API 키가 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>NGC 웹사이트(일반적으로 <code>https://org.ngc.nvidia.com/setup/api-keys</code> 또는 <code>https://org.ngc.nvidia.com/setup/personal-keys</code>)로 이동합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>새 API 키를 생성합니다. 키 권한에 대해 \"NGC Catalog\" 서비스(또는 이를 포함하는 더 넓은 범위)가 선택되었는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>생성된 API 키를 복사하여 안전하게 보관합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 키를 환경 변수로 내보내기:</strong> NIM 컨테이너는 이 환경 변수를 사용하여 모델 자산 다운로드를 위해 NGC로 인증합니다.Bash <code>export NGC_API_KEY=\"YOUR_API_KEY_HERE\"</code> <code>\"YOUR_API_KEY_HERE\"</code>를 실제 키로 바꿉니다. 프로덕션 환경의 보안을 위해 이 키를 관리하는 더 안전한 방법(예: Docker 시크릿 또는 버전 제어에 커밋되지 않은 환경 파일)을 고려하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC Docker 레지스트리에 로그인:</strong> API 키를 사용하여 NVIDIA의 컨테이너 레지스트리인 <code>nvcr.io</code>에 로그인합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo \"$NGC_API_KEY\" | sudo docker login nvcr.io --username \'$oauthtoken\' --password-stdin</code> </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용자 이름 <code>$oauthtoken</code>은 API 키가 인증에 사용되고 있음을 나타내는 특수 문자열입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. Nvidia NIM 실행</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설정이 완료되면 NIM 컨테이너를 시작할 수 있습니다. 특정 모델 및 이미지 태그는 다를 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>실행할 NIM 식별 (선택 사항이지만 유익함):</strong> 사용 가능한 NIM은 NVIDIA API 카탈로그(<code>https://build.nvidia.com</code>)를 탐색하거나 NGC CLI 도구(설치된 경우)를 <code>ngc registry image list --format_type csv nvcr.io/nim/*</code>와 같은 명령으로 사용하여 찾을 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시: Llama 3 NIM 시작:</strong> 다음은 예시입니다. <code>MODEL_NIM_PATH</code> 및 <code>NIM_IMAGE_TAG</code>를 NGC 카탈로그에서 원하는 모델의 실제 경로 및 태그로 바꾸십시오.Bash `# 예시: NGC의 실제 모델 경로 및 태그로 바꾸십시오. export MODEL_NIM_PATH=\"meta/llama3-8b-instruct\" export NIM_IMAGE_TAG=\"1.0.0\" # 예시 태그, 최신 버전은 NGC 확인 export NIM_IMAGE_NAME=\"<a href=\"http://nvcr.io/nim/$%7BMODEL_NIM_PATH%7D:$%7BNIM_IMAGE_TAG%7D\">nvcr.io/nim/${MODEL_NIM_PATH}:${NIM_IMAGE_TAG}</a>\" export LOCAL_NIM_CACHE=\"$HOME/.cache/nim\" # 모델 아티팩트용 로컬 캐시 mkdir -p \"$LOCAL_NIM_CACHE\" export CONTAINER_NAME=\"nim_llama3_8b_instruct\" sudo docker run -it --rm --name ${CONTAINER_NAME} \\ --gpus all \\ --runtime=nvidia \\ -e NGC_API_KEY \\ -v \"${LOCAL_NIM_CACHE}:/opt/nim/.cache\" \\ -u $(id -u):$(id -g) \\ -p 8000:8000 \\ \"${NIM_IMAGE_NAME}\"` 주요 Docker 실행 매개변수 설명 :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>-gpus all</code>: 사용 가능한 모든 GPU를 컨테이너에 노출합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>-runtime=nvidia</code>: NVIDIA 컨테이너 런타임을 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>e NGC_API_KEY</code>: 모델 다운로드를 위해 NGC API 키를 컨테이너에 전달합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>v \"${LOCAL_NIM_CACHE}:/opt/nim/.cache\"</code>: 다운로드한 모델 가중치 및 아티팩트용 캐시로 로컬 디렉터리를 마운트하여 후속 실행 시 재다운로드를 방지합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>u $(id -u):$(id -g)</code>: 마운트된 캐시와의 권한 문제를 방지하기 위해 현재 사용자의 ID 및 그룹 ID로 컨테이너를 실행합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>p 8000:8000</code>: 호스트의 포트 8000을 NIM 서비스가 일반적으로 수신 대기하는 컨테이너의 포트 8000에 매핑합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>${NIM_IMAGE_NAME}</code>: <code>nvcr.io</code>의 NIM 컨테이너 이미지 전체 이름 및 태그입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">D. NIM과 상호 작용</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NIM 컨테이너가 실행되면 모델을 다운로드하고(아직 캐시되지 않은 경우) 추론 서버를 시작합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>서버 준비 대기:</strong> 컨테이너 로그(<code>sudo docker logs -f ${CONTAINER_NAME}</code>)에서 서버가 준비되었음을 나타내는 메시지(예: \"NIM server is ready\" 또는 유사 메시지)를 모니터링합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**상태 엔드포인트 확인:**Bash 성공적인 응답(예: 상태 \"ready\"인 HTTP 200)은 서버가 작동 중임을 나타냅니다. <code>curl &lt;http://localhost:8000/v1/health/ready</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**NIM에서 제공하는 모델 나열:**Bash 그러면 이 특정 NIM 인스턴스에서 제공하는 모델이 표시됩니다. <code>curl &lt;http://localhost:8000/v1/models</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>추론 요청 보내기:</strong> LLM NIM의 경우 API는 종종 OpenAI와 호환됩니다. 채팅 완료 모델 예시 : Bash 많은 LLM에 OpenAI 호환 API를 사용하면 개발자가 기존 클라이언트 라이브러리를 종종 활용할 수 있으므로 통합이 단순화됩니다. <code>curl -X POST &lt;http://localhost:8000/v1/chat/completions&gt; \\\\ -H \"Content-Type: application/json\" \\\\ -H \"Authorization: Bearer YOUR_NGC_API_KEY\" \\\\ -d \'{ \"model\": \"meta/llama3-8b-instruct\", // v1/models 출력의 모델 이름 사용 \"messages\":, \"temperature\": 0.7, \"max_tokens\": 100 }\'</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">E. NIM 컨테이너 중지</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>sudo docker stop ${CONTAINER_NAME}</code></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 NVIDIA NIM의 주요 Docker 실행 매개변수를 강조 표시합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>매개변수</th><th>예시 값</th><th>목적</th></tr></thead><tbody><tr><td><code>--gpus all</code></td><td><code>all</code></td><td>모든 호스트 GPU를 컨테이너에서 사용할 수 있도록 합니다.</td></tr><tr><td><code>--runtime=nvidia</code></td><td><code>nvidia</code></td><td>GPU 액세스를 위한 NVIDIA 컨테이너 런타임을 지정합니다.</td></tr><tr><td><code>-e NGC_API_KEY</code></td><td>(환경 변수 값)</td><td>NGC에서 모델/자산 다운로드 인증을 위해 NGC API 키를 컨테이너에 전달합니다.</td></tr><tr><td><code>-v LOCAL_NIM_CACHE:/opt/nim/.cache</code></td><td><code>\"$HOME/.cache/nim:/opt/nim/.cache\"</code></td><td>다운로드한 모델을 유지하고 재다운로드를 방지하기 위해 컨테이너 내 캐시로 호스트 디렉터리를 마운트합니다.</td></tr><tr><td><code>-p HOST_PORT:CONTAINER_PORT</code></td><td><code>8000:8000</code></td><td>호스트의 포트를 NIM 서비스가 수신 대기하는 컨테이너 내부의 포트에 매핑합니다.</td></tr><tr><td><code>NIM_IMAGE_NAME</code></td><td><code>nvcr.io/nim/meta/llama3-8b-instruct:1.0.0</code></td><td>실행할 특정 NIM의 전체 Docker 이미지 이름 및 태그입니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VIII. (선택 사항) CUDA 12.9를 지원하는 AI 프레임워크 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>드라이버, CUDA Toolkit, cuDNN 및 Docker를 설정한 후 개발자는 일반적으로 PyTorch 또는 TensorFlow와 같은 AI 프레임워크를 설치합니다. 이는 종속성을 효과적으로 관리하기 위해 일반적으로 Python 가상 환경 내에서 <code>pip</code>를 사용하여 설치됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>시스템의 NVIDIA 드라이버는 CUDA 12.9와 호환되고 CUDA Toolkit 12.9가 설치되어 있지만, AI 프레임워크용 사전 컴파일된 <code>pip</code> 패키지는 약간 이전 CUDA 버전(예: CUDA 12.1, 12.3 또는 12.8)에 대해 빌드될 수 있다는 점에 유의해야 합니다. 이러한 패키지는 일반적으로 순방향 호환되며 드라이버의 호환성으로 인해 올바르게 실행되지만 프레임워크 자체는 핵심 작업을 위해 컴파일된 CUDA 버전을 활용합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. PyTorch</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>PyTorch는 종종 최신 CUDA 버전과 호환되는 <code>pip</code> 휠을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>**Python 가상 환경 생성 및 활성화:**Bash <code>python3 -m venv ~/pytorch_env source ~/pytorch_env/bin/activate</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>PyTorch 설치:</strong> 최신 명령은 공식 PyTorch 웹사이트(<a href=\"https://pytorch.org/get-started/locally/\">https://pytorch.org/get-started/locally/</a>)를 참조하십시오. CUDA 12.x의 경우 다음과 유사한 명령이 일반적입니다. 최근 정보에 따르면 Linux용 <code>cu128</code>(CUDA 12.8) 휠이 포함된 PyTorch 2.7을 사용할 수 있으며 CUDA 12.9 환경과 호환되어야 합니다. 특정 <code>cu129</code> 휠을 사용할 수 있게 되면 해당 휠이 선호됩니다. 그렇지 않으면 <code>cu121</code> 또는 <code>cu128</code>이 일반적인 선택입니다. Bash*(설치 시점에 PyTorch에서 CUDA 12.9에 대해 더 직접적이거나 최신 호환 휠(예: <code>cu129</code> 또는 <code>cu121</code>)을 권장하는 경우 <code>cu128</code>을 조정하십시오).* <code>pip3 install torch torchvision torchaudio --index-url &lt;https://download.pytorch.org/whl/cu128</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**PyTorch 설치 확인:**Python Python 파일(예: <code>verify_pytorch.py</code>)로 저장하고 <code>python verify_pytorch.py</code>를 실행합니다. <code>torch.cuda.is_available()</code>는 <code>True</code>를 반환해야 합니다. <code>import torch print(f\"PyTorch Version: {torch.__version__}\") print(f\"CUDA Available: {torch.cuda.is_available()}\") if torch.cuda.is_available(): print(f\"CUDA Version (PyTorch built with): {torch.version.cuda}\") print(f\"GPU Name: {torch.cuda.get_device_name(0)}\")</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. TensorFlow</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>TensorFlow는 Python 환경 내에 호환되는 CUDA 및 cuDNN 라이브러리를 번들로 제공하여 GPU 설정을 단순화하려는 <code>tensorflow[and-cuda]</code> pip 패키지를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Python 가상 환경 생성 및 활성화: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>python3 -m venv ~/tensorflow_env source ~/tensorflow_env/bin/activate</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 지원 TensorFlow 설치:</strong><code>tensorflow[and-cuda]</code> 패키지는 특정 버전의 CUDA 및 cuDNN을 번들로 제공합니다. 예를 들어, 최신 TensorFlow 버전은 CUDA 12.3 및 cuDNN 8.9.7을 번들로 제공할 수 있습니다. 이는 TensorFlow가 시스템에 설치된 CUDA 12.9 및 해당 cuDNN을 직접 사용하지 않고 이러한 번들 라이브러리를 작업에 사용하지만 CUDA 12.9 호환 드라이버에서 실행된다는 의미입니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>pip install -U pip # pip 업그레이드 pip install tensorflow[and-cuda]</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**TensorFlow 설치 확인:**Python <code>import tensorflow as tf print(f\"TensorFlow Version: {tf.__version__}\") gpus = tf.config.list_physical_devices(\'GPU\') if gpus: print(f\"Num GPUs Available: {len(gpus)}\") for gpu in gpus: print(f\"GPU Name: {gpu.name}\") else: print(\"No GPU detected by TensorFlow\")</code> Python 파일(예: <code>verify_tensorflow.py</code>)로 저장하고 <code>python verify_tensorflow.py</code>를 실행합니다. 출력에 RTX 6000 Ada가 나열되어야 합니다. TensorFlow에 대해 시스템 CUDA 12.9와의 정확한 정렬이 엄격하게 필요한 경우 구성 프로세스 중에 CUDA 12.9 및 호환되는 cuDNN 버전을 지정하여 소스에서 TensorFlow를 빌드해야 합니다. 이는 고급 절차이며 TensorFlow 자체에서 해당 특정 CUDA 버전에 연결된 특정 기능이나 최적화가 필요한 경우가 아니면 일반적으로 필요하지 않습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 AI 프레임워크 설치에 대한 빠른 참조를 제공합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>프레임워크</th><th>권장 설치 명령 (CUDA 12.x 호환성용)</th><th>확인 명령 (Python)</th><th>CUDA 12.9 참고 사항</th></tr></thead><tbody><tr><td>PyTorch</td><td><code>pip3 install torch torchvision torchaudio --index-url &lt;https://download.pytorch.org/whl/cu128</code>&gt;</td><td><code>import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda if torch.cuda.is_available() else \"\")</code></td><td>사전 빌드된 휠(예: <code>cu128</code> 또는 <code>cu121</code>)은 일반적으로 CUDA 12.9 드라이버/툴킷과 순방향 호환됩니다. 인쇄된 <code>torch.version.cuda</code>는 PyTorch가 빌드된 CUDA 버전을 보여줍니다.</td></tr><tr><td>TensorFlow</td><td><code>pip install tensorflow[and-cuda]</code></td><td><code>import tensorflow as tf; print(tf.__version__); print(tf.config.list_physical_devices(\'GPU\'))</code></td><td><code>tensorflow[and-cuda]</code> 패키지는 자체 CUDA/cuDNN(예: 최신 TF의 경우 CUDA 12.3/cuDNN 8.9.7)을 번들로 제공합니다. 시스템의 CUDA 12.9를 직접 사용하지 않고 이를 사용하지만 12.9 호환 드라이버에서 실행됩니다. 정확한 12.9 연결을 위해서는 소스에서 빌드하십시오.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">IX. 일반적인 문제 해결</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>신중하게 설치하더라도 문제가 발생할 수 있습니다. 이 섹션에서는 일반적인 문제와 기본 문제 해결 단계를 다룹니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA 드라이버 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>nvidia-smi</code> 명령 실패, GPU가 표시되지 않거나 시스템이 저해상도 디스플레이로 부팅됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Nouveau 충돌:</strong> Nouveau가 블랙리스트에 있는지 확인합니다 (섹션 II.C.4).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot MOK:</strong> Secure Boot가 활성화된 경우 NVIDIA 드라이버의 MOK가 올바르게 등록되지 않았을 수 있습니다. 재부팅하고 MOK 관리 옵션을 찾거나 Secure Boot를 일시적으로 비활성화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>설치 오류:</strong> 드라이버 설치 중 오류에 대해 <code>apt</code> 로그(<code>/var/log/apt/term.log</code>) 및 커널 메시지(<code>dmesg | grep -i nvidia</code>)를 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>드라이버 재설치:</strong> 완전히 새로 설치해야 할 수 있습니다. 재설치하기 전에 기존 NVIDIA 패키지를 제거합니다 (<code>sudo apt purge \'*nvidia*\' &amp;&amp; sudo apt autoremove</code>).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>\"GPU has fallen off the bus\":</strong> 이는 하드웨어 문제(GPU 장착, 전원 공급 장치, PCIe 슬롯), 과열 또는 심각한 드라이버/커널 비호환성을 나타낼 수 있는 심각한 오류입니다. 먼저 물리적 연결을 확인하십시오. 소프트웨어 비호환성인 경우 다른 드라이버 버전(이전 또는 최신 안정 버전)을 시도하면 도움이 될 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA Toolkit 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>nvcc: command not found</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>환경 변수:</strong> <code>PATH</code> 및 <code>LD_LIBRARY_PATH</code>가 올바르게 설정되지 않았거나 현재 터미널 세션에서 <code>~/.bashrc</code> 변경 사항이 적용되지 않았습니다 (섹션 IV.B). <code>echo $PATH</code> 및 <code>echo $LD_LIBRARY_PATH</code>로 확인합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증상:</strong> CUDA 샘플(예: <code>deviceQuery</code>)이 컴파일 또는 실행되지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>드라이버-툴킷 불일치:</strong> 리포지토리 설치는 이를 최소화하지만 드라이버가 CUDA 툴킷 버전을 지원하는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>누락된 종속성:</strong> <code>build-essential</code> 또는 기타 개발 도구가 누락되었을 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>잘못된 툴킷 버전:</strong> <code>nvcc --version</code>이 예상과 다른 버전을 표시합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cuDNN 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> AI 프레임워크 또는 애플리케이션에서 누락된 cuDNN 라이브러리(예: <code>libcudnn.so.9: cannot open shared object file</code>)를 보고합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>설치 미완료:</strong> cuDNN 런타임(<code>libcudnn9-cuda-12</code>) 또는 개발자 패키지(<code>libcudnn9-dev-cuda-12</code>)가 올바르게 설치되지 않았을 수 있습니다. <code>dpkg -l | grep libcudnn</code>으로 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>라이브러리 경로:</strong> <code>LD_LIBRARY_PATH</code>에 cuDNN 라이브러리가 설치된 디렉터리가 포함되어 있지 않을 수 있습니다 (<code>apt</code>는 일반적으로 시스템 라이브러리 경로를 통해 이를 처리하지만). <code>sudo ldconfig -p | grep libcudnn</code>은 동적 링커가 라이브러리를 찾는지 보여줄 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker GPU 액세스 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>docker run --gpus all...</code>이 NVIDIA 런타임 또는 GPU 액세스와 관련된 오류로 실패합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA Container Toolkit:</strong> 설치되지 않았거나 <code>nvidia-ctk runtime configure --runtime=docker</code>가 실행되지 않았거나 구성 후 Docker 데몬이 다시 시작되지 않았습니다 (섹션 VI.C).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker 데몬:</strong> Docker 서비스가 실행 중이고 구성 변경 후 다시 시작되었는지 확인합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증상:</strong> 호스트에서는 <code>nvidia-smi</code>가 작동하지만 GPU 지원 컨테이너 내부에서는 작동하지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Docker의 <code>daemon.json</code>에 있는 NVIDIA 런타임 구성 문제.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>잘못된 <code>-gpus</code> 플래그 사용 또는 호환되지 않는 기본 이미지.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>일반적인 문제 해결 팁:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>시스템 로그 확인:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>dmesg</code>: 커널 링 버퍼, 하드웨어 및 모듈 로드 문제에 유용합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>journalctl -xe</code>: 자세한 시스템 로그, 종종 서비스 오류를 표시합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>/var/log/syslog</code>: 일반 시스템 메시지.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>/var/log/nvidia-installer.log</code>: NVIDIA의 <code>.run</code> 파일을 사용하여 드라이버를 설치한 경우 (여기서는 권장하지 않음).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>재부팅:</strong> 중요한 드라이버 또는 커널 모듈 변경 후에는 종종 재부팅이 필수적입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA 개발자 포럼:</strong> 특정 문제에 대한 도움을 받을 수 있는 귀중한 리소스입니다. 시스템, 설치된 소프트웨어 버전 및 오류 메시지에 대한 자세한 정보를 제공하십시오.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-smi</code>로 드라이버를 확인하고, <code>nvcc</code> 및 샘플로 CUDA를 확인하고, cuDNN을 확인하고, 마지막으로 Docker를 확인하는 체계적인 접근 방식은 문제가 있을 수 있는 부분을 격리하는 데 도움이 됩니다. 특히 CUDA 및 cuDNN의 많은 문제는 잘못된 환경 변수 설정이나 조정된 리포지토리에서 신중하게 설치하지 않은 경우 구성 요소 버전 간의 불일치로 인해 발생합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">X. 결론 및 모범 사례</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이 보고서는 NVIDIA RTX 6000 Ada 그래픽 카드를 갖춘 Ubuntu 24.04 워크스테이션에서 강력한 AI 개발 환경을 구축하는 과정을 자세히 설명했습니다. 공식 NVIDIA 리포지토리를 사용하여 NVIDIA 드라이버, CUDA Toolkit 12.9 및 해당 cuDNN 라이브러리를 체계적으로 설치함으로써 개발자는 안정적이고 고성능의 기반을 확보할 수 있습니다. 또한 NVIDIA Container Toolkit을 사용한 Docker 구성은 휴대 가능하고 재현 가능한 GPU 가속 워크플로를 가능하게 하며, NVIDIA NIM 소개는 간소화된 AI 모델 배포 경로를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>건강한 AI 개발 환경 유지를 위한 주요 모범 사례:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>공식 리포지토리 활용:</strong> 가능하면 NVIDIA의 공식 <code>apt</code> 리포지토리에서 NVIDIA 드라이버, CUDA Toolkit 및 cuDNN을 설치하십시오. 이 방법은 일반적으로 구성 요소 호환성을 보장하고 업데이트를 단순화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>버전 고정 (고려 사항):</strong> 프로덕션 또는 중요한 연구 환경의 경우 <code>apt</code> 기본 설정을 사용하여 드라이버 및 CUDA 구성 요소의 버전을 고정하여 기존 워크플로와 비호환성을 유발할 수 있는 의도하지 않은 업그레이드를 방지하는 것을 고려하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Python 가상 환경:</strong> AI 프로젝트에는 항상 Python 가상 환경(예: <code>venv</code>, <code>conda</code>)을 사용하십시오. 이렇게 하면 종속성을 격리하여 PyTorch 또는 TensorFlow와 같은 라이브러리의 다른 버전이 필요한 프로젝트 간의 충돌을 방지합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>정기적인 문서 참조:</strong> AI 및 GPU 컴퓨팅 환경은 빠르게 발전합니다. 최신 호환성 정보, 기능 및 모범 사례를 위해 CUDA, cuDNN, 드라이버 및 AI 프레임워크에 대한 공식 NVIDIA 문서를 정기적으로 확인하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 사용률 모니터링:</strong> 개발 및 배포 중에 <code>nvidia-smi</code> 또는 NVIDIA Nsight와 같은 도구를 사용하여 GPU 사용률, 메모리 사용량 및 성능을 모니터링하십시오. 이는 병목 현상을 식별하고 GPU 리소스가 효율적으로 사용되고 있는지 확인하는 데 도움이 됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC API 키 보안:</strong> NVIDIA NIM 또는 기타 NGC 리소스를 사용할 때 NGC API 키를 기밀로 유지하고 안전하게 관리하십시오. 스크립트에 키를 하드코딩하거나 버전 제어에 커밋하지 마십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>체계적인 업데이트:</strong> 중요한 워크스테이션에 적용하기 전에 가능하면 스테이징 환경에서 테스트하여 드라이버 및 CUDA 구성 요소 업데이트를 신중하게 계획하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커뮤니티 및 지원:</strong> 문제 해결 및 커뮤니티 지원을 위해 NVIDIA 개발자 포럼과 같은 리소스를 활용하십시오.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>이러한 지침과 제공된 자세한 설치 단계를 따르면 사용자는 Ubuntu 24.04에서 최첨단 AI 코딩 및 연구를 위해 NVIDIA RTX 6000 Ada 워크스테이션의 잠재력을 극대화할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_local\">https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_local</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>CUDA Toolkit Installer</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Installation Instructions:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin\nsudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/12.9.0/local_installers/cuda-repo-ubuntu2404-12-9-local_12.9.0-575.51.03-1_amd64.deb\nsudo dpkg -i cuda-repo-ubuntu2404-12-9-local_12.9.0-575.51.03-1_amd64.deb\nsudo cp /var/cuda-repo-ubuntu2404-12-9-local/cuda-*-keyring.gpg /usr/share/keyrings/\nsudo apt-get update\nsudo apt-get -y install cuda-toolkit-12-9\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>Additional installation options are detailed here.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Driver Installer</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Driver Instructions (choose one option)</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To install the open kernel module flavor:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo apt-get install -y nvidia-open\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>To install the proprietary kernel module flavor:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo apt-get install -y cuda-drivers\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>To switch between NVIDIA Driver kernel module flavors see here.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The CUDA Toolkit contains Open-Source Software. The source code can be found here. The checksums for the installer and patches can be found in Installer Checksums. For further information, see the Installation Guide for Linux and the CUDA Quick Start Guide.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Ubuntu 20.04/22.04/24.04, Debian 12</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To switch from proprietary to open:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># apt install --autoremove --purge nvidia-open\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>￼ To switch from open to proprietary:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># apt install --autoremove --purge cuda-drivers\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">참고자료</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://velog.io/@scuderia/리눅스-24.04-cuda-cudnn-설치\">https://velog.io/@scuderia/리눅스-24.04-cuda-cudnn-설치</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_network\">https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_network</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>nividia driver 설치</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>sudo apt install nvidia-cuda-toolkit</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>llama-cpp-python version available for CUDA 11.7.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>cuda</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.cherryservers.com/blog/install-cuda-ubuntu\">https://www.cherryservers.com/blog/install-cuda-ubuntu</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=22.04&amp;target_type=deb_local\">https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=22.04&amp;target_type=deb_local</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Nvidia NIM</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html\">https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-22-04\">https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-22-04</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>nvidia GPU on Docker</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.howtogeek.com/devops/how-to-use-an-nvidia-gpu-with-docker-containers\">https://www.howtogeek.com/devops/how-to-use-an-nvidia-gpu-with-docker-containers</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.cyberciti.biz/faq/how-to-install-nvidia-driver-on-centos-7-linux\">https://www.cyberciti.biz/faq/how-to-install-nvidia-driver-on-centos-7-linux</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7\">https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->','NVIDIA- GPU 세팅 종합가이드','','inherit','closed','closed','','10-revision-v1','','','2025-10-22 21:31:59','2025-10-22 12:31:59','',10,'https://rndpolicy.org/aidev/?p=512',0,'revision','',0),
(513,1,'2025-10-22 21:33:09','2025-10-22 12:33:09','<!-- wp:paragraph -->\n<p>Ubuntu 24.04 및 Nvidia A100 환경에서 NVIDIA 드라이버, CUDA 12.9 및 AI 환경 설정 종합 가이드</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Nvidia A100 그래픽 카드가 장착된 Ubuntu 24.04 워크스테이션에 NVIDIA 드라이버 및 CUDA Toolkit 12.9를 설치하는 체계적인 가이드를 제공합니다. 또한 GPU 가속 워크로드를 위한 Docker 구성 방법을 자세히 설명하고 NVIDIA Inference Microservices (NIM)를 소개합니다. 이 설정은 고급 AI 코딩 및 개발의 기초가 됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">I. 도입</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>인공 지능(AI) 및 머신 러닝(ML) 개발 환경은 강력한 하드웨어와 세심하게 구성된 소프트웨어 스택을 필요로 합니다. NVIDIA Nvidia A100 그래픽 카드는 48GB GDDR6 ECC 메모리와 18,176개의 CUDA 코어를 통해 AI, 렌더링 및 고성능 컴퓨팅 작업에 탁월한 성능을 제공합니다. Ubuntu 24.04 LTS는 이러한 까다로운 워크로드를 위한 안정적이고 널리 채택된 플랫폼 역할을 합니다. 이 가이드는 NVIDIA 드라이버, CUDA Toolkit 버전 12.9 및 필요한 cuDNN 라이브러리를 올바르게 설치하여 안정적인 AI 개발 환경을 구축하는 데 중점을 둡니다. 또한 Docker 컨테이너 내에서 GPU 가속을 활용하는 일반적인 요구 사항을 해결하고 NVIDIA NIM을 사용하여 모델을 배포하는 초기 단계를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>여기에 설명된 절차는 호환성을 보장하고 최신 안정 소프트웨어 버전에 대한 액세스를 위해 공식 NVIDIA 리포지토리를 사용하는 것을 우선시합니다. 각 주요 설치 단계에는 각 구성 요소의 성공적인 설정을 확인하기 위한 검증 절차가 함께 제공됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">II. 시스템 요구 사항 및 초기 점검</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설치 프로세스를 시작하기 전에 시스템이 필요한 하드웨어 및 소프트웨어 요구 사항을 충족하고 기존 환경이 준비되었는지 확인하는 것이 중요합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. 하드웨어 요구 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. 소프트웨어 요구 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>운영 체제:</strong> Ubuntu 24.04 LTS (Noble Numbat) x86_64. Nvidia A100 는 Ubuntu 24.04 LTS에서 테스트되었습니다. CUDA 12.9도 Ubuntu 24.04를 지원합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커널 헤더:</strong> 드라이버 설치에 필요합니다. 현재 실행 중인 커널과 일치해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>gcc 컴파일러:</strong> CUDA 샘플 및 애플리케이션 컴파일에 필요합니다. Ubuntu 24.04에는 일반적으로 호환되는 버전이 포함되어 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot:</strong> 시스템의 UEFI/BIOS에서 Secure Boot가 활성화된 경우 드라이버 설치 중에 추가 단계(MOK 등록)가 필요합니다. 설치 프로세스를 위해 Secure Boot를 일시적으로 비활성화하는 것이 더 간단한 경우가 많지만, 일부 가이드에서는 키 등록 방법을 제안합니다. 이 가이드는 Secure Boot가 활성화되어 있을 수 있다고 가정하며 MOK 등록이 요청될 수 있는 시점을 명시합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. 설치 전 시스템 점검 및 업데이트</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>GPU 감지 확인:</strong> 시스템이 Nvidia A100 를 인식하는지 확인합니다<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>lspci | grep -i nvidia</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>출력에 NVIDIA 그래픽 카드가 표시되어야 합니다. 그렇지 않은 경우 물리적 설치 및 BIOS 설정을 확인하십시오. Nvidia A100의 장치 ID가 출력에 나타날 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 패키지 업데이트:</strong> 최신 상태의 시스템으로 시작하는 것이 좋습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt update sudo apt upgrade -y</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커널 헤더 및 개발 도구 설치:</strong> 이는 드라이버 설치 중 커널 모듈 빌드에 필수적입니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt install linux-headers-$(uname -r) build-essential</code> <code>build-essential</code> </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>패키지에는 <code>gcc</code>, <code>g++</code>, <code>make</code> 및 기타 필요한 도구가 포함되어 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>충돌하는 드라이버 처리 (Nouveau):</strong> 오픈 소스 Nouveau 드라이버는 NVIDIA의 독점 드라이버와 충돌할 수 있습니다. 블랙리스트에 추가하는 것이 종종 권장됩니다. 최신 NVIDIA 설치 프로그램이 이를 처리하지만 명시적인 블랙리스트 추가는 문제를 예방할 수 있습니다. <code>/etc/modprobe.d/blacklist-nouveau.conf</code> 파일을 만듭니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo nano /etc/modprobe.d/blacklist-nouveau.conf</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다음 줄을 추가합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>blacklist nouveau options nouveau modeset=0</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>파일을 저장한 다음 initramfs를 업데이트하고 재부팅합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo update-initramfs -u </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>sudo reboot</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>재부팅 후 드라이버 설치를 진행합니다. 이 단계는 NVIDIA 독점 드라이버를 위한 더 깨끗한 환경을 보장하여 설치 실패 또는 불안정한 그래픽 환경으로 이어질 수 있는 잠재적인 충돌을 최소화하는 데 도움이 됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">III. Ubuntu 24.04에서 Nvidia A100 용 NVIDIA 드라이버 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>올바른 NVIDIA 드라이버를 설치하는 것은 AI 워크로드를 위해 Nvidia A100 을 활용하기 위한 기본 단계입니다. 권장되는 방법은 공식 NVIDIA CUDA 네트워크 리포지토리를 사용하는 것입니다. 이는 드라이버와 CUDA Toolkit 간의 최적의 호환성을 보장하기 때문입니다. 이 접근 방식은 NVIDIA가 소프트웨어 스택을 위해 이러한 리포지토리를 관리하므로 일반적인 Ubuntu 드라이버나 타사 PPA를 사용하는 것보다 전문 AI/ML 개발에 일반적으로 더 강력합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. NVIDIA CUDA 네트워크 리포지토리 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA CUDA 리포지토리는 드라이버, CUDA Toolkit 및 기타 관련 소프트웨어에 대한 액세스를 제공합니다. Ubuntu 24.04의 경우 리포지토리를 다음과 같이 구성해야 합니다. 이 명령은 네트워크 리포지토리 설정에 대한 NVIDIA 문서에 제공된 구조를 기반으로 하며 Ubuntu 24.04에 맞게 조정되었으며, 전용 패키지 목록이 있는 것으로 확인되었습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA CUDA 리포지토리 키 및 리포지토리 소스 추가:</strong><code>cuda-keyring</code> 패키지는 NVIDIA 패키지 서명에 사용되는 GPG 키를 설치하여 패키지의 신뢰성을 보장합니다. Bash 이 시퀀스는 먼저 키링 패키지를 다운로드하고 <code>dpkg</code>를 사용하여 설치한 다음(NVIDIA GPG 키 등록) 새로 추가된 NVIDIA 리포지토리의 패키지를 포함하도록 로컬 <code>apt</code> 패키지 목록을 업데이트합니다. `# cuda-keyring 패키지 다운로드 및 설치 참고: 정확한 URL은 변경될 수 있습니다. 항상 Ubuntu 24.04용 최신 NVIDIA CUDA 다운로드 페이지를 참조하십시오. 다음 구조가 일반적입니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>wget <a href=\"https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb\">https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb</a> sudo dpkg -i cuda-keyring_1.1-1_all.deb </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>sudo apt-get update </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다운로드한 deb 파일 정리 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>rm cuda-keyring_1.1-1_all.deb`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NVIDIA 드라이버 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>리포지토리가 구성되면 NVIDIA 드라이버를 설치할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>cuda-drivers</code> 메타 패키지 설치:</strong> 이 메타 패키지는 리포지토리에서 사용 가능한 CUDA 브랜치와 호환되는 최신 적절한 드라이버 시리즈를 설치하도록 설계되었습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get install cuda-drivers</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>NVIDIA NIM 문서는 최적의 성능을 위해 드라이버 버전 550 이상을 권장합니다. CUDA 12.x 리포지토리 브랜치의 <code>cuda-drivers</code> 패키지는 적합한 버전을 제공해야 합니다. NVIDIA의 오픈 커널 모듈을 사용하는 드라이버 버전 560.35.03으로 Nvidia A100를 사용하여 Ubuntu 24.04에서 테스트한 내용이 언급되었습니다. <code>cuda-drivers</code> 패키지는 종종 설치 중에 옵션을 제공하거나 감지된 하드웨어에 대해 독점 또는 오픈 커널 모듈을 모두 사용할 수 있는 경우 둘 중 하나를 사용하도록 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 재부팅:</strong> 새 커널 모듈이 로드되고 드라이버가 활성화되려면 재부팅이 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo reboot</code> </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot 참고:</strong> Secure Boot가 활성화된 경우 시스템은 재부팅 프로세스 중에 MOK(Machine Owner Key) 등록을 요청할 가능성이 높습니다. 화면의 지시에 따라 NVIDIA 드라이버용 키를 등록하십시오. 여기에는 일반적으로 \"Enroll MOK\"를 선택하고 확인한 다음 드라이버 사전 설치 단계(DKMS에서 요청한 경우)에서 설정한 암호를 입력하는 과정이 포함됩니다. MOK를 등록하지 않으면 NVIDIA 드라이버가 로드되지 않습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. 드라이버 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>시스템이 재부팅된 후 NVIDIA 드라이버가 올바르게 설치되었고 Nvidia A100 이 인식되는지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>nvidia-smi</code> 실행:</strong> 이 명령줄 유틸리티는 설치된 NVIDIA 드라이버 및 GPU에 대한 정보를 제공합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>nvidia-smi</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>성공적인 출력은 다음을 표시합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>드라이버 버전:</strong> 설치된 NVIDIA 드라이버의 버전입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA 버전:</strong> 설치된 드라이버에서 지원하는 <em>최대 CUDA 버전</em>을 나타냅니다. 이는 아직 시스템에 설치된 CUDA Toolkit의 버전이 아니라 드라이버의 호환성 수준이라는 점을 이해하는 것이 중요합니다. 실제 CUDA Toolkit은 별도의 설치입니다. 사용자가 이 값을 활성 툴킷 버전으로 잘못 해석하는 경우가 많으므로 이 구분이 중요합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 이름:</strong> \"Nvidia A100\"이 표시되어야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 메모리:</strong> 총 메모리, 할당된 메모리 및 사용 가능한 메모리 (예: Nvidia A100의 경우 총 48GB).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>GPU 사용률, 온도 및 실행 중인 프로세스(있는 경우)와 같은 기타 세부 정보.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 드라이버 설치 명령을 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>예상 결과/참고</th></tr></thead><tbody><tr><td>1. NVIDIA 리포지토리 키 및 소스 추가</td><td><code>wget &lt;https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb</code>&gt; &lt;br&gt; <code>sudo dpkg -i cuda-keyring_1.1-1_all.deb</code> &lt;br&gt; <code>sudo apt-get update</code> &lt;br&gt; <code>rm cuda-keyring_1.1-1_all.deb</code></td><td><code>apt</code> 소스가 NVIDIA 리포지토리로 업데이트되었습니다.</td></tr><tr><td>2. NVIDIA 드라이버 설치</td><td><code>sudo apt-get install cuda-drivers</code></td><td>리포지토리에서 최신 호환 NVIDIA 드라이버가 설치되었습니다.</td></tr><tr><td>3. 시스템 재부팅</td><td><code>sudo reboot</code></td><td>시스템이 재부팅됩니다. Secure Boot가 활성화된 경우 MOK 등록이 필요할 수 있습니다.</td></tr><tr><td>4. 드라이버 설치 확인</td><td><code>nvidia-smi</code></td><td>드라이버 버전, CUDA 호환성 버전 및 RTX 6000 Ada GPU 세부 정보를 표시합니다. 드라이버가 로드되어 작동하는지 확인합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-smi</code>가 실패하거나 GPU를 표시하지 않으면 문제 해결 섹션을 참조하십시오.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">IV. Ubuntu 24.04에 CUDA Toolkit 12.9 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA 드라이버가 올바르게 설치되고 확인되면 다음 단계는 CUDA Toolkit 버전 12.9를 설치하는 것입니다. CUDA Toolkit은 컴파일러, 라이브러리 및 도구를 포함하여 GPU 가속 애플리케이션을 만들기 위한 개발 환경을 제공합니다. 이전 섹션에서 구성한 NVIDIA 네트워크 리포지토리가 이 설치에 사용되며, Ubuntu 24.04 및 CUDA 12.9용 패키지를 특별히 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. CUDA Toolkit 12.9 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>CUDA Toolkit 패키지 설치:</strong> 개발 환경의 예측 가능성을 보장하기 위해 특정 버전의 CUDA Toolkit을 설치하는 것이 좋습니다. <code>cuda-toolkit-12-9</code> 패키지(또는 <code>cuda-12-9</code>와 유사한 이름의 메타 패키지)는 12.9 버전을 대상으로 합니다. 명시적인 버전을 사용하는 것이 일반적인 <code>sudo apt-get install cuda</code>보다 선호됩니다. 후자는 리포지토리 기본값이 변경될 경우 다른 버전을 설치할 수 있기 때문입니다. Bash 이 명령은 컴파일러(<code>nvcc</code>), 라이브러리 및 헤더를 포함한 CUDA Toolkit 12.9를 다운로드하고 설치합니다. Ubuntu 24.04 x86_64용 NVIDIA 리포지토리에는 CUDA 12.9용 특정 패키지가 나열되어 있어 이 방법을 통해 사용 가능함을 확인합니다. Ubuntu 24.04 기반 컨테이너에 NVIDIA CUDA 12.9.0이 존재한다는 점도 간접적인 지원을 나타냅니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get install cuda-toolkit-12-9</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. 환경 변수 설정 (설치 후 필수)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>시스템 및 개발 도구가 CUDA Toolkit 바이너리 및 라이브러리를 찾을 수 있도록 <code>PATH</code> 및 <code>LD_LIBRARY_PATH</code> 환경 변수를 업데이트해야 합니다. 이러한 변경 사항은 일반적으로 지속성을 위해 사용자의 <code>~/.bashrc</code> 파일에 추가됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>~/.bashrc</code>에 CUDA 경로 추가</strong>: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo \'export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}}\' &gt;&gt; ~/.bashrc echo \'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\' &gt;&gt; ~/.bashrc</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>현재 셸 세션에 변경 사항 적용: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>source ~/.bashrc</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>환경 변수 확인:</strong> 경로가 올바르게 추가되었는지 확인합니다: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>출력에는 <code>PATH</code>에 <code>/usr/local/cuda-12.9/bin</code>이, <code>LD_LIBRARY_PATH</code>에 <code>/usr/local/cuda-12.9/lib64</code>가 표시되어야 합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo $PATH echo $LD_LIBRARY_PATH</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. CUDA Toolkit 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>철저한 확인을 통해 툴킷이 올바르게 설치되었고 GPU와 통신할 수 있는지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>nvcc</code> 버전 확인:</strong> NVIDIA CUDA 컴파일러(<code>nvcc</code>)는 툴킷의 핵심 구성 요소입니다. 해당 버전은 설치된 툴킷과 일치해야 합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>nvcc --version</code> 출력에는 \"Cuda compilation tools, release 12.9\"를 포함한 <code>nvcc</code>에 대한 정보가 표시되어야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA 샘플 컴파일 및 실행: &lt;이 부분은 실패&gt;</strong> NVIDIA는 툴킷의 기능을 테스트하기 위한 CUDA 샘플을 제공합니다. 이러한 샘플은 이제 GitHub에서 호스팅되며 일반적으로 툴킷 패키지와 함께 기본적으로 설치되지 않습니다.<ul><li>CUDA 샘플 리포지토리 복제:</li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>git</code>이 설치되어 있지 않으면 <code>sudo apt install git</code> 으로 설치합니다. </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>git clone &lt;https://github.com/NVIDIA/cuda-samples.git&gt; </code></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>cd cuda-samples</code><strong><code>deviceQuery</code> </strong></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><strong>빌드 및 실행:</strong><code>deviceQuery</code> 샘플은 CUDA 지원 장치와 해당 속성을 열거합니다.  </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>cd Samples/1_Utilities/deviceQuery </code></li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><code>make</code></li></ul>./deviceQuery <code>성공적으로 실행되면 Nvidia A100에 대한 자세한 정보가 표시되고 `Result = PASS`로 끝납니다. 이는 CUDA 런타임이 GPU를 올바르게 식별하고 상호 작용할 수 있음을 확인합니다. 샘플이 GitHub로 마이그레이션됨에 따라 개발자는 이제 이러한 예제를 적극적으로 가져와야 하며, 이는 샘플이 종종 로컬 설치 경로에 포함되었던 이전 CUDA Toolkit 배포판과 달라진 점입니다.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 CUDA Toolkit 12.9 설치 및 확인 단계를 간략하게 설명합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>목적/예상 결과</th></tr></thead><tbody><tr><td>1. CUDA Toolkit 12.9 설치</td><td><code>sudo apt-get install cuda-toolkit-12-9</code></td><td>CUDA Toolkit 12.9 (컴파일러, 라이브러리, 헤더) 설치됨.</td></tr><tr><td>2. 환경 변수 설정</td><td><code>echo \'export PATH=/usr/local/cuda-12.9/bin${PATH:+:${PATH}}\' &gt;&gt; ~/.bashrc</code> &lt;br&gt; <code>echo \'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}\' &gt;&gt; ~/.bashrc</code> &lt;br&gt; <code>source ~/.bashrc</code></td><td><code>PATH</code> 및 <code>LD_LIBRARY_PATH</code>가 CUDA 12.9 디렉터리를 포함하도록 업데이트됨.</td></tr><tr><td>3. <code>nvcc</code> 버전 확인</td><td><code>nvcc --version</code></td><td>CUDA Toolkit 버전 표시, 12.9인지 확인.</td></tr><tr><td>4. <code>deviceQuery</code> 샘플 컴파일 및 실행</td><td><code>git clone &lt;https://github.com/NVIDIA/cuda-samples.git</code>&gt;</td><td></td></tr><tr><td><code>cd cuda-samples/Samples/1_Utilities/deviceQuery</code> &lt;br&gt;</td><td></td><td></td></tr><tr><td><code>make</code> &lt;br&gt; <code>./deviceQuery</code></td><td><code>deviceQuery</code>가 성공적으로 컴파일 및 실행되어 Nvidia A100 세부 정보와 <code>Result = PASS</code>를 표시함. 툴킷 기능 및 GPU 통신 확인.</td><td></td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">V. CUDA 12.9용 cuDNN 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA CUDA Deep Neural Network 라이브러리(cuDNN)는 심층 신경망을 위한 GPU 가속 기본 요소 라이브러리입니다. 딥 러닝 프레임워크에서 고성능을 달성하는 데 필수적입니다. Ubuntu 24.04의 CUDA 12.9용 cuDNN은 드라이버 및 CUDA Toolkit에 사용된 것과 동일한 NVIDIA 네트워크 리포지토리에서 설치해야 합니다. 이 방법은 호환성을 보장하고 수동 tarball 방법에 비해 설치를 단순화합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. cuDNN 라이브러리 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Ubuntu 24.04 x86_64용 NVIDIA 리포지토리에는 CUDA 12.9용 특정 빌드를 포함하여 CUDA 12.x와 호환되는 cuDNN 9 패키지가 포함되어 있습니다. 설치에는 런타임 및 개발자 패키지를 가져오는 과정이 포함됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>cuDNN 런타임 및 개발자 라이브러리 설치:</strong> cuDNN의 패키지 이름은 특정할 수 있습니다. 의 목록(예: <code>cudnn9-cuda-12-9_9.10.1.4-1_amd64.deb</code>, <code>libcudnn9-cuda-12_9.10.1.4-1_amd64.deb</code>, <code>libcudnn9-dev-cuda-12_9.10.1.4-1_amd64.deb</code>) 및 일반적인 cuDNN 설치 패턴을 기반으로 다음 명령은 CUDA 12.x용 cuDNN 9를 대상으로 합니다. 설치된 CUDA 버전에 해당하는 메타 패키지를 사용하는 것이 가장 좋습니다. CUDA 12.x의 경우 일반적으로 <code>sudo apt-get -y install cudnn9-cuda-12</code> 명령이 제안됩니다. CUDA 12.9가 설치되어 있으므로 <code>apt</code>는 올바른 종속성을 해결해야 합니다. <code>cudnn9-cuda-12-9</code>와 같은 더 구체적인 메타 패키지를 사용할 수 있고 NVIDIA에서 이 목적을 위해 명확하게 문서화한 경우 더욱 정확할 것입니다.  </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>cuDNN 설치에 <code>apt</code>를 사용하는 것은 수동 방법보다 강력하게 권장됩니다. <code>apt</code>는 파일 배치, 권한 및 종속성을 올바르게 처리하여 더 강력하고 유지 관리 가능한 시스템을 만들기 때문입니다. 사용자가 CUDA 12.8용 cuDNN을 설치하려고 할 때 종속성으로 인해 12.9 패키지가 선호되었던 에서 암시된 버전 불일치와 같은 잠재적인 문제는 설치된 CUDA 12.9에 대한 올바른 메타 패키지를 대상으로 하여 완화됩니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>`# 최신 cuDNN 버전을 볼 수 있도록 패키지 목록 업데이트 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get update </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDA 12.x용 cuDNN 9 런타임 라이브러리 설치 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get install libcudnn9-cuda-12 </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDA 12.x용 cuDNN 9 개발자 라이브러리 설치 (헤더 포함) <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo apt-get install libcudnn9-dev-cuda-12`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. cuDNN 설치 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>확인을 통해 cuDNN 라이브러리가 올바르게 설치되고 액세스 가능한지 확인합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>설치된 패키지 및 라이브러리/헤더 파일 확인:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>설치된 cuDNN 패키지 나열: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>libcudnn9</code> 및 <code>libcudnn9-dev</code>와 같은 패키지가 표시되어야 합니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>dpkg -l | grep libcudnn</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>헤더 파일 존재 및 버전 확인 (경로는 패키지 세부 정보에 따라 약간 다를 수 있지만 일반적으로 표준 포함 디렉터리에 있음): 기본 헤더 <code>cudnn_version.h</code>에는 버전 매크로가 포함되어 있습니다. <code>apt</code> 설치 후 일반적인 위치는 <code>/usr/include/x86_64-linux-gnu/</code> 내입니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이는 cuDNN 애플리케이션 컴파일에 필요한 헤더 파일이 있는지 확인하고 설치된 cuDNN 버전을 검사할 수 있도록 합니다. </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>`# 버전 헤더 확인 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>ls -l /usr/include/x86_64-linux-gnu/cudnn_version.h </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>CUDNN_MAJOR, CUDNN_MINOR, CUDNN_PATCHLEVEL 정의를 보려면 내용 표시 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>cat /usr/include/x86_64-linux-gnu/cudnn_version.h`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cuDNN 샘플 컴파일 및 실행 (mnistCUDNN):&lt;이 부분 실패&gt;</strong> NVIDIA는 리포지토리의 패키지를 통해 설치할 수 있는 cuDNN 샘플을 제공합니다.<ul><li><strong>cuDNN 샘플 설치:</strong><code>libcudnn9-samples</code> 패키지를 사용할 수 있습니다. </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li><code>sudo apt-get install libcudnn9-samples</code><strong><code>mnistCUDNN</code> </strong></li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li><strong>컴파일 및 실행:</strong> 샘플은 일반적으로 <code>/usr/src/cudnn_samples_v9/</code> 또는 유사한 위치에 설치됩니다. 이전 가이드에서는 때때로 <code>$HOME/cudnn_samples_v9/</code>를 참조합니다. 패키지 버전의 위치를 사용해야 합니다. </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>`# mnistCUDNN 샘플 디렉터리로 이동 정확한 경로는 패키지 버전에 따라 다를 수 있으므로 /usr/src/ 확인 </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>cd /usr/src/cudnn_samples_v9/mnistCUDNN </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>샘플 컴파일 </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>sudo make clean &amp;&amp; sudo make </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>(빌드 아티팩트에 대해 /usr/src가 사용자 쓰기 가능하지 않은 경우 sudo가 필요할 수 있음) 또는 샘플 디렉터리를 사용자 쓰기 가능한 위치로 먼저 복사: </li></ul><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><ul><li>cp -r /usr/src/cudnn_samples_v9 ~/my_cudnn_samples </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>cd ~/my_cudnn_samples/mnistCUDNN </li></ul></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>make clean &amp;&amp; make </li></ul></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><ul><li>샘플 실행`</li></ul>./mnistCUDNN </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>성공적으로 실행되면 일반적으로 `Test passed!`가 인쇄됩니다. 이는 cuDNN이 설치된 CUDA Toolkit 및 GPU와 올바르게 작동하는지 종합적으로 확인합니다.</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 네트워크 리포지토리를 사용한 cuDNN 설치를 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>명령</th><th>목적</th></tr></thead><tbody><tr><td>1. 패키지 목록 업데이트</td><td><code>sudo apt-get update</code></td><td>로컬 패키지 인덱스 새로 고침.</td></tr><tr><td>2. cuDNN 런타임 설치</td><td><code>sudo apt-get install libcudnn9-cuda-12</code></td><td>CUDA 12.x와 호환되는 cuDNN 9 런타임 라이브러리를 설치합니다.</td></tr><tr><td>3. cuDNN 개발자 패키지 설치</td><td><code>sudo apt-get install libcudnn9-dev-cuda-12</code></td><td>CUDA 12.x용 cuDNN 9 헤더 파일 및 개발 라이브러리를 설치합니다.</td></tr><tr><td>4. (선택 사항) cuDNN 샘플 설치</td><td><code>sudo apt-get install libcudnn9-samples</code></td><td>cuDNN 샘플 코드를 설치합니다.</td></tr><tr><td>5. 설치 확인</td><td>`dpkg -l \\</td><td>grep libcudnn<code>&lt;br&gt;</code>cat /usr/include/x86_64-linux-gnu/cudnn_version.h<code>&lt;br&gt; (샘플이 설치된 경우)</code>cd /usr/src/cudnn_samples_v9/mnistCUDNN &amp;&amp; make &amp;&amp;./mnistCUDNN`</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VI. GPU 가속을 위한 Docker 설정</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 컨테이너는 휴대 가능하고 재현 가능한 환경을 만들기 위해 AI 개발에 널리 사용됩니다. Docker 컨테이너가 Nvidia A100 GPU에 액세스할 수 있도록 하려면 NVIDIA Container Toolkit을 설치하고 Docker를 올바르게 구성해야 합니다. 이 툴킷은 이전의 <code>nvidia-docker2</code>를 대체하고 보다 모듈화된 접근 방식을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. Docker Engine 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker가 아직 설치되어 있지 않으면 공식 Docker 설명서를 따르십시오. Ubuntu에서의 일반적인 설치는 다음과 같습니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Docker의 <code>apt</code> 리포지토리 설정 (공식 Docker CE에 대해 아직 수행하지 않은 경우):</strong> 가장 최신 명령은 <a href=\"https://docs.docker.com/engine/install/ubuntu/%EB%A5%BC\">https://docs.docker.com/engine/install/ubuntu/를</a> 참조하십시오. 여기에는 일반적으로 Docker의 GPG 키와 리포지토리를 추가하는 과정이 포함됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker Engine 설치</strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**루트가 아닌 사용자로 Docker 관리 (권장):**Bash 그런 다음 로그아웃했다가 다시 로그인하거나 현재 터미널 세션에서 <code>newgrp docker</code>를 실행하여 그룹 변경 사항을 적용합니다. 이렇게 하면 <code>sudo</code> 없이 <code>docker</code> 명령을 실행할 수 있습니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>sudo groupadd docker </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code># 그룹이 아직 존재하지 않는 경우 </code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>sudo usermod -aG docker $USER</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NVIDIA Container Toolkit 설치</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Container Toolkit은 Docker가 NVIDIA GPU와 상호 작용하는 데 필요한 구성 요소를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>NVIDIA Container Toolkit 리포지토리 구성:</strong> 다음 명령은 NVIDIA Container Toolkit용 GPG 키와 리포지토리를 추가합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \\\n    sed \'s#deb https://#deb &#91;signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g\' | \\\n    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>툴킷 패키지 설치</strong>:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo apt-get update </code>\n<code>sudo apt-get install -y nvidia-container-toolkit</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. NVIDIA 런타임을 사용하도록 Docker 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 데몬은 NVIDIA 런타임을 인식하도록 구성해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong><code>nvidia-ctk</code>를 사용하여 Docker 구성:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-ctk</code>(NVIDIA Container Toolkit CLI) 유틸리티는 Docker의 <code>daemon.json</code> 파일을 수정합니다. </p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo nvidia-ctk runtime configure --runtime=docker</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p><strong>Docker 데몬 다시 시작:</strong> Docker 서비스를 다시 시작하여 구성 변경 사항을 적용합니다. </p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code><code>sudo systemctl restart docker</code></code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">D. Docker에서 GPU 액세스 확인</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Docker 컨테이너가 GPU에 액세스할 수 있는지 확인하려면 <code>nvidia-smi</code>를 실행하는 테스트 컨테이너를 실행합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>CUDA 기본 컨테이너 실행:</strong> 공식 NVIDIA CUDA 이미지를 사용합니다. CUDA 12.9 설정을 확인하려면 CUDA 12.9가 포함된 이미지가 이상적입니다. NVIDIA는 Docker Hub에 <code>nvidia/cuda</code> 이미지를 제공하고 보다 전문화된 컨테이너를 위해 <code>nvcr.io</code>를 제공합니다. 에서는 CUDA 12.9.0이 포함된 Ubuntu 24.04 기반 컨테이너를 언급하지만 Docker Hub에서 간단한 기본 이미지로 공개적으로 사용할 수 있는지 여부는 다를 수 있습니다. 일반적인 대체 방법은 Ubuntu 22.04와 같은 최신 Ubuntu LTS를 기반으로 하는 CUDA 12.9 이미지입니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>-gpus all</code> 플래그는 Docker에 사용 가능한 모든 GPU를 컨테이너에 액세스할 수 있도록 지시합니다. 설정이 올바르면 이 명령은 지정된 이미지를 가져오고(아직 없는 경우) 컨테이너 내에서 <code>nvidia-smi</code>를 실행합니다. 출력은 호스트의 <code>nvidia-smi</code> 출력과 유사해야 하며 Nvidia A100 및 드라이버 세부 정보를 표시합니다. 이는 NVIDIA Container Toolkit이 올바르게 작동하고 GPU 리소스가 Docker 환경으로 전달되고 있음을 확인합니다. CUDA 12.9 라이브러리가 포함된 컨테이너를 사용하면 이 CUDA 버전에 맞게 빌드된 Docker 내 애플리케이션이 예상대로 작동할 수 있도록 더욱 보장됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>`# 사용 가능하고 알려진 경우 Ubuntu 24.04 기반 이미지로 시도 <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo docker run --rm --gpus all <a href=\"http://nvcr.io/nvidia/cuda:12.9.0-base-ubuntu24.04\">nvcr.io/nvidia/cuda:12.9.0-base-ubuntu24.04</a> <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>nvidia-smi </li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>그렇지 않으면 쉽게 사용할 수 있는 CUDA 12.9 이미지 사용: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>sudo docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>nvidia-smi`</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 NVIDIA Container Toolkit 설치를 요약한 것입니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>단계</th><th>하위 단계</th><th>명령</th><th>참고</th></tr></thead><tbody><tr><td>1. Docker Engine 설치</td><td>1a. Docker 리포지토리 설정</td><td>(공식 Docker 문서 참조)</td><td>공식 Docker CE가 설치되었는지 확인합니다.</td></tr><tr><td></td><td>1b. Docker 패키지 설치</td><td><code>sudo apt-get update</code> <br><br><code>sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></td><td>Docker 구성 요소를 설치합니다.</td></tr><tr><td></td><td>1c. 사용자를 <code>docker</code> 그룹에 추가</td><td><code>sudo usermod -aG docker $USER</code> <br><code>newgrp docker</code> (또는 로그아웃/로그인)</td><td><code>sudo</code> 없이 Docker를 실행할 수 있도록 합니다.</td></tr><tr><td>2. NVIDIA Container Toolkit 설치</td><td>2a. 툴킷 리포지토리 구성</td><td>`curl -fsSL...</td><td>sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list` (전체 명령은 텍스트 참조)</td></tr><tr><td></td><td>2b. 툴킷 패키지 설치</td><td><code>sudo apt-get update</code> <br><br><code>sudo apt-get install -y nvidia-container-toolkit</code></td><td>툴킷을 설치합니다.</td></tr><tr><td>3. Docker 런타임 구성</td><td>3a. <code>nvidia-ctk</code>로 Docker 구성</td><td><code>sudo nvidia-ctk runtime configure --runtime=docker</code></td><td>NVIDIA 런타임을 사용하도록 Docker의 <code>daemon.json</code>을 업데이트합니다.</td></tr><tr><td></td><td>3b. Docker 서비스 다시 시작</td><td><code>sudo systemctl restart docker</code></td><td>런타임 구성 변경 사항을 적용합니다.</td></tr><tr><td>4. GPU 액세스 확인</td><td>4a. 테스트 컨테이너 실행</td><td><code>sudo docker run --rm --gpus all nvidia/cuda:12.9.0-base-ubuntu22.04 nvidia-smi</code></td><td>Docker 컨테이너 내에서 GPU에 액세스할 수 있는지 확인합니다. 출력에 Nvidia A100가 표시되어야 합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VII. Nvidia NIM (NVIDIA Inference Microservices) 소개</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Inference Microservices (NIM)는 AI 모델 배포를 단순화하여 확장 가능하고 프로덕션 준비가 된 마이크로서비스로 전환하도록 설계된 사전 빌드되고 최적화된 컨테이너입니다. NIM은 배포 복잡성 감소, 모델별 최적화를 통한 성능 향상, 손쉬운 통합을 위한 표준화된 API와 같은 이점을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. Nvidia NIM의 전제 조건</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NIM을 배포하기 전에 다음 전제 조건이 충족되었는지 확인하십시오:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA GPU:</strong> 충분한 메모리가 있는 NVIDIA GPU가 필요합니다. Nvidia A100는 많은 NIM에 적합합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>운영 체제:</strong> 지원되는 Linux 배포판. <code>glibc &gt;= 2.35</code>가 포함된 Ubuntu 24.04는 호환됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA 드라이버:</strong> 섹션 III에서 완료한 대로 최신 NVIDIA 드라이버를 설치해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker 및 NVIDIA Container Toolkit:</strong> 섹션 VI에 자세히 설명된 대로 설치하고 구성해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA AI Enterprise 라이선스:</strong> LLM 및 기타 모델용 NVIDIA NIM을 자체 호스팅하려면 일반적으로 NVIDIA AI Enterprise 라이선스가 필요합니다. 사용자는 라이선스 조건을 확인하고 사용 가능한 경우 평가판 옵션을 살펴보아야 합니다. 이는 기술적 설정 외에 중요한 고려 사항입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC 계정 및 API 키:</strong> NIM 컨테이너 이미지를 가져오려면 NVIDIA의 NGC 카탈로그에 액세스해야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. NIM 설정 단계</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NGC API 키 생성:</strong> NGC 컨테이너 레지스트리로 인증하려면 API 키가 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>NGC 웹사이트(일반적으로 <code>https://org.ngc.nvidia.com/setup/api-keys</code> 또는 <code>https://org.ngc.nvidia.com/setup/personal-keys</code>)로 이동합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>새 API 키를 생성합니다. 키 권한에 대해 \"NGC Catalog\" 서비스(또는 이를 포함하는 더 넓은 범위)가 선택되었는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>생성된 API 키를 복사하여 안전하게 보관합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 키를 환경 변수로 내보내기:</strong> NIM 컨테이너는 이 환경 변수를 사용하여 모델 자산 다운로드를 위해 NGC로 인증합니다.Bash <code>export NGC_API_KEY=\"YOUR_API_KEY_HERE\"</code> <code>\"YOUR_API_KEY_HERE\"</code>를 실제 키로 바꿉니다. 프로덕션 환경의 보안을 위해 이 키를 관리하는 더 안전한 방법(예: Docker 시크릿 또는 버전 제어에 커밋되지 않은 환경 파일)을 고려하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC Docker 레지스트리에 로그인:</strong> API 키를 사용하여 NVIDIA의 컨테이너 레지스트리인 <code>nvcr.io</code>에 로그인합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>echo \"$NGC_API_KEY\" | sudo docker login nvcr.io --username \'$oauthtoken\' --password-stdin</code> </li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용자 이름 <code>$oauthtoken</code>은 API 키가 인증에 사용되고 있음을 나타내는 특수 문자열입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">C. Nvidia NIM 실행</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설정이 완료되면 NIM 컨테이너를 시작할 수 있습니다. 특정 모델 및 이미지 태그는 다를 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>실행할 NIM 식별 (선택 사항이지만 유익함):</strong> 사용 가능한 NIM은 NVIDIA API 카탈로그(<code>https://build.nvidia.com</code>)를 탐색하거나 NGC CLI 도구(설치된 경우)를 <code>ngc registry image list --format_type csv nvcr.io/nim/*</code>와 같은 명령으로 사용하여 찾을 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시: Llama 3 NIM 시작:</strong> 다음은 예시입니다. <code>MODEL_NIM_PATH</code> 및 <code>NIM_IMAGE_TAG</code>를 NGC 카탈로그에서 원하는 모델의 실제 경로 및 태그로 바꾸십시오.Bash `# 예시: NGC의 실제 모델 경로 및 태그로 바꾸십시오. export MODEL_NIM_PATH=\"meta/llama3-8b-instruct\" export NIM_IMAGE_TAG=\"1.0.0\" # 예시 태그, 최신 버전은 NGC 확인 export NIM_IMAGE_NAME=\"<a href=\"http://nvcr.io/nim/$%7BMODEL_NIM_PATH%7D:$%7BNIM_IMAGE_TAG%7D\">nvcr.io/nim/${MODEL_NIM_PATH}:${NIM_IMAGE_TAG}</a>\" export LOCAL_NIM_CACHE=\"$HOME/.cache/nim\" # 모델 아티팩트용 로컬 캐시 mkdir -p \"$LOCAL_NIM_CACHE\" export CONTAINER_NAME=\"nim_llama3_8b_instruct\" sudo docker run -it --rm --name ${CONTAINER_NAME} \\ --gpus all \\ --runtime=nvidia \\ -e NGC_API_KEY \\ -v \"${LOCAL_NIM_CACHE}:/opt/nim/.cache\" \\ -u $(id -u):$(id -g) \\ -p 8000:8000 \\ \"${NIM_IMAGE_NAME}\"` 주요 Docker 실행 매개변수 설명 :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>-gpus all</code>: 사용 가능한 모든 GPU를 컨테이너에 노출합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>-runtime=nvidia</code>: NVIDIA 컨테이너 런타임을 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>e NGC_API_KEY</code>: 모델 다운로드를 위해 NGC API 키를 컨테이너에 전달합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>v \"${LOCAL_NIM_CACHE}:/opt/nim/.cache\"</code>: 다운로드한 모델 가중치 및 아티팩트용 캐시로 로컬 디렉터리를 마운트하여 후속 실행 시 재다운로드를 방지합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>u $(id -u):$(id -g)</code>: 마운트된 캐시와의 권한 문제를 방지하기 위해 현재 사용자의 ID 및 그룹 ID로 컨테이너를 실행합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>p 8000:8000</code>: 호스트의 포트 8000을 NIM 서비스가 일반적으로 수신 대기하는 컨테이너의 포트 8000에 매핑합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>${NIM_IMAGE_NAME}</code>: <code>nvcr.io</code>의 NIM 컨테이너 이미지 전체 이름 및 태그입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">D. NIM과 상호 작용</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>NIM 컨테이너가 실행되면 모델을 다운로드하고(아직 캐시되지 않은 경우) 추론 서버를 시작합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>서버 준비 대기:</strong> 컨테이너 로그(<code>sudo docker logs -f ${CONTAINER_NAME}</code>)에서 서버가 준비되었음을 나타내는 메시지(예: \"NIM server is ready\" 또는 유사 메시지)를 모니터링합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**상태 엔드포인트 확인:**Bash 성공적인 응답(예: 상태 \"ready\"인 HTTP 200)은 서버가 작동 중임을 나타냅니다. <code>curl &lt;http://localhost:8000/v1/health/ready</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**NIM에서 제공하는 모델 나열:**Bash 그러면 이 특정 NIM 인스턴스에서 제공하는 모델이 표시됩니다. <code>curl &lt;http://localhost:8000/v1/models</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>추론 요청 보내기:</strong> LLM NIM의 경우 API는 종종 OpenAI와 호환됩니다. 채팅 완료 모델 예시 : Bash 많은 LLM에 OpenAI 호환 API를 사용하면 개발자가 기존 클라이언트 라이브러리를 종종 활용할 수 있으므로 통합이 단순화됩니다. <code>curl -X POST &lt;http://localhost:8000/v1/chat/completions&gt; \\\\ -H \"Content-Type: application/json\" \\\\ -H \"Authorization: Bearer YOUR_NGC_API_KEY\" \\\\ -d \'{ \"model\": \"meta/llama3-8b-instruct\", // v1/models 출력의 모델 이름 사용 \"messages\":, \"temperature\": 0.7, \"max_tokens\": 100 }\'</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">E. NIM 컨테이너 중지</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><code>sudo docker stop ${CONTAINER_NAME}</code></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 NVIDIA NIM의 주요 Docker 실행 매개변수를 강조 표시합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>매개변수</th><th>예시 값</th><th>목적</th></tr></thead><tbody><tr><td><code>--gpus all</code></td><td><code>all</code></td><td>모든 호스트 GPU를 컨테이너에서 사용할 수 있도록 합니다.</td></tr><tr><td><code>--runtime=nvidia</code></td><td><code>nvidia</code></td><td>GPU 액세스를 위한 NVIDIA 컨테이너 런타임을 지정합니다.</td></tr><tr><td><code>-e NGC_API_KEY</code></td><td>(환경 변수 값)</td><td>NGC에서 모델/자산 다운로드 인증을 위해 NGC API 키를 컨테이너에 전달합니다.</td></tr><tr><td><code>-v LOCAL_NIM_CACHE:/opt/nim/.cache</code></td><td><code>\"$HOME/.cache/nim:/opt/nim/.cache\"</code></td><td>다운로드한 모델을 유지하고 재다운로드를 방지하기 위해 컨테이너 내 캐시로 호스트 디렉터리를 마운트합니다.</td></tr><tr><td><code>-p HOST_PORT:CONTAINER_PORT</code></td><td><code>8000:8000</code></td><td>호스트의 포트를 NIM 서비스가 수신 대기하는 컨테이너 내부의 포트에 매핑합니다.</td></tr><tr><td><code>NIM_IMAGE_NAME</code></td><td><code>nvcr.io/nim/meta/llama3-8b-instruct:1.0.0</code></td><td>실행할 특정 NIM의 전체 Docker 이미지 이름 및 태그입니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">VIII. (선택 사항) CUDA 12.9를 지원하는 AI 프레임워크 설치</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>드라이버, CUDA Toolkit, cuDNN 및 Docker를 설정한 후 개발자는 일반적으로 PyTorch 또는 TensorFlow와 같은 AI 프레임워크를 설치합니다. 이는 종속성을 효과적으로 관리하기 위해 일반적으로 Python 가상 환경 내에서 <code>pip</code>를 사용하여 설치됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>시스템의 NVIDIA 드라이버는 CUDA 12.9와 호환되고 CUDA Toolkit 12.9가 설치되어 있지만, AI 프레임워크용 사전 컴파일된 <code>pip</code> 패키지는 약간 이전 CUDA 버전(예: CUDA 12.1, 12.3 또는 12.8)에 대해 빌드될 수 있다는 점에 유의해야 합니다. 이러한 패키지는 일반적으로 순방향 호환되며 드라이버의 호환성으로 인해 올바르게 실행되지만 프레임워크 자체는 핵심 작업을 위해 컴파일된 CUDA 버전을 활용합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A. PyTorch</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>PyTorch는 종종 최신 CUDA 버전과 호환되는 <code>pip</code> 휠을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>**Python 가상 환경 생성 및 활성화:**Bash <code>python3 -m venv ~/pytorch_env source ~/pytorch_env/bin/activate</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>PyTorch 설치:</strong> 최신 명령은 공식 PyTorch 웹사이트(<a href=\"https://pytorch.org/get-started/locally/\">https://pytorch.org/get-started/locally/</a>)를 참조하십시오. CUDA 12.x의 경우 다음과 유사한 명령이 일반적입니다. 최근 정보에 따르면 Linux용 <code>cu128</code>(CUDA 12.8) 휠이 포함된 PyTorch 2.7을 사용할 수 있으며 CUDA 12.9 환경과 호환되어야 합니다. 특정 <code>cu129</code> 휠을 사용할 수 있게 되면 해당 휠이 선호됩니다. 그렇지 않으면 <code>cu121</code> 또는 <code>cu128</code>이 일반적인 선택입니다. Bash*(설치 시점에 PyTorch에서 CUDA 12.9에 대해 더 직접적이거나 최신 호환 휠(예: <code>cu129</code> 또는 <code>cu121</code>)을 권장하는 경우 <code>cu128</code>을 조정하십시오).* <code>pip3 install torch torchvision torchaudio --index-url &lt;https://download.pytorch.org/whl/cu128</code>&gt;</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**PyTorch 설치 확인:**Python Python 파일(예: <code>verify_pytorch.py</code>)로 저장하고 <code>python verify_pytorch.py</code>를 실행합니다. <code>torch.cuda.is_available()</code>는 <code>True</code>를 반환해야 합니다. <code>import torch print(f\"PyTorch Version: {torch.__version__}\") print(f\"CUDA Available: {torch.cuda.is_available()}\") if torch.cuda.is_available(): print(f\"CUDA Version (PyTorch built with): {torch.version.cuda}\") print(f\"GPU Name: {torch.cuda.get_device_name(0)}\")</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">B. TensorFlow</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>TensorFlow는 Python 환경 내에 호환되는 CUDA 및 cuDNN 라이브러리를 번들로 제공하여 GPU 설정을 단순화하려는 <code>tensorflow[and-cuda]</code> pip 패키지를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Python 가상 환경 생성 및 활성화: <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>python3 -m venv ~/tensorflow_env source ~/tensorflow_env/bin/activate</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 지원 TensorFlow 설치:</strong><code>tensorflow[and-cuda]</code> 패키지는 특정 버전의 CUDA 및 cuDNN을 번들로 제공합니다. 예를 들어, 최신 TensorFlow 버전은 CUDA 12.3 및 cuDNN 8.9.7을 번들로 제공할 수 있습니다. 이는 TensorFlow가 시스템에 설치된 CUDA 12.9 및 해당 cuDNN을 직접 사용하지 않고 이러한 번들 라이브러리를 작업에 사용하지만 CUDA 12.9 호환 드라이버에서 실행된다는 의미입니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>pip install -U pip # pip 업그레이드 pip install tensorflow[and-cuda]</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>**TensorFlow 설치 확인:**Python <code>import tensorflow as tf print(f\"TensorFlow Version: {tf.__version__}\") gpus = tf.config.list_physical_devices(\'GPU\') if gpus: print(f\"Num GPUs Available: {len(gpus)}\") for gpu in gpus: print(f\"GPU Name: {gpu.name}\") else: print(\"No GPU detected by TensorFlow\")</code> Python 파일(예: <code>verify_tensorflow.py</code>)로 저장하고 <code>python verify_tensorflow.py</code>를 실행합니다. 출력에 Nvidia A100가 나열되어야 합니다. TensorFlow에 대해 시스템 CUDA 12.9와의 정확한 정렬이 엄격하게 필요한 경우 구성 프로세스 중에 CUDA 12.9 및 호환되는 cuDNN 버전을 지정하여 소스에서 TensorFlow를 빌드해야 합니다. 이는 고급 절차이며 TensorFlow 자체에서 해당 특정 CUDA 버전에 연결된 특정 기능이나 최적화가 필요한 경우가 아니면 일반적으로 필요하지 않습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>다음 표는 AI 프레임워크 설치에 대한 빠른 참조를 제공합니다:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>프레임워크</th><th>권장 설치 명령 (CUDA 12.x 호환성용)</th><th>확인 명령 (Python)</th><th>CUDA 12.9 참고 사항</th></tr></thead><tbody><tr><td>PyTorch</td><td><code>pip3 install torch torchvision torchaudio --index-url &lt;https://download.pytorch.org/whl/cu128</code>&gt;</td><td><code>import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda if torch.cuda.is_available() else \"\")</code></td><td>사전 빌드된 휠(예: <code>cu128</code> 또는 <code>cu121</code>)은 일반적으로 CUDA 12.9 드라이버/툴킷과 순방향 호환됩니다. 인쇄된 <code>torch.version.cuda</code>는 PyTorch가 빌드된 CUDA 버전을 보여줍니다.</td></tr><tr><td>TensorFlow</td><td><code>pip install tensorflow[and-cuda]</code></td><td><code>import tensorflow as tf; print(tf.__version__); print(tf.config.list_physical_devices(\'GPU\'))</code></td><td><code>tensorflow[and-cuda]</code> 패키지는 자체 CUDA/cuDNN(예: 최신 TF의 경우 CUDA 12.3/cuDNN 8.9.7)을 번들로 제공합니다. 시스템의 CUDA 12.9를 직접 사용하지 않고 이를 사용하지만 12.9 호환 드라이버에서 실행됩니다. 정확한 12.9 연결을 위해서는 소스에서 빌드하십시오.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">IX. 일반적인 문제 해결</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>신중하게 설치하더라도 문제가 발생할 수 있습니다. 이 섹션에서는 일반적인 문제와 기본 문제 해결 단계를 다룹니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA 드라이버 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>nvidia-smi</code> 명령 실패, GPU가 표시되지 않거나 시스템이 저해상도 디스플레이로 부팅됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Nouveau 충돌:</strong> Nouveau가 블랙리스트에 있는지 확인합니다 (섹션 II.C.4).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Secure Boot MOK:</strong> Secure Boot가 활성화된 경우 NVIDIA 드라이버의 MOK가 올바르게 등록되지 않았을 수 있습니다. 재부팅하고 MOK 관리 옵션을 찾거나 Secure Boot를 일시적으로 비활성화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>설치 오류:</strong> 드라이버 설치 중 오류에 대해 <code>apt</code> 로그(<code>/var/log/apt/term.log</code>) 및 커널 메시지(<code>dmesg | grep -i nvidia</code>)를 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>드라이버 재설치:</strong> 완전히 새로 설치해야 할 수 있습니다. 재설치하기 전에 기존 NVIDIA 패키지를 제거합니다 (<code>sudo apt purge \'*nvidia*\' &amp;&amp; sudo apt autoremove</code>).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>\"GPU has fallen off the bus\":</strong> 이는 하드웨어 문제(GPU 장착, 전원 공급 장치, PCIe 슬롯), 과열 또는 심각한 드라이버/커널 비호환성을 나타낼 수 있는 심각한 오류입니다. 먼저 물리적 연결을 확인하십시오. 소프트웨어 비호환성인 경우 다른 드라이버 버전(이전 또는 최신 안정 버전)을 시도하면 도움이 될 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CUDA Toolkit 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>nvcc: command not found</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>환경 변수:</strong> <code>PATH</code> 및 <code>LD_LIBRARY_PATH</code>가 올바르게 설정되지 않았거나 현재 터미널 세션에서 <code>~/.bashrc</code> 변경 사항이 적용되지 않았습니다 (섹션 IV.B). <code>echo $PATH</code> 및 <code>echo $LD_LIBRARY_PATH</code>로 확인합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증상:</strong> CUDA 샘플(예: <code>deviceQuery</code>)이 컴파일 또는 실행되지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>드라이버-툴킷 불일치:</strong> 리포지토리 설치는 이를 최소화하지만 드라이버가 CUDA 툴킷 버전을 지원하는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>누락된 종속성:</strong> <code>build-essential</code> 또는 기타 개발 도구가 누락되었을 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>잘못된 툴킷 버전:</strong> <code>nvcc --version</code>이 예상과 다른 버전을 표시합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cuDNN 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> AI 프레임워크 또는 애플리케이션에서 누락된 cuDNN 라이브러리(예: <code>libcudnn.so.9: cannot open shared object file</code>)를 보고합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>설치 미완료:</strong> cuDNN 런타임(<code>libcudnn9-cuda-12</code>) 또는 개발자 패키지(<code>libcudnn9-dev-cuda-12</code>)가 올바르게 설치되지 않았을 수 있습니다. <code>dpkg -l | grep libcudnn</code>으로 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>라이브러리 경로:</strong> <code>LD_LIBRARY_PATH</code>에 cuDNN 라이브러리가 설치된 디렉터리가 포함되어 있지 않을 수 있습니다 (<code>apt</code>는 일반적으로 시스템 라이브러리 경로를 통해 이를 처리하지만). <code>sudo ldconfig -p | grep libcudnn</code>은 동적 링커가 라이브러리를 찾는지 보여줄 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker GPU 액세스 문제:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>증상:</strong> <code>docker run --gpus all...</code>이 NVIDIA 런타임 또는 GPU 액세스와 관련된 오류로 실패합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>NVIDIA Container Toolkit:</strong> 설치되지 않았거나 <code>nvidia-ctk runtime configure --runtime=docker</code>가 실행되지 않았거나 구성 후 Docker 데몬이 다시 시작되지 않았습니다 (섹션 VI.C).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Docker 데몬:</strong> Docker 서비스가 실행 중이고 구성 변경 후 다시 시작되었는지 확인합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증상:</strong> 호스트에서는 <code>nvidia-smi</code>가 작동하지만 GPU 지원 컨테이너 내부에서는 작동하지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>가능한 원인 및 해결 방법:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Docker의 <code>daemon.json</code>에 있는 NVIDIA 런타임 구성 문제.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>잘못된 <code>-gpus</code> 플래그 사용 또는 호환되지 않는 기본 이미지.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>일반적인 문제 해결 팁:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>시스템 로그 확인:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>dmesg</code>: 커널 링 버퍼, 하드웨어 및 모듈 로드 문제에 유용합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>journalctl -xe</code>: 자세한 시스템 로그, 종종 서비스 오류를 표시합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>/var/log/syslog</code>: 일반 시스템 메시지.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>/var/log/nvidia-installer.log</code>: NVIDIA의 <code>.run</code> 파일을 사용하여 드라이버를 설치한 경우 (여기서는 권장하지 않음).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>재부팅:</strong> 중요한 드라이버 또는 커널 모듈 변경 후에는 종종 재부팅이 필수적입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NVIDIA 개발자 포럼:</strong> 특정 문제에 대한 도움을 받을 수 있는 귀중한 리소스입니다. 시스템, 설치된 소프트웨어 버전 및 오류 메시지에 대한 자세한 정보를 제공하십시오.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><code>nvidia-smi</code>로 드라이버를 확인하고, <code>nvcc</code> 및 샘플로 CUDA를 확인하고, cuDNN을 확인하고, 마지막으로 Docker를 확인하는 체계적인 접근 방식은 문제가 있을 수 있는 부분을 격리하는 데 도움이 됩니다. 특히 CUDA 및 cuDNN의 많은 문제는 잘못된 환경 변수 설정이나 조정된 리포지토리에서 신중하게 설치하지 않은 경우 구성 요소 버전 간의 불일치로 인해 발생합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">X. 결론 및 모범 사례</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이 보고서는 NVIDIA RTX 6000 Ada Nvidia A100그래픽 카드를 갖춘 Ubuntu 24.04 워크스테이션에서 강력한 AI 개발 환경을 구축하는 과정을 자세히 설명했습니다. 공식 NVIDIA 리포지토리를 사용하여 NVIDIA 드라이버, CUDA Toolkit 12.9 및 해당 cuDNN 라이브러리를 체계적으로 설치함으로써 개발자는 안정적이고 고성능의 기반을 확보할 수 있습니다. 또한 NVIDIA Container Toolkit을 사용한 Docker 구성은 휴대 가능하고 재현 가능한 GPU 가속 워크플로를 가능하게 하며, NVIDIA NIM 소개는 간소화된 AI 모델 배포 경로를 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>건강한 AI 개발 환경 유지를 위한 주요 모범 사례:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>공식 리포지토리 활용:</strong> 가능하면 NVIDIA의 공식 <code>apt</code> 리포지토리에서 NVIDIA 드라이버, CUDA Toolkit 및 cuDNN을 설치하십시오. 이 방법은 일반적으로 구성 요소 호환성을 보장하고 업데이트를 단순화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>버전 고정 (고려 사항):</strong> 프로덕션 또는 중요한 연구 환경의 경우 <code>apt</code> 기본 설정을 사용하여 드라이버 및 CUDA 구성 요소의 버전을 고정하여 기존 워크플로와 비호환성을 유발할 수 있는 의도하지 않은 업그레이드를 방지하는 것을 고려하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Python 가상 환경:</strong> AI 프로젝트에는 항상 Python 가상 환경(예: <code>venv</code>, <code>conda</code>)을 사용하십시오. 이렇게 하면 종속성을 격리하여 PyTorch 또는 TensorFlow와 같은 라이브러리의 다른 버전이 필요한 프로젝트 간의 충돌을 방지합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>정기적인 문서 참조:</strong> AI 및 GPU 컴퓨팅 환경은 빠르게 발전합니다. 최신 호환성 정보, 기능 및 모범 사례를 위해 CUDA, cuDNN, 드라이버 및 AI 프레임워크에 대한 공식 NVIDIA 문서를 정기적으로 확인하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>GPU 사용률 모니터링:</strong> 개발 및 배포 중에 <code>nvidia-smi</code> 또는 NVIDIA Nsight와 같은 도구를 사용하여 GPU 사용률, 메모리 사용량 및 성능을 모니터링하십시오. 이는 병목 현상을 식별하고 GPU 리소스가 효율적으로 사용되고 있는지 확인하는 데 도움이 됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>NGC API 키 보안:</strong> NVIDIA NIM 또는 기타 NGC 리소스를 사용할 때 NGC API 키를 기밀로 유지하고 안전하게 관리하십시오. 스크립트에 키를 하드코딩하거나 버전 제어에 커밋하지 마십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>체계적인 업데이트:</strong> 중요한 워크스테이션에 적용하기 전에 가능하면 스테이징 환경에서 테스트하여 드라이버 및 CUDA 구성 요소 업데이트를 신중하게 계획하십시오.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>커뮤니티 및 지원:</strong> 문제 해결 및 커뮤니티 지원을 위해 NVIDIA 개발자 포럼과 같은 리소스를 활용하십시오.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>이러한 지침과 제공된 자세한 설치 단계를 따르면 사용자는 Ubuntu 24.04에서 최첨단 AI 코딩 및 연구를 위해 Nvidia A100 워크스테이션의 잠재력을 극대화할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_local\">https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_local</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>CUDA Toolkit Installer</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Installation Instructions:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin\nsudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/12.9.0/local_installers/cuda-repo-ubuntu2404-12-9-local_12.9.0-575.51.03-1_amd64.deb\nsudo dpkg -i cuda-repo-ubuntu2404-12-9-local_12.9.0-575.51.03-1_amd64.deb\nsudo cp /var/cuda-repo-ubuntu2404-12-9-local/cuda-*-keyring.gpg /usr/share/keyrings/\nsudo apt-get update\nsudo apt-get -y install cuda-toolkit-12-9\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>Additional installation options are detailed here.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Driver Installer</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>NVIDIA Driver Instructions (choose one option)</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To install the open kernel module flavor:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo apt-get install -y nvidia-open\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>To install the proprietary kernel module flavor:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo apt-get install -y cuda-drivers\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>To switch between NVIDIA Driver kernel module flavors see here.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The CUDA Toolkit contains Open-Source Software. The source code can be found here. The checksums for the installer and patches can be found in Installer Checksums. For further information, see the Installation Guide for Linux and the CUDA Quick Start Guide.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Ubuntu 20.04/22.04/24.04, Debian 12</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To switch from proprietary to open:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># apt install --autoremove --purge nvidia-open\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>￼ To switch from open to proprietary:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># apt install --autoremove --purge cuda-drivers\n\n</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">참고자료</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://velog.io/@scuderia/리눅스-24.04-cuda-cudnn-설치\">https://velog.io/@scuderia/리눅스-24.04-cuda-cudnn-설치</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_network\">https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=24.04&amp;target_type=deb_network</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>nividia driver 설치</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>sudo apt install nvidia-cuda-toolkit</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>llama-cpp-python version available for CUDA 11.7.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>cuda</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.cherryservers.com/blog/install-cuda-ubuntu\">https://www.cherryservers.com/blog/install-cuda-ubuntu</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=22.04&amp;target_type=deb_local\">https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&amp;target_arch=x86_64&amp;Distribution=Ubuntu&amp;target_version=22.04&amp;target_type=deb_local</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Nvidia NIM</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html\">https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-22-04\">https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-22-04</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>nvidia GPU on Docker</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.howtogeek.com/devops/how-to-use-an-nvidia-gpu-with-docker-containers\">https://www.howtogeek.com/devops/how-to-use-an-nvidia-gpu-with-docker-containers</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://www.cyberciti.biz/faq/how-to-install-nvidia-driver-on-centos-7-linux\">https://www.cyberciti.biz/faq/how-to-install-nvidia-driver-on-centos-7-linux</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7\">https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#rhel-7-centos-7</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->','NVIDIA- GPU 세팅 종합가이드','','inherit','closed','closed','','10-revision-v1','','','2025-10-22 21:33:09','2025-10-22 12:33:09','',10,'https://rndpolicy.org/aidev/?p=513',0,'revision','',0),
(514,1,'2025-10-22 21:34:13','2025-10-22 12:34:13','<!-- wp:paragraph -->\n<p>OpenWebUI는 로컬 환경에서 오프라인으로 작동하도록 설계된 확장 가능하고 사용자 친화적인 AI 인터페이스입니다. 주요 특징은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>핵심 기능</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>로컬 및 오프라인 우선:</strong> 모든 데이터는 사용자의 컴퓨터에 저장되어 개인 정보 보호와 제어권을 보장합니다. 별도의 클라우드 가입이 필요 없습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>다양한 LLM 지원:</strong> Ollama, OpenAI 호환 API 등 다양한 LLM(거대 언어 모델) 실행기를 지원하여 여러 모델을 손쉽게 전환하며 사용할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>파일 기반 채팅 (RAG):</strong> PDF, 마크다운, 이미지 등 다양한 형식의 파일을 업로드하고 해당 문서의 내용에 대해 대화할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>음성 입력 지원:</strong> 타이핑 대신 음성으로 입력하여 모델과 상호작용할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 및 프롬프트 맞춤 설정:</strong> 각 모델에 맞는 시스템 프롬프트를 설정하여 모델의 응답 방식과 역할을 세밀하게 조정할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>고급 기능</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>함수 호출 및 플러그인:</strong> 파이썬 기반의 함수나 플러그인을 추가하여 번역, 데이터 조회, 자동화 등 기본 기능을 확장할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>다국어 지원:</strong> 다양한 인터페이스 언어를 지원하여 비영어권 사용자나 국제적인 팀에게 유용합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>역할 기반 접근 제어(RBAC):</strong> 사용자별로 권한을 관리할 수 있어 보안 및 관리 효율성을 높입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>사용자 경험</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>친숙한 인터페이스:</strong> ChatGPT와 유사한 직관적인 채팅 환경을 제공하여 누구나 쉽게 적응할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>반응형 디자인:</strong> 데스크톱, 노트북, 모바일 등 모든 기기에서 원활한 사용자 경험을 제공합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>PWA(프로그레시브 웹 앱) 지원:</strong> 오프라인 상태에서도 접근 가능한 네이티브 앱과 같은 경험을 제공합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>마크다운 및 LaTeX 지원:</strong> 서식이 있는 텍스트나 수식을 편리하게 작성하고 렌더링할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>OpenWebUI는 개인 정보 보호를 중시하면서도 강력한 AI 기능을 로컬 환경에서 자유롭게 사용하고 싶은 사용자에게 적합한 도구입니다.</p>\n<!-- /wp:paragraph -->','OpenWebUI의 주요 특징','','publish','open','closed','','openwebui%ec%9d%98-%ec%a3%bc%ec%9a%94-%ed%8a%b9%ec%a7%95','','','2025-10-24 10:30:34','2025-10-24 01:30:34','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=514',0,'docs','',0),
(515,1,'2025-10-22 21:34:13','2025-10-22 12:34:13','<!-- wp:paragraph -->\n<p>OpenWebUI는 로컬 환경에서 오프라인으로 작동하도록 설계된 확장 가능하고 사용자 친화적인 AI 인터페이스입니다. 주요 특징은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>핵심 기능</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>로컬 및 오프라인 우선:</strong> 모든 데이터는 사용자의 컴퓨터에 저장되어 개인 정보 보호와 제어권을 보장합니다. 별도의 클라우드 가입이 필요 없습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>다양한 LLM 지원:</strong> Ollama, OpenAI 호환 API 등 다양한 LLM(거대 언어 모델) 실행기를 지원하여 여러 모델을 손쉽게 전환하며 사용할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>파일 기반 채팅 (RAG):</strong> PDF, 마크다운, 이미지 등 다양한 형식의 파일을 업로드하고 해당 문서의 내용에 대해 대화할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>음성 입력 지원:</strong> 타이핑 대신 음성으로 입력하여 모델과 상호작용할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 및 프롬프트 맞춤 설정:</strong> 각 모델에 맞는 시스템 프롬프트를 설정하여 모델의 응답 방식과 역할을 세밀하게 조정할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>고급 기능</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>함수 호출 및 플러그인:</strong> 파이썬 기반의 함수나 플러그인을 추가하여 번역, 데이터 조회, 자동화 등 기본 기능을 확장할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>다국어 지원:</strong> 다양한 인터페이스 언어를 지원하여 비영어권 사용자나 국제적인 팀에게 유용합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>역할 기반 접근 제어(RBAC):</strong> 사용자별로 권한을 관리할 수 있어 보안 및 관리 효율성을 높입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>사용자 경험</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>친숙한 인터페이스:</strong> ChatGPT와 유사한 직관적인 채팅 환경을 제공하여 누구나 쉽게 적응할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>반응형 디자인:</strong> 데스크톱, 노트북, 모바일 등 모든 기기에서 원활한 사용자 경험을 제공합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>PWA(프로그레시브 웹 앱) 지원:</strong> 오프라인 상태에서도 접근 가능한 네이티브 앱과 같은 경험을 제공합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>마크다운 및 LaTeX 지원:</strong> 서식이 있는 텍스트나 수식을 편리하게 작성하고 렌더링할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>OpenWebUI는 개인 정보 보호를 중시하면서도 강력한 AI 기능을 로컬 환경에서 자유롭게 사용하고 싶은 사용자에게 적합한 도구입니다.</p>\n<!-- /wp:paragraph -->','OpenWebUI의 주요 특징','','inherit','closed','closed','','514-revision-v1','','','2025-10-22 21:34:13','2025-10-22 12:34:13','',514,'https://rndpolicy.org/aidev/?p=515',0,'revision','',0),
(516,1,'2025-10-22 21:38:28','2025-10-22 12:38:28','<!-- wp:paragraph -->\n<p><strong>Tools</strong>와 <strong>Functions</strong> 이 두 가지는 OpenWebUI의 기능을 확장하는 강력한 방법이지만, 서로 다른 목적을 가지고 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Tools: LLM(거대 언어 모델)의 능력 확장</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Tools</strong>는 LLM이 최신 실시간 정보나 외부 데이터에 접근할 수 있도록 도와주는 확장 기능입니다. LLM은 학습된 데이터 내에서만 정보를 처리할 수 있지만, Tools를 사용하면 이러한 한계를 넘어 외부 세계와 상통할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적:</strong> LLM이 더 똑똑하고 유용하게 만들고, 실시간 정보에 접근하게 함.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>날씨 정보:</strong> 현재 위치의 날씨를 실시간으로 가져오는 도구</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>주식 정보:</strong> 특정 주식의 현재 가격을 알려주는 도구</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>계산기:</strong> 복잡한 수학 계산을 수행하는 도구</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>쉽게 말해, Tools는 LLM에게 \"슈퍼파워\"를 부여하여 학습 데이터에 없는 최신 정보를 활용할 수 있게 해주는 것입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Functions: OpenWebUI 플랫폼 자체의 기능 맞춤화</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Functions</strong>는 LLM이 아닌 OpenWebUI 플랫폼 자체의 인터페이스, 동작, 로직을 수정하거나 확장하는 기능입니다. 이를 통해 사용자는 자신의 작업 흐름에 맞게 OpenWebUI를 맞춤 설정할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적:</strong> OpenWebUI의 사용자 경험을 개선하고, 특정 요구에 맞는 기능 추가.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>새로운 AI 모델 지원 추가:</strong> 아직 공식적으로 지원되지 않는 새로운 AI 모델을 OpenWebUI에서 사용할 수 있도록 하는 기능</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>사용자 인터페이스(UI) 변경:</strong> 툴바에 새로운 버튼을 추가하거나, 특정 작업에 대한 필터를 구현하는 기능</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>콘텐츠 필터링:</strong> 특정 키워드나 콘텐츠를 필터링하는 로직을 추가</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>요약하자면, <strong>Functions</strong>는 OpenWebUI라는 \"소프트웨어\"를 사용자의 입맛에 맞게 개조하는 도구라고 할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>핵심 차이점</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Tools</strong>는 <strong>LLM의 능력</strong>을 향상시킵니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Functions</strong>는 <strong>OpenWebUI 플랫폼</strong>을 맞춤 설정합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>두 기능 모두 코딩 지식 없이 커뮤니티에서 만들어진 기능을 클릭 한 번으로 쉽게 가져와 사용할 수 있어, 누구나 편리하게 OpenWebUI의 잠재력을 최대한 활용할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Pipelines</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Pipeline</strong>은 Tools나 Functions보다 더 고급 기능으로, 주로 <strong>전문 사용자를 위해 설계</strong>되었습니다. 🧐</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>가장 큰 특징은 OpenWebUI의 기본 서버와 별개로 <strong>무거운 작업을 처리하는 API 호환 워크플로우를 만드는 데 사용</strong>된다는 점입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>주요 목적 및 특징</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>부하 분산 (Offloading):</strong> 이미지 생성, 문서 처리, 데이터 분석과 같이 <strong>자원을 많이 소모하는 작업을 별도의 서버나 프로세스에서 처리</strong>하도록 분리할 수 있습니다. 이를 통해 기본 OpenWebUI 서버의 성능 저하를 막고 원활한 채팅 경험을 유지할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>복잡한 워크플로우 자동화:</strong> 여러 단계를 거치는 복잡한 작업을 하나의 파이프라인으로 묶어 자동화할 수 있습니다. 예를 들어, \'이미지를 업로드하면 -&gt; 텍스트를 추출하고 -&gt; 요약한 후 -&gt; 번역해서 -&gt; 사용자에게 보여주는\' 일련의 과정을 하나의 파이프라인으로 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 호환성:</strong> 외부 시스템과 연동할 수 있는 표준 API 엔드포인트를 제공하여, OpenWebUI를 더 큰 시스템의 일부로 통합할 수 있게 해줍니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Tools, Functions와의 비교</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Tools:</strong> LLM에게 <strong>외부 데이터 접근 능력</strong>을 줍니다. (e.g., 날씨 묻기)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Functions:</strong> OpenWebUI <strong>플랫폼 자체를 수정</strong>합니다. (e.g., UI 버튼 추가)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Pipeline:</strong> <strong>무거운 백그라운드 작업을 처리</strong>하고 복잡한 워크플로우를 만듭니다. (e.g., 대용량 파일 분석)</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>간단히 비유하자면, 식당에서 <strong>Tools</strong>는 웨이터가 주방 외부에 있는 전문가(e.g., 와인 소믈리에)에게 정보를 물어보는 것이고, <strong>Functions</strong>는 식당의 메뉴판이나 인테리어를 바꾸는 것입니다. 반면 <strong>Pipeline</strong>은 대량의 재료를 손질하고 준비하는 별도의 중앙 주방(Central Kitchen)을 운영하는 것과 같습니다. 🍳</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>대부분의 일반 사용자는 Tools와 Functions만으로도 충분하지만, 시스템을 깊이 있게 확장하고 무거운 작업을 자동화해야 하는 전문가나 기업 환경에서는 Pipeline이 매우 유용한 기능입니다.</p>\n<!-- /wp:paragraph -->','OpenWebUI의 Tools와 Functions 그리고 Pipelines','','publish','open','closed','','openwebui%ec%9d%98-tools%ec%99%80-functions-%ea%b7%b8%eb%a6%ac%ea%b3%a0-pipelines','','','2025-10-24 10:30:27','2025-10-24 01:30:27','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=516',0,'docs','',0),
(517,1,'2025-10-22 21:38:28','2025-10-22 12:38:28','<!-- wp:paragraph -->\n<p><strong>Tools</strong>와 <strong>Functions</strong> 이 두 가지는 OpenWebUI의 기능을 확장하는 강력한 방법이지만, 서로 다른 목적을 가지고 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Tools: LLM(거대 언어 모델)의 능력 확장</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Tools</strong>는 LLM이 최신 실시간 정보나 외부 데이터에 접근할 수 있도록 도와주는 확장 기능입니다. LLM은 학습된 데이터 내에서만 정보를 처리할 수 있지만, Tools를 사용하면 이러한 한계를 넘어 외부 세계와 상통할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적:</strong> LLM이 더 똑똑하고 유용하게 만들고, 실시간 정보에 접근하게 함.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>날씨 정보:</strong> 현재 위치의 날씨를 실시간으로 가져오는 도구</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>주식 정보:</strong> 특정 주식의 현재 가격을 알려주는 도구</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>계산기:</strong> 복잡한 수학 계산을 수행하는 도구</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>쉽게 말해, Tools는 LLM에게 \"슈퍼파워\"를 부여하여 학습 데이터에 없는 최신 정보를 활용할 수 있게 해주는 것입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Functions: OpenWebUI 플랫폼 자체의 기능 맞춤화</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Functions</strong>는 LLM이 아닌 OpenWebUI 플랫폼 자체의 인터페이스, 동작, 로직을 수정하거나 확장하는 기능입니다. 이를 통해 사용자는 자신의 작업 흐름에 맞게 OpenWebUI를 맞춤 설정할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적:</strong> OpenWebUI의 사용자 경험을 개선하고, 특정 요구에 맞는 기능 추가.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>새로운 AI 모델 지원 추가:</strong> 아직 공식적으로 지원되지 않는 새로운 AI 모델을 OpenWebUI에서 사용할 수 있도록 하는 기능</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>사용자 인터페이스(UI) 변경:</strong> 툴바에 새로운 버튼을 추가하거나, 특정 작업에 대한 필터를 구현하는 기능</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>콘텐츠 필터링:</strong> 특정 키워드나 콘텐츠를 필터링하는 로직을 추가</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>요약하자면, <strong>Functions</strong>는 OpenWebUI라는 \"소프트웨어\"를 사용자의 입맛에 맞게 개조하는 도구라고 할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>핵심 차이점</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Tools</strong>는 <strong>LLM의 능력</strong>을 향상시킵니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Functions</strong>는 <strong>OpenWebUI 플랫폼</strong>을 맞춤 설정합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>두 기능 모두 코딩 지식 없이 커뮤니티에서 만들어진 기능을 클릭 한 번으로 쉽게 가져와 사용할 수 있어, 누구나 편리하게 OpenWebUI의 잠재력을 최대한 활용할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>Pipeline</strong>은 Tools나 Functions보다 더 고급 기능으로, 주로 <strong>전문 사용자를 위해 설계</strong>되었습니다. 🧐</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>가장 큰 특징은 OpenWebUI의 기본 서버와 별개로 <strong>무거운 작업을 처리하는 API 호환 워크플로우를 만드는 데 사용</strong>된다는 점입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>주요 목적 및 특징</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>부하 분산 (Offloading):</strong> 이미지 생성, 문서 처리, 데이터 분석과 같이 <strong>자원을 많이 소모하는 작업을 별도의 서버나 프로세스에서 처리</strong>하도록 분리할 수 있습니다. 이를 통해 기본 OpenWebUI 서버의 성능 저하를 막고 원활한 채팅 경험을 유지할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>복잡한 워크플로우 자동화:</strong> 여러 단계를 거치는 복잡한 작업을 하나의 파이프라인으로 묶어 자동화할 수 있습니다. 예를 들어, \'이미지를 업로드하면 -> 텍스트를 추출하고 -> 요약한 후 -> 번역해서 -> 사용자에게 보여주는\' 일련의 과정을 하나의 파이프라인으로 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 호환성:</strong> 외부 시스템과 연동할 수 있는 표준 API 엔드포인트를 제공하여, OpenWebUI를 더 큰 시스템의 일부로 통합할 수 있게 해줍니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Tools, Functions와의 비교</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Tools:</strong> LLM에게 <strong>외부 데이터 접근 능력</strong>을 줍니다. (e.g., 날씨 묻기)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Functions:</strong> OpenWebUI <strong>플랫폼 자체를 수정</strong>합니다. (e.g., UI 버튼 추가)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Pipeline:</strong> <strong>무거운 백그라운드 작업을 처리</strong>하고 복잡한 워크플로우를 만듭니다. (e.g., 대용량 파일 분석)</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>간단히 비유하자면, 식당에서 <strong>Tools</strong>는 웨이터가 주방 외부에 있는 전문가(e.g., 와인 소믈리에)에게 정보를 물어보는 것이고, <strong>Functions</strong>는 식당의 메뉴판이나 인테리어를 바꾸는 것입니다. 반면 <strong>Pipeline</strong>은 대량의 재료를 손질하고 준비하는 별도의 중앙 주방(Central Kitchen)을 운영하는 것과 같습니다. 🍳</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>대부분의 일반 사용자는 Tools와 Functions만으로도 충분하지만, 시스템을 깊이 있게 확장하고 무거운 작업을 자동화해야 하는 전문가나 기업 환경에서는 Pipeline이 매우 유용한 기능입니다.</p>\n<!-- /wp:paragraph -->','OpenWebUI의 Tools와 Functions 그리고 Pipelines','','inherit','closed','closed','','516-revision-v1','','','2025-10-22 21:38:28','2025-10-22 12:38:28','',516,'https://rndpolicy.org/aidev/?p=517',0,'revision','',0),
(518,1,'2025-10-22 21:39:30','2025-10-22 12:39:30','<!-- wp:paragraph -->\n<p><strong>Tools</strong>와 <strong>Functions</strong> 이 두 가지는 OpenWebUI의 기능을 확장하는 강력한 방법이지만, 서로 다른 목적을 가지고 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Tools: LLM(거대 언어 모델)의 능력 확장</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Tools</strong>는 LLM이 최신 실시간 정보나 외부 데이터에 접근할 수 있도록 도와주는 확장 기능입니다. LLM은 학습된 데이터 내에서만 정보를 처리할 수 있지만, Tools를 사용하면 이러한 한계를 넘어 외부 세계와 상통할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적:</strong> LLM이 더 똑똑하고 유용하게 만들고, 실시간 정보에 접근하게 함.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>날씨 정보:</strong> 현재 위치의 날씨를 실시간으로 가져오는 도구</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>주식 정보:</strong> 특정 주식의 현재 가격을 알려주는 도구</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>계산기:</strong> 복잡한 수학 계산을 수행하는 도구</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>쉽게 말해, Tools는 LLM에게 \"슈퍼파워\"를 부여하여 학습 데이터에 없는 최신 정보를 활용할 수 있게 해주는 것입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Functions: OpenWebUI 플랫폼 자체의 기능 맞춤화</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Functions</strong>는 LLM이 아닌 OpenWebUI 플랫폼 자체의 인터페이스, 동작, 로직을 수정하거나 확장하는 기능입니다. 이를 통해 사용자는 자신의 작업 흐름에 맞게 OpenWebUI를 맞춤 설정할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적:</strong> OpenWebUI의 사용자 경험을 개선하고, 특정 요구에 맞는 기능 추가.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예시:</strong><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>새로운 AI 모델 지원 추가:</strong> 아직 공식적으로 지원되지 않는 새로운 AI 모델을 OpenWebUI에서 사용할 수 있도록 하는 기능</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>사용자 인터페이스(UI) 변경:</strong> 툴바에 새로운 버튼을 추가하거나, 특정 작업에 대한 필터를 구현하는 기능</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>콘텐츠 필터링:</strong> 특정 키워드나 콘텐츠를 필터링하는 로직을 추가</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>요약하자면, <strong>Functions</strong>는 OpenWebUI라는 \"소프트웨어\"를 사용자의 입맛에 맞게 개조하는 도구라고 할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>핵심 차이점</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Tools</strong>는 <strong>LLM의 능력</strong>을 향상시킵니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Functions</strong>는 <strong>OpenWebUI 플랫폼</strong>을 맞춤 설정합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>두 기능 모두 코딩 지식 없이 커뮤니티에서 만들어진 기능을 클릭 한 번으로 쉽게 가져와 사용할 수 있어, 누구나 편리하게 OpenWebUI의 잠재력을 최대한 활용할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Pipelines</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Pipeline</strong>은 Tools나 Functions보다 더 고급 기능으로, 주로 <strong>전문 사용자를 위해 설계</strong>되었습니다. 🧐</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>가장 큰 특징은 OpenWebUI의 기본 서버와 별개로 <strong>무거운 작업을 처리하는 API 호환 워크플로우를 만드는 데 사용</strong>된다는 점입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>주요 목적 및 특징</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>부하 분산 (Offloading):</strong> 이미지 생성, 문서 처리, 데이터 분석과 같이 <strong>자원을 많이 소모하는 작업을 별도의 서버나 프로세스에서 처리</strong>하도록 분리할 수 있습니다. 이를 통해 기본 OpenWebUI 서버의 성능 저하를 막고 원활한 채팅 경험을 유지할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>복잡한 워크플로우 자동화:</strong> 여러 단계를 거치는 복잡한 작업을 하나의 파이프라인으로 묶어 자동화할 수 있습니다. 예를 들어, \'이미지를 업로드하면 -&gt; 텍스트를 추출하고 -&gt; 요약한 후 -&gt; 번역해서 -&gt; 사용자에게 보여주는\' 일련의 과정을 하나의 파이프라인으로 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 호환성:</strong> 외부 시스템과 연동할 수 있는 표준 API 엔드포인트를 제공하여, OpenWebUI를 더 큰 시스템의 일부로 통합할 수 있게 해줍니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><strong>Tools, Functions와의 비교</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Tools:</strong> LLM에게 <strong>외부 데이터 접근 능력</strong>을 줍니다. (e.g., 날씨 묻기)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Functions:</strong> OpenWebUI <strong>플랫폼 자체를 수정</strong>합니다. (e.g., UI 버튼 추가)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Pipeline:</strong> <strong>무거운 백그라운드 작업을 처리</strong>하고 복잡한 워크플로우를 만듭니다. (e.g., 대용량 파일 분석)</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>간단히 비유하자면, 식당에서 <strong>Tools</strong>는 웨이터가 주방 외부에 있는 전문가(e.g., 와인 소믈리에)에게 정보를 물어보는 것이고, <strong>Functions</strong>는 식당의 메뉴판이나 인테리어를 바꾸는 것입니다. 반면 <strong>Pipeline</strong>은 대량의 재료를 손질하고 준비하는 별도의 중앙 주방(Central Kitchen)을 운영하는 것과 같습니다. 🍳</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>대부분의 일반 사용자는 Tools와 Functions만으로도 충분하지만, 시스템을 깊이 있게 확장하고 무거운 작업을 자동화해야 하는 전문가나 기업 환경에서는 Pipeline이 매우 유용한 기능입니다.</p>\n<!-- /wp:paragraph -->','OpenWebUI의 Tools와 Functions 그리고 Pipelines','','inherit','closed','closed','','516-revision-v1','','','2025-10-22 21:39:30','2025-10-22 12:39:30','',516,'https://rndpolicy.org/aidev/?p=518',0,'revision','',0),
(519,1,'2025-10-24 10:29:24','2025-10-24 01:29:24','<!-- wp:paragraph -->\n<p>Open WebUI 내의 섹션&nbsp;<code>Prompts</code>을 통해&nbsp;<code>Workspace</code>사용자는 사용자 지정 프롬프트를 생성, 관리 및 공유할 수 있습니다. 이 기능을 통해 사용자는 자주 사용하는 프롬프트를 저장하고 슬래시 명령어를 통해 쉽게 액세스할 수 있으므로 AI 모델과의 상호 작용이 간소화됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"prompt-management\">신속한 관리</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>프롬프트 인터페이스는 사용자 정의 프롬프트를 관리하기 위한 몇 가지 주요 기능을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>만들기</strong> : 사용자 정의 가능한 제목, 액세스 수준 및 콘텐츠로 새로운 프롬프트를 디자인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>공유</strong> : 구성된 액세스 권한에 따라 다른 사용자와 프롬프트를 공유합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>접근 제어</strong> : 각 프롬프트에 대한 가시성 및 사용 권한을 설정합니다( 자세한 내용은 <a class=\"\" href=\"https://docs.openwebui.com/features/rbac/permissions\">권한을</a> 참조하세요 ).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>슬래시 명령</strong> : 채팅 세션 중에 사용자 정의 슬래시 명령을 사용하여 프롬프트에 빠르게 액세스합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"creating-and-editing-prompts\">프롬프트 만들기 및 편집</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>프롬프트를 만들거나 편집할 때 다음 설정을 구성할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>제목</strong> : 쉽게 식별할 수 있도록 프롬프트에 설명적인 이름을 지정하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>접근</strong> : 프롬프트를 보고 사용할 수 있는 사람을 제어하기 위해 접근 수준을 설정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>명령</strong> : 프롬프트를 트리거하는 슬래시 명령을 정의합니다(예: <code>/summarize</code>).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용</strong> : 모델에 전송될 실제 프롬프트 텍스트를 작성합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"prompt-variables\">프롬프트 변수</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI는 프롬프트를 보다 동적이고 강력하게 만들어 주는 두 가지 종류의 변수, 즉&nbsp;<strong>시스템 변수</strong>&nbsp;와&nbsp;<strong>사용자 정의 입력 변수를</strong>&nbsp;지원합니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong></strong>프롬프트를 사용하면&nbsp;<strong>시스템 변수가 해당 값으로 자동 대체됩니다. 시스템 변수는 현재 날짜나 사용자 정보와 같은 동적 정보를 삽입하는 데 유용합니다.</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>클립보드 내용</strong> : <code>{{CLIPBOARD}}</code>클립보드에서 내용을 삽입하는 데 사용됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>날짜 및 시간</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>{{CURRENT_DATE}}</code>: 현재 날짜</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{CURRENT_DATETIME}}</code>: 현재 날짜 및 시간</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{CURRENT_TIME}}</code>: 현재 시간</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{CURRENT_TIMEZONE}}</code>: 현재 시간대</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{CURRENT_WEEKDAY}}</code>: 현재 요일</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>사용자 정보</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>{{USER_NAME}}</code>: 현재 사용자 이름</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{USER_LANGUAGE}}</code>: 사용자가 선택한 언어</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{USER_LOCATION}}</code>: 사용자 위치(HTTPS 및 설정 > 인터페이스 토글 필요)</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>사용자 지정 입력 변수는</strong>&nbsp;프롬프트를 인터랙티브 템플릿으로 변환합니다. 이러한 변수가 포함된 프롬프트를 사용하면 모달 창이 자동으로 나타나 값을 입력할 수 있습니다. 이는 폼처럼 작동하는 복잡하고 재사용 가능한 프롬프트를 만드는 데 매우 유용합니다. 자세한 설명은 아래 지침을 참조하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>사용자 지정 입력 변수를 활용하면 정적 텍스트를 넘어 채팅 인터페이스 내에서 직접 대화형 도구를 구축할 수 있습니다. 이 기능은 실수 없이 사용할 수 있도록 설계되어 기술 지식이 없는 사용자도 복잡하고 여러 단계로 구성된 프롬프트를 손쉽게 실행할 수 있습니다. 방대한 텍스트를 직접 편집하는 대신, 사용자에게 깔끔하고 체계적인 양식이 제공됩니다. 이를 통해 워크플로우가 간소화될 뿐만 아니라 사용자가 정확한 정보를 적절한 형식으로 제공하도록 안내하여 오류를 줄일 수 있습니다. 새로운 차원의 대화형 프롬프트 디자인을 구현하여 누구나 정교한 AI 활용을 가능하게 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"variable-usage-guidelines\">변수 사용 지침</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>모든 변수를 이중 중괄호로 묶습니다.<code>{{variable}}</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모든 사용자 정의 입력 변수는 기본적으로 선택 사항입니다</strong> . 사용자는 양식을 작성할 때 필드를 비워 둘 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>:required</code>필요할 때 특정 변수를 필수로 만들려면 플래그를 사용하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>시스템 <code>{{USER_LOCATION}}</code>변수에는 다음이 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>안전한 HTTPS 연결</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>Settings</code>> 에서 기능 활성화<code>Interface</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>시스템 <code>{{CLIPBOARD}}</code>변수에는 장치의 클립보드 액세스 권한이 필요합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"using-custom-input-variables\">사용자 정의 입력 변수 사용</h4>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>작동 원리</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>아래 구문을 사용하여 하나 이상의 사용자 정의 변수가 있는 <strong>프롬프트를 만듭니다 .</strong></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>채팅 입력에서 <strong>프롬프트의 슬래시 명령을 사용하세요 .</strong></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>정의한 각 변수에 대한 양식 필드가 있는 <strong>\"입력 변수\" 팝업 창이</strong> 나타 납니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>양식을 작성</strong> 하고 클릭하세요 <code>Save</code>. 기본적으로 모든 필드는 필수로 명시적으로 표시되지 않는 한 선택 사항입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>프롬프트의 변수는 입력 내용으로 대체되고, 최종 프롬프트는 모델로 전송됩니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>통사론</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>사용자 정의 변수를 정의하는 방법은 두 가지가 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>간단한 입력</strong> :<code>{{variable_name}}</code><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>text</code>이렇게 하면 팝업 창에 표준 단일 줄 유형 입력 필드가 생성됩니다 .</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이 필드는 기본적으로 선택 사항입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>입력된 내용</strong> :<code>{{variable_name | [type][:property=\"value\"]}}</code><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>이를 통해 입력 필드의 유형(예: 드롭다운, 날짜 선택기)을 지정하고 해당 속성을 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>플래그를 추가하지 않는 한 해당 필드는 기본적으로 선택 사항입니다 <code>:required</code>.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>필수 변수 vs 선택 변수</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>기본적으로 모든 사용자 지정 입력 변수는&nbsp;<strong>선택 사항</strong>&nbsp;이므로 사용자는 양식을 작성할 때 해당 변수를 비워둘 수 있습니다. 이러한 유연한 접근 방식을 통해 일부 정보가 항상 필요하지 않은 경우에도 다재다능한 프롬프트 템플릿을 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>변수를&nbsp;<strong>필수</strong>&nbsp;(필수) 로 만들려면&nbsp;<code>:required</code>다음 플래그를 추가합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>{{mandatory_field | text:required}}<br>{{optional_field | text}}</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>필드가 필수로 표시된 경우:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>양식에는 필드 레이블 옆에 시각적 표시기(별표)가 표시됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용자는 값을 제공하지 않고는 양식을 제출할 수 없습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>필수 필드가 비어 있으면 브라우저 검증으로 인해 양식 제출이 차단됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>입력 유형 개요</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다양한 입력 유형을 지정하여 풍부하고 사용자 친화적인 양식을 만들 수 있습니다. 사용 가능한 유형과 속성 표는 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>유형</th><th>설명</th><th>사용 가능한 속성</th><th>구문 예</th></tr></thead><tbody><tr><td><strong>텍스트</strong></td><td>이름, 직함 또는 한 문장 요약과 같은 짧은 정보를 입력하는 데 적합한 표준 단일 줄 텍스트 입력 필드입니다.&nbsp;<strong>다른 유형이 지정되지 않은 경우 기본 유형</strong>&nbsp;입니다 .</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{name | text:placeholder=\"Enter name\":required}}</code></td></tr><tr><td><strong>텍스트에어리어</strong></td><td>자세한 설명, 기사 내용 또는 코드 조각과 같은 긴 텍스트 블록을 캡처하도록 설계된 여러 줄로 구성된 텍스트 영역입니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{description | textarea:required}}</code></td></tr><tr><td><strong>선택하다</strong></td><td>미리 정의된 선택 목록을 제공하는 드롭다운 메뉴입니다. 상태, 우선순위, 범주 등에 대한 일관된 입력을 보장하는 데 적합합니다.</td><td><code>options</code>(JSON 배열),&nbsp;<code>default</code>,<code>required</code></td><td><code>{{priority | select:options=[\"High\",\"Medium\",\"Low\"]:required}}</code></td></tr><tr><td><strong>숫자</strong></td><td>숫자 값만 입력할 수 있는 입력 필드입니다. 수량, 등급 또는 기타 숫자 데이터에 유용합니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{count | number:default=5}}</code></td></tr><tr><td><strong>체크박스</strong></td><td>참 또는 거짓(부울) 값을 나타내는 간단한 체크박스입니다. \'결론을 포함하시겠습니까?\' 또는 \'긴급으로 표시하시겠습니까?\'와 같은 켜기/끄기 토글에 적합합니다.</td><td><code>default</code>(부울),<code>required</code></td><td><code>{{include_details | checkbox}}</code></td></tr><tr><td><strong>날짜</strong></td><td>사용자가 특정 날짜, 월, 연도를 쉽게 선택할 수 있도록 해주는 달력 기반 날짜 선택기로, 표준화된 날짜 형식을 보장합니다.</td><td><code>default</code>(년-월-일),<code>required</code></td><td><code>{{start_date | date:required}}</code></td></tr><tr><td><strong>날짜/시간-로컬</strong></td><td>사용자가 특정 날짜와 시간을 모두 선택할 수 있는 특수 선택 도구입니다. 약속 일정을 예약하거나 이벤트 타임스탬프를 기록하는 데 유용합니다.</td><td><code>default</code>,<code>required</code></td><td><code>{{appointment | datetime-local}}</code></td></tr><tr><td><strong>색상</strong></td><td>사용자가 색상을 선택하거나 표준 16진수 코드(예: #FF5733)를 입력할 수 있는 시각적 색상 선택기입니다. 디자인 및 브랜딩 프롬프트에 유용합니다.</td><td><code>default</code>(16진수 코드),<code>required</code></td><td><code>{{brand_color | color:default=\"#FFFFFF\"}}</code></td></tr><tr><td><strong>이메일</strong></td><td>이메일 주소에 맞게 특별히 형식화되고 검증된 입력 필드를 통해 사용자가 올바르게 구성된 이메일을 제공할 수 있습니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{recipient_email | email:required}}</code></td></tr><tr><td><strong>월</strong></td><td>사용자가 날짜를 선택하지 않고도 특정 월과 연도를 선택할 수 있는 선택기입니다. 청구 주기, 보고서 또는 타임라인에 유용합니다.</td><td><code>default</code>,<code>required</code></td><td><code>{{billing_month | month}}</code></td></tr><tr><td><strong>범위</strong></td><td>사용자가 정의된 최소 및 최대 범위 내에서 숫자 값을 선택할 수 있는 슬라이더 컨트롤입니다. 만족도 점수 또는 백분율 조정에 적합합니다.</td><td><code>min</code>,&nbsp;<code>max</code>,&nbsp;<code>step</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{satisfaction | range:min=1:max=10}}</code></td></tr><tr><td><strong>전화</strong></td><td>전화번호 입력을 위해 설계된 입력 필드입니다. 브라우저 및 기기에 따라 예상되는 입력 유형을 의미적으로 나타냅니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{phone_number | tel}}</code></td></tr><tr><td><strong>시간</strong></td><td>시간을 선택하는 도구입니다. 회의 일정을 예약하거나, 이벤트를 기록하거나, 날짜가 지정되지 않은 알림을 설정하는 데 유용합니다.</td><td><code>default</code>,<code>required</code></td><td><code>{{meeting_time | time}}</code></td></tr><tr><td><strong>URL</strong></td><td>웹 주소(URL)를 입력하는 필드입니다. 사용자가 링크를 제공하도록 하는 데 도움이 되며, 웹사이트 분석이나 온라인 자료 참조를 위한 프롬프트에 유용합니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{website | url:required}}</code></td></tr><tr><td><strong>지도</strong></td><td><strong>(실험적)</strong>&nbsp;사용자가 클릭하여 지리적 좌표를 선택할 수 있는 대화형 지도 인터페이스입니다. 위치 기반 프롬프트에 매우 유용한 도구입니다.</td><td><code>default</code>(예: \"51.5,-0.09\")<code>required</code></td><td><code>{{location | map}}</code></td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"example-use-cases\">예시 사용 사례</h4>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>1. 유연한 기사 요약기</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>기사 내용은 필수이지만 추가 매개변수는 선택 사항인 재사용 가능한 프롬프트를 만듭니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/summarize_article</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code>Please summarize the following article. {{article_text | textarea:placeholder=\"Paste the full text of the article here...\":required}}<br><br>{{summary_length | select:options=[\"Brief (3 bullets)\",\"Detailed (5 bullets)\",\"Executive Summary\"]:default=\"Brief (3 bullets)\"}}<br><br>{{focus_area | text:placeholder=\"Any specific aspect to focus on? (optional)\"}}<br><br>{{include_quotes | checkbox}} Include key quotes from the article<br></code>입력하면 <code>/summarize_article</code>기사에 필요한 텍스트 영역과 요약 스타일을 사용자 정의할 수 있는 선택적 필드가 있는 모달이 나타납니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>2. 고급 버그 보고서 생성기</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>이 프롬프트는 선택적 세부 정보를 허용하는 동시에 중요한 정보가 수집되도록 보장합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/bug_report</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code>Generate a bug report with the following details:<br><br>**Summary:** {{summary | text:placeholder=\"A brief summary of the issue\":required}}<br>**Priority:** {{priority | select:options=[\"Critical\",\"High\",\"Medium\",\"Low\"]:default=\"Medium\":required}}<br>**Steps to Reproduce:**<br>{{steps | textarea:placeholder=\"1. Go to...\\n2. Click on...\\n3. See error...\":required}}<br><br>**Additional Context:** {{additional_context | textarea:placeholder=\"Browser version, OS, screenshots, etc. (optional)\"}}<br>**Workaround:** {{workaround | textarea:placeholder=\"Any temporary solutions found (optional)\"}}<br><br>Please format this into a clear and complete bug report document.<br></code>이렇게 하면 제목, 우선순위, 단계가 필수이지만 추가 컨텍스트와 해결 방법은 선택 사항인 양식이 생성됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>3. 스마트 기본값을 갖춘 소셜 미디어 게시물 생성기</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>이 프롬프트는 필수 핵심 정보와 선택적 사용자 정의를 통해 맞춤형 콘텐츠를 생성합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/social_post</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code>Generate a social media post for {{platform | select:options=[\"LinkedIn\",\"Twitter\",\"Facebook\",\"Instagram\"]:required}}.<br><br>**Topic:** {{topic | text:placeholder=\"e.g., New feature launch\":required}}<br>**Key Message:** {{key_message | textarea:placeholder=\"What are the essential points to communicate?\":required}}<br>**Tone of Voice:** {{tone | select:options=[\"Professional\",\"Casual\",\"Humorous\",\"Inspirational\"]:default=\"Professional\"}}<br>**Call to Action:** {{cta | text:placeholder=\"e.g., \'Learn more\', \'Sign up today\'\"}}<br>**Character Limit:** {{char_limit | number:placeholder=\"Leave blank for platform default\"}}<br>**Include Hashtags:** {{include_hashtags | checkbox:default=true}}<br><br>Please create an engaging post optimized for the selected platform.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>4. 유연한 구조의 회의록 작성 도우미</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>필수 기본 사항과 선택 사항으로 구성된 회의록을 생성합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/meeting_minutes</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code># Meeting Minutes<br><br>**Date:** {{meeting_date | date:required}}<br>**Time:** {{meeting_time | time:required}}<br>**Meeting Title:** {{title | text:placeholder=\"e.g., Weekly Team Sync\":required}}<br>**Attendees:** {{attendees | text:placeholder=\"Comma-separated list of names\":required}}<br><br>## Agenda / Key Discussion Points<br>{{agenda_items | textarea:placeholder=\"Paste the agenda or list the key topics discussed.\":required}}<br><br>## Decisions Made<br>{{decisions | textarea:placeholder=\"Key decisions and outcomes (optional)\"}}<br><br>## Action Items<br>{{action_items | textarea:placeholder=\"List each action item, who it is assigned to, and the deadline.\"}}<br><br>## Next Meeting<br>**Date:** {{next_meeting | date}}<br>**Topics:** {{next_topics | text:placeholder=\"Items to discuss next time\"}}<br><br>Please format the above information into a clean and professional meeting summary.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>5. 콘텐츠 검토 템플릿</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다양한 유형의 콘텐츠를 검토하기 위한 유연한 템플릿입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/content_review</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code>Please review the following {{content_type | select:options=[\"Blog Post\",\"Marketing Copy\",\"Documentation\",\"Email\",\"Presentation\"]:required}}:<br><br>**Content Title:** {{title | text:required}}<br>**Content:** {{content | textarea:placeholder=\"Paste the content to be reviewed\":required}}<br><br>**Review Focus:** {{focus | select:options=[\"Grammar &amp; Style\",\"Technical Accuracy\",\"Brand Voice\",\"SEO Optimization\",\"General Feedback\"]:default=\"General Feedback\"}}<br>**Target Audience:** {{audience | text:placeholder=\"Who is this content for?\"}}<br>**Specific Concerns:** {{concerns | textarea:placeholder=\"Any particular areas you\'d like me to focus on?\"}}<br>**Word Count Target:** {{word_count | number:placeholder=\"Target word count (if relevant)\"}}<br><br>Please provide detailed feedback and suggestions for improvement.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"access-control-and-permissions\">액세스 제어 및 권한</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>프롬프트 관리 기능은 다음 권한 설정에 의해 제어됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>프롬프트 액세스</strong> : 사용자는 <code>USER_PERMISSIONS_WORKSPACE_PROMPTS_ACCESS</code>프롬프트를 만들고 관리할 수 있는 권한이 필요합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>권한 구성에 대한 자세한 내용은 <a class=\"\" href=\"https://docs.openwebui.com/features/rbac/permissions\">권한 설명서</a> 를 참조하세요 .</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"best-practices\">모범 사례</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>프롬프트에 명확하고 설명적인 제목을 사용하세요</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>프롬프트의 목적을 반영하는 직관적인 슬래시 명령을 만듭니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>유연성을 염두에 두고 디자인</strong> : 필수 필드만 필수로 표시하고 선택 필드는 향상된 사용자 정의를 위해 남겨 둡니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용자 정의 변수의 경우 명확한 이름(예: <code>{{your_name}}</code>대신 <code>{{var1}}</code>)과 설명 <code>placeholder</code>텍스트를 사용하여 템플릿을 이해하기 쉽게 만듭니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>적절한 경우 선택 필드에 합리적인 기본값을 제공하여</strong> 양식 완성 속도를 높입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>필수 플래그를 전략적으로 사용하세요</strong> . 프롬프트가 제대로 작동하는 데 절대적으로 필요한 정보만 요구하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>프롬프트 설명에 특정 요구 사항이나 예상 입력 사항을 문서화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>선택 필드가 비어 있는 시나리오를 포함하여 다양한 변수 조합을 사용한 테스트 프롬프트</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다른 사용자와 프롬프트를 공유할 때 액세스 수준을 신중하게 고려하세요. 공개 공유는 채팅에 참여할 때 모든 사용자에게 자동으로 표시되므로 <code>/</code>너무 많은 프롬프트를 생성하지 않도록 해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>사용자 워크플로우 고려</strong> : 사용자가 항상 보유하는 정보와 가끔씩 사용자 정의하려는 정보를 비교해 보세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->','프롬프트','','publish','open','closed','','%ed%94%84%eb%a1%ac%ed%94%84%ed%8a%b8','','','2025-10-24 10:31:07','2025-10-24 01:31:07','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=519',0,'docs','',0),
(520,1,'2025-10-24 10:29:24','2025-10-24 01:29:24','<!-- wp:paragraph -->\n<p>Open WebUI 내의 섹션&nbsp;<code>Prompts</code>을 통해&nbsp;<code>Workspace</code>사용자는 사용자 지정 프롬프트를 생성, 관리 및 공유할 수 있습니다. 이 기능을 통해 사용자는 자주 사용하는 프롬프트를 저장하고 슬래시 명령어를 통해 쉽게 액세스할 수 있으므로 AI 모델과의 상호 작용이 간소화됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"prompt-management\">신속한 관리</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>프롬프트 인터페이스는 사용자 정의 프롬프트를 관리하기 위한 몇 가지 주요 기능을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>만들기</strong> : 사용자 정의 가능한 제목, 액세스 수준 및 콘텐츠로 새로운 프롬프트를 디자인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>공유</strong> : 구성된 액세스 권한에 따라 다른 사용자와 프롬프트를 공유합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>접근 제어</strong> : 각 프롬프트에 대한 가시성 및 사용 권한을 설정합니다( 자세한 내용은 <a class=\"\" href=\"https://docs.openwebui.com/features/rbac/permissions\">권한을</a> 참조하세요 ).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>슬래시 명령</strong> : 채팅 세션 중에 사용자 정의 슬래시 명령을 사용하여 프롬프트에 빠르게 액세스합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"creating-and-editing-prompts\">프롬프트 만들기 및 편집</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>프롬프트를 만들거나 편집할 때 다음 설정을 구성할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>제목</strong> : 쉽게 식별할 수 있도록 프롬프트에 설명적인 이름을 지정하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>접근</strong> : 프롬프트를 보고 사용할 수 있는 사람을 제어하기 위해 접근 수준을 설정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>명령</strong> : 프롬프트를 트리거하는 슬래시 명령을 정의합니다(예: <code>/summarize</code>).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용</strong> : 모델에 전송될 실제 프롬프트 텍스트를 작성합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"prompt-variables\">프롬프트 변수</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI는 프롬프트를 보다 동적이고 강력하게 만들어 주는 두 가지 종류의 변수, 즉&nbsp;<strong>시스템 변수</strong>&nbsp;와&nbsp;<strong>사용자 정의 입력 변수를</strong>&nbsp;지원합니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong></strong>프롬프트를 사용하면&nbsp;<strong>시스템 변수가 해당 값으로 자동 대체됩니다. 시스템 변수는 현재 날짜나 사용자 정보와 같은 동적 정보를 삽입하는 데 유용합니다.</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>클립보드 내용</strong> : <code>{{CLIPBOARD}}</code>클립보드에서 내용을 삽입하는 데 사용됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>날짜 및 시간</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>{{CURRENT_DATE}}</code>: 현재 날짜</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{CURRENT_DATETIME}}</code>: 현재 날짜 및 시간</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{CURRENT_TIME}}</code>: 현재 시간</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{CURRENT_TIMEZONE}}</code>: 현재 시간대</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{CURRENT_WEEKDAY}}</code>: 현재 요일</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>사용자 정보</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>{{USER_NAME}}</code>: 현재 사용자 이름</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{USER_LANGUAGE}}</code>: 사용자가 선택한 언어</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>{{USER_LOCATION}}</code>: 사용자 위치(HTTPS 및 설정 > 인터페이스 토글 필요)</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>사용자 지정 입력 변수는</strong>&nbsp;프롬프트를 인터랙티브 템플릿으로 변환합니다. 이러한 변수가 포함된 프롬프트를 사용하면 모달 창이 자동으로 나타나 값을 입력할 수 있습니다. 이는 폼처럼 작동하는 복잡하고 재사용 가능한 프롬프트를 만드는 데 매우 유용합니다. 자세한 설명은 아래 지침을 참조하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>사용자 지정 입력 변수를 활용하면 정적 텍스트를 넘어 채팅 인터페이스 내에서 직접 대화형 도구를 구축할 수 있습니다. 이 기능은 실수 없이 사용할 수 있도록 설계되어 기술 지식이 없는 사용자도 복잡하고 여러 단계로 구성된 프롬프트를 손쉽게 실행할 수 있습니다. 방대한 텍스트를 직접 편집하는 대신, 사용자에게 깔끔하고 체계적인 양식이 제공됩니다. 이를 통해 워크플로우가 간소화될 뿐만 아니라 사용자가 정확한 정보를 적절한 형식으로 제공하도록 안내하여 오류를 줄일 수 있습니다. 새로운 차원의 대화형 프롬프트 디자인을 구현하여 누구나 정교한 AI 활용을 가능하게 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"variable-usage-guidelines\">변수 사용 지침</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>모든 변수를 이중 중괄호로 묶습니다.<code>{{variable}}</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모든 사용자 정의 입력 변수는 기본적으로 선택 사항입니다</strong> . 사용자는 양식을 작성할 때 필드를 비워 둘 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>:required</code>필요할 때 특정 변수를 필수로 만들려면 플래그를 사용하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>시스템 <code>{{USER_LOCATION}}</code>변수에는 다음이 필요합니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>안전한 HTTPS 연결</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>Settings</code>> 에서 기능 활성화<code>Interface</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>시스템 <code>{{CLIPBOARD}}</code>변수에는 장치의 클립보드 액세스 권한이 필요합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"using-custom-input-variables\">사용자 정의 입력 변수 사용</h4>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>작동 원리</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>아래 구문을 사용하여 하나 이상의 사용자 정의 변수가 있는 <strong>프롬프트를 만듭니다 .</strong></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>채팅 입력에서 <strong>프롬프트의 슬래시 명령을 사용하세요 .</strong></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>정의한 각 변수에 대한 양식 필드가 있는 <strong>\"입력 변수\" 팝업 창이</strong> 나타 납니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>양식을 작성</strong> 하고 클릭하세요 <code>Save</code>. 기본적으로 모든 필드는 필수로 명시적으로 표시되지 않는 한 선택 사항입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>프롬프트의 변수는 입력 내용으로 대체되고, 최종 프롬프트는 모델로 전송됩니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>통사론</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>사용자 정의 변수를 정의하는 방법은 두 가지가 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>간단한 입력</strong> :<code>{{variable_name}}</code><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>text</code>이렇게 하면 팝업 창에 표준 단일 줄 유형 입력 필드가 생성됩니다 .</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이 필드는 기본적으로 선택 사항입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>입력된 내용</strong> :<code>{{variable_name | [type][:property=\"value\"]}}</code><!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>이를 통해 입력 필드의 유형(예: 드롭다운, 날짜 선택기)을 지정하고 해당 속성을 구성할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>플래그를 추가하지 않는 한 해당 필드는 기본적으로 선택 사항입니다 <code>:required</code>.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>필수 변수 vs 선택 변수</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>기본적으로 모든 사용자 지정 입력 변수는&nbsp;<strong>선택 사항</strong>&nbsp;이므로 사용자는 양식을 작성할 때 해당 변수를 비워둘 수 있습니다. 이러한 유연한 접근 방식을 통해 일부 정보가 항상 필요하지 않은 경우에도 다재다능한 프롬프트 템플릿을 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>변수를&nbsp;<strong>필수</strong>&nbsp;(필수) 로 만들려면&nbsp;<code>:required</code>다음 플래그를 추가합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>{{mandatory_field | text:required}}<br>{{optional_field | text}}</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p>필드가 필수로 표시된 경우:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>양식에는 필드 레이블 옆에 시각적 표시기(별표)가 표시됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용자는 값을 제공하지 않고는 양식을 제출할 수 없습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>필수 필드가 비어 있으면 브라우저 검증으로 인해 양식 제출이 차단됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>입력 유형 개요</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다양한 입력 유형을 지정하여 풍부하고 사용자 친화적인 양식을 만들 수 있습니다. 사용 가능한 유형과 속성 표는 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>유형</th><th>설명</th><th>사용 가능한 속성</th><th>구문 예</th></tr></thead><tbody><tr><td><strong>텍스트</strong></td><td>이름, 직함 또는 한 문장 요약과 같은 짧은 정보를 입력하는 데 적합한 표준 단일 줄 텍스트 입력 필드입니다.&nbsp;<strong>다른 유형이 지정되지 않은 경우 기본 유형</strong>&nbsp;입니다 .</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{name | text:placeholder=\"Enter name\":required}}</code></td></tr><tr><td><strong>텍스트에어리어</strong></td><td>자세한 설명, 기사 내용 또는 코드 조각과 같은 긴 텍스트 블록을 캡처하도록 설계된 여러 줄로 구성된 텍스트 영역입니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{description | textarea:required}}</code></td></tr><tr><td><strong>선택하다</strong></td><td>미리 정의된 선택 목록을 제공하는 드롭다운 메뉴입니다. 상태, 우선순위, 범주 등에 대한 일관된 입력을 보장하는 데 적합합니다.</td><td><code>options</code>(JSON 배열),&nbsp;<code>default</code>,<code>required</code></td><td><code>{{priority | select:options=[\"High\",\"Medium\",\"Low\"]:required}}</code></td></tr><tr><td><strong>숫자</strong></td><td>숫자 값만 입력할 수 있는 입력 필드입니다. 수량, 등급 또는 기타 숫자 데이터에 유용합니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{count | number:default=5}}</code></td></tr><tr><td><strong>체크박스</strong></td><td>참 또는 거짓(부울) 값을 나타내는 간단한 체크박스입니다. \'결론을 포함하시겠습니까?\' 또는 \'긴급으로 표시하시겠습니까?\'와 같은 켜기/끄기 토글에 적합합니다.</td><td><code>default</code>(부울),<code>required</code></td><td><code>{{include_details | checkbox}}</code></td></tr><tr><td><strong>날짜</strong></td><td>사용자가 특정 날짜, 월, 연도를 쉽게 선택할 수 있도록 해주는 달력 기반 날짜 선택기로, 표준화된 날짜 형식을 보장합니다.</td><td><code>default</code>(년-월-일),<code>required</code></td><td><code>{{start_date | date:required}}</code></td></tr><tr><td><strong>날짜/시간-로컬</strong></td><td>사용자가 특정 날짜와 시간을 모두 선택할 수 있는 특수 선택 도구입니다. 약속 일정을 예약하거나 이벤트 타임스탬프를 기록하는 데 유용합니다.</td><td><code>default</code>,<code>required</code></td><td><code>{{appointment | datetime-local}}</code></td></tr><tr><td><strong>색상</strong></td><td>사용자가 색상을 선택하거나 표준 16진수 코드(예: #FF5733)를 입력할 수 있는 시각적 색상 선택기입니다. 디자인 및 브랜딩 프롬프트에 유용합니다.</td><td><code>default</code>(16진수 코드),<code>required</code></td><td><code>{{brand_color | color:default=\"#FFFFFF\"}}</code></td></tr><tr><td><strong>이메일</strong></td><td>이메일 주소에 맞게 특별히 형식화되고 검증된 입력 필드를 통해 사용자가 올바르게 구성된 이메일을 제공할 수 있습니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{recipient_email | email:required}}</code></td></tr><tr><td><strong>월</strong></td><td>사용자가 날짜를 선택하지 않고도 특정 월과 연도를 선택할 수 있는 선택기입니다. 청구 주기, 보고서 또는 타임라인에 유용합니다.</td><td><code>default</code>,<code>required</code></td><td><code>{{billing_month | month}}</code></td></tr><tr><td><strong>범위</strong></td><td>사용자가 정의된 최소 및 최대 범위 내에서 숫자 값을 선택할 수 있는 슬라이더 컨트롤입니다. 만족도 점수 또는 백분율 조정에 적합합니다.</td><td><code>min</code>,&nbsp;<code>max</code>,&nbsp;<code>step</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{satisfaction | range:min=1:max=10}}</code></td></tr><tr><td><strong>전화</strong></td><td>전화번호 입력을 위해 설계된 입력 필드입니다. 브라우저 및 기기에 따라 예상되는 입력 유형을 의미적으로 나타냅니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{phone_number | tel}}</code></td></tr><tr><td><strong>시간</strong></td><td>시간을 선택하는 도구입니다. 회의 일정을 예약하거나, 이벤트를 기록하거나, 날짜가 지정되지 않은 알림을 설정하는 데 유용합니다.</td><td><code>default</code>,<code>required</code></td><td><code>{{meeting_time | time}}</code></td></tr><tr><td><strong>URL</strong></td><td>웹 주소(URL)를 입력하는 필드입니다. 사용자가 링크를 제공하도록 하는 데 도움이 되며, 웹사이트 분석이나 온라인 자료 참조를 위한 프롬프트에 유용합니다.</td><td><code>placeholder</code>,&nbsp;<code>default</code>,<code>required</code></td><td><code>{{website | url:required}}</code></td></tr><tr><td><strong>지도</strong></td><td><strong>(실험적)</strong>&nbsp;사용자가 클릭하여 지리적 좌표를 선택할 수 있는 대화형 지도 인터페이스입니다. 위치 기반 프롬프트에 매우 유용한 도구입니다.</td><td><code>default</code>(예: \"51.5,-0.09\")<code>required</code></td><td><code>{{location | map}}</code></td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"example-use-cases\">예시 사용 사례</h4>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>1. 유연한 기사 요약기</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>기사 내용은 필수이지만 추가 매개변수는 선택 사항인 재사용 가능한 프롬프트를 만듭니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/summarize_article</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code>Please summarize the following article. {{article_text | textarea:placeholder=\"Paste the full text of the article here...\":required}}<br><br>{{summary_length | select:options=[\"Brief (3 bullets)\",\"Detailed (5 bullets)\",\"Executive Summary\"]:default=\"Brief (3 bullets)\"}}<br><br>{{focus_area | text:placeholder=\"Any specific aspect to focus on? (optional)\"}}<br><br>{{include_quotes | checkbox}} Include key quotes from the article<br></code>입력하면 <code>/summarize_article</code>기사에 필요한 텍스트 영역과 요약 스타일을 사용자 정의할 수 있는 선택적 필드가 있는 모달이 나타납니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>2. 고급 버그 보고서 생성기</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>이 프롬프트는 선택적 세부 정보를 허용하는 동시에 중요한 정보가 수집되도록 보장합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/bug_report</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code>Generate a bug report with the following details:<br><br>**Summary:** {{summary | text:placeholder=\"A brief summary of the issue\":required}}<br>**Priority:** {{priority | select:options=[\"Critical\",\"High\",\"Medium\",\"Low\"]:default=\"Medium\":required}}<br>**Steps to Reproduce:**<br>{{steps | textarea:placeholder=\"1. Go to...\\n2. Click on...\\n3. See error...\":required}}<br><br>**Additional Context:** {{additional_context | textarea:placeholder=\"Browser version, OS, screenshots, etc. (optional)\"}}<br>**Workaround:** {{workaround | textarea:placeholder=\"Any temporary solutions found (optional)\"}}<br><br>Please format this into a clear and complete bug report document.<br></code>이렇게 하면 제목, 우선순위, 단계가 필수이지만 추가 컨텍스트와 해결 방법은 선택 사항인 양식이 생성됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>3. 스마트 기본값을 갖춘 소셜 미디어 게시물 생성기</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>이 프롬프트는 필수 핵심 정보와 선택적 사용자 정의를 통해 맞춤형 콘텐츠를 생성합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/social_post</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code>Generate a social media post for {{platform | select:options=[\"LinkedIn\",\"Twitter\",\"Facebook\",\"Instagram\"]:required}}.<br><br>**Topic:** {{topic | text:placeholder=\"e.g., New feature launch\":required}}<br>**Key Message:** {{key_message | textarea:placeholder=\"What are the essential points to communicate?\":required}}<br>**Tone of Voice:** {{tone | select:options=[\"Professional\",\"Casual\",\"Humorous\",\"Inspirational\"]:default=\"Professional\"}}<br>**Call to Action:** {{cta | text:placeholder=\"e.g., \'Learn more\', \'Sign up today\'\"}}<br>**Character Limit:** {{char_limit | number:placeholder=\"Leave blank for platform default\"}}<br>**Include Hashtags:** {{include_hashtags | checkbox:default=true}}<br><br>Please create an engaging post optimized for the selected platform.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>4. 유연한 구조의 회의록 작성 도우미</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>필수 기본 사항과 선택 사항으로 구성된 회의록을 생성합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/meeting_minutes</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code># Meeting Minutes<br><br>**Date:** {{meeting_date | date:required}}<br>**Time:** {{meeting_time | time:required}}<br>**Meeting Title:** {{title | text:placeholder=\"e.g., Weekly Team Sync\":required}}<br>**Attendees:** {{attendees | text:placeholder=\"Comma-separated list of names\":required}}<br><br>## Agenda / Key Discussion Points<br>{{agenda_items | textarea:placeholder=\"Paste the agenda or list the key topics discussed.\":required}}<br><br>## Decisions Made<br>{{decisions | textarea:placeholder=\"Key decisions and outcomes (optional)\"}}<br><br>## Action Items<br>{{action_items | textarea:placeholder=\"List each action item, who it is assigned to, and the deadline.\"}}<br><br>## Next Meeting<br>**Date:** {{next_meeting | date}}<br>**Topics:** {{next_topics | text:placeholder=\"Items to discuss next time\"}}<br><br>Please format the above information into a clean and professional meeting summary.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>5. 콘텐츠 검토 템플릿</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다양한 유형의 콘텐츠를 검토하기 위한 유연한 템플릿입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>명령:</strong> <code>/content_review</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 내용:</strong><code>Please review the following {{content_type | select:options=[\"Blog Post\",\"Marketing Copy\",\"Documentation\",\"Email\",\"Presentation\"]:required}}:<br><br>**Content Title:** {{title | text:required}}<br>**Content:** {{content | textarea:placeholder=\"Paste the content to be reviewed\":required}}<br><br>**Review Focus:** {{focus | select:options=[\"Grammar &amp; Style\",\"Technical Accuracy\",\"Brand Voice\",\"SEO Optimization\",\"General Feedback\"]:default=\"General Feedback\"}}<br>**Target Audience:** {{audience | text:placeholder=\"Who is this content for?\"}}<br>**Specific Concerns:** {{concerns | textarea:placeholder=\"Any particular areas you\'d like me to focus on?\"}}<br>**Word Count Target:** {{word_count | number:placeholder=\"Target word count (if relevant)\"}}<br><br>Please provide detailed feedback and suggestions for improvement.</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"access-control-and-permissions\">액세스 제어 및 권한</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>프롬프트 관리 기능은 다음 권한 설정에 의해 제어됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>프롬프트 액세스</strong> : 사용자는 <code>USER_PERMISSIONS_WORKSPACE_PROMPTS_ACCESS</code>프롬프트를 만들고 관리할 수 있는 권한이 필요합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>권한 구성에 대한 자세한 내용은 <a class=\"\" href=\"https://docs.openwebui.com/features/rbac/permissions\">권한 설명서</a> 를 참조하세요 .</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"best-practices\">모범 사례</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>프롬프트에 명확하고 설명적인 제목을 사용하세요</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>프롬프트의 목적을 반영하는 직관적인 슬래시 명령을 만듭니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>유연성을 염두에 두고 디자인</strong> : 필수 필드만 필수로 표시하고 선택 필드는 향상된 사용자 정의를 위해 남겨 둡니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용자 정의 변수의 경우 명확한 이름(예: <code>{{your_name}}</code>대신 <code>{{var1}}</code>)과 설명 <code>placeholder</code>텍스트를 사용하여 템플릿을 이해하기 쉽게 만듭니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>적절한 경우 선택 필드에 합리적인 기본값을 제공하여</strong> 양식 완성 속도를 높입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>필수 플래그를 전략적으로 사용하세요</strong> . 프롬프트가 제대로 작동하는 데 절대적으로 필요한 정보만 요구하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>프롬프트 설명에 특정 요구 사항이나 예상 입력 사항을 문서화합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>선택 필드가 비어 있는 시나리오를 포함하여 다양한 변수 조합을 사용한 테스트 프롬프트</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>다른 사용자와 프롬프트를 공유할 때 액세스 수준을 신중하게 고려하세요. 공개 공유는 채팅에 참여할 때 모든 사용자에게 자동으로 표시되므로 <code>/</code>너무 많은 프롬프트를 생성하지 않도록 해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>사용자 워크플로우 고려</strong> : 사용자가 항상 보유하는 정보와 가끔씩 사용자 정의하려는 정보를 비교해 보세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->','프롬프트','','inherit','closed','closed','','519-revision-v1','','','2025-10-24 10:29:24','2025-10-24 01:29:24','',519,'https://rndpolicy.org/aidev/?p=520',0,'revision','',0),
(521,1,'2025-10-24 10:30:52','2025-10-24 01:30:52','<!-- wp:paragraph -->\n<p><strong>모델을 위한 친숙한 인터페이스: Ubuntu에 OpenWebUI 설치</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>OpenWebUI는 Ollama로 실행되는 로컬 LLM과 상호작용할 수 있는 웹 기반의 사용자 친화적인 인터페이스를 제공합니다. Docker를 사용하여 설치합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>사전 준비</strong>: Docker와 Ollama가 설치되어 실행 중이어야 합니다. Ollama 서비스는 기본적으로 호스트의 11434 포트에서 실행됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>OpenWebUI Docker 컨테이너 실행</strong>: 터미널에서 다음 Docker 명령어를 실행합니다. 이 명령어는 OpenWebUI 이미지를 다운로드하고, Ollama 서비스와 통신할 수 있도록 설정하여 컨테이너를 실행합니다. <!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://127.0.0.1:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>d: 컨테이너를 백그라운드에서 실행합니다 (detached mode).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>p 3000:8080: 호스트의 3000번 포트를 컨테이너의 8080번 포트에 연결합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>e OLLAMA_BASE_URL=http://127.0.0.1:11434: OpenWebUI 컨테이너가 호스트에서 실행 중인 Ollama API에 접속할 주소를 설정합니다. 이는 매우 중요한 설정입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>v open-webui:/app/backend/data: open-webui라는 Docker 볼륨을 생성하여 컨테이너의 /app/backend/data 디렉터리에 마운트합니다. 이를 통해 OpenWebUI의 설정, 대화 기록 등 데이터를 영구적으로 보존할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>-name open-webui: 컨테이너의 이름을 open-webui로 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>-restart always: 시스템 재부팅 시 또는 컨테이너가 예기치 않게 종료될 경우 자동으로 다시 시작하도록 설정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a href=\"http://ghcr.io/open-webui/open-webui:main:\">ghcr.io/open-webui/open-webui:main:</a> 사용할 OpenWebUI의 공식 Docker 이미지입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>Ollama가 호스트에 직접 설치된 경우, OpenWebUI 컨테이너가 호스트의 네트워크 서비스에 접근할 수 있도록 OLLAMA_BASE_URL 환경 변수를 통해 Ollama 서버 주소를 명시적으로 지정하는 것이 중요합니다. 이 설정은 컨테이너화된 애플리케이션(OpenWebUI)과 호스트에서 실행되는 서비스(Ollama) 간의 통신을 원활하게 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>OpenWebUI 접속</strong>: 웹 브라우저를 열고 주소창에 http://localhost:3000을 입력하여 OpenWebUI에 접속합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>초기 설정</strong>: 처음 접속 시 관리자 계정을 생성하라는 메시지가 나타날 수 있습니다. 안내에 따라 계정을 생성합니다. 이후 OpenWebUI 설정에서 Ollama에 연결되었는지 확인하고, 필요하다면 모델을 OpenWebUI 인터페이스 내에서 직접 다운로드할 수도 있습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>Open WebUI의 RAG (검색 증강 생성) 기능</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI는 RAG 기술을 활용하여 언어 모델의 응답 정확도와 관련성을 높이는 사용자 친화적인 AI 플랫폼입니다. RAG는 대규모 언어 모델(LLM)이 자체 학습 데이터 외에 외부 지식 소스에서 정보를 검색하고 활용하여 답변을 생성하도록 돕는 기술입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>RAG의 작동 원리:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>검색 (Retrieval):</strong> 사용자의 질문이나 프롬프트와 관련된 정보를 외부 데이터베이스(문서, 웹 콘텐츠, 멀티미디어 등)에서 검색합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>증강 (Augmentation):</strong> 검색된 관련 정보를 원래 프롬프트에 추가하여 언어 모델에 제공합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>생성 (Generation):</strong> 증강된 프롬프트를 바탕으로 LLM이 보다 정확하고 맥락에 맞는 답변을 생성합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>Open WebUI의 RAG 주요 특징 및 이점:</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>다양한 문서 형식 지원:</strong> PDF, DOCX, Markdown, TXT 등 여러 문서 형식의 업로드를 지원하며, 자동 문서 분할 및 벡터화를 통해 지식 기반을 구축합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>로컬 및 원격 RAG 통합:</strong> 로컬 문서뿐만 아니라 웹 콘텐츠, YouTube 동영상과 같은 멀티미디어 소스에서도 정보를 검색하고 통합할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>실시간 정보 반영:</strong> 모델이 학습된 이후에 발생한 새로운 정보나 특정 도메인의 전문 지식을 실시간으로 활용하여 최신성 있는 답변을 제공합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>향상된 정확성 및 관련성:</strong> 외부 정보를 통합함으로써 AI 응답의 정확성과 사용자 쿼리에 대한 맥락적 관련성을 높입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>유연한 모델 및 임베딩 설정:</strong> Ollama 모델 및 OpenAI 호환 API와 같은 다양한 LLM을 지원하며, 임베딩 모델(검색 품질에 영향) 설정 및 변경이 가능합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>전체 컨텍스트 모드 및 하이브리드 검색:</strong> 제한된 토큰 길이를 가진 모델에서도 검색된 데이터를 효과적으로 활용하기 위해 “전체 컨텍스트 모드”를 지원하며, 하이브리드 검색 기능을 통해 검색 결과를 더욱 향상시킬 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>사용자 정의 가능성:</strong> RAG 템플릿 사용자 지정, 임베딩 모델 선택, 벡터 데이터베이스 변경 (ChromaDB, Qdrant 등) 등 다양한 설정을 통해 사용자의 특정 요구에 맞춰 최적화할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>문제 해결 용이성:</strong> RAG 관련 문제 발생 시, 관리자 설정에서 “임베딩 및 검색 우회” 또는 “전체 컨텍스트 모드” 활성화, 임베딩 모델 재설정 등을 통해 해결할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI는 이러한 RAG 기능을 통해 사용자가 자신의 문서와 상호작용하고, 대화형 AI 시스템을 구축하여 개인 및 비즈니스 요구에 맞는 지식 기반 질의응답 서비스를 구현할 수 있도록 돕습니다.</p>\n<!-- /wp:paragraph -->','OpenWebui 설치 및 운용','','inherit','closed','closed','','19-revision-v1','','','2025-10-24 10:30:52','2025-10-24 01:30:52','',19,'https://rndpolicy.org/aidev/?p=521',0,'revision','',0),
(522,1,'2025-10-24 10:32:44','2025-10-24 01:32:44','<!-- wp:paragraph -->\n<p>Open WebUI의 지식은 상호작용을 더욱 강력하고 상황에 맞게 만들어 주는 메모리 뱅크와 같습니다. Open WebUI에서 \"지식\"이 실제로 무엇을 의미하는지, 어떻게 작동하는지, 그리고 사용자 경험 향상에 어떻게 매우 유용한지 자세히 살펴보겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"tldr\">요약</h2>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>지식은</strong> 시스템이 상호작용하는 동안 참조할 수 있는 구조화된 정보를 저장할 수 있는 Open WebUI의 섹션입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이는 Open WebUI의 메모리 시스템과 유사하며, 저장된 데이터를 가져와서 보다 개인화되고 상황에 맞는 응답을 제공할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Open WebUI를 사용하면 채팅에서 바로 지식을 활용하여 필요할 때마다 저장된 데이터에 액세스할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>지식 설정은 매우 간단합니다! 작업 공간 내의 지식 섹션으로 이동하여 세부 정보나 데이터를 추가하기만 하면 됩니다. 코딩 전문 지식이나 기술적인 설정은 필요 없습니다. 핵심 시스템에 기본으로 내장되어 있습니다!</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"what-is-the-knowledge-section\">\"지식\" 섹션은 무엇인가요?</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>지식 섹션</strong>&nbsp;은&nbsp;Open WebUI 내의 특정 정보나 데이터 포인트를 저장할 수 있는 저장 공간입니다.&nbsp;Open WebUI가 사용자의 요구에 맞춰 더욱 정확하고 관련성 높은 답변을 제공하는 데 활용할 수 있는&nbsp;<strong>참조 라이브러리 라고 생각하면 됩니다.</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"why-is-knowledge-useful\">지식은 왜 유용한가?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>장기 프로젝트를 진행 중이라고 가정해 보겠습니다. 시스템이 특정 매개변수, 설정 또는 프로젝트의 주요 내용을 매번 다시 알려주지 않고도 기억해 주기를 원합니다. 또는 채팅과 답변에 대한 특정 개인 선호도를 기억해 주기를 원할 수도 있습니다. 지식 섹션은 이러한&nbsp;<strong>정보를 영구적 으로 저장하여 Open WebUI가 향후 대화에서 참조할 수 있도록 하여 더욱&nbsp;</strong><strong>일관되고 개인화된 경험을</strong>&nbsp;제공할 수 있는 공간입니다&nbsp;.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>지식에 저장할 수 있는 내용의 몇 가지 예:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>자주 참조할 중요한 프로젝트 매개변수나 특정 데이터 포인트입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>적용하려는 사용자 정의 명령, 워크플로 또는 설정입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Open WebUI가 모든 채팅에서 따라야 할 개인적 선호도, 가이드라인 또는 규칙입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"how-to-use-knowledge-in-chats\">채팅에서 지식을 활용하는 방법</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>채팅에서 저장된 지식에 쉽게 접근할 수 있습니다! 저장된 내용을 참조하기만 하면(이름 앞에 \'#\'을 사용하여) Open WebUI가 데이터를 가져오거나 지식 섹션에 설정한 특정 지침을 따를 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>예를 들어:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>프로젝트를 논의할 때 Open WebUI는 지정된 프로젝트 세부 정보를 자동으로 불러올 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>응답에 대한 사용자 정의 환경 설정(예: 공식 수준이나 선호하는 문구)을 적용할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>채팅에서 지식을 참조하려면 지식 섹션에 저장하기만 하면 됩니다. 그러면 Open WebUI가 언제 어디서 관련 정보를 가져와야 할지 알려줍니다!</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>관리자는 사용자가 접근하여 사용할 수 있는 작업 공간에 지식을 추가할 수 있습니다. 그러나 사용자는 작업 공간 자체에 직접 접근할 수는 없습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"setting-up-your-knowledge-base\">지식 기반 설정</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>지식 섹션으로 이동</strong> : 이 영역은 사용자 친화적이고 직관적으로 설계되었습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>항목 추가</strong> : Open WebUI에 저장하려는 정보를 입력합니다. 원하는 대로 구체적으로 또는 광범위하게 입력할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>저장 및 적용</strong> : 저장 후, 지식에 접근하여 채팅 상호작용을 향상시킬 수 있습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"summary\">요약</h2>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>지식 섹션은 Open WebUI의 \"메모리 뱅크\"와 같습니다. 기억하고 사용하고 싶은 데이터를 저장할 수 있는 곳입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>지식을 활용하여 시스템에</strong> 중요한 세부 정보를 알려 개인화된 채팅 환경을 보장합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>필요할 때마다 \'#\' + 지식 이름을 사용하여 <strong>채팅에서 지식을 직접 참조하여</strong> 저장된 데이터를 가져올 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->','OpenweWebUI - 지식','','publish','open','closed','','openwewebui-%ec%a7%80%ec%8b%9d','','','2025-10-24 10:32:45','2025-10-24 01:32:45','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=522',0,'docs','',0),
(523,1,'2025-10-24 10:32:44','2025-10-24 01:32:44','<!-- wp:paragraph -->\n<p>Open WebUI의 지식은 상호작용을 더욱 강력하고 상황에 맞게 만들어 주는 메모리 뱅크와 같습니다. Open WebUI에서 \"지식\"이 실제로 무엇을 의미하는지, 어떻게 작동하는지, 그리고 사용자 경험 향상에 어떻게 매우 유용한지 자세히 살펴보겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"tldr\">요약</h2>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>지식은</strong> 시스템이 상호작용하는 동안 참조할 수 있는 구조화된 정보를 저장할 수 있는 Open WebUI의 섹션입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이는 Open WebUI의 메모리 시스템과 유사하며, 저장된 데이터를 가져와서 보다 개인화되고 상황에 맞는 응답을 제공할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Open WebUI를 사용하면 채팅에서 바로 지식을 활용하여 필요할 때마다 저장된 데이터에 액세스할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>지식 설정은 매우 간단합니다! 작업 공간 내의 지식 섹션으로 이동하여 세부 정보나 데이터를 추가하기만 하면 됩니다. 코딩 전문 지식이나 기술적인 설정은 필요 없습니다. 핵심 시스템에 기본으로 내장되어 있습니다!</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"what-is-the-knowledge-section\">\"지식\" 섹션은 무엇인가요?</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>지식 섹션</strong>&nbsp;은&nbsp;Open WebUI 내의 특정 정보나 데이터 포인트를 저장할 수 있는 저장 공간입니다.&nbsp;Open WebUI가 사용자의 요구에 맞춰 더욱 정확하고 관련성 높은 답변을 제공하는 데 활용할 수 있는&nbsp;<strong>참조 라이브러리 라고 생각하면 됩니다.</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"why-is-knowledge-useful\">지식은 왜 유용한가?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>장기 프로젝트를 진행 중이라고 가정해 보겠습니다. 시스템이 특정 매개변수, 설정 또는 프로젝트의 주요 내용을 매번 다시 알려주지 않고도 기억해 주기를 원합니다. 또는 채팅과 답변에 대한 특정 개인 선호도를 기억해 주기를 원할 수도 있습니다. 지식 섹션은 이러한&nbsp;<strong>정보를 영구적 으로 저장하여 Open WebUI가 향후 대화에서 참조할 수 있도록 하여 더욱&nbsp;</strong><strong>일관되고 개인화된 경험을</strong>&nbsp;제공할 수 있는 공간입니다&nbsp;.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>지식에 저장할 수 있는 내용의 몇 가지 예:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>자주 참조할 중요한 프로젝트 매개변수나 특정 데이터 포인트입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>적용하려는 사용자 정의 명령, 워크플로 또는 설정입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Open WebUI가 모든 채팅에서 따라야 할 개인적 선호도, 가이드라인 또는 규칙입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"how-to-use-knowledge-in-chats\">채팅에서 지식을 활용하는 방법</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>채팅에서 저장된 지식에 쉽게 접근할 수 있습니다! 저장된 내용을 참조하기만 하면(이름 앞에 \'#\'을 사용하여) Open WebUI가 데이터를 가져오거나 지식 섹션에 설정한 특정 지침을 따를 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>예를 들어:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>프로젝트를 논의할 때 Open WebUI는 지정된 프로젝트 세부 정보를 자동으로 불러올 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>응답에 대한 사용자 정의 환경 설정(예: 공식 수준이나 선호하는 문구)을 적용할 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>채팅에서 지식을 참조하려면 지식 섹션에 저장하기만 하면 됩니다. 그러면 Open WebUI가 언제 어디서 관련 정보를 가져와야 할지 알려줍니다!</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>관리자는 사용자가 접근하여 사용할 수 있는 작업 공간에 지식을 추가할 수 있습니다. 그러나 사용자는 작업 공간 자체에 직접 접근할 수는 없습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"setting-up-your-knowledge-base\">지식 기반 설정</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>지식 섹션으로 이동</strong> : 이 영역은 사용자 친화적이고 직관적으로 설계되었습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>항목 추가</strong> : Open WebUI에 저장하려는 정보를 입력합니다. 원하는 대로 구체적으로 또는 광범위하게 입력할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>저장 및 적용</strong> : 저장 후, 지식에 접근하여 채팅 상호작용을 향상시킬 수 있습니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"summary\">요약</h2>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>지식 섹션은 Open WebUI의 \"메모리 뱅크\"와 같습니다. 기억하고 사용하고 싶은 데이터를 저장할 수 있는 곳입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>지식을 활용하여 시스템에</strong> 중요한 세부 정보를 알려 개인화된 채팅 환경을 보장합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>필요할 때마다 \'#\' + 지식 이름을 사용하여 <strong>채팅에서 지식을 직접 참조하여</strong> 저장된 데이터를 가져올 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->','OpenweWebUI - 지식','','inherit','closed','closed','','522-revision-v1','','','2025-10-24 10:32:44','2025-10-24 01:32:44','',522,'https://rndpolicy.org/aidev/?p=523',0,'revision','',0),
(524,1,'2025-10-24 10:34:09','2025-10-24 01:34:09','<!-- wp:paragraph -->\n<p>도구는 LLM에 강력한 기능을 추가하는 작은 Python 스크립트입니다. 도구를 활성화하면 챗봇이 웹 검색, 데이터 스크래핑, 이미지 생성, AI 음성 응답 등 놀라운 기능을 수행할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>도구는 AI가 사용자와 채팅할 때 사용할 수 있는 유용한 플러그인이라고 생각하면 됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-what-can-tools-help-me-do\">🚀 도구를 사용하면 무엇을 할 수 있나요?</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>AI 비서가 도구를 사용하여 수행할 수 있는 작업의 몇 가지 예는 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>🌍 웹 검색: 인터넷을 검색하여 실시간으로 답변을 얻으세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>🖼️ 이미지 생성: 프롬프트에서 이미지를 만듭니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>🔊 음성 출력: ElevenLabs를 사용하여 AI 음성을 생성합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><a href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">🧰 도구 쇼케이스</a>&nbsp;에서 바로 사용 가능한 도구를 살펴보세요<a href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"></a></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-how-to-install-tools\">📦 도구 설치 방법</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI에 도구를 설치하는 쉬운 방법은 두 가지가 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a class=\"\" href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\">커뮤니티 도구 라이브러리</a> 로 이동<a class=\"\" href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\"></a></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>도구를 선택한 다음, 받기 버튼을 클릭하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Open WebUI 인스턴스의 IP 주소 또는 URL을 입력하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>\"WebUI로 가져오기\"를 클릭하면 완료됩니다!</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>경고</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>안전 팁: 인식하지 못하거나 신뢰할 수 없는 도구는 절대 가져오지 마세요. 이러한 도구는 Python 스크립트이므로 안전하지 않은 코드를 실행할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-how-to-use-tools-in-open-webui\">🔧 Open WebUI에서 도구를 사용하는 방법</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>도구를 설치한 후(아래에서 방법을 알려드리겠습니다) 도구를 활성화하고 사용하는 방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>모델에 도구를 활성화하는 방법은 두 가지가 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"-option-1-enable-from-the-chat-window\">➕ 옵션 1: 채팅 창에서 활성화</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>채팅 중 입력란에 있는 ➕ 아이콘을 클릭하세요. 사용 가능한 도구 목록이 표시되며, 해당 세션에서 원하는 도구를 바로 활성화할 수 있습니다.팁</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>팁: 도구를 활성화하면 모델에 해당 도구를 사용할 수 있는 권한이 부여되지만 작업에 유용하지 않으면 사용하지 못할 수도 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"️-option-2-enable-by-default-recommended-for-frequent-use\">✏️ 옵션 2: 기본적으로 활성화(자주 사용하는 경우 권장)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>이동: 작업 공간 ➡️ 모델</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용 중인 모델(예: GPT-4 또는 LLaMa2)을 선택하고 ✏️ 편집 아이콘을 클릭합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>\"도구\" 섹션까지 아래로 스크롤하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>✅ 기본적으로 모델이 액세스할 수 있는 도구를 선택하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>저장을 클릭하세요.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>이렇게 하면 사용자가 모델과 채팅할 때마다 해당 도구를 항상 사용할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>AutoTool 필터를 사용하여 LLM이 자동으로 올바른 도구를 선택하도록 할 수도 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>🔗&nbsp;<a href=\"https://openwebui.com/f/hub/autotool_filter/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">AutoTool 필터</a></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>🎯 참고: AutoTool을 사용하는 경우에도 옵션 2를 사용하여 도구를 활성화해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>✅ 이제 LLM이 툴 기반이 되었습니다! 웹 검색, 이미지 생성, 음성 출력 등을 통해 채팅 기능을 강화할 준비가 되었습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-choosing-how-tools-are-used-default-vs-native\">🧠 도구 사용 방법 선택: 기본 도구 vs 네이티브 도구</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>모델에 도구가 활성화되면 Open WebUI는 LLM이 대화에서 도구를 사용할 수 있는 두 가지 방법을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다음 중에서 선택하여 모델이 도구를 호출하는 방식을 결정할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>🟡 기본 모드(프롬프트 기반)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>🟢 네이티브 모드(내장 함수 호출)</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>자세히 살펴보겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"-default-mode-prompt-based-tool-triggering\">🟡 기본 모드(프롬프트 기반 도구 트리거링)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이는 Open WebUI의 기본 설정입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>여기서 LLM은 함수 호출을 기본적으로 지원할 필요가 없습니다. 대신, 스마트 도구 선택 프롬프트 템플릿을 사용하여 모델이 도구를 선택하고 사용하도록 안내합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>✅ 거의 모든 모델과 호환 가능 ✅ 기본 또는 로컬 모델로 도구를 잠금 해제하는 좋은 방법 ❗ 도구를 연결할 때 기본 모드만큼 안정적이거나 유연하지 않음</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"-native-mode-function-calling-built-in\">🟢 네이티브 모드(함수 호출 내장)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>모델이 \"네이티브\" 함수 호출(예: GPT-4o 또는 GPT-3.5-turbo-1106)을 지원하는 경우 이 강력한 모드를 사용하면 LLM이 단일 채팅 메시지 중에 언제, 어떻게 여러 도구를 호출할지 실시간으로 결정하도록 할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>✅ 빠르고 정확하며 하나의 응답에 여러 도구를 연결할 수 있습니다. ✅ 가장 자연스럽고 진보된 경험 ❗ 실제로 네이티브 함수 호출을 지원하는 모델이 필요합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"️-how-to-switch-between-modes\">✳️ 모드 전환 방법</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>채팅에서 네이티브 함수 호출을 활성화하고 싶으신가요? 방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img src=\"https://docs.openwebui.com/assets/images/chat-controls-28858e9a3b46384cbf7496bb159b653c.png\" alt=\"채팅 컨트롤\"/></figure>\n<!-- /wp:image -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>모델과의 채팅 창을 엽니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>⚙️ 채팅 컨트롤 > 고급 매개변수를 클릭하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>함수 호출 설정을 찾아 기본 → 네이티브로 전환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>이제 채팅에서 진정한 네이티브 도구 지원이 적용됩니다(모델이 지원하는 경우).</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>➡️ 최상의 네이티브 함수 호출 환경을 위해 GPT-4o 또는 다른 OpenAI 모델을 사용하는 것이 좋습니다. 🔎 일부 로컬 모델은 지원을 주장하지만 정확하거나 복잡한 도구 사용에 어려움을 겪는 경우가 많습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>💡 요약:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>방법</th><th>누구를 위한 것인가요?</th><th>장점</th><th>단점</th></tr></thead><tbody><tr><td>기본</td><td>모든 모델</td><td>폭넓은 호환성, 더 안전하고 유연함</td><td>정확도가 낮거나 느릴 수 있습니다.</td></tr><tr><td>토종의</td><td>GPT-4o 등</td><td>빠르고, 스마트하고, 뛰어난 툴 체이닝</td><td>적절한 함수 호출 지원이 필요합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p>귀하의 설정에 가장 적합한 것을 선택하세요. 그리고 언제든지 채팅 컨트롤을 통해 바로 전환할 수 있다는 점을 기억하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>👏 이제 여러분의 LLM은 도구를 언제, 어떻게 지능적으로 사용해야 하는지 알게 되었습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-summary\">🧠 요약</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>도구는 AI 모델이 단순한 채팅 이상의 기능을 수행할 수 있도록 도와주는 추가 기능입니다. 실시간 질문에 답하는 것부터 이미지를 생성하거나 음성으로 말하는 것까지, 도구는 AI에 생명을 불어넣습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a class=\"\" href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\">https://openwebui.com/tools</a> 를 방문하여 새로운 도구를 알아보세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>수동으로 또는 한 번의 클릭으로 설치하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Workspace ➡️ Models에서 모델별로 활성화하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>➕를 클릭하여 채팅에서 사용하세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->','OpenWebUI-도구','','publish','open','closed','','openwebui-%eb%8f%84%ea%b5%ac','','','2025-10-24 10:34:10','2025-10-24 01:34:10','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=524',0,'docs','',0),
(525,1,'2025-10-24 10:34:09','2025-10-24 01:34:09','<!-- wp:paragraph -->\n<p>도구는 LLM에 강력한 기능을 추가하는 작은 Python 스크립트입니다. 도구를 활성화하면 챗봇이 웹 검색, 데이터 스크래핑, 이미지 생성, AI 음성 응답 등 놀라운 기능을 수행할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>도구는 AI가 사용자와 채팅할 때 사용할 수 있는 유용한 플러그인이라고 생각하면 됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-what-can-tools-help-me-do\">🚀 도구를 사용하면 무엇을 할 수 있나요?</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>AI 비서가 도구를 사용하여 수행할 수 있는 작업의 몇 가지 예는 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>🌍 웹 검색: 인터넷을 검색하여 실시간으로 답변을 얻으세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>🖼️ 이미지 생성: 프롬프트에서 이미지를 만듭니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>🔊 음성 출력: ElevenLabs를 사용하여 AI 음성을 생성합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><a href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">🧰 도구 쇼케이스</a>&nbsp;에서 바로 사용 가능한 도구를 살펴보세요<a href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"></a></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-how-to-install-tools\">📦 도구 설치 방법</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI에 도구를 설치하는 쉬운 방법은 두 가지가 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a class=\"\" href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\">커뮤니티 도구 라이브러리</a> 로 이동<a class=\"\" href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\"></a></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>도구를 선택한 다음, 받기 버튼을 클릭하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Open WebUI 인스턴스의 IP 주소 또는 URL을 입력하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>\"WebUI로 가져오기\"를 클릭하면 완료됩니다!</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>경고</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>안전 팁: 인식하지 못하거나 신뢰할 수 없는 도구는 절대 가져오지 마세요. 이러한 도구는 Python 스크립트이므로 안전하지 않은 코드를 실행할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-how-to-use-tools-in-open-webui\">🔧 Open WebUI에서 도구를 사용하는 방법</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>도구를 설치한 후(아래에서 방법을 알려드리겠습니다) 도구를 활성화하고 사용하는 방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>모델에 도구를 활성화하는 방법은 두 가지가 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"-option-1-enable-from-the-chat-window\">➕ 옵션 1: 채팅 창에서 활성화</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>채팅 중 입력란에 있는 ➕ 아이콘을 클릭하세요. 사용 가능한 도구 목록이 표시되며, 해당 세션에서 원하는 도구를 바로 활성화할 수 있습니다.팁</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>팁: 도구를 활성화하면 모델에 해당 도구를 사용할 수 있는 권한이 부여되지만 작업에 유용하지 않으면 사용하지 못할 수도 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"️-option-2-enable-by-default-recommended-for-frequent-use\">✏️ 옵션 2: 기본적으로 활성화(자주 사용하는 경우 권장)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>이동: 작업 공간 ➡️ 모델</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>사용 중인 모델(예: GPT-4 또는 LLaMa2)을 선택하고 ✏️ 편집 아이콘을 클릭합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>\"도구\" 섹션까지 아래로 스크롤하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>✅ 기본적으로 모델이 액세스할 수 있는 도구를 선택하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>저장을 클릭하세요.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>이렇게 하면 사용자가 모델과 채팅할 때마다 해당 도구를 항상 사용할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>AutoTool 필터를 사용하여 LLM이 자동으로 올바른 도구를 선택하도록 할 수도 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>🔗&nbsp;<a href=\"https://openwebui.com/f/hub/autotool_filter/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">AutoTool 필터</a></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>🎯 참고: AutoTool을 사용하는 경우에도 옵션 2를 사용하여 도구를 활성화해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>✅ 이제 LLM이 툴 기반이 되었습니다! 웹 검색, 이미지 생성, 음성 출력 등을 통해 채팅 기능을 강화할 준비가 되었습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-choosing-how-tools-are-used-default-vs-native\">🧠 도구 사용 방법 선택: 기본 도구 vs 네이티브 도구</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>모델에 도구가 활성화되면 Open WebUI는 LLM이 대화에서 도구를 사용할 수 있는 두 가지 방법을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>다음 중에서 선택하여 모델이 도구를 호출하는 방식을 결정할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>🟡 기본 모드(프롬프트 기반)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>🟢 네이티브 모드(내장 함수 호출)</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>자세히 살펴보겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"-default-mode-prompt-based-tool-triggering\">🟡 기본 모드(프롬프트 기반 도구 트리거링)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이는 Open WebUI의 기본 설정입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>여기서 LLM은 함수 호출을 기본적으로 지원할 필요가 없습니다. 대신, 스마트 도구 선택 프롬프트 템플릿을 사용하여 모델이 도구를 선택하고 사용하도록 안내합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>✅ 거의 모든 모델과 호환 가능 ✅ 기본 또는 로컬 모델로 도구를 잠금 해제하는 좋은 방법 ❗ 도구를 연결할 때 기본 모드만큼 안정적이거나 유연하지 않음</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"-native-mode-function-calling-built-in\">🟢 네이티브 모드(함수 호출 내장)</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>모델이 \"네이티브\" 함수 호출(예: GPT-4o 또는 GPT-3.5-turbo-1106)을 지원하는 경우 이 강력한 모드를 사용하면 LLM이 단일 채팅 메시지 중에 언제, 어떻게 여러 도구를 호출할지 실시간으로 결정하도록 할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>✅ 빠르고 정확하며 하나의 응답에 여러 도구를 연결할 수 있습니다. ✅ 가장 자연스럽고 진보된 경험 ❗ 실제로 네이티브 함수 호출을 지원하는 모델이 필요합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"️-how-to-switch-between-modes\">✳️ 모드 전환 방법</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>채팅에서 네이티브 함수 호출을 활성화하고 싶으신가요? 방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img src=\"https://docs.openwebui.com/assets/images/chat-controls-28858e9a3b46384cbf7496bb159b653c.png\" alt=\"채팅 컨트롤\"/></figure>\n<!-- /wp:image -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>모델과의 채팅 창을 엽니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>⚙️ 채팅 컨트롤 > 고급 매개변수를 클릭하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>함수 호출 설정을 찾아 기본 → 네이티브로 전환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>이제 채팅에서 진정한 네이티브 도구 지원이 적용됩니다(모델이 지원하는 경우).</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>➡️ 최상의 네이티브 함수 호출 환경을 위해 GPT-4o 또는 다른 OpenAI 모델을 사용하는 것이 좋습니다. 🔎 일부 로컬 모델은 지원을 주장하지만 정확하거나 복잡한 도구 사용에 어려움을 겪는 경우가 많습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>💡 요약:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>방법</th><th>누구를 위한 것인가요?</th><th>장점</th><th>단점</th></tr></thead><tbody><tr><td>기본</td><td>모든 모델</td><td>폭넓은 호환성, 더 안전하고 유연함</td><td>정확도가 낮거나 느릴 수 있습니다.</td></tr><tr><td>토종의</td><td>GPT-4o 등</td><td>빠르고, 스마트하고, 뛰어난 툴 체이닝</td><td>적절한 함수 호출 지원이 필요합니다.</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:paragraph -->\n<p>귀하의 설정에 가장 적합한 것을 선택하세요. 그리고 언제든지 채팅 컨트롤을 통해 바로 전환할 수 있다는 점을 기억하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>👏 이제 여러분의 LLM은 도구를 언제, 어떻게 지능적으로 사용해야 하는지 알게 되었습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-summary\">🧠 요약</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>도구는 AI 모델이 단순한 채팅 이상의 기능을 수행할 수 있도록 도와주는 추가 기능입니다. 실시간 질문에 답하는 것부터 이미지를 생성하거나 음성으로 말하는 것까지, 도구는 AI에 생명을 불어넣습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a class=\"\" href=\"https://openwebui.com/tools\" target=\"_blank\" rel=\"noreferrer noopener\">https://openwebui.com/tools</a> 를 방문하여 새로운 도구를 알아보세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>수동으로 또는 한 번의 클릭으로 설치하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Workspace ➡️ Models에서 모델별로 활성화하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>➕를 클릭하여 채팅에서 사용하세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->','OpenWebUI-도구','','inherit','closed','closed','','524-revision-v1','','','2025-10-24 10:34:09','2025-10-24 01:34:09','',524,'https://rndpolicy.org/aidev/?p=525',0,'revision','',0),
(526,1,'2025-10-24 10:36:13','2025-10-24 01:36:13','<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-what-are-functions\">🚀 함수란 무엇인가요?</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>함수 는 Open WebUI의&nbsp;</strong><strong>플러그인</strong>&nbsp;과 같습니다&nbsp;.&nbsp;Anthropic이나 Vertex AI와 같은 새로운 AI 모델 제공업체에 대한 지원을 추가하거나, 메시지 처리 방식을 조정하거나, 사용성 향상을 위해 인터페이스에 사용자 지정 버튼을 도입하는 등 Open WebUI의 기능을 확장하는 데 도움이 됩니다.<strong></strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>복잡한 통합이 필요할 수 있는 외부 도구와 달리,&nbsp;<strong>Functions는 Open WebUI 환경에서 기본 제공되어 실행됩니다.</strong>&nbsp;즉, 빠르고 모듈화되어 있으며 외부 종속성에 의존하지 않습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Functions는 WebUI 작동 방식을 개선하고 필요에 맞게 조정할 수 있는&nbsp;<strong>모듈식 구성 요소</strong>&nbsp;라고 생각하면 됩니다 . 가볍고 사용자 정의가 용이하며&nbsp;<strong>순수 Python</strong>&nbsp;으로 작성되어 새로운 AI 기반 워크플로부터 Google 검색이나 Home Assistant처럼 사용하는 모든 앱과의 통합까지 무엇이든 자유롭게 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"️-types-of-functions\">🏗️ 함수 유형</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Open WebUI에는 세 가지 유형의 함수가</strong>&nbsp;있으며&nbsp;, 각 함수는 특정 목적을 가지고 있습니다. 각 함수를 자세히 살펴보고 각 함수의 기능을 자세히 설명해 보겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"1-pipe-function--create-custom-agentsmodels\">1.&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/pipe\"><strong>파이프 기능</strong>&nbsp;– 사용자 정의 \"에이전트/모델\" 생성</a></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>파이프&nbsp;<strong>함수 는&nbsp;</strong><strong>사용자 정의 에이전트/모델</strong>&nbsp;또는 통합을 만드는 방법으로&nbsp;, 이러한 에이전트/모델이나 통합이 독립형 모델인 것처럼 인터페이스에 표시됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>무슨 역할을 하나요?</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>파이프를 사용하면 복잡한 워크플로를 정의할 수 있습니다. 예를 들어, 모델 A</strong> 와 <strong>모델 B</strong> 로 데이터를 전송하고 , 출력을 처리하고, 결과를 하나의 최종 결과로 결합하는 파이프를 만들 수 있습니다 .</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>파이프에 AI를 사용할 필요조차 없습니다! <strong>검색 API</strong> , <strong>날씨 데이터</strong> , 심지어 <strong>Home Assistant</strong> 같은 시스템까지 설정할 수 있습니다 . 기본적으로, 상호작용하고 싶은 모든 것이 Open WebUI의 일부가 될 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>사용 사례 예시:</strong>&nbsp;Open WebUI에서 직접 Google 검색을 쿼리한다고 가정해 보겠습니다. 다음과 같은 파이프 함수를 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>귀하의 메시지를 검색어로 사용합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Google 검색 API로 쿼리를 전송합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>응답을 처리하여 일반적인 \"모델\" 응답처럼 WebUI 내부로 반환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>파이프 함수를 활성화하면&nbsp;<strong>선택 가능한 자체 모델로 표시됩니다</strong>&nbsp;. 인터페이스에서 모델처럼 작동하는 사용자 지정 기능이 필요할 때마다 파이프를 사용하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>자세한 가이드는&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/pipe\"><strong>파이프 함수를</strong></a>&nbsp;참조하세요 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"2-filter-function--modify-inputs-and-outputs\">2.&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/filter\"><strong>필터 기능</strong>&nbsp;– 입력 및 출력 수정</a></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>필터&nbsp;<strong>함수는 AI에 데이터를 보내기 전&nbsp;</strong><strong>이나</strong>&nbsp;돌아온 후에&nbsp;데이터를 조정하는 도구와 같습니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>필터 의 기능은 무엇일까요?</strong>&nbsp;필터는 워크플로에서 \"후크\" 역할을 하며 두 가지 주요 부분으로 구성됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Inlet</strong> : 모델에 전송되는 입력을 조정합니다. 예를 들어, 추가 지침, 키워드 또는 서식을 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>출력</strong> : 모델에서 수신한 출력을 수정합니다. 예를 들어, 응답을 정리하거나, 톤을 조정하거나, 데이터를 특정 스타일로 서식을 지정합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>사용 사례:</strong>&nbsp;정확한 서식이 필요한 프로젝트를 진행 중이라고 가정해 보겠습니다. 필터를 사용하여 다음을 확인할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>귀하의 입력 내용은 항상 필요한 형식으로 변환됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>모델의 출력은 표시되기 전에 정리됩니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>필터는&nbsp;사용자의 요구 사항에 따라&nbsp;<strong>특정 모델에 연결 되거나 모든 모델에 대해&nbsp;</strong><strong>전역적으로</strong>&nbsp;활성화될 수 있습니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>더 많은 예제와 지침은 전체 가이드에서 확인하세요:&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/filter\"><strong>필터 함수</strong></a>&nbsp;.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"3-action-function--add-custom-buttons\">3.&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/action\"><strong>액션 기능</strong>&nbsp;– 사용자 정의 버튼 추가</a></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>액션 함수</strong>&nbsp;는&nbsp;채팅 인터페이스에&nbsp;<strong>사용자 정의 버튼을</strong>&nbsp;추가하는 데 사용됩니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>어떤 기능을 하나요? 액션을 사용하면 채팅에서 특정 기능을 바로 실행하는&nbsp;</strong><strong>대화형 단축키를</strong>&nbsp;정의할 수 있습니다&nbsp;. 이 버튼은 개별 채팅 메시지 아래에 표시되어 정의한 액션에 한 번의 클릭으로 편리하게 액세스할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>사용 사례:</strong>&nbsp;긴 메시지를 요약하거나 번역과 같은 특정 출력을 생성해야 하는 경우가 많다고 가정해 보겠습니다. 다음과 같은 작업을 수행하는 작업 함수를 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>모든 수신 메시지 아래에 \"요약\" 버튼을 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>클릭하면 사용자 정의 함수가 트리거되어 해당 메시지를 처리하고 요약을 반환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>버튼은&nbsp;사용자가 정의한 확장 기능과 상호 작용할 수 있는&nbsp;<strong>깔끔하고 사용자 친화적인 방법을 제공합니다.</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/action\"><strong>Action Functions Guide</strong></a>&nbsp;에서 설정 방법을 알아보세요&nbsp;.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"️-how-to-use-functions\">🛠️ 함수 사용 방법</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI에서 함수를 사용하는 방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"1-install-functions\">1.&nbsp;<strong>기능 설치</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI 인터페이스를 통해 함수를 설치하거나 수동으로 가져올 수 있습니다. 커뮤니티에서 만든 함수는&nbsp;<a href=\"https://openwebui.com/functions\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">Open WebUI 커뮤니티 사이트</a>&nbsp;에서 찾을 수 있습니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>⚠️&nbsp;<strong>주의하세요.</strong>&nbsp;신뢰할 수 있는 출처에서만 함수를 설치하세요. 알 수 없는 코드를 실행하면 보안 위험이 발생할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"2-enable-functions\">2.&nbsp;<strong>기능 활성화</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설치 후에는 기능을 명시적으로 활성화해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>파이프 함수를</strong> 활성화하면 인터페이스에서 자체 <strong>모델 로 사용할 수 있습니다.</strong></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>필터</strong> 및 <strong>작업 기능</strong> 의 경우 , 이를 활성화하는 것만으로는 충분하지 않습니다. 특정 모델에 할당하거나 모든 모델에 대해 전역적으로 활성화해야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"3-assign-filters-or-actions-to-models\">3.&nbsp;<strong>모델에 필터 또는 작업 할당</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>Workspace => Models</code>해당 모델로 이동하여 필터나 작업을 할당합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>또는, 로 가서 \"...\" 메뉴를 선택하고 <strong>글로벌 스위치를 켜서 </strong><strong>모든 모델에 대한 기능을 전역적으로</strong> 활성화합니다 .<code>Workspace => Functions</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"quick-summary\">간단한 요약</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>파이프는</strong> 상호작용이 가능한 독립형 모델로 나타납니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>필터는</strong> AI 상호작용을 더욱 원활하게 하기 위해 입력/출력을 수정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>액션은</strong> 개별 채팅 메시지에 클릭 가능한 버튼을 추가합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>설정 과정을 따르면 Functions를 통해 워크플로가 원활하게 향상됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-why-use-functions\">✅ 함수를 사용하는 이유는 무엇인가요?</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>이 기능은 Open WebUI를 통해 새로운 가능성을 열고자</strong>&nbsp;하는 모든 사람을 위해 설계되었습니다&nbsp;.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>확장</strong> : 새로운 모델을 추가하거나 API, 데이터베이스, 스마트 기기와 같은 AI가 아닌 도구와 통합합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>최적화</strong> : 사용 사례에 완벽하게 맞게 입력과 출력을 조정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>단순화</strong> : 직관적이고 효율적인 인터페이스를 만들기 위해 버튼이나 단축키를 추가합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>특정 프로젝트에 맞게 워크플로를 사용자 지정하든, 외부 데이터를 통합하든, 아니면 Open WebUI를 사용하기 쉽게 만들든, 함수는 인스턴스를 제어하는 ​​데 중요한 역할을 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"-final-notes\">📝 마지막 메모:</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>항상 <strong>신뢰할 수 있는 출처</strong> 에서만 함수를 설치하세요 .</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>파이프, 필터, 액션 함수의 차이점을 이해하여 효과적으로 사용하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>공식 가이드를 살펴보세요:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/pipe\">파이프 함수 가이드</a></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/filter\">필터 함수 가이드</a></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/action\">액션 함수 가이드</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>Functions를 활용하면 Open WebUI 설정에 완전히 새로운 기능을 추가할 수 있습니다. 지금 바로 체험해 보세요! 🚀</p>\n<!-- /wp:paragraph -->','OpenWebUI - Functions(함수)','','publish','open','closed','','openwebui-functions%ed%95%a8%ec%88%98','','','2025-10-24 10:36:14','2025-10-24 01:36:14','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=526',0,'docs','',0),
(527,1,'2025-10-24 10:36:13','2025-10-24 01:36:13','<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-what-are-functions\">🚀 함수란 무엇인가요?</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>함수 는 Open WebUI의&nbsp;</strong><strong>플러그인</strong>&nbsp;과 같습니다&nbsp;.&nbsp;Anthropic이나 Vertex AI와 같은 새로운 AI 모델 제공업체에 대한 지원을 추가하거나, 메시지 처리 방식을 조정하거나, 사용성 향상을 위해 인터페이스에 사용자 지정 버튼을 도입하는 등 Open WebUI의 기능을 확장하는 데 도움이 됩니다.<strong></strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>복잡한 통합이 필요할 수 있는 외부 도구와 달리,&nbsp;<strong>Functions는 Open WebUI 환경에서 기본 제공되어 실행됩니다.</strong>&nbsp;즉, 빠르고 모듈화되어 있으며 외부 종속성에 의존하지 않습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Functions는 WebUI 작동 방식을 개선하고 필요에 맞게 조정할 수 있는&nbsp;<strong>모듈식 구성 요소</strong>&nbsp;라고 생각하면 됩니다 . 가볍고 사용자 정의가 용이하며&nbsp;<strong>순수 Python</strong>&nbsp;으로 작성되어 새로운 AI 기반 워크플로부터 Google 검색이나 Home Assistant처럼 사용하는 모든 앱과의 통합까지 무엇이든 자유롭게 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"️-types-of-functions\">🏗️ 함수 유형</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Open WebUI에는 세 가지 유형의 함수가</strong>&nbsp;있으며&nbsp;, 각 함수는 특정 목적을 가지고 있습니다. 각 함수를 자세히 살펴보고 각 함수의 기능을 자세히 설명해 보겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"1-pipe-function--create-custom-agentsmodels\">1.&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/pipe\"><strong>파이프 기능</strong>&nbsp;– 사용자 정의 \"에이전트/모델\" 생성</a></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>파이프&nbsp;<strong>함수 는&nbsp;</strong><strong>사용자 정의 에이전트/모델</strong>&nbsp;또는 통합을 만드는 방법으로&nbsp;, 이러한 에이전트/모델이나 통합이 독립형 모델인 것처럼 인터페이스에 표시됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>무슨 역할을 하나요?</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>파이프를 사용하면 복잡한 워크플로를 정의할 수 있습니다. 예를 들어, 모델 A</strong> 와 <strong>모델 B</strong> 로 데이터를 전송하고 , 출력을 처리하고, 결과를 하나의 최종 결과로 결합하는 파이프를 만들 수 있습니다 .</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>파이프에 AI를 사용할 필요조차 없습니다! <strong>검색 API</strong> , <strong>날씨 데이터</strong> , 심지어 <strong>Home Assistant</strong> 같은 시스템까지 설정할 수 있습니다 . 기본적으로, 상호작용하고 싶은 모든 것이 Open WebUI의 일부가 될 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>사용 사례 예시:</strong>&nbsp;Open WebUI에서 직접 Google 검색을 쿼리한다고 가정해 보겠습니다. 다음과 같은 파이프 함수를 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>귀하의 메시지를 검색어로 사용합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Google 검색 API로 쿼리를 전송합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>응답을 처리하여 일반적인 \"모델\" 응답처럼 WebUI 내부로 반환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>파이프 함수를 활성화하면&nbsp;<strong>선택 가능한 자체 모델로 표시됩니다</strong>&nbsp;. 인터페이스에서 모델처럼 작동하는 사용자 지정 기능이 필요할 때마다 파이프를 사용하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>자세한 가이드는&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/pipe\"><strong>파이프 함수를</strong></a>&nbsp;참조하세요 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"2-filter-function--modify-inputs-and-outputs\">2.&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/filter\"><strong>필터 기능</strong>&nbsp;– 입력 및 출력 수정</a></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>필터&nbsp;<strong>함수는 AI에 데이터를 보내기 전&nbsp;</strong><strong>이나</strong>&nbsp;돌아온 후에&nbsp;데이터를 조정하는 도구와 같습니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>필터 의 기능은 무엇일까요?</strong>&nbsp;필터는 워크플로에서 \"후크\" 역할을 하며 두 가지 주요 부분으로 구성됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Inlet</strong> : 모델에 전송되는 입력을 조정합니다. 예를 들어, 추가 지침, 키워드 또는 서식을 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>출력</strong> : 모델에서 수신한 출력을 수정합니다. 예를 들어, 응답을 정리하거나, 톤을 조정하거나, 데이터를 특정 스타일로 서식을 지정합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>사용 사례:</strong>&nbsp;정확한 서식이 필요한 프로젝트를 진행 중이라고 가정해 보겠습니다. 필터를 사용하여 다음을 확인할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>귀하의 입력 내용은 항상 필요한 형식으로 변환됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>모델의 출력은 표시되기 전에 정리됩니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>필터는&nbsp;사용자의 요구 사항에 따라&nbsp;<strong>특정 모델에 연결 되거나 모든 모델에 대해&nbsp;</strong><strong>전역적으로</strong>&nbsp;활성화될 수 있습니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>더 많은 예제와 지침은 전체 가이드에서 확인하세요:&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/filter\"><strong>필터 함수</strong></a>&nbsp;.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"3-action-function--add-custom-buttons\">3.&nbsp;<a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/action\"><strong>액션 기능</strong>&nbsp;– 사용자 정의 버튼 추가</a></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>액션 함수</strong>&nbsp;는&nbsp;채팅 인터페이스에&nbsp;<strong>사용자 정의 버튼을</strong>&nbsp;추가하는 데 사용됩니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>어떤 기능을 하나요? 액션을 사용하면 채팅에서 특정 기능을 바로 실행하는&nbsp;</strong><strong>대화형 단축키를</strong>&nbsp;정의할 수 있습니다&nbsp;. 이 버튼은 개별 채팅 메시지 아래에 표시되어 정의한 액션에 한 번의 클릭으로 편리하게 액세스할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>사용 사례:</strong>&nbsp;긴 메시지를 요약하거나 번역과 같은 특정 출력을 생성해야 하는 경우가 많다고 가정해 보겠습니다. 다음과 같은 작업을 수행하는 작업 함수를 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>모든 수신 메시지 아래에 \"요약\" 버튼을 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>클릭하면 사용자 정의 함수가 트리거되어 해당 메시지를 처리하고 요약을 반환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>버튼은&nbsp;사용자가 정의한 확장 기능과 상호 작용할 수 있는&nbsp;<strong>깔끔하고 사용자 친화적인 방법을 제공합니다.</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/action\"><strong>Action Functions Guide</strong></a>&nbsp;에서 설정 방법을 알아보세요&nbsp;.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"️-how-to-use-functions\">🛠️ 함수 사용 방법</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI에서 함수를 사용하는 방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"1-install-functions\">1.&nbsp;<strong>기능 설치</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI 인터페이스를 통해 함수를 설치하거나 수동으로 가져올 수 있습니다. 커뮤니티에서 만든 함수는&nbsp;<a href=\"https://openwebui.com/functions\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\">Open WebUI 커뮤니티 사이트</a>&nbsp;에서 찾을 수 있습니다 .</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>⚠️&nbsp;<strong>주의하세요.</strong>&nbsp;신뢰할 수 있는 출처에서만 함수를 설치하세요. 알 수 없는 코드를 실행하면 보안 위험이 발생할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"2-enable-functions\">2.&nbsp;<strong>기능 활성화</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>설치 후에는 기능을 명시적으로 활성화해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>파이프 함수를</strong> 활성화하면 인터페이스에서 자체 <strong>모델 로 사용할 수 있습니다.</strong></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>필터</strong> 및 <strong>작업 기능</strong> 의 경우 , 이를 활성화하는 것만으로는 충분하지 않습니다. 특정 모델에 할당하거나 모든 모델에 대해 전역적으로 활성화해야 합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"3-assign-filters-or-actions-to-models\">3.&nbsp;<strong>모델에 필터 또는 작업 할당</strong></h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>Workspace => Models</code>해당 모델로 이동하여 필터나 작업을 할당합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>또는, 로 가서 \"...\" 메뉴를 선택하고 <strong>글로벌 스위치를 켜서 </strong><strong>모든 모델에 대한 기능을 전역적으로</strong> 활성화합니다 .<code>Workspace => Functions</code></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"quick-summary\">간단한 요약</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>파이프는</strong> 상호작용이 가능한 독립형 모델로 나타납니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>필터는</strong> AI 상호작용을 더욱 원활하게 하기 위해 입력/출력을 수정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>액션은</strong> 개별 채팅 메시지에 클릭 가능한 버튼을 추가합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>설정 과정을 따르면 Functions를 통해 워크플로가 원활하게 향상됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"-why-use-functions\">✅ 함수를 사용하는 이유는 무엇인가요?</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>이 기능은 Open WebUI를 통해 새로운 가능성을 열고자</strong>&nbsp;하는 모든 사람을 위해 설계되었습니다&nbsp;.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>확장</strong> : 새로운 모델을 추가하거나 API, 데이터베이스, 스마트 기기와 같은 AI가 아닌 도구와 통합합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>최적화</strong> : 사용 사례에 완벽하게 맞게 입력과 출력을 조정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>단순화</strong> : 직관적이고 효율적인 인터페이스를 만들기 위해 버튼이나 단축키를 추가합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>특정 프로젝트에 맞게 워크플로를 사용자 지정하든, 외부 데이터를 통합하든, 아니면 Open WebUI를 사용하기 쉽게 만들든, 함수는 인스턴스를 제어하는 ​​데 중요한 역할을 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"-final-notes\">📝 마지막 메모:</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>항상 <strong>신뢰할 수 있는 출처</strong> 에서만 함수를 설치하세요 .</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>파이프, 필터, 액션 함수의 차이점을 이해하여 효과적으로 사용하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>공식 가이드를 살펴보세요:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/pipe\">파이프 함수 가이드</a></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/filter\">필터 함수 가이드</a></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a class=\"\" href=\"https://docs.openwebui.com/features/plugin/functions/action\">액션 함수 가이드</a></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>Functions를 활용하면 Open WebUI 설정에 완전히 새로운 기능을 추가할 수 있습니다. 지금 바로 체험해 보세요! 🚀</p>\n<!-- /wp:paragraph -->','OpenWebUI - Functions(함수)','','inherit','closed','closed','','526-revision-v1','','','2025-10-24 10:36:13','2025-10-24 01:36:13','',526,'https://rndpolicy.org/aidev/?p=527',0,'revision','',0);
INSERT INTO `wp_posts` VALUES
(528,1,'2025-10-24 10:37:57','2025-10-24 01:37:57','<!-- wp:paragraph -->\n<p>파이프는 Open WebUI에 새 모델을&nbsp;<strong>추가하는</strong>&nbsp;방법이라고 생각하면 됩니다&nbsp;. 이 문서에서는 파이프의 정의, 작동 방식, 그리고 Open WebUI 모델에 사용자 지정 로직과 처리 기능을 추가하기 위해 파이프를 만드는 방법을 자세히 설명합니다. 명확한 비유를 사용하고 모든 세부 사항을 자세히 설명하여 포괄적으로 이해할 수 있도록 도와드리겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"introduction-to-pipes\">파이프 소개</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI를 데이터가 파이프와 밸브를 통해 흐르는&nbsp;<strong>배관 시스템</strong>&nbsp;으로 상상해 보세요 . 비유하자면 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>파이프는</strong> 데이터가 흐르는 새로운 경로를 도입할 수 있는 <strong>플러그인</strong> 과 같아서 사용자 정의 논리와 처리를 주입할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>밸브는</strong> 파이프의 <strong>구성 가능한 부분</strong> 으로 , 파이프를 통해 데이터가 흐르는 방식을 제어합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>파이프를 만들면 기본적으로 Open WebUI 프레임워크 내에서 원하는 특정 동작을 갖춘 사용자 지정 모델을 만드는 것입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"understanding-the-pipe-structure\">파이프 구조 이해</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>파이프의 구조를 이해하기 위해 기본적이고 간략한 버전부터 시작해 보겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field<br><br>class Pipe:<br>    class Valves(BaseModel):<br>        MODEL_ID: str = Field(default=\"\")<br><br>    def __init__(self):<br>        self.valves = self.Valves()<br><br>    def pipe(self, body: dict):<br>        <em># Logic goes here</em><br>        print(self.valves, body)  <em># This will print the configuration options and the input body</em><br>        return \"Hello, World!\"</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"the-pipe-class\">파이프 클래스</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>정의</strong> : <code>Pipe</code>클래스는 사용자 정의 논리를 정의하는 곳입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>목적</strong> : 플러그인에 대한 청사진 역할을 하며 Open WebUI 내에서 플러그인이 어떻게 동작하는지 결정합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"valves-configuring-your-pipe\">밸브: 파이프 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>정의</strong> : 에서 상속하는 <code>Valves</code>중첩 클래스입니다 .<code>Pipe</code><code>BaseModel</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>목적</strong> : 파이프 사용 중에 지속되는 구성 옵션(매개변수)을 포함합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예</strong> : 위 코드에서 는 <code>MODEL_ID</code>기본적으로 빈 문자열을 갖는 구성 옵션입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>비유</strong>&nbsp;: 밸브는 실제 파이프 시스템에서 물의 흐름을 제어하는 ​​손잡이라고 생각해 보세요. 파이프에서 밸브를 사용하면 데이터 흐름과 처리 방식에 영향을 미치는 설정을 조정할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"the-__init__-method\">방법<code>__init__</code>​</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>정의</strong> : 클래스의 생성자 메서드입니다 <code>Pipe</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>목적</strong> : 파이프의 상태를 초기화하고 필요한 구성 요소를 설정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모범 사례</strong> : 간단하게 유지하고, 주로 <code>self.valves</code>여기에서 초기화하세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>def __init__(self):<br>    self.valves = self.Valves()</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"the-pipe-function\">기능<code>pipe</code>​</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>정의</strong> : 사용자 정의 논리가 있는 핵심 기능입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>매개변수</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>body</code>: 입력 데이터를 포함하는 사전입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>목적</strong> : 사용자 정의 논리를 사용하여 입력 데이터를 처리하고 결과를 반환합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>def pipe(self, body: dict):<br>    <em># Logic goes here</em><br>    print(self.valves, body)  <em># This will print the configuration options and the input body</em><br>    return \"Hello, World!\"</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p><strong>참고</strong>&nbsp;: 항상 클래스&nbsp;<code>Valves</code>맨 위에 를 배치하고&nbsp;<code>Pipe</code>, 그 뒤에&nbsp;<code>__init__</code>, 그리고&nbsp;<code>pipe</code>함수를 배치하세요. 이러한 구조는 명확성과 일관성을 보장합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"creating-multiple-models-with-pipes\">파이프를 사용하여 여러 모델 만들기</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI 내에서 Pipe를 사용하여&nbsp;<strong>여러 모델을</strong><code>pipes</code>&nbsp;생성하려면 어떻게 해야 할까요? 클래스 내부에 함수나 변수를&nbsp;정의하면 됩니다 . 비공식적으로&nbsp;<strong>매니폴드</strong><code>Pipe</code>&nbsp;라고 불리는 이 설정을 통해&nbsp;Pipe는 여러 모델을 표현할 수 있습니다.<strong></strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field<br><br>class Pipe:<br>    class Valves(BaseModel):<br>        MODEL_ID: str = Field(default=\"\")<br><br>    def __init__(self):<br>        self.valves = self.Valves()<br><br>    def pipes(self):<br>        return &#91;<br>            {\"id\": \"model_id_1\", \"name\": \"model_1\"},<br>            {\"id\": \"model_id_2\", \"name\": \"model_2\"},<br>            {\"id\": \"model_id_3\", \"name\": \"model_3\"},<br>        ]<br><br>    def pipe(self, body: dict):<br>        <em># Logic goes here</em><br>        print(self.valves, body)  <em># Prints the configuration options and the input body</em><br>        model = body.get(\"model\", \"\")<br>        return f\"{model}: Hello, World!\"</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"explanation\">설명</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>pipes</code>기능</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>사전 목록을 반환합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>id</code>각 사전은 고유한 키 를 가진 모델을 나타냅니다 <code>name</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이러한 모델은 Open WebUI 모델 선택기에 개별적으로 표시됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>업데이트된 <code>pipe</code>기능</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>선택된 모델에 따라 입력을 처리합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이 예에서는 반환된 문자열에 모델 이름이 포함됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"example-openai-proxy-pipe\">예: OpenAI 프록시 파이프</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>OpenAI API에 대한 요청을 프록시하는 파이프를 생성하는 실제 예제를 살펴보겠습니다. 이 파이프는 OpenAI에서 사용 가능한 모델을 가져와 사용자가 Open WebUI를 통해 해당 모델과 상호 작용할 수 있도록 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field<br>import requests<br><br>class Pipe:<br>    class Valves(BaseModel):<br>        NAME_PREFIX: str = Field(<br>            default=\"OPENAI/\",<br>            description=\"Prefix to be added before model names.\",<br>        )<br>        OPENAI_API_BASE_URL: str = Field(<br>            default=\"https://api.openai.com/v1\",<br>            description=\"Base URL for accessing OpenAI API endpoints.\",<br>        )<br>        OPENAI_API_KEY: str = Field(<br>            default=\"\",<br>            description=\"API key for authenticating requests to the OpenAI API.\",<br>        )<br><br>    def __init__(self):<br>        self.valves = self.Valves()<br><br>    def pipes(self):<br>        if self.valves.OPENAI_API_KEY:<br>            try:<br>                headers = {<br>                    \"Authorization\": f\"Bearer {self.valves.OPENAI_API_KEY}\",<br>                    \"Content-Type\": \"application/json\",<br>                }<br><br>                r = requests.get(<br>                    f\"{self.valves.OPENAI_API_BASE_URL}/models\", headers=headers<br>                )<br>                models = r.json()<br>                return &#91;<br>                    {<br>                        \"id\": model&#91;\"id\"],<br>                        \"name\": f\'{self.valves.NAME_PREFIX}{model.get(\"name\", model&#91;\"id\"])}\',<br>                    }<br>                    for model in models&#91;\"data\"]<br>                    if \"gpt\" in model&#91;\"id\"]<br>                ]<br><br>            except Exception as e:<br>                return &#91;<br>                    {<br>                        \"id\": \"error\",<br>                        \"name\": \"Error fetching models. Please check your API Key.\",<br>                    },<br>                ]<br>        else:<br>            return &#91;<br>                {<br>                    \"id\": \"error\",<br>                    \"name\": \"API Key not provided.\",<br>                },<br>            ]<br><br>    def pipe(self, body: dict, __user__: dict):<br>        print(f\"pipe:{__name__}\")<br>        headers = {<br>            \"Authorization\": f\"Bearer {self.valves.OPENAI_API_KEY}\",<br>            \"Content-Type\": \"application/json\",<br>        }<br><br>        <em># Extract model id from the model name</em><br>        model_id = body&#91;\"model\"]&#91;body&#91;\"model\"].find(\".\") + 1 :]<br><br>        <em># Update the model id in the body</em><br>        payload = {**body, \"model\": model_id}<br>        try:<br>            r = requests.post(<br>                url=f\"{self.valves.OPENAI_API_BASE_URL}/chat/completions\",<br>                json=payload,<br>                headers=headers,<br>                stream=True,<br>            )<br><br>            r.raise_for_status()<br><br>            if body.get(\"stream\", False):<br>                return r.iter_lines()<br>            else:<br>                return r.json()<br>        except Exception as e:<br>            return f\"Error: {e}\"</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"detailed-breakdown\">자세한 분석</h3>\n<!-- /wp:heading -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"valves-configuration\">밸브 구성</h4>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>NAME_PREFIX</code></strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Open WebUI에 표시되는 모델 이름에 접두사를 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>기본: <code>\"OPENAI/\"</code>.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong><code>OPENAI_API_BASE_URL</code></strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>OpenAI API의 기본 URL을 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>기본: <code>\"https://api.openai.com/v1\"</code>.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong><code>OPENAI_API_KEY</code></strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>인증을 위한 OpenAI API 키입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>기본값: <code>\"\"</code>(빈 문자열; 반드시 제공해야 함).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"the-pipes-function\">기능<code>pipes</code>​</h4>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적</strong> : 사용 가능한 OpenAI 모델을 가져와 Open WebUI에서 접근할 수 있도록 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프로세스</strong> :<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>API 키 확인</strong> : API 키가 제공되었는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 가져오기</strong> : OpenAI API에 GET 요청을 보내 사용 가능한 모델을 검색합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>필터 모델</strong> : . <code>\"gpt\"</code>을 포함 하는 모델을 반환합니다 <code>id</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>오류 처리</strong> : 문제가 있는 경우 오류 메시지를 반환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>반환 형식</strong><code>id</code> : 각 모델에 대한 사전 목록입니다 <code>name</code>.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"the-pipe-function-1\">기능<code>pipe</code>​</h4>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적</strong> : 선택된 OpenAI 모델에 대한 요청을 처리하고 응답을 반환합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>매개변수</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>body</code>: 요청 데이터를 포함합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>__user__</code>: 사용자 정보가 포함되어 있습니다(이 예에서는 사용되지 않지만 인증이나 로깅에 유용할 수 있음).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프로세스</strong> :<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>헤더 준비</strong> : API 키와 콘텐츠 유형으로 헤더를 설정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 ID 추출</strong> : 선택한 모델 이름에서 실제 모델 ID를 추출합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>페이로드 준비</strong> : 올바른 모델 ID로 본체를 업데이트합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 요청 만들기</strong> : OpenAI API의 채팅 완료 엔드포인트에 POST 요청을 보냅니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>스트리밍 처리</strong> : <code>stream</code>인 경우 <code>True</code>반복 가능한 줄을 반환합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>오류 처리</strong> : 예외를 포착하고 오류 메시지를 반환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"extending-the-proxy-pipe\">프록시 파이프 확장</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><code>pipes</code>API 엔드포인트, 헤더, 함수&nbsp;내의 로직을 조정하여 Anthropic, Perplexity 등의 추가 서비스 공급자를 지원하도록 이 프록시 파이프를 수정할 수 있습니다&nbsp;<code>pipe</code>.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"using-internal-open-webui-functions\">내부 Open WebUI 기능 사용</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Pipe 내에서 Open WebUI의 내부 기능을 활용하고 싶을 때가 있습니다. 이러한 함수는 패키지에서 직접 가져올 수 있습니다&nbsp;<code>open_webui</code>. 드물지만 최적화를 위해 내부 함수가 변경될 수 있으므로 항상 최신 문서를 참조하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>내부 Open WebUI 기능을 사용하는 방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field<br>from fastapi import Request<br><br>from open_webui.models.users import Users<br>from open_webui.utils.chat import generate_chat_completion<br><br>class Pipe:<br>    def __init__(self):<br>        pass<br><br>    async def pipe(<br>        self,<br>        body: dict,<br>        __user__: dict,<br>        __request__: Request,<br>    ) -&gt; str:<br>        <em># Use the unified endpoint with the updated signature</em><br>        user = Users.get_user_by_id(__user__&#91;\"id\"])<br>        body&#91;\"model\"] = \"llama3.2:latest\"<br>        return await generate_chat_completion(__request__, body, user)</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"explanation-1\">설명</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>수입품</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>Users</code>from <code>open_webui.models.users</code>: 사용자 정보를 가져옵니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>generate_chat_completion</code>from <code>open_webui.utils.chat</code>: 내부 논리를 사용하여 채팅 완성을 생성합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>비동기 <code>pipe</code>함수</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>매개변수</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>body</code>: 모델에 대한 입력 데이터입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>__user__</code>: 사용자 정보를 담고 있는 사전입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>__request__</code>: FastAPI의 요청 객체(필수 <code>generate_chat_completion</code>).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프로세스</strong> :<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>사용자 객체 가져오기</strong> : ID를 사용하여 사용자 객체를 검색합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 설정</strong> : 사용할 모델을 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>완료 생성</strong> : <code>generate_chat_completion</code>입력을 처리하고 출력을 생성하기 위한 호출입니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"important-notes\">중요 참고 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>함수 시그니처</strong> : 가장 정확한 함수 시그니처와 매개변수에 대해서는 최신 Open WebUI 코드베이스나 문서를 참조하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모범 사례</strong> : 원활한 사용자 경험을 보장하기 위해 항상 예외와 오류를 원활하게 처리하세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">자주 묻는 질문</h2>\n<!-- /wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q1-why-should-i-use-pipes-in-open-webui\">Q1: Open WebUI에서 파이프를 사용해야 하는 이유는 무엇인가요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 파이프를 사용하면 Open WebUI에 사용자 정의 로직과 처리 방식을 갖춘 새로운 \"모델\"을 추가할 수 있습니다. 파이프는 핵심 코드베이스를 변경하지 않고도 외부 API를 통합하고, 모델 동작을 사용자 정의하고, 혁신적인 기능을 개발할 수 있는 유연한 플러그인 시스템입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q2-what-are-valves-and-why-are-they-important\">Q2: 밸브란 무엇이고, 왜 중요한가요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 밸브는 파이프의 구성 가능한 매개변수입니다. 파이프의 작동 방식을 결정하는 설정이나 컨트롤과 같은 역할을 합니다. 밸브를 조정하면 기본 코드를 수정하지 않고도 파이프의 동작을 변경할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q3-can-i-create-a-pipe-without-valves\">Q3: 밸브 없이 파이프를 만들 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 네, Pipe에 영구적인 구성 옵션이 필요하지 않다면 Valves 클래스를 정의하지 않고도 간단한 Pipe를 생성할 수 있습니다. 하지만 Valves 클래스를 포함하는 것이 유연성과 향후 확장성을 위해 좋은 방법입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q4-how-do-i-ensure-my-pipe-is-secure-when-using-api-keys\">질문 4: API 키를 사용할 때 파이프의 보안을 어떻게 보장할 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: API 키와 같은 민감한 정보는 Pipe에 하드코딩하지 마세요. 대신 Valves를 사용하여 API 키를 안전하게 입력하고 저장하세요. 코드가 이러한 키를 적절하게 처리하고 로깅이나 노출을 방지하도록 하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q5-what-is-the-difference-between-the-pipe-and-pipes-functions\"><code>pipe</code>Q5: 와 함수&nbsp;의 차이점은 무엇인가요&nbsp;<code>pipes</code>?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>pipe</code>기능</strong> : 입력 데이터를 처리하고 출력을 생성하는 주요 기능입니다. 단일 모델의 로직을 처리합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong><code>pipes</code>기능</strong> : 파이프가 모델 정의 목록을 반환하여 여러 모델을 표현할 수 있도록 합니다. 각 모델은 Open WebUI에 개별적으로 표시됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q6-how-can-i-handle-errors-in-my-pipe\">Q6: 파이프에서 발생하는 오류를 어떻게 처리할 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong><code>pipe</code>&nbsp;: 및 함수&nbsp;내에서 try-except 블록을 사용하여&nbsp;<code>pipes</code>예외를 포착하세요. 의미 있는 오류 메시지를 반환하거나 오류를 적절하게 처리하여 사용자에게 오류 원인을 알리세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q7-can-i-use-external-libraries-in-my-pipe\">Q7: Pipe에서 외부 라이브러리를 사용할 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 네, 필요에 따라 외부 라이브러리를 가져와서 사용할 수 있습니다. 모든 종속성이 사용자 환경 내에서 제대로 설치되고 관리되는지 확인하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q8-how-do-i-test-my-pipe\">Q8: 파이프를 어떻게 테스트하나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 개발 환경에서 Open WebUI를 실행하고 인터페이스에서 사용자 지정 모델을 선택하여 Pipe를 테스트하세요. 다양한 입력 및 구성에서 Pipe가 예상대로 작동하는지 확인하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q9-are-there-any-best-practices-for-organizing-my-pipes-code\">Q9: Pipe 코드를 정리하는 모범 사례가 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 네, 다음 지침을 따르세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>Valves</code>반에서 항상 상위권을 유지하세요 <code>Pipe</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>메서드 에서 변수를 초기화합니다 . <code>__init__</code>주로 <code>self.valves</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>pipe</code>메서드 뒤에 함수를 배치합니다 <code>__init__</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>명확하고 설명적인 변수 이름을 사용하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>명확성을 위해 코드에 주석을 달아주세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q10-where-can-i-find-the-latest-open-webui-documentation\">질문 10: 최신 Open WebUI 문서는 어디에서 찾을 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>답변</strong>&nbsp;: 함수 서명, 예제, 변경 사항이 있는 경우 마이그레이션 가이드 등 최신 정보를 보려면 공식 Open WebUI 저장소나 문서 사이트를 방문하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"conclusion\">결론</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이제 Open WebUI에서 파이프를 생성하고 사용하는 방법을 완전히 이해하셨을 것입니다. 파이프는 Open WebUI의 기능을 특정 요구에 맞게 확장하고 사용자 정의할 수 있는 강력한 방법을 제공합니다. 외부 API를 통합하거나, 새로운 모델을 추가하거나, 복잡한 로직을 삽입하는 등 어떤 작업이든 파이프는 유연하게 처리할 수 있도록 지원합니다.</p>\n<!-- /wp:paragraph -->','OpenWebUI - 파이프 기능: 사용자 정의 \"에이전트/모델\" 생성','','publish','open','closed','','openwebui-%ed%8c%8c%ec%9d%b4%ed%94%84-%ea%b8%b0%eb%8a%a5-%ec%82%ac%ec%9a%a9%ec%9e%90-%ec%a0%95%ec%9d%98-%ec%97%90%ec%9d%b4%ec%a0%84%ed%8a%b8-%eb%aa%a8%eb%8d%b8-%ec%83%9d%ec%84%b1','','','2025-10-24 10:37:58','2025-10-24 01:37:58','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=528',0,'docs','',0),
(529,1,'2025-10-24 10:37:57','2025-10-24 01:37:57','<!-- wp:paragraph -->\n<p>파이프는 Open WebUI에 새 모델을&nbsp;<strong>추가하는</strong>&nbsp;방법이라고 생각하면 됩니다&nbsp;. 이 문서에서는 파이프의 정의, 작동 방식, 그리고 Open WebUI 모델에 사용자 지정 로직과 처리 기능을 추가하기 위해 파이프를 만드는 방법을 자세히 설명합니다. 명확한 비유를 사용하고 모든 세부 사항을 자세히 설명하여 포괄적으로 이해할 수 있도록 도와드리겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"introduction-to-pipes\">파이프 소개</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI를 데이터가 파이프와 밸브를 통해 흐르는&nbsp;<strong>배관 시스템</strong>&nbsp;으로 상상해 보세요 . 비유하자면 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>파이프는</strong> 데이터가 흐르는 새로운 경로를 도입할 수 있는 <strong>플러그인</strong> 과 같아서 사용자 정의 논리와 처리를 주입할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>밸브는</strong> 파이프의 <strong>구성 가능한 부분</strong> 으로 , 파이프를 통해 데이터가 흐르는 방식을 제어합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>파이프를 만들면 기본적으로 Open WebUI 프레임워크 내에서 원하는 특정 동작을 갖춘 사용자 지정 모델을 만드는 것입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"understanding-the-pipe-structure\">파이프 구조 이해</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>파이프의 구조를 이해하기 위해 기본적이고 간략한 버전부터 시작해 보겠습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field<br><br>class Pipe:<br>    class Valves(BaseModel):<br>        MODEL_ID: str = Field(default=\"\")<br><br>    def __init__(self):<br>        self.valves = self.Valves()<br><br>    def pipe(self, body: dict):<br>        <em># Logic goes here</em><br>        print(self.valves, body)  <em># This will print the configuration options and the input body</em><br>        return \"Hello, World!\"</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"the-pipe-class\">파이프 클래스</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>정의</strong> : <code>Pipe</code>클래스는 사용자 정의 논리를 정의하는 곳입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>목적</strong> : 플러그인에 대한 청사진 역할을 하며 Open WebUI 내에서 플러그인이 어떻게 동작하는지 결정합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"valves-configuring-your-pipe\">밸브: 파이프 구성</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>정의</strong> : 에서 상속하는 <code>Valves</code>중첩 클래스입니다 .<code>Pipe</code><code>BaseModel</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>목적</strong> : 파이프 사용 중에 지속되는 구성 옵션(매개변수)을 포함합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>예</strong> : 위 코드에서 는 <code>MODEL_ID</code>기본적으로 빈 문자열을 갖는 구성 옵션입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>비유</strong>&nbsp;: 밸브는 실제 파이프 시스템에서 물의 흐름을 제어하는 ​​손잡이라고 생각해 보세요. 파이프에서 밸브를 사용하면 데이터 흐름과 처리 방식에 영향을 미치는 설정을 조정할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"the-__init__-method\">방법<code>__init__</code>​</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>정의</strong> : 클래스의 생성자 메서드입니다 <code>Pipe</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>목적</strong> : 파이프의 상태를 초기화하고 필요한 구성 요소를 설정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모범 사례</strong> : 간단하게 유지하고, 주로 <code>self.valves</code>여기에서 초기화하세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>def __init__(self):<br>    self.valves = self.Valves()</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"the-pipe-function\">기능<code>pipe</code>​</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>정의</strong> : 사용자 정의 논리가 있는 핵심 기능입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>매개변수</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>body</code>: 입력 데이터를 포함하는 사전입니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>목적</strong> : 사용자 정의 논리를 사용하여 입력 데이터를 처리하고 결과를 반환합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>def pipe(self, body: dict):<br>    <em># Logic goes here</em><br>    print(self.valves, body)  <em># This will print the configuration options and the input body</em><br>    return \"Hello, World!\"</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:paragraph -->\n<p><strong>참고</strong>&nbsp;: 항상 클래스&nbsp;<code>Valves</code>맨 위에 를 배치하고&nbsp;<code>Pipe</code>, 그 뒤에&nbsp;<code>__init__</code>, 그리고&nbsp;<code>pipe</code>함수를 배치하세요. 이러한 구조는 명확성과 일관성을 보장합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"creating-multiple-models-with-pipes\">파이프를 사용하여 여러 모델 만들기</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Open WebUI 내에서 Pipe를 사용하여&nbsp;<strong>여러 모델을</strong><code>pipes</code>&nbsp;생성하려면 어떻게 해야 할까요? 클래스 내부에 함수나 변수를&nbsp;정의하면 됩니다 . 비공식적으로&nbsp;<strong>매니폴드</strong><code>Pipe</code>&nbsp;라고 불리는 이 설정을 통해&nbsp;Pipe는 여러 모델을 표현할 수 있습니다.<strong></strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field<br><br>class Pipe:<br>    class Valves(BaseModel):<br>        MODEL_ID: str = Field(default=\"\")<br><br>    def __init__(self):<br>        self.valves = self.Valves()<br><br>    def pipes(self):<br>        return &#91;<br>            {\"id\": \"model_id_1\", \"name\": \"model_1\"},<br>            {\"id\": \"model_id_2\", \"name\": \"model_2\"},<br>            {\"id\": \"model_id_3\", \"name\": \"model_3\"},<br>        ]<br><br>    def pipe(self, body: dict):<br>        <em># Logic goes here</em><br>        print(self.valves, body)  <em># Prints the configuration options and the input body</em><br>        model = body.get(\"model\", \"\")<br>        return f\"{model}: Hello, World!\"</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"explanation\">설명</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>pipes</code>기능</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>사전 목록을 반환합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>id</code>각 사전은 고유한 키 를 가진 모델을 나타냅니다 <code>name</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이러한 모델은 Open WebUI 모델 선택기에 개별적으로 표시됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>업데이트된 <code>pipe</code>기능</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>선택된 모델에 따라 입력을 처리합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>이 예에서는 반환된 문자열에 모델 이름이 포함됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"example-openai-proxy-pipe\">예: OpenAI 프록시 파이프</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>OpenAI API에 대한 요청을 프록시하는 파이프를 생성하는 실제 예제를 살펴보겠습니다. 이 파이프는 OpenAI에서 사용 가능한 모델을 가져와 사용자가 Open WebUI를 통해 해당 모델과 상호 작용할 수 있도록 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field<br>import requests<br><br>class Pipe:<br>    class Valves(BaseModel):<br>        NAME_PREFIX: str = Field(<br>            default=\"OPENAI/\",<br>            description=\"Prefix to be added before model names.\",<br>        )<br>        OPENAI_API_BASE_URL: str = Field(<br>            default=\"https://api.openai.com/v1\",<br>            description=\"Base URL for accessing OpenAI API endpoints.\",<br>        )<br>        OPENAI_API_KEY: str = Field(<br>            default=\"\",<br>            description=\"API key for authenticating requests to the OpenAI API.\",<br>        )<br><br>    def __init__(self):<br>        self.valves = self.Valves()<br><br>    def pipes(self):<br>        if self.valves.OPENAI_API_KEY:<br>            try:<br>                headers = {<br>                    \"Authorization\": f\"Bearer {self.valves.OPENAI_API_KEY}\",<br>                    \"Content-Type\": \"application/json\",<br>                }<br><br>                r = requests.get(<br>                    f\"{self.valves.OPENAI_API_BASE_URL}/models\", headers=headers<br>                )<br>                models = r.json()<br>                return &#91;<br>                    {<br>                        \"id\": model&#91;\"id\"],<br>                        \"name\": f\'{self.valves.NAME_PREFIX}{model.get(\"name\", model&#91;\"id\"])}\',<br>                    }<br>                    for model in models&#91;\"data\"]<br>                    if \"gpt\" in model&#91;\"id\"]<br>                ]<br><br>            except Exception as e:<br>                return &#91;<br>                    {<br>                        \"id\": \"error\",<br>                        \"name\": \"Error fetching models. Please check your API Key.\",<br>                    },<br>                ]<br>        else:<br>            return &#91;<br>                {<br>                    \"id\": \"error\",<br>                    \"name\": \"API Key not provided.\",<br>                },<br>            ]<br><br>    def pipe(self, body: dict, __user__: dict):<br>        print(f\"pipe:{__name__}\")<br>        headers = {<br>            \"Authorization\": f\"Bearer {self.valves.OPENAI_API_KEY}\",<br>            \"Content-Type\": \"application/json\",<br>        }<br><br>        <em># Extract model id from the model name</em><br>        model_id = body&#91;\"model\"]&#91;body&#91;\"model\"].find(\".\") + 1 :]<br><br>        <em># Update the model id in the body</em><br>        payload = {**body, \"model\": model_id}<br>        try:<br>            r = requests.post(<br>                url=f\"{self.valves.OPENAI_API_BASE_URL}/chat/completions\",<br>                json=payload,<br>                headers=headers,<br>                stream=True,<br>            )<br><br>            r.raise_for_status()<br><br>            if body.get(\"stream\", False):<br>                return r.iter_lines()<br>            else:<br>                return r.json()<br>        except Exception as e:<br>            return f\"Error: {e}\"</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"detailed-breakdown\">자세한 분석</h3>\n<!-- /wp:heading -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"valves-configuration\">밸브 구성</h4>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>NAME_PREFIX</code></strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Open WebUI에 표시되는 모델 이름에 접두사를 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>기본: <code>\"OPENAI/\"</code>.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong><code>OPENAI_API_BASE_URL</code></strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>OpenAI API의 기본 URL을 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>기본: <code>\"https://api.openai.com/v1\"</code>.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong><code>OPENAI_API_KEY</code></strong>:<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>인증을 위한 OpenAI API 키입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>기본값: <code>\"\"</code>(빈 문자열; 반드시 제공해야 함).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"the-pipes-function\">기능<code>pipes</code>​</h4>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적</strong> : 사용 가능한 OpenAI 모델을 가져와 Open WebUI에서 접근할 수 있도록 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프로세스</strong> :<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>API 키 확인</strong> : API 키가 제공되었는지 확인합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 가져오기</strong> : OpenAI API에 GET 요청을 보내 사용 가능한 모델을 검색합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>필터 모델</strong> : . <code>\"gpt\"</code>을 포함 하는 모델을 반환합니다 <code>id</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>오류 처리</strong> : 문제가 있는 경우 오류 메시지를 반환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>반환 형식</strong><code>id</code> : 각 모델에 대한 사전 목록입니다 <code>name</code>.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":4} -->\n<h4 class=\"wp-block-heading\" id=\"the-pipe-function-1\">기능<code>pipe</code>​</h4>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>목적</strong> : 선택된 OpenAI 모델에 대한 요청을 처리하고 응답을 반환합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>매개변수</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>body</code>: 요청 데이터를 포함합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>__user__</code>: 사용자 정보가 포함되어 있습니다(이 예에서는 사용되지 않지만 인증이나 로깅에 유용할 수 있음).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프로세스</strong> :<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>헤더 준비</strong> : API 키와 콘텐츠 유형으로 헤더를 설정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 ID 추출</strong> : 선택한 모델 이름에서 실제 모델 ID를 추출합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>페이로드 준비</strong> : 올바른 모델 ID로 본체를 업데이트합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>API 요청 만들기</strong> : OpenAI API의 채팅 완료 엔드포인트에 POST 요청을 보냅니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>스트리밍 처리</strong> : <code>stream</code>인 경우 <code>True</code>반복 가능한 줄을 반환합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>오류 처리</strong> : 예외를 포착하고 오류 메시지를 반환합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"extending-the-proxy-pipe\">프록시 파이프 확장</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><code>pipes</code>API 엔드포인트, 헤더, 함수&nbsp;내의 로직을 조정하여 Anthropic, Perplexity 등의 추가 서비스 공급자를 지원하도록 이 프록시 파이프를 수정할 수 있습니다&nbsp;<code>pipe</code>.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"using-internal-open-webui-functions\">내부 Open WebUI 기능 사용</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Pipe 내에서 Open WebUI의 내부 기능을 활용하고 싶을 때가 있습니다. 이러한 함수는 패키지에서 직접 가져올 수 있습니다&nbsp;<code>open_webui</code>. 드물지만 최적화를 위해 내부 함수가 변경될 수 있으므로 항상 최신 문서를 참조하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>내부 Open WebUI 기능을 사용하는 방법은 다음과 같습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>from pydantic import BaseModel, Field<br>from fastapi import Request<br><br>from open_webui.models.users import Users<br>from open_webui.utils.chat import generate_chat_completion<br><br>class Pipe:<br>    def __init__(self):<br>        pass<br><br>    async def pipe(<br>        self,<br>        body: dict,<br>        __user__: dict,<br>        __request__: Request,<br>    ) -&gt; str:<br>        <em># Use the unified endpoint with the updated signature</em><br>        user = Users.get_user_by_id(__user__&#91;\"id\"])<br>        body&#91;\"model\"] = \"llama3.2:latest\"<br>        return await generate_chat_completion(__request__, body, user)</code></pre>\n<!-- /wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"explanation-1\">설명</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>수입품</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>Users</code>from <code>open_webui.models.users</code>: 사용자 정보를 가져옵니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>generate_chat_completion</code>from <code>open_webui.utils.chat</code>: 내부 논리를 사용하여 채팅 완성을 생성합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>비동기 <code>pipe</code>함수</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>매개변수</strong> :<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>body</code>: 모델에 대한 입력 데이터입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>__user__</code>: 사용자 정보를 담고 있는 사전입니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>__request__</code>: FastAPI의 요청 객체(필수 <code>generate_chat_completion</code>).</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프로세스</strong> :<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>사용자 객체 가져오기</strong> : ID를 사용하여 사용자 객체를 검색합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 설정</strong> : 사용할 모델을 지정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>완료 생성</strong> : <code>generate_chat_completion</code>입력을 처리하고 출력을 생성하기 위한 호출입니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"important-notes\">중요 참고 사항</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>함수 시그니처</strong> : 가장 정확한 함수 시그니처와 매개변수에 대해서는 최신 Open WebUI 코드베이스나 문서를 참조하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모범 사례</strong> : 원활한 사용자 경험을 보장하기 위해 항상 예외와 오류를 원활하게 처리하세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">자주 묻는 질문</h2>\n<!-- /wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q1-why-should-i-use-pipes-in-open-webui\">Q1: Open WebUI에서 파이프를 사용해야 하는 이유는 무엇인가요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 파이프를 사용하면 Open WebUI에 사용자 정의 로직과 처리 방식을 갖춘 새로운 \"모델\"을 추가할 수 있습니다. 파이프는 핵심 코드베이스를 변경하지 않고도 외부 API를 통합하고, 모델 동작을 사용자 정의하고, 혁신적인 기능을 개발할 수 있는 유연한 플러그인 시스템입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q2-what-are-valves-and-why-are-they-important\">Q2: 밸브란 무엇이고, 왜 중요한가요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 밸브는 파이프의 구성 가능한 매개변수입니다. 파이프의 작동 방식을 결정하는 설정이나 컨트롤과 같은 역할을 합니다. 밸브를 조정하면 기본 코드를 수정하지 않고도 파이프의 동작을 변경할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q3-can-i-create-a-pipe-without-valves\">Q3: 밸브 없이 파이프를 만들 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 네, Pipe에 영구적인 구성 옵션이 필요하지 않다면 Valves 클래스를 정의하지 않고도 간단한 Pipe를 생성할 수 있습니다. 하지만 Valves 클래스를 포함하는 것이 유연성과 향후 확장성을 위해 좋은 방법입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q4-how-do-i-ensure-my-pipe-is-secure-when-using-api-keys\">질문 4: API 키를 사용할 때 파이프의 보안을 어떻게 보장할 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: API 키와 같은 민감한 정보는 Pipe에 하드코딩하지 마세요. 대신 Valves를 사용하여 API 키를 안전하게 입력하고 저장하세요. 코드가 이러한 키를 적절하게 처리하고 로깅이나 노출을 방지하도록 하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q5-what-is-the-difference-between-the-pipe-and-pipes-functions\"><code>pipe</code>Q5: 와 함수&nbsp;의 차이점은 무엇인가요&nbsp;<code>pipes</code>?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong><code>pipe</code>기능</strong> : 입력 데이터를 처리하고 출력을 생성하는 주요 기능입니다. 단일 모델의 로직을 처리합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong><code>pipes</code>기능</strong> : 파이프가 모델 정의 목록을 반환하여 여러 모델을 표현할 수 있도록 합니다. 각 모델은 Open WebUI에 개별적으로 표시됩니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q6-how-can-i-handle-errors-in-my-pipe\">Q6: 파이프에서 발생하는 오류를 어떻게 처리할 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong><code>pipe</code>&nbsp;: 및 함수&nbsp;내에서 try-except 블록을 사용하여&nbsp;<code>pipes</code>예외를 포착하세요. 의미 있는 오류 메시지를 반환하거나 오류를 적절하게 처리하여 사용자에게 오류 원인을 알리세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q7-can-i-use-external-libraries-in-my-pipe\">Q7: Pipe에서 외부 라이브러리를 사용할 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 네, 필요에 따라 외부 라이브러리를 가져와서 사용할 수 있습니다. 모든 종속성이 사용자 환경 내에서 제대로 설치되고 관리되는지 확인하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q8-how-do-i-test-my-pipe\">Q8: 파이프를 어떻게 테스트하나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 개발 환경에서 Open WebUI를 실행하고 인터페이스에서 사용자 지정 모델을 선택하여 Pipe를 테스트하세요. 다양한 입력 및 구성에서 Pipe가 예상대로 작동하는지 확인하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q9-are-there-any-best-practices-for-organizing-my-pipes-code\">Q9: Pipe 코드를 정리하는 모범 사례가 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>A</strong>&nbsp;: 네, 다음 지침을 따르세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><code>Valves</code>반에서 항상 상위권을 유지하세요 <code>Pipe</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>메서드 에서 변수를 초기화합니다 . <code>__init__</code>주로 <code>self.valves</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>pipe</code>메서드 뒤에 함수를 배치합니다 <code>__init__</code>.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>명확하고 설명적인 변수 이름을 사용하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>명확성을 위해 코드에 주석을 달아주세요.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"q10-where-can-i-find-the-latest-open-webui-documentation\">질문 10: 최신 Open WebUI 문서는 어디에서 찾을 수 있나요?</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>답변</strong>&nbsp;: 함수 서명, 예제, 변경 사항이 있는 경우 마이그레이션 가이드 등 최신 정보를 보려면 공식 Open WebUI 저장소나 문서 사이트를 방문하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n<!-- /wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"conclusion\">결론</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이제 Open WebUI에서 파이프를 생성하고 사용하는 방법을 완전히 이해하셨을 것입니다. 파이프는 Open WebUI의 기능을 특정 요구에 맞게 확장하고 사용자 정의할 수 있는 강력한 방법을 제공합니다. 외부 API를 통합하거나, 새로운 모델을 추가하거나, 복잡한 로직을 삽입하는 등 어떤 작업이든 파이프는 유연하게 처리할 수 있도록 지원합니다.</p>\n<!-- /wp:paragraph -->','OpenWebUI - 파이프 기능: 사용자 정의 \"에이전트/모델\" 생성','','inherit','closed','closed','','528-revision-v1','','','2025-10-24 10:37:57','2025-10-24 01:37:57','',528,'https://rndpolicy.org/aidev/?p=529',0,'revision','',0),
(530,1,'2025-10-24 10:41:00','2025-10-24 01:41:00','<!-- wp:paragraph -->\n<p>Open WebUI의 Workspace는 AI 상호작용 및 구성을 관리하기 위한 포괄적인 환경을 제공합니다. Workspace는 다음과 같은 몇 가지 주요 구성 요소로 구성됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"resources\">자원</h2>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://rndpolicy.org/aidev/docs/openwebui-models/\" data-type=\"docs\" data-id=\"532\">🤖 모델</a> - 특정 목적에 맞춰 사용자 정의 모델을 만들고 관리합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a href=\"https://rndpolicy.org/aidev/docs/openwewebui-%ec%a7%80%ec%8b%9d/\" data-type=\"docs\" data-id=\"522\">🧠 지식</a>&nbsp;- 검색 증강 생성을 위한 지식 기반 관리</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a href=\"https://rndpolicy.org/aidev/docs/%ed%94%84%eb%a1%ac%ed%94%84%ed%8a%b8/\" data-type=\"docs\" data-id=\"519\">📚 프롬프트</a>&nbsp;- 재사용 가능한 프롬프트를 만들고 구성하세요</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>Workspace의 각 섹션은 Open WebUI 환경을 세부적으로 제어할 수 있도록 설계되어 AI 상호작용을 사용자 정의하고 최적화할 수 있습니다.</p>\n<!-- /wp:paragraph -->','Open WebUI의 Workspace','','publish','open','closed','','open-webui%ec%9d%98-workspace','','','2025-10-24 10:42:45','2025-10-24 01:42:45','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=530',0,'docs','',0),
(531,1,'2025-10-24 10:41:00','2025-10-24 01:41:00','<!-- wp:paragraph -->\n<p>Open WebUI의 Workspace는 AI 상호작용 및 구성을 관리하기 위한 포괄적인 환경을 제공합니다. Workspace는 다음과 같은 몇 가지 주요 구성 요소로 구성됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"resources\">자원</h2>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a class=\"\" href=\"https://docs.openwebui.com/features/workspace/models\">🤖 모델</a> - 특정 목적에 맞춰 사용자 정의 모델을 만들고 관리합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a href=\"https://rndpolicy.org/aidev/docs/openwewebui-%ec%a7%80%ec%8b%9d/\" data-type=\"docs\" data-id=\"522\">🧠 지식</a> - 검색 증강 생성을 위한 지식 기반 관리</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a href=\"https://rndpolicy.org/aidev/docs/%ed%94%84%eb%a1%ac%ed%94%84%ed%8a%b8/\" data-type=\"docs\" data-id=\"519\">📚 프롬프트</a> - 재사용 가능한 프롬프트를 만들고 구성하세요</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>Workspace의 각 섹션은 Open WebUI 환경을 세부적으로 제어할 수 있도록 설계되어 AI 상호작용을 사용자 정의하고 최적화할 수 있습니다.</p>\n<!-- /wp:paragraph -->','Open WebUI의 Workspace','','inherit','closed','closed','','530-revision-v1','','','2025-10-24 10:41:00','2025-10-24 01:41:00','',530,'https://rndpolicy.org/aidev/?p=531',0,'revision','',0),
(532,1,'2025-10-24 10:42:14','2025-10-24 01:42:14','<!-- wp:paragraph -->\n<p><code>Models</code>Open WebUI 내의 섹션은&nbsp;특정&nbsp;<code>Workspace</code>목적에 맞는 사용자 정의 모델을 생성하고 관리할 수 있는 강력한 도구입니다. 이 섹션은 모든 모델 파일의 중앙 허브 역할을 하며, 모델 편집, 복제, 공유, 내보내기 및 숨기기 등 다양한 기능을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"modelfile-management\">모델 파일 관리</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>해당 섹션에서는&nbsp;<code>Models</code>모델 파일에 대해 다음 작업을 수행할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>편집</strong> : 모델 파일의 세부 사항을 파고들어 캐릭터 등을 변경합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>복제</strong><code>-clone</code> : 복제된 모델 파일에 추가될 모델 파일의 사본을 생성합니다 <code>Model ID</code>. 기본 모델은 복제할 수 없으므로, 복제하기 전에 먼저 모델을 생성해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>공유</strong> : 버튼을 클릭하여 Open WebUI 커뮤니티와 모델 파일을 공유하세요. 이 버튼을 클릭하면 <a class=\"\" href=\"https://openwebui.com/models/create\" target=\"_blank\" rel=\"noreferrer noopener\">https://openwebui.com/models/create</a><code>Share</code> 로 이동합니다 .<a class=\"\" href=\"https://openwebui.com/models/create\" target=\"_blank\" rel=\"noreferrer noopener\"></a></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>내보내기</strong> : 모델 파일의 <code>.json</code>내보내기 내용을 PC로 다운로드합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>숨기기</strong> : 채팅 내의 모델 선택기 드롭다운에서 모델 파일을 숨깁니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"modelfile-editing\">모델 파일 편집</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>모델 파일을 편집할 때 다음 설정을 사용자 정의할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>아바타 사진</strong> : 모델 파일을 나타내는 아바타 사진을 업로드하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 이름</strong> : 모델 파일의 이름을 변경합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 프롬프트</strong> : 모델 파일에 대한 선택적 시스템 프롬프트를 제공합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 매개변수</strong> : 모델 파일의 매개변수를 조정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 제안</strong> : 새로운 채팅 페이지에 표시될 프롬프트를 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>문서</strong> : 모델 파일에 문서를 추가합니다(항상 RAG[검색 증강 생성]).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>도구, 필터 및 작업</strong> : 모델 파일에서 사용할 수 있는 도구, 필터 및 작업을 선택합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>비전</strong> : <code>Vision</code>다중 모달을 활성화하려면 토글합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>태그</strong> : 모델 선택기 드롭다운에서 모델 이름 옆에 표시될 태그를 모델 파일에 추가합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"model-discovery-and-importexport\">모델 검색 및 가져오기/내보내기</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이&nbsp;<code>Models</code>섹션에는 모델을 가져오고 내보내는 기능도 포함되어 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>모델 가져오기</strong> : 이 버튼을 사용하면 .json 파일이나 다른 소스에서 모델을 가져올 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 내보내기</strong> : 이 버튼을 사용하면 모든 모델 파일을 단일 .json 파일로 내보낼 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>모델을 다운로드하려면 \'연결\' 탭의&nbsp;<strong>\'Ollama 설정\'</strong>&nbsp;으로 이동하세요 . 또는 모델 선택 드롭다운에서 명령어를 입력하여 모델을 직접 다운로드할 수도 있습니다&nbsp;<code>ollama run hf.co/[model creator]/[model name]</code>. 이렇게 하면 다운로드를 위한 \"[모델 이름] 가져오기\" 버튼이 생성됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"model-switching\">모델 전환</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>예</strong>&nbsp;: 다단계 작업에서&nbsp;<strong>Mistral</strong>&nbsp;,&nbsp;<strong>LLaVA</strong>&nbsp;및&nbsp;<strong>GPT-3.5</strong>&nbsp;간 전환</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>시나리오</strong> : 다단계 대화에는 간단한 FAQ로 시작하여 이미지를 해석한 다음 창의적인 응답을 생성하는 등 다양한 작업 유형이 포함됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>전환 이유</strong> : 사용자는 각 단계에서 각 모델의 특정 강점을 활용할 수 있습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>일반적인 질문에 대한 미스트랄은</strong> 계산 시간과 비용을 줄이기 위해 사용됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>LLaVA는</strong> 이미지 기반 데이터에서 통찰력을 얻기 위한 시각적 작업을 수행합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>더욱 정교하고 섬세한 언어 출력을 위한 <strong>GPT-3.5 .</strong></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프로세스</strong> : 사용자는 작업 유형에 따라 모델을 전환하여 효율성과 응답 품질을 극대화합니다.<strong>방법</strong> :<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>모델 선택</strong> : 채팅 인터페이스의 모델 전환 드롭다운에서 원하는 모델을 선택하세요. 최대 두 개의 모델을 동시에 선택할 수 있으며, 두 모델 모두에 대한 응답이 생성됩니다. 이후 앞뒤 화살표를 사용하여 모델 간을 이동할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>컨텍스트 보존</strong> : Open WebUI는 모델 전환 시 대화 컨텍스트를 유지하여 원활한 전환을 가능하게 합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->','OpenWebUI- Models','','publish','open','closed','','openwebui-models','','','2025-10-24 10:42:15','2025-10-24 01:42:15','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=532',0,'docs','',0),
(533,1,'2025-10-24 10:42:14','2025-10-24 01:42:14','<!-- wp:paragraph -->\n<p><code>Models</code>Open WebUI 내의 섹션은&nbsp;특정&nbsp;<code>Workspace</code>목적에 맞는 사용자 정의 모델을 생성하고 관리할 수 있는 강력한 도구입니다. 이 섹션은 모든 모델 파일의 중앙 허브 역할을 하며, 모델 편집, 복제, 공유, 내보내기 및 숨기기 등 다양한 기능을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"modelfile-management\">모델 파일 관리</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>해당 섹션에서는&nbsp;<code>Models</code>모델 파일에 대해 다음 작업을 수행할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>편집</strong> : 모델 파일의 세부 사항을 파고들어 캐릭터 등을 변경합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>복제</strong><code>-clone</code> : 복제된 모델 파일에 추가될 모델 파일의 사본을 생성합니다 <code>Model ID</code>. 기본 모델은 복제할 수 없으므로, 복제하기 전에 먼저 모델을 생성해야 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>공유</strong> : 버튼을 클릭하여 Open WebUI 커뮤니티와 모델 파일을 공유하세요. 이 버튼을 클릭하면 <a class=\"\" href=\"https://openwebui.com/models/create\" target=\"_blank\" rel=\"noreferrer noopener\">https://openwebui.com/models/create</a><code>Share</code> 로 이동합니다 .<a class=\"\" href=\"https://openwebui.com/models/create\" target=\"_blank\" rel=\"noreferrer noopener\"></a></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>내보내기</strong> : 모델 파일의 <code>.json</code>내보내기 내용을 PC로 다운로드합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>숨기기</strong> : 채팅 내의 모델 선택기 드롭다운에서 모델 파일을 숨깁니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"modelfile-editing\">모델 파일 편집</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>모델 파일을 편집할 때 다음 설정을 사용자 정의할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>아바타 사진</strong> : 모델 파일을 나타내는 아바타 사진을 업로드하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 이름</strong> : 모델 파일의 이름을 변경합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>시스템 프롬프트</strong> : 모델 파일에 대한 선택적 시스템 프롬프트를 제공합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 매개변수</strong> : 모델 파일의 매개변수를 조정합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프롬프트 제안</strong> : 새로운 채팅 페이지에 표시될 프롬프트를 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>문서</strong> : 모델 파일에 문서를 추가합니다(항상 RAG[검색 증강 생성]).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>도구, 필터 및 작업</strong> : 모델 파일에서 사용할 수 있는 도구, 필터 및 작업을 선택합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>비전</strong> : <code>Vision</code>다중 모달을 활성화하려면 토글합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>태그</strong> : 모델 선택기 드롭다운에서 모델 이름 옆에 표시될 태그를 모델 파일에 추가합니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"model-discovery-and-importexport\">모델 검색 및 가져오기/내보내기</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>이&nbsp;<code>Models</code>섹션에는 모델을 가져오고 내보내는 기능도 포함되어 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>모델 가져오기</strong> : 이 버튼을 사용하면 .json 파일이나 다른 소스에서 모델을 가져올 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>모델 내보내기</strong> : 이 버튼을 사용하면 모든 모델 파일을 단일 .json 파일로 내보낼 수 있습니다.</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>모델을 다운로드하려면 \'연결\' 탭의&nbsp;<strong>\'Ollama 설정\'</strong>&nbsp;으로 이동하세요 . 또는 모델 선택 드롭다운에서 명령어를 입력하여 모델을 직접 다운로드할 수도 있습니다&nbsp;<code>ollama run hf.co/[model creator]/[model name]</code>. 이렇게 하면 다운로드를 위한 \"[모델 이름] 가져오기\" 버튼이 생성됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"model-switching\">모델 전환</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>예</strong>&nbsp;: 다단계 작업에서&nbsp;<strong>Mistral</strong>&nbsp;,&nbsp;<strong>LLaVA</strong>&nbsp;및&nbsp;<strong>GPT-3.5</strong>&nbsp;간 전환</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>시나리오</strong> : 다단계 대화에는 간단한 FAQ로 시작하여 이미지를 해석한 다음 창의적인 응답을 생성하는 등 다양한 작업 유형이 포함됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>전환 이유</strong> : 사용자는 각 단계에서 각 모델의 특정 강점을 활용할 수 있습니다.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>일반적인 질문에 대한 미스트랄은</strong> 계산 시간과 비용을 줄이기 위해 사용됩니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>LLaVA는</strong> 이미지 기반 데이터에서 통찰력을 얻기 위한 시각적 작업을 수행합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>더욱 정교하고 섬세한 언어 출력을 위한 <strong>GPT-3.5 .</strong></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list --></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>프로세스</strong> : 사용자는 작업 유형에 따라 모델을 전환하여 효율성과 응답 품질을 극대화합니다.<strong>방법</strong> :<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>모델 선택</strong> : 채팅 인터페이스의 모델 전환 드롭다운에서 원하는 모델을 선택하세요. 최대 두 개의 모델을 동시에 선택할 수 있으며, 두 모델 모두에 대한 응답이 생성됩니다. 이후 앞뒤 화살표를 사용하여 모델 간을 이동할 수 있습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>컨텍스트 보존</strong> : Open WebUI는 모델 전환 시 대화 컨텍스트를 유지하여 원활한 전환을 가능하게 합니다.</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list --></li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->','OpenWebUI- Models','','inherit','closed','closed','','532-revision-v1','','','2025-10-24 10:42:14','2025-10-24 01:42:14','',532,'https://rndpolicy.org/aidev/?p=533',0,'revision','',0),
(534,1,'2025-10-24 10:42:44','2025-10-24 01:42:44','<!-- wp:paragraph -->\n<p>Open WebUI의 Workspace는 AI 상호작용 및 구성을 관리하기 위한 포괄적인 환경을 제공합니다. Workspace는 다음과 같은 몇 가지 주요 구성 요소로 구성됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"resources\">자원</h2>\n<!-- /wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"https://rndpolicy.org/aidev/docs/openwebui-models/\" data-type=\"docs\" data-id=\"532\">🤖 모델</a> - 특정 목적에 맞춰 사용자 정의 모델을 만들고 관리합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a href=\"https://rndpolicy.org/aidev/docs/openwewebui-%ec%a7%80%ec%8b%9d/\" data-type=\"docs\" data-id=\"522\">🧠 지식</a>&nbsp;- 검색 증강 생성을 위한 지식 기반 관리</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><a href=\"https://rndpolicy.org/aidev/docs/%ed%94%84%eb%a1%ac%ed%94%84%ed%8a%b8/\" data-type=\"docs\" data-id=\"519\">📚 프롬프트</a>&nbsp;- 재사용 가능한 프롬프트를 만들고 구성하세요</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>Workspace의 각 섹션은 Open WebUI 환경을 세부적으로 제어할 수 있도록 설계되어 AI 상호작용을 사용자 정의하고 최적화할 수 있습니다.</p>\n<!-- /wp:paragraph -->','Open WebUI의 Workspace','','inherit','closed','closed','','530-revision-v1','','','2025-10-24 10:42:44','2025-10-24 01:42:44','',530,'https://rndpolicy.org/aidev/?p=534',0,'revision','',0),
(535,1,'2025-10-24 10:49:49','2025-10-24 01:49:49','<!-- wp:details -->\n<details class=\"wp-block-details\"><summary>Ollama 세팅 유의 사항</summary><!-- wp:paragraph -->\n<p>주의</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>Ollama를</strong>&nbsp;사용하는 경우&nbsp;기본적으로&nbsp;<strong>2048 토큰 컨텍스트 길이로 설정됩니다</strong>&nbsp;. 이는 특히 웹 검색의 경우&nbsp;<strong>검색 증강 생성(RAG) 성능을</strong>&nbsp;심각하게 제한하는데 , 검색된 데이터가&nbsp;<strong>전혀 사용되지 않거나</strong>&nbsp;일부만 처리될 수 있기 때문입니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>웹 검색에 중요한 이유:</strong>&nbsp;웹 페이지에는 일반적으로 콘텐츠 추출 후에도 메인 콘텐츠, 내비게이션 요소, 헤더, 푸터, 메타데이터를 포함하여 4,000~8,000개 이상의 토큰이 포함되어 있습니다. 사용 가능한 토큰이 2,048개에 불과하면 페이지 콘텐츠의 절반에도 미치지 못하고, 가장 관련성 높은 정보가 누락되는 경우가 많습니다. 심지어 4,096개의 토큰조차도 포괄적인 웹 콘텐츠 분석에는 부족한 경우가 많습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>이 문제를 해결하려면&nbsp;</strong><strong>관리자 패널 &gt; 모델 &gt; 설정</strong>&nbsp;(Ollama 모델) &gt;&nbsp;<strong>고급 매개변수</strong>&nbsp;로 이동하여&nbsp;<strong>컨텍스트 길이를 8,192개 이상(또는 16,000개 이상) 토큰으로 늘리세요</strong>&nbsp;.&nbsp;이 설정은 특히 Ollama 모델에 적용됩니다. OpenAI 및 기타 통합 모델의 경우, 충분한 기본 컨텍스트 길이를 가진 모델(예: 128,000 토큰이 있는 GPT-4 Turbo)을 사용하고 있는지 확인하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>검색 증강 생성(RAG)은 다양한 소스의 맥락을 통합하여 챗봇의 대화 기능을 향상시키는 최첨단 기술입니다. 로컬 및 원격 문서, 웹 콘텐츠, 심지어 YouTube 동영상과 같은 멀티미디어 소스까지 다양한 소스에서 관련 정보를 검색합니다. 검색된 텍스트는 미리 정의된 RAG 템플릿과 결합되어 사용자 프롬프트 앞에 접두사로 추가되어 더욱 정보에 기반하고 맥락적으로 관련성 있는 응답을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>RAG의 주요 장점 중 하나는 다양한 출처의 정보에 접근하고 통합할 수 있다는 점입니다. 이는 복잡한 대화 상황에 이상적인 솔루션입니다. 예를 들어, 사용자가 특정 문서나 웹 페이지와 관련된 질문을 하면 RAG는 해당 출처에서 관련 정보를 검색하여 채팅 답변에 반영할 수 있습니다. 또한, YouTube 동영상과 같은 멀티미디어 출처에서도 정보를 검색하여 반영할 수 있습니다. RAG는 이러한 동영상의 대본이나 자막을 분석하여 관련 정보를 추출하여 채팅 답변에 반영할 수 있습니다.</p>\n<!-- /wp:paragraph --></details>\n<!-- /wp:details -->\n\n<!-- wp:paragraph -->\n<p></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"local-and-remote-rag-integration\">로컬 및 원격 RAG 통합</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>로컬 문서는 먼저 작업 공간 영역의 문서 섹션을 통해 업로드해야 하며,&nbsp;<code>#</code>쿼리 앞의 기호를 사용하여 액세스할 수 있습니다. 채팅 상자 위에 나타나는 형식화된 URL을 클릭하세요. 선택하면 위에 문서 아이콘이 나타나&nbsp;<code>Send a message</code>검색이 성공적으로 완료되었음을 나타냅니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>프롬프트를 시작하고 URL을 입력하여 해당 문서를 작업 영역으로 불러올 수도 있습니다&nbsp;<code>#</code>. 이렇게 하면 웹 콘텐츠를 대화에 바로 적용할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"web-search-for-rag\">RAG 웹 검색</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>웹 콘텐츠 통합을 위해 채팅에서 을(를) 사용하여 쿼리를 시작한&nbsp;<code>#</code>후 대상 URL을 입력합니다. 채팅 상자 위에 나타나는 상자에서 형식이 지정된 URL을 클릭합니다. 선택하면 위에 문서 아이콘이 나타나&nbsp;<code>Send a message</code>검색이 성공적으로 완료되었음을 나타냅니다. Open WebUI는 가능한 경우 URL에서 정보를 가져와서 구문 분석합니다.팁</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>웹 페이지에는 탐색 기능이나 푸터와 같은 불필요한 정보가 포함되는 경우가 많습니다. 더 나은 결과를 얻으려면 페이지의 원본 버전이나 읽기 쉬운 버전으로 링크를 추가하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"rag-template-customization\">RAG 템플릿 사용자 정의</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><code>Admin Panel</code>&gt;&nbsp;<code>Settings</code>&gt; 메뉴&nbsp;에서 RAG 템플릿을 사용자 정의합니다&nbsp;<code>Documents</code>.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"rag-embedding-support\">RAG 임베딩 지원</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><code>Admin Panel</code>&gt;&nbsp;<code>Settings</code>&gt; 메뉴&nbsp;에서 RAG 임베딩 모델을 직접 변경하세요&nbsp;<code>Documents</code>. 이 기능은 Ollama 및 OpenAI 모델을 지원하여 요구 사항에 맞게 문서 처리를 개선할 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"citations-in-rag-feature\">RAG Feature의 인용</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>RAG 기능을 사용하면 LLM에 제출된 문서의 맥락을 쉽게 추적할 수 있으며, 참조 지점에 대한 인용 정보도 함께 제공됩니다. 이를 통해 채팅 내 외부 출처 사용에 대한 투명성과 책임성이 보장됩니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"enhanced-rag-pipeline\">향상된 RAG 파이프라인</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>RAG 임베딩 기능의 토글 가능한 하이브리드 검색 하위 기능은 를 통해 RAG 기능을 향상시키고&nbsp;<code>BM25</code>, 를 통해 재순위를 지정하며&nbsp;<code>CrossEncoder</code>, 관련성 점수 임계값을 설정할 수 있습니다. 이를 통해 특정 사용 사례에 맞춰 더욱 정확하고 맞춤화된 RAG 환경을 제공합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"youtube-rag-pipeline\">YouTube RAG 파이프라인</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>비디오 URL을 통해 YouTube 비디오를 요약하는 전용 RAG 파이프라인을 통해 비디오 대본과 직접 원활하게 상호 작용할 수 있습니다. 이 혁신적인 기능을 통해 비디오 콘텐츠를 채팅에 통합하여 대화 경험을 더욱 풍부하게 만들 수 있습니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"document-parsing\">문서 파싱</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>다양한 파서가 로컬 및 원격 문서에서 콘텐츠를 추출합니다. 자세한 내용은 해당&nbsp;<a href=\"https://github.com/open-webui/open-webui/blob/2fa94956f4e500bf5c42263124c758d8613ee05e/backend/apps/rag/main.py#L328\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"><code>get_loader</code></a>함수를 참조하세요.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\" id=\"google-drive-integration\">Google 드라이브 통합</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Google Picker API 및 Google Drive API가 활성화된 Google Cloud 프로젝트와 함께 사용하면 이 기능을 통해 사용자는 채팅 인터페이스에서 Drive 파일에 직접 액세스하고 문서, 슬라이드, 시트 등을 업로드하여 채팅 컨텍스트로 업로드할 수 있습니다.&nbsp;<code>Admin Panel</code>&gt;&nbsp;<code>Settings</code>&gt;&nbsp;<code>Documents</code>메뉴에서 활성화할 수 있습니다.&nbsp;<a href=\"https://github.com/open-webui/docs/blob/main/docs/getting-started/env-configuration.md\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"\"><code>GOOGLE_DRIVE_API_KEY and GOOGLE_DRIVE_CLIENT_ID</code></a>사용하려면 환경 변수를 설정해야 합니다.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\" id=\"detailed-instructions\">자세한 지침</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>OAuth 2.0 클라이언트를 만들고 권한 있는 JavaScript 원본과 권한 있는 리디렉션 URI를 모두 Open-WebUI 인스턴스에 액세스하는 데 사용하는 URL(포트가 있는 경우 포함)로 구성합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>해당 OAuth 클라이언트와 연결된 클라이언트 ID를 기록해 둡니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>프로젝트에 대해 Google Drive API와 Google Picker API를 모두 활성화했는지 확인하세요.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>또한 앱(프로젝트)을 테스트로 설정하고 Google Drive 이메일을 사용자 목록에 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>해당 API가 제공하는 모든 기능을 포함하도록 권한 범위를 설정하세요. 앱이 테스트 모드에 있기 때문에 Google에서는 앱이 제한된 테스트 사용자의 데이터에 접근하는 것을 허용하기 위해 별도의 검증을 요구하지 않습니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Google Picker API 페이지로 이동하여 자격 증명 만들기 버튼을 클릭합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>API 키를 생성하고 애플리케이션 제한에서 \'웹사이트\'를 선택합니다. 그런 다음 1단계의 \'승인된 JavaScript 원본\' 및 \'승인된 리디렉션 URI\' 설정과 동일하게 Open-WebUI 인스턴스의 URL을 추가합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>API 키에 대한 API 제한을 설정하여 Google Drive API 및 Google Picker API에만 액세스할 수 있도록 합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>GOOGLE_DRIVE_CLIENT_ID</code>2단계에서 설정한 OAuth 클라이언트의 클라이언트 ID에 환경 변수를 설정합니다 .</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>GOOGLE_DRIVE_API_KEY</code>7단계에서 설정한 API 키 값으로 환경 변수를 설정합니다 (2단계의 OAuth 클라이언트 비밀번호가 아님).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Open-WebUI 인스턴스의 URL을 설정합니다 <code>GOOGLE_REDIRECT_URI</code>(포트가 있는 경우 포함).</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>그런 다음 세 가지 환경 변수를 사용하여 Open-WebUI 인스턴스를 다시 시작합니다.</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li><code>Admin Panel</code>그 후, &lt; <code>Settings</code>&lt; <code>Documents</code>&lt; 에서 Google Drive가 활성화되어 있는지 확인하세요.<code>Google Drive</code></li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->','OpenWebUI - 검색 증강 생성(RAG)','','publish','open','closed','','openwebui-%ea%b2%80%ec%83%89-%ec%a6%9d%ea%b0%95-%ec%83%9d%ec%84%b1rag','','','2025-10-24 10:49:51','2025-10-24 01:49:51','',0,'https://rndpolicy.org/aidev/?post_type=docs&#038;p=535',0,'docs','',0),
