NLP에 적합한 언어 모델 선택

PHPz
풀어 주다: 2023-04-14 14:04:03
앞으로
1091명이 탐색했습니다.

번역가 | Cui Hao

리뷰어 | Sun Shujuan

1. 시작

NLP에 적합한 언어 모델 선택

대형 언어 모델(LLM)은 텍스트를 생성하도록 훈련된 딥 러닝 모델입니다. 인상적인 기능을 갖춘 LLM은 현대 자연어 처리(NLP) 분야의 선두주자가 되었습니다. 전통적으로 이들은 OpenAI, Microsoft, Nvidia와 같은 학술 기관과 대규모 기술 회사에서 사전 교육을 받았습니다. 그 중 대부분은 나중에 공개적으로 사용할 수 있게 됩니다. 이 플러그 앤 플레이 접근 방식은 대규모 AI 애플리케이션을 향한 중요한 단계입니다. 이제 기업은 일반적인 언어 기능을 갖춘 모델을 교육하는 데 상당한 리소스를 소비하는 대신 특정 사용 사례에 맞게 기존 LLM 모델을 미세 조정하는 데 집중할 수 있습니다. .

그러나 애플리케이션에 적합한 모델을 선택하는 것은 여전히 ​​까다로울 수 있습니다. 사용자와 기타 이해관계자는 생생한 언어 모델과 관련 혁신 시나리오 중에서 선택을 해야 합니다. 이러한 개선에는 훈련 데이터, 사전 훈련 목표, 아키텍처 및 미세 조정 방법을 포함하여 언어 모델의 다양한 구성 요소가 포함됩니다. 각 측면은 책을 채울 수 있습니다. 이 모든 연구 외에도 언어 모델을 둘러싼 마케팅 및 AI 후광으로 인해 상황이 더욱 불분명해졌습니다.

이 문서에서는 LLM의 주요 개념과 원칙을 설명합니다. 그 목적은 비기술적 이해관계자에게 개발자 및 AI 전문가와의 효율적인 상호 작용을 위한 직관적인 이해와 언어를 제공하는 것입니다. 적용 범위를 확장하기 위해 이 기사에는 수많은 NLP 관련 출판물을 기반으로 한 분석이 포함되어 있습니다. 비록 우리가 언어 모델의 수학적 세부 사항을 탐구하지는 않을 것이지만, 이는 참고 자료에서 쉽게 검색할 수 있습니다.

글의 구성은 다음과 같습니다. 첫째, 언어 모델은 진화하는 NLP 환경에 배치됩니다. 섹션 2에서는 LLM을 구축하고 사전 훈련하는 방법을 설명합니다. 마지막으로 미세 조정 프로세스가 설명되고 모델 선택에 대한 몇 가지 지침이 제공됩니다.

2. 언어 모델의 세계

1. 인간-기계 격차 해소

언어는 인간 마음의 매혹적인 기술입니다. 지식 교환과 의도, 의견 등 주관적인 생각의 표현을 위한 보편적인 프로토콜입니다. 그리고 감정. 인공 지능의 역사에서 인간 언어에 접근("모델")하기 위해 수학적 수단을 사용하는 연구가 여러 차례 있었습니다. 딥러닝 시대 이전에는 표현이 단어의 원-핫 표현, 시퀀스 확률 모델, 재귀 구조와 같은 간단한 대수 및 확률 개념을 기반으로 했습니다. 지난 몇 년간 딥러닝의 발전으로 언어 표현의 정확성, 복잡성, 표현력이 향상되었습니다.

2018년 BERT는 새로운 Transformer 아키텍처를 기반으로 한 최초의 LLM으로 출시되었습니다. 그 이후로 Transformer 기반 LLM은 강력한 추진력을 얻었습니다. 언어 모델링은 일반성 때문에 특히 매력적입니다. 감정 분석, 정보 검색 및 정보 추출과 같은 많은 실제 NLP 작업에는 언어 생성이 필요하지 않지만 언어 생성 모델에는 더욱 전문화된 다양한 언어 문제를 해결할 수 있는 기술도 있다고 가정됩니다.

2. 크기가 중요합니다

학습은 최고의 예측 품질을 달성하기 위해 훈련 중에 최적화되는 변수인 파라메트릭 기반으로 발생합니다. 매개변수 수가 증가함에 따라 모델은 더욱 세부적인 지식을 얻고 예측을 향상시킬 수 있습니다. 2017~2018년 첫 번째 LLM 배치가 도입된 이후 매개변수 크기가 기하급수적으로 폭발적으로 증가했습니다. 획기적인 BERT는 340M 매개변수로 훈련된 반면, 2022년에 출시된 모델인 Megatron-Turing NLG는 530B 매개변수로 훈련되었습니다. 훈련 - 천 배 이상 증가했습니다.

NLP에 적합한 언어 모델 선택

그림 1: 언어 모델의 매개변수 크기는 시간이 지남에 따라 기하급수적으로 증가합니다.

따라서 주류에서는 점점 더 많은 매개변수를 사용하여 선정적입니다. 그러나 일부 비평가들은 모델 성능의 증가율이 모델 크기의 증가율과 일치하지 않는다고 지적합니다. 반면에 모델 사전 훈련은 상당한 탄소 발자국을 남깁니다. 규모 축소가 시급하며 언어 모델링의 발전을 더욱 지속 가능하게 만듭니다.

3. 언어 모델의 수명주기

LLM의 비전은 경쟁적이며 혁신은 오래 가지 않습니다. 아래 차트는 2018~2022년 기간 동안 가장 인기 있는 상위 15개 LLM 모델과 시간 경과에 따른 점유율을 보여줍니다.

NLP에 적합한 언어 모델 선택

그림 2: 가장 인기 있는 상위 15개 언어 모델의 언급률 및 점유율

대부분의 모델이 상대적으로 짧은 시간 내에 인기가 떨어지는 것을 볼 수 있습니다. 앞서 나가기 위해 사용자는 현재 혁신을 모니터링하고 업그레이드할 가치가 있는지 평가해야 합니다.

대부분의 LLM은 유사한 수명 주기를 따릅니다. 먼저 "업스트림"에서는 모델이 사전 훈련됩니다. 높은 데이터 볼륨과 계산 요구 사항으로 인해 이는 대부분 대규모 기술 회사와 대학의 특권입니다. 최근에는 LLM 분야의 발전을 공동으로 발전시키기 위한 일부 협력(예: BigScience 워크샵)도 있었습니다. Cohere 및 AI21 Labs와 같이 자금이 풍부한 소수의 스타트업도 사전 교육을 받은 LLM을 제공합니다.

출시 후 애플리케이션 중심의 개발자와 기업이 이 모델을 "다운스트림"으로 채택하고 배포합니다. 이 단계에서 대부분의 모델은 특정 도메인과 작업에 맞게 추가적인 미세 조정 단계가 필요합니다. GPT-3와 같은 다른 것들은 예측 중에 다양한 언어 작업을 직접 배울 수 있기 때문에 더 편리합니다(예측이 0개 또는 거의 없음).

마침내 시간이 다가오고, 더 많은 매개변수, 더 효율적인 하드웨어 사용 또는 인간 언어 모델링의 더 근본적인 개선을 통해 더 나은 모델이 눈앞에 나타납니다. 실질적인 혁신을 이끄는 모델은 전체 모델 제품군을 생성할 수 있습니다. 예를 들어 BERT는 모두 원래 아키텍처를 기반으로 하는 BERT-QA, DistilBERT 및 RoBERTa에 존재합니다.

다음 장에서는 이 수명 주기의 처음 두 단계, 즉 배포를 위한 사전 교육과 미세 조정을 살펴보겠습니다.

3. 사전 교육: LLM의 탄생

대부분의 팀과 NLP 실무자는 LLM 사전 교육에 참여하지 않고 미세 조정 및 배포에 참여합니다. 그러나 모델을 성공적으로 선택하고 사용하려면 "내부"에서 무슨 일이 일어나고 있는지 이해하는 것이 중요합니다. 이번 섹션에서는 LLM의 기본 구성 요소를 살펴보겠습니다.

  • 훈련 데이터
  • 입력 표현
  • 사전 훈련 목표
  • 모델 구조(인코더-디코더)

모든 항목은 선택뿐만 아니라 LLM의 미세 조정 및 배포에도 영향을 미칩니다.

1. 학습 데이터

LLM 학습에 사용되는 대부분의 데이터는 문학, 사용자 생성 콘텐츠, 뉴스 데이터 등 다양한 스타일을 다루는 텍스트 데이터입니다. 다양한 텍스트 유형을 본 후 결과 모델은 언어의 세부 사항을 인식하게 됩니다. 텍스트 데이터 외에도 코드는 효과적인 프로그램과 코드 조각을 생성하도록 모델을 교육하기 위한 입력으로 사용되는 경우가 많습니다.

예상대로 훈련 데이터의 품질은 모델 성능과 필요한 모델 크기에 직접적인 영향을 미칩니다. 훈련 데이터를 보다 스마트하게 준비하면 모델의 품질을 향상시키는 동시에 데이터 크기를 줄일 수 있습니다. 한 가지 예는 GPT-3보다 16배 작지만 다양한 벤치마크 작업에서 성능이 뛰어난 T0 모델입니다. 비결은 다음과 같습니다. 텍스트를 훈련 데이터로 사용하는 대신 작업 공식을 직접 사용하여 학습 신호에 더욱 집중합니다. 그림 3은 몇 가지 훈련 예시를 보여줍니다.

NLP에 적합한 언어 모델 선택

그림 3: 광범위한 명시적 언어 작업에 대해 훈련된 T0

훈련 데이터에 대한 마지막 참고 사항: 언어 모델이 감독되지 않은 방식으로 훈련된다는 말을 자주 듣습니다. 이 접근 방식은 매력적이지만 기술적으로는 잘못된 것입니다. 반대로, 형식이 잘 지정된 텍스트는 이미 필요한 학습 신호를 제공하므로 지루한 수동 데이터 주석 프로세스에서 벗어날 수 있습니다. 예측할 레이블은 문장의 과거 및/또는 미래 단어에 해당합니다. 결과적으로 주석은 규모에 맞게 자동으로 발생하므로 해당 분야에서 상대적으로 빠른 진행이 가능합니다.

2. 입력 표현

학습 데이터가 수집되면 모델이 적용할 수 있는 형태로 패키징해야 합니다. 신경망에는 대수적 구조(벡터 및 행렬)가 제공되며 언어의 가장 좋은 대수적 표현은 간단한 구문부터 고도로 차별화된 문맥 정보를 포함하는 것까지 지속적인 검색입니다. 각각의 새로운 단계는 자연어의 복잡성을 증가시키고 현재 표현의 한계를 노출시킵니다.

언어의 기본 단위는 단어입니다. NLP 초기에는 순서에 관계없이 텍스트의 모든 단어를 함께 던지는 Bag-of-Word 표현이 등장했습니다. 이 두 가지 예를 살펴보세요.

낱말 가방 세계에서는 같은 단어로 구성되어 있기 때문에 이 문장들은 완전히 동일하게 표현됩니다. 분명히 이것은 그 의미의 작은 부분만을 포함합니다.

순차 표현은 단어 순서에 대한 정보를 담고 있습니다. 딥러닝에서 시퀀스 처리는 처음에 순서 인식 순환 신경망(RNN)에서 구현되었습니다. 그러나 한 걸음 더 나아가면 언어의 기본 구조는 순차 순차적이 아니라 계층적이다. 즉, 우리는 목록이 아니라 나무에 대해 이야기하고 있습니다. 더 멀리 떨어져 있는 단어는 실제로 인접한 단어보다 더 강력한 구문 및 의미 연결을 가질 수 있습니다. 아래 예를 참조하십시오.

여기서 그녀는 그 소녀를 가리킵니다. RNN이 문장의 끝에 도달하여 마침내 그녀를 볼 때쯤에는 문장의 시작 부분에 대한 기억이 이미 희미해져 관계를 복원할 수 없게 될 수 있습니다.

이러한 장거리 의존성을 해결하기 위해 더 차별적인 맥락 기억을 구축하기 위해 더 복잡한 신경 구조가 제안되었습니다. 아이디어는 미래 예측과 관련된 단어를 기억에 보관하고 다른 단어는 잊어버리는 것입니다. 이는 LSTM(Long Short-Term Memory) 장치와 GRU(Gated Recurrent Unit)의 기여입니다. 그러나 이러한 모델은 예측할 특정 위치에 최적화된 것이 아니라 일반적인 미래 상황에 최적화되었습니다. 또한 복잡한 구조로 인해 기존 RNN보다 훈련 속도가 훨씬 느립니다.

마지막으로 사람들은 재귀를 포기하고 어텐션 메커니즘을 제안하여 이를 Transformer 아키텍처에 통합했습니다. Attention을 통해 모델은 예측 중에 서로 다른 단어 사이에 앞뒤로 초점을 맞출 수 있습니다. 각 단어는 예측할 특정 위치와의 관련성에 따라 가중치가 부여됩니다. 위 문장의 경우 모델이 "she" 위치에 도달하면 선형 순서에서 훨씬 멀리 떨어져 있음에도 불구하고 girl이 at보다 더 높은 가중치를 갖습니다.

지금까지 주의 메커니즘은 정보 처리에 있어서 인간 두뇌의 생물학적 작동에 가장 가깝습니다. 연구에 따르면 주의는 일련의 복잡한 구문 현상을 포함하여 계층적 구문 구조를 학습할 수 있습니다. 또한 더 빠르고 효율적인 훈련을 위한 병렬 컴퓨팅도 가능합니다.

3. 사전 훈련 목표

적절한 훈련 데이터 표현을 통해 모델이 학습을 시작할 수 있습니다. 언어 모델 사전 학습에는 시퀀스 간 변환, 자동 회귀 및 자동 인코딩이라는 세 가지 일반적인 목표가 있습니다. 이를 위해서는 모델에 광범위한 언어 지식이 필요합니다.

인코더-디코더 아키텍처와 Transformer 모델이 해결한 원래 작업은 시퀀스 간 변환입니다. 즉, 시퀀스는 다른 표현 프레임워크에서 시퀀스로 변환됩니다. 고전적인 시퀀스 간 작업은 기계 번역이지만 요약과 같은 다른 작업도 종종 이러한 방식으로 공식화됩니다. 대상 시퀀스는 텍스트일 필요는 없습니다. 프로그래밍 언어와 같은 구조화된 데이터뿐만 아니라 이미지와 같은 다른 구조화되지 않은 데이터일 수도 있습니다. 시퀀스 간 LLM의 예로는 BART 시리즈가 있습니다.

두 번째 작업은 원래 언어 모델링 목표이기도 한 자동 회귀입니다. 자동 회귀에서 모델은 이전 토큰을 기반으로 다음 출력(토큰)을 예측하는 방법을 학습합니다. 학습 신호는 기업의 단방향 특성으로 인해 제한됩니다. 즉, 모델은 예측된 토큰의 오른쪽 또는 왼쪽 정보만 사용할 수 있습니다. 단어가 과거 위치와 미래 위치 모두에 따라 달라질 수 있기 때문에 이는 주요 제한 사항입니다. 예를 들어, 쓰여진 동사가 다음 문장에 양방향으로 어떻게 영향을 미치는지 생각해 보세요.

NLP에 적합한 언어 모델 선택

여기에서 논문의 위치는 쓸 수 있는 것으로 제한되는 반면, 학생의 위치는 인간 또는 어쨌든 쓸 수 있는 또 다른 지능적인 존재로 제한됩니다.

GPT 시리즈, PaLM 및 BLOOM을 포함하여 오늘 헤드라인에 등장하는 많은 LLM은 자동 회귀입니다.

세 번째 작업인 자동 인코딩은 단방향 문제를 해결합니다. 자동 인코딩은 고전적인 단어 임베딩을 학습하는 것과 매우 유사합니다. 첫째, 입력에서 특정 비율의 토큰(보통 10-20%)을 숨겨 훈련 데이터를 손상시킵니다. 그런 다음 모델은 이전 및 후속 마커를 고려하여 주변 환경을 기반으로 올바른 입력을 재구성하는 방법을 학습합니다. 오토인코더의 일반적인 예는 BERT 계열입니다. 여기서 BERT는 변환기의 양방향 인코더 표현을 나타냅니다.

4. 모델 구조(인코더-디코더)

언어 모델의 기본 구성 요소는 인코더와 디코더입니다. 인코더는 원시 입력을 "숨겨진" 벡터라고도 알려진 고차원 대수 표현으로 변환합니다. 잠깐만요 -- 숨겨졌나요? 글쎄요, 사실 현재로서는 큰 비밀은 없습니다. 물론 표현을 볼 수는 있지만 긴 숫자 벡터는 인간에게 의미 있는 어떤 것도 전달하지 않습니다. 이를 처리하려면 모델의 수학적 지능이 필요합니다. 디코더는 숨겨진 표현을 다른 언어, 프로그래밍 코드, 이미지 등과 같이 이해할 수 있는 형식으로 재현합니다.

NLP에 적합한 언어 모델 선택

그림 4: 인코더-디코더 아키텍처의 기본 패턴

인코더-디코더 아키텍처는 원래 순환 신경망용으로 도입되었습니다. Attention 기반 Transformer 모델이 도입된 이후 전통적인 재귀는 인기를 잃었지만 인코더-디코더 아이디어는 지속되었습니다. 대부분의 자연어 이해(NLU) 작업에는 인코더가 사용되는 반면, 자연어 생성(NLG) 작업에는 디코더가 필요하고 시퀀스 간 변환에는 두 구성 요소가 모두 필요합니다.

여기에서는 Transformer 아키텍처와 주의 메커니즘에 대해 자세히 논의하지 않습니다. 이러한 세부 사항을 숙지하고 싶은 사람들은 그것을 알아내는 데 많은 시간을 할애할 준비를 하십시오.

4. 실제 세계에서 언어 모델 사용

1. 미세 조정

언어 모델링은 강력한 업스트림 작업입니다. 성공적인 언어 모델이 있다면 축하합니다. 이는 지능형 모델입니다. 대신 NLP는 주로 감정 분석, 질문 답변, 정보 추출과 같은 보다 목표화된 다운스트림 작업에 사용됩니다. 이는 전이 학습이 적용되고 기존 언어 지식을 재사용하여 보다 구체적인 문제를 해결하는 경우입니다. 미세 조정 중에 모델의 일부는 "동결"되고 나머지 부분은 특정 도메인이나 작업의 데이터를 사용하여 추가로 훈련됩니다.

명시적인 미세 조정으로 인해 LLM 배포 과정이 복잡해집니다. 또한 각 비즈니스 작업에 자체적으로 미세 조정된 모델이 필요하여 유지 관리할 수 없는 다양한 모델이 발생하는 모델 폭발로 이어질 수도 있습니다. 따라서 미세 조정 단계(예: GPT-3)를 없애기 위해 학습 단계를 거의 또는 전혀 사용하지 않으려는 노력이 이루어져 왔습니다. 이러한 학습은 예측 프로세스 중에 발생합니다. 모델에는 향후 인스턴스에 대한 예측을 안내하기 위해 작업 설명 및 몇 가지 훈련 예제인 "힌트"가 제공됩니다.

구현 속도가 훨씬 빠르지만, 학습이 없거나 적다는 편의성 요소는 낮은 예측 품질로 인해 상쇄됩니다. 또한 이러한 모델 중 다수에는 클라우드 API를 통한 액세스가 필요합니다. 개발 초기에는 이는 환영할 만한 기회일 수 있지만, 더 발전된 단계에서는 또 다른 원치 않는 외부 종속성이 발생할 수 있습니다.

2. 다운스트림 작업에 적합한 모델 선택

AI 시장에서 새로운 언어 모델이 지속적으로 공급되는 것을 보면 특정 다운스트림 작업에 적합한 모델을 선택하고 상태를 따라가는 것이 까다로울 수 있습니다. 최첨단 기술.

연구 논문에서는 특정 다운스트림 작업 및 데이터 세트에 대해 각 모델을 벤치마킹하는 경우가 많습니다. SuperGLUE 및 BIG-bench와 같은 표준화된 작업 제품군은 수많은 NLP 작업에 대한 통합 벤치마킹을 허용하고 비교 기반을 제공합니다. 그러나 이러한 테스트는 고도로 통제된 환경에서 준비된다는 점을 기억해야 합니다. 현재로서는 언어 모델의 일반화 기능이 상당히 제한되어 있으므로 실제 데이터 세트로 전송하면 모델 성능에 큰 영향을 미칠 수 있습니다. 적절한 모델을 평가하고 선택하려면 생산 데이터에 최대한 가까운 데이터에 대한 실험을 수행해야 합니다.

일반적으로 사전 훈련 목표는 중요한 팁을 제공합니다. 자동 회귀 모델은 대화형 AI, 질문 답변 및 텍스트 요약과 같은 텍스트 생성 작업에서 잘 수행되는 반면 자동 인코더는 "이해" 및 구조화 언어에 탁월합니다. 예를 들어 감정 분석 및 다양한 정보 추출 작업에 사용됩니다. 이론적으로 영점 학습에 사용되는 모델은 적절한 힌트를 받는 한 다양한 작업을 수행할 수 있지만 일반적으로 미세 조정 모델보다 정확도가 낮습니다.

더 구체적으로 설명하기 위해 아래 이미지는 인기 있는 NLP 작업이 NLP 문헌에서 두드러진 언어 모델과 어떤 관련이 있는지 보여줍니다. 이러한 연관은 내장 유사성 및 거리 가중 동시 발생을 포함한 다양한 유사성 및 집계 측정값을 기반으로 계산됩니다. BART/텍스트 요약 및 LaMDA/대화형 AI와 같이 점수가 높은 모델-작업 쌍은 과거 데이터를 기반으로 좋은 일치를 나타냅니다.

NLP에 적합한 언어 모델 선택

그림 5: 언어 모델과 다운스트림 작업 간의 연관성 강도

5. 주요 내용

이 기사에서는 LLM의 기본 개념과 혁신이 일어나는 주요 수준을 다루었습니다. 아래 표에는 가장 인기 있는 LLM의 주요 기능이 요약되어 있습니다.

NLP에 적합한 언어 모델 선택

표 1: 가장 인기 있는 대규모 언어 모델의 기능 요약

선택 및 LLM에 대한 일반적인 지침을 요약하겠습니다.

1. 잠재적인 모델을 평가할 때 AI 여정에서 현재 위치를 명확히 하세요.

  • 처음에는 클라우드 API를 통해 배포된 LLM을 실험해 보는 것이 좋습니다.
  • 제품 시장 적합성을 찾으면 모델을 직접 호스팅하고 유지 관리하여 애플리케이션에 맞게 모델 성능을 더욱 향상하고 더 효과적으로 제어할 수 있습니다.

2. 다운스트림 작업에 맞춰 AI 팀은 다음 기준에 따라 모델의 최종 목록을 만들어야 합니다.

다운스트림 작업에 초점을 맞춘 학술 문헌의 벤치마크 결과

사전 훈련 목표와 다운스트림 작업 간의 일관성: NLGU의 자동 인코딩과 NLG의 자동 회귀를 고려하세요.

이 모델-작업 조합에 대한 이전에 보고된 경험입니다.

3. 최종 후보 모델을 테스트하여 실제 작업과 데이터 세트를 이해하고 성능에 대한 초기 느낌을 얻으세요.

4. 대부분의 경우 전문적인 미세 조정을 통해 더 나은 품질을 얻을 수 있습니다. 하지만 사내 기술 역량이나 미세 조정을 위한 예산이 없거나, 많은 작업을 처리해야 하는 경우에는 Few/Zero-Shot 학습을 고려해보세요.

5.LLM 혁신과 트렌드는 수명이 짧습니다. 언어 모델을 사용하여 작업할 때 LLM 도메인의 수명 주기와 전반적인 활동을 인식하고 게임을 한 단계 더 발전시킬 수 있는 기회를 인식하십시오.

마지막으로 LLM의 한계에 유의하세요. 그들은 언어를 생산하는 인간과 같은 놀라운 능력을 가지고 있지만 전반적인 인지 능력은 우리 인간에 미치지 못합니다. 이러한 모델의 세계 지식과 추론 능력은 언어 표면에서 찾은 정보로 엄격히 제한됩니다. 또한 그들은 사실을 제때에 유지하지 못하고 눈 하나 깜빡하지 않고 오래된 정보를 제공할 수도 있습니다. 최신 또는 원시 지식 생성에 의존하는 애플리케이션을 구축하는 경우 LLM을 추가 다중 모드, 구조적 또는 동적 지식 소스와 결합하는 것을 고려하십시오.

원본 링크: https://www.topbots.com/choosing-the-right-언어-model/

번역자 소개

Cui Hao, 51CTO 커뮤니티 편집자, 선임 설계자는 18년의 소프트웨어 개발 및 아키텍처 경험을 보유하고 있습니다. , 10년의 분산 아키텍처 경험.

위 내용은 NLP에 적합한 언어 모델 선택의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿