Embedding 서비스의 로컬 실행 성능은 OpenAI Text-Embedding-Ada-002를 능가하므로 매우 편리합니다!
Ollama는 Llama 2, Mistral, Gemma와 같은 오픈 소스 모델을 로컬에서 쉽게 실행할 수 있는 매우 실용적인 도구입니다. 이번 글에서는 Ollama를 사용하여 텍스트를 벡터화하는 방법을 소개하겠습니다. Ollama가 로컬에 설치되어 있지 않은 경우 이 문서를 읽을 수 있습니다.
이 기사에서는 nomic-embed-text[2] 모델을 사용합니다. 짧은 컨텍스트 및 긴 컨텍스트 작업에서 OpenAI text-embedding-ada-002 및 text-embedding-3-small보다 성능이 뛰어난 텍스트 인코더입니다.
Nomic-embed-text 서비스 시작
ollama를 성공적으로 설치한 후 다음 명령을 사용하여 nomic-embed-text 모델을 가져옵니다.
ollama pull nomic-embed-text
모델을 성공적으로 가져온 후 다음 명령을 입력합니다. 터미널, ollama 서비스 시작:
ollama serve
이후 컬을 사용하여 임베딩 서비스가 정상적으로 실행되고 있는지 확인할 수 있습니다.
curl http://localhost:11434/api/embeddings -d '{"model": "nomic-embed-text","prompt": "The sky is blue because of Rayleigh scattering"}'
nomic-embed-text 서비스 사용
다음으로 방법을 소개하겠습니다. 로컬 txt 문서에 임베딩 작업을 구현하는 langchainjs 및 nomic -embed-text 서비스를 사용합니다. 해당 프로세스는 아래 그림에 나와 있습니다.
Pictures
1. 로컬 txt 파일 읽기
import { TextLoader } from "langchain/document_loaders/fs/text";async function load(path: string) {const loader = new TextLoader(path);const docs = await loader.load();return docs;}
위 코드에서는 langchainjs에서 제공하는 TextLoader를 내부적으로 사용하는 로드 함수를 정의했습니다. 로컬 txt 문서 가져오기를 읽어보세요.
2. txt 콘텐츠를 텍스트 블록으로 분할
import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";import { Document } from "langchain/document";function split(documents: Document[]) {const splitter = new RecursiveCharacterTextSplitter({chunkSize: 500,chunkOverlap: 20,});return splitter.splitDocuments(documents);}
위 코드에서는 RecursiveCharacterTextSplitter를 사용하여 읽은 txt 텍스트를 자르고 각 텍스트 블록의 크기를 500으로 설정했습니다.
3. 텍스트 블록에 임베딩 작업 수행
const EMBEDDINGS_URL = "http://127.0.0.1:11434/api/embeddings";async function embedding(path: string) {const docs = await load(path);const splittedDocs = await split(docs);for (let doc of splittedDocs) {const embedding = await sendRequest(EMBEDDINGS_URL, {model: "nomic-embed-text",prompt: doc.pageContent,});console.dir(embedding.embedding);}}
위 코드에서는 이전에 정의한 로드 및 분할 함수가 호출되는 임베딩 함수를 정의합니다. 그런 다음 생성된 텍스트 블록을 탐색하고 로컬에서 시작된 nomic-embed-text 삽입 서비스를 호출합니다. sendRequest 함수는 임베딩 요청을 보내는 데 사용됩니다. 구현 코드는 매우 간단합니다. 즉, fetch API를 사용하여 기존 REST API를 호출하는 것입니다.
async function sendRequest(url: string, data: Record<string, any>) {try {const response = await fetch(url, {method: "POST",body: JSON.stringify(data),headers: {"Content-Type": "application/json",},});if (!response.ok) {throw new Error(`HTTP error! status: ${response.status}`);}const responseData = await response.json();return responseData;} catch (error) {console.error("Error:", error);}}
다음으로 계속해서 embedTxtFile 함수를 정의하고, 함수 내에서 기존 임베딩 함수를 직접 호출하고 해당 예외 처리를 추가합니다.
async function embedTxtFile(path: string) {try {embedding(path);} catch (error) {console.dir(error);}}embedTxtFile("langchain.txt")
마지막으로 npx esno src/index.ts 명령을 사용하여 로컬 ts 파일을 빠르게 실행합니다. index.ts의 코드가 성공적으로 실행되면 터미널에 다음과 같은 결과가 출력됩니다.
Pictures
실제로 위 방법을 사용하는 것 외에도 @에서 [OllamaEmbeddings를 직접 사용할 수도 있습니다. langchain/community 모듈](https://js.langchain.com/docs/integrations/text_embedding/ollama "OllamaEmbeddings") 객체, ollama 임베딩 서비스 호출 논리를 내부적으로 캡슐화함:
import { OllamaEmbeddings } from "@langchain/community/embeddings/ollama";const embeddings = new OllamaEmbeddings({model: "nomic-embed-text", baseUrl: "http://127.0.0.1:11434",requestOptions: {useMMap: true,numThread: 6,numGpu: 1,},});const documents = ["Hello World!", "Bye Bye"];const documentEmbeddings = await embeddings.embedDocuments(documents);console.log(documentEmbeddings);
에 소개된 콘텐츠 이 기사에는 지식 기반 콘텐츠 색인을 구축하는 프로세스인 RAG 시스템 개발이 포함되어 있습니다. RAG 시스템에 대해 모르신다면 관련 글을 읽어보시면 됩니다.
References
[1]Ollama: https://ollama.com/
[2]nomic-embed-text: https://ollama.com/library/nomic-embed-text
위 내용은 Embedding 서비스의 로컬 실행 성능은 OpenAI Text-Embedding-Ada-002를 능가하므로 매우 편리합니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

AI 모델이 내놓은 답변이 전혀 이해하기 어렵다면 감히 사용해 보시겠습니까? 기계 학습 시스템이 더 중요한 영역에서 사용됨에 따라 우리가 그 결과를 신뢰할 수 있는 이유와 신뢰할 수 없는 경우를 보여주는 것이 점점 더 중요해지고 있습니다. 복잡한 시스템의 출력에 대한 신뢰를 얻는 한 가지 가능한 방법은 시스템이 인간이나 다른 신뢰할 수 있는 시스템이 읽을 수 있는 출력 해석을 생성하도록 요구하는 것입니다. 즉, 가능한 오류가 발생할 수 있는 지점까지 완전히 이해할 수 있습니다. 설립하다. 예를 들어, 사법 시스템에 대한 신뢰를 구축하기 위해 우리는 법원이 자신의 결정을 설명하고 뒷받침하는 명확하고 읽기 쉬운 서면 의견을 제공하도록 요구합니다. 대규모 언어 모델의 경우 유사한 접근 방식을 채택할 수도 있습니다. 그러나 이 접근 방식을 사용할 때는 언어 모델이 다음을 생성하는지 확인하세요.

1. 소개 지난 몇 년 동안 YOLO는 계산 비용과 감지 성능 간의 효과적인 균형으로 인해 실시간 객체 감지 분야에서 지배적인 패러다임이 되었습니다. 연구원들은 YOLO의 아키텍처 설계, 최적화 목표, 데이터 확장 전략 등을 탐색하여 상당한 진전을 이루었습니다. 동시에 사후 처리를 위해 NMS(비최대 억제)에 의존하면 YOLO의 엔드투엔드 배포가 방해되고 추론 대기 시간에 부정적인 영향을 미칩니다. YOLO에서는 다양한 구성 요소의 설계에 포괄적이고 철저한 검사가 부족하여 상당한 계산 중복이 발생하고 모델 기능이 제한됩니다. 이는 최적이 아닌 효율성을 제공하며 성능 향상을 위한 상대적으로 큰 잠재력을 제공합니다. 이 작업의 목표는 사후 처리와 모델 아키텍처 모두에서 YOLO의 성능 효율성 경계를 더욱 향상시키는 것입니다. 이를 위해

소프트웨어 기술의 선두에 있는 UIUC Zhang Lingming 그룹은 BigCode 조직의 연구원들과 함께 최근 StarCoder2-15B-Instruct 대규모 코드 모델을 발표했습니다. 이 혁신적인 성과는 코드 생성 작업에서 획기적인 발전을 이루었으며 CodeLlama-70B-Instruct를 성공적으로 능가하고 코드 생성 성능 목록의 최상위에 올랐습니다. StarCoder2-15B-Instruct의 독창성은 순수한 자체 정렬 전략에 있습니다. 전체 훈련 프로세스는 개방적이고 투명하며 완전히 자율적이고 제어 가능합니다. 이 모델은 값비싼 수동 주석에 의존하지 않고 StarCoder-15B 기본 모델을 미세 조정한 것에 대한 응답으로 StarCoder2-15B를 통해 수천 개의 명령을 생성합니다.

Open AI의 ChatGPT Mac 애플리케이션은 이제 모든 사람이 사용할 수 있게 되었으며, 지난 몇 달 동안 ChatGPT Plus를 구독하는 사용자에게만 제한되었습니다. 최신 Apple S가 있는 한 앱은 다른 기본 Mac 앱과 마찬가지로 설치됩니다.

올해 2월 Google은 엔지니어링 및 인프라 최적화, MoE 아키텍처 및 기타 전략을 통해 성능과 속도를 크게 향상시킨 다중 모드 대형 모델 Gemini 1.5를 출시했습니다. 더 긴 컨텍스트, 더 강력한 추론 기능, 교차 모달 콘텐츠 처리 능력이 향상되었습니다. 이번 금요일에 Google DeepMind는 Flash 버전과 기타 최신 업그레이드를 다루는 Gemini 1.5의 기술 보고서를 공식적으로 발표했습니다. 이 문서의 길이는 153페이지입니다. 기술 보고서 링크: https://storage.googleapis.com/deepmind-media/gemini/gemini_v1_5_report.pdf 이 보고서에서 Google은 Gemini1을 소개합니다.

울트라맨: 그의(Prafulla Dhariwal의) 비전, 재능, 신념 및 결단력이 없었다면 GPT-4o도 없었을 것입니다. "GPT-4o는 @prafdhar의 비전, 재능, 신념 및 장기적인 결단이 없었다면 불가능했을 것입니다. 제가 바라는 것이 업계에 혁명이 되기를 바라는 것은 이러한 노력(및 다른 많은 사람들의 작업)입니다. OpenAI가 차세대 플래그십 세대 모델 GPT-4o를 출시한 지 이틀 후, OpenAI CEO Altman은 이 프로젝트에 참여한 사람 중 한 명에 대해 언급했습니다. OpenAI에서 여러 팀과 18개월 동안 협력한 후 공동 창업자인 Greg Brockman은 다음과 같이 말했습니다. “GPT-4o는 전체 팀 노력의 결과입니다.

TinyLLaVA+ 프로젝트는 칭화대학교 전자공학과 멀티미디어 신호 및 지능형 정보 처리 연구소(MSIIP) Wu Ji 교수팀과 베이항대학교 인공지능대학원 Huang Lei 교수팀이 공동으로 개발했습니다. 칭화대학교 MSIIP 연구소는 오랫동안 지능형 의료, 자연어 처리 및 지식 발견, 다중 양식과 같은 연구 분야에 전념해 왔습니다. 베이징항공 팀은 오랫동안 딥 러닝, 다중 모드, 컴퓨터 비전과 같은 연구 분야에 전념해 왔습니다. TinyLLaVA+ 프로젝트의 목표는 언어 이해, 질문 및 답변, 대화 등 다중 모드 기능을 갖춘 소형 교차 언어 지능형 비서를 개발하는 것입니다. 프로젝트 팀은 각자의 장점을 최대한 활용하고 기술적 문제를 공동으로 극복하며 지능형 비서의 설계 및 개발을 실현할 것입니다. 이는 지능형 의료, 자연어 처리 및 지식에 대한 기회를 제공할 것입니다.

Beihang의 연구팀은 지구를 "복제"하기 위해 확산 모델을 사용했습니다. 전 세계 어디에서나 모델은 다양한 해상도의 원격 감지 이미지를 생성하여 풍부하고 다양한 "병렬 장면"을 생성할 수 있습니다. 또한 지형, 기후, 식생 등 복잡한 지리적 특징도 모두 고려되었습니다. Google 어스에서 영감을 받아 Beihang 연구팀은 전체 지구에 대한 위성 원격 감지 이미지를 머리 위 관점에서 심층 신경망에 '로드'했습니다. 이러한 네트워크를 기반으로 팀은 글로벌 하향식 시각 생성 모델인 MetaEarth를 구축했습니다. MetaEarth는 6억 개의 매개변수를 가지고 있으며 전 세계 모든 지리적 위치를 제한 없이 포괄하는 다양한 해상도의 원격 감지 이미지를 생성할 수 있습니다. 이전 연구와 비교하여 글로벌 원격탐사 이미지 생성 모델은
