이 논문은 AI 안전성 연구에서 기존 통념을 뒤집는 흥미로운 발견을 제시한다. 일반적으로 대규모 언어모델 훈련 시 독성 데이터는 필터링해서 제거하는 것이 상식이었는데, 오히려 적절한 양의 독성 데이터를 포함시키면 후훈련에서 더 효과적으로 독성을 제거할 수 있다는 것이다. 대부분의 LLM 개발에서는 사전훈련 단계에서 독성 콘텐츠를 최대한 필터링한다. C4 데이터셋처럼 웹에서 수집한 텍스트를 정제해서 깨끗한 데이터만 사용하는 것이 일반적이다. 이는 직관적으로 타당해 보인다 독성 데이터로 훈련하면 독성 모델이 나올 것 같으니까. 하지만 Longpre et al. (2023)의 연구에 따르면, 독성 필터링이 오히려 모델의 독성 식별 능력과 전반적인 성능을 떨어뜨린다는 것이 밝혀졌다. 현실 세계의 완전한 표현을 ..
WebRTC: 웹 브라우저 기반 실시간 통신 기술WebRTC의 정의와 개발 배경WebRTC(Web Real-Time Communication)는 웹 애플리케이션과 사이트가 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술이다.WebRTC의 개발은 2010년 구글이 GIPS(Global IP Solutions)라는 스웨덴 회사를 인수하면서 시작되었다. GIPS의 개발자들인 Justin Uberti와 Peter Thatcher가 원래 개발자였으며, 구글은 2011년 이 기술을 WebRTC로 개명한 후 오픈소스로 공개했다.표준화 과정에서는 IETF를 통한 프로토콜 표준화와 W3C를 통한 브라우저 API 정의가 동시에 진행되었다. 201..
1. 정적 링킹 (Static Linking)컴파일 시점에 필요한 라이브러리 코드를 실행 파일에 직접 포함장점: 실행 시 외부 의존성이 없어 안정적단점: 실행 파일 크기가 크고, 메모리 사용량이 많음2. 동적 링킹 (Dynamic Linking)실행 시점에 필요한 라이브러리를 메모리에 로드하여 공유장점:실행 파일 크기가 작음메모리 효율성 (여러 프로그램이 같은 라이브러리 공유)라이브러리 업데이트 시 재컴파일 불필요단점: 필요한 동적 라이브러리가 없으면 실행 불가3. 원격 함수 호출 (RPC)네트워크를 통해 다른 컴퓨터의 함수를 호출필요 요소:RPC 프로토콜 (통신 규약)Stub (로컬 함수 호출처럼 보이게 하는 인터페이스)IDL (Interface Definition Language) - 함수 시그니처 ..
백트래킹은 해를 찾는 도중에 '막히면' 되돌아가서 다시 해를 찾아가는 전략이다. 모든 가능한 경우의 수를 전부 살펴보는 브루트 포스(Brute Force) 방식과 달리, 백트래킹은 현재 상태에서 해가 될 가능성이 없다고 판단되면 더 이상 그 방향으로 탐색하지 않고 이전으로 돌아간다. N-Queens 문제N-Queens 문제는 N×N 체스판에 N개의 퀸을 서로 공격할 수 없도록 배치하는 문제이다. 알고리즘 구현: cvoid queens(index i) { index j; if(promising(i)) if(i==n) cout 유망성 검사: cbool promising(index i) { index k; bool switch; k=1; ..
다익스트라 (Dijkstra's Algorithm)다익스트라 알고리즘은 가중치가 있는 그래프에서 한 정점으로부터 다른 모든 정점까지의 최단 경로를 찾는 그리디 알고리즘이다. 이 알고리즘은 항상 현재 상태에서 가장 비용이 적은 노드를 선택하는 방식으로 동작한다.시작 노드를 설정하고, 시작 노드에서 직접 연결된 모든 노드까지의 거리를 초기화한다.미방문 노드 중에서 현재까지의 최단 거리가 가장 짧은 노드를 선택한다.선택한 노드를 방문 처리하고, 이 노드를 거쳐 갈 수 있는 다른 노드들의 최단 거리를 갱신한다.모든 노드를 방문할 때까지 2-3 과정을 반복한다. 구현 상세:touch[i]: 노드 i로 가는 최단 경로에서 i 직전에 방문하는 노드 번호length[i]: 시작 노드(v₁)에서 노드 i까지의 현재까지 ..
ZeroMQ네트워크 프로토콜은 구현 위치에 따라 커널 계층과 애플리케이션 계층으로 구분할 수 있으며, 각 위치에는 고유한 장단점이 있다. 초기 인터넷 프로토콜은 주로 운영체제 커널 내부에 구현되었으나, 현대 프로토콜은 점차 애플리케이션 계층으로 이동하는 추세를 보인다. 위치별 특성:커널 계층: 데이터 처리 효율성과 메모리 사용 최적화 측면에서 우수하나, 개발과 업데이트가 복잡함애플리케이션 계층: 구현과 확장이 용이하고 유연성이 높으나, 상대적으로 오버헤드가 발생할 수 있음기존 TCP/UDP/IP와 같은 저수준 프로토콜에서는 소켓 API가 커널과 응용 프로그램 사이의 중간 인터페이스 역할을 담당한다. POSIX 호환 시스템에서는 소켓이 파일 디스크립터로 추상화되어, 파일 시스템의 일부로 취급된다. Zero..
Blockchain 용어Blockchain 기술의 핵심 특징 중 하나는 "no firewall, no trust" 원칙이다. 이는 중앙화된 신뢰 기관 없이도 시스템이 안전하게 작동할 수 있음을 의미한다. 또한 모든 데이터는 네트워크의 모든 참여자에게 복제되어(replication of all data) 분산 원장으로서의 투명성과 내구성을 보장한다. Consensus Algorithm분산 시스템에서 참여자들이 공통된 상태에 합의하는 메커니즘이다.BFT(Byzantine Fault Tolerance): 비잔틴 장애에도 시스템이 올바르게 작동할 수 있게 하는 알고리즘PoW(Proof of Work): 계산 작업을 통해 블록 생성 권한을 얻는 방식으로, Bitcoin이 사용PoS(Proof of Stake): ..
Network Socket네트워크 소켓(Network Socket)은 컴퓨터 네트워크에서 노드 내부의 데이터 송수신을 위한 내부 엔드포인트이다. 소켓은 네트워킹 소프트웨어(프로토콜 스택)에서 이 엔드포인트를 표현하는 방식으로, 통신 프로토콜, 목적지, 상태 등을 나열하는 테이블의 항목과 같은 형태로 존재하며, 일종의 시스템 리소스이다. 소켓 프로그래밍은 TCP/IP 네트워크의 통신 기반이 되는 근본적인 기술이다. 소켓은 다른 소켓과 데이터를 주고받기 위한 양방향 통신 엔드포인트를 제공한다. 소켓 연결은 일반적으로 로컬 영역 네트워크(LAN)나 인터넷을 통해 두 개의 서로 다른 컴퓨터 간에 실행되지만, 단일 컴퓨터에서 프로세스 간 통신(IPC)에도 사용될 수 있다. 소켓은 응용 프로그램과 네트워크 프로토콜..
컴퓨터 네트워크는 정보 교환을 위한 복잡한 시스템으로, 그 기본 구성 요소와 작동 원리를 이해하기 위해서는 핵심 용어에 대한 이해가 필수적이다. 네트워크 통신의 기초를 이루는 다섯 가지 핵심 개념은 메시지, 송신자, 수신자, 매체, 프로토콜이다. 메시지(Message)는 통신되어야 할 정보 또는 데이터를 의미한다. 이는 텍스트, 숫자, 그림, 소리, 비디오 또는 이들의 조합 형태로 존재할 수 있다. 디지털 네트워크에서 모든 형태의 정보는 궁극적으로 비트(0과 1)의 시퀀스로 변환되어 전송된다. 현대 네트워크는 다양한 형태의 멀티미디어 메시지를 효율적으로 처리하도록 설계되었다. 송신자(Sender)는 데이터 메시지를 보내는 장치를 말한다. 이는 컴퓨터, 전화 핸드셋, 비디오 카메라 등 다양한 형태의 전..
Transport Layer전송 계층(Transport Layer)은 OSI 모델의 4계층으로, 네트워크의 한 호스트에서 실행 중인 프로세스와 다른 호스트의 프로세스 간 통신을 담당하는 핵심 계층이다. 이 계층은 종단 간 연결성과 신뢰성 있는 데이터 전송의 기반을 제공한다. 데이터 전송의 관점에서 네트워크 계층 구조는 다양한 수준의 전달 서비스를 제공한다. 데이터 링크 계층은 링크를 통해 두 이웃 노드 간의 프레임 전달을 담당하는 '노드 대 노드 전달(node-to-node delivery)'을 제공한다. 네트워크 계층은 두 호스트 간의 데이터그램 전달을 담당하는 '호스트 대 호스트 전달(host-to-host delivery)'을 제공한다. 전송 계층은 한 단계 더 나아가 '프로세스 대 프로세스 전달..