대형 언어 모델의 아키텍처에 관심을 가져왔다면 최신 모델과 연구 논문에서 "SwiGLU"라는 용어를 본 적이 있을 것입니다. SwiGLU는 대규모 언어 모델에서 가장 일반적으로 사용되는 활성화 함수라고 할 수 있습니다. 이 기사에서는 이에 대해 자세히 소개하겠습니다. SwiGLU는 실제로 Google이 2020년에 제안한 활성화 기능으로 SWISH와 GLU의 특성을 결합한 것입니다. SwiGLU의 전체 중국어 이름은 "양방향 게이트 선형 장치"입니다. SWISH와 GLU라는 두 가지 활성화 기능을 최적화하고 결합하여 모델의 비선형 표현 능력을 향상시킵니다. SWISH는 대규모 언어 모델에서 널리 사용되는 매우 일반적인 활성화 함수인 반면, GLU는 자연어 처리 작업에서 잘 수행됩니다. SwiGLU의 장점은 SWISH의 Smoothing 특성과 GLU의 Gating 특성을 동시에 얻을 수 있어 모델의 비선형적 표현을 더욱 돋보이게 한다는 점입니다
하나씩 소개하겠습니다.
Swish
Swish는 다음과 같이 정의된 비선형 활성화 함수입니다.
Swish(x) = x*sigmoid(ßx)
여기서 ß는 학습 가능한 매개변수입니다. Swish는 더 부드러운 전환을 제공하여 더 나은 최적화로 이어질 수 있으므로 ReLU 활성화 함수보다 더 나을 수 있습니다.
Gated Linear Unit
GLU(Gated Linear Unit)는 두 개의 선형 변환의 구성요소 제품으로 정의되며, 그 중 하나는 시그모이드에 의해 활성화됩니다.
GLU(x) = sigmoid(W1x+b)⊗(Vx+c)
GLU 모듈은 LSTM 및 GRU와 같은 다른 게이팅 메커니즘과 관련된 사라지는 그라데이션 문제 중 일부를 피하면서 시퀀스의 장거리 종속성을 효과적으로 캡처할 수 있습니다.
SwiGLU
우리는 이미 SwiGLU가 이 둘의 조합이라고 말했습니다. GLU이지만 활성화 함수로 시그모이드를 사용하는 대신 ß=1인 swish를 사용하므로 다음 공식으로 끝납니다.
SwiGLU(x) = Swish(W1x+b)⊗(Vx+c)
SwiGLU 함수를 사용하여 피드포워드 네트워크를 구성합니다
FFNSwiGLU(x) = (Swish1(xW)⊗xV)W2
Pytorch의 간단한 구현
위의 수학적 원리가 번거롭고 지루해 보인다면 아래 코드를 사용하여 직접 설명하겠습니다.
class SwiGLU(nn.Module): def __init__(self, w1, w2, w3) -> None:super().__init__()self.w1 = w1self.w2 = w2self.w3 = w3 def forward(self, x):x1 = F.linear(x, self.w1.weight)x2 = F.linear(x, self.w2.weight)hidden = F.silu(x1) * x2return F.linear(hidden, self.w3.weight)
우리 코드에서 사용한 F.silu 함수는 ß=1일 때 swish와 동일하므로 직접 사용합니다.
코드에서 볼 수 있듯이 활성화 함수에는 훈련할 수 있는 3개의 가중치가 있는데, 이는 GLU 공식의 매개변수입니다.
SwiGLU의 효과 비교
SwiGLU를 다른 GLU 변형과 비교하면 SwiGLU가 두 사전 훈련 기간 동안 더 나은 성능을 발휘한다는 것을 알 수 있습니다.
다운스트림 작업
은 최고의 성능을 제공하므로 이제 LLAMA, OLMO 및 PALM과 같은 llm은 모두 구현에 SwiGLU를 사용합니다. 그런데 왜 SwiGLU가 다른 것보다 나은가요?
이 문서는 테스트 결과만 제공하고 이유를 설명하지 않았습니다. 대신 다음과 같이 말했습니다.
우리는 이러한 아키텍처가 작동하는 것처럼 보이는 이유에 대해 설명하지 않습니다.
저자는 연금술이 성공했다고 했어요.
지금은 2024년이고 이를 강력하게 설명할 수 있습니다.
1 음수 값에 대한 Swish의 상대적으로 작은 반응은 일부 뉴런의 출력이 항상 0이라는 ReLU의 단점을 극복합니다
2. GLU의 게이팅 특성은 입력 상황에 따라 어떤 정보를 통과해야 하고 어떤 정보를 필터링해야 하는지 결정할 수 있음을 의미합니다. 이 메커니즘을 통해 네트워크는 유용한 표현을 보다 효과적으로 학습할 수 있으며 모델의 일반화 능력을 향상시키는 데 도움이 됩니다. 대규모 언어 모델에서 이는 장거리 종속성이 있는 긴 텍스트 시퀀스를 처리하는 데 특히 유용합니다.
3 SwiGLU의 매개변수 W1, W2, W3, b1, b2, b3 W1, W2, W3, b1, b2, b3은 학습을 통해 학습할 수 있으므로 모델은 다양한 매개변수에 따라 이러한 매개변수를 동적으로 조정할 수 있습니다. 작업 및 데이터 세트 강화된 모델 유연성 및 적응성.
4. 좋은 성능을 유지하면서도 계산 효율성은 좀 더 복잡한 활성화 함수(예: GELU)보다 높습니다. 이는 대규모 언어 모델의 훈련 및 추론을 위한 중요한 고려 사항입니다.
비선형 기능, 게이팅 특성, 기울기 안정성 및 학습 가능한 매개변수의 장점을 결합하기 때문에 SwiGLU를 대규모 언어 모델의 활성화 함수로 선택합니다. SwiGLU는 복잡한 의미 관계와 언어 모델의 긴 종속성 문제를 처리하고 훈련 안정성과 계산 효율성을 유지하는 데 탁월한 성능을 제공하므로 널리 채택됩니다.
문서 주소
위 내용은 대규모 언어 모델이 SwiGLU를 활성화 기능으로 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

如果你一直在关注大型语言模型的架构,你可能会在最新的模型和研究论文中看到“SwiGLU”这个词。SwiGLU可以说是在大语言模型中最常用到的激活函数,我们本篇文章就来对它进行详细的介绍。SwiGLU其实是2020年谷歌提出的激活函数,它结合了SWISH和GLU两者的特点。SwiGLU的中文全称是“双向门控线性单元”,它将SWISH和GLU两种激活函数进行了优化和结合,以提高模型的非线性表达能力。SWISH是一种非常普遍的激活函数,它在大语言模型中得到广泛应用,而GLU则在自然语言处理任务中表现出

大型语言模型(LLM)是在巨大的文本数据库上训练的,在那里它们获得了大量的实际知识。这些知识嵌入到它们的参数中,然后可以在需要时使用。这些模型的知识在训练结束时被“具体化”。在预训练结束时,模型实际上停止学习。对模型进行对齐或进行指令调优,让模型学习如何充分利用这些知识,以及如何更自然地响应用户的问题。但是有时模型知识是不够的,尽管模型可以通过RAG访问外部内容,但通过微调使用模型适应新的领域被认为是有益的。这种微调是使用人工标注者或其他llm创建的输入进行的,模型会遇到额外的实际知识并将其整合

随着开源大型语言模型的性能不断提高,编写和分析代码、推荐、文本摘要和问答(QA)对的性能都有了很大的提高。但是当涉及到QA时,LLM通常会在未训练数据的相关的问题上有所欠缺,很多内部文件都保存在公司内部,以确保合规性、商业秘密或隐私。当查询这些文件时,会使得LLM产生幻觉,产生不相关、捏造或不一致的内容。一种处理这一挑战的可行技术是检索增强生成(RAG)。它涉及通过引用训练数据源之外的权威知识库来增强响应的过程,以提升生成的质量和准确性。RAG系统包括一个检索系统,用于从语料库中检索相关文档片段

2024年是大型语言模型(LLM)迅速发展的一年。在LLM的训练中,对齐方法是一个重要的技术手段,其中包括监督微调(SFT)和依赖人类偏好的人类反馈强化学习(RLHF)。这些方法在LLM的发展中起到了至关重要的作用,但是对齐方法需要大量的人工注释数据。面对这一挑战,微调成为一个充满活力的研究领域,研究人员积极致力于开发能够有效利用人类数据的方法。因此,对齐方法的发展将推动LLM技术的进一步突破。加州大学最近进行了一项研究,介绍了一种名为SPIN(SelfPlayfInetuNing)的新技术。S

在使用大型语言模型(LLM)时,幻觉是一个常见问题。尽管LLM可以生成流畅连贯的文本,但其生成的信息往往不准确或不一致。为了防止LLM产生幻觉,可以利用外部的知识来源,比如数据库或知识图谱,来提供事实信息。这样一来,LLM可以依赖这些可靠的数据源,从而生成更准确和可靠的文本内容。向量数据库和知识图谱向量数据库向量数据库是一组表示实体或概念的高维向量。它们可以用于度量不同实体或概念之间的相似性或相关性,通过它们的向量表示进行计算。一个向量数据库可以根据向量距离告诉你,“巴黎”和“法国”比“巴黎”和

组查询注意力(GroupedQueryAttention)是大型语言模型中的一种多查询注意力力方法,它的目标是在保持MQA速度的同时实现MHA的质量。GroupedQueryAttention将查询分组,每个组内的查询共享相同的注意力权重,这有助于降低计算复杂度和提高推理速度。这篇文章中,我们将解释GQA的思想以及如何将其转化为代码。GQA是在论文GQA:TrainingGeneralizedMulti-QueryTransformerModelsfromMulti-HeadCheckpoint

随着语言模型扩展到前所未有的规模,对下游任务进行全面微调变得十分昂贵。为了解决这个问题,研究人员开始关注并采用PEFT方法。PEFT方法的主要思想是将微调的范围限制在一小部分参数上,以降低计算成本,同时仍能实现自然语言理解任务的最先进性能。通过这种方式,研究人员能够在保持高性能的同时,节省计算资源,为自然语言处理领域带来新的研究热点。RoSA是一种新的PEFT技术,通过在一组基准测试的实验中,发现在使用相同参数预算的情况下,RoSA表现出优于先前的低秩自适应(LoRA)和纯稀疏微调方法。本文将深

大型语言模型(LLM)的出现刺激了多个领域的创新。然而,在思维链(CoT)提示和情境学习(ICL)等策略的驱动下,提示的复杂性不断增加,这给计算带来了挑战。这些冗长的提示需要大量的资源来进行推理,因此需要高效的解决方案。本文将介绍LLMLingua与专有的LlamaIndex的集成执行高效推理LLMLingua是微软的研究人员发布在EMNLP2023的一篇论文,LongLLMLingua是一种通过快速压缩增强llm在长上下文场景中感知关键信息的能力的方法。LLMLingua与llamindex的


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
