[AWS] Bedrock
Bedrock์ AWS์์ ์ ๊ณตํ๋ LLM ์ ๊ณต ์๋น์ค๋ค.
API ๊ธฐ๋ฐ์ผ๋ก ์คํ์์ค LLM ์์คํ
๋ค์ ํธ์ถํด์ ์ฌ์ฉํ ์ ์๋ค.
๋ค๋ฅธ ์๋น์ค์ ๋น๊ตํ๋ค๋ฉด GCP์ Vertex AI ๊ฐ์ ๊ฒ ๋น์ทํ ์ข ๋ฅ๋ผ๊ณ ํ ์ ์๊ฒ ๋ค.
๋ ์์ ์ธ ๋ชจ๋ธ์ ๊ฐ๊ณ ์๋ ๊ฒ๋ ์๋๊ณ ํตํฉ ์ธํฐํ์ด์ค์ผ ๋ฟ์ด๋ผ์ Bedrock๋ง์ด ๊ฐ์ง ํน์ถ๋ ์ฅ์ ์ด๋๊ฑด ๋ฑํ ์๋ค. ๋ค๋ฅธ AWS ๋ฐ์ดํฐ ์์ค์์ ํตํฉ์ด ์ฝ๋ค๋๊ฒ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๋ถ๋ถ์ด๋ผ๊ณ ๋ด์ผํ ๊ฒ ๊ฐ๋ค.
๋ชจ๋ ๋ชจ๋ธ์ด ์๋๊ฑด ์๋์ง๋ง, ์ด๋์ ๋ ๋ง์ ํธ์ด๋ค.
AWS ์์ฒด ๋ชจ๋ธ๋ ์๊ณ , ๋ํ์ ์ธ ์คํ์์ค ๋ชจ๋ธ๋ค๋ ๊ฑฐ์ ๋ค ์๊ณ , ์ ํด๊ด๊ณ์ธ ์คํธ๋กํฝ ๋ชจ๋ธ๋ค๋ ์๋ค.
๋ด ๋ณด๊ธฐ์ Bedrock์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ๊ธฐ๋ฅ์ ๋ํ ํ๋ณด๋ ๋ฌธ์ํ๊ฐ ๋ถ์คํ๋ค๋ ๊ฒ์ด๋ค.
๋น์ฉ
๊ณ ์ ๋น์ฉ์ด ํฌ๊ฒ ๋๊ฐ๋ ํํ๋ ์๋๊ณ , ์๋ฒ๋ฆฌ์ค ์๋น์ค๋ผ์ API ํธ์ถ๋น, ํ ํฐ ๊ฐฏ์ ๋ฑ์ผ๋ก ๋น์ฉ์ด ๋ถ๊ณผ๋๋ค.
https://aws.amazon.com/bedrock/pricing/
์์ธํ ๊ฒ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ๋๊ฒ ์ข๋ค.
LLM ๋ชจ๋ธ์ด ์ด๊ฒ์ ๊ฒ ์ง์๋๋ ํธ์ธ๋ฐ, ๋ชจ๋ธ๋ง๋ค, ํน์ ๋ชจ๋ธ ๋ฒ์ ๋ง๋ค ๊ณผ๊ธ ๋ฐฉ์์ด ์ ๋ถ ๋ค๋ฅด๋ค.
๋ ์ด๋ค๊ฑด ๋ฆฌ์ ๋ง๋ค ๋น์ฉ์ด ๋ค๋ฅธ ๊ฒ๋ ์๊ณ ๊ฐ์ ๊ฒ๋ ์๋ค.
AWS ์น๊ณค ๋น์ฉ์ ๋ฐ๊ฐ์ง๋ฅผ ์์ด ๋ถ๋ถ์ ์ ๋ค.
์คํธ๋กํฝ ์๋ท 3.7 ๊ธฐ์ค์ผ๋ก ๋น๊ตํด๋ณด๋ฉด
์คํธ๋กํฝ์ ์
๋ ฅ์ด 100๋ง ํ ํฐ๋น 3๋ฌ๋ฌ๊ณ ,
AWS์์๋ 1000 ํ ํฐ๋น 0.003๋ฌ๋ฌ๋ค. ๊ณฑํ๋ฉด ๋น์ฉ์ ๊ฑฐ์ ๋๋ฑํ๋ค.
๋ชจ๋ธ ์ฌ์ฉ ์ ์ฒญ
๋ชจ๋ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ ์ํ๋ค.
์ฌ์ฉํ๋ ค๋ฉด ์ฐ๊ณ ์ถ์ ๋ชจ๋ธ๋ง ๋จผ์ ์ฌ์ฉ ์ ์ฒญ์ ํ๊ฑฐ๋, ์๋๋ฉด ์ ์ฒด ์ฌ์ฉ ์ ์ฒญ์ ํด์ผ ํ๋ค.

์คํธ๋กํฝ์ ๊ฒฝ์ฐ์๋ ์คํธ๋กํฝ์ ๋ณด๋ผ ์ ๋ณด๋ ์ข ์จ์ค์ผ ํ๋ค. ๊ท์ฐฎ๋ค.

ํ๋ ์ด๊ทธ๋ผ์ด๋
๊ทธ๋ฅ ์ฝ์์์ ๋ฐ๋ก ๋ํํ์ผ๋ก ์ฑ๋ด์ ์จ๋ณผ ์๋ ์๋ค.
(์์ธ ๊ธฐ์ค) ์ฝ์์์๋ ํ
์คํธ๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ , ์ด๋ฏธ์ง๋ ์ค๋์ค๋ API๋ก๋ง ๋๋ค.
ํ๋ ์ด๊ทธ๋ผ์ด๋๋ก ์ด๋ํด์
๋ชจ๋ธ ๊ณ ๋ฅด๊ณ
์จ๋ณด๋ฉด ๋๋ค.
๊ฐ๋จํ ํ
์คํธ๋ ์ฌ๊ธฐ์์ ํ ์ ์๋ค.
๋ฆฌ์ ์ฐจ๋ณ
์์ธ ๊ฐ์ ๊ฐ๋ํ ๋ฆฌ์ ์๋ ๊ธฐ๋ฅ์ด ์ ํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ, Bedlock์ ๋์ฑ ๊ทธ๋ ๋ค.
ํ๋ ์ด๊ทธ๋ผ์ด๋๋, ๋ชจ๋ธ ์ง์ ์์ค์ด ํ๊ฒฉํ๊ฒ ์ฐจ์ด๊ฐ ๋๋ค.
์ข๋ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๊ณ ์ถ๋ค๋ฉด ๋ฒ์ง๋์ ๊ฐ์ ์ค์ฌ ๋ฆฌ์ ์ ์ฌ์ฉํ๋๊ฒ ๊ถ์ฅ๋๋ค.
์ง์ ์์ค์ด ์ข ๋ง์ด ์ฐจ์ด๋๋ค.
๋ฒ์ง๋์์ ๊ฒฝ์ฐ์๋ ์ด๋ฏธ์ง ๊ฐ์ ๊ฒ๋ ์ฝ์์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ Amazon ์์ฒด ๋ชจ๋ธ๊ณผ ์คํธ๋กํฝ ์ธ์ ์คํ์์ค ๋ชจ๋ธ๋ค์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, ์ฌ์ค์ ๋ฒ์ง๋์์์๋ง ๊ฐ๋ฅํ๋ค.
์ด๋ ๊ฒ ์ ํ์ง๊ฐ ๋ง์์ง๋ค.
๊ทธ๋ฆฌ๊ณ ์ง์ ๋ชจ๋ธ์ ๋น์ด ์ฐ๊ฑฐ๋ ํ์ธํ๋ํด์ ์ฐ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
API
๊ฐ๋จํ ํ ์คํธ๋ ํ๋ ์ด๊ทธ๋ผ์ด๋์์ ํ๋๋ผ๋, ๊ฒฐ๊ตญ์ ์์ฉํ๋ ค๋ฉด AWS API๋ฅผ ํตํด์ ๋ถ์ด๋ ํํ๊ฐ ๋๋ค.
๋ค๋ฅธ AWS SDK ๋ด API๋ค๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค.
import { fileURLToPath } from "node:url";
import {
BedrockClient,
ListFoundationModelsCommand,
} from "@aws-sdk/client-bedrock";
const REGION = "us-east-1";
const client = new BedrockClient({ region: REGION });
export const main = async () => {
const command = new ListFoundationModelsCommand({});
const response = await client.send(command);
const models = response.modelSummaries;
console.log("Listing the available Bedrock foundation models:");
for (const model of models) {
console.log("=".repeat(42));
console.log(` Model: ${model.modelId}`);
console.log("-".repeat(42));
console.log(` Name: ${model.modelName}`);
console.log(` Provider: ${model.providerName}`);
console.log(` Model ARN: ${model.modelArn}`);
console.log(` Input modalities: ${model.inputModalities}`);
console.log(` Output modalities: ${model.outputModalities}`);
console.log(` Supported customizations: ${model.customizationsSupported}`);
console.log(` Supported inference types: ${model.inferenceTypesSupported}`);
console.log(` Lifecycle status: ${model.modelLifecycle.status}`);
console.log(`${"=".repeat(42)}\n`);
}
const active = models.filter(
(m) => m.modelLifecycle.status === "ACTIVE",
).length;
const legacy = models.filter(
(m) => m.modelLifecycle.status === "LEGACY",
).length;
console.log(
`There are ${active} active and ${legacy} legacy foundation models in ${REGION}.`,
);
return response;
};
// Invoke main function if this file was run directly.
if (process.argv[1] === fileURLToPath(import.meta.url)) {
await main();
}
์์ธํ ๊ฒ์ ๋ณ๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ค.
https://docs.aws.amazon.com/ko_kr/code-library/latest/ug/bedrock_example_bedrock_Hello_section.html
์ฐธ์กฐ
https://aws.amazon.com/bedrock/pricing/
https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-console.html
https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started.html