английский | китайский
Использование поиска отрывков с генеративными моделями для ответа на вопросы открытого домена
Поиск Плотный поиск проходов для ответов на вопросы открытой области
APSпланировщик
Полноценная диалоговая система, которую можно развернуть и запустить
Модель TensorFlow
Трансформатор
Seq2Seq
Модель поиска SMN
Трансформатор выборки по расписанию
GPT2
Диалог задачи
Модель Пайторча
Трансформатор
Seq2Seq
Этот проект направлен на создание диалоговой системы, которую можно развернуть в Интернете. Он включает в себя как открытые доменные, так и ориентированные на задачи диалоговые системы. Примечания к прочтению статьи размещены в другом проекте: используются TensorFlow и Pytorch. в проекте реализовать.
Каталог данных на складе содержит данные игрушек для каждого корпуса, которые можно использовать для проверки работоспособности системы. Полный корпус и документ можно просмотреть здесь.
LCCC
КроссWOZ
маленький желтый цыпленок
Дубан
Убунту
Вейбо
Цинъюнь
Тьеба
Linux выполняет run.sh, а чтобы проверить каталог проекта, выполните check.sh (или check.py).
Actuator.py в корневом каталоге — это общий вход выполнения, который выполняется путем вызова команды следующего формата (обратите внимание, что файл require.txt устанавливается перед выполнением):
python actuator.py --version [Options] --model [Options] ...
При выполнении через actuator.py в корневом каталоге --version
, --model
и --act
являются обязательными параметрами, среди которых --version
— версия кода tf/torch
, --model
— соответствующая модель transformer/smn...
для выполнения. transformer/smn...
, а act — это режим выполнения (по умолчанию режим pre_treat
). Более подробные параметры команды см. в файле actuator.py
для каждой модели или в соответствующем файле конфигурации json в каталоге конфигурации.
Режим выполнения --act
описывается следующим образом:
Режим pre_treat — это режим предварительной обработки текста. Если нет набора результатов сегментации слов и словаря, сначала необходимо запустить режим pre_treat.
режим поезда - это режим тренировки
Режим оценки — режим оценки индикатора
Режим чата — это режим разговора. При работе в режиме чата введите ESC, чтобы выйти из разговора.
Обычная последовательность выполнения: pre_treat->train->evaluate->chat.
Для каждой модели существует отдельный файл actu.py, который может обходить внешнюю связь для выполнения и разработки. Однако обратите внимание на настройку пути к каталогу проекта во время выполнения.
В диалоге размещается основной код соответствующей модели, чтобы облегчить будущую инкапсуляцию и упаковку.
checkpoints сохраняет местоположение контрольных точек
config — каталог, в котором сохраняется файл конфигурации
data — место хранения исходных данных. При этом в этом каталоге сохраняются и файлы промежуточных данных, созданные в ходе выполнения модели.
Каталог сохранения моделей для моделей
tensorflow и pytorch размещают основной код для построения модели и выполнения каждого модуля.
preprocess_corpus.py — это скрипт обработки корпуса, который обрабатывает каждый корпус в одно- и многораундовых диалогах и стандартизирует вызовы унифицированного интерфейса.
read_data.py используется для вызова формата загрузки данных load_dataset.py.
metrics.py — скрипт для различных индикаторов
Tools.py — это инструментальный скрипт, который содержит средства разбиения по словам, операции с журналами, сценарии сохранения/загрузки контрольных точек и т. д.
Поместите инструкции по документации под документами, включая примечания к прочтению типовых документов.
docker (mobile) используется для сценариев развертывания сервера (мобильного терминала).
Сервер — это интерфейс службы пользовательского интерфейса. Используйте flask для его создания и использования. Просто выполните соответствующий файл server.py.
инструменты — это зарезервированный каталог инструментов.
actuator.py (run.sh) — общий вход привода.
check.py (check.sh) — скрипт проверки каталога проекта.
Перед использованием диалоговой системы поиска SMN необходимо подготовить среду Solr. Для среды системы развертывания Solr рекомендуется использовать контейнерное развертывание (рекомендуется Docker) и подготовить:
Солр(8.6.3)
pysolr(3.9.0)
Краткое объяснение приведено ниже. Для получения более подробной информации обратитесь к статье: Получение ответа кандидата из поисковой диалоговой системы — использование pysolr для вызова Solr.
Чтобы обеспечить стабильную работу Solr в сети и облегчить последующее обслуживание, используйте DockerFile для развертывания по адресу получения DockerFile: docker-solr.
Только для использования тестовой модели вы можете использовать следующие простейшие инструкции сборки:
docker pull solr:8.6.3 # 然后启动solr docker run -itd --name solr -p 8983:8983 solr:8.6.3 # 然后创建core核心选择器,这里取名smn(可选) docker exec -it --user=solr solr bin/solr create_core -c smn
Что касается инструментов сегментации слов в Solr, то есть IK Analyzer, Smartcn, сегментатор слов Pinyin и т. д. Вам необходимо загрузить соответствующий jar-файл, а затем добавить конфигурацию в управляемую схему файла конфигурации ядра Solr.
Особое примечание : если вы используете TF-IDF, вам также необходимо включить конфигурацию подобия в управляемой схеме.
После развертывания Solr в Интернете используйте pysolr в Python для подключения и использования:
pip install pysolr
Метод добавления индексных данных (обычно сначала требующий проверки безопасности) заключается в следующем. Добавьте индекс к данным ответа. Ответы представляют собой json в форме: [{},{},{},...]. Каждый объект в нем создается в соответствии с вашими потребностями в ответе:
solr = pysolr.Solr(url=solr_server, always_commit=True, timeout=10) # 安全检查 solr.ping() solr.add(docs=responses)
Метод запроса следующий. Чтобы запросить все операторы с использованием TF-IDF, метод запроса следующий:
{!func}sum(product(idf(utterance,key1),tf(utterance,key1),product(idf(utterance,key2),tf(utterance,key2),...)
Перед использованием вам необходимо добавить данные в Solr. Чтобы использовать их в этой модели SMN, просто сначала запустите режим pre_treat.
Внимание — это все, что вам нужно | Примечания к чтению: новаторская работа Transformer, достойная внимательного чтения |
Сеть последовательного сопоставления: новая архитектура для многоэтапного выбора ответов в чат-ботах на основе поиска. Примечания к чтению: модель диалога поиска SMN, многоуровневое и многоуровневое извлечение информации Девлин и др., 2018
Массовое исследование архитектур нейронного машинного перевода | Примечания к прочтению: Представлен первый крупномасштабный анализ с использованием гиперпараметров архитектуры NMT. Эксперимент приносит новые идеи и практические предложения по созданию и расширению архитектур NMT. Денни и др., 2017 г. |
Запланированная выборка для трансформаторов | Примечания к прочтению: применение запланированной выборки в трансформаторе Михайлова и др., 2019
Лицензия Apache, версия 2.0. Авторские права: DengBoCong, 2021 г. Копия лицензии.