본문 바로가기

분류 전체보기2790

OpenAI ChatGPT 모델 Fine-tuning 진행 과정 OpenAI의 ChatGPT 모델을 Fine-tuning하는 과정은 여러 단계로 이루어집니다. 여기서는 고급 사용자를 위한 OpenAI의 기술 문서와 예제를 기반으로 한 개요를 제공할 것입니다. 이 과정은 데이터 준비부터 실제 Fine-tuning, 그리고 평가까지 포함됩니다.1. 목표 정의 및 데이터 준비목표 설정: Fine-tuning의 목적을 명확히 합니다. 예를 들어, 특정 주제에 대한 대화의 품질을 향상시키거나, 특정 양식의 텍스트를 생성하도록 모델을 맞춤화할 수 있습니다.데이터 수집: Fine-tuning에 사용할 텍스트 데이터를 수집합니다. 이 데이터는 모델이 학습할 예제로, 원하는 출력과 함께 입력 텍스트를 포함해야 합니다.데이터 정제: 수집한 데이터에서 노이즈를 제거하고, 필요한 형식으로.. 2024. 5. 6.
API, Database Credential 및 JWT Token 보호 조치 JWT (JSON Web Tokens)와 PostgreSQL 데이터베이스 크리덴셜 유출은 심각한 보안 문제를 일으킬 수 있습니다. 특히 JWT의 경우, 서명 키(Signing Key)가 유출되면 악의적인 사용자가 유효한 토큰을 생성하여 시스템에 무단으로 액세스할 수 있으므로, 이에 대한 철저한 보호 조치가 필요합니다. 다음은 JWT 서명 키와 PostgreSQL 데이터베이스 크리덴셜의 보안을 강화하기 위한 몇 가지 핵심 조치입니다.JWT 서명 키 보호강력한 키 생성: 서명 키는 충분히 길고 무작위로 생성되어야 합니다. 공격자가 예측하거나 브루트 포스 공격으로 찾아낼 수 없는 수준이어야 합니다.키 관리 시스템 사용: AWS KMS, HashiCorp Vault와 같은 키 관리 시스템을 사용하여 서명 키를 .. 2024. 5. 5.
Nginx Proxy 통한 Apache 서버로 요청 시 클라이언트 IP 전달 Nginx를 리버스 프록시로 사용하여 Apache2 (HTTPD) 서버로 요청을 전달할 때, 기본적으로 Apache2 서버는 요청이 Nginx 서버에서 온 것으로 인식합니다. 즉, Apache2의 접근 로그에는 클라이언트의 실제 IP 대신 Nginx 서버의 IP 주소가 기록됩니다. 클라이언트의 실제 IP 주소를 기반으로 Apache2에서 접근 제어를 하려면, 클라이언트의 원래 IP 주소를 Nginx에서 Apache2로 전달하고, Apache2가 이를 인식하도록 설정해야 합니다.Nginx 설정 변경Nginx 설정 파일에서 Apache2로 요청을 전달할 때 클라이언트의 실제 IP 주소를 포함시켜야 합니다. 이를 위해 proxy_set_header 지시어를 사용하여 X-Forwarded-For 헤더에 클라이언.. 2024. 5. 4.
Regex (정규표현식) vs Text Replace (문자열 치환) 개념과 구문 (?P.*?)와 replace(".*", "\1") 방식의 치환은 텍스트 처리와 정규 표현식(regex)에 있어서 주로 사용되는 두 가지 다른 접근 방식입니다. 이 두 방식을 이해하기 위해서는 먼저 정규 표현식의 기본적인 개념과 구문에 대한 이해가 필요합니다.(?P.*?) 설명구문: (?Ppattern)용도: 이 구문은 정규 표현식에서 그룹화(grouping)와 함께 이름을 부여하는 데 사용됩니다. 여기서 name은 그룹에 부여할 이름이고, pattern은 해당 그룹이 매칭할 패턴입니다.활용: Python의 re 모듈 같은 정규 표현식을 지원하는 언어나 라이브러리에서 사용됩니다. 이름이 부여된 그룹은 매칭된 텍스트를 더 쉽게 참조하고 사용할 수 있게 해 줍니다. 예를 들어, 로그 파일에서 특정 로그 유형.. 2024. 5. 3.
실시간 파이프라인 데이터 수집을 위한 Logstash의 grok 필터 설정 실시간 파이프라인(Real-time Data Pipeline) 기능을 통한 데이터 수집을 위해 로그 메시지를 구문 분석하고 필드를 추출하기 위한 Logstash의 grok 필터 설정 부분에 대해서 아래 예제 코드를 통해서 각 부분별로 정리해보고자 합니다. #Initial log extraction mutate { gsub => ["message", "([\\w]+)Usuario:", "$1 Usuario:"] } grok { match => { "message" => [ "()?%{GREEDYDATA:ts} %{HOSTNAME:.. 2024. 5. 2.