サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
book.st-hakky.com
※この記事は AI によって書かれた内容をもとに作成したものになります。Hakky では自社の取り組みの一環として、記事作成に AI を導入しています。 AI 技術の進化に伴い、ビジネスシーンでの ChatGPT の活用が広がってきています。この記事では、ChatGPT に代表される大規模言語モデル(LLM)を活用するプロンプトのアプローチの一つで、LangChain にも実装されている ReAct について、ビジネスパーソン向けに解説いたします。 LLM と プロンプトエンジニアLLM を効果的に活用するための考え方のひとつに「プロンプトエンジニアリング」というものがあります。プロンプトは、LLM に与える命令等のことで、目的のタスクと併せてヒントや関連する情報などを与えることでより目的にあった回答を引き出すことができるようになります。プロンプトエンジニアリングとは何かについてはこちら
OpenAI API を Python で使うOpenAI API を Python で使うには以下の手順に従います。 OpenAI PythonライブラリをインストールするAPIキーを設定するAPIを使用してテキスト生成する以下でこれらの手順を説明します。 1. OpenAI Pythonライブラリをインストールするopenai Pythonライブラリをインストールしてください
※この記事は AI によって書かれた内容をもとに作成したものになります。Hakky では自社の取り組みの一環として、記事作成に AI を導入しています。 プロンプトの役割 プロンプトは、ChatGPT や他の AI 言語モデルに対して、指示や質問を与えるための入力文です。プロンプトを受け取った AI モデルは、それに基づいて適切な文章を生成したり、回答を提供します。 例えば、「東京のおすすめ観光地は?」といったプロンプトを入力すると、AI モデルは東京の人気スポットに関する情報を提供することができます。また、「怒りを表現する文章を教えてください」というプロンプトに対しては、感情を含んだ文章が生成されるでしょう。 プロンプトは、AI モデルとの対話の鍵となる要素であり、適切なプロンプトを与えることで、求める情報や文章を効果的に取得することが可能です。ただし、プロンプトの内容や表現によっては
※この記事は AI によって書かれた内容をもとに作成したものになります。Hakky では自社の取り組みの一環として、記事作成に AI を導入しています。 2023 年 7 月 7 日、ChatGPTの運営元であるOpenAIは、全 ChatGPT Plus ユーザーを対象に**Code interpreter(コードインタプリタ)**の実装を発表しました。これにより ChatGPT 上でコードを実行したりローカルファイルのデータを扱うことができるようになります。この記事では、ChatGPT と Code Interpreter の概要から、具体的な活用方法、設定方法、トラブルシューティングまでを詳しく解説します。 Code interpreter(コードインタプリタ)とは ChatGPTは、OpenAI が開発した対話型の生成 AI です。この AI は膨大な学習データに基づいて自然な応
はじめに この記事では、API のサービングの観点から EC2,ECS, Lambda を比較します。 EC2 の API サービングについて 料金 リザーブドインスタンスを購入することで料金を下げることができる メンテナンス ECS や Lambda に比べて、より多くの管理とメンテナンスが必要 EC2 では、ユーザがインスタンスを自ら管理し監視する必要があり、適切にプロビジョニングされ、必要なセキュリティ構成を持ち、適切にスケーリングされていることを確認する必要がある 利点 ECS、Lambda と比較して、もっともリソースの制約がなく、カスタマイズ性が高い GPU インスタンスをサポート 欠点 インスタンスの管理が必要であり、複雑になる可能性がある 他のオプションよりも高価になる場合があり、特に効率的に使用されない場合はそうなる可能性がある Docker を使わない限りは
概要 本記事では ONNX の概要について解説します。 ONNX とは ONNX(オニキス)とは、機械学習モデルを表現するために使用されるオープンソースのフォーマットです。機械学習の世界では、TensorFlow や PyTorch、Caffe、Chainer など、様々なフレームワークが存在しており。プロジェクトに応じてフレームワークを使い分けているかと思います。複数のフレームワークを扱っていると、あるのフレームワークで学習したモデルを別ののフレームワークで使いたいといった、ニーズが発生します。フレームワーク間で共通して使用可能なフォーマットである ONNX 形式に変換することにより、フレームワーク間でのモデルの共有というニーズを満たすことができます。ONNX は単一のバイナリファイルでネットワークとパラメータを表現しています。 サポート状況 ONNX は全てのフレームワークで互換
ビジネスに活かす LLM:自社データ検索とベクトルデータベースの詳細ガイド はじめに 近年、生成 AI 技術の進化がビジネスの世界で大きな影響を与えています。その中でも、ChatGPT などの台頭により LLM(大規模言語モデル)の活用に注目が集まっています。この能力をビジネスにおいて最大限に活かすには、タスクの目的や領域に応じて LLM を適用させることが重要です。 そのための一つの解決策として、この記事ではベクトルデータベースの活用を紹介します。ベクトルデータベースとは何か、どのような利便性をもたらすのかについて理解を深めるための一助となれば幸いです。 LLM におけるドキュメント検索の方法 LLM(LargeL Language Model/大規模言語モデル)は、大量のテキストデータから学習し、自然言語を理解する能力を持つ AI モデルです。LLM については下記の記事でも解説し
概要OpenAI API は使用したトークン数に応じて、お金がかかります。そのため、使用するトークンをできるだけ削減することで、コストを抑えて利用することができます。本記事ではいくつかの使用トークンを減らす方法を紹介します。 消費されるトークン数の確認まず、トークン数を削減する前に「これからどの程度のトークン数を利用することになるのか」を確認することで、余計なコスをかけずに済みます。 例えば、以下の方法を用いることでプロンプトのトークン数を確認することができます。 OpenAIのツールでトークン数を計算tiktokenを使用OpenAIのAPIで使用したトークン数APIの概要 OpenAI APIでは以下のように返答に使用したトークン数が含まれています。 "usage": { "prompt_tokens": 5, "completion_tokens": 7, "total_tok
LLMを用いて要約や抽出など、複雑な処理を一つのクエリで行うことができます。しかし、モデルの入力の最大数により、そのクエリの長さが限られています。例えば、OpenAIのtext-davinci-003は2,049トークン、gpt-4は8,192です。したがって、一つのクエリで長いデータを処理するのは困難です。そのため、本記事では、LangChainを用いて、長いドキュメントを扱う方法を紹介します。 長い文章を扱う方法 大規模言語モデル(LLM)でToken長が超えた場合の対応方法について モデルの最大長を超えたドキュメントを扱うには、複数のクエリに分散する必要があります。その際、四つの手法があります。 Stuffing:一つのクエリで処理する(StuffDocumentsChainで実装)【既存のやり方】 Map Reduce:処理を単独なクエリで分ける(MapReduceChainで実
from abc import ABC, abstractmethod from typing import List from langchain.schema import Document class BaseRetriever(ABC): @abstractmethod def get_relevant_documents(self, query: str) -> List[Document]: """Get texts relevant for a query. Args: query: string to find relevant tests for Returns: List of relevant documents """ このクラスは、get_relevant_documents というメソッドを持ち、これは受け取ったクエリから関連するドキュメントを返すようなメソッド
※この記事は AI によって書かれた内容をもとに作成したものになります。Hakky では自社の取り組みの一環として、記事作成に AI を導入しています。 ChatGPT は、OpenAI によって開発された自然言語処理 AI です。大量のテキストデータから学習し、人間のように自然な応答をすることができます。そのため、自然言語のテキスト生成や自動翻訳、質問応答システムなどに活用されています。 ChatGPT を開発した OpenAI について OpenAI は、人工知能の研究、開発、展開を行う会社であり、2015 年に設立されました。OpenAI は、イーロン・マスク、サム・アルターマン、グレッグ・ブロック、イリヤ・ススコイン、ジョン・ホプキンスなどの有名な起業家、投資家、研究者によって設立されました。 OpenAI は、人工知能技術の進歩を促進し、将来の AI に関するリスクを管理するこ
ChatGPT とはChatGPT は、OpenAI によって開発された大規模なニューラルネットワークモデルに基づく自然言語処理 AI です。人間のように自然な文章を生成する能力を持ち、様々な自然言語タスクに対して高い性能を発揮します。そのため、ビジネスの様々な領域で活用できます。 ChatGPT ができること ChatGPT は、テキスト生成、プログラミング、文書の要約、機械翻訳など、多岐にわたるタスクをこなすことができます。これらの能力は、ビジネスの様々な領域で活用することが可能です。これらはその一例です。 テキスト生成 ChatGPT は、指定されたトピックやスタイルに基づいて自然な文章を生成することができます。これにより、ブログ記事やレポートの作成、メールの自動作成など、様々な業務を効率化することが可能です。 プログラミング ChatGPT はプログラミング領域における能力でも
LangFlow とは LangFlow は、LangChain の GUI を提供するパッケージです。 これを用いることで、ドラッグ&ドロップでコンポーネントを組み立て、チャットボックスでフローの実験とプロトタイプを楽に行うことができます。 LangFlow の使い方 LangFlow の実行 ここでは、LangFlow の使い方を簡単に紹介します。 実行環境への依存度を下げるため、今回は Docker コンテナを用いて実行します。 適当なディレクトリ内に、以下の2つのファイルを作成します。 Dockerfile FROM python:3 USER root RUN apt-get update RUN apt-get -y install locales && \ localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 ENV LANG ja_JP.UT
この記事では GitHub Actions の環境変数の扱いについてまとめています。 環境変数の設定方法 GitHub Actions では環境変数は workflow ファイルに記述する形で設定します。 環境変数のスコープ範囲は任意に設定できます。 下のコードは公式のドキュメントより引用したものです。 name: Greeting on variable day on: workflow_dispatch env: DAY_OF_WEEK: Monday jobs: greeting_job: runs-on: ubuntu-latest env: Greeting: Hello steps: - name: "Say Hello Mona it's Monday" run: echo "$Greeting $First_Name. Today is $DAY_OF_WEEK!" en
Pythonシェル。Pythonコマンドを実行するために使用します。入力は有効なPythonコマンドである必要があります。
概要 このページでは、LangChain のエージェントの使用例を紹介します。 エージェントの概要や基本的な使用例を確認したい方は、先に、「エージェントについて」や 「LangChain を Python で使う」 などをご覧ください。 このページでは、エージェントの使用例として、以下に挙げるものを取り扱います。 Conversation Agent "conversational-react-description" エージェントを用いてチャットボットを作成します MRKL "MRKL Systems" という論文で提案されたアーキテクチャを模倣するエージェントを構築します 使用するエージェントタイプは "zero-shot-react-description" です ツールとしてデータベースや検索 API などの外部のツールを呼び出せるようなエージェントを構築します ReAct "r
概要 本記事ではWhisperの音声認識にヒントを設定する方法を紹介します。すなわち、辞書登録機能になります。 サンプルファイル 本記事ではテストサンプルとしてMozilla Common Voiceの日本語データセット(v12)のcommon_voice_ja_23633673.mp3(「文書は年々増えていく。」)を使用します。 tinyモデルでヒントなしの場合、「分子は年年増えていく」として認識されます。 initial_prompt引数を使用 --initial_prompt: optional text to provide as a prompt for the first window initial_promptはモデルにコンテキスト(プロンプト)を提供するための引数です。 したがって、その引数を用いて、ヒントになる単語をモデルに提供することができます。 しかし、「文書
概要 このページでは、LangChain におけるメモリの概要に加えて、以下に挙げる基本的な使用方法も紹介します。 メモリの初期化 メモリへの書き込み メモリのクリア メモリを保存する方法 メモリをチェーンに組み込む方法 また、これらを説明するにあたって、以下の2種類メモリの使用例を紹介します。 ConversationBufferMemory ConversationBufferWindowMemory その他のメモリの詳細については紹介を省きますので、必要であれば公式ドキュメントを参照して情報を補ってください。 LangChain におけるメモリ メモリは「ユーザーと言語モデルの対話を"記憶"するためのクラス」の総称です。 この"記憶"を言語モデルに渡すことで「"記憶"の内容を反映した応答を返す」ことができるようになります。 LangChain では、いくつかの種類のメモリが用意さ
LangChain を使用する手順は以下の通りです。 インストール 環境設定 LLM を利用したアプリケーションの実装 本文書では、まず、LangChain のインストール方法と環境設定の方法を説明します。 その後、LLM を利用したアプリケーションの実装で用いる機能であろう以下の6つの機能の使用例を紹介します。 LLMs: 言語モデルを呼び出すためのラッパーを提供します チャットモデル: チャットモデルを呼び出すためのラッパーを提供します プロンプトテンプレート: プロンプトのテンプレートを作成する機能を提供します チェーン: ひとつのワークフロー内で LLM やプロンプトテンプレートを組み合わせて使用するための機能を提供します エージェント: エージェントを使用することで、課題の解決順序をも LLM を用いて決定し、実行させることができます メモリー: チェーンとエージェントに状態を持
大規模言語モデル(LLM)の概要 **大規模言語モデル(LLM, Large Language Model)**は、膨大なデータセットを基に学習した言語モデルのことで、2018 年にBERTのモデルが登場して以来、注目を集めています。 LLM は、与えられた入力から適切な出力を生成する能力を持ち、GPTやBLOOM、LLaMAといった多言語対応のモデルが多いことも特徴です。 大規模言語モデル(LLM)の基本的な仕組み 入力文をベクターに変換(形態素解析などで文をトークンに分割) Encoder(トークンから特徴量を抽出) Decoder(特徴量を基に次のトークンを予測) 入力文に続くトークンの確率を出力 上記の手順を繰り返して、文章が生成されます。 尚、これらのモデルは非常に大規模で、メモリー不足のため一般的なマシンでの実行が難しい場合が多いです。 大規模言語モデル(LLM)ができるこ
LangChainとは何か LangChainとは、GPT-3 のような大規模言語モデル(Large Language Model: LLM)を用いたサービス開発時に役立つライブラリです。 LangChainを用いると、他のシステムと統合することで、最新情報の取得や複雑な計算処理にも対応したLLMサービスを容易に開発できるようになります。 例えば、OpenAIのAPIを用いて「最新の検索結果の内容も踏まえて AI に返答させるチャットアプリ」を開発するケースなどでLangchainは有効です。 このケースでは、LLMsとSerpApi (検索エンジンでの検索結果を API で返してくれるサービス)を組み合わせるLangchainの機能を使うことで実現できます。 このように、Langchainを使うことで様々なニーズに対応したサービスを柔軟に展開できるようになります。 Langchainが
概要 本記事ではWhisperとPyannoteを使った話者分離と音声認識の方法をサンプルコードとともに紹介します。 2022年12月現在、Whisperで話者分離を行うことは難しく、Pyannoteで話者分離した音声に対してWhisperで音声認識を行う手法が主流となっています。本記事ではYoutube動画を上記方法で話者分離と音声認識にかけてみます。なお、本記事は動作環境としてGoogle Colabを想定しています。 音声ファイルの準備 はじめに音声ファイルを準備する必要があります。今回は冒頭で述べたとおり任意のYoutube動画をDownloadしてきて利用します。 from pathlib import Path #@markdown #### **Youtube video** video_url = "https://www.youtube.com/watch?v=V2R
概要 本記事では近似最近傍探索ライブラリの Faiss について解説します。 Faiss とは Faiss とは、Meta(Facebook)製の近似最近傍探索ライブラリであり、類似の画像やテキストを検索するためのインデックスを作成するツールです。Faiss は C ++で記述されていますが、Python ラッパーを使用して Python で高速な学習が可能です。 他の近似最近傍探索ライブラリ Faiss の他に、有名な近似最近傍探索ライブラリとして、FLANN、Annoy、NMSLIB、NGT などがあります。ライブラリの比較は以下の記事が参考になります。 近似最近傍探索ライブラリ比較 類似商品 API で使っている近傍探索のツールを NGT から faiss に切り替えたお話 Index のアルゴリズム 探索の手法 探索の手法は大きく以下の 2 種類があります。(IVF が使
Handbook Introduction このドキュメントは、Hakky Handbook のイントロです。 目的 Hakky Handbook は、Hakky の会社・事業・カルチャー・技術に関する情報を体系化し、外部・内部に発信することを目的として情報の蓄積や発信を行なっています。 Hakky について知りたい外部の関係者の方や、技術的なナレッジを知りたい方、社内のメンバーにとっても有益な情報を公開していくことを目的としています。 コンテンツ コンテンツは以下のカテゴリーに分かれています。 Docs となっているところが、各事業についてや会社で扱う技術や情報などを体系的に取りまとめたものになります。各事業のサービスを受ける方や、これから Hakky に参画したい、また興味を持っていただいてる方は、気になるものを読んでいただけると参考になるかなと思います。 Docs データ活用支援
dbt 入門 dbt とは dbt とは、data build tool の略で、ELT の T を担当するソフトウェアです。つまり、データウェアハウスにあるデータを加工してデータウェアハウスに書き戻すツールになります。ELT の EL の部分は Meltano など他のツールに任せます。 特徴 dbt には主に以下の機能や特徴があります。 SQL の SELECT 文だけで開発可能 スキーマや依存関係に関するドキュメントの自動生成機能 NULL、参照整合性などの自動テスト機能 Jinjaによる処理のモジュール化 Git、CI / CD などソフトウェア開発の手法が活用可能 dbt の利用方法 dbt は、SaaS としての「dbt Cloud」と OSS の「dbt CLI」を利用することができます。それぞれの機能の違いは以下の記事をご参照ください。 dbt Cloud と dbt
Hakky HandbookHakkyでは、データ活用、機械学習プロダクト開発、基盤構築にご興味のある企業様向けに各種ナレッジをHandbookとして公開しております
このページを最初にブックマークしてみませんか?
『Hakky Handbook | Hakky Handbook』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く