KO
|
EN
gitlite — search
Search
#typescript
#ai-agents
#ai
#dsh-plugin
#deepseek-harness
#open-source
#cli
#claude-code
#codex
#developer-tools
#react
#windows
heretic
★ 27,724
Open GitHub ↗
언어 모델을 위한 완전 자동 검열 해제
Download README (.md)
Explore Similar Repositories
GSAP
:
GSAP (GreenSock Animation Platform), a JavaScript animation library for the modern web
buzz
:
A hive mind communication platform
yapi
:
YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台
timesfm
:
TimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.
// repository documentation
원문보기 (View Original)
// original (English)
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
heretic
?
원문 다운로드 (English .md)
한글 번역본 다운로드 (Korean .md)
 # Heretic: 언어 모델을 위한 완전 자동 검열 해제 도구 [](https://discord.gg/gdXc48gSyT) [](https://matrix.to/#/#heretic:matrix.org) [](https://huggingface.co/heretic-org) [](https://codeberg.org/p-e-w/heretic) [](https://trendshift.io/repositories/20538) Heretic은 비용이 많이 드는 사후 학습 없이 트랜스포머 기반 언어 모델에서 검열(일명 "안전성 정렬")을 제거하는 도구입니다. 이 도구는 "abliteration"으로도 알려진 방향성 제거(directional ablation)의 고급 구현을 ([Arditi 등, 2024](https://arxiv.org/abs/2406.11717), Lai 2025 ([1](https://huggingface.co/blog/grimjim/projected-abliteration), [2](https://huggingface.co/blog/grimjim/norm-preserving-biprojected-abliteration))), [Optuna](https://optuna.org/) 기반의 TPE 파라미터 최적화기와 결합합니다. 이 접근 방식을 통해 Heretic은 \*\*완전히 자동으로\*\* 작동할 수 있습니다. Heretic은 거부 횟수와 원본 모델로부터의 KL 발산(KL divergence)을 동시에 최소화하여 고품질의 abliteration 파라미터를 찾습니다. 이를 통해 원본 모델의 지능을 최대한 유지하는 검열 해제 모델을 얻을 수 있습니다. Heretic을 사용하는 데는 트랜스포머 내부 구조에 대한 이해가 필요하지 않습니다. 실제로 명령줄 프로그램을 실행할 줄 아는 사람이라면 누구나 Heretic을 사용하여 언어 모델의 검열을 해제할 수 있습니다. Heretic은 많은 멀티모달 모델, 여러 가지 MoE 아키텍처, 그리고 Qwen3.5와 같은 일부 하이브리드 모델을 포함하여 대부분의 댄스(dense) 모델을 지원합니다. 순수 상태 공간 모델(state-space model) 및 기타 특정 연구용 아키텍처는 아직 기본적으로 지원되지 않습니다.  기본 설정으로 비지도 실행을 할 때, Heretic은 인간 전문가가 수동으로 생성한 abliteration의 품질에 필적하는 검열 해제 모델을 생성할 수 있습니다. | 모델 | "유해한" 프롬프트에 대한 거부 | "무해한" 프롬프트에 대한 원본 모델과의 KL 발산 | | :--- | ---: | ---: | | [google/gemma-3-12b-it](https://huggingface.co/google/gemma-3-12b-it) (원본) | 97/100 | 0 \*(정의상)\* | | [mlabonne/gemma-3-12b-it-abliterated-v2](https://huggingface.co/mlabonne/gemma-3-12b-it-abliterated-v2) | 3/100 | 1.04 | | [huihui-ai/gemma-3-12b-it-abliterated](https://huggingface.co/huihui-ai/gemma-3-12b-it-abliterated) | 3/100 | 0.45 | | \*\*[p-e-w/gemma-3-12b-it-heretic](https://huggingface.co/p-e-w/gemma-3-12b-it-heretic) (당사 모델)\*\* | \*\*3/100\*\* | \*\*0.16\*\* | 인간의 노력 없이 생성된 Heretic 버전은 다른 abliteration들과 동일한 수준의 거부 억제 효과를 달성하면서도, 훨씬 낮은 KL 발산을 보여 원본 모델의 기능 손상이 적음을 나타냅니다. \*(Heretic의 내장 평가 기능을 사용하여 해당 수치를 재현할 수 있습니다. 예: `heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic`. 정확한 값은 플랫폼 및 하드웨어에 따라 다를 수 있습니다. 위 표는 RTX 5090에서 PyTorch 2.8을 사용하여 작성되었습니다.)\* 물론 수학적 지표와 자동화된 벤치마크가 모든 것을 말해주지는 않으며, 인간의 평가를 완전히 대체할 수는 없습니다. Heretic으로 생성된 모델은 사용자들로부터 좋은 반응을 얻었습니다(링크 및 강조 표시 추가됨): > "처음에는 회의적이었지만, 방금 > [\*\*GPT-OSS 20B Heretic\*\*](https://huggingface.co/p-e-w/gpt-oss-20b-heretic) > 모델을 다운로드했는데 정말 대단하다. 제대로 형식화된 민감한 주제에 대해 긴 답변을 작성할 때, > 검열되지 않은 모델에서 기대할 수 있는 정확하고 검열되지 않은 단어를 사용하며, > 세부 정보 등이 포함된 마크다운 형식의 표를 생성합니다. 지금까지 나온 이 모델의 > abliterated 버전 중 최고인 것 같습니다..." > [\*(댓글 링크)\*](https://old.reddit.com/r/LocalLLaMA/comments/1oymku1/heretic\_fully\_automatic\_censorship\_removal\_for/np6tba6/) > "[\*\*Heretic GPT 20b\*\*](https://huggingface.co/p-e-w/gpt-oss-20b-heretic) > 은(는) 제가 지금까지 써본 것 중 가장 훌륭한 검열 해제 모델인 것 같습니다. 모델의 > 지능을 저하시키지 않으며, 기본 모델에서는 거부되었을 프롬프트에도 정상적으로 > 답변을 제공합니다." > [\*(댓글 링크)\*](https://old.reddit.com/r/LocalLLaMA/comments/1oymku1/heretic\_fully\_automatic\_censorship\_removal\_for/npe9jng/) > "[[\*\*Qwen3-4B-Instruct-2507-heretic\*\*](https://huggingface.co/p-e-w/Qwen3-4B-Instruct-2507-heretic)] > 은(는) 16gb VRAM에서 실행해 본 비양자화 abliterated 모델 중 최고였습니다." > [\*(댓글 링크)\*](https://old.reddit.com/r/LocalLLaMA/comments/1phjxca/im\_calling\_these\_people\_out\_right\_now/nt06tji/) Heretic 모델은 또한 MMLU 및 GSM8K와 같은 표준 메트릭을 사용하여 독립적으로 벤치마크되었으며, 경쟁 관계에 있는 abliteration 도구로 제작된 모델들과 비교해도 손색이 없음을 보여주었습니다: [1](https://old.reddit.com/r/LocalLLaMA/comments/1sojjoc/abliterlitics\_benchmark\_and\_tensor\_analysis/), [2](https://old.reddit.com/r/LocalLLaMA/comments/1sy18lx/abliterlitics\_benchmarks\_and\_tensor\_comparison/). 커뮤니티에서는 Heretic을 사용하여 [5000개가 넘는](https://huggingface.co/models?other=heretic) 모델을 생성하고 공개했습니다. ## 사용법 하드웨어에 맞게 PyTorch 2.2+가 설치된 Python 3.10+ 환경을 준비하세요. 그런 다음 아래 명령을 실행합니다. ```sh pip install -U heretic-llm heretic Qwen/Qwen3-4B-Instruct-2507 ``` `Qwen/Qwen3-4B-Instruct-2507`을 검열을 해제하려는 원하는 모델로 교체하세요. > [!IMPORTANT] > > PyTorch 2.2는 Heretic이 작동하는 데 필요한 최소 버전이지만, > 일부 모델과 설정에서는 최신 버전에만 있는 기능이 필요할 수 있습니다. > 예를 들어, gpt-oss와 같은 MXFP4 양자화 모델을 로드할 때 사용되는 > `torch.accelerator`는 PyTorch 2.6에 추가되었습니다. > [!TIP] > > Heretic은 의존성 관리를 위해 [uv](https://docs.astral.sh/uv/)를 사용하며, > 저장소에는 모든 패키지 버전을 고정하는 `uv.lock` 파일이 포함되어 있습니다. > 이미 uv를 사용 중이시라면 (그렇게 하는 것을 권장합니다!), 저장소를 복제한 후 > `uv run heretic`으로 Heretic을 실행하기만 하면 개발자가 사용한 것과 동일한 > 의존성이 보장되어 신뢰성과 보안이 향상됩니다. 이 과정은 완전 자동화되어 있으며 별도의 설정이 필요하지 않습니다. 다만, Heretic에는 더 세밀한 제어를 위해 변경할 수 있는 다양한 설정 매개변수가 있습니다. 사용 가능한 명령줄 옵션을 보려면 `heretic --help`를 실행하거나, 설정 파일을 사용하고 싶다면 [`config.default.toml`](config.default.toml)을 확인하세요. 프로그램이 시작될 때 Heretic은 시스템을 벤치마크하여 사용 가능한 하드웨어를 최대한 활용할 수 있는 최적의 배치 크기를 결정합니다. RTX 3090에서 기본 설정으로 [Qwen3-4B-Instruct-2507](https://huggingface.co/Qwen/Qwen3-4B-Instruct-2507) 검열을 해제하는 데는 약 20~30분이 소요됩니다. Heretic은 bitsandbytes를 통한 모델 양자화를 지원하므로, 모델 처리에 필요한 VRAM 양을 대폭 줄일 수 있습니다. 양자화를 활성화하려면 `quantization` 옵션을 `bnb\_4bit`로 설정하세요. Heretic이 모델 검열 해제를 완료한 후에는 모델을 저장하거나, Hugging Face에 업로드하거나, 대화를 통해 성능을 테스트하거나, 표준 벤치마크를 실행하는 등의 작업을 개별적으로 또는 조합하여 수행할 수 있습니다. ## 연구 기능 모델 검열 제거라는 본연의 기능 외에도, Heretic은 모델 내부의 시맨틱스(해석 가능성) 연구를 지원하도록 설계된 기능도 제공합니다. 이러한 기능을 사용하려면 선택적 `research` 추가 패키지와 함께 Heretic을 설치해야 합니다. ```sh pip install -U 'heretic-llm[research]' ``` 이를 통해 다음과 같은 기능을 사용할 수 있습니다: ### `--plot-residuals`를 전달하여 잔차 벡터(residual vector)의 플롯 생성하기 이 플래그와 함께 실행하면 Heretic은 다음 작업을 수행합니다: 1. "유해함(harmful)" 및 "무해함(harmless)" 프롬프트 각각에 대해, 모든 트랜스포머 레이어의 첫 번째 출력 토큰에 대한 잔차 벡터(숨겨진 상태, hidden states)를 계산합니다. 2. 잔차 공간에서 2차원 공간으로의 [PaCMAP 투영(projection)](https://github.com/YingfanWang/PaCMAP)을 수행합니다. 3. 연속된 레이어 간의 투영이 더 유사해 보이도록, "유해함"/"무해함" 잔차의 투영들을 기하학적 중앙값(geometric median)을 기준으로 좌우 정렬합니다. 추가로, 각 새 레이어는 이전 레이어의 투영으로 PaCMAP이 초기화되어 급격한 변화를 최소화합니다. 4. 투영을 산점도(scatter-plot)로 그리고, 각 레이어마다 하나의 PNG 이미지를 생성합니다. 5. 레이어 간 잔차가 어떻게 변환되는지 보여주는 애니메이션을 GIF 파일로 생성합니다.  생성된 플롯의 다양한 측면을 제어할 수 있는 옵션은 [설정 파일(config.default.toml)](config.default.toml)을 참고하세요. PaCMAP은 CPU에서 수행되는 연산 집약적인 작업이므로 주의하세요. 더 큰 모델의 경우, 모든 레이어의 투영을 계산하는 데 1시간 이상 소요될 수 있습니다. ### `--print-residual-geometry`를 전달하여 잔차 기하학에 대한 세부 정보 출력하기 "유해함" 및 "무해함" 프롬프트의 잔차 벡터가 서로 어떻게 연관되어 있는지 정량적 분석에 관심이 있다면, 이 플래그를 통해 이를 이해하는 데 도움이 되는 지표들이 가득 담긴 다음 표를 얻을 수 있습니다 (이 경우 [gemma-3-270m-it](https://huggingface.co/google/gemma-3-270m-it) 기준): ``` ┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┓ ┃ Layer ┃ S(g,b) ┃ S(g\*,b\*) ┃ S(g,r) ┃ S(g\*,r\*) ┃ S(b,r) ┃ S(b\*,r\*) ┃ |g| ┃ |g\*| ┃ |b| ┃ |b\*| ┃ |r| ┃ |r\*| ┃ Silh ┃ ┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━┩ │ 1 │ 1.0000 │ 1.0000 │ -0.4311 │ -0.4906 │ -0.4254 │ -0.4847 │ 170.29 │ 170.49 │ 169.78 │ 169.85 │ 1.19 │ 1.31 │ 0.0480 │ │ 2 │ 1.0000 │ 1.0000 │ 0.4297 │ 0.4465 │ 0.4365 │ 0.4524 │ 768.55 │ 768.77 │ 771.32 │ 771.36 │ 6.39 │ 5.76 │ 0.0745 │ │ 3 │ 0.9999 │ 1.0000 │ -0.5699 │ -0.5577 │ -0.5614 │ -0.5498 │ 1020.98 │ 1021.13 │ 1013.80 │ 1014.71 │ 12.70 │ 11.60 │ 0.0920 │ │ 4 │ 0.9999 │ 1.0000 │ 0.6582 │ 0.6553 │ 0.6659 │ 0.6627 │ 1356.39 │ 1356.20 │ 1368.71 │ 1367.95 │ 18.62 │ 17.84 │ 0.0957 │ │ 5 │ 0.9987 │ 0.9990 │ -0.6880 │ -0.6761 │ -0.6497 │ -0.6418 │ 766.54 │ 762.25 │ 731.75 │ 732.42 │ 51.97 │ 45.24 │ 0.1018 │ │ 6 │ 0.9998 │ 0.9998 │ -0.1983 │ -0.2312 │ -0.1811 │ -0.2141 │ 2417.35 │ 2421.08 │ 2409.18 │ 2411.40 │ 43.06 │ 43.47 │ 0.0900 │ │ 7 │ 0.9998 │ 0.9997 │ -0.5258 │ -0.5746 │ -0.5072 │ -0.5560 │ 3444.92 │ 3474.99 │ 3400.01 │ 3421.63 │ 86.94 │ 94.38 │ 0.0492 │ │ 8 │ 0.9990 │ 0.9991 │ 0.8235 │ 0.8312 │ 0.8479 │ 0.8542 │ 4596.54 │ 4615.62 │ 4918.32 │ 4934.20 │ 384.87 │ 377.87 │ 0.2278 │ │ 9 │ 0.9992 │ 0.9992 │ 0.5335 │ 0.5441 │ 0.5678 │ 0.5780 │ 5322.30 │ 5316.96 │ 5468.65 │ 5466.98 │ 265.68 │ 267.28 │ 0.1318 │ │ 10 │ 0.9974 │ 0.9973 │ 0.8189 │ 0.8250 │ 0.8579 │ 0.8644 │ 5328.81 │ 5325.63 │ 5953.35 │ 5985.15 │ 743.95 │ 779.74 │ 0.2863 │ │ 11 │ 0.9977 │ 0.9978 │ 0.4262 │ 0.4045 │ 0.4862 │ 0.4645 │ 9644.02 │ 9674.06 │ 9983.47 │ 9990.28 │ 743.28 │ 726.99 │ 0.1576 │ │ 12 │ 0.9904 │ 0.9907 │ 0.4384 │ 0.4077 │ 0.5586 │ 0.5283 │ 10257.40 │ 10368.50 │ 11114.51 │ 11151.21 │ 1711.18 │ 1664.69 │ 0.1890 │ │ 13 │ 0.9867 │ 0.9874 │ 0.4007 │ 0.3680 │ 0.5444 │ 0.5103 │ 12305.12 │ 12423.75 │ 13440.31 │ 13432.47 │ 2386.43 │ 2282.47 │ 0.1293 │ │ 14 │ 0.9921 │ 0.9922 │ 0.3198 │ 0.2682 │ 0.4364 │ 0.3859 │ 16929.16 │ 17080.37 │ 17826.97 │ 17836.03 │ 2365.23 │ 2301.87 │ 0.1282 │ │ 15 │ 0.9846 │ 0.9850 │ 0.1198 │ 0.0963 │ 0.2913 │ 0.2663 │ 16858.58 │ 16949.44 │ 1 7496.00 │ 17502.88 │ 3077.08 │ 3029.60 │ 0.1611 │ │ 16 │ 0.9686 │ 0.9689 │ -0.0029 │ -0.0254 │ 0.2457 │ 0.2226 │ 18912.77 │ 19074.86 │ 19510.56 │ 19559.62 │ 4848.35 │ 4839.75 │ 0.1516 │ │ 17 │ 0.9782 │ 0.9784 │ -0.0174 │ -0.0381 │ 0.1908 │ 0.1694 │ 27098.09 │ 27273.00 │ 27601.12 │ 27653.12 │ 5738.19 │ 5724.21 │ 0.1641 │ │ 18 │ 0.9184 │ 0.9196 │ 0.1343 │ 0.1430 │ 0.5155 │ 0.5204 │ 190.16 │ 190.35 │ 219.91 │ 220.62 │ 87.82 │ 87.59 │ 0.1855 │ └───────┴────────┴──────────┴─────────┴──────────┴─────────┴──────────┴──────────┴──────────┴──────────┴──────────┴─────────┴─────────┴────────┘ g = 우수한 프롬프트에 대한 잔차 벡터의 평균 g\* = 우수한 프롬프트에 대한 잔차 벡터의 기하학적 중앙값 b = 유해한 프롬프트에 대한 잔차 벡터의 평균 b\* = 유해한 프롬프트에 대한 잔차 벡터의 기하학적 중앙값 r = 평균에 대한 잔차 방향 (즉, b - g) r\* = 기하학적 중앙값에 대한 잔차 방향 (즉, b\* - g\*) S(x,y) = x와 y의 코사인 유사도 |x| = x의 L2 노름 Silh = 우수/유해 클러스터에 대한 잔차의 평균 실루엣 계수 ``` ## Heretic의 작동 방식 Heretic은 방향성 소거법(directional ablation)의 매개변수화된 변형을 구현합니다. 지원되는 각 트랜스포머 구성요소(현재 어텐션 아웃 프로젝션 및 MLP 다운 프로젝션)에 대해, 각 트랜스포머 레이어에서 연관된 행렬을 식별하고 관련 "잔차 방향"에 대해 직교화하여, 해당 행렬과의 곱셈 결과에서 해당 방향의 표현을 억제합니다. 잔차 방향은 "유해한" 예시 프롬프트와 "무해한" 예시 프롬프트의 첫 번째 토큰 잔차 간의 평균 차이(difference-of-means)로 각 레이어마다 계산됩니다. 소거 프로세스는 여러 최적화 가능한 매개변수에 의해 제어됩니다: \* `direction\_index`: 잔차 방향의 인덱스이거나, 각 레이어가 해당 레이어와 연관된 잔차 방향을 사용하여 소거되어야 함을 나타내는 특수 값인 `per layer`입니다. \* `max\_weight`, `max\_weight\_position`, `min\_weight`, 및 `min\_weight\_distance`: 각 구성요소에 대해, 이 매개변수들은 레이어 전반에 걸친 소거 가중치 커널의 형상과 위치를 설명합니다. 다음 다이어그램은 이를 보여줍니다:  기존의 앱리테이션(abliteration) 시스템과 비교했을 때 Heretic의 주요 혁신은 다음과 같습니다: \* 소거 가중치 커널의 형태가 매우 유연하며, 이를 자동 매개변수 최적화와 결합하여 준수도/품질 트레이드오프를 개선할 수 있습니다. 상수 형태가 아닌 소거 가중치는 이전에 Maxime Labonne에 의해 [gemma-3-12b-it-abliterated-v2](https://huggingface.co/mlabonne/gemma-3-12b-it-abliterated-v2)에서 탐구된 적이 있습니다. \* 잔차 방향 인덱스가 정수가 아니라 부동소수점(float)입니다. 정수가 아닌 값의 경우, 가장 가까운 두 개의 잔차 방향 벡터가 선형 보간됩니다. 이는 평균 차이 계산으로 식별된 것들을 넘어선 방대한 추가 방향의 공간을 열어주며, 종종 최적화 프로세스가 개별 레이어에 속한 것보다 더 나은 방향을 찾을 수 있도록 합니다. \* 소거 매개변수가 각 구성요소별로 개별 선택됩니다. MLP 개입이 어텐션 개입보다 모델에 더 손상을 주는 경향이 있다는 것을 발견했으므로, 서로 다른 소거 가중치를 사용하면 추가적인 성능을 짜낼 수 있습니다. ## 사전 연구 (Prior art) 저는 다음과 같이 공개적으로 이용 가능한 앱리테이션 기술 구현들을 알고 있습니다: \* [AutoAbliteration](https://huggingface.co/posts/mlabonne/714992455492422) \* [abliterator.py](https://github.com/FailSpy/abliterator) \* [wassname's Abliterator](https://github.com/wassname/abliterator) \* [ErisForge](https://github.com/Tsadoq/ErisForge) \* [Removing refusals with HF Transformers](https://github.com/Sumandora/remove-refusals-with-transformers) \* [deccp](https://github.com/AUGMXNT/deccp) Heretic은 처음부터 새로 작성되었으며, 이러한 프로젝트들의 코드를 재사용하지 않았음을 유의하시기 바랍니다. ## 감사의 말 Heretic의 개발은 다음의 영향을 받았습니다: \* [오리지널 앱리테이션 논문 (Arditi et al.) 2024)](https://arxiv.org/abs/2406.11717) \* [Maxime Labonne의 abliteration 관련 아티클](https://huggingface.co/blog/mlabonne/abliteration), 및 저자가 abliteration을 수행한 모델들의 모델 카드에 담긴 일부 세부 정보(위 참조) \* Jim Lai의 ["projected abliteration"](https://huggingface.co/blog/grimjim/projected-abliteration) 및 ["norm-preserving biprojected abliteration"](https://huggingface.co/blog/grimjim/norm-preserving-biprojected-abliteration) 설명 아티클 ## Citation 연구에 Heretic을 사용하는 경우, 다음 BibTeX 항목을 인용해 주세요. ```bibtex @misc{heretic, author = {Weidmann, Philipp Emanuel}, title = {Heretic: Fully automatic censorship removal for language models}, year = {2025}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/p-e-w/heretic}} } ``` ## License Copyright © 2025-2026 Philipp Emanuel Weidmann () + contributors 본 프로그램은 자유 소프트웨어입니다: 자유 소프트웨어 재단이 공표한 GNU Affero General Public License 버전 3 또는 (선택에 따라) 그 이후 버전의 규정에 따라 이를 재배포 및/또는 수정할 수 있습니다. 본 프로그램은 유용하게 사용될 수 있으리라는 희망에서 배포되지만, 어떠한 종류의 보증도 제공되지 않습니다; 상품성이나 특정 목적에의 적합성에 대한 묵시적 보증조차 하지 않습니다. 자세한 내용은 GNU Affero General Public License를 참조하십시오. 본 프로그램과 함께 GNU Affero General Public License의 사본을 받았어야 합니다. 그렇지 않은 경우 를 참조하십시오. \*\*이 프로젝트에 기여함으로써, 귀하는 자신의 기여물을 동일한 라이선스 하에 배포하는 것에 동의하게 됩니다.\*\*