개발일지

[LLM] ChatGPT vs. Gemini vs. Claude 비교하기 (논문, 전문지식)

송채채 2024. 2. 23. 15:39

논문 작성, 코드, 전문지식에 대한 질문에 ChatGPT와 claude.ai를 비교하면서 더 나은 것을 사용하고 있었다.

최근 구글의 Gemini가 Bard를 대체하면서 성능비교를 하고 있는데, 개인적으로 Gemini의 성능이 기대 이상이라

간단한 예제로 3개 언어모델을 비교해보고자 한다.

 

- 2024년 2월 23일 기준

 

 

ChatGPT: https://chat.openai.com/

- OpenAI. GPT 3.5 무료 기준. 워낙 사용성이 다양하고 범용적으로는 가장 만족도가 높음. 단, 문체를 고정하거나 논문 작성시 추가적인 내용을 논리적으로 보충하거나 없는 내용을 작성하는 것은 다소 성능이 낮음. GPT-4의 경우 성능이 훨씬 좋다고 하지만, 유료 버전은 사용해보지 않음

 

Gemini: https://gemini.google.com/

- Google. 2024년 2월 기준 기존 Bard 대신 성능을 더 업그레이드한 언어모델. 답변을 3가지로 생성하여 같은 질문에 여러 답변을 볼 수 있는 장점이 있음. 무료 버전 (pro)의 사용경험상 긴 글을 출력할 때 여전히 문장이 끊기는 문제가 있음. ChatGPT와 같이 뒤이어 작성할 수 있도록 개선되면 좋을듯

 

Claude: https://claude.ai/

- Anthropic AI: OpenAI에서 근무하던 창업자 Dario Amodei 가 따로 설립한 회사. 무료버전 기준.  긴 텍스트의 경우, 입력하면 txt로 임베딩되어 질문만 따로 작성할 수 있음. 한글 문체가 좀 더 아카데믹함. code는 ChatGPT보다 성능이 낮다고 느껴짐. 

 

 

논문

 

개인적으로 논문 작성할 때, 문장만 단편적으로 서술한 뒤 뒤에 내용을 차근차근 생각하며 적는 편이다.

이럴 때, LLM으로 문장을 입력으로 하고 한 단락 또는 서론, 초록, 연구방법 구성에 맞게 다시 작성해달라고 하면서 필요에 맞게 수정하며 사용하고 있다.

 

아래 예시는 실제 사용한 내용을 추출했지만, 내용은 생략한 부분이 있음

. 기관 정보는 행정정보, 공공데이터 등 데이터를 관리하거나 데이터의 메타데이터로 사용된다.
. 서로 다른 데이터를 연계하거나, 데이터를 확장하기 위해 기관을 중심으로 데이터를 상호운용하는 작업이 중요하다.
. 서로 다른 데이터를 연계하는 것은 데이터의 공통키를 찾는 작업이 선행된다.
. 서로 다른 데이터를 연계하는 주요 정보 중 하나는 관리기관, 제공기관 등 기관에 대한 것이다. 기관정보의 주요 식별자는 기관명이다. 하지만, 이름을 사용한 데이터 연계는 한계가 있다. 기관명의 표기는 관리환경에 따라 다르게 표기되거나, 부정확하게 기입되기 때문이다.

(중략)

----
위 내용 사용해서 약 2000자 내외로 논문의 서론을 작성해줘

 

ChatGPT

  • ChatGPT: ~습니다. 문체로 고정되어 출력함. 2000자를 최대한 맞춰서 출력함. 단, 입력한 내용을 반복하는 느낌으로 출력하여 문장을 좀 더 매끄럽게 만들어준 수준임. '한 단락을 작성해줘', '불릿을 사용해줘' 등의 형식의 요청을 잘 반영하는 편에 속함
서론:
현대 사회에서는 다양한 분야에서 발생하는 데이터를 효과적으로 관리하고 상호 연계하여 활용하는 것이 중요한 과제로 부상하고 있다. 이러한 데이터는 주로 행정정보 및 공공데이터와 같은 기관 정보를 기반으로 하며, 이를 관리하고 상호운용성을 확보하는 작업은 핵심적인 과제로 인식되고 있다. 서로 다른 데이터를 연계하거나 데이터를 확장하기 위해서는 기관을 중심으로 데이터를 상호운용하는 것이 필수적이며, 이러한 연계 작업은 데이터의 공통키를 찾는 선행 작업이 필요하다.

기관 정보 연계의 핵심은 관리기관, 제공기관 등의 기관에 대한 정보를 서로 다른 데이터 간에 일관되게 연계하는 것이다. 그러나 기관명을 사용한 데이터 연계는 이름의 표기가 관리환경에 따라 다르게 되거나, 부정확하게 기입될 수 있는 등의 한계가 있다. 이를 극복하기 위해 코드화된 식별체계가 연구되어왔으며, 특히 행정구역코드는 다양한 데이터의 연계에 활용되어 왔다.

한국은 행정정보를 관리하기 위해 코드 기반의 관리체계를 운영하고 있으며, 행정표준코드를 통해 다양한 기관에 대한 코드를 체계화하여 제공하고 있다. 이러한 기관코드는 행정정보의 공동이용을 위한 중요한 기반이 되어 행정업무 분석에 핵심적인 역할을 수행하고 있다. 그러나 외부 데이터와의 연계를 위해서는 기관코드를 명시하거나 기관명을 기준으로 연계하는 것이 필요하다.

 

Gemini

  • Gemini: 논문의 구성 자체를 나누어 연구배경, 방법, 내용을 작성해줌. 단, 뒤에 줄글 형식으로 작성해주라는 명령어를 추가적으로 작성했음에도 불릿이나 단락을 구분하여 작성해줌. 즉, 형식에 대한 요청사항이 잘 반영되지 않음. 하지만, 입력값에서 부족했던 내용의 흐름을 작성해주어 풍부한 글로 만들어줌. 개인적으로 가장 도움이 됨
1. 서론
1.1 연구 배경 및 중요성
현대 사회는 정보의 중요성이 더욱 강조되면서 데이터의 활용 범위가 크게 확대되고 있다. 특히, 행정정보, 공공데이터 등 다양한 데이터를 효과적으로 관리하고 활용하는 것은 정부 및 기업의 주요 과제로 떠오르고 있다. 이러한 과제를 해결하기 위해 데이터 상호운용성이라는 개념이 등장하였다. 데이터 상호운용성은 서로 다른 시스템이나 환경에 존재하는 데이터를 의미적으로 연계하여 사용할 수 있는 수준을 의미한다.

데이터 상호운용성을 높이기 위한 다양한 노력들이 이루어지고 있는 가운데, 기관 중심의 데이터 상호운용성은 중요한 연구 주제로 떠오르고 있다. 기관은 데이터 생성, 관리, 활용의 중심적인 역할을 수행하기 때문에, 기관 중심의 데이터 상호운용성을 높이는 것은 데이터 활용 효율성을 크게 향상시킬 수 있다.

예시:정부는 각 부처별로 데이터를 관리하고 활용하고 있지만, 서로 다른 부처의 데이터는 서로 연계되어 있지 않아 데이터 분석 및 활용에 어려움을 겪고 있다.기업은 고객 정보, 제품 정보, 거래 정보 등 다양한 데이터를 보유하고 있지만, 데이터가 서로 분산되어 있어 효과적인 분석 및 활용이 어렵다.

1.2 기관 중심 데이터 상호운용성의 문제점
현재 기관 중심 데이터 상호운용성을 높이는 데에는 여러 가지 문제점이 존재한다.

기관명 기반 데이터 연계의 한계:
표기 불일치: '행정안전부' vs. '안전행정부'
부정확성: '한국산업인력공단' vs. '고용노동부 산업인력공단'
구체성/단편성: '서울특별시청' vs. '강남구청'

기관 유형별 시스템 분리:행정기관, 교육기관, 공공기관, 금융기관 등 각 기관 유형별로 시스템이 별도로 운영되어 기관 간 관계 표현 부족기관코드 연계 어려움:외부 데이터에 기관코드 명시 필요기관명 기반 연계 시 높은 연계율 필요

 

Claude

  • Claude: 논문 문체에 알맞은 글을 작성해줌. 내용의 수준은 ChatGPT와 비슷하지만, 2000자를 채우지 못함. 전반적으로 Claude는 ChatGPT에 비해 출력값이 짧은 경향이 있음. 형식에 대한 요청은 잘 반영함
다음과 같이 약 2000자 내외로 논문 서론을 작성했습니다.
기관정보는 행정정보, 공공데이터 등 다양한 데이터의 관리 및 메타데이터로 중요하게 사용되고 있다. 그러나 서로 다른 데이터간 연계나 확장을 위해서는 기관을 중심으로 한 데이터 상호운용 작업이 선행되어야 한다.

다양한 데이터를 연계하는 방식은 공통키를 찾는 작업이 필요하다. 연계를 위한 주요 정보 중 하나는 관리기관, 제공기관 등 기관 정보이다. 특히 기관명은 기관정보의 대표적인 식별자로 사용되고 있으나, 기관명 기반 연계에는 다음과 같은 한계점이 있다. 기관명 표기 방식의 다양성과 기입 오류로 인해 정확한 연계가 어렵다는 점이다.

이러한 문제를 극복하기 위해 코드화된 식별체계가 도입되어 왔다. 대표적으로 행정구역코드는 다양한 데이터 연계의 중심점으로 사용되고 있다. 우리나라도 행정기관 간 원활한 정보 공유를 위해 행정표준코드 체계를 구축·운영 중이다. 행정표준코드에는 총 37종의 다양한 분야 코드가 정의되어 있으며, 특히 기관코드는 각 기관의 고유 코드로 중요성이 높다.
(생략)

 

 

 

추가 실험 

(생략)
문자열이 아닌 코드화된 식별체계를 사용하면, [ ].
---- 코드화된 식별체계를 사용하면 좋은 장점을 대괄호안에 쓰고 싶어. 어떤 내용이 들어가면 좋을 지 3-5개 추천해줘

 

내가 바랬던 결과는 대괄호 안에 예시 문장을 바로 삽입하는 것을 기대했다.

 

ChatGPT

  • ChatGPT는 자꾸 설명을 해준다.. 형식에 맞추어 작성하기 보다 대괄호 안에 들어가면 좋은 내용을 알려줌
기관명이나 관리부서명과 같은 문자열(label) 중심의 데이터 연계는 한계가 있습니다. 데이터 관리환경에 따라 표기 불일치와 부정확성이 발생할 수 있기 때문입니다. 이러한 문제를 극복하고 효율적인 데이터 연계를 위해 코드화된 식별체계를 사용하는 것은 다양한 이점을 가져올 수 있습니다.
- 일관성과 정확성 확보: 코드화된 식별체계를 사용하면 특정 기관이나 부서에 대한 코드가 표준화되어 일관된 형식으로 관리됩니다. 이로써 데이터의 표기 일치성을 확보하고 부정확성 문제를 최소화할 수 있습니다.
(생략)
이러한 이점들은 코드화된 식별체계를 통해 데이터의 일관성, 효율성, 그리고 정확성을 확보하며 데이터 관리 및 상호운용성을 향상시킬 수 있습니다.

 

 

Gemini

  • ChatGPT와 비슷하게 들어가면 좋을 내용을 먼저 알려주고, 뒤에 예시와 결론을 작성해줌. 결론을 이용하면 대괄호를 채울 수 있어서 좋고, 다양한 관점에서 추가 정보를 작성해주어 도움이 되었음
코드화된 식별체계를 사용하면 얻을 수 있는 장점 (3-5개 추천)
1. 표기 불일치 문제 해결: 코드는 기관마다 고유하게 부여되므로 표기 불일치 문제를 해결할 수 있습니다.
2. 데이터 연계 효율성 증대: 코드를 기반으로 데이터를 연계하면 기관명 기반 연계보다 효율성을 크게 높일 수 있습니다.
(생략)
예시: 정부는 행정기관 간 데이터 연계를 위해 행정표준코드를 사용하고 있습니다.금융기관은 금융거래 정보 연계를 위해 금융기관코드를 사용하고 있습니다.기업은 자체적으로 코드화된 식별체계를 구축하여 품목, 고객, 거래 등의 데이터를 관리하고 있습니다.
결론: 코드화된 식별체계는 기관 중심 데이터 상호운용성을 향상시키는 데 중요한 역할을 수행합니다. 코드화된 식별체계를 통해 데이터 관리 및 활용 효율성을 증대하고, 데이터 분석 정확도를 향상시키며, 데이터 활용 범위를 확대할 수 있습니다.

 

 

Claude

  • 내가 원했던 형식적 구조를 맞추어 답변해줌. 대괄호 안에 들어갈 내용을 작성해주었다. 다만, 추가적인 정보없이 아래 답변만 주기 때문에 내용을 더 풍부하게 작성하기에 한계가 있음
기관명과 같이 문자열(label) 중심의 데이터 연계는 한계가 있다. 데이터 관리환경에 따라 표기 불일치, 부정확성에 대한 문제가 발생하기 때문이다. 문자열이 아닌 코드화된 식별체계를 사용하면, [정확성과 일관성을 확보할 수 있다, 데이터 품질이 향상된다, 연계 및 관리 효율성이 높아진다, 기관 간 협업이 용이해진다, 시스템 간 통합이 용이해진다]

 

 

개인적인 결론

 

1차적으로 claude를 사용하고 추가정보와 패러프레이징을 원하면 ChatGPT와 Gemini가 도움이 되었다. 최근 Gemini를 사용해보고 있는데 기대이상으로 성능이 좋아 오히려 자주 쓸 예정.

 

 

전문지식 

지식그래프를 전공하면서, OWL 온톨로지 모델을 공부중이다.

논리식과 철학에 관련된 분야라 정보가 많지 않고, 공식문서는 구체적인 예시가 부족해 언어모델에 질문해보았다.

 

owl:ReflexiveProperty 속성의 정의를 찾아볼 수 있는 곳은 OWL 공식문서Protege의 설명글만 있었다. 

어떤 역할을 하는 속성인지 이해가 되지 않아 각 언어모델에 질문했다. 정의를 찾아보고, 입력값에 적어주어 예시로 설명해주라고 요청했다.

 

Properties can also be reflexive: such a property relates everything to itself. For the following example, note that everybody has himself as a relative.
Reflexive - asserts that the selected property is Reflexive. Asserting that a property is reflexive causes every single individual to be related to itself via that property.
OWL의 속성에서 reflexive가 어떤건지 이해가 잘 안돼
예시를 들어서 설명해줘

 

ChatGPT

  • ChatGPT: 예시가 적절하지 않음...hasParent로 이해가 안돼서 Gemini 설명보고, 그 예시 틀린거 아니냐고 다시 물었더니 'hasIdentify'로 설명해줬다. 그리고 '반사적'이라는 것을 이해시켜주지 않고 단순 번역이라서 도움이 되지 않았다.
OWL(웹 온톨로지 언어)에서의 Reflexive 속성은 선택한 속성이 반사적임을 나타냅니다. 이는 모든 개체가 해당 속성을 통해 자신과 관련되어 있다는 것을 의미합니다. 간단한 예시를 통해 설명하겠습니다. 가령, "HasParent"라는 속성이 있다고 가정해봅시다. 이 속성이 Reflexive하다면 모든 개체는 자기 자신과 "HasParent"라는 속성을 가지게 됩니다.
예를 들어, A, B, C가 각각의 객체(개체)라고 하고, "HasParent" 속성이 Reflexive하다면:
1. A HasParent A
2. B HasParent B
3. C HasParent C
즉, 모든 개체는 자기 자신과 "HasParent"라는 속성을 가지게 됩니다.
이는 반사적인 성질을 나타내며, 해당 속성이 각 개체와 자기 자신 간의 관계를 형성한다는 의미입니다.

 

 

Gemini

  • Gemini: Gemini의 설명이 이해하는 데 가장 도움이 됐다. 예시를 2가지로 알려주고, 이해하기 쉽도록 쉬운 문장으로 다시 풀어서 설명해주었다.
OWL에서 reflexive 속성이란 모든 개체를 자기 자신과 연결하는 속성을 말합니다. 좀 더 이해하기 쉽게 설명하자면, 모든 개체가 자기 자신에게 그 속성을 가지고 있다는 뜻입니다. 예를 들어, "relative" (친척)이라는 속성을 생각해 보세요. OWL에서 "relative" 속성을 reflexive로 설정하면, 모든 개체는 자신을 자신의 친척으로 가지게 됩니다. 즉, 가족 관계가 아니더라도 모든 사람이 자신에게 "relative" 속성을 가지게 되는 것입니다. 다른 예시로는 "equal" (동일) 속성을 들 수 있습니다. "equal" 속성을 reflexive로 설정하면, 모든 개체는 자신과 동일하다고 간주됩니다. 이는 직관적으로는 당연하게 보이지만, 추론 과정에서 논리적인 오류를 야기할 수도 있습니다. 따라서 reflexive 속성을 설정할 때는 주의해야 합니다.

OWL에서 reflexive 속성을 설정하는 방법은 두 가지가 있습니다.
OWL 표준 형식 사용: XML<rdf:Description> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ReflexiveProperty"/> </rdf:Description>
Protege와 같은 OWL 편집기 사용: Protege에서 속성을 선택하고 "Reflexive" 체크박스를 선택하면 됩니다. reflexive 속성은 OWL에서 유용한 기능이지만, 적절하게 사용해야 합니다. 설정하기 전에 반드시 속성의 의미와 추론 과정에 미칠 영향을 고려해야 합니다.

 

 

Claude

  • Claude: ChatGPT와 비슷한 수준이지만, 예시를 알맞게 사용하고 이해가능하도록 쉬운 문장으로 설명했다.
Here is an example to illustrate a reflexive property in OWL:
``` <owl:ObjectProperty rdf:about="hasRelative"> <rdf:type rdf:resource="&owl;ReflexiveProperty"/> </owl:ObjectProperty> ```

This defines a property called "hasRelative" and asserts that it is a reflexive property. What this means is that if an individual is related to itself via the "hasRelative" property, then the statement is considered true.

For example:
``` <Person rdf:about="John"> <hasRelative rdf:resource="John"/> </Person> ```

Here, the person named "John" is asserted to have himself as a relative via the "hasRelative" property. This is considered a true statement because "hasRelative" is a reflexive property. In summary, defining a property as reflexive in OWL allows us to state that individuals are related to themselves via that property. This is useful in cases where it logically makes sense for an individual to be related to itself in a particular way.

 

claude는 영어로 설명해주어, '한글로 더 차근차근 설명해줄래' 라는 입력을 추가했다. 

네, 한글로 더 자세히 설명해드리겠습니다. OWL에서 reflexive 속성이란, 그 속성을 통해 개체가 자기 자신과 연관될 수 있다는 것을 의미합니다. 예를 들어, "친척을 가지다(hasRelative)" 라는 속성이 reflexive 속성이라고 정의되어 있다면, "John이 John의 친척을 가지고 있다"는 명제가 참이 됩니다.
즉, John이 자기 자신과 "친척을 가지다"라는 관계로 연결되어 있기 때문입니다.

이는 논리적으로 John이 자기 자신의 친척이 될 수 있다고 가정했기 때문입니다. 다시 말해, OWL에서 어떤 속성을 reflexive하다고 정의하면, 그 속성으로 개체가 자기 자신과 연관될 수 있음을 의미합니다.

이는 그 속성의 성질上, 개체가 자기 자신과 논리적으로 관련을 맺을 수 있는 경우에 유용하게 쓰입니다. 이해가 되시나요? 제가 더 자세히 설명드릴 부분이 있다면 말씀해 주세요.

 

 

개인적인 결론

 

도메인에 따라 언어모델의 성능의 차이가 클 것으로 보임. 하지만, 정의를 주고 예시를 설명하거나 이해하기 쉽게 단계적으로 설명해달라고 했을 때, 의외로 Gemini가 성능이 좋았다.

ChatGPT는 범용적인 지식이 많지만, 예시가 틀린 경우가 꽤 많아서 아예 모르는 분야를 질문하는 것은 위험요소가 있어 보임

Claude는 너무 평범한 느낌...딱히 장단점이 뚜렷하지 않음

 

모르는 분야에 대한 검색이나 이해를 위해선, 웹 상에서 정확한 정의를 찾고난 뒤 언어모델에 추가적으로 이해를 돕는 방향으로 사용하면 좋겠다.

 

+ Code분야에 대한 것은 ChatGPT를 주로 사용해봤기 때문에 아직 비교를 할 수 없었다. 

추가적으로 느낀점이 생기면 공유할 예정

 

반응형