


ChatGPT 모델을 직접 훈련할 수 있습니다! 화동 사범 대학 및 NUS 오픈 소스 HugNLP 프레임워크: 한 번의 클릭으로 순위를 새로 고치고 NLP 교육을 완전히 통합합니다.
최근 중국 화동 사범 대학의 HugAILab 팀은 연구원과 개발자를 위한 포괄적이고 통합된 NLP 교육 프레임워크인 HugNLP 프레임워크를 개발했습니다. 이 프레임워크는 텍스트 분류, 텍스트 일치, 질문 및 답변, 정보 추출, 텍스트 생성을 지원할 수 있습니다. , 작은 샘플 학습 및 기타 NLP 작업 모델 구축 및 훈련.
오픈 소스 주소: https://github.com/HugAILab/HugNLP
논문: https://arxiv.org/abs/2302.14286
가치 HugNLP에는 Prompt-Tuning, In-Context Learning, Instruction-tuning, Chain-of-thought 등 최신 Prompt 기술도 다수 통합되어 있으며 향후 도입될 예정입니다
HugAILab 팀은 또한 CLUE&GLUE와 같은 일련의 애플리케이션을 개발했습니다. 목록 브러싱 도구는 ChatGPT 모델 교육 및 배포 제품인 HugChat은 물론 통합 정보 추출 제품인 HugIE 등을 지원할 수 있습니다.
HugNLP는 "높은 응집력과 낮은 결합도"의 개발 모델을 따르는 계층형 프레임워크입니다. 그 핵심에는 모델 계층(모델), 프로세서 계층(프로세서), 평가자 계층(Evaluators) 및 응용 프로그램 계층(응용 프로그램)이 포함됩니다. 부속.
프레임 다이어그램은 다음과 같습니다.
- 모델 레이어: 주로 작업 유형에 따라 구분된 모델 부분을 포함합니다.
- 프로세서 레이어: 로딩, 캐싱, 단어 분할 및 기타 처리
- 평가자 계층: 다양한 작업 유형(분류 또는 생성)에 따라 다양한 평가 프로세스 및 평가 지표를 지정합니다.
- 애플리케이션 계층: 해당 애플리케이션 실행 스크립트. 이론적으로 모델, 데이터 프로세서 및 평가자를 선택하는 것은 응용 프로그램에 해당할 수 있습니다.
HugNLP는 HuggingFace를 기반으로 완전히 개발되었으며 손쉬운 확장 및 배포 기능을 갖추고 있으며 MLFlow 훈련 추적기를 통합하여 사용자가 시간에 맞춰 실험 진행 상황을 추적하고 실험 분석을 수행할 수 있도록 합니다.
HugNLP 프레임워크는 수많은 NLP 작업 모델을 통합하기 때문에 포괄적이라고 불립니다. 지금까지 구현된 내용은 다음과 같습니다.
- 사전 훈련: Masked LM, Causal LM, 지식 강화 사전 훈련
- 명령 조정: 자동 회귀 생성, 간격 추출, NLI와 같은 통합 패러다임 훈련 지원
- 텍스트 분류/매칭: 전통적인 미세 조정, 프롬프트 조정, 상황 내 학습; 시퀀스 주석:
- 메타 학습: 시퀀스 기반 메타 학습(SentenceProto), 간격 기반 메타 학습(SpanProto), 토큰 기반 메타 학습(TokenProto, NNShot)과 같은 시퀀스 주석 작업을 지원합니다.
- Q&A: 추출형 Q&A, 객관식 Q&A 및 개방형 생성 Q&A 지원
- 텍스트 생성: 텍스트 요약 및 기계 번역 지원(개발 중)
- 코드 인텔리전스: 현재 코드와 통합됨 복제 감지(Clone), 코드 결함 감지(Defact) 및 기타 코드 작업
- HugNLP 프레임워크를 빠르게 배포
git clone https://github.com/HugAILab/HugNLP.gitcd HugNLPpython3 setup.py install
다음은 몇 가지 핵심 기능입니다. HugNLP:
벤치마크 원클릭 순위
- 사전 교육 및 지식 주입
- 미세 조정 및 즉각적인 조정
- 인 -컨텍스트 학습;
- 반 감독 자가 훈련;
- 코드 코드 지능
- 1. 벤치마크 원클릭 순위
- HugNLP는 최초로 일부 일반적인 순위에 대한 순위 도구를 개발했습니다. GLUE, CLUE 등이 있습니다. 사용자는 원클릭 새로 고침을 달성하기 위해 해당 데이터 세트 이름만 구성하면 됩니다.
为了验证框架的有效性,在22年9月提交了CLUE榜单的刷榜结果,选择一系列中文小模型(RoBERTa、MacBERT、P-BERT等)并结合了logits集成方法,至今依然维持在第15名位置,曾一度超越了部分企业。
例如如果训练CLUE榜单的AFQMC数据集,可编辑文件
applications/benchmark/clue/clue_finetune_dev.sh
修改参数:
--user_defined="data_name=afqmc"
执行下列命令即可:
bash applications/benchmark/clue/clue_finetune_dev.sh
同样的方法还可以训练一些常用的NLP任务,例如阅读理解、实体识别、以及GLUE英文数据集等。
HugNLP还集成了一系列模型用于刷榜,例如BERT、RoBERTa、DeBERTa、MacBERT、Erlangshen等。
二、预训练与知识注入
传统的一些预训练模型(例如BERT、GPT2等)是在通用语料上训练的,而对领域事实知识可能不敏感,因此需要显式的在预训练阶段注入事实知识。
HugNLP实现了多个知识增强预训练技术,其中包括DKPLM和KP-PLM。可分解的知识注入方法DKPLM和将结构化知识转化为自然语言形式的注入方法KP-PLM是两种不同的注入方式。由于这些知识注入方法采用的是可插拔式的设计,因此无需改变模型结构,这使得在下游任务上进行微调非常容易。
执行下面命令即可进行Masked Language Modeling和Causal Language Modeling的预训练:
bash applications/pretraining/run_pretrain_mlm.shbash applications/pretraining/run_pretrain_casual_lm.sh
三、 Fine-tuning & Prompt-Tuning
Pre-training和Fine-tuning模式通常被遵循,以基于预训练语言模型的NLP。HugNLP也包含Fine-tuning技术。
3.1 参数有效性学习
HugNLP集成了包括Prefix-tuning、Adapter、BitFit、LoRA等参数有效性训练方法,可以加速模型的训练,降低显存占用量。
在训练脚本中,只需要添加一行参数,即可开启参数有效性训练:
--use_freezing
对于参数有效性方法,HugNLP实现了若干类别的分类模型,如下所示:
CLASSIFICATION_MODEL_CLASSES = { "head_prefix_cls": { "bert": BertPrefixForSequenceClassification, "roberta": RobertaPrefixForSequenceClassification, }, "head_ptuning_cls": { "bert": BertPtuningForSequenceClassification, "roberta": RobertaPtuningForSequenceClassification, }, "head_adapter_cls": { "bert": BertAdapterForSequenceClassification, "roberta": RobertaAdapterForSequenceClassification, }, "masked_prompt_cls": { "bert": PromptBertForSequenceClassification, "roberta": PromptRobertaForSequenceClassification, }, "masked_prompt_prefix_cls": { "bert": PromptBertPrefixForSequenceClassification, "roberta": PromptRobertaPrefixForSequenceClassification, }, "masked_prompt_ptuning_cls": { "bert": PromptBertPtuningForSequenceClassification, "roberta": PromptRobertaPtuningForSequenceClassification, }, "masked_prompt_adapter_cls": { "bert": PromptBertAdapterForSequenceClassification, "roberta": PromptRobertaAdapterForSequenceClassification, }, }
只需要指定下面参数即可,例如选择adapter进行分类:
--task_type=head_adapter_cls
3.2 对抗训练:引入对Embedding的扰动,提高模型的鲁棒性
HugNLP框架集成了若干种对抗训练的方法,其中最简单的对抗方法为FGM算法:
- 首先计算输入样本(通常为word embedding)的损失函数以及在处的梯度:;
- 计算在输入样本的扰动量:,其中为超参数,默认取1.0;
- 得到对抗样本:;
- 根据得到的对抗样本,再次喂入模型中,计算损失,并累积梯度;
- 恢复原始的word embedding,接着下一个batch。
在训练时,只需要添加一行参数,即可默认调用FGM算法:
--do_adv
3.3 Prompt-tuning:通过模板来复用预训练目标
传统的Fine-tuning在低资源场景下容易出现过拟合问题,因此复用预训练的目标可以拉近Pre-training和Fine-tuning之间的语义差异。
HugNLP集成了PET、P-tuning、Prefix-tuning等Prompt-Tuning算法,并无缝嵌入在NLP分类任务的模型里。
在训练时,只需要指定下面两个参数,即可以开启Prompt-tuning模式,例如选择p-tuning算法:
--task_type=masked_prompt_ptuning_cls--use_prompt_for_cls
四、Instruction-tuning
在构建通用人工智能之前,必须将不同类型的自然语言处理任务进行范式统一,尤其是在大模型时代。HugNLP为此定义了三种统一范式的思想:
- 万物皆可生成:将所有NLP任务建模为单向自回归生成,例如GPT-3、ChatGPT等;
- 万物皆可抽取:将所有NLP任务建模为抽取式机器阅读理解;
- 万物皆可推断:将所有NLP任务建模为自然语言推断;
基于三种不同的范式统一,HugNLP推出两个核心产品,分别是:
- HugChat:基于生成式Instruction的中小型ChatGPT类模型;
- HugIE:基于抽取式Instruction的统一信息抽取框架;
4.1 HugChat:基于Causal Language Modeling的生成式对话模型
最近ChatGPT火爆全球,为了让研究者可以训练自己的ChatGPT,HugNLP框架集成了基于生成式Instruction的训练产品——HugChat,其支持各种类型的单向生成式模型的训练,例如GPT-2、GPT-Neo、OPT、GLM、LLaMA等。
在8张V100 32G的条件下,可训练OPT-13B大模型。HugAILab团队公布了大约200万条英文和300万条中文的对话数据,以用于模型训练。例如训练GPT-2(XL),可直接执行脚本:
bash ./application/instruction_prompting/HugChat/supervised_finetuning/run_causal_instruction_gpt2_xl.sh
使用基于HugNLP训练的GPT-2(1.3B)模型可以轻松地完成对话任务。只需要执行如下命令即可玩转HugChat:
python3 applications/instruction_prompting/HugChat/hugchat.py
例如可以写套磁信邮件:
再例如搜索谷歌地球的相关信息:
也可以实现编写简单的代码(1.3B的模型具备此能力已经很惊叹了!):
HugNLP目前正在开发其他类型的Decoder-only大模型,相关信息和开源内容如下表所示:
HugChat后期将推出垂直领域的大模型解决方案,同时将与OpenAI API进行融合,推出大模型服务框架。
4.2 HugIE:基于Global Pointer的统一信息抽取框架
信息抽取(Information Extraction)旨在从非结构化的文本中抽取出结构化信息,是构建知识库的重要步骤之一。通常信息抽取包括两个核心步骤,分别是命名实体识别(Named Entity Recognition)和关系抽取(Relation Extraction)。
我们基于HugNLP研发一款HugIE产品,旨在实现统一信息处理。其主要核心包括如下几个部分:
- 将实体识别和关系抽取,统一为新的范式——基于抽取式阅读理解的方法。HugIE采用Global Pointer模型实现信息抽取;
- 定义Instruction Prompt,指导模型生成需要抽取的内容;
- 采用多任务训练的方法训练;
HugIE目前已经开源了模型:https://huggingface.co/wjn1996/wjn1996-hugnlp-hugie-large-zh 可以基于HugNLP框架使用HugIE抽取模型,如下图所示:
五、In-Context Learning
In-Context Learning(ICL) 首次由GPT-3提出,其旨在挑选少量的标注样本作为提示(Prompt),从而在形式上促使大模型生成目标答案。ICL的优势在于无需对参数进行更新,即可实现惊艳的效果。
HugNLP框架集成了ICL,主要涉及到样本的挑选和预测结果的校准两个部分:
- 样本挑选:默认为从训练集中随机挑选样本,后期将会开发一系列样本挑选的算法,例如聚类、K近邻、余弦相似度等;
-
预测校准:由于所挑选标注样本与待预测样本存在分布差异,需要对预测的概率分布进行校准,这里采用Calibrate Before Use方法,如下图,可以对预测分布进行校准,提高预测效果。
目前ICL已经集成在HugNLP里,只需要指定下面参数即可:
--user_defined="data_name=xxx num_incontext_example=4 l=1 use_calibrate=True"--use_prompt_for_cls
六、半监督Self-training
半监督旨在同时结合标注数据和无标签数据来训练NLP任务。Self-training是一种简单但有效的迭代式训练方法,其通过Teacher模型先获取伪标签,对伪标签进行去噪后,再训练Student模型。Self-training方法传统上存在着较多噪声,可能会削弱训练结果。
为了提高性能,HugNLP引入成熟的Uncertainty-aware Self-training技术。框架图如下所示:
其采用了来自贝叶斯推断中的MC Dropout技术,即对Teacher模型执行 次推理,每次推理开启Dropout开关,从而得到若干与Teacher模型满足独立同分布的模型预测。
基于这些预测结果,可以通过信息熵的变化量得到Teacher模型对无标签数据的不确定性量化指标(即BALD算法),核心公式如下:
进行多次DC Dropout的代码实现如下(详见hugnlp_trainer.py):
y_T = list()for i in tqdm(range(T)): y_pred = [] for step, inputs in enumerate(unlabeled_dataloader): _, logits, __ = self.prediction_step(model, inputs, prediction_loss_only, ignore_keys=ignore_keys) y_pred.extend(logits.detach().cpu().numpy().tolist()) predict_proba = torch.softmax(torch.Tensor(y_pred).to(logits.device), -1) y_T.append(predict_proba.detach().cpu().numpy().tolist()) y_T = np.array(y_T)#compute mean y_mean = np.mean(y_T, axis=0)BALD算法实现如下:def get_BALD_acquisition(y_T):expected_entropy = - np.mean(np.sum(y_T * np.log(y_T + 1e-10), axis=-1), axis=0)expected_p = np.mean(y_T, axis=0)entropy_expected_p = - np.sum(expected_p * np.log(expected_p + 1e-10), axis=-1)return (entropy_expected_p - expected_entropy)
HugNLP使用半监督模式,只需要做两件事:
(1)执行脚本时添加参数:
--use_semi
(2)在指定的数据集目录下,存放unlabeled data文件。
七、其他更丰富的应用
HugNLP has developed numerous applications as listed below, and there are many more exciting applications currently under development.。HugNLP欢迎有志之士加入HugAILab参与开源开发工作。
위 내용은 ChatGPT 모델을 직접 훈련할 수 있습니다! 화동 사범 대학 및 NUS 오픈 소스 HugNLP 프레임워크: 한 번의 클릭으로 순위를 새로 고치고 NLP 교육을 완전히 통합합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Hiddenlayer의 획기적인 연구는 LLMS (Leading Lange Language Models)에서 중요한 취약점을 드러냅니다. 그들의 연구 결과는 "정책 인형극"이라는 보편적 인 바이 패스 기술을 보여줍니다.

환경 책임과 폐기물 감소에 대한 추진은 기본적으로 비즈니스 운영 방식을 바꾸는 것입니다. 이 혁신은 제품 개발, 제조 프로세스, 고객 관계, 파트너 선택 및 새로운 채택에 영향을 미칩니다.

Advanced AI 하드웨어에 대한 최근 제한은 AI 지배에 대한 확대 된 지정 학적 경쟁을 강조하여 중국의 외국 반도체 기술에 대한 의존도를 드러냅니다. 2024 년에 중국은 3,800 억 달러 상당의 반도체를 수입했습니다.

Google의 Chrome의 잠재적 인 강제 매각은 기술 산업 내에서 강력한 논쟁을 불러 일으켰습니다. OpenAi가 65%의 글로벌 시장 점유율을 자랑하는 주요 브라우저를 인수 할 가능성은 TH의 미래에 대한 중요한 의문을 제기합니다.

전반적인 광고 성장을 능가 함에도 불구하고 소매 미디어의 성장은 느려지고 있습니다. 이 성숙 단계는 생태계 조각화, 비용 상승, 측정 문제 및 통합 복잡성을 포함한 과제를 제시합니다. 그러나 인공 지능

깜박 거리는 스크린 모음 속에서 정적으로 오래된 라디오가 딱딱합니다. 이 불안정한 전자 제품 더미, 쉽게 불안정하게, 몰입 형 전시회에서 6 개의 설치 중 하나 인 "The-Waste Land"의 핵심을 형성합니다.

Google Cloud의 다음 2025 : 인프라, 연결 및 AI에 대한 초점 Google Cloud의 다음 2025 회의는 수많은 발전을 선보였으며 여기에서 자세히 설명하기에는 너무 많았습니다. 특정 공지 사항에 대한 심도있는 분석은 My의 기사를 참조하십시오.

이번 주 AI 및 XR : AI 구동 창의성의 물결은 음악 세대에서 영화 제작에 이르기까지 미디어와 엔터테인먼트를 통해 휩쓸고 있습니다. 헤드 라인으로 뛰어 들자. AI 생성 콘텐츠의 영향력 증가 : 기술 컨설턴트 인 Shelly Palme


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Dreamweaver Mac版
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

드림위버 CS6
시각적 웹 개발 도구
