전체 글 (204) 썸네일형 리스트형 [Python] Lv. 0 (3) 1. 대소문자 바꿔서 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/181949■ 입력으로 들어오는 문자열의 각 문자(character)가 대문자이면(isupper()) 소문자로 변환하고, 소문자이면 대문자로 변환하면 된다.string = input()answer = ''for s in string: if s.isupper(): answer += s.lower() else: answer += s.upper() print(answer)2. 직사각형 넓이 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/120860■ x좌표 2개를 비.. [Python] Lv. 0 (2) 1. 다항식 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/120863■ 양의 정수, 공백, 'x', '+'로 이루어진 다항식이 문자열로 들어오면, 다항식 계산 결과를 반환하는 문제이다. ■ 예를 들어 "3x + 7 + x"가 들어오면, "4x + 7"을 return하면 된다. ■ 연산은 '+' 하나이므로, ' + '를 기준으로 항들을 분리시키면 변수 x의 항과 상수항으로 구분할 수 있다. ■ 이때 항이 'x'이면, '1 x'이므로 변수 x의 계수에 +1을, '3x'이면 변수 x의 계수에 +3을 하면 된다. 예를 들어 문자열 '42x'라면 문자 'x'앞에 오는 숫자들만 더해주면 된다. ■ 상수는 단순히 int로 변환한 다음 더해주면 된다... [Python] Lv. 0 (1) 1. 옹알이 (1)https://school.programmers.co.kr/learn/courses/30/lessons/120956?language=python3■ 문제는 'aya', 'ye', 'woo', 'ma' 네 가지 옹알이 문자열을 각각 최대 한 번씩 사용하여 이어 붙였을 때 만들 수 있는 문자열의 개수를 찾는 것이다. ■ 예를 들어, 입력 babbling = ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]에 대해 살펴보면, - (1) "ayaye" = "aya" + "ye" (O)- (2) "uuuma" (X)- (3) "ye" (O)- (4) "yemawoo" = "ye" + "ma" + "woo" (O)- (5) "ayaa" = "aya" + "a" (X.. Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering ■ Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks에서 제안한 RAG에서 답변을 생성하는 과정은 다음과 같다.■ query가 들어오면 query와 관련된 external knowledge base(위키피디아 등의 모델 외부의 DB)의 passage들을 찾은 다음, query와 passage를 연결한 것을 독립적으로 seq2seq(Generator)에 입력해서 결과들을 marginalize하는 것을 볼 수 있다. ■ 즉, 각 passage가 독립적으로 디코딩에 사용되어 passage 간 정보를 통합하는 과정이 없기 때문에, passage 수가 너무 많아지면 관련 없는 노이즈 정보가 증가하여 성능이 저하될 수도 있다. ■ 실제로 RAG 논문.. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks ■ 대규모 PLM(Pre-trained Language Model)은 파라미터 내에 knowledge를 저장한 상태에서, 다운스트림 NLP 태스크에 맞게 파인튜닝될 때 SOTA 결과를 달성하고 있으며, 이는 최근 NLP 연구에서 두드러지는 추세이다. ■ 그러나 파라미터에 저장된 knowledge에 접근하고 정밀하게 사용하는 방법은 여전히 제한적이라서, knowledge-intensive 태스크(예: question-answering task)에서는 특정 태스크에 특화된 아키텍처에 비해 그 성능이 뒤처진다. ■ 또한, 결정에 대한 출처를 제공하고, world knowledge를 업데이트하는 것은 여전히 미해결 문제로 남아있다. - 모델이 왜 그런 답변을 생성했는지 근거를 제시하기 어렵다. 이러한 문제의 대.. Dense Passage Retrieval for Open-Domain Question Answering ■ Open-domain question answering은 candidate contexts를 선택하기 위해 passage retrieval에 의존하며, 검색을 위해 TF-IDF나 BM25와 같은 전통적인 희소 벡터 공간 모델을 사용한다. ■ 이 논문에서는 간단한 듀얼-인코더(dual-encoder) 프레임워크를 통해 소수의 question과 passage로부터 임베딩이 학습되는, 밀집 표현(dense representations)만으로도 검색이 구현될 수 있음을 보여준다. [2004.04906] Dense Passage Retrieval for Open-Domain Question Answering Dense Passage Retrieval for Open-Domain Question Answeri.. REALM:Retrieval-Augmented Language Model Pre-Training ■ LM은 pre-training을 통해 corpus에 있는 knowledge를 모델의 parameter에 implicit한 방식으로 저장한다. ■ 이러한 LM의 한계는 모델 크기가 정해져 있기 때문에 world knowledge를 모두 수용하기 어렵다는 점과 knowledge이 어디에 저장되는지 명확히 알 수 없다는 점, 그리고 새로운 knowledge를 업데이트하려면 모델 전체를 학습해야 한다는 점이 있다.■ 이런 문제의 해결책은 knowledge Retriever를 사용하는 것이다. 이는 모델이 pre-training, fine-tuning, 그리고 inference 과정에서 위키피디아와 같은 대규모 corpus로부터 document를 검색하고 참고할 수 있게 하는 것이다. ■ Retrieve.. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks ■ BERT와 RoBERTa는 semantic textual similarity (STS)와 같은 sentence-pair regression tasks에서 SOTA의 성능을 달성했다. 그러나 이 방식은 두 문장을 모두 네트워크에 입력해야 하므로 막대한 computational overhead를 유발한다 - 예를 들어, 10,000개의 문장 모음에서 가장 유사한 쌍을 찾기 위해 BERT로는 약 5천만 번의 계산(약 65시간 소요)이 필요하다. - BERT의 이러한 구조(cross-encoder 구조)는 semantic similarity search이나 clustering같은 unsupervised tasks에 사용하기에 부적합하다. ■ 논문에서는 사전학습된 BERT를 수정하여, siamese ne.. 이전 1 2 3 4 ··· 26 다음