pruned 4-gram 모델

139 views
Skip to first unread message

거우니

unread,
Aug 25, 2021, 3:47:54 AM8/25/21
to zeroth-help
한가지 질문만 추가적으로 더 드리겠습니다...
보면 3-gram 모델에만 pruning을 진행하고 4-gram 모델은 fglarge로 프루닝을 진행하지 않은것으로 보이는데 fgsmall, fgmedium 모델을 만들려면  /data/local/lm/buildLM/_scripts_/에서 mergeNGRAMs.sh, buildNGRAM.sh에 3-gram과 똑같은 방법으로 4-gram부분만 추가해주면 되는것일까요? 더 추가하거나 수정해야 하는 부분은 어디일지 질문드립니다.

이승현

unread,
Aug 26, 2021, 4:28:17 AM8/26/21
to zeroth-help
안녕하세요

네 말씀하신대로 4-gram 모델에 pruning을 진행하려면 3-gram과 동일한 방법을 적용하면 가능합니다. 추가로 수정해야할 부분은 없습니다.
2021년 8월 25일 수요일 오후 4시 47분 54초 UTC+9에 miz...@gmail.com님이 작성:

거우니

unread,
Aug 26, 2021, 8:44:04 AM8/26/21
to zeroth-help

흠...위에 적은대로 tgsmall, tgmed를 만드는 것처럼 똑같이 fg모델에 대해서도 적용해주었는데 훈련이 끝나고 디렉토리를 살펴보면 tg에 대한 부분들만 있고 fg에 대한것은 fglarge밖에 만들어지지 않은것으로 확인됩니다.

혹시 그모델이 따로 저장되는 장소가 있을까요?
그리고 한가지 더 질문을 드리고자 합니다.
지금 4-gram까지 돌린모델의 경우 트레이닝을 시킨 PC에서 돌렸을때는 LM-rescoring까지 마쳐서 decoding된 결과를 확인할 수 있는데
gpu가 없는 임베디드 보드에서 훈련된 모델을 export하여 실행시켰을 때는 lm-rescore가 작동하지 않습니다.
혹시 이문제에 대해서 답변 주실수있으면 감사하겠습니다.
2021년 8월 26일 목요일 오후 5시 28분 17초 UTC+9에 이승현님이 작성:

이승현

unread,
Aug 26, 2021, 9:24:28 PM8/26/21
to zeroth-help
fg 모델을 생성할 때 경로를 어디로 지정하셨는지 알 수 있을까요? 아마 방법에는 문제가 없었을 것 같고 경로에 따라 엉뚱한 곳에 생성되었을 것 같습니다. 생성할 때 사용하신 코드를 간단하게라도 보여주시면 도움이 될 것입니다.
일반적으로 언어 모델을 구축하는 run.sh를 실행하면 data/local/lm/buildLM/_corpus_ 디렉터리 아래에 모델들이 생성되어서 이를 data/local/lm 아래로 복사하는 작업을 진행하는데 다시 살펴보시면 어딘가 있을 수도 있습니다.

>>> 지금 4-gram까지 돌린모델의 경우 트레이닝을 시킨 PC에서 돌렸을때는 LM-rescoring까지 마쳐서 decoding된 결과를 확인할 수 있는데
>>> gpu가 없는 임베디드 보드에서 훈련된 모델을 export하여 실행시켰을 때는 lm-rescore가 작동하지 않습니다.

같은 맥락으로 위 질문도 실행하신 코드나 실행하셨을 때 출력된 로그 파일 등을 첨부해주시면 도움이 될 것 같습니다.
작동하지 않는다는 것이 정상적으로 디코딩이 된 것처럼 보이는데 정작 결과가 없는 것인지,
중간에 어떤 오류가 발생해서 중단된 것인지 잘 모르겠습니다.

gpu가 없어도 lm-rescore는 정상적으로 실행이 될 것이고, 
파일 경로를 잘못 지정하거나 파일을 제대로 복사를 하지 않으셨다면 분명 오류 메시지가 출력될 것입니다.

2021년 8월 26일 목요일 오후 9시 44분 4초 UTC+9에 miz...@gmail.com님이 작성:

거우니

unread,
Aug 27, 2021, 5:14:13 AM8/27/21
to zeroth-help

답변 감사드립니다. 
PC에서 돌렸을떄는 LM rescore 이후 디코딩된 문자가 뜨는데 라즈베리파이에서 돌렸을때는 별도의 에러없이 문자가 출력되지 않은채로 종료되어 사진 첨부드립니다.
 
2021년 8월 27일 금요일 오전 10시 24분 28초 UTC+9에 이승현님이 작성:
rpb.JPG
Message has been deleted

이승현

unread,
Aug 29, 2021, 9:36:05 PM8/29/21
to zeroth-help
정상적으로 진행이 된다면 lattice-lmrescore부터 LOG가 다 찍혀줘야하는데 뭔가 이상하네요.
중간에 std::bad_array_new_length 가 발생한 게 문제인 것 같습니다.
라즈베리파이 환경이라서 그런 것 같은데
정확히 어느 부분에서 문제가 생겼는지 확인하려면
local/decode.sh에서 lattice-lmrescore와 파이프로 연결된 코드들을 따로따로 하나씩 실행해봐야할 것 같습니다.


2021년 8월 27일 금요일 오후 6시 14분 13초 UTC+9에 miz...@gmail.com님이 작성:

Wenzhe15

unread,
Aug 30, 2021, 9:34:15 PM8/30/21
to zeroth-help
파이프로 연결된 코드를 순서대로 하나씩 실행해서 결과를 파일에 저장하고 다음 명령어에서 파일로부터 읽어 와서 처리하는 방식으로 먼저 테스트해보세요.
만약 문제가 없으면 라즈베리파이의 리소스 문제일 가능성이 높습니다. 메모리를 한 번 체크해보시는 거 좋을 거 같아요.
fg lm 의 사이즈가 좀 크기 때문에 Embedded 환경에서는 tg carpa를 사용 하는 방법도 고려할 수 있습니다.
Reply all
Reply to author
Forward
0 new messages