<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Llm on man.hwangsehyun.com</title>
    <link>https://man.hwangsehyun.com/tags/llm/</link>
    <description>Recent content in Llm on man.hwangsehyun.com</description>
    <image>
      <title>man.hwangsehyun.com</title>
      <url>https://man.hwangsehyun.com/images/papermod-cover.png</url>
      <link>https://man.hwangsehyun.com/images/papermod-cover.png</link>
    </image>
    <generator>Hugo -- 0.145.0</generator>
    <language>kr</language>
    <lastBuildDate>Fri, 08 Nov 2024 00:00:00 +0900</lastBuildDate>
    <atom:link href="https://man.hwangsehyun.com/tags/llm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>LLM을 이용한 영양 상담 서비스</title>
      <link>https://man.hwangsehyun.com/project/llm-nutrition-coach/</link>
      <pubDate>Fri, 08 Nov 2024 00:00:00 +0900</pubDate>
      <guid>https://man.hwangsehyun.com/project/llm-nutrition-coach/</guid>
      <description>&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;크라우드웍스에서 &lt;a
  href=&#34;https://man.hwangsehyun.com/project/llm-docs-search/&#34;
  &gt;초기 6개월 동안 프로젝트&lt;/a
&gt;
를 수행하면서 개발자와 비개발자들이 프롬프트 엔지니어링과 서비스 개발에 걸쳐 가지고 있던 요구 사항을 종합하고 AWS 생태계 내에서 지속 가능한 해결책을 도출하려고 노력했습니다.&lt;/li&gt;
&lt;li&gt;3단계로 나누어진 프로젝트에서 첫 번째 단계로 Queue consumer service와 프롬프트 운영 프로세스를 Python으로 개발했습니다.&lt;/li&gt;
&lt;li&gt;3단계 전체에서 CloudFormation을 기반으로 하는 &lt;a
  href=&#34;https://docs.aws.amazon.com/cdk/v2/guide/home.html&#34;
  &gt;AWS CDK&lt;/a
&gt;
와 &lt;a
  href=&#34;https://aws.github.io/copilot-cli/&#34;
  &gt;Copilot CLI&lt;/a
&gt;
를 조합한 ECS 서비스 2개를 중심으로 다양한 AWS 리소스를 생성했습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;iframe-wrapper&#34;&gt;
&lt;p&gt;
  

  
    
    
      &lt;img
        src=&#34;https://man.hwangsehyun.com/diagram-export-21-01-2025-03_13_38_6717719122690619770.png&#34;
        
          width=&#34;2127&#34; height=&#34;1634&#34;
        
        alt=&#34;enter image description here&#34;
      /&gt;
    
  








&lt;/p&gt;
&lt;iframe src=&#34;https://app.eraser.io/workspace/TAAK8BBBhSbQTFLwV0tj?origin=share&#34; allowtransparency=&#34;true&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id=&#34;technology&#34;&gt;Technology&lt;/h2&gt;
&lt;h3 id=&#34;cloudformation-stacks&#34;&gt;CloudFormation Stacks&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Copilot CLI + AWS CDK&lt;/p&gt;</description>
    </item>
    <item>
      <title>Basic LLM Ops in AWS</title>
      <link>https://man.hwangsehyun.com/posts/llm-ops-in-aws/</link>
      <pubDate>Thu, 19 Sep 2024 00:00:00 +0900</pubDate>
      <guid>https://man.hwangsehyun.com/posts/llm-ops-in-aws/</guid>
      <description>&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;p&gt;
  &lt;img
    loading=&#34;lazy&#34;
    src=&#34;https://upload.wikimedia.org/wikipedia/commons/8/82/Las_Vegas_slot_machines.jpg&#34;
    alt=&#34;Row of digital-based slot machines inside a casino in Las Vegas&#34;
    
  /&gt;







&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Row of digital-based slot machines inside a casino in Las Vegas: &lt;a
  href=&#34;https://en.wikipedia.org/wiki/Slot_machine#/media/File:Las_Vegas_slot_machines.jpg&#34;
  &gt;Source&lt;/a
&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a
  href=&#34;https://arxiv.org/abs/2409.05746&#34;
  &gt;LLMs Will Always Hallucinate, and We Need to Live With This&lt;/a
&gt;
. 프롬프트에 수정이 필요할 때, 비관적인 관점에서는 LLM은 슬롯 머신과 같아서 &lt;a
  href=&#34;https://en.wikipedia.org/wiki/Balloon_effect&#34;
  &gt;풍선 효과&lt;/a
&gt;
를 피할 수 없다. 운이 좋으면 안 되던 것이 될 수도 있겠지만, 되던 것이 안 되던 경우도 비일비재했으며, 자연어를 출력하는 LLM의 특성 상 결국 테스트셋 전체를 LLM에 넣어보고 출력을 사람이 검토하는 작업을 정기적으로 수행했다. Batch job을 수행하고 비개발자와 결과를 검토하는 과정에서 개발자들은 엑셀을 읽고 쓰는 일회용 파이썬 코드를 (무수히 많이) 혼자서만 쓰고 폐기했으며, 이 코드는 서비스에서 돌아가는 코드와 입출력이 달라 테스트 결과도 신뢰할 수 없었다. Batch testing은 통과했으나 실제 서비스에서는 체감 성능이 다른 고통스런 경험을 수도 없이 반복하며, 이 비효율을 발본색원할 수 있는 시스템을 AWS 서비스들과 &lt;a
  href=&#34;https://opentelemetry.io/&#34;
  &gt;&lt;em&gt;OpenTelemetry&lt;/em&gt;&lt;/a
&gt;
를 이용해 구축하고 있다.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LLM을 이용한 기업용 챗봇 서비스</title>
      <link>https://man.hwangsehyun.com/project/llm-docs-search/</link>
      <pubDate>Tue, 30 Apr 2024 00:00:00 +0900</pubDate>
      <guid>https://man.hwangsehyun.com/project/llm-docs-search/</guid>
      <description>&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;blockquote&gt;
&lt;h3 id=&#34;&#34;&gt;💬 사내 문서에 대한 Q&amp;amp;A 챗봇 개발&lt;/h3&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;네이버 클라우드에서 고객사의 문서 데이터를 취급하기 위한 인프라 및 보안 설계&lt;/li&gt;
&lt;li&gt;챗봇 형태의 PoC 서비스 아키텍처 설계&lt;/li&gt;
&lt;li&gt;무정형의 HWP를 HTML 형태로 변환해 LLM에 적합한 형태로 정형화하고 검수하는 Frontend 개발&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;architecture&#34;&gt;Architecture&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-mermaid&#34; data-lang=&#34;mermaid&#34;&gt;sequenceDiagram
    autonumber

    actor frontend as 💻 Frontend
    participant auth as Auth λ
    participant backend as 🗄️ Backend
    
    frontend -&amp;gt;&amp;gt; auth: 📩 ID, PW
    auth -&amp;gt;&amp;gt; frontend: 🔐 Token

    frontend -&amp;gt;&amp;gt; backend: 🔐 Token 
    backend -&amp;gt;&amp;gt; auth: 🔐 Token
    auth -&amp;gt;&amp;gt; backend: ✅❌ Pass/Fail
    backend -&amp;gt;&amp;gt; frontend: 💯 Response
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;technology&#34;&gt;Technology&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;인프라
&lt;ul&gt;
&lt;li&gt;&lt;a
  href=&#34;https://min.io/&#34;
  &gt;Minio&lt;/a
&gt;
라는 S3-compatable object storage에 원본 문서와 Chunking document를 적재&lt;/li&gt;
&lt;li&gt;네이버 클라우드 VM 초기 구성, 목적 별로 할당 및 관리&lt;/li&gt;
&lt;li&gt;VPN을 통해서만 VPC 내부에 접근할 수 있도록 구성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;챗봇 형태의 PoC 서비스 구성
&lt;ul&gt;
&lt;li&gt;React frontend가 Fast API chat server, Self-hosted &lt;a
  href=&#34;https://sentry.io/welcome/&#34;
  &gt;Sentry&lt;/a
&gt;
 등에 접근할 수 있는 Nginx 개발&lt;/li&gt;
&lt;li&gt;업데이트가 잦은 Fast API 서버에 의존하지 않도록 JWT 서비스를 &lt;a
  href=&#34;https://www.ncloud.com/product/compute/cloudFunctions&#34;
  &gt;Naver Cloud Function&lt;/a
&gt;
를 이용해 별도로 분리&lt;/li&gt;
&lt;li&gt;채팅 API 사용 시나리오 관리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;html-정형화-frontend-개발&#34;&gt;HTML 정형화 Frontend 개발&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;기술 스택
&lt;ul&gt;
&lt;li&gt;&lt;a
  href=&#34;https://lit.dev/&#34;
  &gt;Lit&lt;/a
&gt;
: 대량의 검수 대상 HTML element에 Virtual DOM 없이 직접 접근하고 Boiler plating 없이 빠르게 개발하기 위해서 선택&lt;/li&gt;
&lt;li&gt;&lt;a
  href=&#34;https://prestd.com/&#34;
  &gt;pREST&lt;/a
&gt;
: 백엔드의 지원 없이 HTML 데이터를 DB에 적재하기 위해 선택&lt;/li&gt;
&lt;li&gt;DB
&lt;ul&gt;
&lt;li&gt;문서 파싱 규칙은 Indexed DB에 적재해 개인이 관리&lt;/li&gt;
&lt;li&gt;문서 파싱 결과는 Postgres에 적재해 RAG 시스템과 연동&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;html 트리를 탐색하며 html element마다 세상에  id를 부여하는 해싱 알고리즘 개발&lt;/li&gt;
&lt;li&gt;문서 파싱 규칙을 UI를 통해 작성하고 규칙의 적용 결과를 바로 확인할 수 있음
&lt;ul&gt;
&lt;li&gt;&lt;a
  href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent&#34;
  &gt;&lt;code&gt;textContent&lt;/code&gt;&lt;/a
&gt;
에 대한 Regex matching, CSS selector, DOM tree 내의 위치 등을 고려&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Minio와 연동된 Batch 기능 개발&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;lessons&#34;&gt;Lessons&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;새로운 회사에서 일을 시작하며 직접 고객사와 소통하지 않고 PM과 협업했습니다.&lt;/li&gt;
&lt;li&gt;Lit framework를 이용해서 복잡한 상태 관리를 해보았다.&lt;/li&gt;
&lt;li&gt;AWS 이외의 클라우드로 네이버 클라우드를 처음으로 경험해보았으나, 불안정하고 완성도가 떨어지는 모습에 더는 경험해보고 싶지 않았습니다.&lt;/li&gt;
&lt;li&gt;언어 모델과 RAG 시스템의 특성을 서서히 이해해가고 있습니다. 성능에 대한 사람들의 높은 기대치에는 절대 대중들이 예상하는 만큼 쉽게 도달할 수 없어 보이고, 언어 모델 이외의 전문 지식과 소프트웨어 기술에 대한 중요성을 매일 느끼며 겸손을 배우고 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;!--stackedit_data:
eyJoaXN0b3J5IjpbLTgxNjMyNDI5OCwtMTk4NDA4NDgxNCwxMT
U5NTU3MDE2LDE2NzgzMTY4MDEsNTk2MjAzMjkwLDg5NTAwMzY2
NiwxMDEwNDQwMjUxLC0xOTcyNzg5MTYwLC0xMDMyMDk2NzEyLD
E4NzM5MDgzMCw1NTc4Mjk2MDUsMjA0OTIzOTkyNiwxMzI2OTgw
MzQwLC0xNDgyMDk1NTI4XX0=
--&gt;</description>
    </item>
    <item>
      <title>LLM 기반 작명 서비스</title>
      <link>https://man.hwangsehyun.com/project/naimy/</link>
      <pubDate>Thu, 29 Feb 2024 00:00:00 +0900</pubDate>
      <guid>https://man.hwangsehyun.com/project/naimy/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;서비스 링크: &lt;a
  href=&#34;https://naimy.ai/&#34;
  &gt;https://naimy.ai/&lt;/a
&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;한글 브랜드 이름에 특화된 브랜드 이름 작명 서비스 &lt;a
  href=&#34;https://naimy.ai/&#34;
  &gt;naimy.ai&lt;/a
&gt;
. 작명에 이어 작명된 이름을 도메인 API, 특허청 API, 소셜 네트워킹 서비스 크롤링 등의 외부 서비스 연동을 통해서 적절성을 분석할 수 있습니다.&lt;/li&gt;
&lt;li&gt;크게 Postgres RDS를 사용하는 Lambda backend와 React frontend로 이루어진 애플리케이션으로, 외부 서비스 연동을 고려한 AWS 아키텍처를 설계하고 특허청을 제외한 외부 서비스 연동 개발을 진행했습니다.&lt;/li&gt;
&lt;li&gt;작명 옵션 선택지 변경, Database connection pool 디버깅, AWS 계정 마이그레이션 등 사이트 운영 이슈 대응&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;architecture&#34;&gt;Architecture&lt;/h2&gt;
&lt;p&gt;
  

  
    
    
      &lt;img
        src=&#34;https://man.hwangsehyun.com/Untitled-_9481550536864483097.png&#34;
        
          width=&#34;2000&#34; height=&#34;1283&#34;
        
        alt=&#34;enter image description here&#34;
      /&gt;
    
  








&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
