Проект генерации заголовков GPT2 с супер подробными аннотациями
Запустите код
streamlit run app.py
or
streamlit run app.py --server.port your_port
Детали показаны на рисунке ниже:


| данные | Исходный адрес данных/проект | Адрес загрузки файла после обработки |
|---|---|---|
| Tsinghua News Data | адрес | Baidu Cloud Disk Code: Vhol |
| СОГУ НОВОСТИ ДАННЫЕ | адрес | Код извлечения облачного диска Baidu: ODE6 |
| NLPCC2017 Сводные данные | адрес | Baidu Cloud Disk Code: E0ZQ |
| Сводные данные CSL | адрес | Код извлечения облачного диска Baidu: 0QOT |
| Сводные данные об образовании и обучении | адрес | Baidu Cloud Disk Code: kjz3 |
| Сводные данные LCSS | адрес | Baidu Cloud Disk Code: Bzov |
| Сводные данные Shence Cup 2018 | адрес | Baidu Cloud Disk Code: 6F4F |
| Сводные данные Ванфанга | адрес | Baidu Cloud Disk Code: P69G |
| WeChat Официальные данные сводки учетной записи | адрес | Код извлечения облачных дисков Baidu: 5HA |
| Данные Вейбо | адрес | Baidu Cloud Disk Code: 85T5 |
| News2016ZH News Data | адрес | Код извлечения облачных дисков Baidu: QSJ1 |
Сбор наборов данных: код извлечения облачных дисков Baidu: 7AM8
См. Файл TEDS.TXT для получения подробной информации
Данные поступают из Sina Weibo, Ссылка на данные: https://www.jianshu.com/p/8f52352f0748?tdsourcetag=s_pcqq_aiomsg
| Описание данных | Скачать адрес |
|---|---|
| Необработанные данные | Baidu NetDisk, Extract Code: NQZI |
| Обработанные данные | Baidu NetDisk, Extract Code: Duba |
Первоначальные данные - это новости, загруженные непосредственно из Интернета. После обработки данные обрабатываются данными с использованием data_helper.py и могут быть непосредственно использованы для обучения.
См. Файл config/config.json для получения подробной информации
| параметр | ценить |
|---|---|
| initializer_range | 0,02 |
| layer_norm_epsilon | 1e-05 |
| n_ctx | 512 |
| n_embd | 768 |
| n_head | 12 |
| n_layer | 6 |
| n_positions | 512 |
| vocab_size | 13317 |
Примечание. В дополнение к векторному представлению каждого слова вход модели также включает в себя представление вектора текстовых параграфов и представление вектора положения. 
| Модель | Скачать адрес |
|---|---|
| Модель GPT2 | Baidu netdisk, код извлечения: 165b |
python3 train.py
或
python3 train.py --output_dir output_dir/(自定义保存模型路径)
Параметры обучения могут быть добавлены самостоятельно, включая параметры следующим образом:
| параметр | тип | значение по умолчанию | описывать |
|---|---|---|---|
| устройство | стр | "0" | Настройка видеокарты, используемой для обучения или тестирования |
| config_path | стр | "config/config.json" | Информация о конфигурации параметров модели |
| vocab_path | стр | "Vocab/Vocab.txt" | Список слов - это маленький список слов и добавил несколько новых отметок |
| train_file_path | стр | "DATA_DIR/TRAIN_DATA.JSON" | Данные обучения, генерируемые заголовками новостей |
| test_file_path | стр | "DATA_DIR/TEST_DATA.JSON" | Данные тестирования, генерируемые названиями новостей |
| Предварительный_модель_Пат | стр | Никто | Путь к предварительно обученной модели GPT2 |
| data_dir | стр | "DATA_DIR" | Создать кэшированный путь хранения данных |
| num_train_epochs | инт | 5 | Количество раундов для обучения модели |
| train_batch_size | инт | 16 | Размер каждой партии во время тренировки |
| test_batch_size | инт | 8 | Размер каждой партии во время тестирования |
| Learning_Rate | плавать | 1E-4 | Скорость обучения во время обучения модели |
| Demplup_proportion | плавать | 0,1 | Вероятность разминки, то есть процент от общего размера этапа тренировок, выполняют операцию по разминке |
| ADAM_EPSILON | плавать | 1e-8 | Эпсилон значения Adam Optimizer |
| logging_steps | инт | 20 | Количество шагов для сохранения журнала обучения |
| eval_steps | инт | 4000 | Сколько шагов будет выполнено во время обучения? |
| gradient_accumulation_steps | инт | 1 | Градиент накопление |
| max_grad_norm | плавать | 1.0 | |
| output_dir | стр | "output_dir/" | Выходной путь модели |
| семя | инт | 2020 | Случайные семена |
| max_len | инт | 512 | Максимальная длина входной модели меньше, чем n_ctx в конфигурации |
Или изменить содержание функции set_args в файле train.py, чтобы изменить значение по умолчанию.
Модели, предоставленные этим проектом, обучили 5 эпох, а убыток обучения модели и потеря тестового набора следующие: 

Модель еще не была полностью обучена. Согласно тенденции потери, вы можете продолжать тренироваться.
python3 generate_title.py
或
python3 generate_title.py --top_k 3 --top_p 0.9999 --generate_max_len 32
Параметры могут быть добавлены самостоятельно, включая параметры следующим образом:
| параметр | тип | значение по умолчанию | описывать |
|---|---|---|---|
| устройство | стр | "0" | Настройка видеокарты, используемой для обучения или тестирования |
| model_path | стр | "output_dir/Checkpoint-139805" | Путь файла модели |
| vocab_path | стр | "Vocab/Vocab.txt" | Список слов - это маленький список слов и добавил несколько новых отметок |
| batch_size | инт | 3 | Количество генерируемых названий |
| Generate_max_len | инт | 32 | Максимальная длина сгенерированного заголовка |
| Repetition_penalty | плавать | 1.2 | Повторяемый уровень штрафа |
| top_k | инт | 5 | Сколько меток с наибольшей вероятностью удержания во время декодирования |
| top_p | плавать | 0,95 | Маркеры, вероятность удержания которых больше, чем то, что является скопленной вероятностью удержания во время декодирования |
| max_len | инт | 512 | Максимальная длина входной модели меньше, чем n_ctx в конфигурации |
Результаты теста следующие:
从测试集中抽一篇
content:
今日,中国三条重要高铁干线——兰新高铁、贵广铁路和南广铁路将开通运营。其中兰新高铁是中国首条高原高铁,全长1776公里,最高票价658元。贵广铁路最贵车票320元,南广铁路最贵车票206.5元,这两条线路大大缩短西南与各地的时空距离。出行更方便了!中国“高铁版图”再扩容 三条重要高铁今日开通
title:
生成的第1个标题为:中国“高铁版图”再扩容 三条重要高铁今日开通
生成的第2个标题为:贵广铁路最高铁版图
生成的第3个标题为:出行更方便了!中国“高铁版图”再扩容三条重要高铁今日开通
从网上随便找一篇新闻
content:
值岁末,一年一度的中央经济工作会议牵动全球目光。今年的会议,背景特殊、节点关键、意义重大。12月16日至18日。北京,京西宾馆。站在“两个一百年”奋斗目标的历史交汇点上,2020年中央经济工作会议谋划着中国经济发展大计。习近平总书记在会上发表了重要讲话,深刻分析国内外经济形势,提出2021年经济工作总体要求和政策取向,部署重点任务,为开局“十四五”、开启全面建设社会主义现代化国家新征程定向领航。
title:
生成的第1个标题为:习近平总书记在京会上发表重大计划 提出2025年经济工作总体要求和政策
生成的第2个标题为:习近平总书记在会上发表重要讲话
生成的第3个标题为:习近平总书记在会上发表重要讲话,深刻分析国内外经济形势
Декодирование принимает стратегии декодирования TOP_K и TOP_P, которые имеют определенную случайность и могут быть созданы неоднократно.
python3 http_server.py
或
python3 http_server.py --http_id "0.0.0.0" --port 5555
Локальные тесты используют "127.0.0.1:5555/news-title-generate". Если вы предоставите другим доступ, вам нужно только заменить "127.0.0.1" на IP -адрес компьютера.
Детали показаны на рисунке ниже:


@misc{GPT2-NewsTitle,
author = {Cong Liu},
title = {Chinese NewsTitle Generation Project by GPT2},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
url="https://github.com/liucongg/GPT2-NewsTitle",
}
Электронная почта: [email protected]
Zhihu: Liu Cong NLP
Официальная учетная запись: рабочая станция NLP
