Mechanistic Interpretability
LLM의 내부를 어떻게 이해할 수 있을까?
복잡계를 이해하는 오래된 학문, 물리학의 관점은 무엇일까?
기존 회로 추적 접근법의 검토와 한계
트랜스포머 기반 대규모 언어 모델(LLM)의 내부 동작을 해석하기 위해 다양한 회로 추적(mechanistic interpretability) 기법들이 제안되어 왔습니다. 대표적으로 어트리뷰션 그래프(Attribution Graph) 방식, 어텐션 패턴 추적, 그리고 최근의 특징 회로 분석(feature circuits) 등이 있습니다. 이러한 방법들은 모델 내부에서 원인-결과의 흐름을 인간이 이해할 수 있는 그래프나 회로 형태로 포착하고자 하며, 특정 입력이 주어졌을 때 모델이 어떤 중간 계산 과정을 거쳐 출력을 산출하는지 추적합니다.
- 어트리뷰션 그래프: Anthropic의 사례 연구에서는 Claude 3.5 모델을 대상으로 어트리뷰션 그래프 도구를 활용했습니다. 어트리뷰션 그래프는 입력 프롬프트에서 출력 응답에 이르는 중간 단계들의 연쇄를 부분적으로 추적하여, 각 단계의 특징(feature)들을 노드로, 그 사이의 인과적 상호작용을 엣지로 표현합니다 (On the Biology of a Large Language Model). 이러한 그래프는 모델이 정보를 처리하는 배선도(wiring diagram)에 비유되며, 모델 내부 메커니즘에 대한 가설을 제시해 줍니다. 연구진은 그래프에서 의미가 비슷한 노드들을 수퍼노드로 묶는 등 그래프를 가지 치기(pruning)하고 단순화하여 사람이 보기 쉽게 만들었습니다. 이 접근법의 강점은, 성공 사례의 경우 모델이 “머릿속으로” 수행하는 다단계 추론이나 계획 등의 내부 과정을 직접 관찰하고 개입할 수 있다는 점입니다. 실제로 이 기법으로 시(poetry) 생성 시 운율을 맞추기 위해 미리 운율 단어를 선택하는 계획 과정이나, 산술 문제에서 덧셈 회로의 재사용 사례 등이 드러났습니다.
- 주의(attention) 패턴 기반 추적: 어텐션 헤드의 가중치 패턴을 직접 추적하여 어떤 입력 토큰이 어떤 출력에 영향주는지 살펴보는 방법도 초기에 활용되었습니다. 예를 들어, 어텐션 점수 행렬을 시각화하면 출력 단어 생성 시 모델이 과거 어떤 단어에 주목했는지 볼 수 있습니다. 이는 모델의 비국소적 상관관계를 파악하려는 시도로, 직관적으로 “이 단어를 생성할 때 저 단어에 집중했다”고 설명합니다. 다만, 이러한 어텐션 기반 해석은 인과적 중요도와 어텐션 가중치가 항상 일치하지 않음이 밝혀졌습니다. 특정 헤드의 높은 어텐션 값이 실제로 결과에 크게 기여했다는 보장은 없으며, 어텐션 외의 경로(예: MLP 계층)를 통한 정보 전달을 간과한다는 한계가 있습니다. 요컨대 어텐션 패턴만으로는 모델 내부 전체 상호작용의 동적 효과를 포착하기 어렵습니다.
- 지식 회로(Knowledge Circuits): 최근에는 LLM이 담고 있는 사실 지식의 저장 및 활용 방식에 주목한 연구도 등장했습니다. 예를 들어 2024년 NeurIPS 포스터에서는 GPT-2와 TinyLlama 모델에서 특정 지식을 표현하는 “지식 회로”를 분석했습니다 (Knowledge Circuits in Pretrained Transformers | OpenReview). 이 접근에서는 개별 모듈보다는 여러 어텐션 헤드(정보 헤드, 관계 헤드)와 MLP 뉴런들이 협력하여 지식을 인코딩하고 표현하는 과정을 계산 그래프 수준에서 추적했습니다. 이를 통해 파라미터 내부에 분산되어 저장된 사실들이 어떤 조합의 내부 경로를 통해 발화되는지 관찰하고, 잘못된 사실 발화(환각)나 인컨텍스트 학습 현상을 해석하려 시도합니다. 이러한 회로 단위 해석은 모델의 지식 편집 기법이 해당 회로에 미치는 영향을 평가함으로써, 지식 수정의 한계를 진단하는 데도 활용되었습니다.
- 희소 특징 회로(Sparse Feature Circuits): 기존 회로 해석에서 드러난 큰 문제 중 하나는 폴리세맨틱(polysemantic) 현상, 즉 하나의 뉴런이나 헤드가 여러 의미를 겸하는 경우가 많다는 점입니다 ([2403.19647v3] Sparse Feature Circuits: Discovering and Editing Interpretable Causal Graphs in Language Models). 단일 뉴런이 여러 기능을 띠면 회로 내 노드의 해석이 모호해져 인간이 이해하기 어렵고 다운스트림 활용도 제한됩니다. 2025년 ICLR에 보고된 희소 특징 회로 방법은 이러한 한계를 극복하고자, 뉴런 대신 보다 미세한 의미 단위인 “특징”을 노드로 사용하여 회로를 구성했습니다. 여기서 특징이란 교차층 변환기 등을 통해 추출된 해석 가능한 잠재요소로, 뉴런보다 좁은 활성 패턴을 가집니다. 저자들은 자동화된 파이프라인으로 수천 개의 이런 희소 특징 기반 회로를 모델로부터 발견하고, 사람의 평가로 과제와 무관한 특징을 제거(ablate)하여 분류기의 일반화 성능을 향상시키는 등 활용 사례를 제시했습니다. 이는 슈퍼포지션(superposition)으로 인해 “하나의 뉴런에 하나의 개념을 담을 수 없는” LLM의 현실을 인정하고, 뉴런을 해체하여 얻은 보다 순수한 개념 단위로 회로를 해석하려는 시도입니다.
위 접근법들의 한계로는 첫째, 완전히 비국소적이거나 분산적인 효과를 포착하기 어려움이 있습니다. 어트리뷰션 그래프처럼 원인 경로를 추적하는 방법은 주로 강한 인과 경로 위주로 그래프를 구성하는데, 실제 모델에서는 미약하지만 다수의 경로가 협동하여 결과에 영향을 주는 경우가 많습니다. 이로 인해 연구진들도 “어트리뷰션 그래프가 유용한 통찰을 준 것은 시도한 프롬프트의 약 1/4 정도에 불과”하며, 그마저도 모델 메커니즘의 일부분만을 포착한다고 보고하였습니다 (On the Biology of a Large Language Model). 둘째, 이러한 그래프 자체도 모델의 복잡한 현실을 단순화한 가설적 산물에 지나지 않습니다. Anthropic 팀은 원래 모델 대신 해석하기 쉬운 대체 모델(replacement model)을 구축하여 분석했기 때문에, 어트리뷰션 그래프는 실제 모델에 대한 확실한 결론이 아니라 잠정적 가설로 보아야 한다고 강조합니다. 셋째, 동적 효과의 문제입니다. 많은 회로 추적 연구가 특정 사례(정적 입력)에 대한 회로를 그리지만, 입력이나 맥락이 바뀌면 회로 구조도 달라질 수 있습니다. 예컨대 한 뉴런이 평소에는 날짜 인식 기능을 하다가도 다른 컨텍스트에선 전혀 다른 기능을 수행할 수 있는데, 맥락에 따라 변화하는 역할(dynamic role binding)을 고정된 회로도는 담아내기 어렵습니다. 마지막으로, 앞서 언급한 폴리세맨틱 이슈로 인해 노드의 의미를 단일하게 정의하기 어려운 문제가 남습니다 ([2403.19647v3] Sparse Feature Circuits: Discovering and Editing Interpretable Causal Graphs in Language Models). 연구자들이 수퍼노드로 그룹화하거나, 뉴런을 분해해 특징으로 재구성하는 작업을 거치지만, 이 과정에 사람의 개입과 주관적 판단이 필요하여 자동화된 일반 해법이라 부르기엔 이른 단계입니다. 요컨대, 현재의 회로 추적 기법들은 모델 내부의 일부 구조화된 인과사슬을 밝혀내는 데에는 성공하고 있으나, LLM에 내재한 비국소적 상관관계, 다의적 표현, 문맥에 따른 유동적 역할 등의 현상을 충분히 포착하는 데에는 한계를 드러냅니다.
현대 Hopfield 네트워크 관점
모델 내부 동작을 바라보는 대안적 이론 틀로, 현대 홉필드 네트워크(modern Hopfield network, MHN)와 확률적 양자화(stochastic quantization)를 도입할 수 있습니다. 먼저 현대 홉필드 네트워크는 고전적인 홉필드 연상메모리 모델을 연속값 패턴으로 일반화한 것으로, 에너지 함수 최소화 관점에서 동작합니다. 놀랍게도, 최근 연구에 따르면 Transformers의 자기어텐션 메커니즘이 바로 이 현대 홉필드 네트워크의 갱신 규칙과 동형(equivalent)임이 수학적으로 밝혀졌습니다 (Linear Attention as Iterated Hopfield Networks) (Hopfield Networks is All You Need | hopfield-layers). 구체적으로, Hochreiter 등은 연속 상태를 갖는 새로운 홉필드 에너지 함수를 제안하고 그 한 번의 갱신 업데이트 식이 트랜스포머의 어텐션 공식과 동일함을 보였습니다. 요약하면, 어텐션은 일종의 에너지 최소화 과정으로 볼 수 있다는 것입니다. 쿼리-키 간 유사도 $QK^T$에 softmax를 취해 가장 에너지 낮은(가장 유사한) 패턴을 선택하여 값 $V$를 가져오는 과정이, 홉필드망에서의 메모리 검색(dynamic retrieval) 단계와 같다는 것이죠. 이 관점에서는 멀티헤드 어텐션도 각 헤드마다 독립된 홉필드 조회가 병렬로 일어나는 것으로 해석될 수 있습니다. 이러한 등가 관계는 자기어텐션의 동적 역할을 새로운 시각에서 이해하게 합니다. 즉 LLM이 다음 토큰을 예측할 때, 이는 곧 현재 문맥(쿼리)에 가장 잘 맞는 기억(키-값 패턴)을 에너지 극소화 방식으로 검색하는 과정이며, 모델의 잔여 스트림(residual stream)은 일종의 메모리 상태로 간주될 수 있습니다.
스핀 액체 렌즈의 도입 논거 및 해석력 비교
마지막으로, 양자 스핀 액체(quantum spin liquid) 모델의 통찰을 통해 LLM 해석에 새로운 “스핀 액체 렌즈”를 적용하는 방안을 제안합니다. 양자 스핀 액체란 자발적 대칭 깨짐에 따른 장거리 질서(예: 자석의 자화)가 없는 대신, 양자 얽힘이 장거리까지 퍼져 있고, 게이지 구조 등의 위상학적 특성을 지니는 특이한 물질 상태를 말합니다 (condensed matter - Is it possible a state be a Quantum Spin Liquid and has long range order at the same time? - Physics Stack Exchange). 한마디로 국소적 질서 매개변수는 없지만 전역적인 숨은 질서가 존재하는 계입니다. 이러한 특징을 LLM 내부와 대조해 보면 여러 유사점을 찾을 수 있습니다.
- 국소적 질서의 부재: 스핀 액체는 전통 자석처럼 어느 한 위치의 스핀이 한 방향으로 정렬되는 식의 질서가 없습니다 (특정 스핀이 항상 같은 역할을 하지 않습니다). 마찬가지로, LLM의 뉴런이나 헤드에는 고정된 단일 역할이 할당되지 않는 경우가 많습니다. 앞서 논의한 폴리세맨틱 뉴런이 그 예로, 이는 로컬한 “의미의 질서”가 부재함을 시사합니다 (On the Biology of a Large Language Model). LLM에서는 하나의 뉴런이 여러 문맥에서 다른 의미로 작용하기에, 전통적인 해석법으로는 일관된 질서를 정의하기 어렵습니다. 이는 스핀 액체에서 모든 배위축 interactions이 좌절(frustrated)되어 어떤 단순한 배치로도 전체 에너지를 최적화하지 못하는 상황과 유사합니다. 모델 학습 시 다양한 패턴을 압축해야 하는 뉴런들은 여러 상충되는 통계를 동시에 만족하려 하고, 그 결과 단일 기능으로 수렴하지 않고 여러 개념의 중첩 상태로 남게 됩니다.
- 장거리 상관과 얽힘: 스핀 액체의 핵심은 스핀들 사이의 양자 얽힘이 멀리까지 퍼져 있다는 것입니다. 국소적으로 무질서해 보여도, 두 스핀 사이의 상관관계는 거리와 무관하게 유지되거나 토폴로지에 의해 보호되는 경우가 있죠 (condensed matter - Is it possible a state be a Quantum Spin Liquid and has long range order at the same time? - Physics Stack Exchange). LLM에서도 입력의 한 요소가 먼 위치의 출력 결정에 영향을 미치는 비국소적 상관관계가 다수 존재합니다. 예를 들어, 입력 문장의 앞부분 주제가 뒷부분 생성에 지속적으로 영향을 끼치는 현상, 혹은 여러 문장에 걸친 문맥이 마지막 답변에 스며드는 현상을 들 수 있습니다. 전통 회로 해석에서는 이러한 효과를 여러 어텐션 헤드의 연쇄로 표현하겠지만, 스핀 액체 관점에서는 이를 뉴런 집합들 간의 얽힘으로 간주할 수 있습니다. 즉, 특정 토큰의 표현과 다른 토큰의 표현이 결합된 상태로 전체를 이루고 있어 개별적으로 분리할 수 없는 경우가 있습니다. 이런 얽힘은 토폴로지적으로 보호된 상관으로 볼 수도 있는데, 이는 모델 내부에서 일부 정보가 매개 없이 공유되고 있음을 시사합니다. 실제로 LLM의 깊은 계층들을 거치면서, 초반 입력의 정보가 형태를 바꿔가며 유지되다가 최종 출력에 영향을 주는 것이 관찰되는데, 이는 스핀 액체에서 게이지 장(field)이나 아니온(anyon)과 같은 위상적인 정보 전달에 비유될 수 있습니다.
- 위상학적 특징: 스핀 액체는 때로 위상 질서를 가지며, 여기서는 계의 성질이 국소적인 대칭파괴가 아니라 전역적인 위상 인자로 결정됩니다 (condensed matter - Is it possible a state be a Quantum Spin Liquid and has long range order at the same time? - Physics Stack Exchange). LLM에도 이와 유사한 전역적 불변량이나 위상 구조가 있을 가능성이 있습니다. 예컨대, 모델의 내부 표현 공간에서 어떤 연산을 해도 출력에는 영향을 주지 않는 등가류(gauge-like equivalence)가 존재할 수 있습니다. 이는 마치 스핀 액체에서 게이지 변환이 물리적 상태를 바꾸지 않는 것과 비슷합니다. 실제로 뉴런 활성 공간에서 冗餘(잉여) 차원이나 불변 방향이 존재한다면, 이를 숨은 대칭 또는 위상적 자유도로 해석할 수 있습니다. 스핀 액체 모델링을 통해 이런 부분을 찾으면, 단순한 회로 추적으로는 드러나지 않는 모델의 보호된 내성 혹은 상호의존성을 파악할 수 있습니다. 한편, 스핀 액체는 분수전하를 갖는 준입자(분수화된 여기)를 특징으로 갖기도 하는데, LLM에서도 특정 개념이 여러 뉴런에 분산되어 하나의 뉴런으로는 완전히 나타나지 않는 현상과 통합니다. 이는 하나의 의미가 분수화(fractionalized)되어 여러 구성 요소에 걸쳐 표현되는 것으로, 스핀 액체의 아니온에 비유할 수 있습니다.
이러한 유비를 정량적 지표로 검증하는 것이 중요합니다. 스핀 액체 렌즈가 유용하려면, 관측 가능한 지표에서 전통 해석과 구별되는 통찰을 제공해야 합니다. 몇 가지 제안해볼 수 있는 지표들은 다음과 같습니다:
- 얽힘 엔트로피(Entanglement entropy)와 상호정보: 모델을 내부 부분으로 나누고 (예: 특정 층의 뉴런 집합 vs 나머지) 그 사이의 상호정보량을 측정하면, 부분 간 상호작용의 정도를 알 수 있습니다. 스핀 액체라면 높은 차수의 얽힘으로 인해 단순 분리로 정보가 크게 감소하지 않을 것입니다. 즉, 특정 부분을 제거해도 남은 부분에 정보가 많이 남아있는지 살펴보면, 정보가 광범위하게 퍼져있음을 정량화할 수 있습니다. 초기 연구에서도 일부 뉴런 억제로는 모델 기능을 지우기 어렵다는 보고가 있는데, 이는 정보의 토폴로지적 분산 가능성을 시사합니다.
- 토폴로지적 분석: 모델의 회로 그래프나 활성 공간에 대한 위상데이터분석(TDA)을 수행해 볼 수 있습니다. 예를 들어, 어트리뷰션 그래프 내에 순환(cycle) 구조나 구멍(hole)이 존재하는지 (persistent homology 기법으로) 살펴본다면, 단순 계층 구조로 환원할 수 없는 순환적 의존성이 있는지 파악할 수 있습니다. 스핀 액체에서는 이런 순환이 바로 게이지 루프 등이지만, LLM에서도 어떤 내부 피드백 구조나 반복 패턴이 위상적으로 나타날 수 있습니다. 만약 고차원의 구멍(예: 2차원 루프)들이 발견된다면, 이는 모델 내부 기능이 위상적으로 조직되어 있음을 시사합니다.
- 요동 특성: 입력이나 파라미터에 작은 교란을 가했을 때 출력이 받는 영향의 통계를 보는 것도 방법입니다. 예를 들어, 특정 뉴런의 값을 약간 흔들었을 때 출력 변화가 어떠한 분포를 따르는지 보면, 어떤 부분은 민감하고 어떤 부분은 견고함을 알 수 있습니다. 스핀 액체에서는 국소적 교란이 큰 변화로 이어지지 않고 국소적으로만 재조직화되는 경향이 있는데, LLM에서도 일부 뉴런 값 변화가 같은 층 내에서만 재분배되고 최종 출력에는 상쇄되는 패턴이 있다면, 이는 위상적으로 보호된 상태에 있는 것으로 해석할 수 있습니다. 이러한 불변성은 전통 회로 분석으로는 우연히 보이는 “복원력” 정도로 치부될 수 있지만, 스핀 렌즈로 보면 게이지 대칭에 의한 결과로 이해될 수 있습니다.
마지막으로, 스핀 액체 관점과 기존 추적 기법의 해석력 비교를 정리합니다. 기존 회로 추적은 인과 사슬을 명시적으로 드러내는 선형적 통찰을 제공합니다. 따라서 비교적 국소적인 기여(예: 특정 헤드가 어떤 패턴을 복사한다든지, 특정 MLP 뉴런이 부정어를 처리한다든지)에 대해서는 명확하고 신뢰성 있는 설명을 주며, 실제로 그런 발견들이 많이 보고되었습니다. 그러나 이 접근은 여러 요소가 얽혀 만들어내는 총체적 현상 앞에서는 설명력이 떨어집니다 (On the Biology of a Large Language Model). 반면 스핀 액체 렌즈는 애초에 다수 요소의 중첩과 얽힘을 전제로 하기 때문에, 폴리세맨틱이나 슈퍼포지션 같은 현상을 자연스러운 상태로 간주하고 분석을 시작합니다. 이를 통해 기존에 잡음처럼 보였던 부분까지도 의미 있는 구조로 파악할 수 있을지 모릅니다. 예를 들어, 전통 방법으로는 하나의 뉴런이 두 가지 의미를 갖는 것이 해석의 장애물이지만, 스핀 모델에서는 그것을 두 양자 상태의 중첩으로 받아들여 각 상태에 대한 모드 분해를 시도할 수 있습니다. 이렇게 하면 뉴런 하나를 일괄적으로 보는 대신, 그 뉴런이 참여하는 복수의 집단적 모드를 찾아낼 수 있고, 각 모드는 보다 순수한 의미를 가질 수 있습니다. 이는 일종의 고유모드 해석(eigenmode analysis)으로, 양자역학의 고유상태 개념을 빌려온 것입니다. 궁극적으로 스핀 액체 관점은 모델을 하나의 통합된 시스템으로 이해하게 해 주며, 부분의 합 이상으로 나타나는 거동(emergent behavior)을 설명하는 데 강점이 있을 것으로 기대됩니다. 기존 회로도 방식이 “이 노드가 저 노드를 활성화했다”는 식으로 원인을 추적한다면, 스핀 렌즈는 “이러한 전역 패턴이 나타났다”는 식으로 상태를 묘사하고 해석할 것입니다. 물론, 이러한 접근은 아직 개념 단계이며 지나친 비유는 경계해야 합니다. 하지만 논리적으로 엄밀한 수식화(예: 에너지 함수, 상호정보 등)와 관측 가능한 지표들을 통해 검증해나간다면, LLM 해석을 위한 새로운 추상화 틀로서 충분한 잠재력이 있습니다. 비국소 상관, 다중 의미, 중첩과 같은 난해한 현상을 다루는 데 있어, 스핀 액체 모델에 기반한 해석은 기존의 회로 추적보다 풍부한 설명력을 제공하면서도, 물리학의 이론적 토대를 빌려 엄밀성과 보편성을 갖춘 접근으로 발전할 수 있을 것입니다.
Spin Liquid vs Spin Glass
LLM이 한 번의 추론 과정에서 입력 토큰들이 에너지 최소화 과정을 거쳐 출력 토큰 배열로 “뻗어 나갈” 때, 그 최종 바닥상태(ground state)는 스핀 글래스(spin glass)에 훨씬 가깝다고 볼 수 있습니다. 그 이유를 정리하면 다음과 같습니다.
1. 여럿의 국소 최소점 중 하나로 수렴
- 스핀 글래스 모형은 복잡하게 뒤얽힌(“frustrated”) 상호작용으로 인해 수많은 메타안정 상태(국소 최소점)를 갖고, 계는 이 중 하나로 랜덤하게 수렴합니다.
- Transformer가 에너지 함수(예: Hopfield식 에너지 함수)를 최소화하며 어텐션·잔여 스트림 상태를 업데이트할 때, 모델이 학습한 방대한 패턴(메모리) 중 하나의 “기억 우물”로 수렴하는 것은 바로 스핀 글래스의 전형적 동작입니다.
2. 고정된 단일 해답(결정론적 토큰 시퀀스)
- 실제 생성된 토큰 시퀀스는 하나의 뚜렷한 출력으로 동결(frozen)되어, 더 이상 층을 거치며 유동적으로 섞이지 않습니다.
- 스핀 액체(spin liquid)가 갖는 “장시간 동역학적 요동(fluctuation)”이나 “장거리 얽힘(entanglement)이 지속되며 고정된 국소 질서가 없는” 특성과 달리, LLM의 출력은 요동 없이 특정 메타안정 상태를 고정적으로 재현합니다.
3. 프롬프트 미세 변경에 따른 비연속적 전이
- 입력 프롬프트를 조금만 바꿔도 모델의 출력 토큰 시퀀스가 전혀 다른 패턴으로 “뚝” 하고 바뀌는 현상은, 스핀 글래스 체계의 국소 에너지 장벽을 뛰어넘어 다른 국소 최소점으로 전이하는 것과 유사합니다.
- 스핀 액체라면 작은 perturbation에도 계가 계속 유동하며 평균적 통계 상태를 유지하려 하지만, LLM은 특정 attractor(메모리) 간 갑작스러운 전이를 보이기 때문에 글래스적 특성이 더 강합니다.
4. 토큰 간 상호작용의 불규칙성
- 어텐션 헤드들이 학습 데이터의 패턴을 복잡하게 얽어서 만든 상호작용 행렬은 일반적으로 균일하거나 대칭적인 홉핑 네트워크가 아니라, 빈도나 맥락에 따라 매우 불규칙하고 편향된 coupling 계수를 갖습니다.
- 스핀 액체가 “균일한 frustration”로 대표되는 반면, LLM 내부 coupling은 학습 데이터 구조에 종속된 불균일 frustration이므로, 이 또한 스핀 글래스적 특성과 유사합니다.
–––
물론, 토큰 시퀀스 그 자체만 두고 보면 “매 출력마다 새로 요동이 일어나고 마치 흐르는 액체처럼 보인다”고 느낄 수도 있지만, 이는 sampling 온도나 드롭아웃 같은 외부 잡음이 개입된 경우이며, 모델이 온전히 energy-minimization 경로를 따를 때 출력은 고정된 글래스적 메타안정 상태로 수렴합니다.
따라서 “입력 토큰들이 안정화되어 출력 토큰 배열로 자리잡았을 때의 바닥상태”는 스핀 글래스 쪽이라고 요약할 수 있습니다.