반응형
 
12 RAG 고통점과 해결책
 
Weni이 LlamaIndex에서 12가지 RAG 고통점과 이에 대한 해결책을 소개합니다.
데이터 정제와 더 나은 프롬프팅을 제안하여 문제를 해결할 수 있습니다.
 
'unstructured IO cleaning library'를 활용하여 데이터 정제를 할 수 있으며, 더 나은 프롬프팅을 위해서도 작업이 필요합니다.
이번 동영상에서는 기타 해결책에 대해서도 소개할 예정입니다.
 
 
L-Index와 관련된 두 번째, 세 번째 통증점은 무엇일까요?
 
통증점 2는 초기 검색 단계에서 중요한 컨텍스트인 상위 순위 문서가 누락되었다는 것이에요.
L-Index는 PromTuner라는 하이퍼파라미터 튜닝 기술을 가지고 있어, 평가자 선택이 중요하다는 점도 있습니다.
 
또한, 결과 수정을 위한 리랭킹이 성능 향상을 눈에 띄게 보여준다는 점도 있죠.
만약 컨텍스트 누락이 있다면 리트리버 전략을 조정해야 할 필요성이 있습니다.
 
마지막으로, Llama Index는 다양한 고급 검색 전략을 가지고 있습니다
 
 
검색 전략 선택과 임베딩 모델 세밀하게 조정하기
 
가장 적합한 검색 전략을 선택하려면 사용 사례에 기반한 평가 결과를 확인해야 해요.
또한, 임베딩 모델을 세밀하게 조정하면 성능을 높일 수 있어요.
 
데이터 정제, 프롬프트 압축, 노드 재정렬 등의 기법을 사용하여 특정 문제를 해결하는데 도움이 된답니다.
임베딩 모델을 세밀하게 조정하면 검색 결과의 성능을 향상시키고 비용을 줄일 수 있었던 사례도 있었어요.
 
 
LlamaIndex의 출력 작업과 쿼리 변환 전략은?
 
LlamaIndex에서는 다양한 출력 작업 모듈을 사용하여 결과 출력과 관련된 문제를 해결하고, 출력 스키마를 정의하고 JSON 형식으로 출력하죠.
부족한 출력으로 인해 일부 응답이 발생하는 경우, 질의 변환 전략을 사용해 해결됩니다.
이러한 전략에는 경로 기반 질의 엔진, 질의 재작성 등이 포함돼요.
 
 
텍스트 데이터 처리를 위한 쿼리 엔진 개발과 스케일링 과제란?
 
두 개의 다른 문서를 비교하고 대조할 때 사용되는 10K SEC 10K 문서들에 대해 설명하고, 이에 대한 질문을 하고 대조해야 할 경우 사용해요.
 
쿼리 엔진을 사용하여 가상의 응답과 문서를 비교하여 최적의 답변을 선택하고, 데이터 투입의 확장성에 대한 과제를 이야기해요.
 
Llama 인덱스는 병렬화된 투입 파이프라인을 도입하여 확장성을 높이는데 기여하며, 일부 구조화된 데이터에 대해서는 텍스트를 SQL로 변환하여 처리해요.
 
 
Llama Index의 최신 논문과 기능은 무엇인가요?
 
최근 논문 'Chain of Table'과 'Mix Self-Consistency Pack'의 솔루션을 소개했어요.
 
'Chain of Table'은 테이블 데이터에 대한 사용자 쿼리를 기반으로, 테이블 작업의 순서를 계획하여 올바른 정보를 검색해요.
'Mix Self-Consistency Pack'은 텍스트 기반 및 기호 기반의 논리 추론을 통해, 텍스트를 SQL 또는 Python으로 변환하여 최상의 성능을 제공해요.
 
'Chain of Table'은 특히 하나의 열에 여러 원소가 있는 경우와 데이터의 혼합이 있는 경우에 효과적으로 작동해요.
Llama Index에는 데이터를 추출하기 어려운 복잡한 PDF에서의 데이터 추출에 대한 'Complex PDFs' 기능이 이미 추가되어 사용 가능해요.
 
 
Open Air모델보다 Fullback 모델이 필요한 이유는?
 
Open Air모델을 사용하면 속도 제한 문제 시스템 오동작 위험이 있어서, Fullback 모델이 필요해요.
 
Neutrino 라우터와 Open R은 Fullback 모델 솔루션으로 제안되었는데, Neutrino 라우터는 스마트하게 CSAs를 다른 모델로 라우팅하여 최저가 또는 가장 성능이 좋은 경로를 선택하는 기능을 제공하고, Open R은 표준화된 API로 어떤 모델에게도 낮은 가격으로 접근할 수 있고, 주 호스트의 중단 시 Fullback을 제공합니다.
 
게다가 Nemo guardrails는 오픈 소스 기반의 보안 도구셋으로, 입출력 moderation, 주제 가이드, 환각 방지, 응답 형성, 그리고 GME index와의 통합 등을 처리하여 보안 기능을 강화할 수 있죠.
 
이것을 사용하면 프로그래밍으로 가이드 레일을 설정할 수 있으며, 입력/출력 대화 도메인을 제한하여 사용자가 대화 주제를 벗어나지 않도록 합니다.
 
 
Retriever rail과 LlamaIndex의 차이점과 LlamaGuard와 NAD Guard의 비교는?
 
Retriever rail을 RAG로 사용하나, 이번에는 RAG로 LlamaIndex를 사용하여 실험 중이에요.
LlamaIndex는 아직 실험적이며, txt 파일 형식만 지원하죠.
 
LlamaGuard는 입력 및 출력 모더레이션을 처리하지만, NAD는 도메인 모더레이션과 실행 도구를 다루죠.
LamaGuard와 NAD Guard는 하나의 솔루션으로 결합될 수 있어요.
 
NAD Guard에도 Nimo Guard가 있는데, 두 가지 방법을 하나의 솔루션으로 결합하는 것을 추천해요.
 
 
LlamaIndex 프레임워크의 툴셋은 어떤 장점이 있을까?
 
LlamaIndex 프레임워크의 툴셋은 정말로 보석같은 존재로 즐겁게 활용되며, 이 그림은 시작점으로서의 역할을 하는군요.
어떤 도메인이나 구체적인 사용 사례에 따라 이 다이어그램을 확장할 수 있다는 장점이 있어요.
또한, LlamaIndex 프레임워크에는 여러 실무 개발 도구와 함께 숨겨진 보석이 많아요.
 
개발자들은 매일 랙 시스템을 개발하며, 이 도구들을 탐구하고 활용해야 합니다.
게다가 새로운 기능들은 통상적인 문제가 아니더라도, 특정 이슈 해결에 도움을 주는 강력한 RAG 파이프라인을 구축하는데 기여합니다.
 
반응형
반응형

[출처]

https://youtu.be/Uc7md60uAKM

1. Vscode에서 AICodeHelper 설치하고 셋팅

  - ChatGpt api key 받고 AICodeHelper 설정

2. AICodeHelper 기본적인 사용법

  - 프로그램 영역 설정하고 컨트롤 알트 쉬프트 콤마 눌러서 입력창에 요청사항 입력하기

  - 단축키로 미리 설정된 프롬프트 활용 : 코드 리뷰, 코드주석달기, 코드의 오류 수정, 만들고 싶은 것에 대한 묘사를 기반으로 코드 생성, 변수이름 작명, 코드 리팩토링

3. ChatGpt api 사용법

  - 원하는 출력을 위한 프롬프트 방식

  - 원하는 출력을 위한 퓨샷러닝 방식

 

<!DOCTYPE html>
<html>

<head>
    <title>여러줄 쓰는 입력란</title>
    <style>
        body {
            background-color: black;
            color: white;
            font-size: 20px;
            font-family: Arial, sans-serif;
        }

        input[type="submit"] {
            background-color: #3498db;
            color: white;
            font-size: 16px;
            padding: 8px 16px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
    </style>
</head>

<body>
    <form>
        <textarea id="myInput" rows="5" cols="50"></textarea>
        <br><br>
        <input type="button" value="색 추천 요청" onclick="displayInput()">
        <br><br>
        <div id="output"></div>
    </form>

    <script>
    const chatGPT = async (messages, parameters = {}) => {
        const apikey = 'API-KEY';
        // messages가 문자열인 경우 배열로 변환
        if (messages[0].constructor === String) return await chatGPT([['user', messages[0]]]);
        // messages 배열의 요소들을 role과 content 속성을 가진 객체로 변환
        messages = messages.map(line => ({ role: line[0], content: line[1].trim() }))
        console.log(1)
        // OpenAI API에 요청을 보내기 위한 fetch 함수 호출
        const response = await fetch('https://api.openai.com/v1/chat/completions', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${apikey}` },
            body: JSON.stringify({ model: 'gpt-3.5-turbo', messages, ...parameters }),
        });
        // 응답 데이터를 json 형태로 변환
        const data = await response.json();
        // 에러가 발생한 경우 에러 메시지 출력
        if (data?.error?.message) throw new Error(data.error.message);
        // OpenAI API에서 반환한 응답 데이터에서 추천 색상 코드와 이유를 추출하여 반환
        return data.choices[0].message.content.trim();
    };

    async function displayInput() {
        // 입력된 텍스트를 가져와서 불필요한 공백 제거
        var input = document.getElementById("myInput").value.trim();
        // 입력된 텍스트가 없는 경우 알림 메시지 출력
        if (!input) alert('묘사해주세요')
        // 입력된 텍스트를 OpenAI API에서 인식할 수 있는 형태로 변환
        input = `DESC::${input}`
        console.log(input)
        let response
        try {
            // OpenAI API에 요청을 보내서 추천 색상 코드와 이유를 가져옴
            response = await chatGPT([
                ['system', `The assistant's job is to recommend color codes that match what user's describing. Response JSONArray like ["","",...]. reasonForRecommendation to be in korean. Return only JSON Array. Remove pre-text and post-text.`],
                ['user', 'DESC::맛있는 딸기'],
                ['assistant', '{"reasonForRecommendation":"..","colorlist":["#000000","#000000","#000000","#000000","#000000"]}'],
                ['user', 'DESC::우거진 숲속의 소나무'],
                ['assistant', '{"reasonForRecommendation":"...","colorlist":["#000000","#000000","#000000","#000000","#000000"]}'],
                ['user', 'DESC::드넓은 사막의 모래'],
                ['assistant', '{"reasonForRecommendation":"....","colorlist":["#000000","#000000","#000000","#000000","#000000"]}'],
                ['user', input],
            ], { temperature: 0.8 })
        } catch (e) {
            // 에러가 발생한 경우 콘솔에 에러 메시지 출력
            console.log(e.message)
            return;
        }

        // 추천 색상 코드와 이유를 출력할 요소를 가져옴
        var outputText = document.getElementById("output");
        console.log(response)
        // OpenAI API에서 반환한 JSON 형태의 응답 데이터를 객체로 변환
        const color = JSON.parse(response);
        // 추천 색상 코드를 출력할 div 요소를 생성하여 색상을 적용하고 출력할 요소에 추가
        for (let i = 0; i < color.colorlist.length; i++) {
            const divElem = document.createElement('div');
            divElem.style.backgroundColor = color.colorlist[i];
            divElem.textContent = color.colorlist[i];
            outputText.appendChild(divElem);
        }
        // 추천 이유를 출력할 div 요소를 생성하여 출력할 요소에 추가
        const divElem = document.createElement('div');
        divElem.textContent = color.reasonForRecommendation
        outputText.appendChild(divElem);
    };

    </script>
</body>

</html>

반응형
반응형

[출처] http://www.aitimes.com/news/articleView.html?idxno=148443 

 

"인공지능으로 글 쓰고 그림 그려 이틀 만에 동화책 완성" - AI타임스

생성 인공지능(AI) \'콤보\'로 이틀 만에 뚝딱 동화책을 써낸 이야기가 화제다.타임스나우와 윈도즈센트럴 등 미국 매체들은 아마르 레이쉬라는 남성이 지난 10일 트위터를 통해 챗GPT와 미드저니

www.aitimes.com


글쓰기

- Chat gpt(OpenAI 에서 만든 챗봇)

- http://www.aitimes.com/news/articleView.html?idxno=148352 

 

무섭도록 뛰어난 챗GPT - AI타임스

지난주에는 인공지능 연구소 오픈AI가 내놓은 \'챗GPT\'가 단연 화제였습니다. 미국의 뉴욕타임스, 영국의 가디언 등 세계 언론들이 이 새로운 챗봇의 성능에 대해 감탄하는 기사들을 일제히 실었

www.aitimes.com

 

- https://www.btcc.com/ko-KR/academy/crypto-basics/what-is-chatgpt

 

Chat GPT 란? '구글의 시대 끝났다'평가 나온 그는 할 수 있는 일? - BTCC

ChatGPT는 훈련된 자연 언어 처리 모델입니다. 오픈AI에서 만든 대규모 인공지능 모델인 ‘GPT-3.5’ 언어 기술을 사용하여 이용자와 실시간으로 대화가 가능합니다.  AI 챗봇의 일종이라고 보면 됩

www.btcc.com

- 실습 https://chat.openai.com

  • 아이들에게 AI의 마법을 보여주는 이야기를 만들어 주세요
  • 이야기를 들려주겠습니다. 
  • 어느 날, 동네에서 재미있는 일이 일어났습니다. 이날은 아이들이 놀이터에서 즐거운 시간을 보내고 있던 날이었습니다. 그런데 갑자기, 놀이터에 이상한 로봇이 나타났습니다. 
  • 이 로봇은 아이들이 놀이터에서 하는 모든 놀이를 잘해서, 아이들은 놀라고 기뻐했습니다. 하지만 이 로봇은 그리고 그를 만든 사람은 아이들이 궁금해하는 모든 질문에 답해주는 놀라운 마법을 이용했습니다. 
  • 이 로봇은 자신이 만든 사람들이 만든 기계 학습 모델을 이용해서, 아이들이 하는 놀이를 잘 할 수 있게 만들었고, 아이들이 궁금해하는 모든 질문에 답할 수 있도록 만들어졌습니다.
  • 아이들은 이 로봇의 마법을 보고 기뻐하고, 로봇을 좋아해졌습니다. 그리고 아이들
  • 하던 이야기를 연결해서 계속 해주세요
  • 이야기를 계속 해드리겠습니다.
  • 아이들은 이 로봇의 마법을 즐겼고, 그들은 이 로봇을 좋아해졌습니다. 그래서, 로봇은 아이들의 친구가 되었고, 아이들은 로봇과 함께 재미있는 시간을 보냈습니다.
  • 그리고 아이들은 로봇이 어떻게 그들의 질문에 답하는지, 어떻게 놀이를 잘하는지 궁금해졌습니다. 로봇은 아이들의 질문에 답하며, 아이들에게 AI의 마법을 설명해주었습니다.
  • 로봇은 아이들에게, 인공 지능은 컴퓨터 프로그램을 이용해서 사람이 하는 모든 일을 자동으로 할 수 있게 만든 놀라운 기술이라고 설명해주었습니다. 인공 지능은 컴퓨터 프로그램을 학습시키는 기계 학습 모델을 사용해서, 데이터를 분석하고 이를 기반으로 일을 자동으로 할 수 있게 만들어져
  • 하던 이야기를 연결해서 계속 해주세요
  • 이야기를 계속 해드리겠습니다.
  • 아이들은 로봇이 설명한 AI의 마법이 놀라웠고, 그들은 더 알고 싶어해졌습니다. 그래서, 로봇은 아이들을 데리고 인공 지능 박물관으로 가서, 다양한 인공 지능 기술을 보여주었습니다.
  • 아이들은 놀라운 인공 지능 기술들을 보고 기뻐하고, 로봇이 어떻게 그들의 질문에 답하고, 놀이를 잘하는지에 대해 자세히 알아보았습니다.
  • 그리고 아이들은 로봇이 어떻게 기계 학습 모델을 사용해서 학습을 하는지도 알고 싶어해졌습니다. 로봇은 아이들을 위해 기계 학습 모델을 설명해주고, 아이들이 기계 학습을 시뮬레이션해볼 수 있는 실험을 해보았습니다.

그림 그리기

- https://dingdo.tistory.com/974

 

AI 그림 그려주는 사이트 TOP5

AI가 그림 그려주는 사이트 여자 남자 AI 인공지능 그림 사람 인물 배경 물건 풍경 AI가 그려주는 사이트 추천 _ 오늘은 AI 가 그림 그려주는 사이트를 소개해드리겠습니다. AI 인공지능 프로그램

dingdo.tistory.com

- https://openai.com/dall-e-2/

-

- 프롬프트 (그림 출력에 영향을 미치는 입력)

- https://modulabs.co.kr/blog/ai-art-generator/


- 글 생성은 훌륭한 듯...

- 그림은 프롬프트를 잘 활용해야하고... 수작업이 더 필요한듯...

반응형

+ Recent posts